switchboard-router 0.9.2 → 0.9.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.
Files changed (253) hide show
  1. package/app/.next/static/chunks/{1321-4de88db4bd94a23c.js → 1321-6bd6f91d24e9863e.js} +1 -1
  2. package/app/.next/static/chunks/1330-56405eca78b12fee.js +7 -0
  3. package/app/{.next-cli-build/static/chunks/3531-936a1e7912d9876c.js → .next/static/chunks/3531-eb5d385c954b3765.js} +7 -7
  4. package/app/.next/static/chunks/app/(dashboard)/dashboard/agent-library/page-cf3bc192f7a27304.js +1 -0
  5. package/app/.next/static/chunks/app/(dashboard)/dashboard/basic-chat/page-0e1d54e59ac767a1.js +1 -0
  6. package/app/.next/static/chunks/app/(dashboard)/dashboard/cli-tools/[toolId]/{page-d7205b7328b3fed1.js → page-af0d85c06970853b.js} +1 -1
  7. package/app/.next/static/chunks/app/(dashboard)/dashboard/cli-tools/{page-d0b6efe01e687aec.js → page-2cfc2352bc42d9b8.js} +1 -1
  8. package/app/.next/static/chunks/app/(dashboard)/dashboard/combos/page-62cd36ee99eaa630.js +1 -0
  9. package/app/.next/static/chunks/app/(dashboard)/dashboard/combos/routing/page-0b02e9a2f1cc6e43.js +1 -0
  10. package/app/.next/static/chunks/app/(dashboard)/dashboard/console-log/page-ded6ec41e583b3b3.js +1 -0
  11. package/app/.next/static/chunks/app/(dashboard)/dashboard/endpoint/page-ca47b09e6ed6ae7b.js +16 -0
  12. package/app/.next/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/[id]/{page-772f246688672d59.js → page-78d098f14f8cff05.js} +8 -8
  13. package/app/.next/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/page-d1654fba27199492.js +1 -0
  14. package/app/.next/static/chunks/app/(dashboard)/dashboard/media-providers/combo/[id]/{page-8554ba79c854167f.js → page-ff13a39fb7744f5e.js} +3 -3
  15. package/app/.next/static/chunks/app/(dashboard)/dashboard/media-providers/page-919f3eec8dfc9b6e.js +1 -0
  16. package/app/.next/static/chunks/app/(dashboard)/dashboard/media-providers/web/page-db19da41661d630b.js +1 -0
  17. package/app/.next/static/chunks/app/(dashboard)/dashboard/mitm/{page-8779ff2bc755ba78.js → page-309b09a142a2995d.js} +1 -1
  18. package/app/.next/static/chunks/app/(dashboard)/dashboard/page-86cd6523dcd61f1b.js +1 -0
  19. package/app/.next/static/chunks/app/(dashboard)/dashboard/profile/{page-d32871b974f7e72f.js → page-ae6cf9ce7ac84eb7.js} +1 -1
  20. package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/[id]/{page-d8610d9b77a2cae4.js → page-97e0f7067cab0724.js} +3 -3
  21. package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/new/page-413b59dd764a1563.js +1 -0
  22. package/app/{.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/page-555f079cdf31bbf6.js → .next/static/chunks/app/(dashboard)/dashboard/providers/page-31212a5a4a9825b0.js} +1 -1
  23. package/app/.next/static/chunks/app/(dashboard)/dashboard/pxpipe/page-1805f993834a1adb.js +1 -0
  24. package/app/.next/static/chunks/app/(dashboard)/dashboard/quota/page-798a65a8c4d2708a.js +1 -0
  25. package/app/.next/static/chunks/app/(dashboard)/dashboard/skills/[id]/page-aba614778bfe50ad.js +1 -0
  26. package/app/.next/static/chunks/app/(dashboard)/dashboard/skills/page-b1e9603ce7be0155.js +1 -0
  27. package/app/.next/static/chunks/app/(dashboard)/dashboard/token-saver/page-1711a424a8dcad0e.js +1 -0
  28. package/app/.next/static/chunks/app/(dashboard)/dashboard/translator/page-0c7b901caf8614b9.js +1 -0
  29. package/app/.next/static/chunks/app/(dashboard)/dashboard/usage/page-b085086e6c5b9387.js +1 -0
  30. package/app/.next/static/chunks/app/(dashboard)/{layout-62b4e2cdf745f8d0.js → layout-59baac68c7aedd25.js} +1 -1
  31. package/app/.next/static/css/c5928b380ef8a163.css +1 -0
  32. package/app/.next-cli-build/BUILD_ID +1 -1
  33. package/app/.next-cli-build/app-path-routes-manifest.json +6 -6
  34. package/app/.next-cli-build/build-manifest.json +2 -2
  35. package/app/.next-cli-build/prerender-manifest.json +3 -3
  36. package/app/.next-cli-build/server/app/(dashboard)/dashboard/agent-library/page.js +1 -1
  37. package/app/.next-cli-build/server/app/(dashboard)/dashboard/agent-library/page_client-reference-manifest.js +1 -1
  38. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js +1 -1
  39. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
  40. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page_client-reference-manifest.js +1 -1
  41. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  42. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js +1 -1
  43. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  44. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/routing/page.js +1 -1
  45. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/routing/page_client-reference-manifest.js +1 -1
  46. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js +1 -1
  47. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
  48. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js +15 -2
  49. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  50. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js +1 -1
  51. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js +1 -1
  52. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js +1 -1
  53. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page_client-reference-manifest.js +1 -1
  54. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js +1 -1
  55. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page_client-reference-manifest.js +1 -1
  56. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/page.js +1 -1
  57. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/page_client-reference-manifest.js +1 -1
  58. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js +1 -1
  59. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page_client-reference-manifest.js +1 -1
  60. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
  61. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js +1 -1
  62. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  63. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js +1 -1
  64. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  65. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js +2 -2
  66. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  67. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js +1 -1
  68. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  69. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js +1 -1
  70. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  71. package/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page.js +1 -1
  72. package/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page_client-reference-manifest.js +1 -1
  73. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js +1 -1
  74. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
  75. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/[id]/page.js +1 -1
  76. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/[id]/page_client-reference-manifest.js +1 -1
  77. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page.js +1 -1
  78. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page_client-reference-manifest.js +1 -1
  79. package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page.js +1 -1
  80. package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page_client-reference-manifest.js +1 -1
  81. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js +1 -1
  82. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  83. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js +1 -1
  84. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  85. package/app/.next-cli-build/server/app/_global-error/page_client-reference-manifest.js +1 -1
  86. package/app/.next-cli-build/server/app/_global-error.html +1 -1
  87. package/app/.next-cli-build/server/app/_global-error.rsc +1 -1
  88. package/app/.next-cli-build/server/app/_global-error.segments/_full.segment.rsc +1 -1
  89. package/app/.next-cli-build/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  90. package/app/.next-cli-build/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  91. package/app/.next-cli-build/server/app/_not-found/page_client-reference-manifest.js +1 -1
  92. package/app/.next-cli-build/server/app/_not-found.html +1 -1
  93. package/app/.next-cli-build/server/app/_not-found.rsc +4 -4
  94. package/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +4 -4
  95. package/app/.next-cli-build/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +4 -4
  96. package/app/.next-cli-build/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  97. package/app/.next-cli-build/server/app/api/cli-tools/aider-settings/route.js +2 -2
  98. package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js +5 -5
  99. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js +2 -2
  100. package/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js +2 -2
  101. package/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js +1 -1
  102. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js +2 -2
  103. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js +1 -1
  104. package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js +2 -2
  105. package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js +1 -1
  106. package/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js +2 -2
  107. package/app/.next-cli-build/server/app/api/cli-tools/gemini-cli-settings/route.js +3 -3
  108. package/app/.next-cli-build/server/app/api/cli-tools/grok-settings/route.js +3 -3
  109. package/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js +3 -3
  110. package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js +2 -2
  111. package/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js +2 -2
  112. package/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js +2 -2
  113. package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js +1 -1
  114. package/app/.next-cli-build/server/app/api/cli-tools/pi-settings/route.js +1 -1
  115. package/app/.next-cli-build/server/app/api/v1/messages/route.js +1 -1
  116. package/app/.next-cli-build/server/app/api/v1/models/[kind]/route.js +1 -1
  117. package/app/.next-cli-build/server/app/api/v1/models/info/route.js +1 -1
  118. package/app/.next-cli-build/server/app/api/v1/models/route.js +1 -1
  119. package/app/.next-cli-build/server/app/api/v1/route.js +1 -1
  120. package/app/.next-cli-build/server/app/api/v1beta/models/route.js +1 -1
  121. package/app/.next-cli-build/server/app/api/version/route.js +1 -1
  122. package/app/.next-cli-build/server/app/callback/page_client-reference-manifest.js +1 -1
  123. package/app/.next-cli-build/server/app/callback.html +1 -1
  124. package/app/.next-cli-build/server/app/callback.rsc +4 -4
  125. package/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +4 -4
  126. package/app/.next-cli-build/server/app/callback.segments/_tree.segment.rsc +2 -2
  127. package/app/.next-cli-build/server/app/callback.segments/callback/__PAGE__.segment.rsc +4 -4
  128. package/app/.next-cli-build/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  129. package/app/.next-cli-build/server/app/dashboard/settings/pricing.html +1 -1
  130. package/app/.next-cli-build/server/app/dashboard/settings/pricing.rsc +4 -4
  131. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +4 -4
  132. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +2 -2
  133. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +4 -4
  134. package/app/.next-cli-build/server/app/index.html +1 -1
  135. package/app/.next-cli-build/server/app/index.rsc +4 -4
  136. package/app/.next-cli-build/server/app/index.segments/__PAGE__.segment.rsc +4 -4
  137. package/app/.next-cli-build/server/app/index.segments/_full.segment.rsc +4 -4
  138. package/app/.next-cli-build/server/app/index.segments/_tree.segment.rsc +2 -2
  139. package/app/.next-cli-build/server/app/landing/page_client-reference-manifest.js +1 -1
  140. package/app/.next-cli-build/server/app/landing.html +1 -1
  141. package/app/.next-cli-build/server/app/landing.rsc +4 -4
  142. package/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +4 -4
  143. package/app/.next-cli-build/server/app/landing.segments/_tree.segment.rsc +2 -2
  144. package/app/.next-cli-build/server/app/landing.segments/landing/__PAGE__.segment.rsc +4 -4
  145. package/app/.next-cli-build/server/app/login/page_client-reference-manifest.js +1 -1
  146. package/app/.next-cli-build/server/app/login.html +1 -1
  147. package/app/.next-cli-build/server/app/login.rsc +4 -4
  148. package/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +4 -4
  149. package/app/.next-cli-build/server/app/login.segments/_tree.segment.rsc +2 -2
  150. package/app/.next-cli-build/server/app/login.segments/login/__PAGE__.segment.rsc +4 -4
  151. package/app/.next-cli-build/server/app/page_client-reference-manifest.js +1 -1
  152. package/app/.next-cli-build/server/app-paths-manifest.json +6 -6
  153. package/app/.next-cli-build/server/chunks/1350.js +1 -1
  154. package/app/.next-cli-build/server/chunks/194.js +1 -1
  155. package/app/.next-cli-build/server/chunks/6395.js +1 -1
  156. package/app/.next-cli-build/server/chunks/6406.js +1 -1
  157. package/app/.next-cli-build/server/chunks/646.js +1 -1
  158. package/app/.next-cli-build/server/chunks/6985.js +1 -1
  159. package/app/.next-cli-build/server/chunks/7454.js +1 -1
  160. package/app/.next-cli-build/server/chunks/869.js +1 -1
  161. package/app/.next-cli-build/server/chunks/8834.js +1 -1
  162. package/app/.next-cli-build/server/chunks/8976.js +1 -1
  163. package/app/.next-cli-build/server/chunks/8998.js +9 -9
  164. package/app/.next-cli-build/server/chunks/9261.js +6 -6
  165. package/app/.next-cli-build/server/middleware-build-manifest.js +1 -1
  166. package/app/.next-cli-build/server/pages/404.html +1 -1
  167. package/app/.next-cli-build/server/pages/500.html +1 -1
  168. package/app/.next-cli-build/server/server-reference-manifest.js +1 -1
  169. package/app/.next-cli-build/server/server-reference-manifest.json +1 -1
  170. package/app/.next-cli-build/static/chunks/{1321-4de88db4bd94a23c.js → 1321-6bd6f91d24e9863e.js} +1 -1
  171. package/app/.next-cli-build/static/chunks/1330-56405eca78b12fee.js +7 -0
  172. package/app/{.next/static/chunks/3531-936a1e7912d9876c.js → .next-cli-build/static/chunks/3531-eb5d385c954b3765.js} +7 -7
  173. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/agent-library/page-cf3bc192f7a27304.js +1 -0
  174. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/basic-chat/page-0e1d54e59ac767a1.js +1 -0
  175. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/cli-tools/[toolId]/{page-d7205b7328b3fed1.js → page-af0d85c06970853b.js} +1 -1
  176. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/cli-tools/{page-d0b6efe01e687aec.js → page-2cfc2352bc42d9b8.js} +1 -1
  177. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/combos/page-62cd36ee99eaa630.js +1 -0
  178. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/combos/routing/page-0b02e9a2f1cc6e43.js +1 -0
  179. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/console-log/page-ded6ec41e583b3b3.js +1 -0
  180. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/endpoint/page-ca47b09e6ed6ae7b.js +16 -0
  181. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/[id]/{page-772f246688672d59.js → page-78d098f14f8cff05.js} +8 -8
  182. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/page-d1654fba27199492.js +1 -0
  183. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/combo/[id]/{page-8554ba79c854167f.js → page-ff13a39fb7744f5e.js} +3 -3
  184. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/page-919f3eec8dfc9b6e.js +1 -0
  185. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/web/page-db19da41661d630b.js +1 -0
  186. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/mitm/{page-8779ff2bc755ba78.js → page-309b09a142a2995d.js} +1 -1
  187. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/page-86cd6523dcd61f1b.js +1 -0
  188. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/profile/{page-d32871b974f7e72f.js → page-ae6cf9ce7ac84eb7.js} +1 -1
  189. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/[id]/{page-d8610d9b77a2cae4.js → page-97e0f7067cab0724.js} +3 -3
  190. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/new/page-413b59dd764a1563.js +1 -0
  191. package/app/{.next/static/chunks/app/(dashboard)/dashboard/providers/page-555f079cdf31bbf6.js → .next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/page-31212a5a4a9825b0.js} +1 -1
  192. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/pxpipe/page-1805f993834a1adb.js +1 -0
  193. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/quota/page-798a65a8c4d2708a.js +1 -0
  194. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/skills/[id]/page-aba614778bfe50ad.js +1 -0
  195. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/skills/page-b1e9603ce7be0155.js +1 -0
  196. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/token-saver/page-1711a424a8dcad0e.js +1 -0
  197. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/translator/page-0c7b901caf8614b9.js +1 -0
  198. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/usage/page-b085086e6c5b9387.js +1 -0
  199. package/app/.next-cli-build/static/chunks/app/(dashboard)/{layout-62b4e2cdf745f8d0.js → layout-59baac68c7aedd25.js} +1 -1
  200. package/app/.next-cli-build/static/css/c5928b380ef8a163.css +1 -0
  201. package/app/open-sse/identity/tls/bin/darwin/arm64/switchboard-claude-tls +0 -0
  202. package/app/open-sse/identity/tls/bin/darwin/x64/switchboard-claude-tls +0 -0
  203. package/app/open-sse/identity/tls/bin/linux/arm64/switchboard-claude-tls +0 -0
  204. package/app/open-sse/identity/tls/bin/linux/x64/switchboard-claude-tls +0 -0
  205. package/app/open-sse/identity/tls/bin/win32/arm64/switchboard-claude-tls.exe +0 -0
  206. package/app/open-sse/identity/tls/bin/win32/x64/switchboard-claude-tls.exe +0 -0
  207. package/app/package.json +1 -1
  208. package/package.json +1 -1
  209. package/src/cli/api/client.js +1 -1
  210. package/app/.next/static/chunks/5497-78bd7208dc4a083d.js +0 -7
  211. package/app/.next/static/chunks/app/(dashboard)/dashboard/agent-library/page-24b5a8515eee26d6.js +0 -1
  212. package/app/.next/static/chunks/app/(dashboard)/dashboard/basic-chat/page-4ec8bfa73afe20a6.js +0 -1
  213. package/app/.next/static/chunks/app/(dashboard)/dashboard/combos/page-5cfdfdf507c8222f.js +0 -1
  214. package/app/.next/static/chunks/app/(dashboard)/dashboard/combos/routing/page-25629f96675ad55d.js +0 -1
  215. package/app/.next/static/chunks/app/(dashboard)/dashboard/console-log/page-b54cd17200807e49.js +0 -1
  216. package/app/.next/static/chunks/app/(dashboard)/dashboard/endpoint/page-cd44cb44125275b6.js +0 -3
  217. package/app/.next/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/page-52c12af07f9a6de0.js +0 -1
  218. package/app/.next/static/chunks/app/(dashboard)/dashboard/media-providers/page-0f54c9a5e7391a77.js +0 -1
  219. package/app/.next/static/chunks/app/(dashboard)/dashboard/media-providers/web/page-cfbd3661ac75b8c5.js +0 -1
  220. package/app/.next/static/chunks/app/(dashboard)/dashboard/page-c33d24bdadcf0c6e.js +0 -1
  221. package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/new/page-74d56b3b7ac42546.js +0 -1
  222. package/app/.next/static/chunks/app/(dashboard)/dashboard/pxpipe/page-bd18ad88b98cd373.js +0 -1
  223. package/app/.next/static/chunks/app/(dashboard)/dashboard/quota/page-b3ffcc7df06a37d8.js +0 -1
  224. package/app/.next/static/chunks/app/(dashboard)/dashboard/skills/[id]/page-56bf48ee2068208e.js +0 -1
  225. package/app/.next/static/chunks/app/(dashboard)/dashboard/skills/page-46986a955b8c89b2.js +0 -1
  226. package/app/.next/static/chunks/app/(dashboard)/dashboard/token-saver/page-20972a96e348f397.js +0 -1
  227. package/app/.next/static/chunks/app/(dashboard)/dashboard/translator/page-0cc2ccbe11cc0013.js +0 -1
  228. package/app/.next/static/chunks/app/(dashboard)/dashboard/usage/page-5af5fff7d28ed91d.js +0 -1
  229. package/app/.next/static/css/d89fdbc0e71b454e.css +0 -1
  230. package/app/.next-cli-build/static/chunks/5497-78bd7208dc4a083d.js +0 -7
  231. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/agent-library/page-24b5a8515eee26d6.js +0 -1
  232. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/basic-chat/page-4ec8bfa73afe20a6.js +0 -1
  233. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/combos/page-5cfdfdf507c8222f.js +0 -1
  234. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/combos/routing/page-25629f96675ad55d.js +0 -1
  235. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/console-log/page-b54cd17200807e49.js +0 -1
  236. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/endpoint/page-cd44cb44125275b6.js +0 -3
  237. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/page-52c12af07f9a6de0.js +0 -1
  238. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/page-0f54c9a5e7391a77.js +0 -1
  239. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/web/page-cfbd3661ac75b8c5.js +0 -1
  240. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/page-c33d24bdadcf0c6e.js +0 -1
  241. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/new/page-74d56b3b7ac42546.js +0 -1
  242. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/pxpipe/page-bd18ad88b98cd373.js +0 -1
  243. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/quota/page-b3ffcc7df06a37d8.js +0 -1
  244. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/skills/[id]/page-56bf48ee2068208e.js +0 -1
  245. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/skills/page-46986a955b8c89b2.js +0 -1
  246. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/token-saver/page-20972a96e348f397.js +0 -1
  247. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/translator/page-0cc2ccbe11cc0013.js +0 -1
  248. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/usage/page-5af5fff7d28ed91d.js +0 -1
  249. package/app/.next-cli-build/static/css/d89fdbc0e71b454e.css +0 -1
  250. /package/app/.next/static/{Fq0KReA64JGBdC8atypku → kGdbG3TEpkBeoqsRS2Mre}/_buildManifest.js +0 -0
  251. /package/app/.next/static/{Fq0KReA64JGBdC8atypku → kGdbG3TEpkBeoqsRS2Mre}/_ssgManifest.js +0 -0
  252. /package/app/.next-cli-build/static/{Fq0KReA64JGBdC8atypku → kGdbG3TEpkBeoqsRS2Mre}/_buildManifest.js +0 -0
  253. /package/app/.next-cli-build/static/{Fq0KReA64JGBdC8atypku → kGdbG3TEpkBeoqsRS2Mre}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- (()=>{var a={};a.id=3649,a.ids=[3649,9617],a.modules={3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},8128:a=>{"use strict";a.exports=require("next/dist/server/runtime-reacts.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},15770:(a,b,c)=>{"use strict";c.d(b,{default:()=>bM});var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w=c(48249),x=c(67484),y=c.n(x),z=c(74429);let A="u">typeof window&&void 0!==window.document&&void 0!==window.document.createElement;function B(a){let b=Object.prototype.toString.call(a);return"[object Window]"===b||"[object global]"===b}function C(a){return"nodeType"in a}function D(a){var b,c;return a?B(a)?a:C(a)&&null!=(b=null==(c=a.ownerDocument)?void 0:c.defaultView)?b:window:window}function E(a){let{Document:b}=D(a);return a instanceof b}function F(a){return!B(a)&&a instanceof D(a).HTMLElement}function G(a){return a instanceof D(a).SVGElement}function H(a){return a?B(a)?a.document:C(a)?E(a)?a:F(a)||G(a)?a.ownerDocument:document:document:document}let I=A?x.useLayoutEffect:x.useEffect;function J(a){let b=(0,x.useRef)(a);return I(()=>{b.current=a}),(0,x.useCallback)(function(){for(var a=arguments.length,c=Array(a),d=0;d<a;d++)c[d]=arguments[d];return null==b.current?void 0:b.current(...c)},[])}function K(a,b){void 0===b&&(b=[a]);let c=(0,x.useRef)(a);return I(()=>{c.current!==a&&(c.current=a)},b),c}function L(a,b){let c=(0,x.useRef)();return(0,x.useMemo)(()=>{let b=a(c.current);return c.current=b,b},[...b])}function M(a){let b=J(a),c=(0,x.useRef)(null),d=(0,x.useCallback)(a=>{a!==c.current&&(null==b||b(a,c.current)),c.current=a},[]);return[c,d]}function N(a){let b=(0,x.useRef)();return(0,x.useEffect)(()=>{b.current=a},[a]),b.current}let O={};function P(a,b){return(0,x.useMemo)(()=>{if(b)return b;let c=null==O[a]?0:O[a]+1;return O[a]=c,a+"-"+c},[a,b])}function Q(a){return function(b){for(var c=arguments.length,d=Array(c>1?c-1:0),e=1;e<c;e++)d[e-1]=arguments[e];return d.reduce((b,c)=>{for(let[d,e]of Object.entries(c)){let c=b[d];null!=c&&(b[d]=c+a*e)}return b},{...b})}}let R=Q(1),S=Q(-1);function T(a){if(!a)return!1;let{KeyboardEvent:b}=D(a.target);return b&&a instanceof b}function U(a){if(function(a){if(!a)return!1;let{TouchEvent:b}=D(a.target);return b&&a instanceof b}(a)){if(a.touches&&a.touches.length){let{clientX:b,clientY:c}=a.touches[0];return{x:b,y:c}}else if(a.changedTouches&&a.changedTouches.length){let{clientX:b,clientY:c}=a.changedTouches[0];return{x:b,y:c}}}return"clientX"in a&&"clientY"in a?{x:a.clientX,y:a.clientY}:null}let V=Object.freeze({Translate:{toString(a){if(!a)return;let{x:b,y:c}=a;return"translate3d("+(b?Math.round(b):0)+"px, "+(c?Math.round(c):0)+"px, 0)"}},Scale:{toString(a){if(!a)return;let{scaleX:b,scaleY:c}=a;return"scaleX("+b+") scaleY("+c+")"}},Transform:{toString(a){if(a)return[V.Translate.toString(a),V.Scale.toString(a)].join(" ")}},Transition:{toString(a){let{property:b,duration:c,easing:d}=a;return b+" "+c+"ms "+d}}}),W="a,frame,iframe,input:not([type=hidden]):not(:disabled),select:not(:disabled),textarea:not(:disabled),button:not(:disabled),*[tabindex]",X={display:"none"};function Y(a){let{id:b,value:c}=a;return y().createElement("div",{id:b,style:X},c)}function Z(a){let{id:b,announcement:c,ariaLiveType:d="assertive"}=a;return y().createElement("div",{id:b,style:{position:"fixed",top:0,left:0,width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0 0 0 0)",clipPath:"inset(100%)",whiteSpace:"nowrap"},role:"status","aria-live":d,"aria-atomic":!0},c)}let $=(0,x.createContext)(null),_={draggable:"\n To pick up a draggable item, press the space bar.\n While dragging, use the arrow keys to move the item.\n Press space again to drop the item in its new position, or press escape to cancel.\n "},aa={onDragStart(a){let{active:b}=a;return"Picked up draggable item "+b.id+"."},onDragOver(a){let{active:b,over:c}=a;return c?"Draggable item "+b.id+" was moved over droppable area "+c.id+".":"Draggable item "+b.id+" is no longer over a droppable area."},onDragEnd(a){let{active:b,over:c}=a;return c?"Draggable item "+b.id+" was dropped over droppable area "+c.id:"Draggable item "+b.id+" was dropped."},onDragCancel(a){let{active:b}=a;return"Dragging was cancelled. Draggable item "+b.id+" was dropped."}};function ab(a){var b;let c,{announcements:d=aa,container:e,hiddenTextDescribedById:f,screenReaderInstructions:g=_}=a,{announce:h,announcement:i}=function(){let[a,b]=(0,x.useState)("");return{announce:(0,x.useCallback)(a=>{null!=a&&b(a)},[]),announcement:a}}(),j=P("DndLiveRegion"),[k,l]=(0,x.useState)(!1);if((0,x.useEffect)(()=>{l(!0)},[]),b=(0,x.useMemo)(()=>({onDragStart(a){let{active:b}=a;h(d.onDragStart({active:b}))},onDragMove(a){let{active:b,over:c}=a;d.onDragMove&&h(d.onDragMove({active:b,over:c}))},onDragOver(a){let{active:b,over:c}=a;h(d.onDragOver({active:b,over:c}))},onDragEnd(a){let{active:b,over:c}=a;h(d.onDragEnd({active:b,over:c}))},onDragCancel(a){let{active:b,over:c}=a;h(d.onDragCancel({active:b,over:c}))}}),[h,d]),c=(0,x.useContext)($),(0,x.useEffect)(()=>{if(!c)throw Error("useDndMonitor must be used within a children of <DndContext>");return c(b)},[b,c]),!k)return null;let m=y().createElement(y().Fragment,null,y().createElement(Y,{id:f,value:g.draggable}),y().createElement(Z,{id:j,announcement:i}));return e?(0,z.createPortal)(m,e):m}function ac(){}function ad(a,b){return(0,x.useMemo)(()=>({sensor:a,options:null!=b?b:{}}),[a,b])}(d=m||(m={})).DragStart="dragStart",d.DragMove="dragMove",d.DragEnd="dragEnd",d.DragCancel="dragCancel",d.DragOver="dragOver",d.RegisterDroppable="registerDroppable",d.SetDroppableDisabled="setDroppableDisabled",d.UnregisterDroppable="unregisterDroppable";let ae=Object.freeze({x:0,y:0});function af(a,b){return Math.sqrt(Math.pow(a.x-b.x,2)+Math.pow(a.y-b.y,2))}function ag(a,b){let{data:{value:c}}=a,{data:{value:d}}=b;return c-d}function ah(a,b){let{data:{value:c}}=a,{data:{value:d}}=b;return d-c}function ai(a){let{left:b,top:c,height:d,width:e}=a;return[{x:b,y:c},{x:b+e,y:c},{x:b,y:c+d},{x:b+e,y:c+d}]}function aj(a,b){if(!a||0===a.length)return null;let[c]=a;return b?c[b]:c}function ak(a,b,c){return void 0===b&&(b=a.left),void 0===c&&(c=a.top),{x:b+.5*a.width,y:c+.5*a.height}}let al=a=>{let{collisionRect:b,droppableRects:c,droppableContainers:d}=a,e=ak(b,b.left,b.top),f=[];for(let a of d){let{id:b}=a,d=c.get(b);if(d){let c=af(ak(d),e);f.push({id:b,data:{droppableContainer:a,value:c}})}}return f.sort(ag)},am=a=>{let{collisionRect:b,droppableRects:c,droppableContainers:d}=a,e=[];for(let a of d){let{id:d}=a,f=c.get(d);if(f){let c=function(a,b){let c=Math.max(b.top,a.top),d=Math.max(b.left,a.left),e=Math.min(b.left+b.width,a.left+a.width),f=Math.min(b.top+b.height,a.top+a.height);if(d<e&&c<f){let g=b.width*b.height,h=a.width*a.height,i=(e-d)*(f-c);return Number((i/(g+h-i)).toFixed(4))}return 0}(f,b);c>0&&e.push({id:d,data:{droppableContainer:a,value:c}})}}return e.sort(ah)};function an(a,b){return a&&b?{x:a.left-b.left,y:a.top-b.top}:ae}let ao=function(a){for(var b=arguments.length,c=Array(b>1?b-1:0),d=1;d<b;d++)c[d-1]=arguments[d];return c.reduce((a,b)=>({...a,top:a.top+ +b.y,bottom:a.bottom+ +b.y,left:a.left+ +b.x,right:a.right+ +b.x}),{...a})},ap={ignoreTransform:!1};function aq(a,b){void 0===b&&(b=ap);let c=a.getBoundingClientRect();if(b.ignoreTransform){let{transform:b,transformOrigin:d}=D(a).getComputedStyle(a);b&&(c=function(a,b,c){let d=function(a){if(a.startsWith("matrix3d(")){let b=a.slice(9,-1).split(/, /);return{x:+b[12],y:+b[13],scaleX:+b[0],scaleY:+b[5]}}if(a.startsWith("matrix(")){let b=a.slice(7,-1).split(/, /);return{x:+b[4],y:+b[5],scaleX:+b[0],scaleY:+b[3]}}return null}(b);if(!d)return a;let{scaleX:e,scaleY:f,x:g,y:h}=d,i=a.left-g-(1-e)*parseFloat(c),j=a.top-h-(1-f)*parseFloat(c.slice(c.indexOf(" ")+1)),k=e?a.width/e:a.width,l=f?a.height/f:a.height;return{width:k,height:l,top:j,right:i+k,bottom:j+l,left:i}}(c,b,d))}let{top:d,left:e,width:f,height:g,bottom:h,right:i}=c;return{top:d,left:e,width:f,height:g,bottom:h,right:i}}function ar(a){return aq(a,{ignoreTransform:!0})}function as(a,b){let c=[];return a?function d(e){var f,g;let h;if(null!=b&&c.length>=b||!e)return c;if(E(e)&&null!=e.scrollingElement&&!c.includes(e.scrollingElement))return c.push(e.scrollingElement),c;if(!F(e)||G(e)||c.includes(e))return c;let i=D(a).getComputedStyle(e);return(e!==a&&(void 0===(f=i)&&(f=D(e).getComputedStyle(e)),h=/(auto|scroll|overlay)/,["overflow","overflowX","overflowY"].some(a=>{let b=f[a];return"string"==typeof b&&h.test(b)}))&&c.push(e),void 0===(g=i)&&(g=D(e).getComputedStyle(e)),"fixed"===g.position)?c:d(e.parentNode)}(a):c}function at(a){let[b]=as(a,1);return null!=b?b:null}function au(a){return A&&a?B(a)?a:C(a)?E(a)||a===H(a).scrollingElement?window:F(a)?a:null:null:null}function av(a){return B(a)?a.scrollX:a.scrollLeft}function aw(a){return B(a)?a.scrollY:a.scrollTop}function ax(a){return{x:av(a),y:aw(a)}}function ay(a){return!!A&&!!a&&a===document.scrollingElement}function az(a){let b={x:0,y:0},c=ay(a)?{height:window.innerHeight,width:window.innerWidth}:{height:a.clientHeight,width:a.clientWidth},d={x:a.scrollWidth-c.width,y:a.scrollHeight-c.height},e=a.scrollTop<=b.y,f=a.scrollLeft<=b.x;return{isTop:e,isLeft:f,isBottom:a.scrollTop>=d.y,isRight:a.scrollLeft>=d.x,maxScroll:d,minScroll:b}}(e=n||(n={}))[e.Forward=1]="Forward",e[e.Backward=-1]="Backward";let aA={x:.2,y:.2};function aB(a){return a.reduce((a,b)=>R(a,ax(b)),ae)}let aC=[["x",["left","right"],function(a){return a.reduce((a,b)=>a+av(b),0)}],["y",["top","bottom"],function(a){return a.reduce((a,b)=>a+aw(b),0)}]];class aD{constructor(a,b){this.rect=void 0,this.width=void 0,this.height=void 0,this.top=void 0,this.bottom=void 0,this.right=void 0,this.left=void 0;const c=as(b),d=aB(c);for(const[b,e,f]of(this.rect={...a},this.width=a.width,this.height=a.height,aC))for(const a of e)Object.defineProperty(this,a,{get:()=>{let e=f(c),g=d[b]-e;return this.rect[a]+g},enumerable:!0});Object.defineProperty(this,"rect",{enumerable:!1})}}class aE{constructor(a){this.target=void 0,this.listeners=[],this.removeAll=()=>{this.listeners.forEach(a=>{var b;return null==(b=this.target)?void 0:b.removeEventListener(...a)})},this.target=a}add(a,b,c){var d;null==(d=this.target)||d.addEventListener(a,b,c),this.listeners.push([a,b,c])}}function aF(a,b){let c=Math.abs(a.x),d=Math.abs(a.y);return"number"==typeof b?Math.sqrt(c**2+d**2)>b:"x"in b&&"y"in b?c>b.x&&d>b.y:"x"in b?c>b.x:"y"in b&&d>b.y}function aG(a){a.preventDefault()}function aH(a){a.stopPropagation()}(f=o||(o={})).Click="click",f.DragStart="dragstart",f.Keydown="keydown",f.ContextMenu="contextmenu",f.Resize="resize",f.SelectionChange="selectionchange",f.VisibilityChange="visibilitychange",(g=p||(p={})).Space="Space",g.Down="ArrowDown",g.Right="ArrowRight",g.Left="ArrowLeft",g.Up="ArrowUp",g.Esc="Escape",g.Enter="Enter",g.Tab="Tab";let aI={start:[p.Space,p.Enter],cancel:[p.Esc],end:[p.Space,p.Enter,p.Tab]},aJ=(a,b)=>{let{currentCoordinates:c}=b;switch(a.code){case p.Right:return{...c,x:c.x+25};case p.Left:return{...c,x:c.x-25};case p.Down:return{...c,y:c.y+25};case p.Up:return{...c,y:c.y-25}}};class aK{constructor(a){this.props=void 0,this.autoScrollEnabled=!1,this.referenceCoordinates=void 0,this.listeners=void 0,this.windowListeners=void 0,this.props=a;const{event:{target:b}}=a;this.props=a,this.listeners=new aE(H(b)),this.windowListeners=new aE(D(b)),this.handleKeyDown=this.handleKeyDown.bind(this),this.handleCancel=this.handleCancel.bind(this),this.attach()}attach(){this.handleStart(),this.windowListeners.add(o.Resize,this.handleCancel),this.windowListeners.add(o.VisibilityChange,this.handleCancel),setTimeout(()=>this.listeners.add(o.Keydown,this.handleKeyDown))}handleStart(){let{activeNode:a,onStart:b}=this.props,c=a.node.current;c&&function(a,b){if(void 0===b&&(b=aq),!a)return;let{top:c,left:d,bottom:e,right:f}=b(a);at(a)&&(e<=0||f<=0||c>=window.innerHeight||d>=window.innerWidth)&&a.scrollIntoView({block:"center",inline:"center"})}(c),b(ae)}handleKeyDown(a){if(T(a)){let{active:b,context:c,options:d}=this.props,{keyboardCodes:e=aI,coordinateGetter:f=aJ,scrollBehavior:g="smooth"}=d,{code:h}=a;if(e.end.includes(h))return void this.handleEnd(a);if(e.cancel.includes(h))return void this.handleCancel(a);let{collisionRect:i}=c.current,j=i?{x:i.left,y:i.top}:ae;this.referenceCoordinates||(this.referenceCoordinates=j);let k=f(a,{active:b,context:c.current,currentCoordinates:j});if(k){let b=S(k,j),d={x:0,y:0},{scrollableAncestors:e}=c.current;for(let c of e){let e=a.code,{isTop:f,isRight:h,isLeft:i,isBottom:j,maxScroll:l,minScroll:m}=az(c),n=function(a){if(a===document.scrollingElement){let{innerWidth:a,innerHeight:b}=window;return{top:0,left:0,right:a,bottom:b,width:a,height:b}}let{top:b,left:c,right:d,bottom:e}=a.getBoundingClientRect();return{top:b,left:c,right:d,bottom:e,width:a.clientWidth,height:a.clientHeight}}(c),o={x:Math.min(e===p.Right?n.right-n.width/2:n.right,Math.max(e===p.Right?n.left:n.left+n.width/2,k.x)),y:Math.min(e===p.Down?n.bottom-n.height/2:n.bottom,Math.max(e===p.Down?n.top:n.top+n.height/2,k.y))},q=e===p.Right&&!h||e===p.Left&&!i,r=e===p.Down&&!j||e===p.Up&&!f;if(q&&o.x!==k.x){let a=c.scrollLeft+b.x,f=e===p.Right&&a<=l.x||e===p.Left&&a>=m.x;if(f&&!b.y)return void c.scrollTo({left:a,behavior:g});f?d.x=c.scrollLeft-a:d.x=e===p.Right?c.scrollLeft-l.x:c.scrollLeft-m.x,d.x&&c.scrollBy({left:-d.x,behavior:g});break}if(r&&o.y!==k.y){let a=c.scrollTop+b.y,f=e===p.Down&&a<=l.y||e===p.Up&&a>=m.y;if(f&&!b.x)return void c.scrollTo({top:a,behavior:g});f?d.y=c.scrollTop-a:d.y=e===p.Down?c.scrollTop-l.y:c.scrollTop-m.y,d.y&&c.scrollBy({top:-d.y,behavior:g});break}}this.handleMove(a,R(S(k,this.referenceCoordinates),d))}}}handleMove(a,b){let{onMove:c}=this.props;a.preventDefault(),c(b)}handleEnd(a){let{onEnd:b}=this.props;a.preventDefault(),this.detach(),b()}handleCancel(a){let{onCancel:b}=this.props;a.preventDefault(),this.detach(),b()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll()}}function aL(a){return!!(a&&"distance"in a)}function aM(a){return!!(a&&"delay"in a)}aK.activators=[{eventName:"onKeyDown",handler:(a,b,c)=>{let{keyboardCodes:d=aI,onActivation:e}=b,{active:f}=c,{code:g}=a.nativeEvent;if(d.start.includes(g)){let b=f.activatorNode.current;return(!b||a.target===b)&&(a.preventDefault(),null==e||e({event:a.nativeEvent}),!0)}return!1}}];class aN{constructor(a,b,c){var d;void 0===c&&(c=function(a){let{EventTarget:b}=D(a);return a instanceof b?a:H(a)}(a.event.target)),this.props=void 0,this.events=void 0,this.autoScrollEnabled=!0,this.document=void 0,this.activated=!1,this.initialCoordinates=void 0,this.timeoutId=null,this.listeners=void 0,this.documentListeners=void 0,this.windowListeners=void 0,this.props=a,this.events=b;const{event:e}=a,{target:f}=e;this.props=a,this.events=b,this.document=H(f),this.documentListeners=new aE(this.document),this.listeners=new aE(c),this.windowListeners=new aE(D(f)),this.initialCoordinates=null!=(d=U(e))?d:ae,this.handleStart=this.handleStart.bind(this),this.handleMove=this.handleMove.bind(this),this.handleEnd=this.handleEnd.bind(this),this.handleCancel=this.handleCancel.bind(this),this.handleKeydown=this.handleKeydown.bind(this),this.removeTextSelection=this.removeTextSelection.bind(this),this.attach()}attach(){let{events:a,props:{options:{activationConstraint:b,bypassActivationConstraint:c}}}=this;if(this.listeners.add(a.move.name,this.handleMove,{passive:!1}),this.listeners.add(a.end.name,this.handleEnd),a.cancel&&this.listeners.add(a.cancel.name,this.handleCancel),this.windowListeners.add(o.Resize,this.handleCancel),this.windowListeners.add(o.DragStart,aG),this.windowListeners.add(o.VisibilityChange,this.handleCancel),this.windowListeners.add(o.ContextMenu,aG),this.documentListeners.add(o.Keydown,this.handleKeydown),b){if(null!=c&&c({event:this.props.event,activeNode:this.props.activeNode,options:this.props.options}))return this.handleStart();if(aM(b)){this.timeoutId=setTimeout(this.handleStart,b.delay),this.handlePending(b);return}if(aL(b))return void this.handlePending(b)}this.handleStart()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll(),setTimeout(this.documentListeners.removeAll,50),null!==this.timeoutId&&(clearTimeout(this.timeoutId),this.timeoutId=null)}handlePending(a,b){let{active:c,onPending:d}=this.props;d(c,a,this.initialCoordinates,b)}handleStart(){let{initialCoordinates:a}=this,{onStart:b}=this.props;a&&(this.activated=!0,this.documentListeners.add(o.Click,aH,{capture:!0}),this.removeTextSelection(),this.documentListeners.add(o.SelectionChange,this.removeTextSelection),b(a))}handleMove(a){var b;let{activated:c,initialCoordinates:d,props:e}=this,{onMove:f,options:{activationConstraint:g}}=e;if(!d)return;let h=null!=(b=U(a))?b:ae,i=S(d,h);if(!c&&g){if(aL(g)){if(null!=g.tolerance&&aF(i,g.tolerance))return this.handleCancel();if(aF(i,g.distance))return this.handleStart()}return aM(g)&&aF(i,g.tolerance)?this.handleCancel():void this.handlePending(g,i)}a.cancelable&&a.preventDefault(),f(h)}handleEnd(){let{onAbort:a,onEnd:b}=this.props;this.detach(),this.activated||a(this.props.active),b()}handleCancel(){let{onAbort:a,onCancel:b}=this.props;this.detach(),this.activated||a(this.props.active),b()}handleKeydown(a){a.code===p.Esc&&this.handleCancel()}removeTextSelection(){var a;null==(a=this.document.getSelection())||a.removeAllRanges()}}let aO={cancel:{name:"pointercancel"},move:{name:"pointermove"},end:{name:"pointerup"}};class aP extends aN{constructor(a){const{event:b}=a;super(a,aO,H(b.target))}}aP.activators=[{eventName:"onPointerDown",handler:(a,b)=>{let{nativeEvent:c}=a,{onActivation:d}=b;return!!c.isPrimary&&0===c.button&&(null==d||d({event:c}),!0)}}];let aQ={move:{name:"mousemove"},end:{name:"mouseup"}};(h=q||(q={}))[h.RightClick=2]="RightClick";class aR extends aN{constructor(a){super(a,aQ,H(a.event.target))}}aR.activators=[{eventName:"onMouseDown",handler:(a,b)=>{let{nativeEvent:c}=a,{onActivation:d}=b;return c.button!==q.RightClick&&(null==d||d({event:c}),!0)}}];let aS={cancel:{name:"touchcancel"},move:{name:"touchmove"},end:{name:"touchend"}};class aT extends aN{constructor(a){super(a,aS)}static setup(){return window.addEventListener(aS.move.name,a,{capture:!1,passive:!1}),function(){window.removeEventListener(aS.move.name,a)};function a(){}}}aT.activators=[{eventName:"onTouchStart",handler:(a,b)=>{let{nativeEvent:c}=a,{onActivation:d}=b,{touches:e}=c;return!(e.length>1)&&(null==d||d({event:c}),!0)}}],(i=r||(r={}))[i.Pointer=0]="Pointer",i[i.DraggableRect=1]="DraggableRect",(j=s||(s={}))[j.TreeOrder=0]="TreeOrder",j[j.ReversedTreeOrder=1]="ReversedTreeOrder";let aU={x:{[n.Backward]:!1,[n.Forward]:!1},y:{[n.Backward]:!1,[n.Forward]:!1}};(k=t||(t={}))[k.Always=0]="Always",k[k.BeforeDragging=1]="BeforeDragging",k[k.WhileDragging=2]="WhileDragging",(u||(u={})).Optimized="optimized";let aV=new Map;function aW(a,b){return L(c=>a?c||("function"==typeof b?b(a):a):null,[b,a])}function aX(a){let{callback:b,disabled:c}=a,d=J(b),e=(0,x.useMemo)(()=>{if(c||"u"<typeof window||void 0===window.ResizeObserver)return;let{ResizeObserver:a}=window;return new a(d)},[c]);return(0,x.useEffect)(()=>()=>null==e?void 0:e.disconnect(),[e]),e}function aY(a){return new aD(aq(a),a)}function aZ(a,b,c){void 0===b&&(b=aY);let[d,e]=(0,x.useState)(null);function f(){e(d=>{if(!a)return null;if(!1===a.isConnected){var e;return null!=(e=null!=d?d:c)?e:null}let f=b(a);return JSON.stringify(d)===JSON.stringify(f)?d:f})}let g=function(a){let{callback:b,disabled:c}=a,d=J(b),e=(0,x.useMemo)(()=>{if(c||"u"<typeof window||void 0===window.MutationObserver)return;let{MutationObserver:a}=window;return new a(d)},[d,c]);return(0,x.useEffect)(()=>()=>null==e?void 0:e.disconnect(),[e]),e}({callback(b){if(a)for(let c of b){let{type:b,target:d}=c;if("childList"===b&&d instanceof HTMLElement&&d.contains(a)){f();break}}}}),h=aX({callback:f});return I(()=>{f(),a?(null==h||h.observe(a),null==g||g.observe(document.body,{childList:!0,subtree:!0})):(null==h||h.disconnect(),null==g||g.disconnect())},[a]),d}let a$=[];function a_(a,b){void 0===b&&(b=[]);let c=(0,x.useRef)(null);return(0,x.useEffect)(()=>{c.current=null},b),(0,x.useEffect)(()=>{let b=a!==ae;b&&!c.current&&(c.current=a),!b&&c.current&&(c.current=null)},[a]),c.current?S(a,c.current):ae}function a0(a){return(0,x.useMemo)(()=>{let b,c;return a?(b=a.innerWidth,{top:0,left:0,right:b,bottom:c=a.innerHeight,width:b,height:c}):null},[a])}let a1=[],a2=[{sensor:aP,options:{}},{sensor:aK,options:{}}],a3={current:{}},a4={draggable:{measure:ar},droppable:{measure:ar,strategy:t.WhileDragging,frequency:u.Optimized},dragOverlay:{measure:aq}};class a5 extends Map{get(a){var b;return null!=a&&null!=(b=super.get(a))?b:void 0}toArray(){return Array.from(this.values())}getEnabled(){return this.toArray().filter(a=>{let{disabled:b}=a;return!b})}getNodeFor(a){var b,c;return null!=(b=null==(c=this.get(a))?void 0:c.node.current)?b:void 0}}let a6={activatorEvent:null,active:null,activeNode:null,activeNodeRect:null,collisions:null,containerNodeRect:null,draggableNodes:new Map,droppableRects:new Map,droppableContainers:new a5,over:null,dragOverlay:{nodeRef:{current:null},rect:null,setRef:ac},scrollableAncestors:[],scrollableAncestorRects:[],measuringConfiguration:a4,measureDroppableContainers:ac,windowRect:null,measuringScheduled:!1},a7={activatorEvent:null,activators:[],active:null,activeNodeRect:null,ariaDescribedById:{draggable:""},dispatch:ac,draggableNodes:new Map,over:null,measureDroppableContainers:ac},a8=(0,x.createContext)(a7),a9=(0,x.createContext)(a6);function ba(){return{draggable:{active:null,initialCoordinates:{x:0,y:0},nodes:new Map,translate:{x:0,y:0}},droppable:{containers:new a5}}}function bb(a,b){switch(b.type){case m.DragStart:return{...a,draggable:{...a.draggable,initialCoordinates:b.initialCoordinates,active:b.active}};case m.DragMove:if(null==a.draggable.active)return a;return{...a,draggable:{...a.draggable,translate:{x:b.coordinates.x-a.draggable.initialCoordinates.x,y:b.coordinates.y-a.draggable.initialCoordinates.y}}};case m.DragEnd:case m.DragCancel:return{...a,draggable:{...a.draggable,active:null,initialCoordinates:{x:0,y:0},translate:{x:0,y:0}}};case m.RegisterDroppable:{let{element:c}=b,{id:d}=c,e=new a5(a.droppable.containers);return e.set(d,c),{...a,droppable:{...a.droppable,containers:e}}}case m.SetDroppableDisabled:{let{id:c,key:d,disabled:e}=b,f=a.droppable.containers.get(c);if(!f||d!==f.key)return a;let g=new a5(a.droppable.containers);return g.set(c,{...f,disabled:e}),{...a,droppable:{...a.droppable,containers:g}}}case m.UnregisterDroppable:{let{id:c,key:d}=b,e=a.droppable.containers.get(c);if(!e||d!==e.key)return a;let f=new a5(a.droppable.containers);return f.delete(c),{...a,droppable:{...a.droppable,containers:f}}}default:return a}}function bc(a){let{disabled:b}=a,{active:c,activatorEvent:d,draggableNodes:e}=(0,x.useContext)(a8),f=N(d),g=N(null==c?void 0:c.id);return(0,x.useEffect)(()=>{if(!b&&!d&&f&&null!=g){if(!T(f)||document.activeElement===f.target)return;let a=e.get(g);if(!a)return;let{activatorNode:b,node:c}=a;(b.current||c.current)&&requestAnimationFrame(()=>{for(let a of[b.current,c.current]){if(!a)continue;let b=a.matches(W)?a:a.querySelector(W);if(b){b.focus();break}}})}},[d,b,e,g,f]),null}let bd=(0,x.createContext)({...ae,scaleX:1,scaleY:1});(l=v||(v={}))[l.Uninitialized=0]="Uninitialized",l[l.Initializing=1]="Initializing",l[l.Initialized=2]="Initialized";let be=(0,x.memo)(function(a){var b,c,d,e,f,g,h,i;let j,k,l,o,p,q,u,w,{id:B,accessibility:C,autoScroll:E=!0,children:G,sensors:H=a2,collisionDetection:J=am,measuring:O,modifiers:Q,...S}=a,[T,V]=(0,x.useReducer)(bb,void 0,ba),[W,X]=function(){let[a]=(0,x.useState)(()=>new Set),b=(0,x.useCallback)(b=>(a.add(b),()=>a.delete(b)),[a]);return[(0,x.useCallback)(b=>{let{type:c,event:d}=b;a.forEach(a=>{var b;return null==(b=a[c])?void 0:b.call(a,d)})},[a]),b]}(),[Y,Z]=(0,x.useState)(v.Uninitialized),_=Y===v.Initialized,{draggable:{active:aa,nodes:ac,translate:ad},droppable:{containers:af}}=T,ag=null!=aa?ac.get(aa):null,ah=(0,x.useRef)({initial:null,translated:null}),ai=(0,x.useMemo)(()=>{var a;return null!=aa?{id:aa,data:null!=(a=null==ag?void 0:ag.data)?a:a3,rect:ah}:null},[aa,ag]),ak=(0,x.useRef)(null),[al,ap]=(0,x.useState)(null),[ar,av]=(0,x.useState)(null),aw=K(S,Object.values(S)),aC=P("DndDescribedBy",B),aE=(0,x.useMemo)(()=>af.getEnabled(),[af]),aF=(0,x.useMemo)(()=>({draggable:{...a4.draggable,...null==O?void 0:O.draggable},droppable:{...a4.droppable,...null==O?void 0:O.droppable},dragOverlay:{...a4.dragOverlay,...null==O?void 0:O.dragOverlay}}),[null==O?void 0:O.draggable,null==O?void 0:O.droppable,null==O?void 0:O.dragOverlay]),{droppableRects:aG,measureDroppableContainers:aH,measuringScheduled:aI}=function(a,b){let{dragging:c,dependencies:d,config:e}=b,[f,g]=(0,x.useState)(null),{frequency:h,measure:i,strategy:j}=e,k=(0,x.useRef)(a),l=function(){switch(j){case t.Always:return!1;case t.BeforeDragging:return c;default:return!c}}(),m=K(l),n=(0,x.useCallback)(function(a){void 0===a&&(a=[]),m.current||g(b=>null===b?a:b.concat(a.filter(a=>!b.includes(a))))},[m]),o=(0,x.useRef)(null),p=L(b=>{if(l&&!c)return aV;if(!b||b===aV||k.current!==a||null!=f){let b=new Map;for(let c of a){if(!c)continue;if(f&&f.length>0&&!f.includes(c.id)&&c.rect.current){b.set(c.id,c.rect.current);continue}let a=c.node.current,d=a?new aD(i(a),a):null;c.rect.current=d,d&&b.set(c.id,d)}return b}return b},[a,f,c,l,i]);return(0,x.useEffect)(()=>{k.current=a},[a]),(0,x.useEffect)(()=>{l||n()},[c,l]),(0,x.useEffect)(()=>{f&&f.length>0&&g(null)},[JSON.stringify(f)]),(0,x.useEffect)(()=>{l||"number"!=typeof h||null!==o.current||(o.current=setTimeout(()=>{n(),o.current=null},h))},[h,l,n,...d]),{droppableRects:p,measureDroppableContainers:n,measuringScheduled:null!=f}}(aE,{dragging:_,dependencies:[ad.x,ad.y],config:aF.droppable}),aJ=L(a=>{var b;return null==aa?null:null!=(b=null!=p?p:a)?b:null},[p=(o=null!=aa?ac.get(aa):void 0)?o.node.current:null,aa]),aK=(0,x.useMemo)(()=>ar?U(ar):null,[ar]),aL=(j=(null==al?void 0:al.autoScrollEnabled)===!1,k="object"==typeof E?!1===E.enabled:!1===E,l=_&&!j&&!k,"object"==typeof E?{...E,enabled:l}:{enabled:l}),aM=aW(aJ,aF.draggable.measure);!function(a){let{activeNode:b,measure:c,initialRect:d,config:e=!0}=a,f=(0,x.useRef)(!1),{x:g,y:h}="boolean"==typeof e?{x:e,y:e}:e;I(()=>{if(!g&&!h||!b){f.current=!1;return}if(f.current||!d)return;let a=null==b?void 0:b.node.current;if(!a||!1===a.isConnected)return;let e=an(c(a),d);if(g||(e.x=0),h||(e.y=0),f.current=!0,Math.abs(e.x)>0||Math.abs(e.y)>0){let b=at(a);b&&b.scrollBy({top:e.y,left:e.x})}},[b,g,h,d,c])}({activeNode:null!=aa?ac.get(aa):null,config:aL.layoutShiftCompensation,initialRect:aM,measure:aF.draggable.measure});let aN=aZ(aJ,aF.draggable.measure,aM),aO=aZ(aJ?aJ.parentElement:null),aP=(0,x.useRef)({activatorEvent:null,active:null,activeNode:aJ,collisionRect:null,collisions:null,droppableRects:aG,draggableNodes:ac,draggingNode:null,draggingNodeRect:null,droppableContainers:af,over:null,scrollableAncestors:[],scrollAdjustedTranslate:null}),aQ=af.getNodeFor(null==(b=aP.current.over)?void 0:b.id),aR=function(a){let{measure:b}=a,[c,d]=(0,x.useState)(null),e=aX({callback:(0,x.useCallback)(a=>{for(let{target:c}of a)if(F(c)){d(a=>{let d=b(c);return a?{...a,width:d.width,height:d.height}:d});break}},[b])}),[f,g]=M((0,x.useCallback)(a=>{let c=function(a){if(!a)return null;if(a.children.length>1)return a;let b=a.children[0];return F(b)?b:a}(a);null==e||e.disconnect(),c&&(null==e||e.observe(c)),d(c?b(c):null)},[b,e]));return(0,x.useMemo)(()=>({nodeRef:f,rect:c,setRef:g}),[c,f,g])}({measure:aF.dragOverlay.measure}),aS=null!=(c=aR.nodeRef.current)?c:aJ,aT=_?null!=(d=aR.rect)?d:aN:null,aY=!!(aR.nodeRef.current&&aR.rect),a5=(q=aW(f=aY?null:aN),an(f,q)),a6=a0(aS?D(aS):null),a7=(g=_?null!=aQ?aQ:aJ:null,u=(0,x.useRef)(g),w=L(a=>g?a&&a!==a$&&g&&u.current&&g.parentNode===u.current.parentNode?a:as(g):a$,[g]),(0,x.useEffect)(()=>{u.current=g},[g]),w),be=function(a,b){void 0===b&&(b=aq);let[c]=a,d=a0(c?D(c):null),[e,f]=(0,x.useState)(a1);function g(){f(()=>a.length?a.map(a=>ay(a)?d:new aD(b(a),a)):a1)}let h=aX({callback:g});return I(()=>{null==h||h.disconnect(),g(),a.forEach(a=>null==h?void 0:h.observe(a))},[a]),e}(a7),bf=function(a,b){let{transform:c,...d}=b;return null!=a&&a.length?a.reduce((a,b)=>b({transform:a,...d}),c):c}(Q,{transform:{x:ad.x-a5.x,y:ad.y-a5.y,scaleX:1,scaleY:1},activatorEvent:ar,active:ai,activeNodeRect:aN,containerNodeRect:aO,draggingNodeRect:aT,over:aP.current.over,overlayNodeRect:aR.rect,scrollableAncestors:a7,scrollableAncestorRects:be,windowRect:a6}),bg=aK?R(aK,ad):null,bh=function(a){let[b,c]=(0,x.useState)(null),d=(0,x.useRef)(a),e=(0,x.useCallback)(a=>{let b=au(a.target);b&&c(a=>a?(a.set(b,ax(b)),new Map(a)):null)},[]);return(0,x.useEffect)(()=>{let b=d.current;if(a!==b){f(b);let g=a.map(a=>{let b=au(a);return b?(b.addEventListener("scroll",e,{passive:!0}),[b,ax(b)]):null}).filter(a=>null!=a);c(g.length?new Map(g):null),d.current=a}return()=>{f(a),f(b)};function f(a){a.forEach(a=>{let b=au(a);null==b||b.removeEventListener("scroll",e)})}},[e,a]),(0,x.useMemo)(()=>a.length?b?Array.from(b.values()).reduce((a,b)=>R(a,b),ae):aB(a):ae,[a,b])}(a7),bi=a_(bh),bj=a_(bh,[aN]),bk=R(bf,bi),bl=aT?ao(aT,bf):null,bm=ai&&bl?J({active:ai,collisionRect:bl,droppableRects:aG,droppableContainers:aE,pointerCoordinates:bg}):null,bn=aj(bm,"id"),[bo,bp]=(0,x.useState)(null),bq=(h=aY?bf:R(bf,bj),i=null!=(e=null==bo?void 0:bo.rect)?e:null,{...h,scaleX:i&&aN?i.width/aN.width:1,scaleY:i&&aN?i.height/aN.height:1}),br=(0,x.useRef)(null),bs=(0,x.useCallback)((a,b)=>{let{sensor:c,options:d}=b;if(null==ak.current)return;let e=ac.get(ak.current);if(!e)return;let f=a.nativeEvent,g=new c({active:ak.current,activeNode:e,event:f,options:d,context:aP,onAbort(a){if(!ac.get(a))return;let{onDragAbort:b}=aw.current,c={id:a};null==b||b(c),W({type:"onDragAbort",event:c})},onPending(a,b,c,d){if(!ac.get(a))return;let{onDragPending:e}=aw.current,f={id:a,constraint:b,initialCoordinates:c,offset:d};null==e||e(f),W({type:"onDragPending",event:f})},onStart(a){let b=ak.current;if(null==b)return;let c=ac.get(b);if(!c)return;let{onDragStart:d}=aw.current,e={activatorEvent:f,active:{id:b,data:c.data,rect:ah}};(0,z.unstable_batchedUpdates)(()=>{null==d||d(e),Z(v.Initializing),V({type:m.DragStart,initialCoordinates:a,active:b}),W({type:"onDragStart",event:e}),ap(br.current),av(f)})},onMove(a){V({type:m.DragMove,coordinates:a})},onEnd:h(m.DragEnd),onCancel:h(m.DragCancel)});function h(a){return async function(){let{active:b,collisions:c,over:d,scrollAdjustedTranslate:e}=aP.current,g=null;if(b&&e){let{cancelDrop:h}=aw.current;g={activatorEvent:f,active:b,collisions:c,delta:e,over:d},a===m.DragEnd&&"function"==typeof h&&await Promise.resolve(h(g))&&(a=m.DragCancel)}ak.current=null,(0,z.unstable_batchedUpdates)(()=>{V({type:a}),Z(v.Uninitialized),bp(null),ap(null),av(null),br.current=null;let b=a===m.DragEnd?"onDragEnd":"onDragCancel";if(g){let a=aw.current[b];null==a||a(g),W({type:b,event:g})}})}}br.current=g},[ac]),bt=(0,x.useCallback)((a,b)=>(c,d)=>{let e=c.nativeEvent,f=ac.get(d);null!==ak.current||!f||e.dndKit||e.defaultPrevented||!0===a(c,b.options,{active:f})&&(e.dndKit={capturedBy:b.sensor},ak.current=d,bs(c,b))},[ac,bs]),bu=(0,x.useMemo)(()=>H.reduce((a,b)=>{let{sensor:c}=b;return[...a,...c.activators.map(a=>({eventName:a.eventName,handler:bt(a.handler,b)}))]},[]),[H,bt]);(0,x.useEffect)(()=>{if(!A)return;let a=H.map(a=>{let{sensor:b}=a;return null==b.setup?void 0:b.setup()});return()=>{for(let b of a)null==b||b()}},H.map(a=>{let{sensor:b}=a;return b})),I(()=>{aN&&Y===v.Initializing&&Z(v.Initialized)},[aN,Y]),(0,x.useEffect)(()=>{let{onDragMove:a}=aw.current,{active:b,activatorEvent:c,collisions:d,over:e}=aP.current;if(!b||!c)return;let f={active:b,activatorEvent:c,collisions:d,delta:{x:bk.x,y:bk.y},over:e};(0,z.unstable_batchedUpdates)(()=>{null==a||a(f),W({type:"onDragMove",event:f})})},[bk.x,bk.y]),(0,x.useEffect)(()=>{let{active:a,activatorEvent:b,collisions:c,droppableContainers:d,scrollAdjustedTranslate:e}=aP.current;if(!a||null==ak.current||!b||!e)return;let{onDragOver:f}=aw.current,g=d.get(bn),h=g&&g.rect.current?{id:g.id,rect:g.rect.current,data:g.data,disabled:g.disabled}:null,i={active:a,activatorEvent:b,collisions:c,delta:{x:e.x,y:e.y},over:h};(0,z.unstable_batchedUpdates)(()=>{bp(h),null==f||f(i),W({type:"onDragOver",event:i})})},[bn]),I(()=>{aP.current={activatorEvent:ar,active:ai,activeNode:aJ,collisionRect:bl,collisions:bm,droppableRects:aG,draggableNodes:ac,draggingNode:aS,draggingNodeRect:aT,droppableContainers:af,over:bo,scrollableAncestors:a7,scrollAdjustedTranslate:bk},ah.current={initial:aT,translated:bl}},[ai,aJ,bm,bl,ac,aS,aT,aG,af,bo,a7,bk]),function(a){let b,{acceleration:c,activator:d=r.Pointer,canScroll:e,draggingRect:f,enabled:g,interval:h=5,order:i=s.TreeOrder,pointerCoordinates:j,scrollableAncestors:k,scrollableAncestorRects:l,delta:m,threshold:o}=a,p=function(a){let{delta:b,disabled:c}=a,d=N(b);return L(a=>{if(c||!d||!a)return aU;let e={x:Math.sign(b.x-d.x),y:Math.sign(b.y-d.y)};return{x:{[n.Backward]:a.x[n.Backward]||-1===e.x,[n.Forward]:a.x[n.Forward]||1===e.x},y:{[n.Backward]:a.y[n.Backward]||-1===e.y,[n.Forward]:a.y[n.Forward]||1===e.y}}},[c,b,d])}({delta:m,disabled:!g}),[q,t]=(b=(0,x.useRef)(null),[(0,x.useCallback)((a,c)=>{b.current=setInterval(a,c)},[]),(0,x.useCallback)(()=>{null!==b.current&&(clearInterval(b.current),b.current=null)},[])]),u=(0,x.useRef)({x:0,y:0}),v=(0,x.useRef)({x:0,y:0}),w=(0,x.useMemo)(()=>{switch(d){case r.Pointer:return j?{top:j.y,bottom:j.y,left:j.x,right:j.x}:null;case r.DraggableRect:return f}},[d,f,j]),y=(0,x.useRef)(null),z=(0,x.useCallback)(()=>{let a=y.current;if(!a)return;let b=u.current.x*v.current.x,c=u.current.y*v.current.y;a.scrollBy(b,c)},[]),A=(0,x.useMemo)(()=>i===s.TreeOrder?[...k].reverse():k,[i,k]);(0,x.useEffect)(()=>{if(!g||!k.length||!w)return void t();for(let a of A){if((null==e?void 0:e(a))===!1)continue;let b=l[k.indexOf(a)];if(!b)continue;let{direction:d,speed:f}=function(a,b,c,d,e){let{top:f,left:g,right:h,bottom:i}=c;void 0===d&&(d=10),void 0===e&&(e=aA);let{isTop:j,isBottom:k,isLeft:l,isRight:m}=az(a),o={x:0,y:0},p={x:0,y:0},q={height:b.height*e.y,width:b.width*e.x};return!j&&f<=b.top+q.height?(o.y=n.Backward,p.y=d*Math.abs((b.top+q.height-f)/q.height)):!k&&i>=b.bottom-q.height&&(o.y=n.Forward,p.y=d*Math.abs((b.bottom-q.height-i)/q.height)),!m&&h>=b.right-q.width?(o.x=n.Forward,p.x=d*Math.abs((b.right-q.width-h)/q.width)):!l&&g<=b.left+q.width&&(o.x=n.Backward,p.x=d*Math.abs((b.left+q.width-g)/q.width)),{direction:o,speed:p}}(a,b,w,c,o);for(let a of["x","y"])p[a][d[a]]||(f[a]=0,d[a]=0);if(f.x>0||f.y>0){t(),y.current=a,q(z,h),u.current=f,v.current=d;return}}u.current={x:0,y:0},v.current={x:0,y:0},t()},[c,z,e,t,g,h,JSON.stringify(w),JSON.stringify(p),q,k,A,l,JSON.stringify(o)])}({...aL,delta:ad,draggingRect:bl,pointerCoordinates:bg,scrollableAncestors:a7,scrollableAncestorRects:be});let bv=(0,x.useMemo)(()=>({active:ai,activeNode:aJ,activeNodeRect:aN,activatorEvent:ar,collisions:bm,containerNodeRect:aO,dragOverlay:aR,draggableNodes:ac,droppableContainers:af,droppableRects:aG,over:bo,measureDroppableContainers:aH,scrollableAncestors:a7,scrollableAncestorRects:be,measuringConfiguration:aF,measuringScheduled:aI,windowRect:a6}),[ai,aJ,aN,ar,bm,aO,aR,ac,af,aG,bo,aH,a7,be,aF,aI,a6]),bw=(0,x.useMemo)(()=>({activatorEvent:ar,activators:bu,active:ai,activeNodeRect:aN,ariaDescribedById:{draggable:aC},dispatch:V,draggableNodes:ac,over:bo,measureDroppableContainers:aH}),[ar,bu,ai,aN,V,aC,ac,bo,aH]);return y().createElement($.Provider,{value:X},y().createElement(a8.Provider,{value:bw},y().createElement(a9.Provider,{value:bv},y().createElement(bd.Provider,{value:bq},G)),y().createElement(bc,{disabled:(null==C?void 0:C.restoreFocus)===!1})),y().createElement(ab,{...C,hiddenTextDescribedById:aC}))}),bf=(0,x.createContext)(null),bg="button",bh={timeout:25};function bi(a,b,c){let d=a.slice();return d.splice(c<0?d.length+c:c,0,d.splice(b,1)[0]),d}function bj(a){return null!==a&&a>=0}let bk=a=>{let{rects:b,activeIndex:c,overIndex:d,index:e}=a,f=bi(b,d,c),g=b[e],h=f[e];return h&&g?{x:h.left-g.left,y:h.top-g.top,scaleX:h.width/g.width,scaleY:h.height/g.height}:null},bl={scaleX:1,scaleY:1},bm=a=>{var b,c,d,e;let f,g,h,{activeIndex:i,activeNodeRect:j,index:k,rects:l,overIndex:m}=a,n=null!=(b=l[i])?b:j;if(!n)return null;if(k===i){let a=l[m];return a?{x:0,y:i<m?a.top+a.height-(n.top+n.height):a.top-n.top,...bl}:null}let o=(c=l,d=k,e=i,f=c[d],g=c[d-1],h=c[d+1],f?e<d?g?f.top-(g.top+g.height):h?h.top-(f.top+f.height):0:h?h.top-(f.top+f.height):g?f.top-(g.top+g.height):0:0);return k>i&&k<=m?{x:0,y:-n.height-o,...bl}:k<i&&k>=m?{x:0,y:n.height+o,...bl}:{x:0,y:0,...bl}},bn="Sortable",bo=y().createContext({activeIndex:-1,containerId:bn,disableTransforms:!1,items:[],overIndex:-1,useDragOverlay:!1,sortedRects:[],strategy:bk,disabled:{draggable:!1,droppable:!1}});function bp(a){let{children:b,id:c,items:d,strategy:e=bk,disabled:f=!1}=a,{active:g,dragOverlay:h,droppableRects:i,over:j,measureDroppableContainers:k}=(0,x.useContext)(a9),l=P(bn,c),m=null!==h.rect,n=(0,x.useMemo)(()=>d.map(a=>"object"==typeof a&&"id"in a?a.id:a),[d]),o=null!=g,p=g?n.indexOf(g.id):-1,q=j?n.indexOf(j.id):-1,r=(0,x.useRef)(n),s=!function(a,b){if(a===b)return!0;if(a.length!==b.length)return!1;for(let c=0;c<a.length;c++)if(a[c]!==b[c])return!1;return!0}(n,r.current),t=-1!==q&&-1===p||s,u="boolean"==typeof f?{draggable:f,droppable:f}:f;I(()=>{s&&o&&k(n)},[s,n,o,k]),(0,x.useEffect)(()=>{r.current=n},[n]);let v=(0,x.useMemo)(()=>({activeIndex:p,containerId:l,disabled:u,disableTransforms:t,items:n,overIndex:q,useDragOverlay:m,sortedRects:n.reduce((a,b,c)=>{let d=i.get(b);return d&&(a[c]=d),a},Array(n.length)),strategy:e}),[p,l,u.draggable,u.droppable,t,n,q,i,m,e]);return y().createElement(bo.Provider,{value:v},b)}let bq=a=>{let{id:b,items:c,activeIndex:d,overIndex:e}=a;return bi(c,d,e).indexOf(b)},br=a=>{let{containerId:b,isSorting:c,wasDragging:d,index:e,items:f,newIndex:g,previousItems:h,previousContainerId:i,transition:j}=a;return!!j&&!!d&&(h===f||e!==g)&&(!!c||g!==e&&b===i)},bs={duration:200,easing:"ease"},bt="transform",bu=V.Transition.toString({property:bt,duration:0,easing:"linear"}),bv={roleDescription:"sortable"};function bw(a){if(!a)return!1;let b=a.data.current;return!!b&&"sortable"in b&&"object"==typeof b.sortable&&"containerId"in b.sortable&&"items"in b.sortable&&"index"in b.sortable}let bx=[p.Down,p.Right,p.Up,p.Left],by=(a,b)=>{let{context:{active:c,collisionRect:d,droppableRects:e,droppableContainers:f,over:g,scrollableAncestors:h}}=b;if(bx.includes(a.code)){if(a.preventDefault(),!c||!d)return;let b=[];f.getEnabled().forEach(c=>{if(!c||null!=c&&c.disabled)return;let f=e.get(c.id);if(f)switch(a.code){case p.Down:d.top<f.top&&b.push(c);break;case p.Up:d.top>f.top&&b.push(c);break;case p.Left:d.left>f.left&&b.push(c);break;case p.Right:d.left<f.left&&b.push(c)}});let k=(a=>{let{collisionRect:b,droppableRects:c,droppableContainers:d}=a,e=ai(b),f=[];for(let a of d){let{id:b}=a,d=c.get(b);if(d){let c=ai(d),g=Number((e.reduce((a,b,d)=>a+af(c[d],b),0)/4).toFixed(4));f.push({id:b,data:{droppableContainer:a,value:g}})}}return f.sort(ag)})({active:c,collisionRect:d,droppableRects:e,droppableContainers:b,pointerCoordinates:null}),l=aj(k,"id");if(l===(null==g?void 0:g.id)&&k.length>1&&(l=k[1].id),null!=l){let a=f.get(c.id),b=f.get(l),g=b?e.get(b.id):null,k=null==b?void 0:b.node.current;if(k&&g&&a&&b){var i,j;let c=as(k).some((a,b)=>h[b]!==a),e=bz(a,b),f=(i=a,j=b,!!bw(i)&&!!bw(j)&&!!bz(i,j)&&i.data.current.sortable.index<j.data.current.sortable.index),l=c||!e?{x:0,y:0}:{x:f?d.width-g.width:0,y:f?d.height-g.height:0},m={x:g.left,y:g.top};return l.x&&l.y?m:S(m,l)}}}};function bz(a,b){return!!bw(a)&&!!bw(b)&&a.data.current.sortable.containerId===b.data.current.sortable.containerId}let bA=a=>{let b,{containerNodeRect:c,draggingNodeRect:d,transform:e}=a;return d&&c?(b={...e},d.top+e.y<=c.top?b.y=c.top-d.top:d.bottom+e.y>=c.top+c.height&&(b.y=c.top+c.height-d.bottom),d.left+e.x<=c.left?b.x=c.left-d.left:d.right+e.x>=c.left+c.width&&(b.x=c.left+c.width-d.right),b):e},bB=a=>{let{transform:b}=a;return{...b,x:0}};var bC=c(50412),bD=c(50377);c(92592);var bE=c(41371),bF=c(6297),bG=c(80212);let bH=/^[a-zA-Z0-9_.\-]+$/,bI=[{key:"vision",label:"Vision",icon:"visibility",desc:"Images"},{key:"audioInput",label:"Audio",icon:"graphic_eq",desc:"Audio input"}],bJ={enabled:!0,roundRobin:!1,models:[]},bK=Object.keys({vision:{...bJ},pdf:{...bJ},audioInput:{...bJ},videoInput:{...bJ}});function bL(a){return Array.isArray(a)?{enabled:!0,roundRobin:!1,models:a.map(a=>a?.model||a).filter(Boolean)}:a&&"object"==typeof a?{enabled:!1!==a.enabled,roundRobin:!!a.roundRobin,models:Array.isArray(a.models)?a.models.filter(Boolean):[]}:{...bJ}}function bM({initialData:a}){let b=(0,bE.i)(a=>a.error),[c,d]=(0,x.useState)(()=>(a?.combos||[]).filter(a=>!a.kind||"llm"===a.kind)),[e,f]=(0,x.useState)(!a),[g,h]=(0,x.useState)(!1),[i,j]=(0,x.useState)(null),[k,l]=(0,x.useState)(a?.connections||[]),[m,n]=(0,x.useState)(a?.settings?.comboStrategies||{}),[o,p]=(0,x.useState)(a?.modelCaps||{}),[q,r]=(0,x.useState)(()=>{let b=a?.settings?.capacityAdapter||{},c={};for(let a of bK)c[a]=bL(b[a]);return c}),[s,t]=(0,x.useState)(null),{copied:u,copy:v}=(0,bD.C)(),y=(0,x.useCallback)(async()=>{try{let[a,b,c,e]=await Promise.all([fetch("/api/combos"),fetch("/api/providers"),fetch("/api/settings"),fetch("/api/models")]);if(![a,b,c,e].every(a=>a.ok))throw Error("One or more combo resources failed to load");let f=await a.json(),g=await b.json(),h=await c.json();if(a.ok&&d((f.combos||[]).filter(a=>!a.kind||"llm"===a.kind)),b.ok&&l(g.connections||[]),e.ok){let a=await e.json(),b={};for(let c of a.models||[])c.caps&&(b[c.fullModel]=c.caps);p(b)}n(h.comboStrategies||{});let i=h.capacityAdapter||{},j={};for(let a of bK)j[a]=bL(i[a]);r(j)}catch(a){b("Failed to fetch combo data")}finally{f(!1)}},[b]),z=async a=>{try{let{strategy:c,capacityAutoSwitch:d,routerModel:e,objective:f,...g}=a,i=await fetch("/api/combos",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(g)});if(i.ok){let a=await i.json().catch(()=>({})),b=g.name?.trim()||a?.name;b&&(c||void 0!==d||e||f)&&await C(b,bN(c,d,e,f)),await y(),h(!1)}else{let a=await i.json();b(a.error||"Failed to create combo")}}catch(a){b("Failed to create combo")}},A=async(a,c)=>{try{let{strategy:d,capacityAutoSwitch:e,routerModel:f,objective:g,...h}=c,k=i?.name,l=await fetch(`/api/combos/${a}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(h)});if(l.ok){let a=h.name?.trim()||k;if(k&&a&&k!==a&&n(b=>{let c={...b};return k in c&&(a in c||(c[a]=c[k]),delete c[k]),c}),a&&(d||void 0!==e)){let b,c=k&&k!==a?(b={...m},k in b&&(a in b||(b[a]=b[k]),delete b[k]),b):m;await C(a,bN(d,e,f,g),c)}await y(),j(null)}else{let a=await l.json();b(a.error||"Failed to update combo")}}catch(a){b("Failed to update combo")}},B=async a=>{let e=c.find(b=>b.id===a);t({title:"Delete Combo",message:e?.name?`Delete combo “${e.name}”?`:"Delete this combo?",onConfirm:async()=>{t(null);try{let c=await fetch(`/api/combos/${a}`,{method:"DELETE"});if(c.ok)d(b=>b.filter(b=>b.id!==a)),e?.name&&n(a=>{if(!(e.name in a))return a;let b={...a};return delete b[e.name],b});else{let a=await c.json().catch(()=>({}));b(a.error||`Failed to delete combo (HTTP ${c.status})`)}}catch(a){b("Failed to delete combo")}}})},C=async(a,c,d=null)=>{try{let e={...d||m},f={...e[a]||{},...c};for(let a of Object.keys(f))(""===f[a]||null===f[a]||void 0===f[a])&&delete f[a];let g=f.fallbackStrategy||"fallback";"fallback"!==g||f.judgeModel||f.routerModel||f.objective||void 0!==f.learningEnabled||void 0!==f.freezeLearning||void 0!==f.explorationRate||!1===f.capacityAutoSwitch?(!f.fallbackStrategy&&void 0===c.fallbackStrategy&&e[a]?.fallbackStrategy&&(f.fallbackStrategy=e[a].fallbackStrategy),e[a]=f):delete e[a];let h=await fetch("/api/settings",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({comboStrategies:e})});if(!h.ok){let a=await h.json().catch(()=>({}));b(a.error||`Failed to update combo strategy (${h.status})`);return}n(e)}catch(a){throw b("Failed to update combo strategy"),a}},D=async a=>{r(a);try{(await fetch("/api/settings",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({capacityAdapter:a})})).ok||b("Failed to update capacity adapter")}catch(a){b("Failed to update capacity adapter")}};return e?(0,w.jsxs)("div",{className:"flex flex-col gap-6",children:[(0,w.jsx)(bC.Qv,{}),(0,w.jsx)(bC.Qv,{})]}):(0,w.jsxs)("div",{className:"flex min-w-0 flex-col gap-6 px-1 sm:px-0",children:[(0,w.jsxs)("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-start sm:justify-between",children:[(0,w.jsxs)("div",{className:"min-w-0 max-w-3xl",children:[(0,w.jsx)("h1",{className:"text-[17px] font-semibold text-text-main",children:"Combos"}),(0,w.jsx)("p",{className:"text-sm text-text-muted mt-1",children:"Group models under one name, then pick a strategy per combo:"}),(0,w.jsxs)("ul",{className:"text-sm text-text-muted mt-2 flex flex-col gap-1.5",children:[(0,w.jsxs)("li",{children:[(0,w.jsx)("span",{className:"font-medium text-text-main",children:"Fallback"})," ","— tries models in order (next on failure)"]}),(0,w.jsxs)("li",{children:[(0,w.jsx)("span",{className:"font-medium text-text-main",children:"Round Robin"})," ","— rotates models across requests to spread load"]}),(0,w.jsxs)("li",{children:[(0,w.jsx)("span",{className:"font-medium text-text-main",children:"Fusion"})," ","— queries all models in parallel, then a judge synthesizes one answer. Best quality, but costs the most: every request bills all panel models + the judge (N+1 calls)"]}),(0,w.jsxs)("li",{children:[(0,w.jsx)("span",{className:"font-medium text-text-main",children:"Auto"})," ","— a router model picks one worker from the pool each request (2 calls: router + worker); optional learning from outcomes"]}),(0,w.jsxs)("li",{children:[(0,w.jsx)("span",{className:"font-medium text-text-main",children:"Capacity auto-switch"})," ","— when enabled on a combo, sends image/PDF requests to a model that supports them first (works with Fallback, Round Robin, and Fusion)"]})]})]}),(0,w.jsx)(bC.$n,{icon:"add",onClick:()=>h(!0),className:"w-full sm:w-auto whitespace-nowrap shrink-0",children:"Create Combo"})]}),0===c.length?(0,w.jsx)(bC.Zp,{children:(0,w.jsxs)("div",{className:"text-center py-12",children:[(0,w.jsx)("div",{className:"inline-flex items-center justify-center w-16 h-16 rounded-full bg-primary/10 text-primary mb-4",children:(0,w.jsx)("span",{className:"material-symbols-outlined text-[32px]",children:"layers"})}),(0,w.jsx)("p",{className:"text-text-main font-medium mb-1",children:"No combos yet"}),(0,w.jsx)("p",{className:"text-sm text-text-muted mb-4 max-w-md mx-auto",children:"Create a named model group, choose Fallback / Round Robin / Fusion / Auto, and point clients at the combo name."}),(0,w.jsx)(bC.$n,{icon:"add",onClick:()=>h(!0),className:"w-full sm:w-auto",children:"Create Combo"})]})}):(0,w.jsx)("div",{className:"flex flex-col gap-4",children:c.map(a=>(0,w.jsx)(bT,{combo:a,modelCaps:o,activeProviders:k,copied:u,onCopy:v,onEdit:()=>j(a),onDelete:()=>B(a.id),strategy:m[a.name]||{},onSetStrategy:b=>C(a.name,b)},a.id))}),(0,w.jsx)(bW,{capacityAdapter:q,onChange:D,activeProviders:k,getCaps:a=>o[a]||null}),(0,w.jsx)(bV,{isOpen:g,onClose:()=>h(!1),onSave:z,activeProviders:k,modelCaps:o,initialStrategy:{fallbackStrategy:"fallback",capacityAutoSwitch:!0}},"create"),(0,w.jsx)(bV,{isOpen:!!i,combo:i,onClose:()=>j(null),onSave:a=>A(i.id,a),activeProviders:k,modelCaps:o,initialStrategy:i?m[i.name]||{fallbackStrategy:"fallback"}:{}},i?.id||"new"),(0,w.jsx)(bC.uo,{isOpen:!!s,onClose:()=>t(null),onConfirm:s?.onConfirm,title:s?.title||"Confirm",message:s?.message,variant:"danger"})]})}function bN(a,b,c,d){let e=a||"fallback",f={fallbackStrategy:e,...void 0!==b?{capacityAutoSwitch:b}:{}};return"auto"===e?(c&&(f.routerModel=c),d&&(f.objective=d),f.judgeModel=""):("fusion"===e?f.routerModel="":(f.routerModel="",f.judgeModel=""),f.objective="",f.learningEnabled="",f.freezeLearning="",f.explorationRate=""),f}function bO(a,b,c){let d=(a||[]).filter(a=>a&&a!==b);return d.length>0&&!d.some(a=>c[a]?.vision)}function bP({models:a,routerModel:b}){let c=(a||[]).filter(a=>a&&a!==b);if(c.length<2)return null;let{cheap:d,frontier:e,disabled:f}=function(a){let b=(a||[]).filter(Boolean);if(b.length<=1)return{cheap:b.slice(),frontier:[],disabled:!0};let c=b.map(a=>({m:a,t:function(a){if(!a)return 4;let[b,...c]=a.split("/"),d=c.join("/")||b,e=(0,bG.PS)(b,d);if(!e||"number"!=typeof e.input)return 4;let f="number"==typeof e.output?e.output:3*e.input,g=e.input+f;return g<2?0:g<10?1:g<30?2:g<80?3:4}(a)}));if(new Set(c.map(a=>a.t)).size<=1)return{cheap:b.slice(),frontier:[],disabled:!0};let d=c.filter(a=>a.t<=1).map(a=>a.m),e=c.filter(a=>a.t>=2).map(a=>a.m);if(!d.length||!e.length){let a=c.map((a,b)=>({...a,i:b})).sort((a,b)=>a.t-b.t||a.i-b.i),b=Math.ceil(a.length/2);d=a.slice(0,b).map(a=>a.m),e=a.slice(b).map(a=>a.m)}return{cheap:d,frontier:e,disabled:!1}}(c),g=a=>String(a).split("/").pop();return f?(0,w.jsxs)("div",{className:"flex min-w-0 flex-wrap items-center gap-1.5",children:[(0,w.jsx)("span",{className:"text-[11px] font-medium text-text-muted",children:"Tiers"}),(0,w.jsx)("span",{className:"text-[10px] text-text-subtle",title:"All workers share one cost tier — tiered routing is off",children:"single tier (tiering off)"})]}):(0,w.jsxs)("div",{className:"flex min-w-0 flex-wrap items-center gap-1.5",children:[(0,w.jsx)("span",{className:"text-[11px] font-medium text-text-muted",children:"Tiers"}),d.map(a=>(0,w.jsx)("span",{className:"rounded border border-emerald-500/30 bg-emerald-500/10 px-1.5 py-0.5 font-mono text-[10px] text-emerald-600 dark:text-emerald-400",title:`${a} — cheap tier`,children:g(a)},`c-${a}`)),(0,w.jsx)("span",{className:"material-symbols-outlined text-[12px] text-text-subtle",children:"arrow_forward"}),e.map(a=>(0,w.jsx)("span",{className:"rounded border border-amber-500/30 bg-amber-500/10 px-1.5 py-0.5 font-mono text-[10px] text-amber-600 dark:text-amber-400",title:`${a} — frontier tier`,children:g(a)},`f-${a}`))]})}let bQ=[{value:"fallback",label:"Fallback — try in order"},{value:"round-robin",label:"Round Robin — rotate load"},{value:"fusion",label:"Fusion — panel + judge (N+1)"},{value:"auto",label:"Auto — router picks 1 worker"}],bR={fallback:"Tries models top-to-bottom; on failure uses the next.","round-robin":"Rotates models across requests to spread load.",fusion:"Calls every model, then a judge merges answers (bills N+1).",auto:"Router model chooses one worker each request (bills 2 calls)."},bS=[{value:"quality",label:"Quality"},{value:"balanced",label:"Balanced"},{value:"economy",label:"Economy"},{value:"latency",label:"Latency"}];function bT({combo:a,modelCaps:b={},activeProviders:c=[],copied:d,onCopy:e,onEdit:f,onDelete:g,strategy:h={},onSetStrategy:i}){let[j,k]=(0,x.useState)(!1),[l,m]=(0,x.useState)(!1),[n,o]=(0,x.useState)(!1),[p,q]=(0,x.useState)(!1),[r,s]=(0,x.useState)(""),t=h.fallbackStrategy||"fallback",u=h.judgeModel||"",v="auto"===t,y=h.routerModel||"",z=h.objective||"balanced",A=h.providerStrategy||"off",B=!1!==h.capacityAutoSwitch;return(0,w.jsxs)(bC.Zp,{padding:"sm",className:"group",children:[(0,w.jsxs)("div",{className:"flex min-w-0 flex-col gap-3 sm:flex-row sm:items-center sm:justify-between",children:[(0,w.jsxs)("div",{className:"flex min-w-0 flex-1 items-start gap-3 sm:items-center",children:[(0,w.jsx)("div",{className:"size-8 rounded-lg bg-primary/10 flex items-center justify-center shrink-0",children:(0,w.jsx)("span",{className:"material-symbols-outlined text-primary text-[18px]",children:"layers"})}),(0,w.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,w.jsx)("code",{className:"block truncate font-mono text-sm font-medium",children:a.name}),(0,w.jsx)("p",{className:"text-[10px] text-text-subtle mt-0.5",children:bR[t]||""}),(0,w.jsxs)("div",{className:"mt-1 flex min-w-0 flex-wrap items-center gap-1",children:[0===a.models.length?(0,w.jsx)("span",{className:"text-xs text-text-muted italic",children:"No models"}):a.models.slice(0,3).map((a,c)=>(0,w.jsxs)("code",{className:"inline-flex items-center gap-1 rounded bg-black/5 px-1.5 py-0.5 font-mono text-xs text-text-muted dark:bg-white/5",children:[(0,w.jsx)("span",{children:a}),(0,w.jsx)(bC.nh,{caps:b[a]})]},c)),a.models.length>3&&(0,w.jsxs)("span",{className:"text-[10px] text-text-muted",children:["+",a.models.length-3," more"]})]}),"fusion"===t&&(0,w.jsxs)("div",{className:"mt-2 flex min-w-0 flex-wrap items-center gap-1.5",children:[(0,w.jsx)("span",{className:"text-[11px] font-medium text-text-muted",children:"Judge"}),(0,w.jsxs)("button",{onClick:()=>k(!0),className:"inline-flex max-w-full items-center gap-1 rounded border border-dashed border-primary/40 px-1.5 py-0.5 font-mono text-[11px] text-primary hover:border-primary hover:bg-primary/5 transition-colors",title:"Pick the model that fuses panel answers",children:[(0,w.jsx)("span",{className:"material-symbols-outlined text-[13px]",children:"gavel"}),(0,w.jsx)("span",{className:"truncate",children:u||`Auto — ${a.models[0]||"first model"}`})]}),u&&(0,w.jsx)("button",{onClick:()=>i({judgeModel:""}),className:"p-0.5 rounded text-text-muted hover:text-red-500 hover:bg-red-500/10 transition-colors",title:"Reset judge to Auto",children:(0,w.jsx)("span",{className:"material-symbols-outlined text-[13px]",children:"close"})})]}),v&&(0,w.jsxs)("div",{className:"mt-2 flex min-w-0 flex-col gap-2",children:[(0,w.jsxs)("div",{className:"flex min-w-0 flex-wrap items-center gap-1.5",children:[(0,w.jsx)("span",{className:"text-[11px] font-medium text-text-muted",children:"Router"}),(0,w.jsxs)("button",{type:"button",onClick:()=>m(!0),className:"inline-flex max-w-full items-center gap-1 rounded border border-dashed border-primary/40 px-1.5 py-0.5 font-mono text-[11px] text-primary hover:border-primary hover:bg-primary/5 transition-colors",title:"Model that picks the worker each request — required for Auto",children:[(0,w.jsx)("span",{className:"material-symbols-outlined text-[13px]",children:"alt_route"}),(0,w.jsx)("span",{className:"truncate",children:y||"Select a router model (required)"})]})]}),y&&a.models?.includes(y)&&(0,w.jsxs)("p",{className:"text-[10px] text-amber-600 dark:text-amber-400 flex items-center gap-1",children:[(0,w.jsx)("span",{className:"material-symbols-outlined text-[12px]",children:"warning"}),"Router is also in the worker list — it is auto-excluded from the pool."]}),bO(a.models,y,b)&&(0,w.jsxs)("p",{className:"text-[10px] text-amber-600 dark:text-amber-400 flex items-center gap-1",children:[(0,w.jsx)("span",{className:"material-symbols-outlined text-[12px]",children:"warning"}),"No vision-capable model — image requests will have images stripped"]}),(0,w.jsx)(bP,{models:a.models,routerModel:y}),(0,w.jsxs)("div",{className:"flex min-w-0 flex-wrap items-center gap-1.5",children:[(0,w.jsx)("span",{className:"text-[11px] font-medium text-text-muted",children:"Objective"}),(0,w.jsx)("select",{value:z,onChange:a=>i({objective:a.target.value}),className:"rounded border border-border bg-surface-2 px-1.5 py-0.5 text-[11px] text-text-main",children:bS.map(a=>(0,w.jsx)("option",{value:a.value,children:a.label},a.value))}),(0,w.jsxs)("label",{className:"inline-flex items-center gap-1 text-[11px] text-text-muted cursor-pointer",children:[(0,w.jsx)("input",{type:"checkbox",className:"rounded border-border",checked:!1!==h.learningEnabled,onChange:a=>i({learningEnabled:a.target.checked})}),"Learn"]}),(0,w.jsxs)("label",{className:"inline-flex items-center gap-1 text-[11px] text-text-muted cursor-pointer",title:"Keep routing on current learning version; block relearn",children:[(0,w.jsx)("input",{type:"checkbox",className:"rounded border-border",checked:!!h.freezeLearning,onChange:a=>i({freezeLearning:a.target.checked})}),"Freeze"]}),(0,w.jsxs)("label",{className:"inline-flex items-center gap-1 text-[11px] text-text-muted cursor-pointer",title:"Occasionally append a 1/2/3 feedback prompt to Auto chat replies (human chat only). Off by default.",children:[(0,w.jsx)("input",{type:"checkbox",className:"rounded border-border",checked:!!h.feedbackAsk,onChange:a=>i({feedbackAsk:a.target.checked})}),"Ask feedback"]}),(0,w.jsxs)("button",{type:"button",disabled:p||!!h.freezeLearning,onClick:async()=>{q(!0),s("");try{let b=await fetch("/api/routing/learn",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({comboName:a.name})}),c=await b.json();s(c.message||(c.ok?"Done":c.error||"Failed"))}catch(a){s(a.message||"Failed")}finally{q(!1)}},className:"inline-flex items-center gap-1 rounded border border-primary/40 bg-primary/10 px-2 py-0.5 text-[11px] font-medium text-primary hover:bg-primary/15 disabled:opacity-50",title:"Run learning optimizer on recent routing events",children:[(0,w.jsx)("span",{className:"material-symbols-outlined text-[13px]",children:"psychology"}),p?"Learning…":"Relearn now"]}),(0,w.jsx)("a",{href:`/dashboard/combos/routing?combo=${encodeURIComponent(a.name)}`,className:"inline-flex items-center gap-1 rounded border border-border px-2 py-0.5 text-[11px] text-text-muted hover:text-primary hover:border-primary/40",children:"Insights"})]}),(0,w.jsxs)("div",{className:"flex min-w-0 flex-wrap items-center gap-1.5",children:[(0,w.jsx)("span",{className:"text-[11px] font-medium text-text-muted",children:"Provider"}),(0,w.jsxs)("select",{value:A,onChange:a=>i({providerStrategy:a.target.value}),className:"rounded border border-border bg-surface-2 px-1.5 py-0.5 text-[11px] text-text-main",children:[(0,w.jsx)("option",{value:"off",children:"Off"}),(0,w.jsx)("option",{value:"priority",children:"Priority"}),(0,w.jsx)("option",{value:"round-robin",children:"Round robin"}),(0,w.jsx)("option",{value:"fastest",children:"Fastest"}),(0,w.jsx)("option",{value:"quota-first",children:"Quota first"})]}),"priority"===A&&(0,w.jsxs)(w.Fragment,{children:[(0,w.jsx)("input",{type:"text",value:Array.isArray(h.providerOrder)?h.providerOrder.join(", "):"",onChange:a=>i({providerOrder:a.target.value.split(",").map(a=>a.trim()).filter(Boolean)}),placeholder:"provider-a, provider-b",className:"w-40 rounded border border-border bg-surface-2 px-1.5 py-0.5 text-[11px] text-text-main"}),(0,w.jsx)("span",{className:"text-[10px] text-text-muted",children:"comma-separated provider names, highest priority first"})]}),(0,w.jsx)("input",{type:"number",min:"1",value:h.providerLatencyGuardMs??"",onChange:a=>i({providerLatencyGuardMs:Number(a.target.value)||void 0}),placeholder:"20000",title:"Demote providers slower than this latency in milliseconds",className:"w-20 rounded border border-border bg-surface-2 px-1.5 py-0.5 text-[11px] text-text-main"})]}),"quota-first"===A&&(0,w.jsx)("p",{className:"text-[10px] text-text-muted",children:"Quota data currently available for Claude & Codex; other providers use availability (not rate-limited, lower recent use)."}),(0,w.jsxs)("div",{className:"flex min-w-0 flex-wrap items-center gap-2 text-[11px] text-text-muted",children:[(0,w.jsxs)("label",{className:"inline-flex items-center gap-1",children:["Window",(0,w.jsxs)("select",{value:h.learningWindowDays??14,onChange:a=>i({learningWindowDays:Number(a.target.value)||14}),className:"rounded border border-border bg-surface-2 px-1 py-0.5 text-[11px] text-text-main",children:[(0,w.jsx)("option",{value:7,children:"7d"}),(0,w.jsx)("option",{value:14,children:"14d"}),(0,w.jsx)("option",{value:30,children:"30d"})]})]}),(0,w.jsxs)("label",{className:"inline-flex items-center gap-1",title:"Epsilon-greedy exploration (capped at 20%)",children:["Explore",(0,w.jsx)("select",{value:Math.round((h.explorationRate??.05)*100),onChange:a=>i({explorationRate:Number(a.target.value)/100}),className:"rounded border border-border bg-surface-2 px-1 py-0.5 text-[11px] text-text-main",children:[0,5,10,15,20].map(a=>(0,w.jsxs)("option",{value:a,children:[a,"%"]},a))})]}),(0,w.jsxs)("label",{className:"inline-flex items-center gap-1",title:"0 = manual relearn only",children:["Auto-relearn",(0,w.jsxs)("select",{value:h.autoLearnIntervalHours??0,onChange:a=>i({autoLearnIntervalHours:Number(a.target.value)||0}),className:"rounded border border-border bg-surface-2 px-1 py-0.5 text-[11px] text-text-main",children:[(0,w.jsx)("option",{value:0,children:"off"}),(0,w.jsx)("option",{value:6,children:"6h"}),(0,w.jsx)("option",{value:12,children:"12h"}),(0,w.jsx)("option",{value:24,children:"24h"}),(0,w.jsx)("option",{value:72,children:"72h"})]})]}),(0,w.jsxs)("label",{className:"inline-flex items-center gap-1",title:"Capacity pre-filter before router (vision/PDF)",children:[(0,w.jsx)("input",{type:"checkbox",className:"rounded border-border",checked:!1!==h.capacityAutoSwitch,onChange:a=>i({capacityAutoSwitch:a.target.checked})}),"Heuristic first"]}),(0,w.jsxs)("label",{className:"inline-flex items-center gap-1",title:"Emit X-Auto-Router-* response headers (worker, cluster, score, skipped)",children:[(0,w.jsx)("input",{type:"checkbox",className:"rounded border-border",checked:!1!==h.emitAutoRouterHeaders,onChange:a=>i({emitAutoRouterHeaders:a.target.checked})}),"Route headers"]})]}),r?(0,w.jsx)("p",{className:"text-[11px] font-mono text-text-subtle",children:r}):(0,w.jsx)("p",{className:"text-[10px] text-text-subtle",children:"Worker pool = models list (router model excluded if listed). Every request re-routes. Router model is required — pick a connected account (a cheap, fast model such as Haiku works well)."})]})]})]}),(0,w.jsxs)("div",{className:"flex w-full flex-col gap-2 sm:w-auto sm:flex-row sm:items-center sm:gap-3 sm:shrink-0",children:[(0,w.jsxs)("div",{className:"w-full sm:w-[220px] flex flex-col gap-1.5",children:[(0,w.jsx)(bC.l6,{options:bQ,value:t,onChange:a=>{let b=a.target.value;if("auto"===b&&!y){o(!0),m(!0);return}i({fallbackStrategy:b})},selectClassName:"py-1.5 text-xs"}),!v&&(0,w.jsxs)("label",{className:"inline-flex items-center gap-1.5 text-[10px] text-text-muted cursor-pointer",children:[(0,w.jsx)("input",{type:"checkbox",className:"rounded border-border",checked:B,onChange:a=>i({capacityAutoSwitch:a.target.checked})}),"Capacity auto-switch (vision/PDF first)"]})]}),(0,w.jsxs)("div",{className:"grid grid-cols-3 gap-1 sm:flex",children:[(0,w.jsxs)("button",{onClick:b=>{b.stopPropagation(),e(a.name,`combo-${a.id}`)},className:"flex flex-col items-center rounded px-2 py-1 text-text-muted transition-colors hover:bg-black/5 hover:text-primary dark:hover:bg-white/5",title:"Copy combo name",children:[(0,w.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:d===`combo-${a.id}`?"check":"content_copy"}),(0,w.jsx)("span",{className:"text-[10px] leading-tight",children:"Copy"})]}),(0,w.jsxs)("button",{onClick:f,className:"flex flex-col items-center rounded px-2 py-1 text-text-muted transition-colors hover:bg-black/5 hover:text-primary dark:hover:bg-white/5",title:"Edit",children:[(0,w.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"edit"}),(0,w.jsx)("span",{className:"text-[10px] leading-tight",children:"Edit"})]}),(0,w.jsxs)("button",{onClick:g,className:"flex flex-col items-center rounded px-2 py-1 text-red-500 transition-colors hover:bg-red-500/10",title:"Delete",children:[(0,w.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"delete"}),(0,w.jsx)("span",{className:"text-[10px] leading-tight",children:"Delete"})]})]})]})]}),(0,w.jsx)(bC.rq,{isOpen:j,onClose:()=>k(!1),onSelect:a=>{i({judgeModel:a?.value||""}),k(!1)},activeProviders:c,title:"Select Judge Model",addedModelValues:u?[u]:[],closeOnSelect:!0}),(0,w.jsx)(bC.rq,{isOpen:l,onClose:()=>{o(!1),m(!1)},onSelect:a=>{let b=a?.value||"";n?(o(!1),b&&i({fallbackStrategy:"auto",routerModel:b})):i({routerModel:b}),m(!1)},activeProviders:c,title:"Select Router Model",addedModelValues:y?[y]:[],closeOnSelect:!0})]})}function bU({id:a,index:b,model:c,learned:d=null,isFirst:e,isLast:f,onEdit:g,onMoveUp:h,onMoveDown:i,onRemove:j}){let{attributes:k,listeners:l,setNodeRef:n,transform:o,isDragging:p}=function(a){var b,c,d,e;let{animateLayoutChanges:f=br,attributes:g,disabled:h,data:i,getNewIndex:j=bq,id:k,strategy:l,resizeObserverConfig:n,transition:o=bs}=a,{items:p,containerId:q,activeIndex:r,disabled:s,disableTransforms:t,sortedRects:u,overIndex:v,useDragOverlay:w,strategy:y}=(0,x.useContext)(bo),z=(b=h,c=s,"boolean"==typeof b?{draggable:b,droppable:!1}:{draggable:null!=(d=null==b?void 0:b.draggable)?d:c.draggable,droppable:null!=(e=null==b?void 0:b.droppable)?e:c.droppable}),A=p.indexOf(k),B=(0,x.useMemo)(()=>({sortable:{containerId:q,index:A,items:p},...i}),[q,i,A,p]),C=(0,x.useMemo)(()=>p.slice(p.indexOf(k)),[p,k]),{rect:D,node:E,isOver:F,setNodeRef:G}=function(a){let{data:b,disabled:c=!1,id:d,resizeObserverConfig:e}=a,f=P("Droppable"),{active:g,dispatch:h,over:i,measureDroppableContainers:j}=(0,x.useContext)(a8),k=(0,x.useRef)({disabled:c}),l=(0,x.useRef)(!1),n=(0,x.useRef)(null),o=(0,x.useRef)(null),{disabled:p,updateMeasurementsFor:q,timeout:r}={...bh,...e},s=K(null!=q?q:d),t=aX({callback:(0,x.useCallback)(()=>{if(!l.current){l.current=!0;return}null!=o.current&&clearTimeout(o.current),o.current=setTimeout(()=>{j(Array.isArray(s.current)?s.current:[s.current]),o.current=null},r)},[r]),disabled:p||!g}),[u,v]=M((0,x.useCallback)((a,b)=>{t&&(b&&(t.unobserve(b),l.current=!1),a&&t.observe(a))},[t])),w=K(b);return(0,x.useEffect)(()=>{t&&u.current&&(t.disconnect(),l.current=!1,t.observe(u.current))},[u,t]),(0,x.useEffect)(()=>(h({type:m.RegisterDroppable,element:{id:d,key:f,disabled:c,node:u,rect:n,data:w}}),()=>h({type:m.UnregisterDroppable,key:f,id:d})),[d]),(0,x.useEffect)(()=>{c!==k.current.disabled&&(h({type:m.SetDroppableDisabled,id:d,key:f,disabled:c}),k.current.disabled=c)},[d,f,c,h]),{active:g,rect:n,isOver:(null==i?void 0:i.id)===d,node:u,over:i,setNodeRef:v}}({id:k,data:B,disabled:z.droppable,resizeObserverConfig:{updateMeasurementsFor:C,...n}}),{active:H,activatorEvent:J,activeNodeRect:L,attributes:N,setNodeRef:O,listeners:Q,isDragging:R,over:S,setActivatorNodeRef:U,transform:W}=function(a){let{id:b,data:c,disabled:d=!1,attributes:e}=a,f=P("Draggable"),{activators:g,activatorEvent:h,active:i,activeNodeRect:j,ariaDescribedById:k,draggableNodes:l,over:m}=(0,x.useContext)(a8),{role:n=bg,roleDescription:o="draggable",tabIndex:p=0}=null!=e?e:{},q=(null==i?void 0:i.id)===b,r=(0,x.useContext)(q?bd:bf),[s,t]=M(),[u,v]=M(),w=(0,x.useMemo)(()=>g.reduce((a,c)=>{let{eventName:d,handler:e}=c;return a[d]=a=>{e(a,b)},a},{}),[g,b]),y=K(c);return I(()=>(l.set(b,{id:b,key:f,node:s,activatorNode:u,data:y}),()=>{let a=l.get(b);a&&a.key===f&&l.delete(b)}),[l,b]),{active:i,activatorEvent:h,activeNodeRect:j,attributes:(0,x.useMemo)(()=>({role:n,tabIndex:p,"aria-disabled":d,"aria-pressed":!!q&&n===bg||void 0,"aria-roledescription":o,"aria-describedby":k.draggable}),[d,n,p,q,o,k.draggable]),isDragging:q,listeners:d?void 0:w,node:s,over:m,setNodeRef:t,setActivatorNodeRef:v,transform:r}}({id:k,data:B,attributes:{...bv,...g},disabled:z.draggable}),X=function(){for(var a=arguments.length,b=Array(a),c=0;c<a;c++)b[c]=arguments[c];return(0,x.useMemo)(()=>a=>{b.forEach(b=>b(a))},b)}(G,O),Y=!!H,Z=Y&&!t&&bj(r)&&bj(v),$=!w&&R,_=$&&Z?W:null,aa=Z?null!=_?_:(null!=l?l:y)({rects:u,activeNodeRect:L,activeIndex:r,overIndex:v,index:A}):null,ab=bj(r)&&bj(v)?j({id:k,items:p,activeIndex:r,overIndex:v}):A,ac=null==H?void 0:H.id,ad=(0,x.useRef)({activeId:ac,items:p,newIndex:ab,containerId:q}),ae=p!==ad.current.items,af=f({active:H,containerId:q,isDragging:R,isSorting:Y,id:k,index:A,items:p,newIndex:ad.current.newIndex,previousItems:ad.current.items,previousContainerId:ad.current.containerId,transition:o,wasDragging:null!=ad.current.activeId}),ag=function(a){let{disabled:b,index:c,node:d,rect:e}=a,[f,g]=(0,x.useState)(null),h=(0,x.useRef)(c);return I(()=>{if(!b&&c!==h.current&&d.current){let a=e.current;if(a){let b=aq(d.current,{ignoreTransform:!0}),c={x:a.left-b.left,y:a.top-b.top,scaleX:a.width/b.width,scaleY:a.height/b.height};(c.x||c.y)&&g(c)}}c!==h.current&&(h.current=c)},[b,c,d,e]),(0,x.useEffect)(()=>{f&&g(null)},[f]),f}({disabled:!af,index:A,node:E,rect:D});return(0,x.useEffect)(()=>{Y&&ad.current.newIndex!==ab&&(ad.current.newIndex=ab),q!==ad.current.containerId&&(ad.current.containerId=q),p!==ad.current.items&&(ad.current.items=p)},[Y,ab,q,p]),(0,x.useEffect)(()=>{if(ac===ad.current.activeId)return;if(null!=ac&&null==ad.current.activeId){ad.current.activeId=ac;return}let a=setTimeout(()=>{ad.current.activeId=ac},50);return()=>clearTimeout(a)},[ac]),{active:H,activeIndex:r,attributes:N,data:B,rect:D,index:A,newIndex:ab,items:p,isOver:F,isSorting:Y,isDragging:R,listeners:Q,node:E,overIndex:v,over:S,setNodeRef:X,setActivatorNodeRef:U,setDroppableNodeRef:G,setDraggableNodeRef:O,transform:null!=ag?ag:aa,transition:ag||ae&&ad.current.newIndex===A?bu:(!$||T(J))&&o&&(Y||af)?V.Transition.toString({...o,property:bt}):void 0}}({id:a}),q={transform:V.Transform.toString(o),opacity:p?.4:1,zIndex:p?999:void 0},[r,s]=(0,x.useState)(!1),[t,u]=(0,x.useState)(c),v=()=>{let a=t.trim();a&&a!==c?g(a):u(c),s(!1)};return(0,w.jsxs)("div",{ref:n,style:q,className:`group flex min-w-0 items-center gap-1.5 rounded-md px-2 py-1 bg-black/[0.02] hover:bg-black/[0.04] dark:bg-white/[0.02] dark:hover:bg-white/[0.04] transition-colors ${p?"shadow-md ring-1 ring-primary/30":""}`,children:[(0,w.jsx)("button",{...k,...l,type:"button",className:"cursor-grab touch-none p-0.5 rounded text-text-muted hover:text-primary active:cursor-grabbing shrink-0",title:"Drag to reorder",children:(0,w.jsxs)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"currentColor",children:[(0,w.jsx)("circle",{cx:"9",cy:"4",r:"2"}),(0,w.jsx)("circle",{cx:"15",cy:"4",r:"2"}),(0,w.jsx)("circle",{cx:"9",cy:"12",r:"2"}),(0,w.jsx)("circle",{cx:"15",cy:"12",r:"2"}),(0,w.jsx)("circle",{cx:"9",cy:"20",r:"2"}),(0,w.jsx)("circle",{cx:"15",cy:"20",r:"2"})]})}),(0,w.jsx)("span",{className:"text-[10px] font-medium text-text-muted w-3 text-center shrink-0",children:b+1}),r?(0,w.jsx)("input",{autoFocus:!0,value:t,onChange:a=>u(a.target.value),onBlur:v,onKeyDown:a=>{"Enter"===a.key&&v(),"Escape"===a.key&&(u(c),s(!1))},className:"min-w-0 flex-1 rounded border border-primary/40 bg-white px-1.5 py-0.5 font-mono text-xs text-text-main outline-none dark:bg-black/20"}):(0,w.jsx)("div",{role:"button",tabIndex:0,className:"min-w-0 flex-1 cursor-text truncate rounded px-1.5 py-0.5 font-mono text-xs text-text-main hover:bg-black/5 dark:hover:bg-white/5 focus:outline-none focus-visible:ring-2 focus-visible:ring-primary/40",onClick:()=>s(!0),onKeyDown:a=>{("Enter"===a.key||" "===a.key)&&(a.preventDefault(),s(!0))},title:"Click to edit","aria-label":`Edit model ${c}`,children:c}),d&&d.n>=10&&(0,w.jsxs)("span",{className:"shrink-0 font-mono text-[10px] text-text-subtle",title:"Learned routing stats (all combos, last 14d)",children:["avg ",Math.round(d.avgScore)," \xb7 n=",d.n,d.bestCluster?` \xb7 best: ${d.bestCluster}`:""]}),(0,w.jsxs)("div",{className:"flex shrink-0 items-center gap-0.5",children:[(0,w.jsx)("button",{onClick:h,disabled:e,className:`p-0.5 rounded ${e?"text-text-muted/20 cursor-not-allowed":"text-text-muted hover:text-primary hover:bg-black/5 dark:hover:bg-white/5"}`,title:"Move up",children:(0,w.jsx)("span",{className:"material-symbols-outlined text-[12px]",children:"arrow_upward"})}),(0,w.jsx)("button",{onClick:i,disabled:f,className:`p-0.5 rounded ${f?"text-text-muted/20 cursor-not-allowed":"text-text-muted hover:text-primary hover:bg-black/5 dark:hover:bg-white/5"}`,title:"Move down",children:(0,w.jsx)("span",{className:"material-symbols-outlined text-[12px]",children:"arrow_downward"})})]}),(0,w.jsx)("button",{onClick:j,className:"p-0.5 hover:bg-red-500/10 rounded text-text-muted hover:text-red-500 transition-all",title:"Remove",children:(0,w.jsx)("span",{className:"material-symbols-outlined text-[12px]",children:"close"})})]})}function bV({isOpen:a,combo:b,onClose:c,onSave:d,activeProviders:e,modelCaps:f={},kindFilter:g=null,initialStrategy:h={}}){let[i,j]=(0,x.useState)(b?.name||""),[k,l]=(0,x.useState)(b?.models||[]),[m,n]=(0,x.useState)(h.fallbackStrategy||"fallback"),[o,p]=(0,x.useState)(!1!==h.capacityAutoSwitch),[q,r]=(0,x.useState)(!1),[s,t]=(0,x.useState)(!1),[u,v]=(0,x.useState)(""),[y,z]=(0,x.useState)({}),[A,B]=(0,x.useState)({}),C=function(){for(var a=arguments.length,b=Array(a),c=0;c<a;c++)b[c]=arguments[c];return(0,x.useMemo)(()=>[...b].filter(a=>null!=a),[...b])}(ad(aP,{activationConstraint:{distance:5}}),ad(aK,{coordinateGetter:by})),D=k.map((a,b)=>({uid:`item-${b}`,model:a})),E=a=>a.trim()?bH.test(a)?(v(""),!0):(v("Only letters, numbers, -, _ and . allowed"),!1):(v("Name is required"),!1),F=async()=>{if(E(i)){if(0===k.length)return void(0,bF.s)("Add at least one model to the combo");if("auto"===m&&k.length<2)return void(0,bF.s)("Auto strategy needs at least 2 models in the worker pool (plus a connected router account)");t(!0),await d({name:i.trim(),models:k,strategy:m,capacityAutoSwitch:"auto"===m||o}),t(!1)}},G=!!b;return(0,w.jsxs)(w.Fragment,{children:[(0,w.jsx)(bC.aF,{isOpen:a,onClose:c,title:G?"Edit Combo":"Create Combo",children:(0,w.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,w.jsxs)("p",{className:"text-xs text-text-muted leading-relaxed",children:["Clients call this combo by name as the ",(0,w.jsx)("code",{className:"text-primary",children:"model"})," field. Strategy controls how models in the list are used."]}),(0,w.jsxs)("div",{children:[(0,w.jsx)(bC.pd,{label:"Combo Name",value:i,onChange:a=>{let b=a.target.value;j(b),b?E(b):v("")},placeholder:"my-combo",error:u}),(0,w.jsx)("p",{className:"text-[10px] text-text-muted mt-0.5",children:"Only letters, numbers, -, _ and . allowed \xb7 use as model id in /v1"})]}),(0,w.jsxs)("div",{children:[(0,w.jsx)("label",{className:"text-sm font-medium mb-1.5 block",children:"Strategy"}),(0,w.jsx)(bC.l6,{options:bQ,value:m,onChange:a=>n(a.target.value),selectClassName:"py-2 text-sm"}),(0,w.jsx)("p",{className:"text-[11px] text-text-muted mt-1.5",children:bR[m]}),"auto"===m&&(0,w.jsxs)("p",{className:"text-[11px] text-amber-600 dark:text-amber-400 mt-1 flex items-center gap-1",children:[(0,w.jsx)("span",{className:"material-symbols-outlined text-[12px]",children:"info"}),"Auto requires a router model — select one on the combo card after saving."]}),"auto"!==m&&(0,w.jsxs)("label",{className:"mt-2 inline-flex items-center gap-2 text-xs text-text-muted cursor-pointer",children:[(0,w.jsx)("input",{type:"checkbox",className:"rounded border-border",checked:o,onChange:a=>p(a.target.checked)}),"Capacity auto-switch — prefer vision/PDF-capable models when the request needs them"]}),"auto"===m&&(0,w.jsx)("p",{className:"text-[11px] text-text-subtle mt-1.5 font-mono",children:"After create: set Router model on the combo card (must be a connected account). Workers = this model list (router excluded if listed)."}),"fusion"===m&&(0,w.jsx)("p",{className:"text-[11px] text-text-subtle mt-1.5 font-mono",children:"After create: optionally set Judge on the combo card (default = first model)."})]}),(0,w.jsxs)("div",{children:[(0,w.jsxs)("label",{className:"text-sm font-medium mb-1.5 block",children:["Models ","fallback"===m?"(order = priority)":"(pool)"]}),k.length>0&&bO(k,null,f)&&(0,w.jsxs)("p",{className:"text-[10px] text-amber-600 dark:text-amber-400 flex items-center gap-1 mb-1",children:[(0,w.jsx)("span",{className:"material-symbols-outlined text-[12px]",children:"warning"}),"No vision-capable model — image requests will have images stripped"]}),0===k.length?(0,w.jsxs)("div",{className:"text-center py-4 border border-dashed border-black/10 dark:border-white/10 rounded-lg bg-black/[0.01] dark:bg-white/[0.01]",children:[(0,w.jsx)("span",{className:"material-symbols-outlined text-text-muted text-xl mb-1",children:"layers"}),(0,w.jsx)("p",{className:"text-xs text-text-muted",children:"No models added yet"})]}):(0,w.jsx)(be,{sensors:C,collisionDetection:al,onDragEnd:a=>{let{active:b,over:c}=a;if(c&&b.id!==c.id){let a=D.findIndex(a=>a.uid===b.id),d=D.findIndex(a=>a.uid===c.id);-1!==a&&-1!==d&&l(b=>bi(b,a,d))}},modifiers:[bB,bA],children:(0,w.jsx)(bp,{items:D.map(a=>a.uid),strategy:bm,children:(0,w.jsx)("div",{className:"flex max-h-[55vh] min-w-0 flex-col gap-1 overflow-y-auto sm:max-h-[350px]",children:D.map(({uid:a,model:b},c)=>(0,w.jsx)(bU,{id:a,index:c,model:b,learned:A[b]||null,isFirst:0===c,isLast:c===D.length-1,onEdit:a=>{let b=[...k];b[c]=a,l(b)},onMoveUp:()=>(a=>{if(0===a)return;let b=[...k];[b[a-1],b[a]]=[b[a],b[a-1]],l(b)})(c),onMoveDown:()=>(a=>{if(a===k.length-1)return;let b=[...k];[b[a],b[a+1]]=[b[a+1],b[a]],l(b)})(c),onRemove:()=>{l(k.filter((a,b)=>b!==c))}},a))})})}),(0,w.jsxs)("button",{onClick:()=>r(!0),className:"w-full mt-2 py-2 border border-dashed border-black/10 dark:border-white/10 rounded-lg text-xs text-primary font-medium hover:text-primary hover:border-primary/50 transition-colors flex items-center justify-center gap-1",children:[(0,w.jsx)("span",{className:"material-symbols-outlined text-[16px]",children:"add"}),"Add Model"]})]}),(0,w.jsxs)("div",{className:"flex flex-col gap-2 pt-1 sm:flex-row",children:[(0,w.jsx)(bC.$n,{onClick:c,variant:"ghost",fullWidth:!0,size:"sm",children:"Cancel"}),(0,w.jsx)(bC.$n,{onClick:F,fullWidth:!0,size:"sm",disabled:!i.trim()||!!u||s,children:s?"Saving...":G?"Save":"Create"})]})]})}),(0,w.jsx)(bC.rq,{isOpen:q,onClose:()=>r(!1),onSelect:a=>{k.includes(a.value)||l([...k,a.value])},onDeselect:a=>{l(k.filter(b=>b!==a.value))},activeProviders:e,modelAliases:y,title:"Add Model to Combo",kindFilter:g,addedModelValues:k,closeOnSelect:!1})]})}function bW({capacityAdapter:a,onChange:b,activeProviders:c,getCaps:d}){return(0,w.jsx)(bC.Zp,{padding:"sm",children:(0,w.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,w.jsx)("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between",children:(0,w.jsxs)("div",{className:"min-w-0",children:[(0,w.jsx)("p",{className:"text-sm font-medium text-text-main",children:"Capacity Adapter"}),(0,w.jsx)("p",{className:"text-xs text-text-muted mt-0.5",children:"Request carries images or audio your model can't read? Auto-switches to a model in the pool below."}),(0,w.jsxs)("ul",{className:"mt-1.5 text-[11px] text-text-muted flex flex-col gap-0.5",children:[(0,w.jsxs)("li",{children:[(0,w.jsx)("span",{className:"font-medium text-text-main",children:"Vision"})," — images (png, jpg, webp, …)"]}),(0,w.jsxs)("li",{children:[(0,w.jsx)("span",{className:"font-medium text-text-main",children:"Audio"})," — audio input"]})]})]})}),(0,w.jsx)("div",{className:"flex flex-col gap-4",children:bI.map(e=>(0,w.jsx)(bX,{cap:e,entry:a[e.key]||bJ,onChange:c=>b({...a,[e.key]:c}),activeProviders:c,getCaps:d},e.key))})]})})}function bX({cap:a,entry:b,onChange:c,activeProviders:d,getCaps:e}){let[f,g]=(0,x.useState)(!1),{enabled:h,roundRobin:i,models:j}=b,k=a=>c({...b,...a}),l=(a,b)=>{let c=a+b;if(c<0||c>=j.length)return;let d=[...j];[d[a],d[c]]=[d[c],d[a]],k({models:d})};return(0,w.jsxs)("div",{className:`group rounded-lg border border-black/5 p-3 ${!h?"opacity-50":""} dark:border-white/10`,children:[(0,w.jsxs)("div",{className:"flex min-w-0 flex-col gap-3 sm:flex-row sm:items-center sm:justify-between",children:[(0,w.jsxs)("div",{className:"flex min-w-0 flex-1 items-start gap-2.5 sm:items-center",children:[(0,w.jsx)(bC.lM,{checked:h,onChange:a=>k({enabled:a}),"aria-label":`Enable ${a.label} adapter`}),(0,w.jsx)("div",{className:"size-8 rounded-lg bg-primary/10 flex items-center justify-center shrink-0",children:(0,w.jsx)("span",{className:"material-symbols-outlined text-primary text-[18px]",children:a.icon})}),(0,w.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,w.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,w.jsx)("code",{className:"font-mono text-sm font-medium text-text-main",children:a.label}),(0,w.jsxs)("span",{className:"text-[10px] text-text-muted",children:["— ",a.desc]})]}),(0,w.jsxs)("div",{className:"mt-1 flex min-w-0 flex-wrap items-center gap-1",children:[0===j.length?(0,w.jsx)("span",{className:"text-xs text-text-muted italic",children:"No models"}):j.slice(0,3).map((a,b)=>(0,w.jsxs)("code",{className:"group/chip inline-flex items-center gap-1 rounded bg-black/5 px-1.5 py-0.5 font-mono text-xs text-text-muted dark:bg-white/5",children:[(0,w.jsx)("span",{children:a}),(0,w.jsx)(bC.nh,{caps:e?.(a)}),(0,w.jsx)("button",{onClick:()=>l(b,-1),disabled:0===b,className:`leading-none opacity-0 group-hover/chip:opacity-100 ${0===b?"text-text-muted/20":"text-text-muted hover:text-primary"}`,children:(0,w.jsx)("span",{className:"material-symbols-outlined text-[12px]",children:"arrow_upward"})}),(0,w.jsx)("button",{onClick:()=>l(b,1),disabled:b===j.length-1,className:`leading-none opacity-0 group-hover/chip:opacity-100 ${b===j.length-1?"text-text-muted/20":"text-text-muted hover:text-primary"}`,children:(0,w.jsx)("span",{className:"material-symbols-outlined text-[12px]",children:"arrow_downward"})}),(0,w.jsx)("button",{onClick:()=>{let a;k({models:0===(a=j.filter((a,c)=>c!==b)).length?["oc/mimo-v2.5-free"]:a})},className:"leading-none opacity-0 group-hover/chip:opacity-100 text-text-muted hover:text-red-500",children:(0,w.jsx)("span",{className:"material-symbols-outlined text-[12px]",children:"close"})})]},`${a}-${b}`)),j.length>3&&(0,w.jsxs)("span",{className:"text-[10px] text-text-muted",children:["+",j.length-3," more"]})]})]})]}),(0,w.jsxs)("div",{className:"flex w-full flex-col gap-2 sm:w-auto sm:flex-row sm:items-center sm:gap-3 sm:shrink-0",children:[(0,w.jsxs)("label",{className:"flex items-center gap-1.5 text-xs text-text-muted cursor-pointer select-none",children:[(0,w.jsx)(bC.lM,{checked:i,onChange:a=>k({roundRobin:a}),disabled:!h,"aria-label":`Round-robin ${a.label} adapter`}),(0,w.jsx)("span",{children:"Round"})]}),(0,w.jsx)(bC.$n,{icon:"add",variant:"ghost",size:"sm",onClick:()=>g(!0),disabled:!h,title:`Add ${a.label} model`,children:"Add Model"})]})]}),f&&(0,w.jsx)(bC.rq,{isOpen:f,onClose:()=>g(!1),onSelect:a=>{j.includes(a.value)||k({models:[...j,a.value]})},activeProviders:d,title:`Add ${a.label} Model`,addedModelValues:j,capFilter:a.key,closeOnSelect:!1})]})}},16321:(a,b,c)=>{"use strict";c.r(b),c.d(b,{__next_app__:()=>x,handler:()=>z,routeModule:()=>y});var d=c(21635),e=c(86315),f=c(1020),g=c(61287),h={};for(let a in g)0>["default","__next_app__","routeModule","handler"].indexOf(a)&&(h[a]=()=>g[a]);c.d(b,h);let i=(0,d.p)(()=>Promise.resolve().then(c.bind(c,32059))),j=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,95547,23))),k=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,55091,23))),l=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,45270,23))),m=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,28193,23))),n=(0,d.p)(()=>Promise.resolve().then(c.bind(c,30508))),o=(0,d.p)(()=>Promise.resolve().then(c.bind(c,57097))),p=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,95547,23))),q=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,55091,23))),r=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,45270,23))),s=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,28193,23))),t=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,95547,23))),u=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,95547,23))),v={children:["",{children:["(dashboard)",{children:["dashboard",{children:["combos",{children:["__PAGE__",{},{page:[(0,d.p)(()=>Promise.resolve().then(c.bind(c,35447))),"/home/runner/work/switchboard-router/switchboard-router/src/app/(dashboard)/dashboard/combos/page.js"]}]},{"global-error":[u,"next/dist/client/components/builtin/global-error.js"]},[]]},{"global-error":[t,"next/dist/client/components/builtin/global-error.js"]},[]]},{layout:[n,"/home/runner/work/switchboard-router/switchboard-router/src/app/(dashboard)/layout.js"],error:[o,"/home/runner/work/switchboard-router/switchboard-router/src/app/(dashboard)/error.js"],"global-error":[p,"next/dist/client/components/builtin/global-error.js"],"not-found":[q,"next/dist/client/components/builtin/not-found.js"],forbidden:[r,"next/dist/client/components/builtin/forbidden.js"],unauthorized:[s,"next/dist/client/components/builtin/unauthorized.js"],metadata:{icon:[async a=>(await (0,d.p)(()=>Promise.resolve().then(c.bind(c,70440)))()).default(a)],apple:[],openGraph:[],twitter:[],manifest:"/manifest.webmanifest"}},[]]},{layout:[i,"/home/runner/work/switchboard-router/switchboard-router/src/app/layout.js"],"global-error":[j,"next/dist/client/components/builtin/global-error.js"],"not-found":[k,"next/dist/client/components/builtin/not-found.js"],forbidden:[l,"next/dist/client/components/builtin/forbidden.js"],unauthorized:[m,"next/dist/client/components/builtin/unauthorized.js"],metadata:{icon:[async a=>(await (0,d.p)(()=>Promise.resolve().then(c.bind(c,70440)))()).default(a)],apple:[],openGraph:[],twitter:[],manifest:"/manifest.webmanifest"}},[]]}.children,w=(0,e.H)({tree:v,page:"/(dashboard)/dashboard/combos/page",pathname:"/dashboard/combos",require:c,loadChunk:()=>Promise.resolve(),interopDefault:f.T}),x=w.__next_app__,y=w.routeModule,z=w.handler},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},21820:a=>{"use strict";a.exports=require("os")},28354:a=>{"use strict";a.exports=require("util")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},32289:(a,b,c)=>{Promise.resolve().then(c.bind(c,86051))},33873:a=>{"use strict";a.exports=require("path")},35447:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>g});var d=c(5735),e=c(90712),f=c(86051);async function g(){let a=await (0,e.By)();return(0,d.jsx)(f.default,{initialData:a})}},38522:a=>{"use strict";a.exports=require("node:zlib")},41025:a=>{"use strict";a.exports=require("next/dist/server/app-render/dynamic-access-async-storage.external.js")},46060:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external.js")},46293:a=>{"use strict";a.exports=require("sql.js")},54603:(a,b,c)=>{"use strict";c.d(b,{Xj:()=>q});var d=c(96930),e=c(73024),f=c.n(e),g=c(76760),h=c.n(g),i=c(77598),j=c.n(i),k=c(49120);let l=h().join(k.nJ,"machine-id"),m=h().join(k.nJ,"auth"),n=h().join(m,"cli-secret"),o=null,p=null;async function q(a=null){let b=a||function(){if(process.env.MACHINE_ID_SALT)return process.env.MACHINE_ID_SALT;let a=h().join(m,"machine-id-salt");try{let b=f().readFileSync(a,"utf8").trim();if(b)return b}catch{}let b=j().randomBytes(32).toString("hex");try{f().mkdirSync(m,{recursive:!0,mode:448}),f().writeFileSync(a,b,{mode:384})}catch{}return b}(),c=function(){if(o)return o;try{if(o=f().readFileSync(l,"utf8").trim())return o}catch{}try{o=(0,d.machineIdSync)()}catch{o=j().randomUUID()}try{f().mkdirSync(k.nJ,{recursive:!0}),f().writeFileSync(l,o,{mode:384})}catch{}return o}(),e="switchboard-cli-auth"===b?function(){if(p)return p;try{if(p=f().readFileSync(n,"utf8").trim())return p}catch{}p=j().randomBytes(32).toString("hex");try{f().mkdirSync(m,{recursive:!0}),f().writeFileSync(n,p,{mode:384})}catch{}return p}():"";return j().createHash("sha256").update(c+b+e).digest("hex").substring(0,16)}},55511:a=>{"use strict";a.exports=require("crypto")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},68737:(a,b,c)=>{Promise.resolve().then(c.bind(c,15770))},71998:(a,b,c)=>{"use strict";c.d(b,{Fh:()=>d.Fh,L9:()=>d.L9,Mc:()=>d.Mc,OM:()=>d.OM,P:()=>d.getProviderConnections,Pc:()=>d.Pc,Qu:()=>d.Qu,S8:()=>d.S8,c:()=>d.c,createProviderConnection:()=>d.iE,fK:()=>d.fK,fp:()=>d.fp,fv:()=>d.fv,ho:()=>d.ho,i0:()=>d.i0,o5:()=>d.o5,op:()=>d.op,py:()=>d.py,rj:()=>d.updateProviderConnection,uL:()=>d.uL,uv:()=>d.uv});var d=c(15717)},73024:a=>{"use strict";a.exports=require("node:fs")},76760:a=>{"use strict";a.exports=require("node:path")},77598:a=>{"use strict";a.exports=require("node:crypto")},79646:a=>{"use strict";a.exports=require("child_process")},79868:a=>{"use strict";a.exports=require("node:sqlite")},81787:a=>{"use strict";a.exports=require("bun:sqlite")},86051:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/switchboard-router/switchboard-router/src/app/(dashboard)/dashboard/combos/CombosPageClient.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/switchboard-router/switchboard-router/src/app/(dashboard)/dashboard/combos/CombosPageClient.js","default")},87250:(a,b,c)=>{"use strict";c.d(b,{D:()=>e});var d=c(54603);async function e(){return await (0,d.Xj)()}},87550:a=>{"use strict";a.exports=require("better-sqlite3")},90712:(a,b,c)=>{"use strict";c.d(b,{By:()=>j,Tb:()=>k,e3:()=>i,tf:()=>h});var d=c(15717),e=c(71998),f=c(87250);function g(a){let{password:b,oidcClientSecret:c,oidcIssuerUrl:d,oidcClientId:e,oidcScopes:f,oidcLoginLabel:g,authMode:h,requireLogin:i,...j}=a||{};return{...j,requireLogin:!1,authMode:"none",oidcConfigured:!1,hasPassword:!1}}async function h(){let[a,b,c]=await Promise.all([(0,f.D)(),(0,d.PX)(),(0,d.mt)()]);return{machineId:a,keys:b||[],settings:g(c)}}async function i(){let[a,b]=await Promise.all([(0,d.getProviderConnections)(),(0,d.Fh)()]);return{connections:(a||[]).map(e.fp),nodes:b||[]}}async function j(){let[a,b,f]=await Promise.all([(0,d.Uv)(),(0,d.getProviderConnections)(),(0,d.mt)()]),h=(a||[]).filter(a=>!a.kind||"llm"===a.kind),i={};try{let{getProviderModelsCatalog:a}=await c.e(1425).then(c.bind(c,81425));i=await a()}catch{i={}}return{combos:h,connections:(b||[]).map(e.fp),settings:g(f),modelCaps:i}}async function k(){let[a,b]=await Promise.all([(0,d.mt)(),(0,f.D)()]);return{settings:g(a),machineId:b}}},94735:a=>{"use strict";a.exports=require("events")},96930:a=>{"use strict";a.exports=require("node-machine-id")}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,2430,9995,2712,3787,8976,5350,869,3986,5781,5717,194,7757,8834],()=>b(b.s=16321));module.exports=c})();
1
+ (()=>{var a={};a.id=3649,a.ids=[3649,9617],a.modules={3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},8128:a=>{"use strict";a.exports=require("next/dist/server/runtime-reacts.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},15770:(a,b,c)=>{"use strict";c.d(b,{default:()=>bM});var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w=c(48249),x=c(67484),y=c.n(x),z=c(74429);let A="u">typeof window&&void 0!==window.document&&void 0!==window.document.createElement;function B(a){let b=Object.prototype.toString.call(a);return"[object Window]"===b||"[object global]"===b}function C(a){return"nodeType"in a}function D(a){var b,c;return a?B(a)?a:C(a)&&null!=(b=null==(c=a.ownerDocument)?void 0:c.defaultView)?b:window:window}function E(a){let{Document:b}=D(a);return a instanceof b}function F(a){return!B(a)&&a instanceof D(a).HTMLElement}function G(a){return a instanceof D(a).SVGElement}function H(a){return a?B(a)?a.document:C(a)?E(a)?a:F(a)||G(a)?a.ownerDocument:document:document:document}let I=A?x.useLayoutEffect:x.useEffect;function J(a){let b=(0,x.useRef)(a);return I(()=>{b.current=a}),(0,x.useCallback)(function(){for(var a=arguments.length,c=Array(a),d=0;d<a;d++)c[d]=arguments[d];return null==b.current?void 0:b.current(...c)},[])}function K(a,b){void 0===b&&(b=[a]);let c=(0,x.useRef)(a);return I(()=>{c.current!==a&&(c.current=a)},b),c}function L(a,b){let c=(0,x.useRef)();return(0,x.useMemo)(()=>{let b=a(c.current);return c.current=b,b},[...b])}function M(a){let b=J(a),c=(0,x.useRef)(null),d=(0,x.useCallback)(a=>{a!==c.current&&(null==b||b(a,c.current)),c.current=a},[]);return[c,d]}function N(a){let b=(0,x.useRef)();return(0,x.useEffect)(()=>{b.current=a},[a]),b.current}let O={};function P(a,b){return(0,x.useMemo)(()=>{if(b)return b;let c=null==O[a]?0:O[a]+1;return O[a]=c,a+"-"+c},[a,b])}function Q(a){return function(b){for(var c=arguments.length,d=Array(c>1?c-1:0),e=1;e<c;e++)d[e-1]=arguments[e];return d.reduce((b,c)=>{for(let[d,e]of Object.entries(c)){let c=b[d];null!=c&&(b[d]=c+a*e)}return b},{...b})}}let R=Q(1),S=Q(-1);function T(a){if(!a)return!1;let{KeyboardEvent:b}=D(a.target);return b&&a instanceof b}function U(a){if(function(a){if(!a)return!1;let{TouchEvent:b}=D(a.target);return b&&a instanceof b}(a)){if(a.touches&&a.touches.length){let{clientX:b,clientY:c}=a.touches[0];return{x:b,y:c}}else if(a.changedTouches&&a.changedTouches.length){let{clientX:b,clientY:c}=a.changedTouches[0];return{x:b,y:c}}}return"clientX"in a&&"clientY"in a?{x:a.clientX,y:a.clientY}:null}let V=Object.freeze({Translate:{toString(a){if(!a)return;let{x:b,y:c}=a;return"translate3d("+(b?Math.round(b):0)+"px, "+(c?Math.round(c):0)+"px, 0)"}},Scale:{toString(a){if(!a)return;let{scaleX:b,scaleY:c}=a;return"scaleX("+b+") scaleY("+c+")"}},Transform:{toString(a){if(a)return[V.Translate.toString(a),V.Scale.toString(a)].join(" ")}},Transition:{toString(a){let{property:b,duration:c,easing:d}=a;return b+" "+c+"ms "+d}}}),W="a,frame,iframe,input:not([type=hidden]):not(:disabled),select:not(:disabled),textarea:not(:disabled),button:not(:disabled),*[tabindex]",X={display:"none"};function Y(a){let{id:b,value:c}=a;return y().createElement("div",{id:b,style:X},c)}function Z(a){let{id:b,announcement:c,ariaLiveType:d="assertive"}=a;return y().createElement("div",{id:b,style:{position:"fixed",top:0,left:0,width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0 0 0 0)",clipPath:"inset(100%)",whiteSpace:"nowrap"},role:"status","aria-live":d,"aria-atomic":!0},c)}let $=(0,x.createContext)(null),_={draggable:"\n To pick up a draggable item, press the space bar.\n While dragging, use the arrow keys to move the item.\n Press space again to drop the item in its new position, or press escape to cancel.\n "},aa={onDragStart(a){let{active:b}=a;return"Picked up draggable item "+b.id+"."},onDragOver(a){let{active:b,over:c}=a;return c?"Draggable item "+b.id+" was moved over droppable area "+c.id+".":"Draggable item "+b.id+" is no longer over a droppable area."},onDragEnd(a){let{active:b,over:c}=a;return c?"Draggable item "+b.id+" was dropped over droppable area "+c.id:"Draggable item "+b.id+" was dropped."},onDragCancel(a){let{active:b}=a;return"Dragging was cancelled. Draggable item "+b.id+" was dropped."}};function ab(a){var b;let c,{announcements:d=aa,container:e,hiddenTextDescribedById:f,screenReaderInstructions:g=_}=a,{announce:h,announcement:i}=function(){let[a,b]=(0,x.useState)("");return{announce:(0,x.useCallback)(a=>{null!=a&&b(a)},[]),announcement:a}}(),j=P("DndLiveRegion"),[k,l]=(0,x.useState)(!1);if((0,x.useEffect)(()=>{l(!0)},[]),b=(0,x.useMemo)(()=>({onDragStart(a){let{active:b}=a;h(d.onDragStart({active:b}))},onDragMove(a){let{active:b,over:c}=a;d.onDragMove&&h(d.onDragMove({active:b,over:c}))},onDragOver(a){let{active:b,over:c}=a;h(d.onDragOver({active:b,over:c}))},onDragEnd(a){let{active:b,over:c}=a;h(d.onDragEnd({active:b,over:c}))},onDragCancel(a){let{active:b,over:c}=a;h(d.onDragCancel({active:b,over:c}))}}),[h,d]),c=(0,x.useContext)($),(0,x.useEffect)(()=>{if(!c)throw Error("useDndMonitor must be used within a children of <DndContext>");return c(b)},[b,c]),!k)return null;let m=y().createElement(y().Fragment,null,y().createElement(Y,{id:f,value:g.draggable}),y().createElement(Z,{id:j,announcement:i}));return e?(0,z.createPortal)(m,e):m}function ac(){}function ad(a,b){return(0,x.useMemo)(()=>({sensor:a,options:null!=b?b:{}}),[a,b])}(d=m||(m={})).DragStart="dragStart",d.DragMove="dragMove",d.DragEnd="dragEnd",d.DragCancel="dragCancel",d.DragOver="dragOver",d.RegisterDroppable="registerDroppable",d.SetDroppableDisabled="setDroppableDisabled",d.UnregisterDroppable="unregisterDroppable";let ae=Object.freeze({x:0,y:0});function af(a,b){return Math.sqrt(Math.pow(a.x-b.x,2)+Math.pow(a.y-b.y,2))}function ag(a,b){let{data:{value:c}}=a,{data:{value:d}}=b;return c-d}function ah(a,b){let{data:{value:c}}=a,{data:{value:d}}=b;return d-c}function ai(a){let{left:b,top:c,height:d,width:e}=a;return[{x:b,y:c},{x:b+e,y:c},{x:b,y:c+d},{x:b+e,y:c+d}]}function aj(a,b){if(!a||0===a.length)return null;let[c]=a;return b?c[b]:c}function ak(a,b,c){return void 0===b&&(b=a.left),void 0===c&&(c=a.top),{x:b+.5*a.width,y:c+.5*a.height}}let al=a=>{let{collisionRect:b,droppableRects:c,droppableContainers:d}=a,e=ak(b,b.left,b.top),f=[];for(let a of d){let{id:b}=a,d=c.get(b);if(d){let c=af(ak(d),e);f.push({id:b,data:{droppableContainer:a,value:c}})}}return f.sort(ag)},am=a=>{let{collisionRect:b,droppableRects:c,droppableContainers:d}=a,e=[];for(let a of d){let{id:d}=a,f=c.get(d);if(f){let c=function(a,b){let c=Math.max(b.top,a.top),d=Math.max(b.left,a.left),e=Math.min(b.left+b.width,a.left+a.width),f=Math.min(b.top+b.height,a.top+a.height);if(d<e&&c<f){let g=b.width*b.height,h=a.width*a.height,i=(e-d)*(f-c);return Number((i/(g+h-i)).toFixed(4))}return 0}(f,b);c>0&&e.push({id:d,data:{droppableContainer:a,value:c}})}}return e.sort(ah)};function an(a,b){return a&&b?{x:a.left-b.left,y:a.top-b.top}:ae}let ao=function(a){for(var b=arguments.length,c=Array(b>1?b-1:0),d=1;d<b;d++)c[d-1]=arguments[d];return c.reduce((a,b)=>({...a,top:a.top+ +b.y,bottom:a.bottom+ +b.y,left:a.left+ +b.x,right:a.right+ +b.x}),{...a})},ap={ignoreTransform:!1};function aq(a,b){void 0===b&&(b=ap);let c=a.getBoundingClientRect();if(b.ignoreTransform){let{transform:b,transformOrigin:d}=D(a).getComputedStyle(a);b&&(c=function(a,b,c){let d=function(a){if(a.startsWith("matrix3d(")){let b=a.slice(9,-1).split(/, /);return{x:+b[12],y:+b[13],scaleX:+b[0],scaleY:+b[5]}}if(a.startsWith("matrix(")){let b=a.slice(7,-1).split(/, /);return{x:+b[4],y:+b[5],scaleX:+b[0],scaleY:+b[3]}}return null}(b);if(!d)return a;let{scaleX:e,scaleY:f,x:g,y:h}=d,i=a.left-g-(1-e)*parseFloat(c),j=a.top-h-(1-f)*parseFloat(c.slice(c.indexOf(" ")+1)),k=e?a.width/e:a.width,l=f?a.height/f:a.height;return{width:k,height:l,top:j,right:i+k,bottom:j+l,left:i}}(c,b,d))}let{top:d,left:e,width:f,height:g,bottom:h,right:i}=c;return{top:d,left:e,width:f,height:g,bottom:h,right:i}}function ar(a){return aq(a,{ignoreTransform:!0})}function as(a,b){let c=[];return a?function d(e){var f,g;let h;if(null!=b&&c.length>=b||!e)return c;if(E(e)&&null!=e.scrollingElement&&!c.includes(e.scrollingElement))return c.push(e.scrollingElement),c;if(!F(e)||G(e)||c.includes(e))return c;let i=D(a).getComputedStyle(e);return(e!==a&&(void 0===(f=i)&&(f=D(e).getComputedStyle(e)),h=/(auto|scroll|overlay)/,["overflow","overflowX","overflowY"].some(a=>{let b=f[a];return"string"==typeof b&&h.test(b)}))&&c.push(e),void 0===(g=i)&&(g=D(e).getComputedStyle(e)),"fixed"===g.position)?c:d(e.parentNode)}(a):c}function at(a){let[b]=as(a,1);return null!=b?b:null}function au(a){return A&&a?B(a)?a:C(a)?E(a)||a===H(a).scrollingElement?window:F(a)?a:null:null:null}function av(a){return B(a)?a.scrollX:a.scrollLeft}function aw(a){return B(a)?a.scrollY:a.scrollTop}function ax(a){return{x:av(a),y:aw(a)}}function ay(a){return!!A&&!!a&&a===document.scrollingElement}function az(a){let b={x:0,y:0},c=ay(a)?{height:window.innerHeight,width:window.innerWidth}:{height:a.clientHeight,width:a.clientWidth},d={x:a.scrollWidth-c.width,y:a.scrollHeight-c.height},e=a.scrollTop<=b.y,f=a.scrollLeft<=b.x;return{isTop:e,isLeft:f,isBottom:a.scrollTop>=d.y,isRight:a.scrollLeft>=d.x,maxScroll:d,minScroll:b}}(e=n||(n={}))[e.Forward=1]="Forward",e[e.Backward=-1]="Backward";let aA={x:.2,y:.2};function aB(a){return a.reduce((a,b)=>R(a,ax(b)),ae)}let aC=[["x",["left","right"],function(a){return a.reduce((a,b)=>a+av(b),0)}],["y",["top","bottom"],function(a){return a.reduce((a,b)=>a+aw(b),0)}]];class aD{constructor(a,b){this.rect=void 0,this.width=void 0,this.height=void 0,this.top=void 0,this.bottom=void 0,this.right=void 0,this.left=void 0;const c=as(b),d=aB(c);for(const[b,e,f]of(this.rect={...a},this.width=a.width,this.height=a.height,aC))for(const a of e)Object.defineProperty(this,a,{get:()=>{let e=f(c),g=d[b]-e;return this.rect[a]+g},enumerable:!0});Object.defineProperty(this,"rect",{enumerable:!1})}}class aE{constructor(a){this.target=void 0,this.listeners=[],this.removeAll=()=>{this.listeners.forEach(a=>{var b;return null==(b=this.target)?void 0:b.removeEventListener(...a)})},this.target=a}add(a,b,c){var d;null==(d=this.target)||d.addEventListener(a,b,c),this.listeners.push([a,b,c])}}function aF(a,b){let c=Math.abs(a.x),d=Math.abs(a.y);return"number"==typeof b?Math.sqrt(c**2+d**2)>b:"x"in b&&"y"in b?c>b.x&&d>b.y:"x"in b?c>b.x:"y"in b&&d>b.y}function aG(a){a.preventDefault()}function aH(a){a.stopPropagation()}(f=o||(o={})).Click="click",f.DragStart="dragstart",f.Keydown="keydown",f.ContextMenu="contextmenu",f.Resize="resize",f.SelectionChange="selectionchange",f.VisibilityChange="visibilitychange",(g=p||(p={})).Space="Space",g.Down="ArrowDown",g.Right="ArrowRight",g.Left="ArrowLeft",g.Up="ArrowUp",g.Esc="Escape",g.Enter="Enter",g.Tab="Tab";let aI={start:[p.Space,p.Enter],cancel:[p.Esc],end:[p.Space,p.Enter,p.Tab]},aJ=(a,b)=>{let{currentCoordinates:c}=b;switch(a.code){case p.Right:return{...c,x:c.x+25};case p.Left:return{...c,x:c.x-25};case p.Down:return{...c,y:c.y+25};case p.Up:return{...c,y:c.y-25}}};class aK{constructor(a){this.props=void 0,this.autoScrollEnabled=!1,this.referenceCoordinates=void 0,this.listeners=void 0,this.windowListeners=void 0,this.props=a;const{event:{target:b}}=a;this.props=a,this.listeners=new aE(H(b)),this.windowListeners=new aE(D(b)),this.handleKeyDown=this.handleKeyDown.bind(this),this.handleCancel=this.handleCancel.bind(this),this.attach()}attach(){this.handleStart(),this.windowListeners.add(o.Resize,this.handleCancel),this.windowListeners.add(o.VisibilityChange,this.handleCancel),setTimeout(()=>this.listeners.add(o.Keydown,this.handleKeyDown))}handleStart(){let{activeNode:a,onStart:b}=this.props,c=a.node.current;c&&function(a,b){if(void 0===b&&(b=aq),!a)return;let{top:c,left:d,bottom:e,right:f}=b(a);at(a)&&(e<=0||f<=0||c>=window.innerHeight||d>=window.innerWidth)&&a.scrollIntoView({block:"center",inline:"center"})}(c),b(ae)}handleKeyDown(a){if(T(a)){let{active:b,context:c,options:d}=this.props,{keyboardCodes:e=aI,coordinateGetter:f=aJ,scrollBehavior:g="smooth"}=d,{code:h}=a;if(e.end.includes(h))return void this.handleEnd(a);if(e.cancel.includes(h))return void this.handleCancel(a);let{collisionRect:i}=c.current,j=i?{x:i.left,y:i.top}:ae;this.referenceCoordinates||(this.referenceCoordinates=j);let k=f(a,{active:b,context:c.current,currentCoordinates:j});if(k){let b=S(k,j),d={x:0,y:0},{scrollableAncestors:e}=c.current;for(let c of e){let e=a.code,{isTop:f,isRight:h,isLeft:i,isBottom:j,maxScroll:l,minScroll:m}=az(c),n=function(a){if(a===document.scrollingElement){let{innerWidth:a,innerHeight:b}=window;return{top:0,left:0,right:a,bottom:b,width:a,height:b}}let{top:b,left:c,right:d,bottom:e}=a.getBoundingClientRect();return{top:b,left:c,right:d,bottom:e,width:a.clientWidth,height:a.clientHeight}}(c),o={x:Math.min(e===p.Right?n.right-n.width/2:n.right,Math.max(e===p.Right?n.left:n.left+n.width/2,k.x)),y:Math.min(e===p.Down?n.bottom-n.height/2:n.bottom,Math.max(e===p.Down?n.top:n.top+n.height/2,k.y))},q=e===p.Right&&!h||e===p.Left&&!i,r=e===p.Down&&!j||e===p.Up&&!f;if(q&&o.x!==k.x){let a=c.scrollLeft+b.x,f=e===p.Right&&a<=l.x||e===p.Left&&a>=m.x;if(f&&!b.y)return void c.scrollTo({left:a,behavior:g});f?d.x=c.scrollLeft-a:d.x=e===p.Right?c.scrollLeft-l.x:c.scrollLeft-m.x,d.x&&c.scrollBy({left:-d.x,behavior:g});break}if(r&&o.y!==k.y){let a=c.scrollTop+b.y,f=e===p.Down&&a<=l.y||e===p.Up&&a>=m.y;if(f&&!b.x)return void c.scrollTo({top:a,behavior:g});f?d.y=c.scrollTop-a:d.y=e===p.Down?c.scrollTop-l.y:c.scrollTop-m.y,d.y&&c.scrollBy({top:-d.y,behavior:g});break}}this.handleMove(a,R(S(k,this.referenceCoordinates),d))}}}handleMove(a,b){let{onMove:c}=this.props;a.preventDefault(),c(b)}handleEnd(a){let{onEnd:b}=this.props;a.preventDefault(),this.detach(),b()}handleCancel(a){let{onCancel:b}=this.props;a.preventDefault(),this.detach(),b()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll()}}function aL(a){return!!(a&&"distance"in a)}function aM(a){return!!(a&&"delay"in a)}aK.activators=[{eventName:"onKeyDown",handler:(a,b,c)=>{let{keyboardCodes:d=aI,onActivation:e}=b,{active:f}=c,{code:g}=a.nativeEvent;if(d.start.includes(g)){let b=f.activatorNode.current;return(!b||a.target===b)&&(a.preventDefault(),null==e||e({event:a.nativeEvent}),!0)}return!1}}];class aN{constructor(a,b,c){var d;void 0===c&&(c=function(a){let{EventTarget:b}=D(a);return a instanceof b?a:H(a)}(a.event.target)),this.props=void 0,this.events=void 0,this.autoScrollEnabled=!0,this.document=void 0,this.activated=!1,this.initialCoordinates=void 0,this.timeoutId=null,this.listeners=void 0,this.documentListeners=void 0,this.windowListeners=void 0,this.props=a,this.events=b;const{event:e}=a,{target:f}=e;this.props=a,this.events=b,this.document=H(f),this.documentListeners=new aE(this.document),this.listeners=new aE(c),this.windowListeners=new aE(D(f)),this.initialCoordinates=null!=(d=U(e))?d:ae,this.handleStart=this.handleStart.bind(this),this.handleMove=this.handleMove.bind(this),this.handleEnd=this.handleEnd.bind(this),this.handleCancel=this.handleCancel.bind(this),this.handleKeydown=this.handleKeydown.bind(this),this.removeTextSelection=this.removeTextSelection.bind(this),this.attach()}attach(){let{events:a,props:{options:{activationConstraint:b,bypassActivationConstraint:c}}}=this;if(this.listeners.add(a.move.name,this.handleMove,{passive:!1}),this.listeners.add(a.end.name,this.handleEnd),a.cancel&&this.listeners.add(a.cancel.name,this.handleCancel),this.windowListeners.add(o.Resize,this.handleCancel),this.windowListeners.add(o.DragStart,aG),this.windowListeners.add(o.VisibilityChange,this.handleCancel),this.windowListeners.add(o.ContextMenu,aG),this.documentListeners.add(o.Keydown,this.handleKeydown),b){if(null!=c&&c({event:this.props.event,activeNode:this.props.activeNode,options:this.props.options}))return this.handleStart();if(aM(b)){this.timeoutId=setTimeout(this.handleStart,b.delay),this.handlePending(b);return}if(aL(b))return void this.handlePending(b)}this.handleStart()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll(),setTimeout(this.documentListeners.removeAll,50),null!==this.timeoutId&&(clearTimeout(this.timeoutId),this.timeoutId=null)}handlePending(a,b){let{active:c,onPending:d}=this.props;d(c,a,this.initialCoordinates,b)}handleStart(){let{initialCoordinates:a}=this,{onStart:b}=this.props;a&&(this.activated=!0,this.documentListeners.add(o.Click,aH,{capture:!0}),this.removeTextSelection(),this.documentListeners.add(o.SelectionChange,this.removeTextSelection),b(a))}handleMove(a){var b;let{activated:c,initialCoordinates:d,props:e}=this,{onMove:f,options:{activationConstraint:g}}=e;if(!d)return;let h=null!=(b=U(a))?b:ae,i=S(d,h);if(!c&&g){if(aL(g)){if(null!=g.tolerance&&aF(i,g.tolerance))return this.handleCancel();if(aF(i,g.distance))return this.handleStart()}return aM(g)&&aF(i,g.tolerance)?this.handleCancel():void this.handlePending(g,i)}a.cancelable&&a.preventDefault(),f(h)}handleEnd(){let{onAbort:a,onEnd:b}=this.props;this.detach(),this.activated||a(this.props.active),b()}handleCancel(){let{onAbort:a,onCancel:b}=this.props;this.detach(),this.activated||a(this.props.active),b()}handleKeydown(a){a.code===p.Esc&&this.handleCancel()}removeTextSelection(){var a;null==(a=this.document.getSelection())||a.removeAllRanges()}}let aO={cancel:{name:"pointercancel"},move:{name:"pointermove"},end:{name:"pointerup"}};class aP extends aN{constructor(a){const{event:b}=a;super(a,aO,H(b.target))}}aP.activators=[{eventName:"onPointerDown",handler:(a,b)=>{let{nativeEvent:c}=a,{onActivation:d}=b;return!!c.isPrimary&&0===c.button&&(null==d||d({event:c}),!0)}}];let aQ={move:{name:"mousemove"},end:{name:"mouseup"}};(h=q||(q={}))[h.RightClick=2]="RightClick";class aR extends aN{constructor(a){super(a,aQ,H(a.event.target))}}aR.activators=[{eventName:"onMouseDown",handler:(a,b)=>{let{nativeEvent:c}=a,{onActivation:d}=b;return c.button!==q.RightClick&&(null==d||d({event:c}),!0)}}];let aS={cancel:{name:"touchcancel"},move:{name:"touchmove"},end:{name:"touchend"}};class aT extends aN{constructor(a){super(a,aS)}static setup(){return window.addEventListener(aS.move.name,a,{capture:!1,passive:!1}),function(){window.removeEventListener(aS.move.name,a)};function a(){}}}aT.activators=[{eventName:"onTouchStart",handler:(a,b)=>{let{nativeEvent:c}=a,{onActivation:d}=b,{touches:e}=c;return!(e.length>1)&&(null==d||d({event:c}),!0)}}],(i=r||(r={}))[i.Pointer=0]="Pointer",i[i.DraggableRect=1]="DraggableRect",(j=s||(s={}))[j.TreeOrder=0]="TreeOrder",j[j.ReversedTreeOrder=1]="ReversedTreeOrder";let aU={x:{[n.Backward]:!1,[n.Forward]:!1},y:{[n.Backward]:!1,[n.Forward]:!1}};(k=t||(t={}))[k.Always=0]="Always",k[k.BeforeDragging=1]="BeforeDragging",k[k.WhileDragging=2]="WhileDragging",(u||(u={})).Optimized="optimized";let aV=new Map;function aW(a,b){return L(c=>a?c||("function"==typeof b?b(a):a):null,[b,a])}function aX(a){let{callback:b,disabled:c}=a,d=J(b),e=(0,x.useMemo)(()=>{if(c||"u"<typeof window||void 0===window.ResizeObserver)return;let{ResizeObserver:a}=window;return new a(d)},[c]);return(0,x.useEffect)(()=>()=>null==e?void 0:e.disconnect(),[e]),e}function aY(a){return new aD(aq(a),a)}function aZ(a,b,c){void 0===b&&(b=aY);let[d,e]=(0,x.useState)(null);function f(){e(d=>{if(!a)return null;if(!1===a.isConnected){var e;return null!=(e=null!=d?d:c)?e:null}let f=b(a);return JSON.stringify(d)===JSON.stringify(f)?d:f})}let g=function(a){let{callback:b,disabled:c}=a,d=J(b),e=(0,x.useMemo)(()=>{if(c||"u"<typeof window||void 0===window.MutationObserver)return;let{MutationObserver:a}=window;return new a(d)},[d,c]);return(0,x.useEffect)(()=>()=>null==e?void 0:e.disconnect(),[e]),e}({callback(b){if(a)for(let c of b){let{type:b,target:d}=c;if("childList"===b&&d instanceof HTMLElement&&d.contains(a)){f();break}}}}),h=aX({callback:f});return I(()=>{f(),a?(null==h||h.observe(a),null==g||g.observe(document.body,{childList:!0,subtree:!0})):(null==h||h.disconnect(),null==g||g.disconnect())},[a]),d}let a$=[];function a_(a,b){void 0===b&&(b=[]);let c=(0,x.useRef)(null);return(0,x.useEffect)(()=>{c.current=null},b),(0,x.useEffect)(()=>{let b=a!==ae;b&&!c.current&&(c.current=a),!b&&c.current&&(c.current=null)},[a]),c.current?S(a,c.current):ae}function a0(a){return(0,x.useMemo)(()=>{let b,c;return a?(b=a.innerWidth,{top:0,left:0,right:b,bottom:c=a.innerHeight,width:b,height:c}):null},[a])}let a1=[],a2=[{sensor:aP,options:{}},{sensor:aK,options:{}}],a3={current:{}},a4={draggable:{measure:ar},droppable:{measure:ar,strategy:t.WhileDragging,frequency:u.Optimized},dragOverlay:{measure:aq}};class a5 extends Map{get(a){var b;return null!=a&&null!=(b=super.get(a))?b:void 0}toArray(){return Array.from(this.values())}getEnabled(){return this.toArray().filter(a=>{let{disabled:b}=a;return!b})}getNodeFor(a){var b,c;return null!=(b=null==(c=this.get(a))?void 0:c.node.current)?b:void 0}}let a6={activatorEvent:null,active:null,activeNode:null,activeNodeRect:null,collisions:null,containerNodeRect:null,draggableNodes:new Map,droppableRects:new Map,droppableContainers:new a5,over:null,dragOverlay:{nodeRef:{current:null},rect:null,setRef:ac},scrollableAncestors:[],scrollableAncestorRects:[],measuringConfiguration:a4,measureDroppableContainers:ac,windowRect:null,measuringScheduled:!1},a7={activatorEvent:null,activators:[],active:null,activeNodeRect:null,ariaDescribedById:{draggable:""},dispatch:ac,draggableNodes:new Map,over:null,measureDroppableContainers:ac},a8=(0,x.createContext)(a7),a9=(0,x.createContext)(a6);function ba(){return{draggable:{active:null,initialCoordinates:{x:0,y:0},nodes:new Map,translate:{x:0,y:0}},droppable:{containers:new a5}}}function bb(a,b){switch(b.type){case m.DragStart:return{...a,draggable:{...a.draggable,initialCoordinates:b.initialCoordinates,active:b.active}};case m.DragMove:if(null==a.draggable.active)return a;return{...a,draggable:{...a.draggable,translate:{x:b.coordinates.x-a.draggable.initialCoordinates.x,y:b.coordinates.y-a.draggable.initialCoordinates.y}}};case m.DragEnd:case m.DragCancel:return{...a,draggable:{...a.draggable,active:null,initialCoordinates:{x:0,y:0},translate:{x:0,y:0}}};case m.RegisterDroppable:{let{element:c}=b,{id:d}=c,e=new a5(a.droppable.containers);return e.set(d,c),{...a,droppable:{...a.droppable,containers:e}}}case m.SetDroppableDisabled:{let{id:c,key:d,disabled:e}=b,f=a.droppable.containers.get(c);if(!f||d!==f.key)return a;let g=new a5(a.droppable.containers);return g.set(c,{...f,disabled:e}),{...a,droppable:{...a.droppable,containers:g}}}case m.UnregisterDroppable:{let{id:c,key:d}=b,e=a.droppable.containers.get(c);if(!e||d!==e.key)return a;let f=new a5(a.droppable.containers);return f.delete(c),{...a,droppable:{...a.droppable,containers:f}}}default:return a}}function bc(a){let{disabled:b}=a,{active:c,activatorEvent:d,draggableNodes:e}=(0,x.useContext)(a8),f=N(d),g=N(null==c?void 0:c.id);return(0,x.useEffect)(()=>{if(!b&&!d&&f&&null!=g){if(!T(f)||document.activeElement===f.target)return;let a=e.get(g);if(!a)return;let{activatorNode:b,node:c}=a;(b.current||c.current)&&requestAnimationFrame(()=>{for(let a of[b.current,c.current]){if(!a)continue;let b=a.matches(W)?a:a.querySelector(W);if(b){b.focus();break}}})}},[d,b,e,g,f]),null}let bd=(0,x.createContext)({...ae,scaleX:1,scaleY:1});(l=v||(v={}))[l.Uninitialized=0]="Uninitialized",l[l.Initializing=1]="Initializing",l[l.Initialized=2]="Initialized";let be=(0,x.memo)(function(a){var b,c,d,e,f,g,h,i;let j,k,l,o,p,q,u,w,{id:B,accessibility:C,autoScroll:E=!0,children:G,sensors:H=a2,collisionDetection:J=am,measuring:O,modifiers:Q,...S}=a,[T,V]=(0,x.useReducer)(bb,void 0,ba),[W,X]=function(){let[a]=(0,x.useState)(()=>new Set),b=(0,x.useCallback)(b=>(a.add(b),()=>a.delete(b)),[a]);return[(0,x.useCallback)(b=>{let{type:c,event:d}=b;a.forEach(a=>{var b;return null==(b=a[c])?void 0:b.call(a,d)})},[a]),b]}(),[Y,Z]=(0,x.useState)(v.Uninitialized),_=Y===v.Initialized,{draggable:{active:aa,nodes:ac,translate:ad},droppable:{containers:af}}=T,ag=null!=aa?ac.get(aa):null,ah=(0,x.useRef)({initial:null,translated:null}),ai=(0,x.useMemo)(()=>{var a;return null!=aa?{id:aa,data:null!=(a=null==ag?void 0:ag.data)?a:a3,rect:ah}:null},[aa,ag]),ak=(0,x.useRef)(null),[al,ap]=(0,x.useState)(null),[ar,av]=(0,x.useState)(null),aw=K(S,Object.values(S)),aC=P("DndDescribedBy",B),aE=(0,x.useMemo)(()=>af.getEnabled(),[af]),aF=(0,x.useMemo)(()=>({draggable:{...a4.draggable,...null==O?void 0:O.draggable},droppable:{...a4.droppable,...null==O?void 0:O.droppable},dragOverlay:{...a4.dragOverlay,...null==O?void 0:O.dragOverlay}}),[null==O?void 0:O.draggable,null==O?void 0:O.droppable,null==O?void 0:O.dragOverlay]),{droppableRects:aG,measureDroppableContainers:aH,measuringScheduled:aI}=function(a,b){let{dragging:c,dependencies:d,config:e}=b,[f,g]=(0,x.useState)(null),{frequency:h,measure:i,strategy:j}=e,k=(0,x.useRef)(a),l=function(){switch(j){case t.Always:return!1;case t.BeforeDragging:return c;default:return!c}}(),m=K(l),n=(0,x.useCallback)(function(a){void 0===a&&(a=[]),m.current||g(b=>null===b?a:b.concat(a.filter(a=>!b.includes(a))))},[m]),o=(0,x.useRef)(null),p=L(b=>{if(l&&!c)return aV;if(!b||b===aV||k.current!==a||null!=f){let b=new Map;for(let c of a){if(!c)continue;if(f&&f.length>0&&!f.includes(c.id)&&c.rect.current){b.set(c.id,c.rect.current);continue}let a=c.node.current,d=a?new aD(i(a),a):null;c.rect.current=d,d&&b.set(c.id,d)}return b}return b},[a,f,c,l,i]);return(0,x.useEffect)(()=>{k.current=a},[a]),(0,x.useEffect)(()=>{l||n()},[c,l]),(0,x.useEffect)(()=>{f&&f.length>0&&g(null)},[JSON.stringify(f)]),(0,x.useEffect)(()=>{l||"number"!=typeof h||null!==o.current||(o.current=setTimeout(()=>{n(),o.current=null},h))},[h,l,n,...d]),{droppableRects:p,measureDroppableContainers:n,measuringScheduled:null!=f}}(aE,{dragging:_,dependencies:[ad.x,ad.y],config:aF.droppable}),aJ=L(a=>{var b;return null==aa?null:null!=(b=null!=p?p:a)?b:null},[p=(o=null!=aa?ac.get(aa):void 0)?o.node.current:null,aa]),aK=(0,x.useMemo)(()=>ar?U(ar):null,[ar]),aL=(j=(null==al?void 0:al.autoScrollEnabled)===!1,k="object"==typeof E?!1===E.enabled:!1===E,l=_&&!j&&!k,"object"==typeof E?{...E,enabled:l}:{enabled:l}),aM=aW(aJ,aF.draggable.measure);!function(a){let{activeNode:b,measure:c,initialRect:d,config:e=!0}=a,f=(0,x.useRef)(!1),{x:g,y:h}="boolean"==typeof e?{x:e,y:e}:e;I(()=>{if(!g&&!h||!b){f.current=!1;return}if(f.current||!d)return;let a=null==b?void 0:b.node.current;if(!a||!1===a.isConnected)return;let e=an(c(a),d);if(g||(e.x=0),h||(e.y=0),f.current=!0,Math.abs(e.x)>0||Math.abs(e.y)>0){let b=at(a);b&&b.scrollBy({top:e.y,left:e.x})}},[b,g,h,d,c])}({activeNode:null!=aa?ac.get(aa):null,config:aL.layoutShiftCompensation,initialRect:aM,measure:aF.draggable.measure});let aN=aZ(aJ,aF.draggable.measure,aM),aO=aZ(aJ?aJ.parentElement:null),aP=(0,x.useRef)({activatorEvent:null,active:null,activeNode:aJ,collisionRect:null,collisions:null,droppableRects:aG,draggableNodes:ac,draggingNode:null,draggingNodeRect:null,droppableContainers:af,over:null,scrollableAncestors:[],scrollAdjustedTranslate:null}),aQ=af.getNodeFor(null==(b=aP.current.over)?void 0:b.id),aR=function(a){let{measure:b}=a,[c,d]=(0,x.useState)(null),e=aX({callback:(0,x.useCallback)(a=>{for(let{target:c}of a)if(F(c)){d(a=>{let d=b(c);return a?{...a,width:d.width,height:d.height}:d});break}},[b])}),[f,g]=M((0,x.useCallback)(a=>{let c=function(a){if(!a)return null;if(a.children.length>1)return a;let b=a.children[0];return F(b)?b:a}(a);null==e||e.disconnect(),c&&(null==e||e.observe(c)),d(c?b(c):null)},[b,e]));return(0,x.useMemo)(()=>({nodeRef:f,rect:c,setRef:g}),[c,f,g])}({measure:aF.dragOverlay.measure}),aS=null!=(c=aR.nodeRef.current)?c:aJ,aT=_?null!=(d=aR.rect)?d:aN:null,aY=!!(aR.nodeRef.current&&aR.rect),a5=(q=aW(f=aY?null:aN),an(f,q)),a6=a0(aS?D(aS):null),a7=(g=_?null!=aQ?aQ:aJ:null,u=(0,x.useRef)(g),w=L(a=>g?a&&a!==a$&&g&&u.current&&g.parentNode===u.current.parentNode?a:as(g):a$,[g]),(0,x.useEffect)(()=>{u.current=g},[g]),w),be=function(a,b){void 0===b&&(b=aq);let[c]=a,d=a0(c?D(c):null),[e,f]=(0,x.useState)(a1);function g(){f(()=>a.length?a.map(a=>ay(a)?d:new aD(b(a),a)):a1)}let h=aX({callback:g});return I(()=>{null==h||h.disconnect(),g(),a.forEach(a=>null==h?void 0:h.observe(a))},[a]),e}(a7),bf=function(a,b){let{transform:c,...d}=b;return null!=a&&a.length?a.reduce((a,b)=>b({transform:a,...d}),c):c}(Q,{transform:{x:ad.x-a5.x,y:ad.y-a5.y,scaleX:1,scaleY:1},activatorEvent:ar,active:ai,activeNodeRect:aN,containerNodeRect:aO,draggingNodeRect:aT,over:aP.current.over,overlayNodeRect:aR.rect,scrollableAncestors:a7,scrollableAncestorRects:be,windowRect:a6}),bg=aK?R(aK,ad):null,bh=function(a){let[b,c]=(0,x.useState)(null),d=(0,x.useRef)(a),e=(0,x.useCallback)(a=>{let b=au(a.target);b&&c(a=>a?(a.set(b,ax(b)),new Map(a)):null)},[]);return(0,x.useEffect)(()=>{let b=d.current;if(a!==b){f(b);let g=a.map(a=>{let b=au(a);return b?(b.addEventListener("scroll",e,{passive:!0}),[b,ax(b)]):null}).filter(a=>null!=a);c(g.length?new Map(g):null),d.current=a}return()=>{f(a),f(b)};function f(a){a.forEach(a=>{let b=au(a);null==b||b.removeEventListener("scroll",e)})}},[e,a]),(0,x.useMemo)(()=>a.length?b?Array.from(b.values()).reduce((a,b)=>R(a,b),ae):aB(a):ae,[a,b])}(a7),bi=a_(bh),bj=a_(bh,[aN]),bk=R(bf,bi),bl=aT?ao(aT,bf):null,bm=ai&&bl?J({active:ai,collisionRect:bl,droppableRects:aG,droppableContainers:aE,pointerCoordinates:bg}):null,bn=aj(bm,"id"),[bo,bp]=(0,x.useState)(null),bq=(h=aY?bf:R(bf,bj),i=null!=(e=null==bo?void 0:bo.rect)?e:null,{...h,scaleX:i&&aN?i.width/aN.width:1,scaleY:i&&aN?i.height/aN.height:1}),br=(0,x.useRef)(null),bs=(0,x.useCallback)((a,b)=>{let{sensor:c,options:d}=b;if(null==ak.current)return;let e=ac.get(ak.current);if(!e)return;let f=a.nativeEvent,g=new c({active:ak.current,activeNode:e,event:f,options:d,context:aP,onAbort(a){if(!ac.get(a))return;let{onDragAbort:b}=aw.current,c={id:a};null==b||b(c),W({type:"onDragAbort",event:c})},onPending(a,b,c,d){if(!ac.get(a))return;let{onDragPending:e}=aw.current,f={id:a,constraint:b,initialCoordinates:c,offset:d};null==e||e(f),W({type:"onDragPending",event:f})},onStart(a){let b=ak.current;if(null==b)return;let c=ac.get(b);if(!c)return;let{onDragStart:d}=aw.current,e={activatorEvent:f,active:{id:b,data:c.data,rect:ah}};(0,z.unstable_batchedUpdates)(()=>{null==d||d(e),Z(v.Initializing),V({type:m.DragStart,initialCoordinates:a,active:b}),W({type:"onDragStart",event:e}),ap(br.current),av(f)})},onMove(a){V({type:m.DragMove,coordinates:a})},onEnd:h(m.DragEnd),onCancel:h(m.DragCancel)});function h(a){return async function(){let{active:b,collisions:c,over:d,scrollAdjustedTranslate:e}=aP.current,g=null;if(b&&e){let{cancelDrop:h}=aw.current;g={activatorEvent:f,active:b,collisions:c,delta:e,over:d},a===m.DragEnd&&"function"==typeof h&&await Promise.resolve(h(g))&&(a=m.DragCancel)}ak.current=null,(0,z.unstable_batchedUpdates)(()=>{V({type:a}),Z(v.Uninitialized),bp(null),ap(null),av(null),br.current=null;let b=a===m.DragEnd?"onDragEnd":"onDragCancel";if(g){let a=aw.current[b];null==a||a(g),W({type:b,event:g})}})}}br.current=g},[ac]),bt=(0,x.useCallback)((a,b)=>(c,d)=>{let e=c.nativeEvent,f=ac.get(d);null!==ak.current||!f||e.dndKit||e.defaultPrevented||!0===a(c,b.options,{active:f})&&(e.dndKit={capturedBy:b.sensor},ak.current=d,bs(c,b))},[ac,bs]),bu=(0,x.useMemo)(()=>H.reduce((a,b)=>{let{sensor:c}=b;return[...a,...c.activators.map(a=>({eventName:a.eventName,handler:bt(a.handler,b)}))]},[]),[H,bt]);(0,x.useEffect)(()=>{if(!A)return;let a=H.map(a=>{let{sensor:b}=a;return null==b.setup?void 0:b.setup()});return()=>{for(let b of a)null==b||b()}},H.map(a=>{let{sensor:b}=a;return b})),I(()=>{aN&&Y===v.Initializing&&Z(v.Initialized)},[aN,Y]),(0,x.useEffect)(()=>{let{onDragMove:a}=aw.current,{active:b,activatorEvent:c,collisions:d,over:e}=aP.current;if(!b||!c)return;let f={active:b,activatorEvent:c,collisions:d,delta:{x:bk.x,y:bk.y},over:e};(0,z.unstable_batchedUpdates)(()=>{null==a||a(f),W({type:"onDragMove",event:f})})},[bk.x,bk.y]),(0,x.useEffect)(()=>{let{active:a,activatorEvent:b,collisions:c,droppableContainers:d,scrollAdjustedTranslate:e}=aP.current;if(!a||null==ak.current||!b||!e)return;let{onDragOver:f}=aw.current,g=d.get(bn),h=g&&g.rect.current?{id:g.id,rect:g.rect.current,data:g.data,disabled:g.disabled}:null,i={active:a,activatorEvent:b,collisions:c,delta:{x:e.x,y:e.y},over:h};(0,z.unstable_batchedUpdates)(()=>{bp(h),null==f||f(i),W({type:"onDragOver",event:i})})},[bn]),I(()=>{aP.current={activatorEvent:ar,active:ai,activeNode:aJ,collisionRect:bl,collisions:bm,droppableRects:aG,draggableNodes:ac,draggingNode:aS,draggingNodeRect:aT,droppableContainers:af,over:bo,scrollableAncestors:a7,scrollAdjustedTranslate:bk},ah.current={initial:aT,translated:bl}},[ai,aJ,bm,bl,ac,aS,aT,aG,af,bo,a7,bk]),function(a){let b,{acceleration:c,activator:d=r.Pointer,canScroll:e,draggingRect:f,enabled:g,interval:h=5,order:i=s.TreeOrder,pointerCoordinates:j,scrollableAncestors:k,scrollableAncestorRects:l,delta:m,threshold:o}=a,p=function(a){let{delta:b,disabled:c}=a,d=N(b);return L(a=>{if(c||!d||!a)return aU;let e={x:Math.sign(b.x-d.x),y:Math.sign(b.y-d.y)};return{x:{[n.Backward]:a.x[n.Backward]||-1===e.x,[n.Forward]:a.x[n.Forward]||1===e.x},y:{[n.Backward]:a.y[n.Backward]||-1===e.y,[n.Forward]:a.y[n.Forward]||1===e.y}}},[c,b,d])}({delta:m,disabled:!g}),[q,t]=(b=(0,x.useRef)(null),[(0,x.useCallback)((a,c)=>{b.current=setInterval(a,c)},[]),(0,x.useCallback)(()=>{null!==b.current&&(clearInterval(b.current),b.current=null)},[])]),u=(0,x.useRef)({x:0,y:0}),v=(0,x.useRef)({x:0,y:0}),w=(0,x.useMemo)(()=>{switch(d){case r.Pointer:return j?{top:j.y,bottom:j.y,left:j.x,right:j.x}:null;case r.DraggableRect:return f}},[d,f,j]),y=(0,x.useRef)(null),z=(0,x.useCallback)(()=>{let a=y.current;if(!a)return;let b=u.current.x*v.current.x,c=u.current.y*v.current.y;a.scrollBy(b,c)},[]),A=(0,x.useMemo)(()=>i===s.TreeOrder?[...k].reverse():k,[i,k]);(0,x.useEffect)(()=>{if(!g||!k.length||!w)return void t();for(let a of A){if((null==e?void 0:e(a))===!1)continue;let b=l[k.indexOf(a)];if(!b)continue;let{direction:d,speed:f}=function(a,b,c,d,e){let{top:f,left:g,right:h,bottom:i}=c;void 0===d&&(d=10),void 0===e&&(e=aA);let{isTop:j,isBottom:k,isLeft:l,isRight:m}=az(a),o={x:0,y:0},p={x:0,y:0},q={height:b.height*e.y,width:b.width*e.x};return!j&&f<=b.top+q.height?(o.y=n.Backward,p.y=d*Math.abs((b.top+q.height-f)/q.height)):!k&&i>=b.bottom-q.height&&(o.y=n.Forward,p.y=d*Math.abs((b.bottom-q.height-i)/q.height)),!m&&h>=b.right-q.width?(o.x=n.Forward,p.x=d*Math.abs((b.right-q.width-h)/q.width)):!l&&g<=b.left+q.width&&(o.x=n.Backward,p.x=d*Math.abs((b.left+q.width-g)/q.width)),{direction:o,speed:p}}(a,b,w,c,o);for(let a of["x","y"])p[a][d[a]]||(f[a]=0,d[a]=0);if(f.x>0||f.y>0){t(),y.current=a,q(z,h),u.current=f,v.current=d;return}}u.current={x:0,y:0},v.current={x:0,y:0},t()},[c,z,e,t,g,h,JSON.stringify(w),JSON.stringify(p),q,k,A,l,JSON.stringify(o)])}({...aL,delta:ad,draggingRect:bl,pointerCoordinates:bg,scrollableAncestors:a7,scrollableAncestorRects:be});let bv=(0,x.useMemo)(()=>({active:ai,activeNode:aJ,activeNodeRect:aN,activatorEvent:ar,collisions:bm,containerNodeRect:aO,dragOverlay:aR,draggableNodes:ac,droppableContainers:af,droppableRects:aG,over:bo,measureDroppableContainers:aH,scrollableAncestors:a7,scrollableAncestorRects:be,measuringConfiguration:aF,measuringScheduled:aI,windowRect:a6}),[ai,aJ,aN,ar,bm,aO,aR,ac,af,aG,bo,aH,a7,be,aF,aI,a6]),bw=(0,x.useMemo)(()=>({activatorEvent:ar,activators:bu,active:ai,activeNodeRect:aN,ariaDescribedById:{draggable:aC},dispatch:V,draggableNodes:ac,over:bo,measureDroppableContainers:aH}),[ar,bu,ai,aN,V,aC,ac,bo,aH]);return y().createElement($.Provider,{value:X},y().createElement(a8.Provider,{value:bw},y().createElement(a9.Provider,{value:bv},y().createElement(bd.Provider,{value:bq},G)),y().createElement(bc,{disabled:(null==C?void 0:C.restoreFocus)===!1})),y().createElement(ab,{...C,hiddenTextDescribedById:aC}))}),bf=(0,x.createContext)(null),bg="button",bh={timeout:25};function bi(a,b,c){let d=a.slice();return d.splice(c<0?d.length+c:c,0,d.splice(b,1)[0]),d}function bj(a){return null!==a&&a>=0}let bk=a=>{let{rects:b,activeIndex:c,overIndex:d,index:e}=a,f=bi(b,d,c),g=b[e],h=f[e];return h&&g?{x:h.left-g.left,y:h.top-g.top,scaleX:h.width/g.width,scaleY:h.height/g.height}:null},bl={scaleX:1,scaleY:1},bm=a=>{var b,c,d,e;let f,g,h,{activeIndex:i,activeNodeRect:j,index:k,rects:l,overIndex:m}=a,n=null!=(b=l[i])?b:j;if(!n)return null;if(k===i){let a=l[m];return a?{x:0,y:i<m?a.top+a.height-(n.top+n.height):a.top-n.top,...bl}:null}let o=(c=l,d=k,e=i,f=c[d],g=c[d-1],h=c[d+1],f?e<d?g?f.top-(g.top+g.height):h?h.top-(f.top+f.height):0:h?h.top-(f.top+f.height):g?f.top-(g.top+g.height):0:0);return k>i&&k<=m?{x:0,y:-n.height-o,...bl}:k<i&&k>=m?{x:0,y:n.height+o,...bl}:{x:0,y:0,...bl}},bn="Sortable",bo=y().createContext({activeIndex:-1,containerId:bn,disableTransforms:!1,items:[],overIndex:-1,useDragOverlay:!1,sortedRects:[],strategy:bk,disabled:{draggable:!1,droppable:!1}});function bp(a){let{children:b,id:c,items:d,strategy:e=bk,disabled:f=!1}=a,{active:g,dragOverlay:h,droppableRects:i,over:j,measureDroppableContainers:k}=(0,x.useContext)(a9),l=P(bn,c),m=null!==h.rect,n=(0,x.useMemo)(()=>d.map(a=>"object"==typeof a&&"id"in a?a.id:a),[d]),o=null!=g,p=g?n.indexOf(g.id):-1,q=j?n.indexOf(j.id):-1,r=(0,x.useRef)(n),s=!function(a,b){if(a===b)return!0;if(a.length!==b.length)return!1;for(let c=0;c<a.length;c++)if(a[c]!==b[c])return!1;return!0}(n,r.current),t=-1!==q&&-1===p||s,u="boolean"==typeof f?{draggable:f,droppable:f}:f;I(()=>{s&&o&&k(n)},[s,n,o,k]),(0,x.useEffect)(()=>{r.current=n},[n]);let v=(0,x.useMemo)(()=>({activeIndex:p,containerId:l,disabled:u,disableTransforms:t,items:n,overIndex:q,useDragOverlay:m,sortedRects:n.reduce((a,b,c)=>{let d=i.get(b);return d&&(a[c]=d),a},Array(n.length)),strategy:e}),[p,l,u.draggable,u.droppable,t,n,q,i,m,e]);return y().createElement(bo.Provider,{value:v},b)}let bq=a=>{let{id:b,items:c,activeIndex:d,overIndex:e}=a;return bi(c,d,e).indexOf(b)},br=a=>{let{containerId:b,isSorting:c,wasDragging:d,index:e,items:f,newIndex:g,previousItems:h,previousContainerId:i,transition:j}=a;return!!j&&!!d&&(h===f||e!==g)&&(!!c||g!==e&&b===i)},bs={duration:200,easing:"ease"},bt="transform",bu=V.Transition.toString({property:bt,duration:0,easing:"linear"}),bv={roleDescription:"sortable"};function bw(a){if(!a)return!1;let b=a.data.current;return!!b&&"sortable"in b&&"object"==typeof b.sortable&&"containerId"in b.sortable&&"items"in b.sortable&&"index"in b.sortable}let bx=[p.Down,p.Right,p.Up,p.Left],by=(a,b)=>{let{context:{active:c,collisionRect:d,droppableRects:e,droppableContainers:f,over:g,scrollableAncestors:h}}=b;if(bx.includes(a.code)){if(a.preventDefault(),!c||!d)return;let b=[];f.getEnabled().forEach(c=>{if(!c||null!=c&&c.disabled)return;let f=e.get(c.id);if(f)switch(a.code){case p.Down:d.top<f.top&&b.push(c);break;case p.Up:d.top>f.top&&b.push(c);break;case p.Left:d.left>f.left&&b.push(c);break;case p.Right:d.left<f.left&&b.push(c)}});let k=(a=>{let{collisionRect:b,droppableRects:c,droppableContainers:d}=a,e=ai(b),f=[];for(let a of d){let{id:b}=a,d=c.get(b);if(d){let c=ai(d),g=Number((e.reduce((a,b,d)=>a+af(c[d],b),0)/4).toFixed(4));f.push({id:b,data:{droppableContainer:a,value:g}})}}return f.sort(ag)})({active:c,collisionRect:d,droppableRects:e,droppableContainers:b,pointerCoordinates:null}),l=aj(k,"id");if(l===(null==g?void 0:g.id)&&k.length>1&&(l=k[1].id),null!=l){let a=f.get(c.id),b=f.get(l),g=b?e.get(b.id):null,k=null==b?void 0:b.node.current;if(k&&g&&a&&b){var i,j;let c=as(k).some((a,b)=>h[b]!==a),e=bz(a,b),f=(i=a,j=b,!!bw(i)&&!!bw(j)&&!!bz(i,j)&&i.data.current.sortable.index<j.data.current.sortable.index),l=c||!e?{x:0,y:0}:{x:f?d.width-g.width:0,y:f?d.height-g.height:0},m={x:g.left,y:g.top};return l.x&&l.y?m:S(m,l)}}}};function bz(a,b){return!!bw(a)&&!!bw(b)&&a.data.current.sortable.containerId===b.data.current.sortable.containerId}let bA=a=>{let b,{containerNodeRect:c,draggingNodeRect:d,transform:e}=a;return d&&c?(b={...e},d.top+e.y<=c.top?b.y=c.top-d.top:d.bottom+e.y>=c.top+c.height&&(b.y=c.top+c.height-d.bottom),d.left+e.x<=c.left?b.x=c.left-d.left:d.right+e.x>=c.left+c.width&&(b.x=c.left+c.width-d.right),b):e},bB=a=>{let{transform:b}=a;return{...b,x:0}};var bC=c(50412),bD=c(50377);c(92592);var bE=c(41371),bF=c(6297),bG=c(80212);let bH=/^[a-zA-Z0-9_.\-]+$/,bI=[{key:"vision",label:"Vision",icon:"visibility",desc:"Images"},{key:"audioInput",label:"Audio",icon:"graphic_eq",desc:"Audio input"}],bJ={enabled:!0,roundRobin:!1,models:[]},bK=Object.keys({vision:{...bJ},pdf:{...bJ},audioInput:{...bJ},videoInput:{...bJ}});function bL(a){return Array.isArray(a)?{enabled:!0,roundRobin:!1,models:a.map(a=>a?.model||a).filter(Boolean)}:a&&"object"==typeof a?{enabled:!1!==a.enabled,roundRobin:!!a.roundRobin,models:Array.isArray(a.models)?a.models.filter(Boolean):[]}:{...bJ}}function bM({initialData:a}){let b=(0,bE.i)(a=>a.error),[c,d]=(0,x.useState)(()=>(a?.combos||[]).filter(a=>!a.kind||"llm"===a.kind)),[e,f]=(0,x.useState)(!a),[g,h]=(0,x.useState)(!1),[i,j]=(0,x.useState)(null),[k,l]=(0,x.useState)(a?.connections||[]),[m,n]=(0,x.useState)(a?.settings?.comboStrategies||{}),[o,p]=(0,x.useState)(a?.modelCaps||{}),[q,r]=(0,x.useState)(()=>{let b=a?.settings?.capacityAdapter||{},c={};for(let a of bK)c[a]=bL(b[a]);return c}),[s,t]=(0,x.useState)(null),{copied:u,copy:v}=(0,bD.C)(),y=(0,x.useCallback)(async()=>{try{let[a,b,c,e]=await Promise.all([fetch("/api/combos"),fetch("/api/providers"),fetch("/api/settings"),fetch("/api/models")]);if(![a,b,c,e].every(a=>a.ok))throw Error("One or more combo resources failed to load");let f=await a.json(),g=await b.json(),h=await c.json();if(a.ok&&d((f.combos||[]).filter(a=>!a.kind||"llm"===a.kind)),b.ok&&l(g.connections||[]),e.ok){let a=await e.json(),b={};for(let c of a.models||[])c.caps&&(b[c.fullModel]=c.caps);p(b)}n(h.comboStrategies||{});let i=h.capacityAdapter||{},j={};for(let a of bK)j[a]=bL(i[a]);r(j)}catch(a){b("Failed to fetch combo data")}finally{f(!1)}},[b]),z=async a=>{try{let{strategy:c,capacityAutoSwitch:d,routerModel:e,objective:f,...g}=a,i=await fetch("/api/combos",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(g)});if(i.ok){let a=await i.json().catch(()=>({})),b=g.name?.trim()||a?.name;b&&(c||void 0!==d||e||f)&&await C(b,bN(c,d,e,f)),await y(),h(!1)}else{let a=await i.json();b(a.error||"Failed to create combo")}}catch(a){b("Failed to create combo")}},A=async(a,c)=>{try{let{strategy:d,capacityAutoSwitch:e,routerModel:f,objective:g,...h}=c,k=i?.name,l=await fetch(`/api/combos/${a}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(h)});if(l.ok){let a=h.name?.trim()||k;if(k&&a&&k!==a&&n(b=>{let c={...b};return k in c&&(a in c||(c[a]=c[k]),delete c[k]),c}),a&&(d||void 0!==e)){let b,c=k&&k!==a?(b={...m},k in b&&(a in b||(b[a]=b[k]),delete b[k]),b):m;await C(a,bN(d,e,f,g),c)}await y(),j(null)}else{let a=await l.json();b(a.error||"Failed to update combo")}}catch(a){b("Failed to update combo")}},B=async a=>{let e=c.find(b=>b.id===a);t({title:"Delete Combo",message:e?.name?`Delete combo “${e.name}”?`:"Delete this combo?",onConfirm:async()=>{t(null);try{let c=await fetch(`/api/combos/${a}`,{method:"DELETE"});if(c.ok)d(b=>b.filter(b=>b.id!==a)),e?.name&&n(a=>{if(!(e.name in a))return a;let b={...a};return delete b[e.name],b});else{let a=await c.json().catch(()=>({}));b(a.error||`Failed to delete combo (HTTP ${c.status})`)}}catch(a){b("Failed to delete combo")}}})},C=async(a,c,d=null)=>{try{let e={...d||m},f={...e[a]||{},...c};for(let a of Object.keys(f))(""===f[a]||null===f[a]||void 0===f[a])&&delete f[a];let g=f.fallbackStrategy||"fallback";"fallback"!==g||f.judgeModel||f.routerModel||f.objective||void 0!==f.learningEnabled||void 0!==f.freezeLearning||void 0!==f.explorationRate||!1===f.capacityAutoSwitch?(!f.fallbackStrategy&&void 0===c.fallbackStrategy&&e[a]?.fallbackStrategy&&(f.fallbackStrategy=e[a].fallbackStrategy),e[a]=f):delete e[a];let h=await fetch("/api/settings",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({comboStrategies:e})});if(!h.ok){let a=await h.json().catch(()=>({}));b(a.error||`Failed to update combo strategy (${h.status})`);return}n(e)}catch(a){throw b("Failed to update combo strategy"),a}},D=async a=>{r(a);try{(await fetch("/api/settings",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({capacityAdapter:a})})).ok||b("Failed to update capacity adapter")}catch(a){b("Failed to update capacity adapter")}};return e?(0,w.jsxs)("div",{className:"flex flex-col gap-6",children:[(0,w.jsx)(bC.Qv,{}),(0,w.jsx)(bC.Qv,{})]}):(0,w.jsxs)("div",{className:"flex min-w-0 flex-col gap-6 px-1 sm:px-0",children:[(0,w.jsxs)("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-start sm:justify-between",children:[(0,w.jsxs)("div",{className:"min-w-0 max-w-3xl",children:[(0,w.jsx)("h1",{className:"text-[17px] font-semibold text-text-main",children:"Combos"}),(0,w.jsx)("p",{className:"text-sm text-text-muted mt-1",children:"Group models under one name, then pick a strategy per combo:"}),(0,w.jsxs)("ul",{className:"text-sm text-text-muted mt-2 flex flex-col gap-1.5",children:[(0,w.jsxs)("li",{children:[(0,w.jsx)("span",{className:"font-medium text-text-main",children:"Fallback"})," ","— tries models in order (next on failure)"]}),(0,w.jsxs)("li",{children:[(0,w.jsx)("span",{className:"font-medium text-text-main",children:"Round Robin"})," ","— rotates models across requests to spread load"]}),(0,w.jsxs)("li",{children:[(0,w.jsx)("span",{className:"font-medium text-text-main",children:"Fusion"})," ","— queries all models in parallel, then a judge synthesizes one answer. Best quality, but costs the most: every request bills all panel models + the judge (N+1 calls)"]}),(0,w.jsxs)("li",{children:[(0,w.jsx)("span",{className:"font-medium text-text-main",children:"Auto"})," ","— a router model picks one worker from the pool each request (2 calls: router + worker); optional learning from outcomes"]}),(0,w.jsxs)("li",{children:[(0,w.jsx)("span",{className:"font-medium text-text-main",children:"Capacity auto-switch"})," ","— when enabled on a combo, sends image/PDF requests to a model that supports them first (works with Fallback, Round Robin, and Fusion)"]})]})]}),(0,w.jsx)(bC.$n,{icon:"add",onClick:()=>h(!0),className:"w-full sm:w-auto whitespace-nowrap shrink-0",children:"Create Combo"})]}),0===c.length?(0,w.jsx)(bC.Zp,{children:(0,w.jsxs)("div",{className:"text-center py-12",children:[(0,w.jsx)("div",{className:"inline-flex items-center justify-center w-16 h-16 rounded-full bg-primary/10 text-primary mb-4",children:(0,w.jsx)("span",{className:"material-symbols-outlined text-[32px]",children:"layers"})}),(0,w.jsx)("p",{className:"text-text-main font-medium mb-1",children:"No combos yet"}),(0,w.jsx)("p",{className:"text-sm text-text-muted mb-4 max-w-md mx-auto",children:"Create a named model group, choose Fallback / Round Robin / Fusion / Auto, and point clients at the combo name."}),(0,w.jsx)(bC.$n,{icon:"add",onClick:()=>h(!0),className:"w-full sm:w-auto",children:"Create Combo"})]})}):(0,w.jsx)("div",{className:"flex flex-col gap-4",children:c.map(a=>(0,w.jsx)(bT,{combo:a,modelCaps:o,activeProviders:k,copied:u,onCopy:v,onEdit:()=>j(a),onDelete:()=>B(a.id),strategy:m[a.name]||{},onSetStrategy:b=>C(a.name,b)},a.id))}),(0,w.jsx)(bW,{capacityAdapter:q,onChange:D,activeProviders:k,getCaps:a=>o[a]||null}),(0,w.jsx)(bV,{isOpen:g,onClose:()=>h(!1),onSave:z,activeProviders:k,modelCaps:o,initialStrategy:{fallbackStrategy:"fallback",capacityAutoSwitch:!0}},"create"),(0,w.jsx)(bV,{isOpen:!!i,combo:i,onClose:()=>j(null),onSave:a=>A(i.id,a),activeProviders:k,modelCaps:o,initialStrategy:i?m[i.name]||{fallbackStrategy:"fallback"}:{}},i?.id||"new"),(0,w.jsx)(bC.uo,{isOpen:!!s,onClose:()=>t(null),onConfirm:s?.onConfirm,title:s?.title||"Confirm",message:s?.message,variant:"danger"})]})}function bN(a,b,c,d){let e=a||"fallback",f={fallbackStrategy:e,...void 0!==b?{capacityAutoSwitch:b}:{}};return"auto"===e?(c&&(f.routerModel=c),d&&(f.objective=d),f.judgeModel=""):("fusion"===e?f.routerModel="":(f.routerModel="",f.judgeModel=""),f.objective="",f.learningEnabled="",f.freezeLearning="",f.explorationRate=""),f}function bO(a,b,c){let d=(a||[]).filter(a=>a&&a!==b);return d.length>0&&!d.some(a=>c[a]?.vision)}function bP({models:a,routerModel:b}){let c=(a||[]).filter(a=>a&&a!==b);if(c.length<2)return null;let{cheap:d,frontier:e,disabled:f}=function(a){let b=(a||[]).filter(Boolean);if(b.length<=1)return{cheap:b.slice(),frontier:[],disabled:!0};let c=b.map(a=>({m:a,t:function(a){if(!a)return 4;let[b,...c]=a.split("/"),d=c.join("/")||b,e=(0,bG.PS)(b,d);if(!e||"number"!=typeof e.input)return 4;let f="number"==typeof e.output?e.output:3*e.input,g=e.input+f;return g<2?0:g<10?1:g<30?2:g<80?3:4}(a)}));if(new Set(c.map(a=>a.t)).size<=1)return{cheap:b.slice(),frontier:[],disabled:!0};let d=c.filter(a=>a.t<=1).map(a=>a.m),e=c.filter(a=>a.t>=2).map(a=>a.m);if(!d.length||!e.length){let a=c.map((a,b)=>({...a,i:b})).sort((a,b)=>a.t-b.t||a.i-b.i),b=Math.ceil(a.length/2);d=a.slice(0,b).map(a=>a.m),e=a.slice(b).map(a=>a.m)}return{cheap:d,frontier:e,disabled:!1}}(c),g=a=>String(a).split("/").pop();return f?(0,w.jsxs)("div",{className:"flex min-w-0 flex-wrap items-center gap-1.5",children:[(0,w.jsx)("span",{className:"text-[11px] font-medium text-text-muted",children:"Tiers"}),(0,w.jsx)("span",{className:"text-[10px] text-text-subtle",title:"All workers share one cost tier — tiered routing is off",children:"single tier (tiering off)"})]}):(0,w.jsxs)("div",{className:"flex min-w-0 flex-wrap items-center gap-1.5",children:[(0,w.jsx)("span",{className:"text-[11px] font-medium text-text-muted",children:"Tiers"}),d.map(a=>(0,w.jsx)("span",{className:"rounded border border-emerald-500/30 bg-emerald-500/10 px-1.5 py-0.5 font-mono text-[10px] text-emerald-600 dark:text-emerald-400",title:`${a} — cheap tier`,children:g(a)},`c-${a}`)),(0,w.jsx)("span",{className:"material-symbols-outlined text-[12px] text-text-subtle",children:"arrow_forward"}),e.map(a=>(0,w.jsx)("span",{className:"rounded border border-amber-500/30 bg-amber-500/10 px-1.5 py-0.5 font-mono text-[10px] text-amber-600 dark:text-amber-400",title:`${a} — frontier tier`,children:g(a)},`f-${a}`))]})}let bQ=[{value:"fallback",label:"Fallback — try in order"},{value:"round-robin",label:"Round Robin — rotate load"},{value:"fusion",label:"Fusion — panel + judge (N+1)"},{value:"auto",label:"Auto — router picks 1 worker"}],bR={fallback:"Tries models top-to-bottom; on failure uses the next.","round-robin":"Rotates models across requests to spread load.",fusion:"Calls every model, then a judge merges answers (bills N+1).",auto:"Router model chooses one worker each request (bills 2 calls)."},bS=[{value:"quality",label:"Quality"},{value:"balanced",label:"Balanced"},{value:"economy",label:"Economy"},{value:"latency",label:"Latency"}];function bT({combo:a,modelCaps:b={},activeProviders:c=[],copied:d,onCopy:e,onEdit:f,onDelete:g,strategy:h={},onSetStrategy:i}){let[j,k]=(0,x.useState)(!1),[l,m]=(0,x.useState)(!1),[n,o]=(0,x.useState)(!1),[p,q]=(0,x.useState)(!1),[r,s]=(0,x.useState)(""),t=h.fallbackStrategy||"fallback",u=h.judgeModel||"",v="auto"===t,y=h.routerModel||"",z=h.objective||"balanced",A=h.providerStrategy||"off",B=!1!==h.capacityAutoSwitch;return(0,w.jsxs)(bC.Zp,{padding:"sm",className:"group",children:[(0,w.jsxs)("div",{className:"flex min-w-0 flex-col gap-3 sm:flex-row sm:items-center sm:justify-between",children:[(0,w.jsxs)("div",{className:"flex min-w-0 flex-1 items-start gap-3 sm:items-center",children:[(0,w.jsx)("div",{className:"size-8 rounded-lg bg-primary/10 flex items-center justify-center shrink-0",children:(0,w.jsx)("span",{className:"material-symbols-outlined text-primary text-[18px]",children:"layers"})}),(0,w.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,w.jsx)("code",{className:"block truncate font-mono text-sm font-medium",children:a.name}),(0,w.jsx)("p",{className:"text-[10px] text-text-subtle mt-0.5",children:bR[t]||""}),(0,w.jsxs)("div",{className:"mt-1 flex min-w-0 flex-wrap items-center gap-1",children:[0===a.models.length?(0,w.jsx)("span",{className:"text-xs text-text-muted italic",children:"No models"}):a.models.slice(0,3).map((a,c)=>(0,w.jsxs)("code",{className:"inline-flex items-center gap-1 rounded bg-black/5 px-1.5 py-0.5 font-mono text-xs text-text-muted dark:bg-white/5",children:[(0,w.jsx)("span",{children:a}),(0,w.jsx)(bC.nh,{caps:b[a]})]},c)),a.models.length>3&&(0,w.jsxs)("span",{className:"text-[10px] text-text-muted",children:["+",a.models.length-3," more"]})]}),"fusion"===t&&(0,w.jsxs)("div",{className:"mt-2 flex min-w-0 flex-wrap items-center gap-1.5",children:[(0,w.jsx)("span",{className:"text-[11px] font-medium text-text-muted",children:"Judge"}),(0,w.jsxs)("button",{onClick:()=>k(!0),className:"inline-flex max-w-full items-center gap-1 rounded border border-dashed border-primary/40 px-1.5 py-0.5 font-mono text-[11px] text-primary hover:border-primary hover:bg-primary/5 transition-colors",title:"Pick the model that fuses panel answers",children:[(0,w.jsx)("span",{className:"material-symbols-outlined text-[13px]",children:"gavel"}),(0,w.jsx)("span",{className:"truncate",children:u||`Auto — ${a.models[0]||"first model"}`})]}),u&&(0,w.jsx)("button",{onClick:()=>i({judgeModel:""}),className:"p-0.5 rounded text-text-muted hover:text-red-500 hover:bg-red-500/10 transition-colors",title:"Reset judge to Auto",children:(0,w.jsx)("span",{className:"material-symbols-outlined text-[13px]",children:"close"})})]}),v&&(0,w.jsxs)("div",{className:"mt-2 flex min-w-0 flex-col gap-2",children:[(0,w.jsxs)("div",{className:"flex min-w-0 flex-wrap items-center gap-1.5",children:[(0,w.jsx)("span",{className:"text-[11px] font-medium text-text-muted",children:"Router"}),(0,w.jsxs)("button",{type:"button",onClick:()=>m(!0),className:"inline-flex max-w-full items-center gap-1 rounded border border-dashed border-primary/40 px-1.5 py-0.5 font-mono text-[11px] text-primary hover:border-primary hover:bg-primary/5 transition-colors",title:"Model that picks the worker each request — required for Auto",children:[(0,w.jsx)("span",{className:"material-symbols-outlined text-[13px]",children:"alt_route"}),(0,w.jsx)("span",{className:"truncate",children:y||"Select a router model (required)"})]})]}),y&&a.models?.includes(y)&&(0,w.jsxs)("p",{className:"text-[10px] text-amber-600 dark:text-amber-400 flex items-center gap-1",children:[(0,w.jsx)("span",{className:"material-symbols-outlined text-[12px]",children:"warning"}),"Router is also in the worker list — it is auto-excluded from the pool."]}),bO(a.models,y,b)&&(0,w.jsxs)("p",{className:"text-[10px] text-amber-600 dark:text-amber-400 flex items-center gap-1",children:[(0,w.jsx)("span",{className:"material-symbols-outlined text-[12px]",children:"warning"}),"No vision-capable model — image requests will have images stripped"]}),(0,w.jsx)(bP,{models:a.models,routerModel:y}),(0,w.jsxs)("div",{className:"flex min-w-0 flex-wrap items-center gap-1.5",children:[(0,w.jsx)("span",{className:"text-[11px] font-medium text-text-muted",children:"Objective"}),(0,w.jsx)("select",{value:z,onChange:a=>i({objective:a.target.value}),className:"rounded border border-border bg-surface-2 px-1.5 py-0.5 text-[11px] text-text-main",children:bS.map(a=>(0,w.jsx)("option",{value:a.value,children:a.label},a.value))}),(0,w.jsxs)("label",{className:"inline-flex items-center gap-1 text-[11px] text-text-muted cursor-pointer",children:[(0,w.jsx)("input",{type:"checkbox",className:"rounded border-border",checked:!1!==h.learningEnabled,onChange:a=>i({learningEnabled:a.target.checked})}),"Learn"]}),(0,w.jsxs)("label",{className:"inline-flex items-center gap-1 text-[11px] text-text-muted cursor-pointer",title:"Keep routing on current learning version; block relearn",children:[(0,w.jsx)("input",{type:"checkbox",className:"rounded border-border",checked:!!h.freezeLearning,onChange:a=>i({freezeLearning:a.target.checked})}),"Freeze"]}),(0,w.jsxs)("label",{className:"inline-flex items-center gap-1 text-[11px] text-text-muted cursor-pointer",title:"Occasionally append a 1/2/3 feedback prompt to Auto chat replies (human chat only). Off by default.",children:[(0,w.jsx)("input",{type:"checkbox",className:"rounded border-border",checked:!!h.feedbackAsk,onChange:a=>i({feedbackAsk:a.target.checked})}),"Ask feedback"]}),(0,w.jsxs)("button",{type:"button",disabled:p||!!h.freezeLearning,onClick:async()=>{q(!0),s("");try{let b=await fetch("/api/routing/learn",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({comboName:a.name})}),c=await b.json();s(c.message||(c.ok?"Done":c.error||"Failed"))}catch(a){s(a.message||"Failed")}finally{q(!1)}},className:"inline-flex items-center gap-1 rounded border border-primary/40 bg-primary/10 px-2 py-0.5 text-[11px] font-medium text-primary hover:bg-primary/15 disabled:opacity-50",title:"Run learning optimizer on recent routing events",children:[(0,w.jsx)("span",{className:"material-symbols-outlined text-[13px]",children:"psychology"}),p?"Learning…":"Relearn now"]}),(0,w.jsx)("a",{href:`/dashboard/combos/routing?combo=${encodeURIComponent(a.name)}`,className:"inline-flex items-center gap-1 rounded border border-border px-2 py-0.5 text-[11px] text-text-muted hover:text-primary hover:border-primary/40",children:"Insights"})]}),(0,w.jsxs)("div",{className:"flex min-w-0 flex-wrap items-center gap-1.5",children:[(0,w.jsx)("span",{className:"text-[11px] font-medium text-text-muted",children:"Provider"}),(0,w.jsxs)("select",{value:A,onChange:a=>i({providerStrategy:a.target.value}),className:"rounded border border-border bg-surface-2 px-1.5 py-0.5 text-[11px] text-text-main",children:[(0,w.jsx)("option",{value:"off",children:"Off"}),(0,w.jsx)("option",{value:"priority",children:"Priority"}),(0,w.jsx)("option",{value:"round-robin",children:"Round robin"}),(0,w.jsx)("option",{value:"fastest",children:"Fastest"}),(0,w.jsx)("option",{value:"quota-first",children:"Quota first"})]}),"priority"===A&&(0,w.jsxs)(w.Fragment,{children:[(0,w.jsx)("input",{type:"text",value:Array.isArray(h.providerOrder)?h.providerOrder.join(", "):"",onChange:a=>i({providerOrder:a.target.value.split(",").map(a=>a.trim()).filter(Boolean)}),placeholder:"provider-a, provider-b",className:"w-40 rounded border border-border bg-surface-2 px-1.5 py-0.5 text-[11px] text-text-main"}),(0,w.jsx)("span",{className:"text-[10px] text-text-muted",children:"comma-separated provider names, highest priority first"})]}),(0,w.jsx)("input",{type:"number",min:"1",value:h.providerLatencyGuardMs??"",onChange:a=>i({providerLatencyGuardMs:Number(a.target.value)||void 0}),placeholder:"20000",title:"Demote providers slower than this latency in milliseconds",className:"w-20 rounded border border-border bg-surface-2 px-1.5 py-0.5 text-[11px] text-text-main"})]}),"quota-first"===A&&(0,w.jsx)("p",{className:"text-[10px] text-text-muted",children:"Quota data currently available for Claude & Codex; other providers use availability (not rate-limited, lower recent use)."}),(0,w.jsxs)("div",{className:"flex min-w-0 flex-wrap items-center gap-2 text-[11px] text-text-muted",children:[(0,w.jsxs)("label",{className:"inline-flex items-center gap-1",children:["Window",(0,w.jsxs)("select",{value:h.learningWindowDays??14,onChange:a=>i({learningWindowDays:Number(a.target.value)||14}),className:"rounded border border-border bg-surface-2 px-1 py-0.5 text-[11px] text-text-main",children:[(0,w.jsx)("option",{value:7,children:"7d"}),(0,w.jsx)("option",{value:14,children:"14d"}),(0,w.jsx)("option",{value:30,children:"30d"})]})]}),(0,w.jsxs)("label",{className:"inline-flex items-center gap-1",title:"Epsilon-greedy exploration (capped at 20%)",children:["Explore",(0,w.jsx)("select",{value:Math.round((h.explorationRate??.05)*100),onChange:a=>i({explorationRate:Number(a.target.value)/100}),className:"rounded border border-border bg-surface-2 px-1 py-0.5 text-[11px] text-text-main",children:[0,5,10,15,20].map(a=>(0,w.jsxs)("option",{value:a,children:[a,"%"]},a))})]}),(0,w.jsxs)("label",{className:"inline-flex items-center gap-1",title:"0 = manual relearn only",children:["Auto-relearn",(0,w.jsxs)("select",{value:h.autoLearnIntervalHours??0,onChange:a=>i({autoLearnIntervalHours:Number(a.target.value)||0}),className:"rounded border border-border bg-surface-2 px-1 py-0.5 text-[11px] text-text-main",children:[(0,w.jsx)("option",{value:0,children:"off"}),(0,w.jsx)("option",{value:6,children:"6h"}),(0,w.jsx)("option",{value:12,children:"12h"}),(0,w.jsx)("option",{value:24,children:"24h"}),(0,w.jsx)("option",{value:72,children:"72h"})]})]}),(0,w.jsxs)("label",{className:"inline-flex items-center gap-1",title:"Capacity pre-filter before router (vision/PDF)",children:[(0,w.jsx)("input",{type:"checkbox",className:"rounded border-border",checked:!1!==h.capacityAutoSwitch,onChange:a=>i({capacityAutoSwitch:a.target.checked})}),"Heuristic first"]}),(0,w.jsxs)("label",{className:"inline-flex items-center gap-1",title:"Emit X-Auto-Router-* response headers (worker, cluster, score, skipped)",children:[(0,w.jsx)("input",{type:"checkbox",className:"rounded border-border",checked:!1!==h.emitAutoRouterHeaders,onChange:a=>i({emitAutoRouterHeaders:a.target.checked})}),"Route headers"]})]}),r?(0,w.jsx)("p",{className:"text-[11px] font-mono text-text-subtle",children:r}):(0,w.jsx)("p",{className:"text-[10px] text-text-subtle",children:"Worker pool = models list (router model excluded if listed). Every request re-routes. Router model is required — pick a connected account (a cheap, fast model such as Haiku works well)."})]})]})]}),(0,w.jsxs)("div",{className:"flex w-full flex-col gap-2 sm:w-auto sm:flex-row sm:items-center sm:gap-3 sm:shrink-0",children:[(0,w.jsxs)("div",{className:"w-full sm:w-[220px] flex flex-col gap-1.5",children:[(0,w.jsx)(bC.l6,{options:bQ,value:t,onChange:a=>{let b=a.target.value;if("auto"===b&&!y){o(!0),m(!0);return}i({fallbackStrategy:b})},selectClassName:"py-1.5 text-xs"}),!v&&(0,w.jsxs)("label",{className:"inline-flex items-center gap-1.5 text-[10px] text-text-muted cursor-pointer",children:[(0,w.jsx)("input",{type:"checkbox",className:"rounded border-border",checked:B,onChange:a=>i({capacityAutoSwitch:a.target.checked})}),"Capacity auto-switch (vision/PDF first)"]})]}),(0,w.jsxs)("div",{className:"grid grid-cols-3 gap-1 sm:flex",children:[(0,w.jsxs)("button",{onClick:b=>{b.stopPropagation(),e(a.name,`combo-${a.id}`)},className:"flex flex-col items-center rounded px-2 py-1 text-text-muted transition-colors hover:bg-black/5 hover:text-primary dark:hover:bg-white/5",title:"Copy combo name",children:[(0,w.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:d===`combo-${a.id}`?"check":"content_copy"}),(0,w.jsx)("span",{className:"text-[10px] leading-tight",children:"Copy"})]}),(0,w.jsxs)("button",{onClick:f,className:"flex flex-col items-center rounded px-2 py-1 text-text-muted transition-colors hover:bg-black/5 hover:text-primary dark:hover:bg-white/5",title:"Edit",children:[(0,w.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"edit"}),(0,w.jsx)("span",{className:"text-[10px] leading-tight",children:"Edit"})]}),(0,w.jsxs)("button",{onClick:g,className:"flex flex-col items-center rounded px-2 py-1 text-red-500 transition-colors hover:bg-red-500/10",title:"Delete",children:[(0,w.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"delete"}),(0,w.jsx)("span",{className:"text-[10px] leading-tight",children:"Delete"})]})]})]})]}),(0,w.jsx)(bC.rq,{isOpen:j,onClose:()=>k(!1),onSelect:a=>{i({judgeModel:a?.value||""}),k(!1)},activeProviders:c,title:"Select Judge Model",addedModelValues:u?[u]:[],closeOnSelect:!0}),(0,w.jsx)(bC.rq,{isOpen:l,onClose:()=>{o(!1),m(!1)},onSelect:a=>{let b=a?.value||"";n?(o(!1),b&&i({fallbackStrategy:"auto",routerModel:b})):i({routerModel:b}),m(!1)},activeProviders:c,title:"Select Router Model",addedModelValues:y?[y]:[],closeOnSelect:!0})]})}function bU({id:a,index:b,model:c,learned:d=null,isFirst:e,isLast:f,onEdit:g,onMoveUp:h,onMoveDown:i,onRemove:j}){let{attributes:k,listeners:l,setNodeRef:n,transform:o,isDragging:p}=function(a){var b,c,d,e;let{animateLayoutChanges:f=br,attributes:g,disabled:h,data:i,getNewIndex:j=bq,id:k,strategy:l,resizeObserverConfig:n,transition:o=bs}=a,{items:p,containerId:q,activeIndex:r,disabled:s,disableTransforms:t,sortedRects:u,overIndex:v,useDragOverlay:w,strategy:y}=(0,x.useContext)(bo),z=(b=h,c=s,"boolean"==typeof b?{draggable:b,droppable:!1}:{draggable:null!=(d=null==b?void 0:b.draggable)?d:c.draggable,droppable:null!=(e=null==b?void 0:b.droppable)?e:c.droppable}),A=p.indexOf(k),B=(0,x.useMemo)(()=>({sortable:{containerId:q,index:A,items:p},...i}),[q,i,A,p]),C=(0,x.useMemo)(()=>p.slice(p.indexOf(k)),[p,k]),{rect:D,node:E,isOver:F,setNodeRef:G}=function(a){let{data:b,disabled:c=!1,id:d,resizeObserverConfig:e}=a,f=P("Droppable"),{active:g,dispatch:h,over:i,measureDroppableContainers:j}=(0,x.useContext)(a8),k=(0,x.useRef)({disabled:c}),l=(0,x.useRef)(!1),n=(0,x.useRef)(null),o=(0,x.useRef)(null),{disabled:p,updateMeasurementsFor:q,timeout:r}={...bh,...e},s=K(null!=q?q:d),t=aX({callback:(0,x.useCallback)(()=>{if(!l.current){l.current=!0;return}null!=o.current&&clearTimeout(o.current),o.current=setTimeout(()=>{j(Array.isArray(s.current)?s.current:[s.current]),o.current=null},r)},[r]),disabled:p||!g}),[u,v]=M((0,x.useCallback)((a,b)=>{t&&(b&&(t.unobserve(b),l.current=!1),a&&t.observe(a))},[t])),w=K(b);return(0,x.useEffect)(()=>{t&&u.current&&(t.disconnect(),l.current=!1,t.observe(u.current))},[u,t]),(0,x.useEffect)(()=>(h({type:m.RegisterDroppable,element:{id:d,key:f,disabled:c,node:u,rect:n,data:w}}),()=>h({type:m.UnregisterDroppable,key:f,id:d})),[d]),(0,x.useEffect)(()=>{c!==k.current.disabled&&(h({type:m.SetDroppableDisabled,id:d,key:f,disabled:c}),k.current.disabled=c)},[d,f,c,h]),{active:g,rect:n,isOver:(null==i?void 0:i.id)===d,node:u,over:i,setNodeRef:v}}({id:k,data:B,disabled:z.droppable,resizeObserverConfig:{updateMeasurementsFor:C,...n}}),{active:H,activatorEvent:J,activeNodeRect:L,attributes:N,setNodeRef:O,listeners:Q,isDragging:R,over:S,setActivatorNodeRef:U,transform:W}=function(a){let{id:b,data:c,disabled:d=!1,attributes:e}=a,f=P("Draggable"),{activators:g,activatorEvent:h,active:i,activeNodeRect:j,ariaDescribedById:k,draggableNodes:l,over:m}=(0,x.useContext)(a8),{role:n=bg,roleDescription:o="draggable",tabIndex:p=0}=null!=e?e:{},q=(null==i?void 0:i.id)===b,r=(0,x.useContext)(q?bd:bf),[s,t]=M(),[u,v]=M(),w=(0,x.useMemo)(()=>g.reduce((a,c)=>{let{eventName:d,handler:e}=c;return a[d]=a=>{e(a,b)},a},{}),[g,b]),y=K(c);return I(()=>(l.set(b,{id:b,key:f,node:s,activatorNode:u,data:y}),()=>{let a=l.get(b);a&&a.key===f&&l.delete(b)}),[l,b]),{active:i,activatorEvent:h,activeNodeRect:j,attributes:(0,x.useMemo)(()=>({role:n,tabIndex:p,"aria-disabled":d,"aria-pressed":!!q&&n===bg||void 0,"aria-roledescription":o,"aria-describedby":k.draggable}),[d,n,p,q,o,k.draggable]),isDragging:q,listeners:d?void 0:w,node:s,over:m,setNodeRef:t,setActivatorNodeRef:v,transform:r}}({id:k,data:B,attributes:{...bv,...g},disabled:z.draggable}),X=function(){for(var a=arguments.length,b=Array(a),c=0;c<a;c++)b[c]=arguments[c];return(0,x.useMemo)(()=>a=>{b.forEach(b=>b(a))},b)}(G,O),Y=!!H,Z=Y&&!t&&bj(r)&&bj(v),$=!w&&R,_=$&&Z?W:null,aa=Z?null!=_?_:(null!=l?l:y)({rects:u,activeNodeRect:L,activeIndex:r,overIndex:v,index:A}):null,ab=bj(r)&&bj(v)?j({id:k,items:p,activeIndex:r,overIndex:v}):A,ac=null==H?void 0:H.id,ad=(0,x.useRef)({activeId:ac,items:p,newIndex:ab,containerId:q}),ae=p!==ad.current.items,af=f({active:H,containerId:q,isDragging:R,isSorting:Y,id:k,index:A,items:p,newIndex:ad.current.newIndex,previousItems:ad.current.items,previousContainerId:ad.current.containerId,transition:o,wasDragging:null!=ad.current.activeId}),ag=function(a){let{disabled:b,index:c,node:d,rect:e}=a,[f,g]=(0,x.useState)(null),h=(0,x.useRef)(c);return I(()=>{if(!b&&c!==h.current&&d.current){let a=e.current;if(a){let b=aq(d.current,{ignoreTransform:!0}),c={x:a.left-b.left,y:a.top-b.top,scaleX:a.width/b.width,scaleY:a.height/b.height};(c.x||c.y)&&g(c)}}c!==h.current&&(h.current=c)},[b,c,d,e]),(0,x.useEffect)(()=>{f&&g(null)},[f]),f}({disabled:!af,index:A,node:E,rect:D});return(0,x.useEffect)(()=>{Y&&ad.current.newIndex!==ab&&(ad.current.newIndex=ab),q!==ad.current.containerId&&(ad.current.containerId=q),p!==ad.current.items&&(ad.current.items=p)},[Y,ab,q,p]),(0,x.useEffect)(()=>{if(ac===ad.current.activeId)return;if(null!=ac&&null==ad.current.activeId){ad.current.activeId=ac;return}let a=setTimeout(()=>{ad.current.activeId=ac},50);return()=>clearTimeout(a)},[ac]),{active:H,activeIndex:r,attributes:N,data:B,rect:D,index:A,newIndex:ab,items:p,isOver:F,isSorting:Y,isDragging:R,listeners:Q,node:E,overIndex:v,over:S,setNodeRef:X,setActivatorNodeRef:U,setDroppableNodeRef:G,setDraggableNodeRef:O,transform:null!=ag?ag:aa,transition:ag||ae&&ad.current.newIndex===A?bu:(!$||T(J))&&o&&(Y||af)?V.Transition.toString({...o,property:bt}):void 0}}({id:a}),q={transform:V.Transform.toString(o),opacity:p?.4:1,zIndex:p?999:void 0},[r,s]=(0,x.useState)(!1),[t,u]=(0,x.useState)(c),v=()=>{let a=t.trim();a&&a!==c?g(a):u(c),s(!1)};return(0,w.jsxs)("div",{ref:n,style:q,className:`group flex min-w-0 items-center gap-1.5 rounded-md px-2 py-1 bg-black/[0.02] hover:bg-black/[0.04] dark:bg-white/[0.02] dark:hover:bg-white/[0.04] transition-colors ${p?"shadow-md ring-1 ring-primary/30":""}`,children:[(0,w.jsx)("button",{...k,...l,type:"button",className:"cursor-grab touch-none p-0.5 rounded text-text-muted hover:text-primary active:cursor-grabbing shrink-0",title:"Drag to reorder",children:(0,w.jsxs)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"currentColor",children:[(0,w.jsx)("circle",{cx:"9",cy:"4",r:"2"}),(0,w.jsx)("circle",{cx:"15",cy:"4",r:"2"}),(0,w.jsx)("circle",{cx:"9",cy:"12",r:"2"}),(0,w.jsx)("circle",{cx:"15",cy:"12",r:"2"}),(0,w.jsx)("circle",{cx:"9",cy:"20",r:"2"}),(0,w.jsx)("circle",{cx:"15",cy:"20",r:"2"})]})}),(0,w.jsx)("span",{className:"text-[10px] font-medium text-text-muted w-3 text-center shrink-0",children:b+1}),r?(0,w.jsx)("input",{autoFocus:!0,value:t,onChange:a=>u(a.target.value),onBlur:v,onKeyDown:a=>{"Enter"===a.key&&v(),"Escape"===a.key&&(u(c),s(!1))},className:"min-w-0 flex-1 rounded border border-primary/40 bg-white px-1.5 py-0.5 font-mono text-xs text-text-main outline-none dark:bg-black/20"}):(0,w.jsx)("div",{role:"button",tabIndex:0,className:"min-w-0 flex-1 cursor-text truncate rounded px-1.5 py-0.5 font-mono text-xs text-text-main hover:bg-black/5 dark:hover:bg-white/5 focus:outline-none focus-visible:ring-2 focus-visible:ring-primary/40",onClick:()=>s(!0),onKeyDown:a=>{("Enter"===a.key||" "===a.key)&&(a.preventDefault(),s(!0))},title:"Click to edit","aria-label":`Edit model ${c}`,children:c}),d&&d.n>=10&&(0,w.jsxs)("span",{className:"shrink-0 font-mono text-[10px] text-text-subtle",title:"Learned routing stats (all combos, last 14d)",children:["avg ",Math.round(d.avgScore)," \xb7 n=",d.n,d.bestCluster?` \xb7 best: ${d.bestCluster}`:""]}),(0,w.jsxs)("div",{className:"flex shrink-0 items-center gap-0.5",children:[(0,w.jsx)("button",{onClick:h,disabled:e,className:`p-0.5 rounded ${e?"text-text-muted/20 cursor-not-allowed":"text-text-muted hover:text-primary hover:bg-black/5 dark:hover:bg-white/5"}`,title:"Move up",children:(0,w.jsx)("span",{className:"material-symbols-outlined text-[12px]",children:"arrow_upward"})}),(0,w.jsx)("button",{onClick:i,disabled:f,className:`p-0.5 rounded ${f?"text-text-muted/20 cursor-not-allowed":"text-text-muted hover:text-primary hover:bg-black/5 dark:hover:bg-white/5"}`,title:"Move down",children:(0,w.jsx)("span",{className:"material-symbols-outlined text-[12px]",children:"arrow_downward"})})]}),(0,w.jsx)("button",{onClick:j,className:"p-0.5 hover:bg-red-500/10 rounded text-text-muted hover:text-red-500 transition-all",title:"Remove",children:(0,w.jsx)("span",{className:"material-symbols-outlined text-[12px]",children:"close"})})]})}function bV({isOpen:a,combo:b,onClose:c,onSave:d,activeProviders:e,modelCaps:f={},kindFilter:g=null,initialStrategy:h={}}){let[i,j]=(0,x.useState)(b?.name||""),[k,l]=(0,x.useState)(b?.models||[]),[m,n]=(0,x.useState)(h.fallbackStrategy||"fallback"),[o,p]=(0,x.useState)(!1!==h.capacityAutoSwitch),[q,r]=(0,x.useState)(!1),[s,t]=(0,x.useState)(!1),[u,v]=(0,x.useState)(""),[y,z]=(0,x.useState)({}),[A,B]=(0,x.useState)({}),C=function(){for(var a=arguments.length,b=Array(a),c=0;c<a;c++)b[c]=arguments[c];return(0,x.useMemo)(()=>[...b].filter(a=>null!=a),[...b])}(ad(aP,{activationConstraint:{distance:5}}),ad(aK,{coordinateGetter:by})),D=k.map((a,b)=>({uid:`item-${b}`,model:a})),E=a=>a.trim()?bH.test(a)?(v(""),!0):(v("Only letters, numbers, -, _ and . allowed"),!1):(v("Name is required"),!1),F=async()=>{if(E(i)){if(0===k.length)return void(0,bF.s)("Add at least one model to the combo");if("auto"===m&&k.length<2)return void(0,bF.s)("Auto strategy needs at least 2 models in the worker pool (plus a connected router account)");t(!0),await d({name:i.trim(),models:k,strategy:m,capacityAutoSwitch:"auto"===m||o}),t(!1)}},G=!!b;return(0,w.jsxs)(w.Fragment,{children:[(0,w.jsx)(bC.aF,{isOpen:a,onClose:c,title:G?"Edit Combo":"Create Combo",children:(0,w.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,w.jsxs)("p",{className:"text-xs text-text-muted leading-relaxed",children:["Clients call this combo by name as the ",(0,w.jsx)("code",{className:"text-primary",children:"model"})," field. Strategy controls how models in the list are used."]}),(0,w.jsxs)("div",{children:[(0,w.jsx)(bC.pd,{label:"Combo Name",value:i,onChange:a=>{let b=a.target.value;j(b),b?E(b):v("")},placeholder:"my-combo",error:u}),(0,w.jsx)("p",{className:"text-[10px] text-text-muted mt-0.5",children:"Only letters, numbers, -, _ and . allowed \xb7 use as model id in /v1"})]}),(0,w.jsxs)("div",{children:[(0,w.jsx)("label",{className:"text-sm font-medium mb-1.5 block",children:"Strategy"}),(0,w.jsx)(bC.l6,{options:bQ,value:m,onChange:a=>n(a.target.value),selectClassName:"py-2 text-sm"}),(0,w.jsx)("p",{className:"text-[11px] text-text-muted mt-1.5",children:bR[m]}),"auto"===m&&(0,w.jsxs)("p",{className:"text-[11px] text-amber-600 dark:text-amber-400 mt-1 flex items-center gap-1",children:[(0,w.jsx)("span",{className:"material-symbols-outlined text-[12px]",children:"info"}),"Auto requires a router model — select one on the combo card after saving."]}),"auto"!==m&&(0,w.jsxs)("label",{className:"mt-2 inline-flex items-center gap-2 text-xs text-text-muted cursor-pointer",children:[(0,w.jsx)("input",{type:"checkbox",className:"rounded border-border",checked:o,onChange:a=>p(a.target.checked)}),"Capacity auto-switch — prefer vision/PDF-capable models when the request needs them"]}),"auto"===m&&(0,w.jsx)("p",{className:"text-[11px] text-text-subtle mt-1.5 font-mono",children:"After create: set Router model on the combo card (must be a connected account). Workers = this model list (router excluded if listed)."}),"fusion"===m&&(0,w.jsx)("p",{className:"text-[11px] text-text-subtle mt-1.5 font-mono",children:"After create: optionally set Judge on the combo card (default = first model)."})]}),(0,w.jsxs)("div",{children:[(0,w.jsxs)("label",{className:"text-sm font-medium mb-1.5 block",children:["Models ","fallback"===m?"(order = priority)":"(pool)"]}),k.length>0&&bO(k,null,f)&&(0,w.jsxs)("p",{className:"text-[10px] text-amber-600 dark:text-amber-400 flex items-center gap-1 mb-1",children:[(0,w.jsx)("span",{className:"material-symbols-outlined text-[12px]",children:"warning"}),"No vision-capable model — image requests will have images stripped"]}),0===k.length?(0,w.jsxs)("div",{className:"text-center py-4 border border-dashed border-black/10 dark:border-white/10 rounded-lg bg-black/[0.01] dark:bg-white/[0.01]",children:[(0,w.jsx)("span",{className:"material-symbols-outlined text-text-muted text-xl mb-1",children:"layers"}),(0,w.jsx)("p",{className:"text-xs text-text-muted",children:"No models added yet"})]}):(0,w.jsx)(be,{sensors:C,collisionDetection:al,onDragEnd:a=>{let{active:b,over:c}=a;if(c&&b.id!==c.id){let a=D.findIndex(a=>a.uid===b.id),d=D.findIndex(a=>a.uid===c.id);-1!==a&&-1!==d&&l(b=>bi(b,a,d))}},modifiers:[bB,bA],children:(0,w.jsx)(bp,{items:D.map(a=>a.uid),strategy:bm,children:(0,w.jsx)("div",{className:"flex max-h-[55vh] min-w-0 flex-col gap-1 overflow-y-auto sm:max-h-[350px]",children:D.map(({uid:a,model:b},c)=>(0,w.jsx)(bU,{id:a,index:c,model:b,learned:A[b]||null,isFirst:0===c,isLast:c===D.length-1,onEdit:a=>{let b=[...k];b[c]=a,l(b)},onMoveUp:()=>(a=>{if(0===a)return;let b=[...k];[b[a-1],b[a]]=[b[a],b[a-1]],l(b)})(c),onMoveDown:()=>(a=>{if(a===k.length-1)return;let b=[...k];[b[a],b[a+1]]=[b[a+1],b[a]],l(b)})(c),onRemove:()=>{l(k.filter((a,b)=>b!==c))}},a))})})}),(0,w.jsxs)("button",{onClick:()=>r(!0),className:"w-full mt-2 py-2 border border-dashed border-black/10 dark:border-white/10 rounded-lg text-xs text-primary font-medium hover:text-primary hover:border-primary/50 transition-colors flex items-center justify-center gap-1",children:[(0,w.jsx)("span",{className:"material-symbols-outlined text-[16px]",children:"add"}),"Add Model"]})]}),(0,w.jsxs)("div",{className:"flex flex-col gap-2 pt-1 sm:flex-row",children:[(0,w.jsx)(bC.$n,{onClick:c,variant:"ghost",fullWidth:!0,size:"sm",children:"Cancel"}),(0,w.jsx)(bC.$n,{onClick:F,fullWidth:!0,size:"sm",disabled:!i.trim()||!!u||s,children:s?"Saving...":G?"Save":"Create"})]})]})}),(0,w.jsx)(bC.rq,{isOpen:q,onClose:()=>r(!1),onSelect:a=>{k.includes(a.value)||l([...k,a.value])},onDeselect:a=>{l(k.filter(b=>b!==a.value))},activeProviders:e,modelAliases:y,title:"Add Model to Combo",kindFilter:g,addedModelValues:k,closeOnSelect:!1})]})}function bW({capacityAdapter:a,onChange:b,activeProviders:c,getCaps:d}){return(0,w.jsx)(bC.Zp,{padding:"sm",children:(0,w.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,w.jsx)("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between",children:(0,w.jsxs)("div",{className:"min-w-0",children:[(0,w.jsx)("p",{className:"text-sm font-medium text-text-main",children:"Capacity Adapter"}),(0,w.jsx)("p",{className:"text-xs text-text-muted mt-0.5",children:"Request carries images or audio your model can't read? Auto-switches to a model in the pool below."}),(0,w.jsxs)("ul",{className:"mt-1.5 text-[11px] text-text-muted flex flex-col gap-0.5",children:[(0,w.jsxs)("li",{children:[(0,w.jsx)("span",{className:"font-medium text-text-main",children:"Vision"})," — images (png, jpg, webp, …)"]}),(0,w.jsxs)("li",{children:[(0,w.jsx)("span",{className:"font-medium text-text-main",children:"Audio"})," — audio input"]})]})]})}),(0,w.jsx)("div",{className:"flex flex-col gap-4",children:bI.map(e=>(0,w.jsx)(bX,{cap:e,entry:a[e.key]||bJ,onChange:c=>b({...a,[e.key]:c}),activeProviders:c,getCaps:d},e.key))})]})})}function bX({cap:a,entry:b,onChange:c,activeProviders:d,getCaps:e}){let[f,g]=(0,x.useState)(!1),{enabled:h,roundRobin:i,models:j}=b,k=a=>c({...b,...a}),l=(a,b)=>{let c=a+b;if(c<0||c>=j.length)return;let d=[...j];[d[a],d[c]]=[d[c],d[a]],k({models:d})};return(0,w.jsxs)("div",{className:`group rounded-lg border border-black/5 p-3 ${!h?"opacity-50":""} dark:border-white/10`,children:[(0,w.jsxs)("div",{className:"flex min-w-0 flex-col gap-3 sm:flex-row sm:items-center sm:justify-between",children:[(0,w.jsxs)("div",{className:"flex min-w-0 flex-1 items-start gap-2.5 sm:items-center",children:[(0,w.jsx)(bC.lM,{checked:h,onChange:a=>k({enabled:a}),"aria-label":`Enable ${a.label} adapter`}),(0,w.jsx)("div",{className:"size-8 rounded-lg bg-primary/10 flex items-center justify-center shrink-0",children:(0,w.jsx)("span",{className:"material-symbols-outlined text-primary text-[18px]",children:a.icon})}),(0,w.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,w.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,w.jsx)("code",{className:"font-mono text-sm font-medium text-text-main",children:a.label}),(0,w.jsxs)("span",{className:"text-[10px] text-text-muted",children:["— ",a.desc]})]}),(0,w.jsxs)("div",{className:"mt-1 flex min-w-0 flex-wrap items-center gap-1",children:[0===j.length?(0,w.jsx)("span",{className:"text-xs text-text-muted italic",children:"No models"}):j.slice(0,3).map((a,b)=>(0,w.jsxs)("code",{className:"group/chip inline-flex items-center gap-1 rounded bg-black/5 px-1.5 py-0.5 font-mono text-xs text-text-muted dark:bg-white/5",children:[(0,w.jsx)("span",{children:a}),(0,w.jsx)(bC.nh,{caps:e?.(a)}),(0,w.jsx)("button",{onClick:()=>l(b,-1),disabled:0===b,className:`leading-none opacity-0 group-hover/chip:opacity-100 ${0===b?"text-text-muted/20":"text-text-muted hover:text-primary"}`,children:(0,w.jsx)("span",{className:"material-symbols-outlined text-[12px]",children:"arrow_upward"})}),(0,w.jsx)("button",{onClick:()=>l(b,1),disabled:b===j.length-1,className:`leading-none opacity-0 group-hover/chip:opacity-100 ${b===j.length-1?"text-text-muted/20":"text-text-muted hover:text-primary"}`,children:(0,w.jsx)("span",{className:"material-symbols-outlined text-[12px]",children:"arrow_downward"})}),(0,w.jsx)("button",{onClick:()=>{let a;k({models:0===(a=j.filter((a,c)=>c!==b)).length?["oc/mimo-v2.5-free"]:a})},className:"leading-none opacity-0 group-hover/chip:opacity-100 text-text-muted hover:text-red-500",children:(0,w.jsx)("span",{className:"material-symbols-outlined text-[12px]",children:"close"})})]},`${a}-${b}`)),j.length>3&&(0,w.jsxs)("span",{className:"text-[10px] text-text-muted",children:["+",j.length-3," more"]})]})]})]}),(0,w.jsxs)("div",{className:"flex w-full flex-col gap-2 sm:w-auto sm:flex-row sm:items-center sm:gap-3 sm:shrink-0",children:[(0,w.jsxs)("label",{className:"flex items-center gap-1.5 text-xs text-text-muted cursor-pointer select-none",children:[(0,w.jsx)(bC.lM,{checked:i,onChange:a=>k({roundRobin:a}),disabled:!h,"aria-label":`Round-robin ${a.label} adapter`}),(0,w.jsx)("span",{children:"Round"})]}),(0,w.jsx)(bC.$n,{icon:"add",variant:"ghost",size:"sm",onClick:()=>g(!0),disabled:!h,title:`Add ${a.label} model`,children:"Add Model"})]})]}),f&&(0,w.jsx)(bC.rq,{isOpen:f,onClose:()=>g(!1),onSelect:a=>{j.includes(a.value)||k({models:[...j,a.value]})},activeProviders:d,title:`Add ${a.label} Model`,addedModelValues:j,capFilter:a.key,closeOnSelect:!1})]})}},16321:(a,b,c)=>{"use strict";c.r(b),c.d(b,{__next_app__:()=>x,handler:()=>z,routeModule:()=>y});var d=c(21635),e=c(86315),f=c(1020),g=c(61287),h={};for(let a in g)0>["default","__next_app__","routeModule","handler"].indexOf(a)&&(h[a]=()=>g[a]);c.d(b,h);let i=(0,d.p)(()=>Promise.resolve().then(c.bind(c,32059))),j=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,95547,23))),k=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,55091,23))),l=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,45270,23))),m=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,28193,23))),n=(0,d.p)(()=>Promise.resolve().then(c.bind(c,30508))),o=(0,d.p)(()=>Promise.resolve().then(c.bind(c,57097))),p=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,95547,23))),q=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,55091,23))),r=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,45270,23))),s=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,28193,23))),t=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,95547,23))),u=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,95547,23))),v={children:["",{children:["(dashboard)",{children:["dashboard",{children:["combos",{children:["__PAGE__",{},{page:[(0,d.p)(()=>Promise.resolve().then(c.bind(c,35447))),"/home/runner/work/switchboard-router/switchboard-router/src/app/(dashboard)/dashboard/combos/page.js"]}]},{"global-error":[u,"next/dist/client/components/builtin/global-error.js"]},[]]},{"global-error":[t,"next/dist/client/components/builtin/global-error.js"]},[]]},{layout:[n,"/home/runner/work/switchboard-router/switchboard-router/src/app/(dashboard)/layout.js"],error:[o,"/home/runner/work/switchboard-router/switchboard-router/src/app/(dashboard)/error.js"],"global-error":[p,"next/dist/client/components/builtin/global-error.js"],"not-found":[q,"next/dist/client/components/builtin/not-found.js"],forbidden:[r,"next/dist/client/components/builtin/forbidden.js"],unauthorized:[s,"next/dist/client/components/builtin/unauthorized.js"],metadata:{icon:[async a=>(await (0,d.p)(()=>Promise.resolve().then(c.bind(c,70440)))()).default(a)],apple:[],openGraph:[],twitter:[],manifest:"/manifest.webmanifest"}},[]]},{layout:[i,"/home/runner/work/switchboard-router/switchboard-router/src/app/layout.js"],"global-error":[j,"next/dist/client/components/builtin/global-error.js"],"not-found":[k,"next/dist/client/components/builtin/not-found.js"],forbidden:[l,"next/dist/client/components/builtin/forbidden.js"],unauthorized:[m,"next/dist/client/components/builtin/unauthorized.js"],metadata:{icon:[async a=>(await (0,d.p)(()=>Promise.resolve().then(c.bind(c,70440)))()).default(a)],apple:[],openGraph:[],twitter:[],manifest:"/manifest.webmanifest"}},[]]}.children,w=(0,e.H)({tree:v,page:"/(dashboard)/dashboard/combos/page",pathname:"/dashboard/combos",require:c,loadChunk:()=>Promise.resolve(),interopDefault:f.T}),x=w.__next_app__,y=w.routeModule,z=w.handler},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},21820:a=>{"use strict";a.exports=require("os")},28354:a=>{"use strict";a.exports=require("util")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},32289:(a,b,c)=>{Promise.resolve().then(c.bind(c,86051))},33873:a=>{"use strict";a.exports=require("path")},35447:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>g});var d=c(5735),e=c(90712),f=c(86051);async function g(){let a=await (0,e.By)();return(0,d.jsx)(f.default,{initialData:a})}},38522:a=>{"use strict";a.exports=require("node:zlib")},41025:a=>{"use strict";a.exports=require("next/dist/server/app-render/dynamic-access-async-storage.external.js")},46060:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external.js")},46293:a=>{"use strict";a.exports=require("sql.js")},50412:(a,b,c)=>{"use strict";c.d(b,{x0:()=>x.default,Ex:()=>j.default,$n:()=>d.default,nh:()=>C.default,Zp:()=>g.default,Qv:()=>i.CardSkeleton,CK:()=>o.default,uo:()=>h.ConfirmModal,G9:()=>t.default,wI:()=>w.default,vj:()=>v.default,vE:()=>u.default,pd:()=>e.default,Mh:()=>s.default,uR:()=>n.default,Nf:()=>p.default,aF:()=>h.default,rq:()=>m.default,gw:()=>y.default,LF:()=>l.default,Wx:()=>B.default,gM:()=>r.default,Iz:()=>z.default,l6:()=>f.default,lM:()=>k.default,m_:()=>A.default,jK:()=>q.default});var d=c(99070),e=c(83552),f=c(4770),g=c(17660),h=c(95145),i=c(74812);c(25919);var j=c(75171),k=c(95514);c(53845),c(19308),c(42196),c(32456),c(48781);var l=c(79346),m=c(83352),n=c(39645),o=c(62727),p=c(20084),q=c(87226);c(267),c(3236),c(11229);var r=c(91809);c(4481);var s=c(5291);c(56110);var t=c(51109),u=c(79488),v=c(43182),w=c(51585),x=c(67738),y=c(50585),z=c(91099),A=c(32971),B=c(11633),C=c(38930);c(5993),c(53838)},54603:(a,b,c)=>{"use strict";c.d(b,{Xj:()=>q});var d=c(96930),e=c(73024),f=c.n(e),g=c(76760),h=c.n(g),i=c(77598),j=c.n(i),k=c(49120);let l=h().join(k.nJ,"machine-id"),m=h().join(k.nJ,"auth"),n=h().join(m,"cli-secret"),o=null,p=null;async function q(a=null){let b=a||function(){if(process.env.MACHINE_ID_SALT)return process.env.MACHINE_ID_SALT;let a=h().join(m,"machine-id-salt");try{let b=f().readFileSync(a,"utf8").trim();if(b)return b}catch{}let b=j().randomBytes(32).toString("hex");try{f().mkdirSync(m,{recursive:!0,mode:448}),f().writeFileSync(a,b,{mode:384})}catch{}return b}(),c=function(){if(o)return o;try{if(o=f().readFileSync(l,"utf8").trim())return o}catch{}try{o=(0,d.machineIdSync)()}catch{o=j().randomUUID()}try{f().mkdirSync(k.nJ,{recursive:!0}),f().writeFileSync(l,o,{mode:384})}catch{}return o}(),e="switchboard-cli-auth"===b?function(){if(p)return p;try{if(p=f().readFileSync(n,"utf8").trim())return p}catch{}p=j().randomBytes(32).toString("hex");try{f().mkdirSync(m,{recursive:!0}),f().writeFileSync(n,p,{mode:384})}catch{}return p}():"";return j().createHash("sha256").update(c+b+e).digest("hex").substring(0,16)}},55511:a=>{"use strict";a.exports=require("crypto")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},68737:(a,b,c)=>{Promise.resolve().then(c.bind(c,15770))},71998:(a,b,c)=>{"use strict";c.d(b,{Fh:()=>d.Fh,L9:()=>d.L9,Mc:()=>d.Mc,OM:()=>d.OM,P:()=>d.getProviderConnections,Pc:()=>d.Pc,Qu:()=>d.Qu,S8:()=>d.S8,c:()=>d.c,createProviderConnection:()=>d.iE,fK:()=>d.fK,fp:()=>d.fp,fv:()=>d.fv,ho:()=>d.ho,i0:()=>d.i0,o5:()=>d.o5,op:()=>d.op,py:()=>d.py,rj:()=>d.updateProviderConnection,uL:()=>d.uL,uv:()=>d.uv});var d=c(15717)},73024:a=>{"use strict";a.exports=require("node:fs")},76760:a=>{"use strict";a.exports=require("node:path")},77598:a=>{"use strict";a.exports=require("node:crypto")},79646:a=>{"use strict";a.exports=require("child_process")},79868:a=>{"use strict";a.exports=require("node:sqlite")},81787:a=>{"use strict";a.exports=require("bun:sqlite")},86051:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/switchboard-router/switchboard-router/src/app/(dashboard)/dashboard/combos/CombosPageClient.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/switchboard-router/switchboard-router/src/app/(dashboard)/dashboard/combos/CombosPageClient.js","default")},87250:(a,b,c)=>{"use strict";c.d(b,{D:()=>e});var d=c(54603);async function e(){return await (0,d.Xj)()}},87550:a=>{"use strict";a.exports=require("better-sqlite3")},90712:(a,b,c)=>{"use strict";c.d(b,{By:()=>j,Tb:()=>k,e3:()=>i,tf:()=>h});var d=c(15717),e=c(71998),f=c(87250);function g(a){let{password:b,oidcClientSecret:c,oidcIssuerUrl:d,oidcClientId:e,oidcScopes:f,oidcLoginLabel:g,authMode:h,requireLogin:i,...j}=a||{};return{...j,requireLogin:!1,authMode:"none",oidcConfigured:!1,hasPassword:!1}}async function h(){let[a,b,c]=await Promise.all([(0,f.D)(),(0,d.PX)(),(0,d.mt)()]);return{machineId:a,keys:b||[],settings:g(c)}}async function i(){let[a,b]=await Promise.all([(0,d.getProviderConnections)(),(0,d.Fh)()]);return{connections:(a||[]).map(e.fp),nodes:b||[]}}async function j(){let[a,b,f]=await Promise.all([(0,d.Uv)(),(0,d.getProviderConnections)(),(0,d.mt)()]),h=(a||[]).filter(a=>!a.kind||"llm"===a.kind),i={};try{let{getProviderModelsCatalog:a}=await c.e(1425).then(c.bind(c,81425));i=await a()}catch{i={}}return{combos:h,connections:(b||[]).map(e.fp),settings:g(f),modelCaps:i}}async function k(){let[a,b]=await Promise.all([(0,d.mt)(),(0,f.D)()]);return{settings:g(a),machineId:b}}},94735:a=>{"use strict";a.exports=require("events")},96930:a=>{"use strict";a.exports=require("node-machine-id")}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,2430,9995,2712,3787,8976,5350,869,3986,5781,5717,194,7757,8834],()=>b(b.s=16321));module.exports=c})();