@tangle-network/sandbox-ui 0.113.7 → 0.115.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (107) hide show
  1. package/README.md +40 -0
  2. package/dist/WorkflowGraph-B-NsdYz_.js +1961 -0
  3. package/dist/assets.d.ts +214 -206
  4. package/dist/assets.js +1057 -908
  5. package/dist/auth-CWe17Hly.js +37 -0
  6. package/dist/auth.d.ts +2 -30
  7. package/dist/auth.js +2 -15
  8. package/dist/chat-BOvFAe6p.js +903 -0
  9. package/dist/chat.d.ts +2 -230
  10. package/dist/chat.js +2 -34
  11. package/dist/connectors.d.ts +52 -49
  12. package/dist/connectors.js +595 -643
  13. package/dist/dashboard-CZ3VgNPR.js +4969 -0
  14. package/dist/dashboard.d.ts +4 -1297
  15. package/dist/dashboard.js +4 -152
  16. package/dist/editor.d.ts +2 -1
  17. package/dist/editor.js +2 -31
  18. package/dist/files.d.ts +2 -6
  19. package/dist/files.js +2 -33
  20. package/dist/globals.css +75 -3
  21. package/dist/hooks.d.ts +146 -148
  22. package/dist/hooks.js +222 -55
  23. package/dist/index-CKRaj1pM.d.ts +776 -0
  24. package/dist/index-CXX5IpH2.d.ts +2 -0
  25. package/dist/index-CesPlOyx.d.ts +367 -0
  26. package/dist/index-DPePq7c8.d.ts +1340 -0
  27. package/dist/index-DiyLLZuJ.d.ts +230 -0
  28. package/dist/index-DvmZLMT1.d.ts +30 -0
  29. package/dist/index-PRM636Ex.d.ts +86 -0
  30. package/dist/index.d.ts +21 -33
  31. package/dist/index.js +21 -701
  32. package/dist/info-panel-C9cqDzOL.js +594 -0
  33. package/dist/integrations.d.ts +133 -141
  34. package/dist/integrations.js +491 -673
  35. package/dist/markdown.d.ts +2 -1
  36. package/dist/markdown.js +2 -13
  37. package/dist/model-I-NIxeM-.js +1250 -0
  38. package/dist/model-brand-B9A4H9pJ.d.ts +98 -0
  39. package/dist/model-brand-hMyDTUqB.js +624 -0
  40. package/dist/motion-DkyBRJb9.js +37 -0
  41. package/dist/openui.d.ts +2 -1
  42. package/dist/openui.js +2 -7
  43. package/dist/pages.d.ts +307 -300
  44. package/dist/pages.js +4404 -4181
  45. package/dist/primitives-Dh1vG6J3.js +113 -0
  46. package/dist/primitives.d.ts +2 -74
  47. package/dist/primitives.js +2 -204
  48. package/dist/provider-logo-DjqmConF.js +311 -0
  49. package/dist/run.d.ts +2 -1
  50. package/dist/run.js +2 -23
  51. package/dist/sdk-hooks.d.ts +3 -4
  52. package/dist/sdk-hooks.js +3 -31
  53. package/dist/sidecar-DgH_vQ6m.d.ts +9 -0
  54. package/dist/stores.d.ts +14 -15
  55. package/dist/stores.js +13 -81
  56. package/dist/styles.css +75 -3
  57. package/dist/template-card-L-4gmjx2.d.ts +90 -0
  58. package/dist/terminal-CN9ZgHRt.js +197 -0
  59. package/dist/terminal.d.ts +60 -60
  60. package/dist/terminal.js +2 -10
  61. package/dist/tokens.css +51 -0
  62. package/dist/types.d.ts +4 -11
  63. package/dist/types.js +0 -1
  64. package/dist/use-pty-session-C8cE0adT.js +669 -0
  65. package/dist/use-sidecar-auth-CCTJcrq7.d.ts +145 -0
  66. package/dist/use-sidecar-auth-DkdcufOz.js +742 -0
  67. package/dist/utils-DzWbktWG.js +2 -0
  68. package/dist/utils.d.ts +2 -1
  69. package/dist/utils.js +2 -37
  70. package/dist/workbench-ztU44Jt2.js +8455 -0
  71. package/dist/workbench.d.ts +2 -310
  72. package/dist/workbench.js +2 -44
  73. package/dist/workflows.d.ts +341 -339
  74. package/dist/workflows.js +74 -109
  75. package/dist/workspace-B6AtI6ld.js +2510 -0
  76. package/dist/workspace.d.ts +2 -761
  77. package/dist/workspace.js +2 -51
  78. package/package.json +46 -40
  79. package/dist/WorkflowGraph-2QOORYIR.js +0 -1722
  80. package/dist/chunk-2BUPSB7O.js +0 -0
  81. package/dist/chunk-3KBNPQQF.js +0 -2697
  82. package/dist/chunk-3LIXVEEE.js +0 -279
  83. package/dist/chunk-72UF2H5H.js +0 -707
  84. package/dist/chunk-AI25G5MX.js +0 -944
  85. package/dist/chunk-ANSC5AFC.js +0 -314
  86. package/dist/chunk-AZ3AWMTM.js +0 -8
  87. package/dist/chunk-BGVEHENC.js +0 -10
  88. package/dist/chunk-CZ7CSFO4.js +0 -39
  89. package/dist/chunk-DYXXYGS4.js +0 -4700
  90. package/dist/chunk-EI44GEQ5.js +0 -6
  91. package/dist/chunk-IACRDXER.js +0 -219
  92. package/dist/chunk-IOB2PW5Z.js +0 -55
  93. package/dist/chunk-M4K7ZGR2.js +0 -24
  94. package/dist/chunk-MYZAW4RX.js +0 -665
  95. package/dist/chunk-OMUIPJQZ.js +0 -555
  96. package/dist/chunk-RQZRXKMR.js +0 -398
  97. package/dist/chunk-SOKKTB7W.js +0 -230
  98. package/dist/chunk-TADGS4Q7.js +0 -1010
  99. package/dist/chunk-UCQNOUN3.js +0 -7964
  100. package/dist/chunk-ULPLRBMF.js +0 -34
  101. package/dist/chunk-WID73FPH.js +0 -89
  102. package/dist/chunk-X3YXP7FG.js +0 -38
  103. package/dist/logo-DiAjq759.d.ts +0 -15
  104. package/dist/model-brand-BNnaUKKZ.d.ts +0 -99
  105. package/dist/ports-list-CDIvTNnX.d.ts +0 -17
  106. package/dist/sdk-hooks-Djkjq4cp.d.ts +0 -145
  107. package/dist/template-card-Bn-Bw5xC.d.ts +0 -87
@@ -0,0 +1,624 @@
1
+ import { t as cn } from "./utils-DzWbktWG.js";
2
+ import { TangleKnot } from "@tangle-network/brand";
3
+ import { jsx, jsxs } from "react/jsx-runtime";
4
+ //#region node_modules/.pnpm/@lobehub+icons-static-svg@1.95.1/node_modules/@lobehub/icons-static-svg/icons/moonshot.svg
5
+ var moonshot_default = "data:image/svg+xml,<svg fill=\"currentColor\" fill-rule=\"evenodd\" height=\"1em\" style=\"flex:none;line-height:1\" viewBox=\"0 0 24 24\" width=\"1em\" xmlns=\"http://www.w3.org/2000/svg\"><title>MoonshotAI</title><path d=\"M1.052 16.916l9.539 2.552a21.007 21.007 0 00.06 2.033l5.956 1.593a11.997 11.997 0 01-5.586.865l-.18-.016-.044-.004-.084-.009-.094-.01a11.605 11.605 0 01-.157-.02l-.107-.014-.11-.016a11.962 11.962 0 01-.32-.051l-.042-.008-.075-.013-.107-.02-.07-.015-.093-.019-.075-.016-.095-.02-.097-.023-.094-.022-.068-.017-.088-.022-.09-.024-.095-.025-.082-.023-.109-.03-.062-.02-.084-.025-.093-.028-.105-.034-.058-.019-.08-.026-.09-.031-.066-.024a6.293 6.293 0 01-.044-.015l-.068-.025-.101-.037-.057-.022-.08-.03-.087-.035-.088-.035-.079-.032-.095-.04-.063-.028-.063-.027a5.655 5.655 0 01-.041-.018l-.066-.03-.103-.047-.052-.024-.096-.046-.062-.03-.084-.04-.086-.044-.093-.047-.052-.027-.103-.055-.057-.03-.058-.032a6.49 6.49 0 01-.046-.026l-.094-.053-.06-.034-.051-.03-.072-.041-.082-.05-.093-.056-.052-.032-.084-.053-.061-.039-.079-.05-.07-.047-.053-.035a7.785 7.785 0 01-.054-.036l-.044-.03-.044-.03a6.066 6.066 0 01-.04-.028l-.057-.04-.076-.054-.069-.05-.074-.054-.056-.042-.076-.057-.076-.059-.086-.067-.045-.035-.064-.052-.074-.06-.089-.073-.046-.039-.046-.039a7.516 7.516 0 01-.043-.037l-.045-.04-.061-.053-.07-.062-.068-.06-.062-.058-.067-.062-.053-.05-.088-.084a13.28 13.28 0 01-.099-.097l-.029-.028-.041-.042-.069-.07-.05-.051-.05-.053a6.457 6.457 0 01-.168-.179l-.08-.088-.062-.07-.071-.08-.042-.049-.053-.062-.058-.068-.046-.056a7.175 7.175 0 01-.027-.033l-.045-.055-.066-.082-.041-.052-.05-.064-.02-.025a11.99 11.99 0 01-1.44-2.402zm-1.02-5.794l11.353 3.037a20.468 20.468 0 00-.469 2.011l10.817 2.894a12.076 12.076 0 01-1.845 2.005L.657 15.923l-.016-.046-.035-.104a11.965 11.965 0 01-.05-.153l-.007-.023a11.896 11.896 0 01-.207-.741l-.03-.126-.018-.08-.021-.097-.018-.081-.018-.09-.017-.084-.018-.094c-.026-.141-.05-.283-.071-.426l-.017-.118-.011-.083-.013-.102a12.01 12.01 0 01-.019-.161l-.005-.047a12.12 12.12 0 01-.034-2.145zm1.593-5.15l11.948 3.196c-.368.605-.705 1.231-1.01 1.875l11.295 3.022c-.142.82-.368 1.612-.668 2.365l-11.55-3.09L.124 10.26l.015-.1.008-.049.01-.067.015-.087.018-.098c.026-.148.056-.295.088-.442l.028-.124.02-.085.024-.097c.022-.09.045-.18.07-.268l.028-.102.023-.083.03-.1.025-.082.03-.096.026-.082.031-.095a11.896 11.896 0 011.01-2.232zm4.442-4.4L17.352 4.59a20.77 20.77 0 00-1.688 1.721l7.823 2.093c.267.852.442 1.744.513 2.665L2.106 5.213l.045-.065.027-.04.04-.055.046-.065.055-.076.054-.072.064-.086.05-.065.057-.073.055-.07.06-.074.055-.069.065-.077.054-.066.066-.077.053-.06.072-.082.053-.06.067-.074.054-.058.073-.078.058-.06.063-.067.168-.17.1-.098.059-.056.076-.071a12.084 12.084 0 012.272-1.677zM12.017 0h.097l.082.001.069.001.054.002.068.002.046.001.076.003.047.002.06.003.054.002.087.005.105.007.144.011.088.007.044.004.077.008.082.008.047.005.102.012.05.006.108.014.081.01.042.006.065.01.207.032.07.012.065.011.14.026.092.018.11.022.046.01.075.016.041.01L14.7.3l.042.01.065.015.049.012.071.017.096.024.112.03.113.03.113.032.05.015.07.02.078.024.073.023.05.016.05.016.076.025.099.033.102.036.048.017.064.023.093.034.11.041.116.045.1.04.047.02.06.024.041.018.063.026.04.018.057.025.11.048.1.046.074.035.075.036.06.028.092.046.091.045.102.052.053.028.049.026.046.024.06.033.041.022.052.029.088.05.106.06.087.051.057.034.053.032.096.059.088.055.098.062.036.024.064.041.084.056.04.027.062.042.062.043.023.017c.054.037.108.075.161.114l.083.06.065.048.056.043.086.065.082.064.04.03.05.041.086.069.079.065.085.071c.712.6 1.353 1.283 1.909 2.031L7.222.994l.062-.027.065-.028.081-.034.086-.035c.113-.045.227-.09.341-.131l.096-.035.093-.033.084-.03.096-.031c.087-.03.176-.058.264-.085l.091-.027.086-.025.102-.03.085-.023.1-.026L9.04.37l.09-.023.091-.022.095-.022.09-.02.098-.021.091-.02.095-.018.092-.018.1-.018.091-.016.098-.017.092-.014.097-.015.092-.013.102-.013.091-.012.105-.012.09-.01.105-.01c.093-.01.186-.018.28-.024l.106-.008.09-.005.11-.006.093-.004.1-.004.097-.002.099-.002.197-.002z\"></path></svg>";
6
+ //#endregion
7
+ //#region src/lib/provider-logo.tsx
8
+ const LOGOS = {
9
+ anthropic: {
10
+ viewBox: "0 0 24 24",
11
+ fill: "#D97757",
12
+ paths: ["M17.3041 3.541h-3.6718l6.696 16.918H24Zm-10.6082 0L0 20.459h3.7442l1.3693-3.5527h7.0052l1.3693 3.5528h3.7442L10.5363 3.5409Zm-.3712 10.2232 2.2914-5.9456 2.2914 5.9456Z"]
13
+ },
14
+ google: {
15
+ viewBox: "0 0 24 24",
16
+ fill: "#8E75B2",
17
+ paths: ["M11.04 19.32Q12 21.51 12 24q0-2.49.93-4.68.96-2.19 2.58-3.81t3.81-2.55Q21.51 12 24 12q-2.49 0-4.68-.93a12.3 12.3 0 0 1-3.81-2.58 12.3 12.3 0 0 1-2.58-3.81Q12 2.49 12 0q0 2.49-.96 4.68-.93 2.19-2.55 3.81a12.3 12.3 0 0 1-3.81 2.58Q2.49 12 0 12q2.49 0 4.68.96 2.19.93 3.81 2.55t2.55 3.81"]
18
+ },
19
+ deepseek: {
20
+ viewBox: "0 0 24 24",
21
+ fill: "#4D6BFE",
22
+ paths: ["M23.748 4.651c-.254-.124-.364.113-.512.233-.051.04-.094.09-.137.137-.372.397-.806.657-1.373.626-.829-.046-1.537.214-2.163.848-.133-.782-.575-1.248-1.247-1.548-.352-.155-.708-.311-.955-.65-.172-.24-.219-.509-.305-.774-.055-.16-.11-.323-.293-.35-.2-.031-.278.136-.356.276-.313.572-.434 1.202-.422 1.84.027 1.436.633 2.58 1.838 3.393.137.094.172.187.129.323-.082.28-.18.553-.266.833-.055.179-.137.218-.328.14a5.5 5.5 0 0 1-1.737-1.179c-.857-.828-1.631-1.743-2.597-2.46a12 12 0 0 0-.689-.47c-.985-.957.13-1.743.387-1.836.27-.098.094-.433-.778-.428-.872.003-1.67.295-2.687.685a3 3 0 0 1-.465.136 9.6 9.6 0 0 0-2.883-.101c-1.885.21-3.39 1.1-4.497 2.622C.082 8.776-.231 10.854.152 13.02c.403 2.284 1.568 4.175 3.36 5.653 1.857 1.533 3.997 2.284 6.438 2.14 1.482-.085 3.132-.284 4.994-1.86.47.234.962.328 1.78.398.629.058 1.235-.031 1.705-.129.735-.155.684-.836.418-.961-2.155-1.004-1.682-.595-2.112-.926 1.095-1.295 2.768-3.598 3.284-6.733.05-.346.115-.834.108-1.114-.004-.171.035-.238.23-.257a4.2 4.2 0 0 0 1.545-.475c1.397-.763 1.96-2.016 2.093-3.517.02-.23-.004-.467-.247-.588M11.58 18.168c-2.088-1.642-3.101-2.183-3.52-2.16-.39.024-.32.472-.234.763.09.288.207.487.371.74.114.167.192.416-.113.603-.673.416-1.842-.14-1.897-.168-1.361-.801-2.5-1.86-3.301-3.306-.775-1.393-1.225-2.888-1.299-4.482-.02-.385.094-.522.477-.592a4.7 4.7 0 0 1 1.53-.038c2.131.311 3.946 1.264 5.467 2.774.868.86 1.525 1.887 2.202 2.89.72 1.066 1.494 2.082 2.48 2.915.348.291.626.513.892.677-.802.09-2.14.109-3.055-.615zm1.001-6.44a.306.306 0 0 1 .415-.287.3.3 0 0 1 .113.074.3.3 0 0 1 .086.214c0 .17-.136.307-.308.307a.303.303 0 0 1-.306-.307m3.11 1.596c-.2.081-.4.151-.591.16a1.25 1.25 0 0 1-.798-.254c-.274-.23-.47-.358-.551-.758a1.7 1.7 0 0 1 .015-.588c.07-.327-.007-.537-.238-.727-.188-.156-.426-.199-.689-.199a.6.6 0 0 1-.254-.078.253.253 0 0 1-.114-.358 1 1 0 0 1 .192-.21c.356-.202.767-.136 1.146.016.352.144.618.408 1.001.782.392.451.462.576.685.915.176.264.336.536.446.848.066.194-.02.353-.25.45"]
23
+ },
24
+ mistral: {
25
+ viewBox: "0 0 24 24",
26
+ fill: "#FA520F",
27
+ paths: ["M17.143 3.429v3.428h-3.429v3.429h-3.428V6.857H6.857V3.43H3.43v13.714H0v3.428h10.286v-3.428H6.857v-3.429h3.429v3.429h3.429v-3.429h3.428v3.429h-3.428v3.428H24v-3.428h-3.43V3.429z"]
28
+ },
29
+ xai: {
30
+ viewBox: "0 0 24 24",
31
+ fill: "#000000",
32
+ paths: ["M14.234 10.162 22.977 0h-2.072l-7.591 8.824L7.251 0H.258l9.168 13.343L.258 24H2.33l8.016-9.318L16.749 24h6.993zm-2.837 3.299-.929-1.329L3.076 1.56h3.182l5.965 8.532.929 1.329 7.754 11.09h-3.182z"]
33
+ },
34
+ nvidia: {
35
+ viewBox: "0 0 24 24",
36
+ fill: "#76B900",
37
+ paths: ["M8.948 8.798v-1.43a6.7 6.7 0 0 1 .424-.018c3.922-.124 6.493 3.374 6.493 3.374s-2.774 3.851-5.75 3.851c-.398 0-.787-.062-1.158-.185v-4.346c1.528.185 1.837.857 2.747 2.385l2.04-1.714s-1.492-1.952-4-1.952a6.016 6.016 0 0 0-.796.035m0-4.735v2.138l.424-.027c5.45-.185 9.01 4.47 9.01 4.47s-4.08 4.964-8.33 4.964c-.37 0-.733-.035-1.095-.097v1.325c.3.035.61.062.91.062 3.957 0 6.82-2.023 9.593-4.408.459.371 2.34 1.263 2.73 1.652-2.633 2.208-8.772 3.984-12.253 3.984-.335 0-.653-.018-.971-.053v1.864H24V4.063zm0 10.326v1.131c-3.657-.654-4.673-4.46-4.673-4.46s1.758-1.944 4.673-2.262v1.237H8.94c-1.528-.186-2.73 1.245-2.73 1.245s.68 2.412 2.739 3.11M2.456 10.9s2.164-3.197 6.5-3.533V6.201C4.153 6.59 0 10.653 0 10.653s2.35 6.802 8.948 7.42v-1.237c-4.84-.6-6.492-5.936-6.492-5.936z"]
38
+ },
39
+ meta: {
40
+ viewBox: "0 0 24 24",
41
+ fill: "#0467DF",
42
+ paths: ["M6.915 4.03c-1.968 0-3.683 1.28-4.871 3.113C.704 9.208 0 11.883 0 14.449c0 .706.07 1.369.21 1.973a6.624 6.624 0 0 0 .265.86 5.297 5.297 0 0 0 .371.761c.696 1.159 1.818 1.927 3.593 1.927 1.497 0 2.633-.671 3.965-2.444.76-1.012 1.144-1.626 2.663-4.32l.756-1.339.186-.325c.061.1.121.196.183.3l2.152 3.595c.724 1.21 1.665 2.556 2.47 3.314 1.046.987 1.992 1.22 3.06 1.22 1.075 0 1.876-.355 2.455-.843a3.743 3.743 0 0 0 .81-.973c.542-.939.861-2.127.861-3.745 0-2.72-.681-5.357-2.084-7.45-1.282-1.912-2.957-2.93-4.716-2.93-1.047 0-2.088.467-3.053 1.308-.652.57-1.257 1.29-1.82 2.05-.69-.875-1.335-1.547-1.958-2.056-1.182-.966-2.315-1.303-3.454-1.303zm10.16 2.053c1.147 0 2.188.758 2.992 1.999 1.132 1.748 1.647 4.195 1.647 6.4 0 1.548-.368 2.9-1.839 2.9-.58 0-1.027-.23-1.664-1.004-.496-.601-1.343-1.878-2.832-4.358l-.617-1.028a44.908 44.908 0 0 0-1.255-1.98c.07-.109.141-.224.211-.327 1.12-1.667 2.118-2.602 3.358-2.602zm-10.201.553c1.265 0 2.058.791 2.675 1.446.307.327.737.871 1.234 1.579l-1.02 1.566c-.757 1.163-1.882 3.017-2.837 4.338-1.191 1.649-1.81 1.817-2.486 1.817-.524 0-1.038-.237-1.383-.794-.263-.426-.464-1.13-.464-2.046 0-2.221.63-4.535 1.66-6.088.454-.687.964-1.226 1.533-1.533a2.264 2.264 0 0 1 1.088-.285z"]
43
+ },
44
+ moonshotai: {
45
+ viewBox: "0 0 24 24",
46
+ fill: "#16191E",
47
+ paths: ["m1.053 16.91 9.538 2.55a21 20.981 0 0 0 .06 2.031l5.956 1.592a12 11.99 0 0 1-15.554-6.172m-1.02-5.79 11.352 3.035a21 20.981 0 0 0-.469 2.01l10.817 2.89a12 11.99 0 0 1-1.845 2.004L.658 15.918a12 11.99 0 0 1-.625-4.796m1.593-5.146L13.573 9.17a21 20.981 0 0 0-1.01 1.874l11.297 3.02a21 20.981 0 0 1-.67 2.362l-11.55-3.087L.125 10.26a12 11.99 0 0 1 1.499-4.285ZM6.067 1.58l11.285 3.016a21 20.981 0 0 0-1.688 1.719l7.824 2.091a21 20.981 0 0 1 .513 2.664L2.107 5.218a12 11.99 0 0 1 3.96-3.638M21.68 4.866 7.222 1.003A12 11.99 0 0 1 21.68 4.866"]
48
+ },
49
+ openai: {
50
+ viewBox: "0 0 256 260",
51
+ fill: "#10A37F",
52
+ paths: ["M239.184 106.203a64.72 64.72 0 0 0-5.576-53.103C219.452 28.459 191 15.784 163.213 21.74A65.586 65.586 0 0 0 52.096 45.22a64.72 64.72 0 0 0-43.23 31.36c-14.31 24.602-11.061 55.634 8.033 76.74a64.67 64.67 0 0 0 5.525 53.102c14.174 24.65 42.644 37.324 70.446 31.36a64.72 64.72 0 0 0 48.754 21.744c28.481.025 53.714-18.361 62.414-45.481a64.77 64.77 0 0 0 43.229-31.36c14.137-24.558 10.875-55.423-8.083-76.483m-97.56 136.338a48.4 48.4 0 0 1-31.105-11.255l1.535-.87l51.67-29.825a8.6 8.6 0 0 0 4.247-7.367v-72.85l21.845 12.636c.218.111.37.32.409.563v60.367c-.056 26.818-21.783 48.545-48.601 48.601M37.158 197.93a48.35 48.35 0 0 1-5.781-32.589l1.534.921l51.722 29.826a8.34 8.34 0 0 0 8.441 0l63.181-36.425v25.221a.87.87 0 0 1-.358.665l-52.335 30.184c-23.257 13.398-52.97 5.431-66.404-17.803M23.549 85.38a48.5 48.5 0 0 1 25.58-21.333v61.39a8.29 8.29 0 0 0 4.195 7.316l62.874 36.272l-21.845 12.636a.82.82 0 0 1-.767 0L41.353 151.53c-23.211-13.454-31.171-43.144-17.804-66.405zm179.466 41.695l-63.08-36.63L161.73 77.86a.82.82 0 0 1 .768 0l52.233 30.184a48.6 48.6 0 0 1-7.316 87.635v-61.391a8.54 8.54 0 0 0-4.4-7.213m21.742-32.69l-1.535-.922l-51.619-30.081a8.39 8.39 0 0 0-8.492 0L99.98 99.808V74.587a.72.72 0 0 1 .307-.665l52.233-30.133a48.652 48.652 0 0 1 72.236 50.391zM88.061 139.097l-21.845-12.585a.87.87 0 0 1-.41-.614V65.685a48.652 48.652 0 0 1 79.757-37.346l-1.535.87l-51.67 29.825a8.6 8.6 0 0 0-4.246 7.367zm11.868-25.58L128.067 97.3l28.188 16.218v32.434l-28.086 16.218l-28.188-16.218z"]
53
+ }
54
+ };
55
+ const ALIASES = {
56
+ moonshot: "moonshotai",
57
+ deepseek_ai: "deepseek",
58
+ "x-ai": "xai",
59
+ "meta-llama": "meta"
60
+ };
61
+ const MONOGRAM = {
62
+ cohere: {
63
+ bg: "#fae8ff",
64
+ fg: "#c026d3"
65
+ },
66
+ groq: {
67
+ bg: "#fce7f3",
68
+ fg: "#db2777"
69
+ },
70
+ cerebras: {
71
+ bg: "#ccfbf1",
72
+ fg: "#0d9488"
73
+ },
74
+ zai: {
75
+ bg: "#ede9fe",
76
+ fg: "#7c3aed"
77
+ },
78
+ "z-ai": {
79
+ bg: "#ede9fe",
80
+ fg: "#7c3aed"
81
+ },
82
+ tuner: {
83
+ bg: "#dbeafe",
84
+ fg: "#2563eb"
85
+ }
86
+ };
87
+ /** Real brand mark when we have one; tinted monogram otherwise. */
88
+ function ProviderLogo({ provider, size = 16 }) {
89
+ const key = ALIASES[provider ?? ""] ?? provider ?? "";
90
+ const logo = LOGOS[key];
91
+ if (logo) return /* @__PURE__ */ jsx("svg", {
92
+ width: size,
93
+ height: size,
94
+ viewBox: logo.viewBox,
95
+ role: "img",
96
+ "aria-label": key,
97
+ children: logo.paths.map((d, i) => /* @__PURE__ */ jsx("path", {
98
+ d,
99
+ fill: logo.fill
100
+ }, i))
101
+ });
102
+ const mono = MONOGRAM[key] ?? {
103
+ bg: "#f3f4f6",
104
+ fg: "#6b7280"
105
+ };
106
+ return /* @__PURE__ */ jsxs("svg", {
107
+ width: size,
108
+ height: size,
109
+ viewBox: "0 0 16 16",
110
+ role: "img",
111
+ "aria-label": key || "model",
112
+ children: [/* @__PURE__ */ jsx("rect", {
113
+ width: "16",
114
+ height: "16",
115
+ rx: "4",
116
+ fill: mono.bg
117
+ }), /* @__PURE__ */ jsx("text", {
118
+ x: "8",
119
+ y: "11.6",
120
+ textAnchor: "middle",
121
+ fill: mono.fg,
122
+ fontSize: "9",
123
+ fontWeight: "700",
124
+ fontFamily: "system-ui, sans-serif",
125
+ children: (key || "?").charAt(0).toUpperCase()
126
+ })]
127
+ });
128
+ }
129
+ //#endregion
130
+ //#region node_modules/.pnpm/@lobehub+icons-static-svg@1.95.1/node_modules/@lobehub/icons-static-svg/icons/ai21.svg
131
+ var ai21_default = "data:image/svg+xml,<svg fill=\"currentColor\" fill-rule=\"evenodd\" height=\"1em\" style=\"flex:none;line-height:1\" viewBox=\"0 0 24 24\" width=\"1em\" xmlns=\"http://www.w3.org/2000/svg\"><title>AI21</title><path d=\"M6.47 17l-.367-1.189H2.718L2.35 17H0l3.398-9.789h2.026L8.864 17H6.47zm-2.052-6.993l-1.17 4.028H5.56l-1.142-4.028zm4.707-2.796h2.23V17h-2.23V7.211zM11.955 15c.1-.483.277-.946.524-1.37.214-.359.482-.68.795-.951.32-.273.658-.52 1.013-.741.28-.168.54-.33.781-.483.222-.14.433-.296.632-.468.172-.148.317-.325.428-.525.107-.199.16-.423.157-.65 0-.392-.104-.674-.313-.846a1.176 1.176 0 00-.775-.259 1.207 1.207 0 00-.863.329c-.231.219-.347.585-.347 1.098H11.8a3.387 3.387 0 01.224-1.245c.146-.377.371-.716.66-.993.306-.29.667-.514 1.06-.657A4.04 4.04 0 0115.183 7c.42-.002.84.057 1.244.175.376.107.73.287 1.04.531.305.246.55.562.714.923.185.419.275.875.265 1.335.005.39-.084.774-.259 1.12-.167.328-.38.63-.632.894-.246.259-.517.49-.808.693-.29.2-.554.37-.789.51-.326.224-.596.417-.809.58a3.872 3.872 0 00-.51.455 1.229 1.229 0 00-.265.434 1.633 1.633 0 00-.074.517h4.078V17h-6.606a9.24 9.24 0 01.183-2zM18.8 8.93a5.05 5.05 0 001.135-.105c.25-.049.484-.156.686-.314.163-.139.28-.324.34-.532.068-.25.1-.51.095-.77H23V17h-2.243v-6.475H18.8V8.93z\"></path></svg>";
132
+ //#endregion
133
+ //#region node_modules/.pnpm/@lobehub+icons-static-svg@1.95.1/node_modules/@lobehub/icons-static-svg/icons/alibaba.svg
134
+ var alibaba_default = "data:image/svg+xml,<svg fill=\"currentColor\" fill-rule=\"evenodd\" height=\"1em\" style=\"flex:none;line-height:1\" viewBox=\"0 0 24 24\" width=\"1em\" xmlns=\"http://www.w3.org/2000/svg\"><title>Alibaba</title><path d=\"M24 14.014c-2.8 1.512-5.62 2.896-8.759 3.524-.7.139-1.476.139-2.187.043-.678-.085-1.017-.682-.776-1.31.23-.585.536-1.181.93-1.671.852-1.065 1.814-2.034 2.678-3.088a15.75 15.75 0 001.422-2.054c.306-.511.164-1.129-.372-1.384-.897-.437-1.859-.745-2.81-1.075-.11-.043-.274.074-.492.149.273.244.47.425.743.67-2.821.48-5.49 1.16-8.08 2.098-.012.053-.033.095-.023.117.383.585.208 1.032-.35 1.394a2.365 2.365 0 00-.568.522c1.706.5 3.226.213 4.68-.735-.087-.127-.175-.244-.262-.372.546.096.874.394.918.862.011.107-.054.213-.087.32-.077-.086-.175-.17-.24-.267-.045-.064-.056-.138-.088-.245-1.728 1.15-3.587 1.438-5.632.842 0 .404-.022.745.011 1.075.022.287-.098.415-.36.564-.591.362-1.204.735-1.696 1.214-.59.585-.371 1.299.427 1.597.907.34 1.859.35 2.81.234 1.126-.139 2.23-.32 3.456-.49-1.433.67-2.844 1.14-4.33 1.33-1.04.14-2.078.214-3.106-.084-1.476-.415-2.133-1.501-1.75-2.96.361-1.363 1.236-2.449 2.176-3.45 3.139-3.332 7.108-5.024 11.7-5.365 1.072-.074 2.155.064 3.16.511 1.411.639 2.002 1.99 1.313 3.354-.448.905-1.072 1.735-1.695 2.555-.612.809-1.301 1.554-1.946 2.331-.186.234-.361.48-.503.745-.274.5-.088.83.492.778 1.213-.118 2.45-.213 3.62-.511 1.716-.437 3.389-1.054 5.084-1.597.175-.043.339-.107.492-.17z\"></path></svg>";
135
+ //#endregion
136
+ //#region node_modules/.pnpm/@lobehub+icons-static-svg@1.95.1/node_modules/@lobehub/icons-static-svg/icons/anthropic.svg
137
+ var anthropic_default = "data:image/svg+xml,<svg fill=\"currentColor\" fill-rule=\"evenodd\" height=\"1em\" style=\"flex:none;line-height:1\" viewBox=\"0 0 24 24\" width=\"1em\" xmlns=\"http://www.w3.org/2000/svg\"><title>Anthropic</title><path d=\"M13.827 3.52h3.603L24 20h-3.603l-6.57-16.48zm-7.258 0h3.767L16.906 20h-3.674l-1.343-3.461H5.017l-1.344 3.46H0L6.57 3.522zm4.132 9.959L8.453 7.687 6.205 13.48H10.7z\"></path></svg>";
138
+ //#endregion
139
+ //#region node_modules/.pnpm/@lobehub+icons-static-svg@1.95.1/node_modules/@lobehub/icons-static-svg/icons/azure.svg
140
+ var azure_default = "data:image/svg+xml,<svg fill=\"currentColor\" fill-rule=\"evenodd\" height=\"1em\" style=\"flex:none;line-height:1\" viewBox=\"0 0 24 24\" width=\"1em\" xmlns=\"http://www.w3.org/2000/svg\"><title>Azure</title><path d=\"M18.397 15.296H7.4a.51.51 0 00-.347.882l7.066 6.595c.206.192.477.298.758.298h6.226l-2.706-7.775z\" fill-opacity=\".75\"></path><path d=\"M8.295.857c-.477 0-.9.304-1.053.756L.495 21.605a1.11 1.11 0 001.052 1.466h5.43c.477 0 .9-.304 1.053-.755l1.341-3.975-2.318-2.163a.51.51 0 01.347-.882h3L15.271.857H8.295z\" fill-opacity=\".5\"></path><path d=\"M17.193 1.613a1.11 1.11 0 00-1.052-.756h-7.81.035c.477 0 .9.304 1.052.756l6.748 19.992a1.11 1.11 0 01-1.052 1.466h-.12 7.895a1.11 1.11 0 001.052-1.466L17.193 1.613z\"></path></svg>";
141
+ //#endregion
142
+ //#region node_modules/.pnpm/@lobehub+icons-static-svg@1.95.1/node_modules/@lobehub/icons-static-svg/icons/bedrock.svg
143
+ var bedrock_default = "data:image/svg+xml,<svg fill=\"currentColor\" fill-rule=\"evenodd\" height=\"1em\" style=\"flex:none;line-height:1\" viewBox=\"0 0 24 24\" width=\"1em\" xmlns=\"http://www.w3.org/2000/svg\"><title>Bedrock</title><path d=\"M13.05 15.513h3.08c.214 0 .389.177.389.394v1.82a1.704 1.704 0 011.296 1.661c0 .943-.755 1.708-1.685 1.708-.931 0-1.686-.765-1.686-1.708 0-.807.554-1.484 1.297-1.662v-1.425h-2.69v4.663a.395.395 0 01-.188.338l-2.69 1.641a.385.385 0 01-.405-.002l-4.926-3.086a.395.395 0 01-.185-.336V16.3L2.196 14.87A.395.395 0 012 14.555L2 14.528V9.406c0-.14.073-.27.192-.34l2.465-1.462V4.448c0-.129.062-.249.165-.322l.021-.014L9.77 1.058a.385.385 0 01.407 0l2.69 1.675a.395.395 0 01.185.336V7.6h3.856V5.683a1.704 1.704 0 01-1.296-1.662c0-.943.755-1.708 1.685-1.708.931 0 1.685.765 1.685 1.708 0 .807-.553 1.484-1.296 1.662v2.311a.391.391 0 01-.389.394h-4.245v1.806h6.624a1.69 1.69 0 011.64-1.313c.93 0 1.685.764 1.685 1.707 0 .943-.754 1.708-1.685 1.708a1.69 1.69 0 01-1.64-1.314H13.05v1.937h4.953l.915 1.18a1.66 1.66 0 01.84-.227c.931 0 1.685.764 1.685 1.707 0 .943-.754 1.708-1.685 1.708-.93 0-1.685-.765-1.685-1.708 0-.346.102-.668.276-.937l-.724-.935H13.05v1.806zM9.973 1.856L7.93 3.122V6.09h-.778V3.604L5.435 4.669v2.945l2.11 1.36L9.712 7.61V5.334h.778V7.83c0 .136-.07.263-.184.335L7.963 9.638v2.081l1.422 1.009-.446.646-1.406-.998-1.53 1.005-.423-.66 1.605-1.055v-1.99L5.038 8.29l-2.26 1.34v1.676l1.972-1.189.398.677-2.37 1.429V14.3l2.166 1.258 2.27-1.368.397.677-2.176 1.311V19.3l1.876 1.175 2.365-1.426.398.678-2.017 1.216 1.918 1.201 2.298-1.403v-5.78l-4.758 2.893-.4-.675 5.158-3.136V3.289L9.972 1.856zM16.13 18.47a.913.913 0 00-.908.92c0 .507.406.918.908.918a.913.913 0 00.907-.919.913.913 0 00-.907-.92zm3.63-3.81a.913.913 0 00-.908.92c0 .508.406.92.907.92a.913.913 0 00.908-.92.913.913 0 00-.908-.92zm1.555-4.99a.913.913 0 00-.908.92c0 .507.407.918.908.918a.913.913 0 00.907-.919.913.913 0 00-.907-.92zM17.296 3.1a.913.913 0 00-.907.92c0 .508.406.92.907.92a.913.913 0 00.908-.92.913.913 0 00-.908-.92z\"></path></svg>";
144
+ //#endregion
145
+ //#region node_modules/.pnpm/@lobehub+icons-static-svg@1.95.1/node_modules/@lobehub/icons-static-svg/icons/cerebras.svg
146
+ var cerebras_default = "data:image/svg+xml,<svg fill=\"currentColor\" fill-rule=\"evenodd\" height=\"1em\" style=\"flex:none;line-height:1\" viewBox=\"0 0 24 24\" width=\"1em\" xmlns=\"http://www.w3.org/2000/svg\"><title>Cerebras</title><path clip-rule=\"evenodd\" d=\"M14.121 2.701a9.299 9.299 0 000 18.598V22.7c-5.91 0-10.7-4.791-10.7-10.701S8.21 1.299 14.12 1.299V2.7zm4.752 3.677A7.353 7.353 0 109.42 17.643l-.901 1.074a8.754 8.754 0 01-1.08-12.334 8.755 8.755 0 0112.335-1.08l-.901 1.075zm-2.255.844a5.407 5.407 0 00-5.048 9.563l-.656 1.24a6.81 6.81 0 016.358-12.043l-.654 1.24zM14.12 8.539a3.46 3.46 0 100 6.922v1.402a4.863 4.863 0 010-9.726v1.402z\"></path><path d=\"M15.407 10.836a2.24 2.24 0 00-.51-.409 1.084 1.084 0 00-.544-.152c-.255 0-.483.047-.684.14a1.58 1.58 0 00-.84.912c-.074.203-.11.416-.11.631 0 .218.036.43.11.631a1.594 1.594 0 00.84.913c.2.093.43.14.684.14.216 0 .417-.046.602-.135.188-.09.35-.225.475-.392l.928 1.006c-.14.14-.3.261-.482.363a3.367 3.367 0 01-1.083.38c-.17.026-.317.04-.44.04a3.315 3.315 0 01-1.182-.21 2.825 2.825 0 01-.961-.597 2.816 2.816 0 01-.644-.929 2.987 2.987 0 01-.238-1.21c0-.444.08-.847.238-1.21.15-.35.368-.666.643-.929.278-.261.605-.464.962-.596a3.315 3.315 0 011.182-.21c.355 0 .712.068 1.072.204.361.138.685.36.944.649l-.962.97z\"></path></svg>";
147
+ //#endregion
148
+ //#region node_modules/.pnpm/@lobehub+icons-static-svg@1.95.1/node_modules/@lobehub/icons-static-svg/icons/cohere.svg
149
+ var cohere_default = "data:image/svg+xml,<svg fill=\"currentColor\" fill-rule=\"evenodd\" height=\"1em\" style=\"flex:none;line-height:1\" viewBox=\"0 0 24 24\" width=\"1em\" xmlns=\"http://www.w3.org/2000/svg\"><title>Cohere</title><path clip-rule=\"evenodd\" d=\"M8.128 14.099c.592 0 1.77-.033 3.398-.703 1.897-.781 5.672-2.2 8.395-3.656 1.905-1.018 2.74-2.366 2.74-4.18A4.56 4.56 0 0018.1 1H7.549A6.55 6.55 0 001 7.55c0 3.617 2.745 6.549 7.128 6.549z\"></path><path clip-rule=\"evenodd\" d=\"M9.912 18.61a4.387 4.387 0 012.705-4.052l3.323-1.38c3.361-1.394 7.06 1.076 7.06 4.715a5.104 5.104 0 01-5.105 5.104l-3.597-.001a4.386 4.386 0 01-4.386-4.387z\"></path><path d=\"M4.776 14.962A3.775 3.775 0 001 18.738v.489a3.776 3.776 0 007.551 0v-.49a3.775 3.775 0 00-3.775-3.775z\"></path></svg>";
150
+ //#endregion
151
+ //#region node_modules/.pnpm/@lobehub+icons-static-svg@1.95.1/node_modules/@lobehub/icons-static-svg/icons/deepseek.svg
152
+ var deepseek_default = "data:image/svg+xml,<svg fill=\"currentColor\" fill-rule=\"evenodd\" height=\"1em\" style=\"flex:none;line-height:1\" viewBox=\"0 0 24 24\" width=\"1em\" xmlns=\"http://www.w3.org/2000/svg\"><title>DeepSeek</title><path d=\"M23.748 4.482c-.254-.124-.364.113-.512.234-.051.039-.094.09-.137.136-.372.397-.806.657-1.373.626-.829-.046-1.537.214-2.163.848-.133-.782-.575-1.248-1.247-1.548-.352-.156-.708-.311-.955-.65-.172-.241-.219-.51-.305-.774-.055-.16-.11-.323-.293-.35-.2-.031-.278.136-.356.276-.313.572-.434 1.202-.422 1.84.027 1.436.633 2.58 1.838 3.393.137.093.172.187.129.323-.082.28-.18.552-.266.833-.055.179-.137.217-.329.14a5.526 5.526 0 01-1.736-1.18c-.857-.828-1.631-1.742-2.597-2.458a11.365 11.365 0 00-.689-.471c-.985-.957.13-1.743.388-1.836.27-.098.093-.432-.779-.428-.872.004-1.67.295-2.687.684a3.055 3.055 0 01-.465.137 9.597 9.597 0 00-2.883-.102c-1.885.21-3.39 1.102-4.497 2.623C.082 8.606-.231 10.684.152 12.85c.403 2.284 1.569 4.175 3.36 5.653 1.858 1.533 3.997 2.284 6.438 2.14 1.482-.085 3.133-.284 4.994-1.86.47.234.962.327 1.78.397.63.059 1.236-.03 1.705-.128.735-.156.684-.837.419-.961-2.155-1.004-1.682-.595-2.113-.926 1.096-1.296 2.746-2.642 3.392-7.003.05-.347.007-.565 0-.845-.004-.17.035-.237.23-.256a4.173 4.173 0 001.545-.475c1.396-.763 1.96-2.015 2.093-3.517.02-.23-.004-.467-.247-.588zM11.581 18c-2.089-1.642-3.102-2.183-3.52-2.16-.392.024-.321.471-.235.763.09.288.207.486.371.739.114.167.192.416-.113.603-.673.416-1.842-.14-1.897-.167-1.361-.802-2.5-1.86-3.301-3.307-.774-1.393-1.224-2.887-1.298-4.482-.02-.386.093-.522.477-.592a4.696 4.696 0 011.529-.039c2.132.312 3.946 1.265 5.468 2.774.868.86 1.525 1.887 2.202 2.891.72 1.066 1.494 2.082 2.48 2.914.348.292.625.514.891.677-.802.09-2.14.11-3.054-.614zm1-6.44a.306.306 0 01.415-.287.302.302 0 01.2.288.306.306 0 01-.31.307.303.303 0 01-.304-.308zm3.11 1.596c-.2.081-.399.151-.59.16a1.245 1.245 0 01-.798-.254c-.274-.23-.47-.358-.552-.758a1.73 1.73 0 01.016-.588c.07-.327-.008-.537-.239-.727-.187-.156-.426-.199-.688-.199a.559.559 0 01-.254-.078c-.11-.054-.2-.19-.114-.358.028-.054.16-.186.192-.21.356-.202.767-.136 1.146.016.352.144.618.408 1.001.782.391.451.462.576.685.914.176.265.336.537.445.848.067.195-.019.354-.25.452z\"></path></svg>";
153
+ //#endregion
154
+ //#region node_modules/.pnpm/@lobehub+icons-static-svg@1.95.1/node_modules/@lobehub/icons-static-svg/icons/elevenlabs.svg
155
+ var elevenlabs_default = "data:image/svg+xml,<svg fill=\"currentColor\" fill-rule=\"evenodd\" height=\"1em\" style=\"flex:none;line-height:1\" viewBox=\"0 0 24 24\" width=\"1em\" xmlns=\"http://www.w3.org/2000/svg\"><title>ElevenLabs</title><path d=\"M5 0h5v24H5V0zM14 0h5v24h-5V0z\"></path></svg>";
156
+ //#endregion
157
+ //#region node_modules/.pnpm/@lobehub+icons-static-svg@1.95.1/node_modules/@lobehub/icons-static-svg/icons/fal.svg
158
+ var fal_default = "data:image/svg+xml,<svg fill=\"currentColor\" fill-rule=\"evenodd\" height=\"1em\" style=\"flex:none;line-height:1\" viewBox=\"0 0 24 24\" width=\"1em\" xmlns=\"http://www.w3.org/2000/svg\"><title>Fal</title><path clip-rule=\"evenodd\" d=\"M15.477 0c.415 0 .749.338.788.752a7.775 7.775 0 006.985 6.984c.413.04.752.373.752.788v6.952c0 .415-.338.748-.752.788a7.775 7.775 0 00-6.985 6.984c-.04.414-.373.752-.788.752H8.525c-.416 0-.749-.338-.789-.752a7.775 7.775 0 00-6.984-6.984c-.414-.04-.752-.373-.752-.788V8.524c0-.415.338-.748.752-.788A7.775 7.775 0 007.736.752C7.776.338 8.11 0 8.526 0h6.95zM4.819 11.98a7.226 7.226 0 007.223 7.23 7.226 7.226 0 007.223-7.23c0-3.994-3.234-7.23-7.223-7.23a7.227 7.227 0 00-7.223 7.23z\"></path></svg>";
159
+ //#endregion
160
+ //#region node_modules/.pnpm/@lobehub+icons-static-svg@1.95.1/node_modules/@lobehub/icons-static-svg/icons/fireworks.svg
161
+ var fireworks_default = "data:image/svg+xml,<svg fill=\"currentColor\" fill-rule=\"evenodd\" height=\"1em\" style=\"flex:none;line-height:1\" viewBox=\"0 0 24 24\" width=\"1em\" xmlns=\"http://www.w3.org/2000/svg\"><title>Fireworks</title><path clip-rule=\"evenodd\" d=\"M14.8 5l-2.801 6.795L9.195 5H7.397l3.072 7.428a1.64 1.64 0 003.038.002L16.598 5H14.8zm1.196 10.352l5.124-5.244-.699-1.669-5.596 5.739a1.664 1.664 0 00-.343 1.807 1.642 1.642 0 001.516 1.012L16 17l8-.02-.699-1.669-7.303.041h-.002zM2.88 10.104l.699-1.669 5.596 5.739c.468.479.603 1.189.343 1.807a1.643 1.643 0 01-1.516 1.012l-8-.018-.002.002.699-1.669 7.303.042-5.122-5.246z\"></path></svg>";
162
+ //#endregion
163
+ //#region node_modules/.pnpm/@lobehub+icons-static-svg@1.95.1/node_modules/@lobehub/icons-static-svg/icons/google.svg
164
+ var google_default = "data:image/svg+xml,<svg fill=\"currentColor\" fill-rule=\"evenodd\" height=\"1em\" style=\"flex:none;line-height:1\" viewBox=\"0 0 24 24\" width=\"1em\" xmlns=\"http://www.w3.org/2000/svg\"><title>Google</title><path d=\"M23 12.245c0-.905-.075-1.565-.236-2.25h-10.54v4.083h6.186c-.124 1.014-.797 2.542-2.294 3.569l-.021.136 3.332 2.53.23.022C21.779 18.417 23 15.593 23 12.245z\"></path><path d=\"M12.225 23c3.03 0 5.574-.978 7.433-2.665l-3.542-2.688c-.948.648-2.22 1.1-3.891 1.1a6.745 6.745 0 01-6.386-4.572l-.132.011-3.465 2.628-.045.124C4.043 20.531 7.835 23 12.225 23z\"></path><path d=\"M5.84 14.175A6.65 6.65 0 015.463 12c0-.758.138-1.491.361-2.175l-.006-.147-3.508-2.67-.115.054A10.831 10.831 0 001 12c0 1.772.436 3.447 1.197 4.938l3.642-2.763z\"></path><path d=\"M12.225 5.253c2.108 0 3.529.892 4.34 1.638l3.167-3.031C17.787 2.088 15.255 1 12.225 1 7.834 1 4.043 3.469 2.197 7.062l3.63 2.763a6.77 6.77 0 016.398-4.572z\"></path></svg>";
165
+ //#endregion
166
+ //#region node_modules/.pnpm/@lobehub+icons-static-svg@1.95.1/node_modules/@lobehub/icons-static-svg/icons/groq.svg
167
+ var groq_default = "data:image/svg+xml,<svg fill=\"currentColor\" fill-rule=\"evenodd\" height=\"1em\" style=\"flex:none;line-height:1\" viewBox=\"0 0 24 24\" width=\"1em\" xmlns=\"http://www.w3.org/2000/svg\"><title>Groq</title><path d=\"M12.036 2c-3.853-.035-7 3-7.036 6.781-.035 3.782 3.055 6.872 6.908 6.907h2.42v-2.566h-2.292c-2.407.028-4.38-1.866-4.408-4.23-.029-2.362 1.901-4.298 4.308-4.326h.1c2.407 0 4.358 1.915 4.365 4.278v6.305c0 2.342-1.944 4.25-4.323 4.279a4.375 4.375 0 01-3.033-1.252l-1.851 1.818A7 7 0 0012.029 22h.092c3.803-.056 6.858-3.083 6.879-6.816v-6.5C18.907 4.963 15.817 2 12.036 2z\"></path></svg>";
168
+ //#endregion
169
+ //#region node_modules/.pnpm/@lobehub+icons-static-svg@1.95.1/node_modules/@lobehub/icons-static-svg/icons/kling.svg
170
+ var kling_default = "data:image/svg+xml,<svg fill=\"currentColor\" fill-rule=\"evenodd\" height=\"1em\" style=\"flex:none;line-height:1\" viewBox=\"0 0 24 24\" width=\"1em\" xmlns=\"http://www.w3.org/2000/svg\"><title>Kling</title><path clip-rule=\"evenodd\" d=\"M5.493 21.234c-1.112-1.451-1.109-4.263-.081-7.459l-4.557-2.63a1.683 1.683 0 01-.85-1.304 1.505 1.505 0 01.08-.622 13.18 13.18 0 011.037-2.255c3.476-6.02 10.916-8.23 16.619-4.938.46.266.82.67 1.081 1.184.785 1.545.685 4.096-.234 6.954l4.557 2.631c.339.196.596.492.736.832a1.53 1.53 0 01.034 1.093 13.146 13.146 0 01-1.037 2.255c-3.476 6.02-10.916 8.23-16.619 4.938a2.6 2.6 0 01-.766-.68zm11.096-6.615c-2.073 3.591-5.808 5.316-8.343 3.852-1.267-.731-1.994-2.122-2.145-3.778-.095-1.035.036-2.173.4-3.32.217-.684.517-1.37.902-2.039l.008-.014c2.073-3.59 5.808-5.315 8.343-3.852.633.366 1.13.895 1.49 1.54.986 1.772.922 4.415-.285 6.914-.111.23-.232.457-.362.683l-.008.014z\"></path></svg>";
171
+ //#endregion
172
+ //#region node_modules/.pnpm/@lobehub+icons-static-svg@1.95.1/node_modules/@lobehub/icons-static-svg/icons/luma.svg
173
+ var luma_default = "data:image/svg+xml,<svg fill=\"currentColor\" fill-rule=\"evenodd\" height=\"1em\" style=\"flex:none;line-height:1\" viewBox=\"0 0 24 24\" width=\"1em\" xmlns=\"http://www.w3.org/2000/svg\"><title>Luma</title><path d=\"M12.393 24L2 17.998l10.393-6 10.392 6-10.393 6z\" fill-opacity=\".66\"></path><path d=\"M2 5.999L12.393 0v24L2 18V5.999z\" fill-opacity=\".66\"></path></svg>";
174
+ //#endregion
175
+ //#region node_modules/.pnpm/@lobehub+icons-static-svg@1.95.1/node_modules/@lobehub/icons-static-svg/icons/meta.svg
176
+ var meta_default = "data:image/svg+xml,<svg fill=\"currentColor\" fill-rule=\"evenodd\" height=\"1em\" style=\"flex:none;line-height:1\" viewBox=\"0 0 24 24\" width=\"1em\" xmlns=\"http://www.w3.org/2000/svg\"><title>Meta</title><path d=\"M6.897 4c1.915 0 3.516.932 5.43 3.376l.282-.373c.19-.246.383-.484.58-.71l.313-.35C14.588 4.788 15.792 4 17.225 4c1.273 0 2.469.557 3.491 1.516l.218.213c1.73 1.765 2.917 4.71 3.053 8.026l.011.392.002.25c0 1.501-.28 2.759-.818 3.7l-.14.23-.108.153c-.301.42-.664.758-1.086 1.009l-.265.142-.087.04a3.493 3.493 0 01-.302.118 4.117 4.117 0 01-1.33.208c-.524 0-.996-.067-1.438-.215-.614-.204-1.163-.56-1.726-1.116l-.227-.235c-.753-.812-1.534-1.976-2.493-3.586l-1.43-2.41-.544-.895-1.766 3.13-.343.592C7.597 19.156 6.227 20 4.356 20c-1.21 0-2.205-.42-2.936-1.182l-.168-.184c-.484-.573-.837-1.311-1.043-2.189l-.067-.32a8.69 8.69 0 01-.136-1.288L0 14.468c.002-.745.06-1.49.174-2.23l.1-.573c.298-1.53.828-2.958 1.536-4.157l.209-.34c1.177-1.83 2.789-3.053 4.615-3.16L6.897 4zm-.033 2.615l-.201.01c-.83.083-1.606.673-2.252 1.577l-.138.199-.01.018c-.67 1.017-1.185 2.378-1.456 3.845l-.004.022a12.591 12.591 0 00-.207 2.254l.002.188c.004.18.017.36.04.54l.043.291c.092.503.257.908.486 1.208l.117.137c.303.323.698.492 1.17.492 1.1 0 1.796-.676 3.696-3.641l2.175-3.4.454-.701-.139-.198C9.11 7.3 8.084 6.616 6.864 6.616zm10.196-.552l-.176.007c-.635.048-1.223.359-1.82.933l-.196.198c-.439.462-.887 1.064-1.367 1.807l.266.398c.18.274.362.56.55.858l.293.475 1.396 2.335.695 1.114c.583.926 1.03 1.6 1.408 2.082l.213.262c.282.326.529.54.777.673l.102.05c.227.1.457.138.718.138.176.002.35-.023.518-.073.338-.104.61-.32.813-.637l.095-.163.077-.162c.194-.459.29-1.06.29-1.785l-.006-.449c-.08-2.871-.938-5.372-2.2-6.798l-.176-.189c-.67-.683-1.444-1.074-2.27-1.074z\"></path></svg>";
177
+ //#endregion
178
+ //#region node_modules/.pnpm/@lobehub+icons-static-svg@1.95.1/node_modules/@lobehub/icons-static-svg/icons/mistral.svg
179
+ var mistral_default = "data:image/svg+xml,<svg fill=\"currentColor\" fill-rule=\"evenodd\" height=\"1em\" style=\"flex:none;line-height:1\" viewBox=\"0 0 24 24\" width=\"1em\" xmlns=\"http://www.w3.org/2000/svg\"><title>Mistral</title><path clip-rule=\"evenodd\" d=\"M3.428 3.4h3.429v3.428h3.429v3.429h-.002 3.431V6.828h3.427V3.4h3.43v13.714H24v3.429H13.714v-3.428h-3.428v-3.429h-3.43v3.428h3.43v3.429H0v-3.429h3.428V3.4zm10.286 13.715h3.428v-3.429h-3.427v3.429z\"></path></svg>";
180
+ //#endregion
181
+ //#region node_modules/.pnpm/@lobehub+icons-static-svg@1.95.1/node_modules/@lobehub/icons-static-svg/icons/openai.svg
182
+ var openai_default = "data:image/svg+xml,<svg fill=\"currentColor\" fill-rule=\"evenodd\" height=\"1em\" style=\"flex:none;line-height:1\" viewBox=\"0 0 24 24\" width=\"1em\" xmlns=\"http://www.w3.org/2000/svg\"><title>OpenAI</title><path d=\"M9.205 8.658v-2.26c0-.19.072-.333.238-.428l4.543-2.616c.619-.357 1.356-.523 2.117-.523 2.854 0 4.662 2.212 4.662 4.566 0 .167 0 .357-.024.547l-4.71-2.759a.797.797 0 00-.856 0l-5.97 3.473zm10.609 8.8V12.06c0-.333-.143-.57-.429-.737l-5.97-3.473 1.95-1.118a.433.433 0 01.476 0l4.543 2.617c1.309.76 2.189 2.378 2.189 3.948 0 1.808-1.07 3.473-2.76 4.163zM7.802 12.703l-1.95-1.142c-.167-.095-.239-.238-.239-.428V5.899c0-2.545 1.95-4.472 4.591-4.472 1 0 1.927.333 2.712.928L8.23 5.067c-.285.166-.428.404-.428.737v6.898zM12 15.128l-2.795-1.57v-3.33L12 8.658l2.795 1.57v3.33L12 15.128zm1.796 7.23c-1 0-1.927-.332-2.712-.927l4.686-2.712c.285-.166.428-.404.428-.737v-6.898l1.974 1.142c.167.095.238.238.238.428v5.233c0 2.545-1.974 4.472-4.614 4.472zm-5.637-5.303l-4.544-2.617c-1.308-.761-2.188-2.378-2.188-3.948A4.482 4.482 0 014.21 6.327v5.423c0 .333.143.571.428.738l5.947 3.449-1.95 1.118a.432.432 0 01-.476 0zm-.262 3.9c-2.688 0-4.662-2.021-4.662-4.519 0-.19.024-.38.047-.57l4.686 2.71c.286.167.571.167.856 0l5.97-3.448v2.26c0 .19-.07.333-.237.428l-4.543 2.616c-.619.357-1.356.523-2.117.523zm5.899 2.83a5.947 5.947 0 005.827-4.756C22.287 18.339 24 15.84 24 13.296c0-1.665-.713-3.282-1.998-4.448.119-.5.19-.999.19-1.498 0-3.401-2.759-5.947-5.946-5.947-.642 0-1.26.095-1.88.31A5.962 5.962 0 0010.205 0a5.947 5.947 0 00-5.827 4.757C1.713 5.447 0 7.945 0 10.49c0 1.666.713 3.283 1.998 4.448-.119.5-.19 1-.19 1.499 0 3.401 2.759 5.946 5.946 5.946.642 0 1.26-.095 1.88-.309a5.96 5.96 0 004.162 1.713z\"></path></svg>";
183
+ //#endregion
184
+ //#region node_modules/.pnpm/@lobehub+icons-static-svg@1.95.1/node_modules/@lobehub/icons-static-svg/icons/openrouter.svg
185
+ var openrouter_default = "data:image/svg+xml,<svg fill=\"currentColor\" fill-rule=\"evenodd\" height=\"1em\" style=\"flex:none;line-height:1\" viewBox=\"0 0 24 24\" width=\"1em\" xmlns=\"http://www.w3.org/2000/svg\"><title>OpenRouter</title><path d=\"M18.654 3.87a5.087 5.087 0 110 10.174L23.7 19.09c.64.641.187 1.737-.72 1.737H8.48a8.479 8.479 0 010-16.958h10.175zM8.479 7.26a5.087 5.087 0 100 10.176 5.087 5.087 0 000-10.175z\"></path></svg>";
186
+ //#endregion
187
+ //#region node_modules/.pnpm/@lobehub+icons-static-svg@1.95.1/node_modules/@lobehub/icons-static-svg/icons/perplexity.svg
188
+ var perplexity_default = "data:image/svg+xml,<svg fill=\"currentColor\" fill-rule=\"evenodd\" height=\"1em\" style=\"flex:none;line-height:1\" viewBox=\"0 0 24 24\" width=\"1em\" xmlns=\"http://www.w3.org/2000/svg\"><title>Perplexity</title><path d=\"M19.785 0v7.272H22.5V17.62h-2.935V24l-7.037-6.194v6.145h-1.091v-6.152L4.392 24v-6.465H1.5V7.188h2.884V0l7.053 6.494V.19h1.09v6.49L19.786 0zm-7.257 9.044v7.319l5.946 5.234V14.44l-5.946-5.397zm-1.099-.08l-5.946 5.398v7.235l5.946-5.234V8.965zm8.136 7.58h1.844V8.349H13.46l6.105 5.54v2.655zm-8.982-8.28H2.59v8.195h1.8v-2.576l6.192-5.62zM5.475 2.476v4.71h5.115l-5.115-4.71zm13.219 0l-5.115 4.71h5.115v-4.71z\"></path></svg>";
189
+ //#endregion
190
+ //#region node_modules/.pnpm/@lobehub+icons-static-svg@1.95.1/node_modules/@lobehub/icons-static-svg/icons/pika.svg
191
+ var pika_default = "data:image/svg+xml,<svg fill=\"currentColor\" fill-rule=\"evenodd\" height=\"1em\" style=\"flex:none;line-height:1\" viewBox=\"0 0 24 24\" width=\"1em\" xmlns=\"http://www.w3.org/2000/svg\"><title>Pika</title><path d=\"M.661 19.889h8.666c-.14-1.41-1.145-2.955-3.601-4.007v-.104c2.863.88 3.893 2.386 4.312 4.11H20.73l-1.72-1.476C20.017 15.244 24 13.747 24 13.747c-.141-2.541-1.441-4.909-5.787-6.827L8.326 3c.331 4.179 1.811 6.575 5.523 7.163v.102c-2.579-.064-4.368-1.216-5.275-3.588C.698 8.123-1.201 14.156.66 19.889z\"></path></svg>";
192
+ //#endregion
193
+ //#region node_modules/.pnpm/@lobehub+icons-static-svg@1.95.1/node_modules/@lobehub/icons-static-svg/icons/replicate.svg
194
+ var replicate_default = "data:image/svg+xml,<svg fill=\"currentColor\" fill-rule=\"evenodd\" height=\"1em\" style=\"flex:none;line-height:1\" viewBox=\"0 0 24 24\" width=\"1em\" xmlns=\"http://www.w3.org/2000/svg\"><title>Replicate</title><path d=\"M22 10.552v2.26h-7.932V22H11.54V10.552H22zM22 2v2.264H4.528V22H2V2h20zm0 4.276V8.54H9.296V22H6.768V6.276H22z\"></path></svg>";
195
+ //#endregion
196
+ //#region node_modules/.pnpm/@lobehub+icons-static-svg@1.95.1/node_modules/@lobehub/icons-static-svg/icons/runway.svg
197
+ var runway_default = "data:image/svg+xml,<svg fill=\"currentColor\" fill-rule=\"evenodd\" height=\"1em\" style=\"flex:none;line-height:1\" viewBox=\"0 0 24 24\" width=\"1em\" xmlns=\"http://www.w3.org/2000/svg\"><title>Runway</title><path d=\"M17.86 22.992c-2.669.245-4.887-2.876-6.597-4.454C10.398 24.759 1 24.177 1 17.86V6.15c0-.921.244-1.861.733-2.65C2.635 1.977 4.383.98 6.15 1h11.71c6.316 0 6.918 9.398.677 10.243l2.97 2.951c3.252 3.064.808 8.929-3.646 8.797zm-1.428-3.721c1.842 1.898 4.774-1.034 2.876-2.876l-5.132-5.132H11.3v2.876l4.436 4.436.696.696zM4.12 17.842c-.037 2.632 4.117 2.632 4.06 0V6.132c.038-1.316-1.353-2.35-2.612-1.955-.057.019-.113.037-.15.056-.79.301-1.335 1.09-1.317 1.936v11.673h.02zm13.74-9.68c2.632.037 2.632-4.098 0-4.06h-6.973c.526 1.109.395 2.857.413 4.06h6.56z\"></path></svg>";
198
+ //#endregion
199
+ //#region node_modules/.pnpm/@lobehub+icons-static-svg@1.95.1/node_modules/@lobehub/icons-static-svg/icons/stability.svg
200
+ var stability_default = "data:image/svg+xml,<svg fill=\"currentColor\" fill-rule=\"evenodd\" height=\"1em\" style=\"flex:none;line-height:1\" viewBox=\"0 0 24 24\" width=\"1em\" xmlns=\"http://www.w3.org/2000/svg\"><title>Stability</title><path d=\"M7.223 21c4.252 0 7.018-2.22 7.018-5.56 0-2.59-1.682-4.236-4.69-4.918l-1.93-.571c-1.694-.375-2.683-.825-2.45-1.975.194-.957.773-1.497 2.122-1.497 4.285 0 5.873 1.497 5.873 1.497v-3.6S11.62 3 7.293 3C3.213 3 1 5.07 1 8.273c0 2.59 1.534 4.097 4.645 4.812l.334.083c.473.144 1.112.335 1.916.572 1.59.375 1.999.773 1.999 1.966 0 1.09-1.15 1.71-2.67 1.71C2.841 17.416 1 15.231 1 15.231v3.989S2.152 21 7.223 21z\"></path><path d=\"M20.374 20.73c1.505 0 2.626-1.073 2.626-2.526 0-1.484-1.089-2.526-2.626-2.526-1.505 0-2.594 1.042-2.594 2.526 0 1.484 1.089 2.526 2.594 2.526z\"></path></svg>";
201
+ //#endregion
202
+ //#region node_modules/.pnpm/@lobehub+icons-static-svg@1.95.1/node_modules/@lobehub/icons-static-svg/icons/together.svg
203
+ var together_default = "data:image/svg+xml,<svg fill=\"currentColor\" fill-rule=\"evenodd\" height=\"1em\" style=\"flex:none;line-height:1\" viewBox=\"0 0 24 24\" width=\"1em\" xmlns=\"http://www.w3.org/2000/svg\"><title>together.ai</title><path d=\"M23.197 4.503A6 6 0 0015 2.307a5.973 5.973 0 00-2.995 4.933l5.996.008v.515h-5.996c.039.937.298 1.87.8 2.74a6 6 0 1010.39-6z\"></path><path d=\"M.805 4.5A6 6 0 003 12.697a5.972 5.972 0 005.77.127L5.779 7.627l.446-.257 2.997 5.192A6 6 0 10.804 4.5z\"></path><path d=\"M12 23.894a6 6 0 005.999-6c0-2.13-1.1-3.996-2.775-5.06l-3.005 5.189-.444-.258 2.997-5.192A6 6 0 1012 23.894z\"></path></svg>";
204
+ //#endregion
205
+ //#region node_modules/.pnpm/@lobehub+icons-static-svg@1.95.1/node_modules/@lobehub/icons-static-svg/icons/vertexai.svg
206
+ var vertexai_default = "data:image/svg+xml,<svg fill=\"currentColor\" fill-rule=\"evenodd\" height=\"1em\" style=\"flex:none;line-height:1\" viewBox=\"0 0 24 24\" width=\"1em\" xmlns=\"http://www.w3.org/2000/svg\"><title>VertexAI</title><path d=\"M11.995 20.216a1.892 1.892 0 100 3.785 1.892 1.892 0 000-3.785zm0 2.806a.927.927 0 11.927-.914.914.914 0 01-.927.914z\"></path><path clip-rule=\"evenodd\" d=\"M21.687 14.144c.237.038.452.16.605.344a.978.978 0 01-.18 1.3l-8.24 6.082a1.892 1.892 0 00-1.147-1.508l8.28-6.08a.991.991 0 01.682-.138z\"></path><path clip-rule=\"evenodd\" d=\"M10.122 21.842l-8.217-6.066a.952.952 0 01-.206-1.287.978.978 0 011.287-.206l8.28 6.08a1.893 1.893 0 00-1.144 1.479z\"></path><path d=\"M4.273 4.475a.978.978 0 01-.965-.965V1.09a.978.978 0 111.943 0v2.42a.978.978 0 01-.978.965zM4.247 13.034a.978.978 0 100-1.956.978.978 0 000 1.956zM4.247 10.19a.978.978 0 100-1.956.978.978 0 000 1.956zM4.247 7.332a.978.978 0 100-1.956.978.978 0 000 1.956z\"></path><path d=\"M19.718 7.307a.978.978 0 01-.965-.979v-2.42a.965.965 0 011.93 0v2.42a.964.964 0 01-.965.979zM19.743 13.047a.978.978 0 100-1.956.978.978 0 000 1.956zM19.743 10.151a.978.978 0 100-1.956.978.978 0 000 1.956zM19.743 2.068a.978.978 0 100-1.956.978.978 0 000 1.956z\"></path><path d=\"M11.995 15.917a.978.978 0 01-.965-.965v-2.459a.978.978 0 011.943 0v2.433a.976.976 0 01-.978.991zM11.995 18.762a.978.978 0 100-1.956.978.978 0 000 1.956zM11.995 10.64a.978.978 0 100-1.956.978.978 0 000 1.956zM11.995 7.783a.978.978 0 100-1.956.978.978 0 000 1.956z\"></path><path d=\"M15.856 10.177a.978.978 0 01-.965-.965v-2.42a.977.977 0 011.702-.763.979.979 0 01.241.763v2.42a.978.978 0 01-.978.965zM15.869 4.913a.978.978 0 100-1.956.978.978 0 000 1.956zM15.869 15.853a.978.978 0 100-1.956.978.978 0 000 1.956zM15.869 12.996a.978.978 0 100-1.956.978.978 0 000 1.956z\"></path><path d=\"M8.121 15.853a.978.978 0 100-1.956.978.978 0 000 1.956zM8.121 7.783a.978.978 0 100-1.956.978.978 0 000 1.956zM8.121 4.913a.978.978 0 100-1.957.978.978 0 000 1.957zM8.134 12.996a.978.978 0 01-.978-.94V9.611a.965.965 0 011.93 0v2.445a.966.966 0 01-.952.94z\"></path></svg>";
207
+ //#endregion
208
+ //#region node_modules/.pnpm/@lobehub+icons-static-svg@1.95.1/node_modules/@lobehub/icons-static-svg/icons/xai.svg
209
+ var xai_default = "data:image/svg+xml,<svg fill=\"currentColor\" fill-rule=\"evenodd\" height=\"1em\" style=\"flex:none;line-height:1\" viewBox=\"0 0 24 24\" width=\"1em\" xmlns=\"http://www.w3.org/2000/svg\"><title>Grok</title><path d=\"M6.469 8.776L16.512 23h-4.464L2.005 8.776H6.47zm-.004 7.9l2.233 3.164L6.467 23H2l4.465-6.324zM22 2.582V23h-3.659V7.764L22 2.582zM22 1l-9.952 14.095-2.233-3.163L17.533 1H22z\"></path></svg>";
210
+ //#endregion
211
+ //#region node_modules/.pnpm/@lobehub+icons-static-svg@1.95.1/node_modules/@lobehub/icons-static-svg/icons/zai.svg
212
+ var zai_default = "data:image/svg+xml,<svg fill=\"currentColor\" fill-rule=\"evenodd\" height=\"1em\" style=\"flex:none;line-height:1\" viewBox=\"0 0 24 24\" width=\"1em\" xmlns=\"http://www.w3.org/2000/svg\"><title>Z.ai</title><path d=\"M12.105 2L9.927 4.953H.653L2.83 2h9.276zM23.254 19.048L21.078 22h-9.242l2.174-2.952h9.244zM24 2L9.264 22H0L14.736 2H24z\"></path></svg>";
213
+ //#endregion
214
+ //#region src/lib/model-brand.tsx
215
+ /**
216
+ * Resolve the canonical id for a model. Some upstreams already prefix the
217
+ * provider in the id (e.g. "anthropic/claude-haiku-4.5"); others put it in
218
+ * `_provider` and leave the id bare. Always returns "<provider>/<model>"
219
+ * unless the id is already prefixed.
220
+ */
221
+ function canonicalModelId(model) {
222
+ const id = model.id;
223
+ if (id.includes("/")) return id;
224
+ const provider = model._provider ?? model.provider;
225
+ return provider ? `${provider}/${id}` : id;
226
+ }
227
+ function resolveModelBrandIdentity(model) {
228
+ const canonical = canonicalModelId(model);
229
+ const hostKey = normalizeBrandKey(model.logos?.host ?? model.hostProvider ?? model._provider ?? model.provider ?? firstIdSegment(canonical));
230
+ const labKey = normalizeBrandKey(model.logos?.lab ?? model.modelLab ?? inferModelLab(model, canonical, hostKey));
231
+ const hostBase = brandInfo(hostKey);
232
+ const labBase = brandInfo(labKey);
233
+ const host = model.logos?.hostUrl ? {
234
+ ...hostBase,
235
+ logoUrl: model.logos.hostUrl,
236
+ monochrome: false
237
+ } : hostBase;
238
+ const lab = model.logos?.labUrl ? {
239
+ ...labBase,
240
+ logoUrl: model.logos.labUrl,
241
+ monochrome: false
242
+ } : labBase;
243
+ return {
244
+ host,
245
+ lab,
246
+ combined: host.key === lab.key
247
+ };
248
+ }
249
+ /**
250
+ * The brand identity to show for a model id, or `null` when no published mark
251
+ * exists for it — a caller then falls back to its own generic glyph rather than
252
+ * rendering an empty chip or inventing a logo.
253
+ *
254
+ * Takes the bare id ("anthropic/claude-sonnet-4-5") so a surface that knows only
255
+ * the model string — a workflow node, a run header — can render the same mark the
256
+ * picker does.
257
+ */
258
+ function modelBrandFor(model) {
259
+ const trimmed = model.trim();
260
+ if (!trimmed) return null;
261
+ const identity = resolveModelBrandIdentity({ id: trimmed });
262
+ return hasRealLogo(identity.host) || hasRealLogo(identity.lab) ? identity : null;
263
+ }
264
+ function ModelBrandStack({ identity, size }) {
265
+ if (identity.combined) return /* @__PURE__ */ jsx(BrandLogo, {
266
+ brand: identity.lab,
267
+ size
268
+ });
269
+ const hasHostLogo = hasRealLogo(identity.host);
270
+ const hasLabLogo = hasRealLogo(identity.lab);
271
+ if (!hasHostLogo && !hasLabLogo) return null;
272
+ if (!hasHostLogo) return /* @__PURE__ */ jsx(BrandLogo, {
273
+ brand: identity.lab,
274
+ size
275
+ });
276
+ if (!hasLabLogo) return /* @__PURE__ */ jsx(BrandLogo, {
277
+ brand: identity.host,
278
+ size
279
+ });
280
+ return /* @__PURE__ */ jsxs("div", {
281
+ className: cn("relative shrink-0", size === "sm" ? "h-4 w-6" : "h-7 w-9"),
282
+ "aria-label": `${identity.host.label} hosting ${identity.lab.label}`,
283
+ children: [/* @__PURE__ */ jsx(BrandLogo, {
284
+ brand: identity.host,
285
+ size: size === "sm" ? "xs" : "sm",
286
+ className: "absolute left-0 top-0"
287
+ }), /* @__PURE__ */ jsx(BrandLogo, {
288
+ brand: identity.lab,
289
+ size: size === "sm" ? "xs" : "sm",
290
+ className: "absolute bottom-0 right-0 ring-2 ring-card"
291
+ })]
292
+ });
293
+ }
294
+ /**
295
+ * Provider keys for which the vendored {@link ProviderLogo} ships a real
296
+ * full-color brand mark (vs. a tinted monogram). These render in color; every
297
+ * other brand falls through to the bundled lobehub monochrome mask. Kept in
298
+ * sync with provider-logo.tsx's LOGOS table.
299
+ */
300
+ const COLOR_MARK_PROVIDERS = /* @__PURE__ */ new Set([
301
+ "anthropic",
302
+ "openai",
303
+ "google",
304
+ "deepseek",
305
+ "mistral",
306
+ "xai",
307
+ "nvidia",
308
+ "meta",
309
+ "moonshot"
310
+ ]);
311
+ function BrandLogo({ brand, size, className }) {
312
+ if (!hasRealLogo(brand)) return null;
313
+ const pixelSize = size === "xs" ? 14 : size === "sm" ? 16 : 28;
314
+ const useColorMark = brand.logo !== "tangle" && COLOR_MARK_PROVIDERS.has(brand.key);
315
+ return /* @__PURE__ */ jsx("span", {
316
+ title: brand.label,
317
+ "aria-label": brand.label,
318
+ className: cn("inline-flex shrink-0 items-center justify-center overflow-hidden rounded-full bg-background shadow-sm ring-1 ring-border", size === "xs" && "h-3.5 w-3.5", size === "sm" && "h-4 w-4", size === "md" && "h-7 w-7", className),
319
+ children: brand.logo === "tangle" ? /* @__PURE__ */ jsx(TangleKnot, {
320
+ size: pixelSize,
321
+ className: "h-full w-full"
322
+ }) : useColorMark ? /* @__PURE__ */ jsx(ProviderLogo, {
323
+ provider: brand.key,
324
+ size: Math.round(pixelSize * .72)
325
+ }) : brand.logoUrl && brand.monochrome ? /* @__PURE__ */ jsx("span", {
326
+ "aria-hidden": true,
327
+ className: "h-[72%] w-[72%]",
328
+ style: {
329
+ backgroundColor: "hsl(var(--foreground))",
330
+ maskImage: cssUrl(brand.logoUrl),
331
+ maskSize: "contain",
332
+ maskRepeat: "no-repeat",
333
+ maskPosition: "center",
334
+ WebkitMaskImage: cssUrl(brand.logoUrl),
335
+ WebkitMaskSize: "contain",
336
+ WebkitMaskRepeat: "no-repeat",
337
+ WebkitMaskPosition: "center"
338
+ }
339
+ }) : brand.logoUrl ? /* @__PURE__ */ jsx("img", {
340
+ src: brand.logoUrl,
341
+ alt: "",
342
+ className: "h-[72%] w-[72%] object-contain"
343
+ }) : null
344
+ });
345
+ }
346
+ function hasRealLogo(brand) {
347
+ return Boolean(brand.logoUrl || brand.logo);
348
+ }
349
+ /**
350
+ * Wrap a URL for use inside a CSS `url("…")` value. The bundled SVG data
351
+ * URLs contain raw quotes and hashes — valid in an <img src> attribute but
352
+ * terminal inside a CSS string — so percent-encode the characters CSS
353
+ * cannot carry.
354
+ */
355
+ function cssUrl(url) {
356
+ return `url("${url.replace(/[\\"'#\n]/g, (char) => encodeURIComponent(char))}")`;
357
+ }
358
+ function modelLogo(path) {
359
+ return path;
360
+ }
361
+ function brandLogo(key) {
362
+ switch (key) {
363
+ case "ai21": return modelLogo(ai21_default);
364
+ case "alibaba": return modelLogo(alibaba_default);
365
+ case "anthropic": return modelLogo(anthropic_default);
366
+ case "azure": return modelLogo(azure_default);
367
+ case "bedrock": return modelLogo(bedrock_default);
368
+ case "cerebras": return modelLogo(cerebras_default);
369
+ case "cohere": return modelLogo(cohere_default);
370
+ case "deepseek": return modelLogo(deepseek_default);
371
+ case "elevenlabs": return modelLogo(elevenlabs_default);
372
+ case "fal": return modelLogo(fal_default);
373
+ case "fireworks": return modelLogo(fireworks_default);
374
+ case "google": return modelLogo(google_default);
375
+ case "groq": return modelLogo(groq_default);
376
+ case "kuaishou": return modelLogo(kling_default);
377
+ case "luma": return modelLogo(luma_default);
378
+ case "meta": return modelLogo(meta_default);
379
+ case "mistral": return modelLogo(mistral_default);
380
+ case "moonshot": return modelLogo(moonshot_default);
381
+ case "openai": return modelLogo(openai_default);
382
+ case "openrouter": return modelLogo(openrouter_default);
383
+ case "perplexity": return modelLogo(perplexity_default);
384
+ case "pika": return modelLogo(pika_default);
385
+ case "replicate": return modelLogo(replicate_default);
386
+ case "runway": return modelLogo(runway_default);
387
+ case "stability": return modelLogo(stability_default);
388
+ case "together": return modelLogo(together_default);
389
+ case "vertex": return modelLogo(vertexai_default);
390
+ case "xai": return modelLogo(xai_default);
391
+ case "zai": return modelLogo(zai_default);
392
+ case "tangle":
393
+ case "tcloud":
394
+ case "cartesia":
395
+ case "unknown": return;
396
+ }
397
+ }
398
+ function brandMark(key) {
399
+ if (key === "tangle" || key === "tcloud") return { logo: "tangle" };
400
+ const logoUrl = brandLogo(key);
401
+ return logoUrl ? {
402
+ logoUrl,
403
+ monochrome: true
404
+ } : {};
405
+ }
406
+ function inferModelLab(model, canonical, hostKey) {
407
+ const name = model.name ?? "";
408
+ const idSegments = canonical.split("/");
409
+ const possibleLab = normalizeBrandKey(idSegments.length > 1 ? idSegments[1] : idSegments[0]);
410
+ const textKey = normalizeBrandKey(`${canonical} ${name}`);
411
+ if (hostKey !== possibleLab && possibleLab !== "unknown") return possibleLab;
412
+ if (textKey !== "unknown") return textKey;
413
+ return hostKey;
414
+ }
415
+ function firstIdSegment(value) {
416
+ return value.split("/")[0] ?? value;
417
+ }
418
+ function normalizeBrandKey(value) {
419
+ const normalized = (value ?? "").toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-+|-+$/g, "");
420
+ if (!normalized) return "unknown";
421
+ if (/(^|-)anthropic($|-)|claude/.test(normalized)) return "anthropic";
422
+ if (/(^|-)openai($|-)|(^|-)gpt-|o[1345]($|-)|chatgpt/.test(normalized)) return "openai";
423
+ if (/(^|-)google($|-)|gemini|palm|imagen|veo/.test(normalized)) return "google";
424
+ if (/(^|-)xai($|-)|grok/.test(normalized)) return "xai";
425
+ if (/(^|-)meta($|-)|llama/.test(normalized)) return "meta";
426
+ if (/(^|-)mistral($|-)|mixtral|codestral/.test(normalized)) return "mistral";
427
+ if (/(^|-)cohere($|-)|command-r/.test(normalized)) return "cohere";
428
+ if (/(^|-)deepseek($|-)/.test(normalized)) return "deepseek";
429
+ if (/(^|-)moonshot($|-)|kimi/.test(normalized)) return "moonshot";
430
+ if (/(^|-)zai($|-)|z-ai|glm/.test(normalized)) return "zai";
431
+ if (/(^|-)qwen($|-)|alibaba|wan($|-)/.test(normalized)) return "alibaba";
432
+ if (/(^|-)perplexity($|-)|sonar/.test(normalized)) return "perplexity";
433
+ if (/(^|-)ai21($|-)|jamba/.test(normalized)) return "ai21";
434
+ if (/(^|-)runway($|-)|gen-?[34]/.test(normalized)) return "runway";
435
+ if (/(^|-)kling($|-)|kuaishou/.test(normalized)) return "kuaishou";
436
+ if (/(^|-)luma($|-)|ray-?[12]/.test(normalized)) return "luma";
437
+ if (/(^|-)pika($|-)/.test(normalized)) return "pika";
438
+ if (/(^|-)stability($|-)|stable-diffusion|sdxl/.test(normalized)) return "stability";
439
+ if (/(^|-)elevenlabs($|-)|eleven/.test(normalized)) return "elevenlabs";
440
+ if (/(^|-)cartesia($|-)|sonic/.test(normalized)) return "cartesia";
441
+ if (/(^|-)openrouter($|-)/.test(normalized)) return "openrouter";
442
+ if (/(^|-)tcloud($|-)/.test(normalized)) return "tcloud";
443
+ if (/(^|-)tangle($|-)/.test(normalized)) return "tangle";
444
+ if (/(^|-)fal($|-)/.test(normalized)) return "fal";
445
+ if (/(^|-)replicate($|-)/.test(normalized)) return "replicate";
446
+ if (/(^|-)together($|-)/.test(normalized)) return "together";
447
+ if (/(^|-)fireworks($|-)/.test(normalized)) return "fireworks";
448
+ if (/(^|-)groq($|-)/.test(normalized)) return "groq";
449
+ if (/(^|-)cerebras($|-)/.test(normalized)) return "cerebras";
450
+ if (/(^|-)bedrock($|-)|amazon/.test(normalized)) return "bedrock";
451
+ if (/(^|-)vertex($|-)/.test(normalized)) return "vertex";
452
+ if (/(^|-)azure($|-)/.test(normalized)) return "azure";
453
+ return "unknown";
454
+ }
455
+ function brandInfo(key) {
456
+ return BRAND_INFO[key] ?? BRAND_INFO.unknown;
457
+ }
458
+ const BRAND_INFO = {
459
+ ai21: {
460
+ key: "ai21",
461
+ label: "AI21",
462
+ ...brandMark("ai21")
463
+ },
464
+ alibaba: {
465
+ key: "alibaba",
466
+ label: "Alibaba",
467
+ ...brandMark("alibaba")
468
+ },
469
+ anthropic: {
470
+ key: "anthropic",
471
+ label: "Anthropic",
472
+ ...brandMark("anthropic")
473
+ },
474
+ azure: {
475
+ key: "azure",
476
+ label: "Azure",
477
+ ...brandMark("azure")
478
+ },
479
+ bedrock: {
480
+ key: "bedrock",
481
+ label: "AWS Bedrock",
482
+ ...brandMark("bedrock")
483
+ },
484
+ cartesia: {
485
+ key: "cartesia",
486
+ label: "Cartesia"
487
+ },
488
+ cerebras: {
489
+ key: "cerebras",
490
+ label: "Cerebras",
491
+ ...brandMark("cerebras")
492
+ },
493
+ cohere: {
494
+ key: "cohere",
495
+ label: "Cohere",
496
+ ...brandMark("cohere")
497
+ },
498
+ deepseek: {
499
+ key: "deepseek",
500
+ label: "DeepSeek",
501
+ ...brandMark("deepseek")
502
+ },
503
+ elevenlabs: {
504
+ key: "elevenlabs",
505
+ label: "ElevenLabs",
506
+ ...brandMark("elevenlabs")
507
+ },
508
+ fal: {
509
+ key: "fal",
510
+ label: "Fal",
511
+ ...brandMark("fal")
512
+ },
513
+ fireworks: {
514
+ key: "fireworks",
515
+ label: "Fireworks",
516
+ ...brandMark("fireworks")
517
+ },
518
+ google: {
519
+ key: "google",
520
+ label: "Google",
521
+ ...brandMark("google")
522
+ },
523
+ groq: {
524
+ key: "groq",
525
+ label: "Groq",
526
+ ...brandMark("groq")
527
+ },
528
+ kuaishou: {
529
+ key: "kuaishou",
530
+ label: "Kling",
531
+ ...brandMark("kuaishou")
532
+ },
533
+ luma: {
534
+ key: "luma",
535
+ label: "Luma",
536
+ ...brandMark("luma")
537
+ },
538
+ meta: {
539
+ key: "meta",
540
+ label: "Meta",
541
+ ...brandMark("meta")
542
+ },
543
+ mistral: {
544
+ key: "mistral",
545
+ label: "Mistral",
546
+ ...brandMark("mistral")
547
+ },
548
+ moonshot: {
549
+ key: "moonshot",
550
+ label: "Moonshot",
551
+ ...brandMark("moonshot")
552
+ },
553
+ openai: {
554
+ key: "openai",
555
+ label: "OpenAI",
556
+ ...brandMark("openai")
557
+ },
558
+ openrouter: {
559
+ key: "openrouter",
560
+ label: "OpenRouter",
561
+ ...brandMark("openrouter")
562
+ },
563
+ perplexity: {
564
+ key: "perplexity",
565
+ label: "Perplexity",
566
+ ...brandMark("perplexity")
567
+ },
568
+ pika: {
569
+ key: "pika",
570
+ label: "Pika",
571
+ ...brandMark("pika")
572
+ },
573
+ replicate: {
574
+ key: "replicate",
575
+ label: "Replicate",
576
+ ...brandMark("replicate")
577
+ },
578
+ runway: {
579
+ key: "runway",
580
+ label: "Runway",
581
+ ...brandMark("runway")
582
+ },
583
+ stability: {
584
+ key: "stability",
585
+ label: "Stability AI",
586
+ ...brandMark("stability")
587
+ },
588
+ tangle: {
589
+ key: "tangle",
590
+ label: "Tangle",
591
+ ...brandMark("tangle")
592
+ },
593
+ tcloud: {
594
+ key: "tcloud",
595
+ label: "tcloud",
596
+ ...brandMark("tcloud")
597
+ },
598
+ together: {
599
+ key: "together",
600
+ label: "Together",
601
+ ...brandMark("together")
602
+ },
603
+ vertex: {
604
+ key: "vertex",
605
+ label: "Vertex AI",
606
+ ...brandMark("vertex")
607
+ },
608
+ xai: {
609
+ key: "xai",
610
+ label: "xAI",
611
+ ...brandMark("xai")
612
+ },
613
+ zai: {
614
+ key: "zai",
615
+ label: "Z.ai",
616
+ ...brandMark("zai")
617
+ },
618
+ unknown: {
619
+ key: "unknown",
620
+ label: "Unknown"
621
+ }
622
+ };
623
+ //#endregion
624
+ export { moonshot_default as i, canonicalModelId as n, modelBrandFor as r, ModelBrandStack as t };