switchboard-router 0.9.9 → 0.9.11

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 (1440) hide show
  1. package/app/.next/static/Gpu8irTBATTeQnftVm3kL/_buildManifest.js +1 -0
  2. package/app/.next/static/chunks/1321-cdb7f44691303560.js +1 -0
  3. package/app/.next/static/chunks/1330-a43190104575ffe5.js +7 -0
  4. package/app/.next/static/chunks/3378-277dccfa153c2c15.js +73 -0
  5. package/app/.next/static/chunks/4707-8ea6ba647d0a40c9.js +1 -0
  6. package/app/.next/static/chunks/app/(dashboard)/dashboard/agent-library/page-fa24110e606e19b6.js +1 -0
  7. package/app/.next/static/chunks/app/(dashboard)/dashboard/basic-chat/page-7b00fb83303d1d11.js +1 -0
  8. package/app/.next/static/chunks/app/(dashboard)/dashboard/cli-tools/[toolId]/page-5743f3aa5bc106d4.js +1 -0
  9. package/app/.next/static/chunks/app/(dashboard)/dashboard/cli-tools/page-3f393136e502e1c0.js +1 -0
  10. package/app/.next/static/chunks/app/(dashboard)/dashboard/combos/page-aaae06cada500532.js +1 -0
  11. package/app/.next/static/chunks/app/(dashboard)/dashboard/combos/routing/page-ef491ec5a2ccecfb.js +1 -0
  12. package/app/.next/static/chunks/app/(dashboard)/dashboard/console-log/page-eefda4a8f32e649e.js +1 -0
  13. package/app/.next/static/chunks/app/(dashboard)/dashboard/endpoint/page-51f788f35bc5325f.js +16 -0
  14. package/app/.next/static/chunks/app/(dashboard)/dashboard/loading-c80ac975cf0f4842.js +1 -0
  15. package/app/.next/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page-e6fc3a5c25ce1247.js +59 -0
  16. package/app/.next/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/page-078eb5d8bfc3f4d1.js +1 -0
  17. package/app/.next/static/chunks/app/(dashboard)/dashboard/media-providers/combo/[id]/page-7dfde081613f35f3.js +4 -0
  18. package/app/.next/static/chunks/app/(dashboard)/dashboard/media-providers/page-1d63cfd88010b65f.js +1 -0
  19. package/app/.next/static/chunks/app/(dashboard)/dashboard/media-providers/web/page-281c93713fd1e960.js +1 -0
  20. package/app/.next/static/chunks/app/(dashboard)/dashboard/mitm/page-14c65f14d73bdfa7.js +1 -0
  21. package/app/.next/static/chunks/app/(dashboard)/dashboard/page-88fc3c530d1ce735.js +1 -0
  22. package/app/.next/static/chunks/app/(dashboard)/dashboard/profile/page-0e0047609d5634c9.js +1 -0
  23. package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-cb9292ca42b61d7d.js +10 -0
  24. package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/new/page-604dae851964c441.js +1 -0
  25. package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/page-e1c9f4ce8466e3ad.js +1 -0
  26. package/app/.next/static/chunks/app/(dashboard)/dashboard/pxpipe/page-6ca234b58c5e9feb.js +1 -0
  27. package/app/.next/static/chunks/app/(dashboard)/dashboard/quota/page-40db6db68022a0cc.js +1 -0
  28. package/app/.next/static/chunks/app/(dashboard)/dashboard/skills/[id]/page-ea262b6192d5a92c.js +1 -0
  29. package/app/.next/static/chunks/app/(dashboard)/dashboard/skills/page-36d107b083ad3a43.js +1 -0
  30. package/app/.next/static/chunks/app/(dashboard)/dashboard/token-saver/page-14e5599c720c645b.js +1 -0
  31. package/app/.next/static/chunks/app/(dashboard)/dashboard/translator/page-687e09f904b04cea.js +1 -0
  32. package/app/.next/static/chunks/app/(dashboard)/dashboard/usage/page-195bdcbea10136e1.js +1 -0
  33. package/app/.next/static/chunks/app/(dashboard)/layout-6dfa9d7deb27d461.js +1 -0
  34. package/app/.next/static/chunks/app/_global-error/page-d23122546cc60c2d.js +1 -0
  35. package/app/.next/static/chunks/app/api/agent-library/catalog/route-d23122546cc60c2d.js +1 -0
  36. package/app/.next/static/chunks/app/api/agent-library/doctor/route-d23122546cc60c2d.js +1 -0
  37. package/app/.next/static/chunks/app/api/agent-library/export/route-d23122546cc60c2d.js +1 -0
  38. package/app/.next/static/chunks/app/api/agent-library/mcp/route-d23122546cc60c2d.js +1 -0
  39. package/app/.next/static/chunks/app/api/agent-library/route-d23122546cc60c2d.js +1 -0
  40. package/app/.next/static/chunks/app/api/agent-library/skills/route-d23122546cc60c2d.js +1 -0
  41. package/app/.next/static/chunks/app/api/agent-library/sync/route-d23122546cc60c2d.js +1 -0
  42. package/app/.next/static/chunks/app/api/agent-library/updates/route-d23122546cc60c2d.js +1 -0
  43. package/app/.next/static/chunks/app/api/auth/status/route-d23122546cc60c2d.js +1 -0
  44. package/app/.next/static/chunks/app/api/cli-tools/aider-settings/route-d23122546cc60c2d.js +1 -0
  45. package/app/.next/static/chunks/app/api/cli-tools/all-statuses/route-d23122546cc60c2d.js +1 -0
  46. package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-d23122546cc60c2d.js +1 -0
  47. package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/route-d23122546cc60c2d.js +1 -0
  48. package/app/.next/static/chunks/app/api/cli-tools/claude-full-catalog/route-d23122546cc60c2d.js +1 -0
  49. package/app/.next/static/chunks/app/api/cli-tools/claude-picker-labels/route-d23122546cc60c2d.js +1 -0
  50. package/app/.next/static/chunks/app/api/cli-tools/claude-settings/route-d23122546cc60c2d.js +1 -0
  51. package/app/.next/static/chunks/app/api/cli-tools/cline-settings/route-d23122546cc60c2d.js +1 -0
  52. package/app/.next/static/chunks/app/api/cli-tools/codex-settings/route-d23122546cc60c2d.js +1 -0
  53. package/app/.next/static/chunks/app/api/cli-tools/cowork-mcp-registry/route-d23122546cc60c2d.js +1 -0
  54. package/app/.next/static/chunks/app/api/cli-tools/cowork-mcp-tools/route-d23122546cc60c2d.js +1 -0
  55. package/app/.next/static/chunks/app/api/cli-tools/cowork-settings/route-d23122546cc60c2d.js +1 -0
  56. package/app/.next/static/chunks/app/api/cli-tools/deepseek-tui-settings/route-d23122546cc60c2d.js +1 -0
  57. package/app/.next/static/chunks/app/api/cli-tools/droid-settings/route-d23122546cc60c2d.js +1 -0
  58. package/app/.next/static/chunks/app/api/cli-tools/gemini-cli-settings/route-d23122546cc60c2d.js +1 -0
  59. package/app/.next/static/chunks/app/api/cli-tools/grok-settings/route-d23122546cc60c2d.js +1 -0
  60. package/app/.next/static/chunks/app/api/cli-tools/hermes-settings/route-d23122546cc60c2d.js +1 -0
  61. package/app/.next/static/chunks/app/api/cli-tools/jcode-settings/route-d23122546cc60c2d.js +1 -0
  62. package/app/.next/static/chunks/app/api/cli-tools/kilo-settings/route-d23122546cc60c2d.js +1 -0
  63. package/app/.next/static/chunks/app/api/cli-tools/openclaw-settings/route-d23122546cc60c2d.js +1 -0
  64. package/app/.next/static/chunks/app/api/cli-tools/opencode-settings/route-d23122546cc60c2d.js +1 -0
  65. package/app/.next/static/chunks/app/api/cli-tools/pi-settings/route-d23122546cc60c2d.js +1 -0
  66. package/app/.next/static/chunks/app/api/cli-tools/picker-labels/route-d23122546cc60c2d.js +1 -0
  67. package/app/.next/static/chunks/app/api/combos/[id]/route-d23122546cc60c2d.js +1 -0
  68. package/app/.next/static/chunks/app/api/combos/route-d23122546cc60c2d.js +1 -0
  69. package/app/.next/static/chunks/app/api/headroom/extras/route-d23122546cc60c2d.js +1 -0
  70. package/app/.next/static/chunks/app/api/headroom/proxy/[...path]/route-d23122546cc60c2d.js +1 -0
  71. package/app/.next/static/chunks/app/api/headroom/restart/route-d23122546cc60c2d.js +1 -0
  72. package/app/.next/static/chunks/app/api/headroom/start/route-d23122546cc60c2d.js +1 -0
  73. package/app/.next/static/chunks/app/api/headroom/status/route-d23122546cc60c2d.js +1 -0
  74. package/app/.next/static/chunks/app/api/headroom/stop/route-d23122546cc60c2d.js +1 -0
  75. package/app/.next/static/chunks/app/api/health/route-d23122546cc60c2d.js +1 -0
  76. package/app/.next/static/chunks/app/api/keys/[id]/route-d23122546cc60c2d.js +1 -0
  77. package/app/.next/static/chunks/app/api/keys/route-d23122546cc60c2d.js +1 -0
  78. package/app/.next/static/chunks/app/api/locale/route-d23122546cc60c2d.js +1 -0
  79. package/app/.next/static/chunks/app/api/mcp/[plugin]/message/route-d23122546cc60c2d.js +1 -0
  80. package/app/.next/static/chunks/app/api/mcp/[plugin]/sse/route-d23122546cc60c2d.js +1 -0
  81. package/app/.next/static/chunks/app/api/media-providers/tts/deepgram/voices/route-d23122546cc60c2d.js +1 -0
  82. package/app/.next/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-d23122546cc60c2d.js +1 -0
  83. package/app/.next/static/chunks/app/api/media-providers/tts/inworld/voices/route-d23122546cc60c2d.js +1 -0
  84. package/app/.next/static/chunks/app/api/media-providers/tts/minimax/voices/route-d23122546cc60c2d.js +1 -0
  85. package/app/.next/static/chunks/app/api/media-providers/tts/voices/route-d23122546cc60c2d.js +1 -0
  86. package/app/.next/static/chunks/app/api/mgmt/v1/combos/[id]/route-d23122546cc60c2d.js +1 -0
  87. package/app/.next/static/chunks/app/api/mgmt/v1/combos/[id]/strategy/route-d23122546cc60c2d.js +1 -0
  88. package/app/.next/static/chunks/app/api/mgmt/v1/combos/route-d23122546cc60c2d.js +1 -0
  89. package/app/.next/static/chunks/app/api/mgmt/v1/health/route-d23122546cc60c2d.js +1 -0
  90. package/app/.next/static/chunks/app/api/mgmt/v1/metrics/route-d23122546cc60c2d.js +1 -0
  91. package/app/.next/static/chunks/app/api/mgmt/v1/providers/route-d23122546cc60c2d.js +1 -0
  92. package/app/.next/static/chunks/app/api/mgmt/v1/routing/route-d23122546cc60c2d.js +1 -0
  93. package/app/.next/static/chunks/app/api/mgmt/v1/usage/route-d23122546cc60c2d.js +1 -0
  94. package/app/.next/static/chunks/app/api/mgmt/v1/version/route-d23122546cc60c2d.js +1 -0
  95. package/app/.next/static/chunks/app/api/models/alias/route-d23122546cc60c2d.js +1 -0
  96. package/app/.next/static/chunks/app/api/models/availability/route-d23122546cc60c2d.js +1 -0
  97. package/app/.next/static/chunks/app/api/models/custom/route-d23122546cc60c2d.js +1 -0
  98. package/app/.next/static/chunks/app/api/models/disabled/route-d23122546cc60c2d.js +1 -0
  99. package/app/.next/static/chunks/app/api/models/route-d23122546cc60c2d.js +1 -0
  100. package/app/.next/static/chunks/app/api/models/test/route-d23122546cc60c2d.js +1 -0
  101. package/app/.next/static/chunks/app/api/oauth/[provider]/[action]/route-d23122546cc60c2d.js +1 -0
  102. package/app/.next/static/chunks/app/api/oauth/codex/bulk-import/route-d23122546cc60c2d.js +1 -0
  103. package/app/.next/static/chunks/app/api/oauth/codex/import-token/route-d23122546cc60c2d.js +1 -0
  104. package/app/.next/static/chunks/app/api/oauth/cursor/auto-import/route-d23122546cc60c2d.js +1 -0
  105. package/app/.next/static/chunks/app/api/oauth/cursor/import/route-d23122546cc60c2d.js +1 -0
  106. package/app/.next/static/chunks/app/api/oauth/gitlab/pat/route-d23122546cc60c2d.js +1 -0
  107. package/app/.next/static/chunks/app/api/oauth/iflow/cookie/route-d23122546cc60c2d.js +1 -0
  108. package/app/.next/static/chunks/app/api/oauth/kiro/api-key/route-d23122546cc60c2d.js +1 -0
  109. package/app/.next/static/chunks/app/api/oauth/kiro/auto-import/route-d23122546cc60c2d.js +1 -0
  110. package/app/.next/static/chunks/app/api/oauth/kiro/import/route-d23122546cc60c2d.js +1 -0
  111. package/app/.next/static/chunks/app/api/oauth/kiro/import-cli-proxy/route-d23122546cc60c2d.js +1 -0
  112. package/app/.next/static/chunks/app/api/oauth/kiro/social-authorize/route-d23122546cc60c2d.js +1 -0
  113. package/app/.next/static/chunks/app/api/oauth/kiro/social-exchange/route-d23122546cc60c2d.js +1 -0
  114. package/app/.next/static/chunks/app/api/pricing/defaults/route-d23122546cc60c2d.js +1 -0
  115. package/app/.next/static/chunks/app/api/pricing/route-d23122546cc60c2d.js +1 -0
  116. package/app/.next/static/chunks/app/api/provider-nodes/[id]/route-d23122546cc60c2d.js +1 -0
  117. package/app/.next/static/chunks/app/api/provider-nodes/route-d23122546cc60c2d.js +1 -0
  118. package/app/.next/static/chunks/app/api/provider-nodes/validate/route-d23122546cc60c2d.js +1 -0
  119. package/app/.next/static/chunks/app/api/providers/[id]/model-probes/batch/route-d23122546cc60c2d.js +1 -0
  120. package/app/.next/static/chunks/app/api/providers/[id]/model-probes/cache/route-d23122546cc60c2d.js +1 -0
  121. package/app/.next/static/chunks/app/api/providers/[id]/model-probes/prepare/route-d23122546cc60c2d.js +1 -0
  122. package/app/.next/static/chunks/app/api/providers/[id]/model-probes/remove-unavailable/route-d23122546cc60c2d.js +1 -0
  123. package/app/.next/static/chunks/app/api/providers/[id]/model-probes/route-d23122546cc60c2d.js +1 -0
  124. package/app/.next/static/chunks/app/api/providers/[id]/model-probes/verify/cancel/route-d23122546cc60c2d.js +1 -0
  125. package/app/.next/static/chunks/app/api/providers/[id]/model-probes/verify/start/route-d23122546cc60c2d.js +1 -0
  126. package/app/.next/static/chunks/app/api/providers/[id]/model-probes/verify/status/route-d23122546cc60c2d.js +1 -0
  127. package/app/.next/static/chunks/app/api/providers/[id]/models/route-d23122546cc60c2d.js +1 -0
  128. package/app/.next/static/chunks/app/api/providers/[id]/route-d23122546cc60c2d.js +1 -0
  129. package/app/.next/static/chunks/app/api/providers/[id]/test/route-d23122546cc60c2d.js +1 -0
  130. package/app/.next/static/chunks/app/api/providers/[id]/test-models/route-d23122546cc60c2d.js +1 -0
  131. package/app/.next/static/chunks/app/api/providers/client/route-d23122546cc60c2d.js +1 -0
  132. package/app/.next/static/chunks/app/api/providers/kilo/free-models/route-d23122546cc60c2d.js +1 -0
  133. package/app/.next/static/chunks/app/api/providers/route-d23122546cc60c2d.js +1 -0
  134. package/app/.next/static/chunks/app/api/providers/suggested-models/route-d23122546cc60c2d.js +1 -0
  135. package/app/.next/static/chunks/app/api/providers/test-batch/route-d23122546cc60c2d.js +1 -0
  136. package/app/.next/static/chunks/app/api/providers/validate/route-d23122546cc60c2d.js +1 -0
  137. package/app/.next/static/chunks/app/api/pxpipe/health/route-d23122546cc60c2d.js +1 -0
  138. package/app/.next/static/chunks/app/api/pxpipe/install/route-d23122546cc60c2d.js +1 -0
  139. package/app/.next/static/chunks/app/api/pxpipe/logs/route-d23122546cc60c2d.js +1 -0
  140. package/app/.next/static/chunks/app/api/pxpipe/restart/route-d23122546cc60c2d.js +1 -0
  141. package/app/.next/static/chunks/app/api/pxpipe/start/route-d23122546cc60c2d.js +1 -0
  142. package/app/.next/static/chunks/app/api/pxpipe/stats/route-d23122546cc60c2d.js +1 -0
  143. package/app/.next/static/chunks/app/api/pxpipe/status/route-d23122546cc60c2d.js +1 -0
  144. package/app/.next/static/chunks/app/api/pxpipe/stop/route-d23122546cc60c2d.js +1 -0
  145. package/app/.next/static/chunks/app/api/routing/feedback/route-d23122546cc60c2d.js +1 -0
  146. package/app/.next/static/chunks/app/api/routing/insights/route-d23122546cc60c2d.js +1 -0
  147. package/app/.next/static/chunks/app/api/routing/learn/route-d23122546cc60c2d.js +1 -0
  148. package/app/.next/static/chunks/app/api/routing/stats/route-d23122546cc60c2d.js +1 -0
  149. package/app/.next/static/chunks/app/api/routing/versions/promote/route-d23122546cc60c2d.js +1 -0
  150. package/app/.next/static/chunks/app/api/routing/versions/rollback/route-d23122546cc60c2d.js +1 -0
  151. package/app/.next/static/chunks/app/api/settings/database/route-d23122546cc60c2d.js +1 -0
  152. package/app/.next/static/chunks/app/api/settings/proxy-test/route-d23122546cc60c2d.js +1 -0
  153. package/app/.next/static/chunks/app/api/settings/route-d23122546cc60c2d.js +1 -0
  154. package/app/.next/static/chunks/app/api/shutdown/route-d23122546cc60c2d.js +1 -0
  155. package/app/.next/static/chunks/app/api/skills/[id]/route-d23122546cc60c2d.js +1 -0
  156. package/app/.next/static/chunks/app/api/tags/route-d23122546cc60c2d.js +1 -0
  157. package/app/.next/static/chunks/app/api/token-saver/vault-stats/route-d23122546cc60c2d.js +1 -0
  158. package/app/.next/static/chunks/app/api/translator/console-logs/route-d23122546cc60c2d.js +1 -0
  159. package/app/.next/static/chunks/app/api/translator/console-logs/stream/route-d23122546cc60c2d.js +1 -0
  160. package/app/.next/static/chunks/app/api/translator/load/route-d23122546cc60c2d.js +1 -0
  161. package/app/.next/static/chunks/app/api/translator/save/route-d23122546cc60c2d.js +1 -0
  162. package/app/.next/static/chunks/app/api/translator/send/route-d23122546cc60c2d.js +1 -0
  163. package/app/.next/static/chunks/app/api/translator/translate/route-d23122546cc60c2d.js +1 -0
  164. package/app/.next/static/chunks/app/api/usage/[connectionId]/codex-reset-credits/route-d23122546cc60c2d.js +1 -0
  165. package/app/.next/static/chunks/app/api/usage/[connectionId]/route-d23122546cc60c2d.js +1 -0
  166. package/app/.next/static/chunks/app/api/usage/chart/route-d23122546cc60c2d.js +1 -0
  167. package/app/.next/static/chunks/app/api/usage/history/route-d23122546cc60c2d.js +1 -0
  168. package/app/.next/static/chunks/app/api/usage/logs/route-d23122546cc60c2d.js +1 -0
  169. package/app/.next/static/chunks/app/api/usage/providers/route-d23122546cc60c2d.js +1 -0
  170. package/app/.next/static/chunks/app/api/usage/request-details/[id]/route-d23122546cc60c2d.js +1 -0
  171. package/app/.next/static/chunks/app/api/usage/request-details/route-d23122546cc60c2d.js +1 -0
  172. package/app/.next/static/chunks/app/api/usage/request-logs/route-d23122546cc60c2d.js +1 -0
  173. package/app/.next/static/chunks/app/api/usage/stats/route-d23122546cc60c2d.js +1 -0
  174. package/app/.next/static/chunks/app/api/usage/stream/route-d23122546cc60c2d.js +1 -0
  175. package/app/.next/static/chunks/app/api/v1/api/chat/route-d23122546cc60c2d.js +1 -0
  176. package/app/.next/static/chunks/app/api/v1/audio/speech/route-d23122546cc60c2d.js +1 -0
  177. package/app/.next/static/chunks/app/api/v1/audio/transcriptions/route-d23122546cc60c2d.js +1 -0
  178. package/app/.next/static/chunks/app/api/v1/audio/voices/route-d23122546cc60c2d.js +1 -0
  179. package/app/.next/static/chunks/app/api/v1/chat/completions/route-d23122546cc60c2d.js +1 -0
  180. package/app/.next/static/chunks/app/api/v1/embeddings/route-d23122546cc60c2d.js +1 -0
  181. package/app/.next/static/chunks/app/api/v1/images/generations/route-d23122546cc60c2d.js +1 -0
  182. package/app/.next/static/chunks/app/api/v1/messages/count_tokens/route-d23122546cc60c2d.js +1 -0
  183. package/app/.next/static/chunks/app/api/v1/messages/route-d23122546cc60c2d.js +1 -0
  184. package/app/.next/static/chunks/app/api/v1/models/[kind]/route-d23122546cc60c2d.js +1 -0
  185. package/app/.next/static/chunks/app/api/v1/models/info/route-d23122546cc60c2d.js +1 -0
  186. package/app/.next/static/chunks/app/api/v1/models/route-d23122546cc60c2d.js +1 -0
  187. package/app/.next/static/chunks/app/api/v1/responses/compact/route-d23122546cc60c2d.js +1 -0
  188. package/app/.next/static/chunks/app/api/v1/responses/route-d23122546cc60c2d.js +1 -0
  189. package/app/.next/static/chunks/app/api/v1/route-d23122546cc60c2d.js +1 -0
  190. package/app/.next/static/chunks/app/api/v1/search/route-d23122546cc60c2d.js +1 -0
  191. package/app/.next/static/chunks/app/api/v1/videos/[id]/route-d23122546cc60c2d.js +1 -0
  192. package/app/.next/static/chunks/app/api/v1/videos/edits/route-d23122546cc60c2d.js +1 -0
  193. package/app/.next/static/chunks/app/api/v1/videos/extensions/route-d23122546cc60c2d.js +1 -0
  194. package/app/.next/static/chunks/app/api/v1/videos/generations/route-d23122546cc60c2d.js +1 -0
  195. package/app/.next/static/chunks/app/api/v1/web/fetch/route-d23122546cc60c2d.js +1 -0
  196. package/app/.next/static/chunks/app/api/v1beta/models/[...path]/route-d23122546cc60c2d.js +1 -0
  197. package/app/.next/static/chunks/app/api/v1beta/models/route-d23122546cc60c2d.js +1 -0
  198. package/app/.next/static/chunks/app/api/version/route-d23122546cc60c2d.js +1 -0
  199. package/app/.next/static/chunks/app/api/version/shutdown/route-d23122546cc60c2d.js +1 -0
  200. package/app/.next/static/chunks/app/api/version/update/route-d23122546cc60c2d.js +1 -0
  201. package/app/.next/static/chunks/app/landing/page-b2d84fd7a580e623.js +1 -0
  202. package/app/.next/static/chunks/app/login/page-d23122546cc60c2d.js +1 -0
  203. package/app/.next/static/chunks/app/manifest.webmanifest/route-d23122546cc60c2d.js +1 -0
  204. package/app/.next/static/chunks/app/page-d23122546cc60c2d.js +1 -0
  205. package/app/.next/static/chunks/next/dist/client/components/builtin/app-error-d23122546cc60c2d.js +1 -0
  206. package/app/.next/static/chunks/next/dist/client/components/builtin/forbidden-d23122546cc60c2d.js +1 -0
  207. package/app/.next/static/chunks/next/dist/client/components/builtin/not-found-d23122546cc60c2d.js +1 -0
  208. package/app/.next/static/chunks/next/dist/client/components/builtin/unauthorized-d23122546cc60c2d.js +1 -0
  209. package/app/.next/static/css/ec805e65297c40c7.css +1 -0
  210. package/app/.next/static/media/catalog.fb7b1b70.json +1722 -0
  211. package/app/.next-cli-build/BUILD_ID +1 -1
  212. package/app/.next-cli-build/app-path-routes-manifest.json +22 -20
  213. package/app/.next-cli-build/build-manifest.json +2 -2
  214. package/app/.next-cli-build/prerender-manifest.json +3 -3
  215. package/app/.next-cli-build/routes-manifest.json +14 -0
  216. package/app/.next-cli-build/server/app/(dashboard)/dashboard/agent-library/page.js +1 -1
  217. package/app/.next-cli-build/server/app/(dashboard)/dashboard/agent-library/page.js.nft.json +1 -1
  218. package/app/.next-cli-build/server/app/(dashboard)/dashboard/agent-library/page_client-reference-manifest.js +1 -1
  219. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js +1 -1
  220. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js.nft.json +1 -1
  221. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
  222. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js +1 -1
  223. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js.nft.json +1 -1
  224. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page_client-reference-manifest.js +1 -1
  225. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js +1 -1
  226. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json +1 -1
  227. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  228. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js +1 -1
  229. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js.nft.json +1 -1
  230. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  231. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/routing/page.js +1 -1
  232. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/routing/page.js.nft.json +1 -1
  233. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/routing/page_client-reference-manifest.js +1 -1
  234. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js +1 -1
  235. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js.nft.json +1 -1
  236. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
  237. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js +3 -3
  238. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json +1 -1
  239. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  240. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js +14 -14
  241. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js.nft.json +1 -1
  242. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js +1 -1
  243. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js +1 -1
  244. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js.nft.json +1 -1
  245. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page_client-reference-manifest.js +1 -1
  246. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js +3 -3
  247. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js.nft.json +1 -1
  248. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page_client-reference-manifest.js +1 -1
  249. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/page.js +1 -1
  250. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/page.js.nft.json +1 -1
  251. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/page_client-reference-manifest.js +1 -1
  252. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js +1 -1
  253. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js.nft.json +1 -1
  254. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page_client-reference-manifest.js +1 -1
  255. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js +1 -1
  256. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js.nft.json +1 -1
  257. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
  258. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js +1 -1
  259. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
  260. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  261. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js +1 -1
  262. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js.nft.json +1 -1
  263. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  264. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js +2 -2
  265. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json +1 -1
  266. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  267. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js +1 -1
  268. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js.nft.json +1 -1
  269. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  270. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js +1 -1
  271. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js.nft.json +1 -1
  272. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  273. package/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page.js +1 -1
  274. package/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page.js.nft.json +1 -1
  275. package/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page_client-reference-manifest.js +1 -1
  276. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js +1 -1
  277. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js.nft.json +1 -1
  278. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
  279. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/[id]/page.js +1 -1
  280. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/[id]/page.js.nft.json +1 -1
  281. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/[id]/page_client-reference-manifest.js +1 -1
  282. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page.js +1 -1
  283. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page.js.nft.json +1 -1
  284. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page_client-reference-manifest.js +1 -1
  285. package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page.js +1 -1
  286. package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page.js.nft.json +1 -1
  287. package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page_client-reference-manifest.js +1 -1
  288. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js +1 -1
  289. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js.nft.json +1 -1
  290. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  291. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js +1 -1
  292. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js.nft.json +1 -1
  293. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  294. package/app/.next-cli-build/server/app/_global-error/page.js +2 -2
  295. package/app/.next-cli-build/server/app/_global-error/page.js.nft.json +1 -1
  296. package/app/.next-cli-build/server/app/_global-error/page_client-reference-manifest.js +1 -1
  297. package/app/.next-cli-build/server/app/_global-error.html +1 -1
  298. package/app/.next-cli-build/server/app/_global-error.rsc +1 -1
  299. package/app/.next-cli-build/server/app/_global-error.segments/_full.segment.rsc +1 -1
  300. package/app/.next-cli-build/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  301. package/app/.next-cli-build/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  302. package/app/.next-cli-build/server/app/_not-found/page.js +1 -1
  303. package/app/.next-cli-build/server/app/_not-found/page.js.nft.json +1 -1
  304. package/app/.next-cli-build/server/app/_not-found/page_client-reference-manifest.js +1 -1
  305. package/app/.next-cli-build/server/app/_not-found.html +1 -1
  306. package/app/.next-cli-build/server/app/_not-found.rsc +4 -4
  307. package/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +4 -4
  308. package/app/.next-cli-build/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +4 -4
  309. package/app/.next-cli-build/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  310. package/app/.next-cli-build/server/app/api/agent-library/catalog/route.js +1 -1
  311. package/app/.next-cli-build/server/app/api/agent-library/catalog/route.js.nft.json +1 -1
  312. package/app/.next-cli-build/server/app/api/agent-library/doctor/route.js +1 -1
  313. package/app/.next-cli-build/server/app/api/agent-library/doctor/route.js.nft.json +1 -1
  314. package/app/.next-cli-build/server/app/api/agent-library/export/route.js +1 -1
  315. package/app/.next-cli-build/server/app/api/agent-library/export/route.js.nft.json +1 -1
  316. package/app/.next-cli-build/server/app/api/agent-library/mcp/route.js +1 -1
  317. package/app/.next-cli-build/server/app/api/agent-library/mcp/route.js.nft.json +1 -1
  318. package/app/.next-cli-build/server/app/api/agent-library/route.js +1 -1
  319. package/app/.next-cli-build/server/app/api/agent-library/route.js.nft.json +1 -1
  320. package/app/.next-cli-build/server/app/api/agent-library/skills/route.js +1 -1
  321. package/app/.next-cli-build/server/app/api/agent-library/skills/route.js.nft.json +1 -1
  322. package/app/.next-cli-build/server/app/api/agent-library/sync/route.js +1 -1
  323. package/app/.next-cli-build/server/app/api/agent-library/sync/route.js.nft.json +1 -1
  324. package/app/.next-cli-build/server/app/api/agent-library/updates/route.js +1 -1
  325. package/app/.next-cli-build/server/app/api/agent-library/updates/route.js.nft.json +1 -1
  326. package/app/.next-cli-build/server/app/api/auth/status/route.js +1 -1
  327. package/app/.next-cli-build/server/app/api/auth/status/route.js.nft.json +1 -1
  328. package/app/.next-cli-build/server/app/api/cli-tools/aider-settings/route.js +2 -2
  329. package/app/.next-cli-build/server/app/api/cli-tools/aider-settings/route.js.nft.json +1 -1
  330. package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js +5 -5
  331. package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js.nft.json +1 -1
  332. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js +2 -2
  333. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js.nft.json +1 -1
  334. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js +1 -1
  335. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js.nft.json +1 -1
  336. package/app/.next-cli-build/server/app/api/cli-tools/claude-full-catalog/route.js +1 -1
  337. package/app/.next-cli-build/server/app/api/cli-tools/claude-full-catalog/route.js.nft.json +1 -1
  338. package/app/.next-cli-build/server/app/api/cli-tools/claude-picker-labels/route.js +1 -1
  339. package/app/.next-cli-build/server/app/api/cli-tools/claude-picker-labels/route.js.nft.json +1 -1
  340. package/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js +1 -1
  341. package/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js.nft.json +1 -1
  342. package/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js +2 -2
  343. package/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js.nft.json +1 -1
  344. package/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js +1 -1
  345. package/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js.nft.json +1 -1
  346. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js +2 -2
  347. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js.nft.json +1 -1
  348. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js +2 -2
  349. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js.nft.json +1 -1
  350. package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js +2 -2
  351. package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js.nft.json +1 -1
  352. package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js +2 -2
  353. package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js.nft.json +1 -1
  354. package/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js +2 -2
  355. package/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js.nft.json +1 -1
  356. package/app/.next-cli-build/server/app/api/cli-tools/gemini-cli-settings/route.js +3 -3
  357. package/app/.next-cli-build/server/app/api/cli-tools/gemini-cli-settings/route.js.nft.json +1 -1
  358. package/app/.next-cli-build/server/app/api/cli-tools/grok-settings/route.js +2 -2
  359. package/app/.next-cli-build/server/app/api/cli-tools/grok-settings/route.js.nft.json +1 -1
  360. package/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js +2 -2
  361. package/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js.nft.json +1 -1
  362. package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js +3 -3
  363. package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js.nft.json +1 -1
  364. package/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js +2 -2
  365. package/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js.nft.json +1 -1
  366. package/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js +2 -2
  367. package/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js.nft.json +1 -1
  368. package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js +2 -2
  369. package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js.nft.json +1 -1
  370. package/app/.next-cli-build/server/app/api/cli-tools/pi-settings/route.js +1 -1
  371. package/app/.next-cli-build/server/app/api/cli-tools/pi-settings/route.js.nft.json +1 -1
  372. package/app/.next-cli-build/server/app/api/cli-tools/picker-labels/route.js +1 -1
  373. package/app/.next-cli-build/server/app/api/cli-tools/picker-labels/route.js.nft.json +1 -1
  374. package/app/.next-cli-build/server/app/api/combos/[id]/route.js +1 -1
  375. package/app/.next-cli-build/server/app/api/combos/[id]/route.js.nft.json +1 -1
  376. package/app/.next-cli-build/server/app/api/combos/route.js +1 -1
  377. package/app/.next-cli-build/server/app/api/combos/route.js.nft.json +1 -1
  378. package/app/.next-cli-build/server/app/api/headroom/extras/route.js +1 -1
  379. package/app/.next-cli-build/server/app/api/headroom/extras/route.js.nft.json +1 -1
  380. package/app/.next-cli-build/server/app/api/headroom/proxy/[...path]/route.js +1 -1
  381. package/app/.next-cli-build/server/app/api/headroom/proxy/[...path]/route.js.nft.json +1 -1
  382. package/app/.next-cli-build/server/app/api/headroom/restart/route.js +1 -1
  383. package/app/.next-cli-build/server/app/api/headroom/restart/route.js.nft.json +1 -1
  384. package/app/.next-cli-build/server/app/api/headroom/start/route.js +1 -1
  385. package/app/.next-cli-build/server/app/api/headroom/start/route.js.nft.json +1 -1
  386. package/app/.next-cli-build/server/app/api/headroom/status/route.js +1 -1
  387. package/app/.next-cli-build/server/app/api/headroom/status/route.js.nft.json +1 -1
  388. package/app/.next-cli-build/server/app/api/headroom/stop/route.js +1 -1
  389. package/app/.next-cli-build/server/app/api/headroom/stop/route.js.nft.json +1 -1
  390. package/app/.next-cli-build/server/app/api/health/route.js +1 -1
  391. package/app/.next-cli-build/server/app/api/health/route.js.nft.json +1 -1
  392. package/app/.next-cli-build/server/app/api/keys/[id]/route.js +1 -1
  393. package/app/.next-cli-build/server/app/api/keys/[id]/route.js.nft.json +1 -1
  394. package/app/.next-cli-build/server/app/api/keys/route.js +1 -1
  395. package/app/.next-cli-build/server/app/api/keys/route.js.nft.json +1 -1
  396. package/app/.next-cli-build/server/app/api/locale/route.js +1 -1
  397. package/app/.next-cli-build/server/app/api/locale/route.js.nft.json +1 -1
  398. package/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js +2 -2
  399. package/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js.nft.json +1 -1
  400. package/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js +1 -1
  401. package/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js.nft.json +1 -1
  402. package/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js +1 -1
  403. package/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js.nft.json +1 -1
  404. package/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js +1 -1
  405. package/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js.nft.json +1 -1
  406. package/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js +1 -1
  407. package/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js.nft.json +1 -1
  408. package/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js +1 -1
  409. package/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js.nft.json +1 -1
  410. package/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js +1 -1
  411. package/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js.nft.json +1 -1
  412. package/app/.next-cli-build/server/app/api/mgmt/v1/combos/[id]/route.js +1 -1
  413. package/app/.next-cli-build/server/app/api/mgmt/v1/combos/[id]/route.js.nft.json +1 -1
  414. package/app/.next-cli-build/server/app/api/mgmt/v1/combos/[id]/strategy/route.js +1 -1
  415. package/app/.next-cli-build/server/app/api/mgmt/v1/combos/[id]/strategy/route.js.nft.json +1 -1
  416. package/app/.next-cli-build/server/app/api/mgmt/v1/combos/route.js +1 -1
  417. package/app/.next-cli-build/server/app/api/mgmt/v1/combos/route.js.nft.json +1 -1
  418. package/app/.next-cli-build/server/app/api/mgmt/v1/health/route.js +1 -1
  419. package/app/.next-cli-build/server/app/api/mgmt/v1/health/route.js.nft.json +1 -1
  420. package/app/.next-cli-build/server/app/api/mgmt/v1/metrics/route.js +2 -2
  421. package/app/.next-cli-build/server/app/api/mgmt/v1/metrics/route.js.nft.json +1 -1
  422. package/app/.next-cli-build/server/app/api/mgmt/v1/providers/route.js +1 -1
  423. package/app/.next-cli-build/server/app/api/mgmt/v1/providers/route.js.nft.json +1 -1
  424. package/app/.next-cli-build/server/app/api/mgmt/v1/routing/route.js +1 -1
  425. package/app/.next-cli-build/server/app/api/mgmt/v1/routing/route.js.nft.json +1 -1
  426. package/app/.next-cli-build/server/app/api/mgmt/v1/usage/route.js +1 -1
  427. package/app/.next-cli-build/server/app/api/mgmt/v1/usage/route.js.nft.json +1 -1
  428. package/app/.next-cli-build/server/app/api/mgmt/v1/version/route.js +1 -1
  429. package/app/.next-cli-build/server/app/api/mgmt/v1/version/route.js.nft.json +1 -1
  430. package/app/.next-cli-build/server/app/api/models/alias/route.js +1 -1
  431. package/app/.next-cli-build/server/app/api/models/alias/route.js.nft.json +1 -1
  432. package/app/.next-cli-build/server/app/api/models/availability/route.js +1 -1
  433. package/app/.next-cli-build/server/app/api/models/availability/route.js.nft.json +1 -1
  434. package/app/.next-cli-build/server/app/api/models/custom/route.js +1 -1
  435. package/app/.next-cli-build/server/app/api/models/custom/route.js.nft.json +1 -1
  436. package/app/.next-cli-build/server/app/api/models/disabled/route.js +1 -1
  437. package/app/.next-cli-build/server/app/api/models/disabled/route.js.nft.json +1 -1
  438. package/app/.next-cli-build/server/app/api/models/route.js +1 -1
  439. package/app/.next-cli-build/server/app/api/models/route.js.nft.json +1 -1
  440. package/app/.next-cli-build/server/app/api/models/test/route.js +1 -1
  441. package/app/.next-cli-build/server/app/api/models/test/route.js.nft.json +1 -1
  442. package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js +1 -1
  443. package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -1
  444. package/app/.next-cli-build/server/app/api/oauth/codex/bulk-import/route.js +1 -1
  445. package/app/.next-cli-build/server/app/api/oauth/codex/bulk-import/route.js.nft.json +1 -1
  446. package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js +1 -1
  447. package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js.nft.json +1 -1
  448. package/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js +2 -2
  449. package/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js.nft.json +1 -1
  450. package/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js +1 -1
  451. package/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js.nft.json +1 -1
  452. package/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js +1 -1
  453. package/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js.nft.json +1 -1
  454. package/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js +1 -1
  455. package/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js.nft.json +1 -1
  456. package/app/.next-cli-build/server/app/api/oauth/kiro/api-key/route.js +1 -1
  457. package/app/.next-cli-build/server/app/api/oauth/kiro/api-key/route.js.nft.json +1 -1
  458. package/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route.js +1 -1
  459. package/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route.js.nft.json +1 -1
  460. package/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js +1 -1
  461. package/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js.nft.json +1 -1
  462. package/app/.next-cli-build/server/app/api/oauth/kiro/import-cli-proxy/route.js +1 -1
  463. package/app/.next-cli-build/server/app/api/oauth/kiro/import-cli-proxy/route.js.nft.json +1 -1
  464. package/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js +1 -1
  465. package/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js.nft.json +1 -1
  466. package/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js +1 -1
  467. package/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js.nft.json +1 -1
  468. package/app/.next-cli-build/server/app/api/pricing/defaults/route.js +1 -0
  469. package/app/.next-cli-build/server/app/api/pricing/defaults/route.js.nft.json +1 -0
  470. package/app/.next-cli-build/server/app/api/pricing/defaults/route_client-reference-manifest.js +1 -0
  471. package/app/.next-cli-build/server/app/api/pricing/route.js +1 -1
  472. package/app/.next-cli-build/server/app/api/pricing/route.js.nft.json +1 -1
  473. package/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js +1 -1
  474. package/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js.nft.json +1 -1
  475. package/app/.next-cli-build/server/app/api/provider-nodes/route.js +1 -1
  476. package/app/.next-cli-build/server/app/api/provider-nodes/route.js.nft.json +1 -1
  477. package/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js +1 -1
  478. package/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js.nft.json +1 -1
  479. package/app/.next-cli-build/server/app/api/providers/[id]/model-probes/batch/route.js +1 -1
  480. package/app/.next-cli-build/server/app/api/providers/[id]/model-probes/batch/route.js.nft.json +1 -1
  481. package/app/.next-cli-build/server/app/api/providers/[id]/model-probes/cache/route.js +1 -1
  482. package/app/.next-cli-build/server/app/api/providers/[id]/model-probes/cache/route.js.nft.json +1 -1
  483. package/app/.next-cli-build/server/app/api/providers/[id]/model-probes/prepare/route.js +1 -1
  484. package/app/.next-cli-build/server/app/api/providers/[id]/model-probes/prepare/route.js.nft.json +1 -1
  485. package/app/.next-cli-build/server/app/api/providers/[id]/model-probes/remove-unavailable/route.js +1 -1
  486. package/app/.next-cli-build/server/app/api/providers/[id]/model-probes/remove-unavailable/route.js.nft.json +1 -1
  487. package/app/.next-cli-build/server/app/api/providers/[id]/model-probes/route.js +1 -1
  488. package/app/.next-cli-build/server/app/api/providers/[id]/model-probes/route.js.nft.json +1 -1
  489. package/app/.next-cli-build/server/app/api/providers/[id]/model-probes/verify/cancel/route.js +1 -1
  490. package/app/.next-cli-build/server/app/api/providers/[id]/model-probes/verify/cancel/route.js.nft.json +1 -1
  491. package/app/.next-cli-build/server/app/api/providers/[id]/model-probes/verify/start/route.js +1 -1
  492. package/app/.next-cli-build/server/app/api/providers/[id]/model-probes/verify/start/route.js.nft.json +1 -1
  493. package/app/.next-cli-build/server/app/api/providers/[id]/model-probes/verify/status/route.js +1 -1
  494. package/app/.next-cli-build/server/app/api/providers/[id]/model-probes/verify/status/route.js.nft.json +1 -1
  495. package/app/.next-cli-build/server/app/api/providers/[id]/models/route.js +1 -1
  496. package/app/.next-cli-build/server/app/api/providers/[id]/models/route.js.nft.json +1 -1
  497. package/app/.next-cli-build/server/app/api/providers/[id]/route.js +1 -1
  498. package/app/.next-cli-build/server/app/api/providers/[id]/route.js.nft.json +1 -1
  499. package/app/.next-cli-build/server/app/api/providers/[id]/test/route.js +1 -1
  500. package/app/.next-cli-build/server/app/api/providers/[id]/test/route.js.nft.json +1 -1
  501. package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js +1 -1
  502. package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js.nft.json +1 -1
  503. package/app/.next-cli-build/server/app/api/providers/client/route.js +1 -1
  504. package/app/.next-cli-build/server/app/api/providers/client/route.js.nft.json +1 -1
  505. package/app/.next-cli-build/server/app/api/providers/kilo/free-models/route.js +1 -1
  506. package/app/.next-cli-build/server/app/api/providers/kilo/free-models/route.js.nft.json +1 -1
  507. package/app/.next-cli-build/server/app/api/providers/route.js +1 -1
  508. package/app/.next-cli-build/server/app/api/providers/route.js.nft.json +1 -1
  509. package/app/.next-cli-build/server/app/api/providers/suggested-models/route.js +1 -1
  510. package/app/.next-cli-build/server/app/api/providers/suggested-models/route.js.nft.json +1 -1
  511. package/app/.next-cli-build/server/app/api/providers/test-batch/route.js +1 -1
  512. package/app/.next-cli-build/server/app/api/providers/test-batch/route.js.nft.json +1 -1
  513. package/app/.next-cli-build/server/app/api/providers/validate/route.js +1 -1
  514. package/app/.next-cli-build/server/app/api/providers/validate/route.js.nft.json +1 -1
  515. package/app/.next-cli-build/server/app/api/pxpipe/health/route.js +2 -2
  516. package/app/.next-cli-build/server/app/api/pxpipe/health/route.js.nft.json +1 -1
  517. package/app/.next-cli-build/server/app/api/pxpipe/install/route.js +2 -2
  518. package/app/.next-cli-build/server/app/api/pxpipe/install/route.js.nft.json +1 -1
  519. package/app/.next-cli-build/server/app/api/pxpipe/logs/route.js +2 -2
  520. package/app/.next-cli-build/server/app/api/pxpipe/logs/route.js.nft.json +1 -1
  521. package/app/.next-cli-build/server/app/api/pxpipe/restart/route.js +2 -2
  522. package/app/.next-cli-build/server/app/api/pxpipe/restart/route.js.nft.json +1 -1
  523. package/app/.next-cli-build/server/app/api/pxpipe/start/route.js +2 -2
  524. package/app/.next-cli-build/server/app/api/pxpipe/start/route.js.nft.json +1 -1
  525. package/app/.next-cli-build/server/app/api/pxpipe/stats/route.js +2 -2
  526. package/app/.next-cli-build/server/app/api/pxpipe/stats/route.js.nft.json +1 -1
  527. package/app/.next-cli-build/server/app/api/pxpipe/status/route.js +2 -2
  528. package/app/.next-cli-build/server/app/api/pxpipe/status/route.js.nft.json +1 -1
  529. package/app/.next-cli-build/server/app/api/pxpipe/stop/route.js +1 -1
  530. package/app/.next-cli-build/server/app/api/pxpipe/stop/route.js.nft.json +1 -1
  531. package/app/.next-cli-build/server/app/api/routing/feedback/route.js +1 -1
  532. package/app/.next-cli-build/server/app/api/routing/feedback/route.js.nft.json +1 -1
  533. package/app/.next-cli-build/server/app/api/routing/insights/route.js +1 -1
  534. package/app/.next-cli-build/server/app/api/routing/insights/route.js.nft.json +1 -1
  535. package/app/.next-cli-build/server/app/api/routing/learn/route.js +1 -1
  536. package/app/.next-cli-build/server/app/api/routing/learn/route.js.nft.json +1 -1
  537. package/app/.next-cli-build/server/app/api/routing/stats/route.js +1 -1
  538. package/app/.next-cli-build/server/app/api/routing/stats/route.js.nft.json +1 -1
  539. package/app/.next-cli-build/server/app/api/routing/versions/promote/route.js +1 -1
  540. package/app/.next-cli-build/server/app/api/routing/versions/promote/route.js.nft.json +1 -1
  541. package/app/.next-cli-build/server/app/api/routing/versions/rollback/route.js +1 -1
  542. package/app/.next-cli-build/server/app/api/routing/versions/rollback/route.js.nft.json +1 -1
  543. package/app/.next-cli-build/server/app/api/settings/database/route.js +1 -1
  544. package/app/.next-cli-build/server/app/api/settings/database/route.js.nft.json +1 -1
  545. package/app/.next-cli-build/server/app/api/settings/proxy-test/route.js +1 -1
  546. package/app/.next-cli-build/server/app/api/settings/proxy-test/route.js.nft.json +1 -1
  547. package/app/.next-cli-build/server/app/api/settings/route.js +1 -1
  548. package/app/.next-cli-build/server/app/api/settings/route.js.nft.json +1 -1
  549. package/app/.next-cli-build/server/app/api/shutdown/route.js +1 -1
  550. package/app/.next-cli-build/server/app/api/shutdown/route.js.nft.json +1 -1
  551. package/app/.next-cli-build/server/app/api/skills/[id]/route.js +1 -1
  552. package/app/.next-cli-build/server/app/api/skills/[id]/route.js.nft.json +1 -1
  553. package/app/.next-cli-build/server/app/api/tags/route.js +1 -1
  554. package/app/.next-cli-build/server/app/api/tags/route.js.nft.json +1 -1
  555. package/app/.next-cli-build/server/app/api/token-saver/vault-stats/route.js +1 -1
  556. package/app/.next-cli-build/server/app/api/token-saver/vault-stats/route.js.nft.json +1 -1
  557. package/app/.next-cli-build/server/app/api/translator/console-logs/route.js +1 -1
  558. package/app/.next-cli-build/server/app/api/translator/console-logs/route.js.nft.json +1 -1
  559. package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js +2 -2
  560. package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js.nft.json +1 -1
  561. package/app/.next-cli-build/server/app/api/translator/load/route.js +1 -1
  562. package/app/.next-cli-build/server/app/api/translator/load/route.js.nft.json +1 -1
  563. package/app/.next-cli-build/server/app/api/translator/save/route.js +1 -1
  564. package/app/.next-cli-build/server/app/api/translator/save/route.js.nft.json +1 -1
  565. package/app/.next-cli-build/server/app/api/translator/send/route.js +1 -1
  566. package/app/.next-cli-build/server/app/api/translator/send/route.js.nft.json +1 -1
  567. package/app/.next-cli-build/server/app/api/translator/translate/route.js +1 -1
  568. package/app/.next-cli-build/server/app/api/translator/translate/route.js.nft.json +1 -1
  569. package/app/.next-cli-build/server/app/api/usage/[connectionId]/codex-reset-credits/route.js +1 -1
  570. package/app/.next-cli-build/server/app/api/usage/[connectionId]/codex-reset-credits/route.js.nft.json +1 -1
  571. package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js +1 -1
  572. package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
  573. package/app/.next-cli-build/server/app/api/usage/chart/route.js +1 -1
  574. package/app/.next-cli-build/server/app/api/usage/chart/route.js.nft.json +1 -1
  575. package/app/.next-cli-build/server/app/api/usage/history/route.js +1 -1
  576. package/app/.next-cli-build/server/app/api/usage/history/route.js.nft.json +1 -1
  577. package/app/.next-cli-build/server/app/api/usage/logs/route.js +1 -1
  578. package/app/.next-cli-build/server/app/api/usage/logs/route.js.nft.json +1 -1
  579. package/app/.next-cli-build/server/app/api/usage/providers/route.js +1 -1
  580. package/app/.next-cli-build/server/app/api/usage/providers/route.js.nft.json +1 -1
  581. package/app/.next-cli-build/server/app/api/usage/request-details/[id]/route.js +1 -0
  582. package/app/.next-cli-build/server/app/api/usage/request-details/[id]/route.js.nft.json +1 -0
  583. package/app/.next-cli-build/server/app/api/usage/request-details/[id]/route_client-reference-manifest.js +1 -0
  584. package/app/.next-cli-build/server/app/api/usage/request-details/route.js +1 -1
  585. package/app/.next-cli-build/server/app/api/usage/request-details/route.js.nft.json +1 -1
  586. package/app/.next-cli-build/server/app/api/usage/request-logs/route.js +1 -1
  587. package/app/.next-cli-build/server/app/api/usage/request-logs/route.js.nft.json +1 -1
  588. package/app/.next-cli-build/server/app/api/usage/stats/route.js +1 -1
  589. package/app/.next-cli-build/server/app/api/usage/stats/route.js.nft.json +1 -1
  590. package/app/.next-cli-build/server/app/api/usage/stream/route.js +2 -6
  591. package/app/.next-cli-build/server/app/api/usage/stream/route.js.nft.json +1 -1
  592. package/app/.next-cli-build/server/app/api/v1/api/chat/route.js +2 -1
  593. package/app/.next-cli-build/server/app/api/v1/api/chat/route.js.nft.json +1 -1
  594. package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js +1 -1
  595. package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js.nft.json +1 -1
  596. package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js +1 -1
  597. package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js.nft.json +1 -1
  598. package/app/.next-cli-build/server/app/api/v1/audio/voices/route.js +1 -1
  599. package/app/.next-cli-build/server/app/api/v1/audio/voices/route.js.nft.json +1 -1
  600. package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js +1 -1
  601. package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
  602. package/app/.next-cli-build/server/app/api/v1/embeddings/route.js +1 -1
  603. package/app/.next-cli-build/server/app/api/v1/embeddings/route.js.nft.json +1 -1
  604. package/app/.next-cli-build/server/app/api/v1/images/generations/route.js +2 -2
  605. package/app/.next-cli-build/server/app/api/v1/images/generations/route.js.nft.json +1 -1
  606. package/app/.next-cli-build/server/app/api/v1/messages/count_tokens/route.js +1 -1
  607. package/app/.next-cli-build/server/app/api/v1/messages/count_tokens/route.js.nft.json +1 -1
  608. package/app/.next-cli-build/server/app/api/v1/messages/route.js +1 -1
  609. package/app/.next-cli-build/server/app/api/v1/messages/route.js.nft.json +1 -1
  610. package/app/.next-cli-build/server/app/api/v1/models/[kind]/route.js +1 -1
  611. package/app/.next-cli-build/server/app/api/v1/models/[kind]/route.js.nft.json +1 -1
  612. package/app/.next-cli-build/server/app/api/v1/models/info/route.js +1 -1
  613. package/app/.next-cli-build/server/app/api/v1/models/info/route.js.nft.json +1 -1
  614. package/app/.next-cli-build/server/app/api/v1/models/route.js +1 -1
  615. package/app/.next-cli-build/server/app/api/v1/models/route.js.nft.json +1 -1
  616. package/app/.next-cli-build/server/app/api/v1/responses/compact/route.js +1 -1
  617. package/app/.next-cli-build/server/app/api/v1/responses/compact/route.js.nft.json +1 -1
  618. package/app/.next-cli-build/server/app/api/v1/responses/route.js +1 -1
  619. package/app/.next-cli-build/server/app/api/v1/responses/route.js.nft.json +1 -1
  620. package/app/.next-cli-build/server/app/api/v1/route.js +1 -1
  621. package/app/.next-cli-build/server/app/api/v1/route.js.nft.json +1 -1
  622. package/app/.next-cli-build/server/app/api/v1/search/route.js +1 -1
  623. package/app/.next-cli-build/server/app/api/v1/search/route.js.nft.json +1 -1
  624. package/app/.next-cli-build/server/app/api/v1/videos/[id]/route.js +1 -1
  625. package/app/.next-cli-build/server/app/api/v1/videos/[id]/route.js.nft.json +1 -1
  626. package/app/.next-cli-build/server/app/api/v1/videos/edits/route.js +1 -1
  627. package/app/.next-cli-build/server/app/api/v1/videos/edits/route.js.nft.json +1 -1
  628. package/app/.next-cli-build/server/app/api/v1/videos/extensions/route.js +1 -1
  629. package/app/.next-cli-build/server/app/api/v1/videos/extensions/route.js.nft.json +1 -1
  630. package/app/.next-cli-build/server/app/api/v1/videos/generations/route.js +1 -1
  631. package/app/.next-cli-build/server/app/api/v1/videos/generations/route.js.nft.json +1 -1
  632. package/app/.next-cli-build/server/app/api/v1/web/fetch/route.js +1 -1
  633. package/app/.next-cli-build/server/app/api/v1/web/fetch/route.js.nft.json +1 -1
  634. package/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js +1 -1
  635. package/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
  636. package/app/.next-cli-build/server/app/api/v1beta/models/route.js +1 -1
  637. package/app/.next-cli-build/server/app/api/v1beta/models/route.js.nft.json +1 -1
  638. package/app/.next-cli-build/server/app/api/version/route.js +1 -1
  639. package/app/.next-cli-build/server/app/api/version/route.js.nft.json +1 -1
  640. package/app/.next-cli-build/server/app/api/version/shutdown/route.js +1 -1
  641. package/app/.next-cli-build/server/app/api/version/shutdown/route.js.nft.json +1 -1
  642. package/app/.next-cli-build/server/app/api/version/update/route.js +1 -1
  643. package/app/.next-cli-build/server/app/api/version/update/route.js.nft.json +1 -1
  644. package/app/.next-cli-build/server/app/callback/page.js +1 -1
  645. package/app/.next-cli-build/server/app/callback/page.js.nft.json +1 -1
  646. package/app/.next-cli-build/server/app/callback/page_client-reference-manifest.js +1 -1
  647. package/app/.next-cli-build/server/app/callback.html +1 -1
  648. package/app/.next-cli-build/server/app/callback.rsc +4 -4
  649. package/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +4 -4
  650. package/app/.next-cli-build/server/app/callback.segments/_tree.segment.rsc +2 -2
  651. package/app/.next-cli-build/server/app/callback.segments/callback/__PAGE__.segment.rsc +4 -4
  652. package/app/.next-cli-build/server/app/dashboard/settings/pricing/page.js +1 -1
  653. package/app/.next-cli-build/server/app/dashboard/settings/pricing/page.js.nft.json +1 -1
  654. package/app/.next-cli-build/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  655. package/app/.next-cli-build/server/app/dashboard/settings/pricing.html +1 -1
  656. package/app/.next-cli-build/server/app/dashboard/settings/pricing.rsc +5 -5
  657. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +5 -5
  658. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +2 -2
  659. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +5 -5
  660. package/app/.next-cli-build/server/app/favicon.ico/route.js +1 -1
  661. package/app/.next-cli-build/server/app/favicon.ico/route.js.nft.json +1 -1
  662. package/app/.next-cli-build/server/app/index.html +1 -1
  663. package/app/.next-cli-build/server/app/index.rsc +4 -4
  664. package/app/.next-cli-build/server/app/index.segments/__PAGE__.segment.rsc +4 -4
  665. package/app/.next-cli-build/server/app/index.segments/_full.segment.rsc +4 -4
  666. package/app/.next-cli-build/server/app/index.segments/_tree.segment.rsc +2 -2
  667. package/app/.next-cli-build/server/app/landing/page.js +1 -1
  668. package/app/.next-cli-build/server/app/landing/page.js.nft.json +1 -1
  669. package/app/.next-cli-build/server/app/landing/page_client-reference-manifest.js +1 -1
  670. package/app/.next-cli-build/server/app/landing.html +1 -1
  671. package/app/.next-cli-build/server/app/landing.rsc +5 -5
  672. package/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +5 -5
  673. package/app/.next-cli-build/server/app/landing.segments/_tree.segment.rsc +2 -2
  674. package/app/.next-cli-build/server/app/landing.segments/landing/__PAGE__.segment.rsc +5 -5
  675. package/app/.next-cli-build/server/app/login/page.js +1 -1
  676. package/app/.next-cli-build/server/app/login/page.js.nft.json +1 -1
  677. package/app/.next-cli-build/server/app/login/page_client-reference-manifest.js +1 -1
  678. package/app/.next-cli-build/server/app/login.html +1 -1
  679. package/app/.next-cli-build/server/app/login.rsc +4 -4
  680. package/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +4 -4
  681. package/app/.next-cli-build/server/app/login.segments/_tree.segment.rsc +2 -2
  682. package/app/.next-cli-build/server/app/login.segments/login/__PAGE__.segment.rsc +4 -4
  683. package/app/.next-cli-build/server/app/manifest.webmanifest/route.js +2 -2
  684. package/app/.next-cli-build/server/app/manifest.webmanifest/route.js.nft.json +1 -1
  685. package/app/.next-cli-build/server/app/page.js +1 -1
  686. package/app/.next-cli-build/server/app/page.js.nft.json +1 -1
  687. package/app/.next-cli-build/server/app/page_client-reference-manifest.js +1 -1
  688. package/app/.next-cli-build/server/app-paths-manifest.json +22 -20
  689. package/app/.next-cli-build/server/chunks/1158.js +1 -0
  690. package/app/.next-cli-build/server/chunks/1274.js +1 -0
  691. package/app/.next-cli-build/server/chunks/1294.js +3 -3
  692. package/app/.next-cli-build/server/chunks/1351.js +1 -0
  693. package/app/.next-cli-build/server/chunks/1792.js +2 -0
  694. package/app/.next-cli-build/server/chunks/1837.js +1 -0
  695. package/app/.next-cli-build/server/chunks/1937.js +1 -1
  696. package/app/.next-cli-build/server/chunks/1998.js +1 -1
  697. package/app/.next-cli-build/server/chunks/2142.js +121 -0
  698. package/app/.next-cli-build/server/chunks/2524.js +1 -1
  699. package/app/.next-cli-build/server/chunks/27.js +8 -0
  700. package/app/.next-cli-build/server/chunks/3423.js +1 -0
  701. package/app/.next-cli-build/server/chunks/3446.js +1 -1
  702. package/app/.next-cli-build/server/chunks/3593.js +2 -2
  703. package/app/.next-cli-build/server/chunks/369.js +10 -10
  704. package/app/.next-cli-build/server/chunks/3735.js +2 -2
  705. package/app/.next-cli-build/server/chunks/3787.js +1 -1
  706. package/app/.next-cli-build/server/chunks/403.js +1 -0
  707. package/app/.next-cli-build/server/chunks/4176.js +1 -1
  708. package/app/.next-cli-build/server/chunks/4330.js +7 -0
  709. package/app/.next-cli-build/server/chunks/4646.js +1 -1
  710. package/app/.next-cli-build/server/chunks/4675.js +246 -0
  711. package/app/.next-cli-build/server/chunks/4739.js +2 -2
  712. package/app/.next-cli-build/server/chunks/4780.js +2 -2
  713. package/app/.next-cli-build/server/chunks/4803.js +1 -1
  714. package/app/.next-cli-build/server/chunks/507.js +2 -2
  715. package/app/.next-cli-build/server/chunks/5115.js +1 -0
  716. package/app/.next-cli-build/server/chunks/5139.js +1 -0
  717. package/app/.next-cli-build/server/chunks/519.js +1 -0
  718. package/app/.next-cli-build/server/chunks/5195.js +1 -0
  719. package/app/.next-cli-build/server/chunks/5258.js +2 -2
  720. package/app/.next-cli-build/server/chunks/5565.js +73 -0
  721. package/app/.next-cli-build/server/chunks/5717.js +9 -14
  722. package/app/.next-cli-build/server/chunks/5774.js +1 -0
  723. package/app/.next-cli-build/server/chunks/5781.js +2 -2
  724. package/app/.next-cli-build/server/chunks/5888.js +1 -1
  725. package/app/.next-cli-build/server/chunks/5920.js +2 -2
  726. package/app/.next-cli-build/server/chunks/6194.js +1 -0
  727. package/app/.next-cli-build/server/chunks/6252.js +1 -1
  728. package/app/.next-cli-build/server/chunks/6305.js +2 -0
  729. package/app/.next-cli-build/server/chunks/6328.js +1 -1
  730. package/app/.next-cli-build/server/chunks/6406.js +3 -1
  731. package/app/.next-cli-build/server/chunks/646.js +15 -15
  732. package/app/.next-cli-build/server/chunks/6492.js +1 -1
  733. package/app/.next-cli-build/server/chunks/6757.js +38 -0
  734. package/app/.next-cli-build/server/chunks/698.js +2 -2
  735. package/app/.next-cli-build/server/chunks/7133.js +1 -0
  736. package/app/.next-cli-build/server/chunks/7454.js +1 -1
  737. package/app/.next-cli-build/server/chunks/7662.js +1 -1
  738. package/app/.next-cli-build/server/chunks/7757.js +1 -1
  739. package/app/.next-cli-build/server/chunks/7774.js +3 -3
  740. package/app/.next-cli-build/server/chunks/7880.js +2 -0
  741. package/app/.next-cli-build/server/chunks/7965.js +2 -2
  742. package/app/.next-cli-build/server/chunks/8027.js +63 -0
  743. package/app/.next-cli-build/server/chunks/8062.js +1 -1
  744. package/app/.next-cli-build/server/chunks/8400.js +13 -11
  745. package/app/.next-cli-build/server/chunks/8469.js +1 -1
  746. package/app/.next-cli-build/server/chunks/8520.js +2 -2
  747. package/app/.next-cli-build/server/chunks/869.js +1 -1
  748. package/app/.next-cli-build/server/chunks/8775.js +1 -1
  749. package/app/.next-cli-build/server/chunks/8789.js +1 -1
  750. package/app/.next-cli-build/server/chunks/8942.js +2 -2
  751. package/app/.next-cli-build/server/chunks/8976.js +1 -1
  752. package/app/.next-cli-build/server/chunks/8998.js +59 -49
  753. package/app/.next-cli-build/server/chunks/9059.js +1 -0
  754. package/app/.next-cli-build/server/chunks/9091.js +3 -3
  755. package/app/.next-cli-build/server/chunks/9261.js +29 -18
  756. package/app/.next-cli-build/server/chunks/9264.js +2 -2
  757. package/app/.next-cli-build/server/chunks/9421.js +2 -2
  758. package/app/.next-cli-build/server/chunks/static/media/catalog.fb7b1b70.json +1722 -0
  759. package/app/.next-cli-build/server/middleware-build-manifest.js +1 -1
  760. package/app/.next-cli-build/server/middleware.js +12 -17
  761. package/app/.next-cli-build/server/pages/404.html +1 -1
  762. package/app/.next-cli-build/server/pages/500.html +1 -1
  763. package/app/.next-cli-build/server/server-reference-manifest.js +1 -1
  764. package/app/.next-cli-build/server/server-reference-manifest.json +1 -1
  765. package/app/.next-cli-build/static/Gpu8irTBATTeQnftVm3kL/_buildManifest.js +1 -0
  766. package/app/.next-cli-build/static/chunks/1321-cdb7f44691303560.js +1 -0
  767. package/app/.next-cli-build/static/chunks/1330-a43190104575ffe5.js +7 -0
  768. package/app/.next-cli-build/static/chunks/3378-277dccfa153c2c15.js +73 -0
  769. package/app/.next-cli-build/static/chunks/4707-8ea6ba647d0a40c9.js +1 -0
  770. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/agent-library/page-fa24110e606e19b6.js +1 -0
  771. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/basic-chat/page-7b00fb83303d1d11.js +1 -0
  772. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/cli-tools/[toolId]/page-5743f3aa5bc106d4.js +1 -0
  773. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/cli-tools/page-3f393136e502e1c0.js +1 -0
  774. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/combos/page-aaae06cada500532.js +1 -0
  775. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/combos/routing/page-ef491ec5a2ccecfb.js +1 -0
  776. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/console-log/page-eefda4a8f32e649e.js +1 -0
  777. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/endpoint/page-51f788f35bc5325f.js +16 -0
  778. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/loading-c80ac975cf0f4842.js +1 -0
  779. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page-e6fc3a5c25ce1247.js +59 -0
  780. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/page-078eb5d8bfc3f4d1.js +1 -0
  781. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/combo/[id]/page-7dfde081613f35f3.js +4 -0
  782. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/page-1d63cfd88010b65f.js +1 -0
  783. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/web/page-281c93713fd1e960.js +1 -0
  784. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/mitm/page-14c65f14d73bdfa7.js +1 -0
  785. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/page-88fc3c530d1ce735.js +1 -0
  786. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/profile/page-0e0047609d5634c9.js +1 -0
  787. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-cb9292ca42b61d7d.js +10 -0
  788. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/new/page-604dae851964c441.js +1 -0
  789. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/page-e1c9f4ce8466e3ad.js +1 -0
  790. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/pxpipe/page-6ca234b58c5e9feb.js +1 -0
  791. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/quota/page-40db6db68022a0cc.js +1 -0
  792. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/skills/[id]/page-ea262b6192d5a92c.js +1 -0
  793. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/skills/page-36d107b083ad3a43.js +1 -0
  794. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/token-saver/page-14e5599c720c645b.js +1 -0
  795. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/translator/page-687e09f904b04cea.js +1 -0
  796. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/usage/page-195bdcbea10136e1.js +1 -0
  797. package/app/.next-cli-build/static/chunks/app/(dashboard)/layout-6dfa9d7deb27d461.js +1 -0
  798. package/app/.next-cli-build/static/chunks/app/_global-error/page-d23122546cc60c2d.js +1 -0
  799. package/app/.next-cli-build/static/chunks/app/api/agent-library/catalog/route-d23122546cc60c2d.js +1 -0
  800. package/app/.next-cli-build/static/chunks/app/api/agent-library/doctor/route-d23122546cc60c2d.js +1 -0
  801. package/app/.next-cli-build/static/chunks/app/api/agent-library/export/route-d23122546cc60c2d.js +1 -0
  802. package/app/.next-cli-build/static/chunks/app/api/agent-library/mcp/route-d23122546cc60c2d.js +1 -0
  803. package/app/.next-cli-build/static/chunks/app/api/agent-library/route-d23122546cc60c2d.js +1 -0
  804. package/app/.next-cli-build/static/chunks/app/api/agent-library/skills/route-d23122546cc60c2d.js +1 -0
  805. package/app/.next-cli-build/static/chunks/app/api/agent-library/sync/route-d23122546cc60c2d.js +1 -0
  806. package/app/.next-cli-build/static/chunks/app/api/agent-library/updates/route-d23122546cc60c2d.js +1 -0
  807. package/app/.next-cli-build/static/chunks/app/api/auth/status/route-d23122546cc60c2d.js +1 -0
  808. package/app/.next-cli-build/static/chunks/app/api/cli-tools/aider-settings/route-d23122546cc60c2d.js +1 -0
  809. package/app/.next-cli-build/static/chunks/app/api/cli-tools/all-statuses/route-d23122546cc60c2d.js +1 -0
  810. package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-d23122546cc60c2d.js +1 -0
  811. package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/route-d23122546cc60c2d.js +1 -0
  812. package/app/.next-cli-build/static/chunks/app/api/cli-tools/claude-full-catalog/route-d23122546cc60c2d.js +1 -0
  813. package/app/.next-cli-build/static/chunks/app/api/cli-tools/claude-picker-labels/route-d23122546cc60c2d.js +1 -0
  814. package/app/.next-cli-build/static/chunks/app/api/cli-tools/claude-settings/route-d23122546cc60c2d.js +1 -0
  815. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cline-settings/route-d23122546cc60c2d.js +1 -0
  816. package/app/.next-cli-build/static/chunks/app/api/cli-tools/codex-settings/route-d23122546cc60c2d.js +1 -0
  817. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-registry/route-d23122546cc60c2d.js +1 -0
  818. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-tools/route-d23122546cc60c2d.js +1 -0
  819. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-settings/route-d23122546cc60c2d.js +1 -0
  820. package/app/.next-cli-build/static/chunks/app/api/cli-tools/deepseek-tui-settings/route-d23122546cc60c2d.js +1 -0
  821. package/app/.next-cli-build/static/chunks/app/api/cli-tools/droid-settings/route-d23122546cc60c2d.js +1 -0
  822. package/app/.next-cli-build/static/chunks/app/api/cli-tools/gemini-cli-settings/route-d23122546cc60c2d.js +1 -0
  823. package/app/.next-cli-build/static/chunks/app/api/cli-tools/grok-settings/route-d23122546cc60c2d.js +1 -0
  824. package/app/.next-cli-build/static/chunks/app/api/cli-tools/hermes-settings/route-d23122546cc60c2d.js +1 -0
  825. package/app/.next-cli-build/static/chunks/app/api/cli-tools/jcode-settings/route-d23122546cc60c2d.js +1 -0
  826. package/app/.next-cli-build/static/chunks/app/api/cli-tools/kilo-settings/route-d23122546cc60c2d.js +1 -0
  827. package/app/.next-cli-build/static/chunks/app/api/cli-tools/openclaw-settings/route-d23122546cc60c2d.js +1 -0
  828. package/app/.next-cli-build/static/chunks/app/api/cli-tools/opencode-settings/route-d23122546cc60c2d.js +1 -0
  829. package/app/.next-cli-build/static/chunks/app/api/cli-tools/pi-settings/route-d23122546cc60c2d.js +1 -0
  830. package/app/.next-cli-build/static/chunks/app/api/cli-tools/picker-labels/route-d23122546cc60c2d.js +1 -0
  831. package/app/.next-cli-build/static/chunks/app/api/combos/[id]/route-d23122546cc60c2d.js +1 -0
  832. package/app/.next-cli-build/static/chunks/app/api/combos/route-d23122546cc60c2d.js +1 -0
  833. package/app/.next-cli-build/static/chunks/app/api/headroom/extras/route-d23122546cc60c2d.js +1 -0
  834. package/app/.next-cli-build/static/chunks/app/api/headroom/proxy/[...path]/route-d23122546cc60c2d.js +1 -0
  835. package/app/.next-cli-build/static/chunks/app/api/headroom/restart/route-d23122546cc60c2d.js +1 -0
  836. package/app/.next-cli-build/static/chunks/app/api/headroom/start/route-d23122546cc60c2d.js +1 -0
  837. package/app/.next-cli-build/static/chunks/app/api/headroom/status/route-d23122546cc60c2d.js +1 -0
  838. package/app/.next-cli-build/static/chunks/app/api/headroom/stop/route-d23122546cc60c2d.js +1 -0
  839. package/app/.next-cli-build/static/chunks/app/api/health/route-d23122546cc60c2d.js +1 -0
  840. package/app/.next-cli-build/static/chunks/app/api/keys/[id]/route-d23122546cc60c2d.js +1 -0
  841. package/app/.next-cli-build/static/chunks/app/api/keys/route-d23122546cc60c2d.js +1 -0
  842. package/app/.next-cli-build/static/chunks/app/api/locale/route-d23122546cc60c2d.js +1 -0
  843. package/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/message/route-d23122546cc60c2d.js +1 -0
  844. package/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/sse/route-d23122546cc60c2d.js +1 -0
  845. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/deepgram/voices/route-d23122546cc60c2d.js +1 -0
  846. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-d23122546cc60c2d.js +1 -0
  847. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/inworld/voices/route-d23122546cc60c2d.js +1 -0
  848. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/minimax/voices/route-d23122546cc60c2d.js +1 -0
  849. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/voices/route-d23122546cc60c2d.js +1 -0
  850. package/app/.next-cli-build/static/chunks/app/api/mgmt/v1/combos/[id]/route-d23122546cc60c2d.js +1 -0
  851. package/app/.next-cli-build/static/chunks/app/api/mgmt/v1/combos/[id]/strategy/route-d23122546cc60c2d.js +1 -0
  852. package/app/.next-cli-build/static/chunks/app/api/mgmt/v1/combos/route-d23122546cc60c2d.js +1 -0
  853. package/app/.next-cli-build/static/chunks/app/api/mgmt/v1/health/route-d23122546cc60c2d.js +1 -0
  854. package/app/.next-cli-build/static/chunks/app/api/mgmt/v1/metrics/route-d23122546cc60c2d.js +1 -0
  855. package/app/.next-cli-build/static/chunks/app/api/mgmt/v1/providers/route-d23122546cc60c2d.js +1 -0
  856. package/app/.next-cli-build/static/chunks/app/api/mgmt/v1/routing/route-d23122546cc60c2d.js +1 -0
  857. package/app/.next-cli-build/static/chunks/app/api/mgmt/v1/usage/route-d23122546cc60c2d.js +1 -0
  858. package/app/.next-cli-build/static/chunks/app/api/mgmt/v1/version/route-d23122546cc60c2d.js +1 -0
  859. package/app/.next-cli-build/static/chunks/app/api/models/alias/route-d23122546cc60c2d.js +1 -0
  860. package/app/.next-cli-build/static/chunks/app/api/models/availability/route-d23122546cc60c2d.js +1 -0
  861. package/app/.next-cli-build/static/chunks/app/api/models/custom/route-d23122546cc60c2d.js +1 -0
  862. package/app/.next-cli-build/static/chunks/app/api/models/disabled/route-d23122546cc60c2d.js +1 -0
  863. package/app/.next-cli-build/static/chunks/app/api/models/route-d23122546cc60c2d.js +1 -0
  864. package/app/.next-cli-build/static/chunks/app/api/models/test/route-d23122546cc60c2d.js +1 -0
  865. package/app/.next-cli-build/static/chunks/app/api/oauth/[provider]/[action]/route-d23122546cc60c2d.js +1 -0
  866. package/app/.next-cli-build/static/chunks/app/api/oauth/codex/bulk-import/route-d23122546cc60c2d.js +1 -0
  867. package/app/.next-cli-build/static/chunks/app/api/oauth/codex/import-token/route-d23122546cc60c2d.js +1 -0
  868. package/app/.next-cli-build/static/chunks/app/api/oauth/cursor/auto-import/route-d23122546cc60c2d.js +1 -0
  869. package/app/.next-cli-build/static/chunks/app/api/oauth/cursor/import/route-d23122546cc60c2d.js +1 -0
  870. package/app/.next-cli-build/static/chunks/app/api/oauth/gitlab/pat/route-d23122546cc60c2d.js +1 -0
  871. package/app/.next-cli-build/static/chunks/app/api/oauth/iflow/cookie/route-d23122546cc60c2d.js +1 -0
  872. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/api-key/route-d23122546cc60c2d.js +1 -0
  873. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/auto-import/route-d23122546cc60c2d.js +1 -0
  874. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import/route-d23122546cc60c2d.js +1 -0
  875. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import-cli-proxy/route-d23122546cc60c2d.js +1 -0
  876. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-authorize/route-d23122546cc60c2d.js +1 -0
  877. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-exchange/route-d23122546cc60c2d.js +1 -0
  878. package/app/.next-cli-build/static/chunks/app/api/pricing/defaults/route-d23122546cc60c2d.js +1 -0
  879. package/app/.next-cli-build/static/chunks/app/api/pricing/route-d23122546cc60c2d.js +1 -0
  880. package/app/.next-cli-build/static/chunks/app/api/provider-nodes/[id]/route-d23122546cc60c2d.js +1 -0
  881. package/app/.next-cli-build/static/chunks/app/api/provider-nodes/route-d23122546cc60c2d.js +1 -0
  882. package/app/.next-cli-build/static/chunks/app/api/provider-nodes/validate/route-d23122546cc60c2d.js +1 -0
  883. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/model-probes/batch/route-d23122546cc60c2d.js +1 -0
  884. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/model-probes/cache/route-d23122546cc60c2d.js +1 -0
  885. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/model-probes/prepare/route-d23122546cc60c2d.js +1 -0
  886. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/model-probes/remove-unavailable/route-d23122546cc60c2d.js +1 -0
  887. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/model-probes/route-d23122546cc60c2d.js +1 -0
  888. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/model-probes/verify/cancel/route-d23122546cc60c2d.js +1 -0
  889. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/model-probes/verify/start/route-d23122546cc60c2d.js +1 -0
  890. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/model-probes/verify/status/route-d23122546cc60c2d.js +1 -0
  891. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/models/route-d23122546cc60c2d.js +1 -0
  892. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/route-d23122546cc60c2d.js +1 -0
  893. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/test/route-d23122546cc60c2d.js +1 -0
  894. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/test-models/route-d23122546cc60c2d.js +1 -0
  895. package/app/.next-cli-build/static/chunks/app/api/providers/client/route-d23122546cc60c2d.js +1 -0
  896. package/app/.next-cli-build/static/chunks/app/api/providers/kilo/free-models/route-d23122546cc60c2d.js +1 -0
  897. package/app/.next-cli-build/static/chunks/app/api/providers/route-d23122546cc60c2d.js +1 -0
  898. package/app/.next-cli-build/static/chunks/app/api/providers/suggested-models/route-d23122546cc60c2d.js +1 -0
  899. package/app/.next-cli-build/static/chunks/app/api/providers/test-batch/route-d23122546cc60c2d.js +1 -0
  900. package/app/.next-cli-build/static/chunks/app/api/providers/validate/route-d23122546cc60c2d.js +1 -0
  901. package/app/.next-cli-build/static/chunks/app/api/pxpipe/health/route-d23122546cc60c2d.js +1 -0
  902. package/app/.next-cli-build/static/chunks/app/api/pxpipe/install/route-d23122546cc60c2d.js +1 -0
  903. package/app/.next-cli-build/static/chunks/app/api/pxpipe/logs/route-d23122546cc60c2d.js +1 -0
  904. package/app/.next-cli-build/static/chunks/app/api/pxpipe/restart/route-d23122546cc60c2d.js +1 -0
  905. package/app/.next-cli-build/static/chunks/app/api/pxpipe/start/route-d23122546cc60c2d.js +1 -0
  906. package/app/.next-cli-build/static/chunks/app/api/pxpipe/stats/route-d23122546cc60c2d.js +1 -0
  907. package/app/.next-cli-build/static/chunks/app/api/pxpipe/status/route-d23122546cc60c2d.js +1 -0
  908. package/app/.next-cli-build/static/chunks/app/api/pxpipe/stop/route-d23122546cc60c2d.js +1 -0
  909. package/app/.next-cli-build/static/chunks/app/api/routing/feedback/route-d23122546cc60c2d.js +1 -0
  910. package/app/.next-cli-build/static/chunks/app/api/routing/insights/route-d23122546cc60c2d.js +1 -0
  911. package/app/.next-cli-build/static/chunks/app/api/routing/learn/route-d23122546cc60c2d.js +1 -0
  912. package/app/.next-cli-build/static/chunks/app/api/routing/stats/route-d23122546cc60c2d.js +1 -0
  913. package/app/.next-cli-build/static/chunks/app/api/routing/versions/promote/route-d23122546cc60c2d.js +1 -0
  914. package/app/.next-cli-build/static/chunks/app/api/routing/versions/rollback/route-d23122546cc60c2d.js +1 -0
  915. package/app/.next-cli-build/static/chunks/app/api/settings/database/route-d23122546cc60c2d.js +1 -0
  916. package/app/.next-cli-build/static/chunks/app/api/settings/proxy-test/route-d23122546cc60c2d.js +1 -0
  917. package/app/.next-cli-build/static/chunks/app/api/settings/route-d23122546cc60c2d.js +1 -0
  918. package/app/.next-cli-build/static/chunks/app/api/shutdown/route-d23122546cc60c2d.js +1 -0
  919. package/app/.next-cli-build/static/chunks/app/api/skills/[id]/route-d23122546cc60c2d.js +1 -0
  920. package/app/.next-cli-build/static/chunks/app/api/tags/route-d23122546cc60c2d.js +1 -0
  921. package/app/.next-cli-build/static/chunks/app/api/token-saver/vault-stats/route-d23122546cc60c2d.js +1 -0
  922. package/app/.next-cli-build/static/chunks/app/api/translator/console-logs/route-d23122546cc60c2d.js +1 -0
  923. package/app/.next-cli-build/static/chunks/app/api/translator/console-logs/stream/route-d23122546cc60c2d.js +1 -0
  924. package/app/.next-cli-build/static/chunks/app/api/translator/load/route-d23122546cc60c2d.js +1 -0
  925. package/app/.next-cli-build/static/chunks/app/api/translator/save/route-d23122546cc60c2d.js +1 -0
  926. package/app/.next-cli-build/static/chunks/app/api/translator/send/route-d23122546cc60c2d.js +1 -0
  927. package/app/.next-cli-build/static/chunks/app/api/translator/translate/route-d23122546cc60c2d.js +1 -0
  928. package/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/codex-reset-credits/route-d23122546cc60c2d.js +1 -0
  929. package/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/route-d23122546cc60c2d.js +1 -0
  930. package/app/.next-cli-build/static/chunks/app/api/usage/chart/route-d23122546cc60c2d.js +1 -0
  931. package/app/.next-cli-build/static/chunks/app/api/usage/history/route-d23122546cc60c2d.js +1 -0
  932. package/app/.next-cli-build/static/chunks/app/api/usage/logs/route-d23122546cc60c2d.js +1 -0
  933. package/app/.next-cli-build/static/chunks/app/api/usage/providers/route-d23122546cc60c2d.js +1 -0
  934. package/app/.next-cli-build/static/chunks/app/api/usage/request-details/[id]/route-d23122546cc60c2d.js +1 -0
  935. package/app/.next-cli-build/static/chunks/app/api/usage/request-details/route-d23122546cc60c2d.js +1 -0
  936. package/app/.next-cli-build/static/chunks/app/api/usage/request-logs/route-d23122546cc60c2d.js +1 -0
  937. package/app/.next-cli-build/static/chunks/app/api/usage/stats/route-d23122546cc60c2d.js +1 -0
  938. package/app/.next-cli-build/static/chunks/app/api/usage/stream/route-d23122546cc60c2d.js +1 -0
  939. package/app/.next-cli-build/static/chunks/app/api/v1/api/chat/route-d23122546cc60c2d.js +1 -0
  940. package/app/.next-cli-build/static/chunks/app/api/v1/audio/speech/route-d23122546cc60c2d.js +1 -0
  941. package/app/.next-cli-build/static/chunks/app/api/v1/audio/transcriptions/route-d23122546cc60c2d.js +1 -0
  942. package/app/.next-cli-build/static/chunks/app/api/v1/audio/voices/route-d23122546cc60c2d.js +1 -0
  943. package/app/.next-cli-build/static/chunks/app/api/v1/chat/completions/route-d23122546cc60c2d.js +1 -0
  944. package/app/.next-cli-build/static/chunks/app/api/v1/embeddings/route-d23122546cc60c2d.js +1 -0
  945. package/app/.next-cli-build/static/chunks/app/api/v1/images/generations/route-d23122546cc60c2d.js +1 -0
  946. package/app/.next-cli-build/static/chunks/app/api/v1/messages/count_tokens/route-d23122546cc60c2d.js +1 -0
  947. package/app/.next-cli-build/static/chunks/app/api/v1/messages/route-d23122546cc60c2d.js +1 -0
  948. package/app/.next-cli-build/static/chunks/app/api/v1/models/[kind]/route-d23122546cc60c2d.js +1 -0
  949. package/app/.next-cli-build/static/chunks/app/api/v1/models/info/route-d23122546cc60c2d.js +1 -0
  950. package/app/.next-cli-build/static/chunks/app/api/v1/models/route-d23122546cc60c2d.js +1 -0
  951. package/app/.next-cli-build/static/chunks/app/api/v1/responses/compact/route-d23122546cc60c2d.js +1 -0
  952. package/app/.next-cli-build/static/chunks/app/api/v1/responses/route-d23122546cc60c2d.js +1 -0
  953. package/app/.next-cli-build/static/chunks/app/api/v1/route-d23122546cc60c2d.js +1 -0
  954. package/app/.next-cli-build/static/chunks/app/api/v1/search/route-d23122546cc60c2d.js +1 -0
  955. package/app/.next-cli-build/static/chunks/app/api/v1/videos/[id]/route-d23122546cc60c2d.js +1 -0
  956. package/app/.next-cli-build/static/chunks/app/api/v1/videos/edits/route-d23122546cc60c2d.js +1 -0
  957. package/app/.next-cli-build/static/chunks/app/api/v1/videos/extensions/route-d23122546cc60c2d.js +1 -0
  958. package/app/.next-cli-build/static/chunks/app/api/v1/videos/generations/route-d23122546cc60c2d.js +1 -0
  959. package/app/.next-cli-build/static/chunks/app/api/v1/web/fetch/route-d23122546cc60c2d.js +1 -0
  960. package/app/.next-cli-build/static/chunks/app/api/v1beta/models/[...path]/route-d23122546cc60c2d.js +1 -0
  961. package/app/.next-cli-build/static/chunks/app/api/v1beta/models/route-d23122546cc60c2d.js +1 -0
  962. package/app/.next-cli-build/static/chunks/app/api/version/route-d23122546cc60c2d.js +1 -0
  963. package/app/.next-cli-build/static/chunks/app/api/version/shutdown/route-d23122546cc60c2d.js +1 -0
  964. package/app/.next-cli-build/static/chunks/app/api/version/update/route-d23122546cc60c2d.js +1 -0
  965. package/app/.next-cli-build/static/chunks/app/landing/page-b2d84fd7a580e623.js +1 -0
  966. package/app/.next-cli-build/static/chunks/app/login/page-d23122546cc60c2d.js +1 -0
  967. package/app/.next-cli-build/static/chunks/app/manifest.webmanifest/route-d23122546cc60c2d.js +1 -0
  968. package/app/.next-cli-build/static/chunks/app/page-d23122546cc60c2d.js +1 -0
  969. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/app-error-d23122546cc60c2d.js +1 -0
  970. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/forbidden-d23122546cc60c2d.js +1 -0
  971. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/not-found-d23122546cc60c2d.js +1 -0
  972. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/unauthorized-d23122546cc60c2d.js +1 -0
  973. package/app/.next-cli-build/static/css/ec805e65297c40c7.css +1 -0
  974. package/app/.next-cli-build/static/media/catalog.fb7b1b70.json +1722 -0
  975. package/app/open-sse/identity/tls/bin/darwin/arm64/switchboard-claude-tls +0 -0
  976. package/app/open-sse/identity/tls/bin/darwin/x64/switchboard-claude-tls +0 -0
  977. package/app/open-sse/identity/tls/bin/linux/arm64/switchboard-claude-tls +0 -0
  978. package/app/open-sse/identity/tls/bin/linux/x64/switchboard-claude-tls +0 -0
  979. package/app/open-sse/identity/tls/bin/win32/arm64/switchboard-claude-tls.exe +0 -0
  980. package/app/open-sse/identity/tls/bin/win32/x64/switchboard-claude-tls.exe +0 -0
  981. package/app/open-sse/providers/generated/catalog.json +143 -131
  982. package/app/package.json +1 -1
  983. package/app/public/i18n/literals/zh-CN.json +17 -1
  984. package/app/src/lib/db/adapters/betterSqliteAdapter.js +2 -2
  985. package/app/src/lib/db/adapters/sqljsAdapter.js +5 -4
  986. package/app/src/lib/updater/updater.js +7 -2
  987. package/app/src/mitm/server.js +34 -34
  988. package/cli.js +67 -24
  989. package/hooks/trayRuntime.js +72 -17
  990. package/package.json +1 -1
  991. package/src/cli/api/client.js +9 -3
  992. package/src/cli/cliOptions.js +1 -1
  993. package/src/cli/commands/xaiVideo.js +31 -8
  994. package/src/cli/interfaceMenu.js +12 -1
  995. package/src/cli/processManager.js +47 -1
  996. package/src/cli/serverStatus.js +32 -9
  997. package/src/cli/terminalUI.js +5 -2
  998. package/src/cli/tray/autostart.js +20 -4
  999. package/src/cli/tray/tray.js +4 -1
  1000. package/src/cli/tray/trayWin.js +23 -3
  1001. package/src/cli/utils/display.js +20 -0
  1002. package/app/.next/static/GP6N1FvEOE4uYUrdrCir5/_buildManifest.js +0 -1
  1003. package/app/.next/static/chunks/1321-f49cd2f61cbf7361.js +0 -1
  1004. package/app/.next/static/chunks/1330-56405eca78b12fee.js +0 -7
  1005. package/app/.next/static/chunks/3531-eb5d385c954b3765.js +0 -68
  1006. package/app/.next/static/chunks/4707-1ec0b2edbb07f455.js +0 -1
  1007. package/app/.next/static/chunks/app/(dashboard)/dashboard/agent-library/page-40f3ca16440f8e17.js +0 -1
  1008. package/app/.next/static/chunks/app/(dashboard)/dashboard/basic-chat/page-0e1d54e59ac767a1.js +0 -1
  1009. package/app/.next/static/chunks/app/(dashboard)/dashboard/cli-tools/[toolId]/page-af0d85c06970853b.js +0 -1
  1010. package/app/.next/static/chunks/app/(dashboard)/dashboard/cli-tools/page-2cfc2352bc42d9b8.js +0 -1
  1011. package/app/.next/static/chunks/app/(dashboard)/dashboard/combos/page-62cd36ee99eaa630.js +0 -1
  1012. package/app/.next/static/chunks/app/(dashboard)/dashboard/combos/routing/page-0b02e9a2f1cc6e43.js +0 -1
  1013. package/app/.next/static/chunks/app/(dashboard)/dashboard/console-log/page-ded6ec41e583b3b3.js +0 -1
  1014. package/app/.next/static/chunks/app/(dashboard)/dashboard/endpoint/page-ca47b09e6ed6ae7b.js +0 -16
  1015. package/app/.next/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page-78d098f14f8cff05.js +0 -59
  1016. package/app/.next/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/page-d1654fba27199492.js +0 -1
  1017. package/app/.next/static/chunks/app/(dashboard)/dashboard/media-providers/combo/[id]/page-ff13a39fb7744f5e.js +0 -4
  1018. package/app/.next/static/chunks/app/(dashboard)/dashboard/media-providers/page-919f3eec8dfc9b6e.js +0 -1
  1019. package/app/.next/static/chunks/app/(dashboard)/dashboard/media-providers/web/page-db19da41661d630b.js +0 -1
  1020. package/app/.next/static/chunks/app/(dashboard)/dashboard/mitm/page-309b09a142a2995d.js +0 -1
  1021. package/app/.next/static/chunks/app/(dashboard)/dashboard/page-86cd6523dcd61f1b.js +0 -1
  1022. package/app/.next/static/chunks/app/(dashboard)/dashboard/profile/page-ae6cf9ce7ac84eb7.js +0 -1
  1023. package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-97e0f7067cab0724.js +0 -10
  1024. package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/new/page-413b59dd764a1563.js +0 -1
  1025. package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/page-31212a5a4a9825b0.js +0 -1
  1026. package/app/.next/static/chunks/app/(dashboard)/dashboard/pxpipe/page-1805f993834a1adb.js +0 -1
  1027. package/app/.next/static/chunks/app/(dashboard)/dashboard/quota/page-798a65a8c4d2708a.js +0 -1
  1028. package/app/.next/static/chunks/app/(dashboard)/dashboard/skills/[id]/page-aba614778bfe50ad.js +0 -1
  1029. package/app/.next/static/chunks/app/(dashboard)/dashboard/skills/page-645e7c5ec034fe8c.js +0 -1
  1030. package/app/.next/static/chunks/app/(dashboard)/dashboard/token-saver/page-1711a424a8dcad0e.js +0 -1
  1031. package/app/.next/static/chunks/app/(dashboard)/dashboard/translator/page-0c7b901caf8614b9.js +0 -1
  1032. package/app/.next/static/chunks/app/(dashboard)/dashboard/usage/page-b085086e6c5b9387.js +0 -1
  1033. package/app/.next/static/chunks/app/(dashboard)/layout-59baac68c7aedd25.js +0 -1
  1034. package/app/.next/static/chunks/app/_global-error/page-e5f03432dd0bcd61.js +0 -1
  1035. package/app/.next/static/chunks/app/api/agent-library/catalog/route-e5f03432dd0bcd61.js +0 -1
  1036. package/app/.next/static/chunks/app/api/agent-library/doctor/route-e5f03432dd0bcd61.js +0 -1
  1037. package/app/.next/static/chunks/app/api/agent-library/export/route-e5f03432dd0bcd61.js +0 -1
  1038. package/app/.next/static/chunks/app/api/agent-library/mcp/route-e5f03432dd0bcd61.js +0 -1
  1039. package/app/.next/static/chunks/app/api/agent-library/route-e5f03432dd0bcd61.js +0 -1
  1040. package/app/.next/static/chunks/app/api/agent-library/skills/route-e5f03432dd0bcd61.js +0 -1
  1041. package/app/.next/static/chunks/app/api/agent-library/sync/route-e5f03432dd0bcd61.js +0 -1
  1042. package/app/.next/static/chunks/app/api/agent-library/updates/route-e5f03432dd0bcd61.js +0 -1
  1043. package/app/.next/static/chunks/app/api/auth/status/route-e5f03432dd0bcd61.js +0 -1
  1044. package/app/.next/static/chunks/app/api/cli-tools/aider-settings/route-e5f03432dd0bcd61.js +0 -1
  1045. package/app/.next/static/chunks/app/api/cli-tools/all-statuses/route-e5f03432dd0bcd61.js +0 -1
  1046. package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-e5f03432dd0bcd61.js +0 -1
  1047. package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/route-e5f03432dd0bcd61.js +0 -1
  1048. package/app/.next/static/chunks/app/api/cli-tools/claude-full-catalog/route-e5f03432dd0bcd61.js +0 -1
  1049. package/app/.next/static/chunks/app/api/cli-tools/claude-picker-labels/route-e5f03432dd0bcd61.js +0 -1
  1050. package/app/.next/static/chunks/app/api/cli-tools/claude-settings/route-e5f03432dd0bcd61.js +0 -1
  1051. package/app/.next/static/chunks/app/api/cli-tools/cline-settings/route-e5f03432dd0bcd61.js +0 -1
  1052. package/app/.next/static/chunks/app/api/cli-tools/codex-settings/route-e5f03432dd0bcd61.js +0 -1
  1053. package/app/.next/static/chunks/app/api/cli-tools/cowork-mcp-registry/route-e5f03432dd0bcd61.js +0 -1
  1054. package/app/.next/static/chunks/app/api/cli-tools/cowork-mcp-tools/route-e5f03432dd0bcd61.js +0 -1
  1055. package/app/.next/static/chunks/app/api/cli-tools/cowork-settings/route-e5f03432dd0bcd61.js +0 -1
  1056. package/app/.next/static/chunks/app/api/cli-tools/deepseek-tui-settings/route-e5f03432dd0bcd61.js +0 -1
  1057. package/app/.next/static/chunks/app/api/cli-tools/droid-settings/route-e5f03432dd0bcd61.js +0 -1
  1058. package/app/.next/static/chunks/app/api/cli-tools/gemini-cli-settings/route-e5f03432dd0bcd61.js +0 -1
  1059. package/app/.next/static/chunks/app/api/cli-tools/grok-settings/route-e5f03432dd0bcd61.js +0 -1
  1060. package/app/.next/static/chunks/app/api/cli-tools/hermes-settings/route-e5f03432dd0bcd61.js +0 -1
  1061. package/app/.next/static/chunks/app/api/cli-tools/jcode-settings/route-e5f03432dd0bcd61.js +0 -1
  1062. package/app/.next/static/chunks/app/api/cli-tools/kilo-settings/route-e5f03432dd0bcd61.js +0 -1
  1063. package/app/.next/static/chunks/app/api/cli-tools/openclaw-settings/route-e5f03432dd0bcd61.js +0 -1
  1064. package/app/.next/static/chunks/app/api/cli-tools/opencode-settings/route-e5f03432dd0bcd61.js +0 -1
  1065. package/app/.next/static/chunks/app/api/cli-tools/pi-settings/route-e5f03432dd0bcd61.js +0 -1
  1066. package/app/.next/static/chunks/app/api/cli-tools/picker-labels/route-e5f03432dd0bcd61.js +0 -1
  1067. package/app/.next/static/chunks/app/api/combos/[id]/route-e5f03432dd0bcd61.js +0 -1
  1068. package/app/.next/static/chunks/app/api/combos/route-e5f03432dd0bcd61.js +0 -1
  1069. package/app/.next/static/chunks/app/api/headroom/extras/route-e5f03432dd0bcd61.js +0 -1
  1070. package/app/.next/static/chunks/app/api/headroom/proxy/[...path]/route-e5f03432dd0bcd61.js +0 -1
  1071. package/app/.next/static/chunks/app/api/headroom/restart/route-e5f03432dd0bcd61.js +0 -1
  1072. package/app/.next/static/chunks/app/api/headroom/start/route-e5f03432dd0bcd61.js +0 -1
  1073. package/app/.next/static/chunks/app/api/headroom/status/route-e5f03432dd0bcd61.js +0 -1
  1074. package/app/.next/static/chunks/app/api/headroom/stop/route-e5f03432dd0bcd61.js +0 -1
  1075. package/app/.next/static/chunks/app/api/health/route-e5f03432dd0bcd61.js +0 -1
  1076. package/app/.next/static/chunks/app/api/keys/[id]/route-e5f03432dd0bcd61.js +0 -1
  1077. package/app/.next/static/chunks/app/api/keys/route-e5f03432dd0bcd61.js +0 -1
  1078. package/app/.next/static/chunks/app/api/locale/route-e5f03432dd0bcd61.js +0 -1
  1079. package/app/.next/static/chunks/app/api/mcp/[plugin]/message/route-e5f03432dd0bcd61.js +0 -1
  1080. package/app/.next/static/chunks/app/api/mcp/[plugin]/sse/route-e5f03432dd0bcd61.js +0 -1
  1081. package/app/.next/static/chunks/app/api/media-providers/tts/deepgram/voices/route-e5f03432dd0bcd61.js +0 -1
  1082. package/app/.next/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-e5f03432dd0bcd61.js +0 -1
  1083. package/app/.next/static/chunks/app/api/media-providers/tts/inworld/voices/route-e5f03432dd0bcd61.js +0 -1
  1084. package/app/.next/static/chunks/app/api/media-providers/tts/minimax/voices/route-e5f03432dd0bcd61.js +0 -1
  1085. package/app/.next/static/chunks/app/api/media-providers/tts/voices/route-e5f03432dd0bcd61.js +0 -1
  1086. package/app/.next/static/chunks/app/api/mgmt/v1/combos/[id]/route-e5f03432dd0bcd61.js +0 -1
  1087. package/app/.next/static/chunks/app/api/mgmt/v1/combos/[id]/strategy/route-e5f03432dd0bcd61.js +0 -1
  1088. package/app/.next/static/chunks/app/api/mgmt/v1/combos/route-e5f03432dd0bcd61.js +0 -1
  1089. package/app/.next/static/chunks/app/api/mgmt/v1/health/route-e5f03432dd0bcd61.js +0 -1
  1090. package/app/.next/static/chunks/app/api/mgmt/v1/metrics/route-e5f03432dd0bcd61.js +0 -1
  1091. package/app/.next/static/chunks/app/api/mgmt/v1/providers/route-e5f03432dd0bcd61.js +0 -1
  1092. package/app/.next/static/chunks/app/api/mgmt/v1/routing/route-e5f03432dd0bcd61.js +0 -1
  1093. package/app/.next/static/chunks/app/api/mgmt/v1/usage/route-e5f03432dd0bcd61.js +0 -1
  1094. package/app/.next/static/chunks/app/api/mgmt/v1/version/route-e5f03432dd0bcd61.js +0 -1
  1095. package/app/.next/static/chunks/app/api/models/alias/route-e5f03432dd0bcd61.js +0 -1
  1096. package/app/.next/static/chunks/app/api/models/availability/route-e5f03432dd0bcd61.js +0 -1
  1097. package/app/.next/static/chunks/app/api/models/custom/route-e5f03432dd0bcd61.js +0 -1
  1098. package/app/.next/static/chunks/app/api/models/disabled/route-e5f03432dd0bcd61.js +0 -1
  1099. package/app/.next/static/chunks/app/api/models/route-e5f03432dd0bcd61.js +0 -1
  1100. package/app/.next/static/chunks/app/api/models/test/route-e5f03432dd0bcd61.js +0 -1
  1101. package/app/.next/static/chunks/app/api/oauth/[provider]/[action]/route-e5f03432dd0bcd61.js +0 -1
  1102. package/app/.next/static/chunks/app/api/oauth/codex/bulk-import/route-e5f03432dd0bcd61.js +0 -1
  1103. package/app/.next/static/chunks/app/api/oauth/codex/import-token/route-e5f03432dd0bcd61.js +0 -1
  1104. package/app/.next/static/chunks/app/api/oauth/cursor/auto-import/route-e5f03432dd0bcd61.js +0 -1
  1105. package/app/.next/static/chunks/app/api/oauth/cursor/import/route-e5f03432dd0bcd61.js +0 -1
  1106. package/app/.next/static/chunks/app/api/oauth/gitlab/pat/route-e5f03432dd0bcd61.js +0 -1
  1107. package/app/.next/static/chunks/app/api/oauth/iflow/cookie/route-e5f03432dd0bcd61.js +0 -1
  1108. package/app/.next/static/chunks/app/api/oauth/kiro/api-key/route-e5f03432dd0bcd61.js +0 -1
  1109. package/app/.next/static/chunks/app/api/oauth/kiro/auto-import/route-e5f03432dd0bcd61.js +0 -1
  1110. package/app/.next/static/chunks/app/api/oauth/kiro/import/route-e5f03432dd0bcd61.js +0 -1
  1111. package/app/.next/static/chunks/app/api/oauth/kiro/import-cli-proxy/route-e5f03432dd0bcd61.js +0 -1
  1112. package/app/.next/static/chunks/app/api/oauth/kiro/social-authorize/route-e5f03432dd0bcd61.js +0 -1
  1113. package/app/.next/static/chunks/app/api/oauth/kiro/social-exchange/route-e5f03432dd0bcd61.js +0 -1
  1114. package/app/.next/static/chunks/app/api/pricing/route-e5f03432dd0bcd61.js +0 -1
  1115. package/app/.next/static/chunks/app/api/provider-nodes/[id]/route-e5f03432dd0bcd61.js +0 -1
  1116. package/app/.next/static/chunks/app/api/provider-nodes/route-e5f03432dd0bcd61.js +0 -1
  1117. package/app/.next/static/chunks/app/api/provider-nodes/validate/route-e5f03432dd0bcd61.js +0 -1
  1118. package/app/.next/static/chunks/app/api/providers/[id]/model-probes/batch/route-e5f03432dd0bcd61.js +0 -1
  1119. package/app/.next/static/chunks/app/api/providers/[id]/model-probes/cache/route-e5f03432dd0bcd61.js +0 -1
  1120. package/app/.next/static/chunks/app/api/providers/[id]/model-probes/prepare/route-e5f03432dd0bcd61.js +0 -1
  1121. package/app/.next/static/chunks/app/api/providers/[id]/model-probes/remove-unavailable/route-e5f03432dd0bcd61.js +0 -1
  1122. package/app/.next/static/chunks/app/api/providers/[id]/model-probes/route-e5f03432dd0bcd61.js +0 -1
  1123. package/app/.next/static/chunks/app/api/providers/[id]/model-probes/verify/cancel/route-e5f03432dd0bcd61.js +0 -1
  1124. package/app/.next/static/chunks/app/api/providers/[id]/model-probes/verify/start/route-e5f03432dd0bcd61.js +0 -1
  1125. package/app/.next/static/chunks/app/api/providers/[id]/model-probes/verify/status/route-e5f03432dd0bcd61.js +0 -1
  1126. package/app/.next/static/chunks/app/api/providers/[id]/models/route-e5f03432dd0bcd61.js +0 -1
  1127. package/app/.next/static/chunks/app/api/providers/[id]/route-e5f03432dd0bcd61.js +0 -1
  1128. package/app/.next/static/chunks/app/api/providers/[id]/test/route-e5f03432dd0bcd61.js +0 -1
  1129. package/app/.next/static/chunks/app/api/providers/[id]/test-models/route-e5f03432dd0bcd61.js +0 -1
  1130. package/app/.next/static/chunks/app/api/providers/client/route-e5f03432dd0bcd61.js +0 -1
  1131. package/app/.next/static/chunks/app/api/providers/kilo/free-models/route-e5f03432dd0bcd61.js +0 -1
  1132. package/app/.next/static/chunks/app/api/providers/route-e5f03432dd0bcd61.js +0 -1
  1133. package/app/.next/static/chunks/app/api/providers/suggested-models/route-e5f03432dd0bcd61.js +0 -1
  1134. package/app/.next/static/chunks/app/api/providers/test-batch/route-e5f03432dd0bcd61.js +0 -1
  1135. package/app/.next/static/chunks/app/api/providers/validate/route-e5f03432dd0bcd61.js +0 -1
  1136. package/app/.next/static/chunks/app/api/pxpipe/health/route-e5f03432dd0bcd61.js +0 -1
  1137. package/app/.next/static/chunks/app/api/pxpipe/install/route-e5f03432dd0bcd61.js +0 -1
  1138. package/app/.next/static/chunks/app/api/pxpipe/logs/route-e5f03432dd0bcd61.js +0 -1
  1139. package/app/.next/static/chunks/app/api/pxpipe/restart/route-e5f03432dd0bcd61.js +0 -1
  1140. package/app/.next/static/chunks/app/api/pxpipe/start/route-e5f03432dd0bcd61.js +0 -1
  1141. package/app/.next/static/chunks/app/api/pxpipe/stats/route-e5f03432dd0bcd61.js +0 -1
  1142. package/app/.next/static/chunks/app/api/pxpipe/status/route-e5f03432dd0bcd61.js +0 -1
  1143. package/app/.next/static/chunks/app/api/pxpipe/stop/route-e5f03432dd0bcd61.js +0 -1
  1144. package/app/.next/static/chunks/app/api/routing/feedback/route-e5f03432dd0bcd61.js +0 -1
  1145. package/app/.next/static/chunks/app/api/routing/insights/route-e5f03432dd0bcd61.js +0 -1
  1146. package/app/.next/static/chunks/app/api/routing/learn/route-e5f03432dd0bcd61.js +0 -1
  1147. package/app/.next/static/chunks/app/api/routing/stats/route-e5f03432dd0bcd61.js +0 -1
  1148. package/app/.next/static/chunks/app/api/routing/versions/promote/route-e5f03432dd0bcd61.js +0 -1
  1149. package/app/.next/static/chunks/app/api/routing/versions/rollback/route-e5f03432dd0bcd61.js +0 -1
  1150. package/app/.next/static/chunks/app/api/settings/database/route-e5f03432dd0bcd61.js +0 -1
  1151. package/app/.next/static/chunks/app/api/settings/proxy-test/route-e5f03432dd0bcd61.js +0 -1
  1152. package/app/.next/static/chunks/app/api/settings/route-e5f03432dd0bcd61.js +0 -1
  1153. package/app/.next/static/chunks/app/api/shutdown/route-e5f03432dd0bcd61.js +0 -1
  1154. package/app/.next/static/chunks/app/api/skills/[id]/route-e5f03432dd0bcd61.js +0 -1
  1155. package/app/.next/static/chunks/app/api/tags/route-e5f03432dd0bcd61.js +0 -1
  1156. package/app/.next/static/chunks/app/api/token-saver/vault-stats/route-e5f03432dd0bcd61.js +0 -1
  1157. package/app/.next/static/chunks/app/api/translator/console-logs/route-e5f03432dd0bcd61.js +0 -1
  1158. package/app/.next/static/chunks/app/api/translator/console-logs/stream/route-e5f03432dd0bcd61.js +0 -1
  1159. package/app/.next/static/chunks/app/api/translator/load/route-e5f03432dd0bcd61.js +0 -1
  1160. package/app/.next/static/chunks/app/api/translator/save/route-e5f03432dd0bcd61.js +0 -1
  1161. package/app/.next/static/chunks/app/api/translator/send/route-e5f03432dd0bcd61.js +0 -1
  1162. package/app/.next/static/chunks/app/api/translator/translate/route-e5f03432dd0bcd61.js +0 -1
  1163. package/app/.next/static/chunks/app/api/usage/[connectionId]/codex-reset-credits/route-e5f03432dd0bcd61.js +0 -1
  1164. package/app/.next/static/chunks/app/api/usage/[connectionId]/route-e5f03432dd0bcd61.js +0 -1
  1165. package/app/.next/static/chunks/app/api/usage/chart/route-e5f03432dd0bcd61.js +0 -1
  1166. package/app/.next/static/chunks/app/api/usage/history/route-e5f03432dd0bcd61.js +0 -1
  1167. package/app/.next/static/chunks/app/api/usage/logs/route-e5f03432dd0bcd61.js +0 -1
  1168. package/app/.next/static/chunks/app/api/usage/providers/route-e5f03432dd0bcd61.js +0 -1
  1169. package/app/.next/static/chunks/app/api/usage/request-details/route-e5f03432dd0bcd61.js +0 -1
  1170. package/app/.next/static/chunks/app/api/usage/request-logs/route-e5f03432dd0bcd61.js +0 -1
  1171. package/app/.next/static/chunks/app/api/usage/stats/route-e5f03432dd0bcd61.js +0 -1
  1172. package/app/.next/static/chunks/app/api/usage/stream/route-e5f03432dd0bcd61.js +0 -1
  1173. package/app/.next/static/chunks/app/api/v1/api/chat/route-e5f03432dd0bcd61.js +0 -1
  1174. package/app/.next/static/chunks/app/api/v1/audio/speech/route-e5f03432dd0bcd61.js +0 -1
  1175. package/app/.next/static/chunks/app/api/v1/audio/transcriptions/route-e5f03432dd0bcd61.js +0 -1
  1176. package/app/.next/static/chunks/app/api/v1/audio/voices/route-e5f03432dd0bcd61.js +0 -1
  1177. package/app/.next/static/chunks/app/api/v1/chat/completions/route-e5f03432dd0bcd61.js +0 -1
  1178. package/app/.next/static/chunks/app/api/v1/embeddings/route-e5f03432dd0bcd61.js +0 -1
  1179. package/app/.next/static/chunks/app/api/v1/images/generations/route-e5f03432dd0bcd61.js +0 -1
  1180. package/app/.next/static/chunks/app/api/v1/messages/count_tokens/route-e5f03432dd0bcd61.js +0 -1
  1181. package/app/.next/static/chunks/app/api/v1/messages/route-e5f03432dd0bcd61.js +0 -1
  1182. package/app/.next/static/chunks/app/api/v1/models/[kind]/route-e5f03432dd0bcd61.js +0 -1
  1183. package/app/.next/static/chunks/app/api/v1/models/info/route-e5f03432dd0bcd61.js +0 -1
  1184. package/app/.next/static/chunks/app/api/v1/models/route-e5f03432dd0bcd61.js +0 -1
  1185. package/app/.next/static/chunks/app/api/v1/responses/compact/route-e5f03432dd0bcd61.js +0 -1
  1186. package/app/.next/static/chunks/app/api/v1/responses/route-e5f03432dd0bcd61.js +0 -1
  1187. package/app/.next/static/chunks/app/api/v1/route-e5f03432dd0bcd61.js +0 -1
  1188. package/app/.next/static/chunks/app/api/v1/search/route-e5f03432dd0bcd61.js +0 -1
  1189. package/app/.next/static/chunks/app/api/v1/videos/[id]/route-e5f03432dd0bcd61.js +0 -1
  1190. package/app/.next/static/chunks/app/api/v1/videos/edits/route-e5f03432dd0bcd61.js +0 -1
  1191. package/app/.next/static/chunks/app/api/v1/videos/extensions/route-e5f03432dd0bcd61.js +0 -1
  1192. package/app/.next/static/chunks/app/api/v1/videos/generations/route-e5f03432dd0bcd61.js +0 -1
  1193. package/app/.next/static/chunks/app/api/v1/web/fetch/route-e5f03432dd0bcd61.js +0 -1
  1194. package/app/.next/static/chunks/app/api/v1beta/models/[...path]/route-e5f03432dd0bcd61.js +0 -1
  1195. package/app/.next/static/chunks/app/api/v1beta/models/route-e5f03432dd0bcd61.js +0 -1
  1196. package/app/.next/static/chunks/app/api/version/route-e5f03432dd0bcd61.js +0 -1
  1197. package/app/.next/static/chunks/app/api/version/shutdown/route-e5f03432dd0bcd61.js +0 -1
  1198. package/app/.next/static/chunks/app/api/version/update/route-e5f03432dd0bcd61.js +0 -1
  1199. package/app/.next/static/chunks/app/landing/page-9e06d57d9b215fd7.js +0 -1
  1200. package/app/.next/static/chunks/app/login/page-e5f03432dd0bcd61.js +0 -1
  1201. package/app/.next/static/chunks/app/manifest.webmanifest/route-e5f03432dd0bcd61.js +0 -1
  1202. package/app/.next/static/chunks/app/page-e5f03432dd0bcd61.js +0 -1
  1203. package/app/.next/static/chunks/next/dist/client/components/builtin/app-error-e5f03432dd0bcd61.js +0 -1
  1204. package/app/.next/static/chunks/next/dist/client/components/builtin/forbidden-e5f03432dd0bcd61.js +0 -1
  1205. package/app/.next/static/chunks/next/dist/client/components/builtin/not-found-e5f03432dd0bcd61.js +0 -1
  1206. package/app/.next/static/chunks/next/dist/client/components/builtin/unauthorized-e5f03432dd0bcd61.js +0 -1
  1207. package/app/.next/static/css/196a6347b9104610.css +0 -1
  1208. package/app/.next/static/media/catalog.e7ada387.json +0 -1710
  1209. package/app/.next-cli-build/server/chunks/1350.js +0 -1
  1210. package/app/.next-cli-build/server/chunks/159.js +0 -1
  1211. package/app/.next-cli-build/server/chunks/1656.js +0 -2
  1212. package/app/.next-cli-build/server/chunks/194.js +0 -1
  1213. package/app/.next-cli-build/server/chunks/3026.js +0 -1
  1214. package/app/.next-cli-build/server/chunks/3072.js +0 -2
  1215. package/app/.next-cli-build/server/chunks/3986.js +0 -121
  1216. package/app/.next-cli-build/server/chunks/5573.js +0 -1
  1217. package/app/.next-cli-build/server/chunks/5616.js +0 -1
  1218. package/app/.next-cli-build/server/chunks/5913.js +0 -1
  1219. package/app/.next-cli-build/server/chunks/6052.js +0 -2
  1220. package/app/.next-cli-build/server/chunks/6182.js +0 -63
  1221. package/app/.next-cli-build/server/chunks/6274.js +0 -1
  1222. package/app/.next-cli-build/server/chunks/6347.js +0 -1
  1223. package/app/.next-cli-build/server/chunks/6395.js +0 -68
  1224. package/app/.next-cli-build/server/chunks/6985.js +0 -1
  1225. package/app/.next-cli-build/server/chunks/849.js +0 -1
  1226. package/app/.next-cli-build/server/chunks/8658.js +0 -1
  1227. package/app/.next-cli-build/server/chunks/8834.js +0 -7
  1228. package/app/.next-cli-build/server/chunks/940.js +0 -246
  1229. package/app/.next-cli-build/server/chunks/9508.js +0 -45
  1230. package/app/.next-cli-build/server/chunks/9617.js +0 -1
  1231. package/app/.next-cli-build/server/chunks/static/media/catalog.e7ada387.json +0 -1710
  1232. package/app/.next-cli-build/static/GP6N1FvEOE4uYUrdrCir5/_buildManifest.js +0 -1
  1233. package/app/.next-cli-build/static/chunks/1321-f49cd2f61cbf7361.js +0 -1
  1234. package/app/.next-cli-build/static/chunks/1330-56405eca78b12fee.js +0 -7
  1235. package/app/.next-cli-build/static/chunks/3531-eb5d385c954b3765.js +0 -68
  1236. package/app/.next-cli-build/static/chunks/4707-1ec0b2edbb07f455.js +0 -1
  1237. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/agent-library/page-40f3ca16440f8e17.js +0 -1
  1238. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/basic-chat/page-0e1d54e59ac767a1.js +0 -1
  1239. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/cli-tools/[toolId]/page-af0d85c06970853b.js +0 -1
  1240. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/cli-tools/page-2cfc2352bc42d9b8.js +0 -1
  1241. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/combos/page-62cd36ee99eaa630.js +0 -1
  1242. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/combos/routing/page-0b02e9a2f1cc6e43.js +0 -1
  1243. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/console-log/page-ded6ec41e583b3b3.js +0 -1
  1244. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/endpoint/page-ca47b09e6ed6ae7b.js +0 -16
  1245. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page-78d098f14f8cff05.js +0 -59
  1246. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/page-d1654fba27199492.js +0 -1
  1247. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/combo/[id]/page-ff13a39fb7744f5e.js +0 -4
  1248. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/page-919f3eec8dfc9b6e.js +0 -1
  1249. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/web/page-db19da41661d630b.js +0 -1
  1250. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/mitm/page-309b09a142a2995d.js +0 -1
  1251. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/page-86cd6523dcd61f1b.js +0 -1
  1252. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/profile/page-ae6cf9ce7ac84eb7.js +0 -1
  1253. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-97e0f7067cab0724.js +0 -10
  1254. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/new/page-413b59dd764a1563.js +0 -1
  1255. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/page-31212a5a4a9825b0.js +0 -1
  1256. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/pxpipe/page-1805f993834a1adb.js +0 -1
  1257. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/quota/page-798a65a8c4d2708a.js +0 -1
  1258. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/skills/[id]/page-aba614778bfe50ad.js +0 -1
  1259. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/skills/page-645e7c5ec034fe8c.js +0 -1
  1260. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/token-saver/page-1711a424a8dcad0e.js +0 -1
  1261. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/translator/page-0c7b901caf8614b9.js +0 -1
  1262. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/usage/page-b085086e6c5b9387.js +0 -1
  1263. package/app/.next-cli-build/static/chunks/app/(dashboard)/layout-59baac68c7aedd25.js +0 -1
  1264. package/app/.next-cli-build/static/chunks/app/_global-error/page-e5f03432dd0bcd61.js +0 -1
  1265. package/app/.next-cli-build/static/chunks/app/api/agent-library/catalog/route-e5f03432dd0bcd61.js +0 -1
  1266. package/app/.next-cli-build/static/chunks/app/api/agent-library/doctor/route-e5f03432dd0bcd61.js +0 -1
  1267. package/app/.next-cli-build/static/chunks/app/api/agent-library/export/route-e5f03432dd0bcd61.js +0 -1
  1268. package/app/.next-cli-build/static/chunks/app/api/agent-library/mcp/route-e5f03432dd0bcd61.js +0 -1
  1269. package/app/.next-cli-build/static/chunks/app/api/agent-library/route-e5f03432dd0bcd61.js +0 -1
  1270. package/app/.next-cli-build/static/chunks/app/api/agent-library/skills/route-e5f03432dd0bcd61.js +0 -1
  1271. package/app/.next-cli-build/static/chunks/app/api/agent-library/sync/route-e5f03432dd0bcd61.js +0 -1
  1272. package/app/.next-cli-build/static/chunks/app/api/agent-library/updates/route-e5f03432dd0bcd61.js +0 -1
  1273. package/app/.next-cli-build/static/chunks/app/api/auth/status/route-e5f03432dd0bcd61.js +0 -1
  1274. package/app/.next-cli-build/static/chunks/app/api/cli-tools/aider-settings/route-e5f03432dd0bcd61.js +0 -1
  1275. package/app/.next-cli-build/static/chunks/app/api/cli-tools/all-statuses/route-e5f03432dd0bcd61.js +0 -1
  1276. package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-e5f03432dd0bcd61.js +0 -1
  1277. package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/route-e5f03432dd0bcd61.js +0 -1
  1278. package/app/.next-cli-build/static/chunks/app/api/cli-tools/claude-full-catalog/route-e5f03432dd0bcd61.js +0 -1
  1279. package/app/.next-cli-build/static/chunks/app/api/cli-tools/claude-picker-labels/route-e5f03432dd0bcd61.js +0 -1
  1280. package/app/.next-cli-build/static/chunks/app/api/cli-tools/claude-settings/route-e5f03432dd0bcd61.js +0 -1
  1281. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cline-settings/route-e5f03432dd0bcd61.js +0 -1
  1282. package/app/.next-cli-build/static/chunks/app/api/cli-tools/codex-settings/route-e5f03432dd0bcd61.js +0 -1
  1283. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-registry/route-e5f03432dd0bcd61.js +0 -1
  1284. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-tools/route-e5f03432dd0bcd61.js +0 -1
  1285. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-settings/route-e5f03432dd0bcd61.js +0 -1
  1286. package/app/.next-cli-build/static/chunks/app/api/cli-tools/deepseek-tui-settings/route-e5f03432dd0bcd61.js +0 -1
  1287. package/app/.next-cli-build/static/chunks/app/api/cli-tools/droid-settings/route-e5f03432dd0bcd61.js +0 -1
  1288. package/app/.next-cli-build/static/chunks/app/api/cli-tools/gemini-cli-settings/route-e5f03432dd0bcd61.js +0 -1
  1289. package/app/.next-cli-build/static/chunks/app/api/cli-tools/grok-settings/route-e5f03432dd0bcd61.js +0 -1
  1290. package/app/.next-cli-build/static/chunks/app/api/cli-tools/hermes-settings/route-e5f03432dd0bcd61.js +0 -1
  1291. package/app/.next-cli-build/static/chunks/app/api/cli-tools/jcode-settings/route-e5f03432dd0bcd61.js +0 -1
  1292. package/app/.next-cli-build/static/chunks/app/api/cli-tools/kilo-settings/route-e5f03432dd0bcd61.js +0 -1
  1293. package/app/.next-cli-build/static/chunks/app/api/cli-tools/openclaw-settings/route-e5f03432dd0bcd61.js +0 -1
  1294. package/app/.next-cli-build/static/chunks/app/api/cli-tools/opencode-settings/route-e5f03432dd0bcd61.js +0 -1
  1295. package/app/.next-cli-build/static/chunks/app/api/cli-tools/pi-settings/route-e5f03432dd0bcd61.js +0 -1
  1296. package/app/.next-cli-build/static/chunks/app/api/cli-tools/picker-labels/route-e5f03432dd0bcd61.js +0 -1
  1297. package/app/.next-cli-build/static/chunks/app/api/combos/[id]/route-e5f03432dd0bcd61.js +0 -1
  1298. package/app/.next-cli-build/static/chunks/app/api/combos/route-e5f03432dd0bcd61.js +0 -1
  1299. package/app/.next-cli-build/static/chunks/app/api/headroom/extras/route-e5f03432dd0bcd61.js +0 -1
  1300. package/app/.next-cli-build/static/chunks/app/api/headroom/proxy/[...path]/route-e5f03432dd0bcd61.js +0 -1
  1301. package/app/.next-cli-build/static/chunks/app/api/headroom/restart/route-e5f03432dd0bcd61.js +0 -1
  1302. package/app/.next-cli-build/static/chunks/app/api/headroom/start/route-e5f03432dd0bcd61.js +0 -1
  1303. package/app/.next-cli-build/static/chunks/app/api/headroom/status/route-e5f03432dd0bcd61.js +0 -1
  1304. package/app/.next-cli-build/static/chunks/app/api/headroom/stop/route-e5f03432dd0bcd61.js +0 -1
  1305. package/app/.next-cli-build/static/chunks/app/api/health/route-e5f03432dd0bcd61.js +0 -1
  1306. package/app/.next-cli-build/static/chunks/app/api/keys/[id]/route-e5f03432dd0bcd61.js +0 -1
  1307. package/app/.next-cli-build/static/chunks/app/api/keys/route-e5f03432dd0bcd61.js +0 -1
  1308. package/app/.next-cli-build/static/chunks/app/api/locale/route-e5f03432dd0bcd61.js +0 -1
  1309. package/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/message/route-e5f03432dd0bcd61.js +0 -1
  1310. package/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/sse/route-e5f03432dd0bcd61.js +0 -1
  1311. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/deepgram/voices/route-e5f03432dd0bcd61.js +0 -1
  1312. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-e5f03432dd0bcd61.js +0 -1
  1313. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/inworld/voices/route-e5f03432dd0bcd61.js +0 -1
  1314. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/minimax/voices/route-e5f03432dd0bcd61.js +0 -1
  1315. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/voices/route-e5f03432dd0bcd61.js +0 -1
  1316. package/app/.next-cli-build/static/chunks/app/api/mgmt/v1/combos/[id]/route-e5f03432dd0bcd61.js +0 -1
  1317. package/app/.next-cli-build/static/chunks/app/api/mgmt/v1/combos/[id]/strategy/route-e5f03432dd0bcd61.js +0 -1
  1318. package/app/.next-cli-build/static/chunks/app/api/mgmt/v1/combos/route-e5f03432dd0bcd61.js +0 -1
  1319. package/app/.next-cli-build/static/chunks/app/api/mgmt/v1/health/route-e5f03432dd0bcd61.js +0 -1
  1320. package/app/.next-cli-build/static/chunks/app/api/mgmt/v1/metrics/route-e5f03432dd0bcd61.js +0 -1
  1321. package/app/.next-cli-build/static/chunks/app/api/mgmt/v1/providers/route-e5f03432dd0bcd61.js +0 -1
  1322. package/app/.next-cli-build/static/chunks/app/api/mgmt/v1/routing/route-e5f03432dd0bcd61.js +0 -1
  1323. package/app/.next-cli-build/static/chunks/app/api/mgmt/v1/usage/route-e5f03432dd0bcd61.js +0 -1
  1324. package/app/.next-cli-build/static/chunks/app/api/mgmt/v1/version/route-e5f03432dd0bcd61.js +0 -1
  1325. package/app/.next-cli-build/static/chunks/app/api/models/alias/route-e5f03432dd0bcd61.js +0 -1
  1326. package/app/.next-cli-build/static/chunks/app/api/models/availability/route-e5f03432dd0bcd61.js +0 -1
  1327. package/app/.next-cli-build/static/chunks/app/api/models/custom/route-e5f03432dd0bcd61.js +0 -1
  1328. package/app/.next-cli-build/static/chunks/app/api/models/disabled/route-e5f03432dd0bcd61.js +0 -1
  1329. package/app/.next-cli-build/static/chunks/app/api/models/route-e5f03432dd0bcd61.js +0 -1
  1330. package/app/.next-cli-build/static/chunks/app/api/models/test/route-e5f03432dd0bcd61.js +0 -1
  1331. package/app/.next-cli-build/static/chunks/app/api/oauth/[provider]/[action]/route-e5f03432dd0bcd61.js +0 -1
  1332. package/app/.next-cli-build/static/chunks/app/api/oauth/codex/bulk-import/route-e5f03432dd0bcd61.js +0 -1
  1333. package/app/.next-cli-build/static/chunks/app/api/oauth/codex/import-token/route-e5f03432dd0bcd61.js +0 -1
  1334. package/app/.next-cli-build/static/chunks/app/api/oauth/cursor/auto-import/route-e5f03432dd0bcd61.js +0 -1
  1335. package/app/.next-cli-build/static/chunks/app/api/oauth/cursor/import/route-e5f03432dd0bcd61.js +0 -1
  1336. package/app/.next-cli-build/static/chunks/app/api/oauth/gitlab/pat/route-e5f03432dd0bcd61.js +0 -1
  1337. package/app/.next-cli-build/static/chunks/app/api/oauth/iflow/cookie/route-e5f03432dd0bcd61.js +0 -1
  1338. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/api-key/route-e5f03432dd0bcd61.js +0 -1
  1339. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/auto-import/route-e5f03432dd0bcd61.js +0 -1
  1340. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import/route-e5f03432dd0bcd61.js +0 -1
  1341. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import-cli-proxy/route-e5f03432dd0bcd61.js +0 -1
  1342. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-authorize/route-e5f03432dd0bcd61.js +0 -1
  1343. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-exchange/route-e5f03432dd0bcd61.js +0 -1
  1344. package/app/.next-cli-build/static/chunks/app/api/pricing/route-e5f03432dd0bcd61.js +0 -1
  1345. package/app/.next-cli-build/static/chunks/app/api/provider-nodes/[id]/route-e5f03432dd0bcd61.js +0 -1
  1346. package/app/.next-cli-build/static/chunks/app/api/provider-nodes/route-e5f03432dd0bcd61.js +0 -1
  1347. package/app/.next-cli-build/static/chunks/app/api/provider-nodes/validate/route-e5f03432dd0bcd61.js +0 -1
  1348. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/model-probes/batch/route-e5f03432dd0bcd61.js +0 -1
  1349. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/model-probes/cache/route-e5f03432dd0bcd61.js +0 -1
  1350. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/model-probes/prepare/route-e5f03432dd0bcd61.js +0 -1
  1351. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/model-probes/remove-unavailable/route-e5f03432dd0bcd61.js +0 -1
  1352. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/model-probes/route-e5f03432dd0bcd61.js +0 -1
  1353. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/model-probes/verify/cancel/route-e5f03432dd0bcd61.js +0 -1
  1354. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/model-probes/verify/start/route-e5f03432dd0bcd61.js +0 -1
  1355. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/model-probes/verify/status/route-e5f03432dd0bcd61.js +0 -1
  1356. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/models/route-e5f03432dd0bcd61.js +0 -1
  1357. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/route-e5f03432dd0bcd61.js +0 -1
  1358. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/test/route-e5f03432dd0bcd61.js +0 -1
  1359. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/test-models/route-e5f03432dd0bcd61.js +0 -1
  1360. package/app/.next-cli-build/static/chunks/app/api/providers/client/route-e5f03432dd0bcd61.js +0 -1
  1361. package/app/.next-cli-build/static/chunks/app/api/providers/kilo/free-models/route-e5f03432dd0bcd61.js +0 -1
  1362. package/app/.next-cli-build/static/chunks/app/api/providers/route-e5f03432dd0bcd61.js +0 -1
  1363. package/app/.next-cli-build/static/chunks/app/api/providers/suggested-models/route-e5f03432dd0bcd61.js +0 -1
  1364. package/app/.next-cli-build/static/chunks/app/api/providers/test-batch/route-e5f03432dd0bcd61.js +0 -1
  1365. package/app/.next-cli-build/static/chunks/app/api/providers/validate/route-e5f03432dd0bcd61.js +0 -1
  1366. package/app/.next-cli-build/static/chunks/app/api/pxpipe/health/route-e5f03432dd0bcd61.js +0 -1
  1367. package/app/.next-cli-build/static/chunks/app/api/pxpipe/install/route-e5f03432dd0bcd61.js +0 -1
  1368. package/app/.next-cli-build/static/chunks/app/api/pxpipe/logs/route-e5f03432dd0bcd61.js +0 -1
  1369. package/app/.next-cli-build/static/chunks/app/api/pxpipe/restart/route-e5f03432dd0bcd61.js +0 -1
  1370. package/app/.next-cli-build/static/chunks/app/api/pxpipe/start/route-e5f03432dd0bcd61.js +0 -1
  1371. package/app/.next-cli-build/static/chunks/app/api/pxpipe/stats/route-e5f03432dd0bcd61.js +0 -1
  1372. package/app/.next-cli-build/static/chunks/app/api/pxpipe/status/route-e5f03432dd0bcd61.js +0 -1
  1373. package/app/.next-cli-build/static/chunks/app/api/pxpipe/stop/route-e5f03432dd0bcd61.js +0 -1
  1374. package/app/.next-cli-build/static/chunks/app/api/routing/feedback/route-e5f03432dd0bcd61.js +0 -1
  1375. package/app/.next-cli-build/static/chunks/app/api/routing/insights/route-e5f03432dd0bcd61.js +0 -1
  1376. package/app/.next-cli-build/static/chunks/app/api/routing/learn/route-e5f03432dd0bcd61.js +0 -1
  1377. package/app/.next-cli-build/static/chunks/app/api/routing/stats/route-e5f03432dd0bcd61.js +0 -1
  1378. package/app/.next-cli-build/static/chunks/app/api/routing/versions/promote/route-e5f03432dd0bcd61.js +0 -1
  1379. package/app/.next-cli-build/static/chunks/app/api/routing/versions/rollback/route-e5f03432dd0bcd61.js +0 -1
  1380. package/app/.next-cli-build/static/chunks/app/api/settings/database/route-e5f03432dd0bcd61.js +0 -1
  1381. package/app/.next-cli-build/static/chunks/app/api/settings/proxy-test/route-e5f03432dd0bcd61.js +0 -1
  1382. package/app/.next-cli-build/static/chunks/app/api/settings/route-e5f03432dd0bcd61.js +0 -1
  1383. package/app/.next-cli-build/static/chunks/app/api/shutdown/route-e5f03432dd0bcd61.js +0 -1
  1384. package/app/.next-cli-build/static/chunks/app/api/skills/[id]/route-e5f03432dd0bcd61.js +0 -1
  1385. package/app/.next-cli-build/static/chunks/app/api/tags/route-e5f03432dd0bcd61.js +0 -1
  1386. package/app/.next-cli-build/static/chunks/app/api/token-saver/vault-stats/route-e5f03432dd0bcd61.js +0 -1
  1387. package/app/.next-cli-build/static/chunks/app/api/translator/console-logs/route-e5f03432dd0bcd61.js +0 -1
  1388. package/app/.next-cli-build/static/chunks/app/api/translator/console-logs/stream/route-e5f03432dd0bcd61.js +0 -1
  1389. package/app/.next-cli-build/static/chunks/app/api/translator/load/route-e5f03432dd0bcd61.js +0 -1
  1390. package/app/.next-cli-build/static/chunks/app/api/translator/save/route-e5f03432dd0bcd61.js +0 -1
  1391. package/app/.next-cli-build/static/chunks/app/api/translator/send/route-e5f03432dd0bcd61.js +0 -1
  1392. package/app/.next-cli-build/static/chunks/app/api/translator/translate/route-e5f03432dd0bcd61.js +0 -1
  1393. package/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/codex-reset-credits/route-e5f03432dd0bcd61.js +0 -1
  1394. package/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/route-e5f03432dd0bcd61.js +0 -1
  1395. package/app/.next-cli-build/static/chunks/app/api/usage/chart/route-e5f03432dd0bcd61.js +0 -1
  1396. package/app/.next-cli-build/static/chunks/app/api/usage/history/route-e5f03432dd0bcd61.js +0 -1
  1397. package/app/.next-cli-build/static/chunks/app/api/usage/logs/route-e5f03432dd0bcd61.js +0 -1
  1398. package/app/.next-cli-build/static/chunks/app/api/usage/providers/route-e5f03432dd0bcd61.js +0 -1
  1399. package/app/.next-cli-build/static/chunks/app/api/usage/request-details/route-e5f03432dd0bcd61.js +0 -1
  1400. package/app/.next-cli-build/static/chunks/app/api/usage/request-logs/route-e5f03432dd0bcd61.js +0 -1
  1401. package/app/.next-cli-build/static/chunks/app/api/usage/stats/route-e5f03432dd0bcd61.js +0 -1
  1402. package/app/.next-cli-build/static/chunks/app/api/usage/stream/route-e5f03432dd0bcd61.js +0 -1
  1403. package/app/.next-cli-build/static/chunks/app/api/v1/api/chat/route-e5f03432dd0bcd61.js +0 -1
  1404. package/app/.next-cli-build/static/chunks/app/api/v1/audio/speech/route-e5f03432dd0bcd61.js +0 -1
  1405. package/app/.next-cli-build/static/chunks/app/api/v1/audio/transcriptions/route-e5f03432dd0bcd61.js +0 -1
  1406. package/app/.next-cli-build/static/chunks/app/api/v1/audio/voices/route-e5f03432dd0bcd61.js +0 -1
  1407. package/app/.next-cli-build/static/chunks/app/api/v1/chat/completions/route-e5f03432dd0bcd61.js +0 -1
  1408. package/app/.next-cli-build/static/chunks/app/api/v1/embeddings/route-e5f03432dd0bcd61.js +0 -1
  1409. package/app/.next-cli-build/static/chunks/app/api/v1/images/generations/route-e5f03432dd0bcd61.js +0 -1
  1410. package/app/.next-cli-build/static/chunks/app/api/v1/messages/count_tokens/route-e5f03432dd0bcd61.js +0 -1
  1411. package/app/.next-cli-build/static/chunks/app/api/v1/messages/route-e5f03432dd0bcd61.js +0 -1
  1412. package/app/.next-cli-build/static/chunks/app/api/v1/models/[kind]/route-e5f03432dd0bcd61.js +0 -1
  1413. package/app/.next-cli-build/static/chunks/app/api/v1/models/info/route-e5f03432dd0bcd61.js +0 -1
  1414. package/app/.next-cli-build/static/chunks/app/api/v1/models/route-e5f03432dd0bcd61.js +0 -1
  1415. package/app/.next-cli-build/static/chunks/app/api/v1/responses/compact/route-e5f03432dd0bcd61.js +0 -1
  1416. package/app/.next-cli-build/static/chunks/app/api/v1/responses/route-e5f03432dd0bcd61.js +0 -1
  1417. package/app/.next-cli-build/static/chunks/app/api/v1/route-e5f03432dd0bcd61.js +0 -1
  1418. package/app/.next-cli-build/static/chunks/app/api/v1/search/route-e5f03432dd0bcd61.js +0 -1
  1419. package/app/.next-cli-build/static/chunks/app/api/v1/videos/[id]/route-e5f03432dd0bcd61.js +0 -1
  1420. package/app/.next-cli-build/static/chunks/app/api/v1/videos/edits/route-e5f03432dd0bcd61.js +0 -1
  1421. package/app/.next-cli-build/static/chunks/app/api/v1/videos/extensions/route-e5f03432dd0bcd61.js +0 -1
  1422. package/app/.next-cli-build/static/chunks/app/api/v1/videos/generations/route-e5f03432dd0bcd61.js +0 -1
  1423. package/app/.next-cli-build/static/chunks/app/api/v1/web/fetch/route-e5f03432dd0bcd61.js +0 -1
  1424. package/app/.next-cli-build/static/chunks/app/api/v1beta/models/[...path]/route-e5f03432dd0bcd61.js +0 -1
  1425. package/app/.next-cli-build/static/chunks/app/api/v1beta/models/route-e5f03432dd0bcd61.js +0 -1
  1426. package/app/.next-cli-build/static/chunks/app/api/version/route-e5f03432dd0bcd61.js +0 -1
  1427. package/app/.next-cli-build/static/chunks/app/api/version/shutdown/route-e5f03432dd0bcd61.js +0 -1
  1428. package/app/.next-cli-build/static/chunks/app/api/version/update/route-e5f03432dd0bcd61.js +0 -1
  1429. package/app/.next-cli-build/static/chunks/app/landing/page-9e06d57d9b215fd7.js +0 -1
  1430. package/app/.next-cli-build/static/chunks/app/login/page-e5f03432dd0bcd61.js +0 -1
  1431. package/app/.next-cli-build/static/chunks/app/manifest.webmanifest/route-e5f03432dd0bcd61.js +0 -1
  1432. package/app/.next-cli-build/static/chunks/app/page-e5f03432dd0bcd61.js +0 -1
  1433. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/app-error-e5f03432dd0bcd61.js +0 -1
  1434. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/forbidden-e5f03432dd0bcd61.js +0 -1
  1435. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/not-found-e5f03432dd0bcd61.js +0 -1
  1436. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/unauthorized-e5f03432dd0bcd61.js +0 -1
  1437. package/app/.next-cli-build/static/css/196a6347b9104610.css +0 -1
  1438. package/app/.next-cli-build/static/media/catalog.e7ada387.json +0 -1710
  1439. /package/app/.next/static/{GP6N1FvEOE4uYUrdrCir5 → Gpu8irTBATTeQnftVm3kL}/_ssgManifest.js +0 -0
  1440. /package/app/.next-cli-build/static/{GP6N1FvEOE4uYUrdrCir5 → Gpu8irTBATTeQnftVm3kL}/_ssgManifest.js +0 -0
@@ -14,7 +14,7 @@ ${e} Reply 1: bad \xb7 2: fine \xb7 3: good (or just ignore this)`,g=global.__fe
14
14
  ${c}`).digest("hex").slice(0,16)}catch{return""}}function p(a,b){try{let c=Array.isArray(a)?a:[],e=null,f=null,g="";for(let a of c)if(a?.role==="user"&&null===e&&(e=q(a.content)),a?.role==="assistant"&&null===f&&(f=q(a.content)),g||(g=function(a){try{if(Array.isArray(a?.tool_calls)){for(let b of a.tool_calls)if("string"==typeof b?.id&&b.id)return b.id}if(Array.isArray(a?.content)){for(let b of a.content)if(b?.type==="tool_use"&&"string"==typeof b?.id&&b.id)return b.id}}catch{}return""}(a)),null!==e&&null!==f&&g)break;let i=h(b,"anon");return(0,d.createHash)("sha256").update(`${i}
15
15
  ${e||""}
16
16
  ${f||""}
17
- ${g}`).digest("hex").slice(0,16)}catch{return""}}function q(a){try{if("string"==typeof a)return a;if(!Array.isArray(a))return"";let b="";for(let c of a)"string"==typeof c?b+=c:c?.type==="text"&&"string"==typeof c.text&&(b+=c.text);return b}catch{return""}}function r(a){let b={firstUserText:"",latestUserText:"",priorAssistantHasAsk:!1,userTurns:0};if(!Array.isArray(a))return b;try{let b="",c="",d=-1,f=0;for(let e=0;e<a.length;e+=1){let g=a[e];if(g?.role!=="user")continue;let h=q(g.content);0===f&&(b=h),c=h,d=e,f+=1}let g=!1;for(let b=d-1;b>=0;b-=1){let c=a[b];if(c?.role==="assistant"){g="string"==typeof c.content&&c.content.includes(e);break}}return{firstUserText:b,latestUserText:c,priorAssistantHasAsk:g,userTurns:f}}catch{return b}}function s(a){if(!Array.isArray(a))return!1;try{for(let b of a)if("string"==typeof b?.content&&b.content.includes(e))return!0}catch{}return!1}function t(a){try{let b=a&&"object"==typeof a?a:{},c=.6*Number(!!b.exploration)+.4*Number(!!b.contested)+.3*Number(!!b.coldCell)+.5*Number(!!b.escalatedOrRescue)+.2*Number(!!b.judgeUnconfident);return Math.min(1,c)}catch{return 0}}function u(a){try{let b=l(a);b.interactions+=1,b.interactions-b.lastRefillAt>=20&&(b.tokens=Math.min(3,b.tokens+1),b.lastRefillAt=b.interactions)}catch{}}function v(a){try{let b=a&&"object"==typeof a?a:{};if(!b.feedbackAskEnabled||!b.gateOk)return!1;let c=Number(b.askValue)||0;if(c<=0)return!1;let d=l(b.apiKeyHash),e=k(b.conversationFp);if(d.asked[e]||d.interactions<d.cooldownUntil||d.tokens<1)return!1;let f=c*d.multiplier,g="function"==typeof b.rng?b.rng:Math.random,h=Number(g());if(!Number.isFinite(h)||h>=f)return!1;return d.tokens-=1,d.asked[e]=!0,!0}catch{return!1}}function w(a){try{let b=l(a);b.multiplier=1,b.ignoredStreak=0,b.cooldownUntil=b.interactions+50}catch{}}function x(a){try{let b=l(a);b.ignoredStreak+=1,b.ignoredStreak>=4?b.multiplier=.25:b.ignoredStreak>=2&&(b.multiplier=.5)}catch{}}function y(){return Array.isArray(g.pending)&&g.pending.length>0}function z(a){try{let b=a&&"object"==typeof a?a:{},c=Date.now();m(c),g.pending.push({apiKeyHash:j(b.apiKeyHash),conversationFp:k(b.conversationFp),requestId:b.requestId,ts:i(void 0===b.ts?c:b.ts)})}catch{}}function A(a,b,c=Date.now()){try{let d=i(c);m(d);let e=j(a),f=k(b);if(!Array.isArray(g.pending))return null;for(let a=g.pending.length-1;a>=0;a-=1){let b=g.pending[a];if(Number.isFinite(Number(b?.ts))&&Number(b.ts)+18e5>=d&&b.apiKeyHash===e&&b.conversationFp===f)return{...b}}}catch{}return null}function B(a,b,c=Date.now()){try{let d=i(c);m(d);let e=A(a,b,d);if(!e)return null;let f=j(a),h=k(b);return g.pending=g.pending.filter(a=>a?.apiKeyHash!==f||a?.conversationFp!==h),e}catch{return null}}function C(a){try{if("string"!=typeof a)return null;let b=a.trim().match(/^[\s.:!]*([123])[\s.:!]*$/);return b?Number(b[1]):null}catch{return null}}function D(a){return 1===a?-1:2===a?0:3===a?1:null}function E(a){if(!Array.isArray(a))return a;try{let b=[],c=!1;for(let d of a){let a=d?.role,f=d?.content,g="assistant"===a,h="user"===a,i="string"==typeof f,j=g&&i?f.indexOf(e):-1;if(j>=0){let a=f.slice(0,j).replace(/\s+$/,"");a&&b.push({...d,content:a}),c=!0;continue}if(g&&i&&"Thanks — noted."===f.trim()||h&&i&&c&&null!==C(f)){c=!1;continue}b.push(d),c=!1}return b}catch{return a.slice()}}},61522:(a,b,c)=>{c.d(b,{EA:()=>G,a8:()=>F});var d=c(55511),e=c(3072),f=c(43904),g=c(89865),h=c(60290),i=c(84646),j=c(66573);function k(a){let b=[],c=!1,e=!1,f=0,g=0,h=[],i=a=>{if("string"==typeof a){g+=a.length,h.push(a);return}if(!a||"object"!=typeof a)return;let b=a.type;("image_url"===b||"image"===b||"input_image"===b)&&(c=!0),("file"===b||"document"===b||"input_file"===b)&&(e=!0),("text"===b||"input_text"===b||"output_text"===b)&&"string"==typeof a.text&&(g+=a.text.length,h.push(a.text)),"string"!=typeof a.content||b||(g+=a.content.length,h.push(a.content))},k=a=>{if("string"==typeof a){g+=a.length,h.push(a);return}if(Array.isArray(a))for(let b of a)i(b)};for(let b of a?.messages||[])(b?.role==="user"||b?.role==="tool")&&k(b.content);if("string"==typeof a?.input)k(a.input);else if(Array.isArray(a?.input))for(let b of a.input)(b?.role==="user"||b?.type==="message")&&k(b.content),(b?.type==="input_text"||b?.type==="text")&&i(b);Array.isArray(a?.tools)&&(f=a.tools.length),Array.isArray(a?.functions)&&(f=Math.max(f,a.functions.length)),c&&b.push("vision"),e&&b.push("pdf"),b.length||b.push("text");let l=f>0,m=0===f?"0":f<=3?"1-3":f<=10?"4-10":"10+",n=g<500?"0-500":g<2e3?"500-2k":g<8e3?"2k-8k":"8k+",o=(0,j.Wg)(h.slice(-3).join("\n"),4e3),p=[];/\brefactor\b/i.test(o)&&p.push("refactor"),/\b(debug|bug|error|stack)\b/i.test(o)&&p.push("debug"),/\b(test|spec|unit test)\b/i.test(o)&&p.push("test"),/\b(explain|what is|how does)\b/i.test(o)&&p.push("explain");let q=function(a){if(!a)return"(empty)";let b=String(a).replace(/[\u0000-\u0008\u000B\u000C\u000E-\u001F]/g," ").replace(/<<<USER_INTENT|USER_INTENT>>>/gi," ").replace(/\s+/g," ").trim();return b.length<=280?b:`${(0,j.Wg)(b,200)}…${(0,j.Hh)(b,60)}`}(o);return{fingerprint:(0,d.createHash)("sha256").update(JSON.stringify({hasVision:c,hasPdf:e,hasTools:l,toolCountBand:m,tokenBand:n,keywordHints:p})).digest("hex").slice(0,16),modalities:b,hasTools:l,toolCountBand:m,tokenBand:n,textLen:g,keywordHints:p,userSummary:q}}var l=c(36079),m=c(35453);function n(a,b){let c={},d={};for(let a of b)c[a]={winRate:0,avgLatencyMs:0,avgTokensOut:0,health:"ok",attempts:0,wins:0};for(let b of a||[]){let a=b.pickedWorker;if(!c[a])continue;let e=Number(b.n)||0;if(e<=0)continue;let f=Number(b.avgScore)||0,g=null!=b.wins&&Number.isFinite(Number(b.wins)),h=g?Math.max(0,Math.min(e,Number(b.wins))):Math.round(f/100*e),i=c[a].attempts,j=c[a].wins,k=c[a].winRate*i;c[a].attempts=i+e,c[a].wins=j+h;let l=g?h/e:Math.min(1,Math.max(0,f/100));if(c[a].winRate=c[a].attempts>0?Math.min(1,(k+l*e)/c[a].attempts):0,null!=b.avgLatencyMs){let d=Number(b.avgLatencyMs)||0;i<=0?c[a].avgLatencyMs=d:c[a].avgLatencyMs=(c[a].avgLatencyMs*i+d*e)/c[a].attempts}if(null!=b.avgTokensOut&&Number.isFinite(Number(b.avgTokensOut))){let f=d[a]||0;c[a].avgTokensOut=(c[a].avgTokensOut*f+Number(b.avgTokensOut)*e)/(f+e),d[a]=f+e}f<40&&(c[a].health="degraded")}return c}function o(a){if(!a)return"?";let b=String(a).split("/");return b[b.length-1]||a}function p(a,b){if(!a||!Array.isArray(b))return null;if(b.includes(a))return a;let c=b.filter(b=>b===a||b.endsWith(`/${a}`)||b.split("/").pop()===a);return 1===c.length?c[0]:null}function q(a){return"string"!=typeof a?"":a.slice(0,280)}function r(a,b,c){if(!Array.isArray(a))return[];let d=[];for(let e of a){if("string"!=typeof e)continue;let a=e.trim();if(!b.includes(a)){let c=p(a,b);if(!c)continue;a=c}a===c||d.includes(a)||d.push(a)}return d.slice(0,5)}var s=c(1354),t=c(43957);function u(a,b,c){let{body:d,comboName:e,signals:f,pick:g,routerModel:h,routerLatencyMs:i,learningVersionId:j,exploration:k,skippedRouter:l,objective:n,routerPickedWorker:o,pickedWorker:p,workerStatus:q,workerLatencyMs:r,workerOk:s,fallbackUsed:u,retries:v,hasCompletion:w,tokensIn:x,tokensOut:y,clusterP50LatencyMs:z,attemptsSnapshot:A,requestFallbackUsed:B,routerInPool:C,metaExtra:D,requestId:E,terminal:F=!0}=c,G={workerOk:!!s,workerLatencyMs:r??null,clusterP50LatencyMs:z??null,fallbackUsed:!!u,retries:v??0,hasCompletion:!!w,tokensOut:y??null},H=(0,t._4)(G);return(F||!s)&&b?.info?.("AUTO",`outcome score=${H} worker=${p} cluster=${g.cluster||"?"} router=${i??0}ms+worker=${r??0}ms`+(k?" exploration":"")+(s?"":" FAIL")+(F?" terminal":" attempt")),Promise.resolve(a({timestamp:new Date().toISOString(),comboName:e,requestId:E||null,sessionId:d?.metadata?.session_id||d?.metadata?.sessionId||d?.metadata?.conversation_id||null,requestFingerprint:f?.fingerprint||null,cluster:(0,m._v)(g.cluster),routerModel:l?null:h,pickedWorker:p,alternates:g.alternates||[],routerReason:g.reason,routerConfidence:g.confidence,routerLatencyMs:i,workerStatus:q,workerLatencyMs:r,fallbackUsed:!!(B||u),retries:v??0,tokensIn:x??null,tokensOut:y??null,outcomeScore:H,objective:n,learningVersionId:j,meta:{exploration:k,skippedRouter:l,terminal:!!F,requestId:E||null,modalities:f?.modalities,hasTools:f?.hasTools,parseError:g.parseError||null,routerPickedWorker:o,attempts:A||[],scoreFallbackUsed:!!u,scoreRetries:v??0,scoreInputs:G,baseOutcomeScore:H,userSummary:f?.userSummary?String(f.userSummary).slice(0,120):null,routerInPool:!!C,...D||{}}})).catch(a=>b?.warn?.("AUTO",`recordEvent failed: ${a.message}`)),H}function v(a,b){if(!a)return a;try{let c=new Headers(a.headers);b.worker&&c.set("X-Auto-Router-Worker",String(b.worker)),b.requestId&&c.set("X-Auto-Router-Request-Id",String(b.requestId)),b.cluster&&c.set("X-Auto-Router-Cluster",String(b.cluster)),b.confidence&&c.set("X-Auto-Router-Confidence",String(b.confidence)),null!=b.score&&c.set("X-Auto-Router-Score",String(b.score)),null!=b.routerLatencyMs&&c.set("X-Auto-Router-Router-Ms",String(Math.round(b.routerLatencyMs))),null!=b.workerLatencyMs&&c.set("X-Auto-Router-Worker-Ms",String(Math.round(b.workerLatencyMs))),b.exploration&&c.set("X-Auto-Router-Exploration","1"),b.skipped&&c.set("X-Auto-Router-Skipped","1");let d=c.get("Access-Control-Expose-Headers")||"",e=new Set(d.split(",").map(a=>a.trim()).filter(Boolean).concat(["X-Auto-Router-Worker","X-Auto-Router-Request-Id","X-Auto-Router-Cluster","X-Auto-Router-Confidence","X-Auto-Router-Score","X-Auto-Router-Router-Ms","X-Auto-Router-Worker-Ms","X-Auto-Router-Exploration","X-Auto-Router-Skipped"]));return c.set("Access-Control-Expose-Headers",[...e].join(", ")),new Response(a.body,{status:a.status,statusText:a.statusText,headers:c})}catch{return a}}var w=c(19978),x=c(5770),y=c(15083),z=c(23928);function A(a){let b=new Headers(a);return b.delete("content-length"),b.delete("content-encoding"),b}async function B(a,b=z.vh){try{let c=await a.clone().text(),d=JSON.parse(c),e=d?.choices?.[0]?.message?.content;if("string"!=typeof e)return a;return d.choices[0].message.content=e+b,new Response(JSON.stringify(d),{status:a.status,statusText:a.statusText,headers:A(a.headers)})}catch{return a}}var C=c(1996);let D=global.__autoVisionWarned??=new Set,E="route:";function F(a){(0,w.Y3)(a?`${E}${a}:`:E)}async function G({body:a,models:b,handleSingleModel:c,log:d,comboName:f,strategy:i={},loadLearning:j=async()=>null,loadStats:k=async()=>[],loadGlobalStats:l=async()=>[],loadClusterP50:m=null,loadProviderLatency:n=async()=>({}),loadProviderUsage:o=async()=>({}),loadProviderQuota:p=async()=>({}),recordEvent:q=async()=>{},applyJudgeScore:r=async()=>{},autoDepth:t=0,clientAbortSignal:u=null,feedbackCtx:v=null,workerCaps:w={}}){if(t>=2)return(0,g.yj)(h.gx.BAD_REQUEST,`Auto combo "${f}" recursion limit (depth ${t})`);if(!i.routerModel||"string"!=typeof i.routerModel)return(0,g.yj)(h.gx.BAD_REQUEST,`Auto combo "${f}" has no routerModel configured — select a router model in the combo's Auto settings`);let{routerModel:z,objective:A,explorationRate:B,routerTimeoutMs:E,heuristicFirst:F,childDepth:K,tuning:M}=function({strategy:a,autoDepth:b}){let c,d=a.routerModel,e=a.objective||"balanced",f=Number.isFinite(c=Number(a.explorationRate??.05))?Math.max(0,Math.min(.2,c)):0,g=a.autoTuning||{};return{routerModel:d,objective:e,explorationRate:f,routerTimeoutMs:S(g.routerTimeoutMs),heuristicFirst:!1!==a.capacityAutoSwitch&&!1!==g.heuristicFirst,childDepth:b+1,tuning:g}}({strategy:i,autoDepth:t}),N=function({models:a,routerModel:b,strategy:c}){let d=(a||[]).filter(a=>a&&a!==b);return"function"==typeof c.filterWorker&&(d=d.filter(a=>c.filterWorker(a))),d}({models:b,routerModel:z,strategy:i});if(!N.length)return(0,g.yj)(h.gx.BAD_REQUEST,`Auto combo "${f}" has empty worker pool (add models besides router)`);!function({pool:a,body:b,comboName:c,log:d,workerCaps:f}){D.has(c)||!(0,e.t8)(b).has("vision")||a.some(a=>R(a,["vision"],f))||(D.add(c),d?.warn?.("AUTO",`combo "${c}" has no vision-capable worker — image inputs will be stripped`))}({pool:N,body:a,comboName:f,log:d,workerCaps:w});let O=!1!==i.emitAutoRouterHeaders,P=i.learningWindowDays??14,Q=(0,y.Vf)({tuning:M,routerModel:z,comboName:f,handleSingleModel:c,extractAssistantText:s.dO,applyJudgeScore:r,log:d}),{candidates:T,shortcut:U}=function({body:a,pool:b,heuristicFirst:c,log:d,workerCaps:f}){if(1===b.length)return d?.info?.("AUTO",`pool size 1 → direct ${b[0]}`),{candidates:b,shortcut:{worker:b[0],pick:{model:b[0],cluster:"general",confidence:"high",reason:"single_worker",alternates:[]}}};let g=b;if(!c)return{candidates:g,shortcut:null};let h=(0,e.t8)(a);if(0===h.size)return{candidates:g,shortcut:null};let i=[...h],j=b.filter(a=>R(a,i,f));return 1===j.length?(d?.info?.("AUTO",`only one model capable of [${i}] → ${j[0]}`),{candidates:g,shortcut:{worker:j[0],pick:{model:j[0],cluster:i.includes("vision")?"vision":i.includes("pdf")?"document":"general",confidence:"high",reason:"heuristic_only_capable",alternates:[]}}}):{candidates:g=j.length>1?(0,e.xP)(j,h):(0,e.xP)(b,h),shortcut:null}}({body:a,pool:N,heuristicFirst:F,log:d,workerCaps:w});if(U)return L({body:a,worker:U.worker,pool:N,handleSingleModel:c,log:d,comboName:f,routerModel:z,objective:A,pick:U.pick,routerLatencyMs:0,learningVersionId:null,exploration:!1,signals:null,recordEvent:q,skippedRouter:!0,stats:[],autoDepth:K,emitHeaders:O,loadClusterP50:m,windowDays:P,clientAbortSignal:u});let{learning:V,stats:W,globalStats:X,providerLatencyMs:Y,providerUsage:Z,providerQuota:$}=await I({comboName:f,strategy:i,loadLearning:j,loadStats:k,loadGlobalStats:l,loadProviderLatency:n,loadProviderUsage:o,loadProviderQuota:p,log:d}),_=H(i)?{strategy:i.providerStrategy,providerOrder:Array.isArray(i.providerOrder)?i.providerOrder:[],providerLatencyMs:Y,providerUsage:Z,providerQuota:$,guardMs:i.providerLatencyGuardMs??x.Qm}:null,aa=(0,C.Y9)(V?.banditTable,f),ab=V?{...V,banditTable:!1!==M.warmStart?function(a,b){try{if(!a||"object"!=typeof a||!Array.isArray(b)||!b.length)return a;let c=new Map;for(let a of b)a?.worker&&c.set(a.worker,a);let d=Object.create(null);for(let[b,e]of Object.entries(a)){let a=Object.create(null);for(let[d,f]of Object.entries(e||{})){let e=Number(f?.attempts)||0;if(e>=10){a[d]=f;continue}let g=c.get(d);if(!g){a[d]=f;continue}let h=g.clusters?.[b],i=h&&Number(h.n)>=5?Number(h.avgScore):Number(g.avgScore);if(!Number.isFinite(i)){a[d]=f;continue}let j=(Number(f?.avgScore)||0)*e,k=(5*i+j)/(5+e);a[d]={...f||{},avgScore:Math.max(0,Math.min(100,k))}}d[b]=a}return d}catch{return a}}(aa,X):aa}:V,ac=await J({body:a,models:b,candidates:T,comboName:f,strategy:i,learning:ab,stats:W,objective:A,explorationRate:B,routerModel:z,routerTimeoutMs:E,childDepth:K,tuning:M,handleSingleModel:c,log:d,clientAbortSignal:u,providerBias:_,workerCaps:w});if(ac.response)return ac.response;let ad=function(a,b){try{let c=a?.[b];if(!c)return!1;let d=Object.values(c).map(a=>({avg:Number(a.avgScore)||0,n:Number(a.attempts)||0})).filter(a=>a.n>=10).sort((a,b)=>b.avg-a.avg);return d.length>=2&&d[0].avg-d[1].avg<=15}catch{return!1}}(ab?.banditTable,ac.pick.cluster),ae=function(a,b,c){try{let d=a?.[b]?.[c];return!d||10>(Number(d.attempts)||0)}catch{return!1}}(ab?.banditTable,ac.pick.cluster,ac.pick.model);return L({body:a,worker:ac.pick.model,pool:ac.candidates,handleSingleModel:c,log:d,comboName:f,routerModel:z,objective:A,pick:ac.pick,routerLatencyMs:ac.routerLatencyMs,learningVersionId:ab?.id||i.activeLearningVersionId||null,exploration:ac.exploration,signals:ac.signals,recordEvent:q,alternates:ac.pick.alternates,stats:W,autoDepth:K,routerInPool:ac.routerInPool,emitHeaders:O,loadClusterP50:m,windowDays:P,clientAbortSignal:u,judgeCtx:Q,tierSplit:ac.tierSplit,feedbackCtx:v?{...v,contested:ad,coldCell:ae}:null})}function H(a){return!!a?.providerStrategy&&"off"!==a.providerStrategy}async function I({comboName:a,strategy:b,loadLearning:c,loadStats:d,loadGlobalStats:e,loadProviderLatency:f,loadProviderUsage:g,loadProviderQuota:h,log:i}){let j=!1!==b.learningEnabled,k=b.autoTuning||{},l=null,m=[],n=[],o={},p={},q={};if(j||b.activeLearningVersionId)try{l=await c(a,b)}catch(a){i?.warn?.("AUTO",`loadLearning failed: ${a.message}`)}try{m=await d(a,b.learningWindowDays??14)}catch{}if(!1!==k.warmStart)try{n=await e(b.learningWindowDays??14)}catch{n=[]}if(H(b)){try{let a=await f(b.learningWindowDays??14);o=a&&"object"==typeof a?a:{}}catch{o={}}try{let a=await g();p=a&&"object"==typeof a?a:{}}catch{p={}}if("quota-first"===b.providerStrategy)try{let a=await h();q=a&&"object"==typeof a?a:{}}catch{q={}}}return{learning:l,stats:m,globalStats:n,providerLatencyMs:o,providerUsage:p,providerQuota:q}}async function J({body:a,models:b,candidates:c,comboName:d,strategy:e,learning:p,stats:q,objective:r,explorationRate:s,routerModel:t,routerTimeoutMs:u,childDepth:v,tuning:x,handleSingleModel:z,log:A,clientAbortSignal:B,providerBias:C,workerCaps:D}){var F;let G=(b||[]).includes(t);G&&A?.info?.("AUTO",`router ${t} also listed in models — excluded from worker pool`);let H=k(a);c=function(a,b,c,d,e){let f=Array.isArray(a)?a:[];if(!Number.isFinite(c)||c<=0)return f;try{let a=n(b,f),g=f.filter(b=>{let d=Number(a[b]?.avgLatencyMs);return!Number.isFinite(d)||d<=0||d<=c});if(g.length)return g;d?.info?.("AUTO",`maxLatencyMs=${c} would empty pool for combo ${e} — ignored`)}catch{}return f}(c,q,Number(e.maxLatencyMs),A,d);let I=(0,l.S)(c),L=Math.round((H.textLen||0)/4),M=!1!==x.cachedRoutes,N=(F=H.fingerprint,`${E}${d}:${F}`);if(B?.aborted)return{response:(0,g.yj)(h.gx.BAD_REQUEST,"Client disconnected")};let O=null,P=0,Q=!1;if(!1!==x.policyFastPath&&!B?.aborted){let a=(0,m.Lh)(H);if(a){let b=(0,l.sd)(p?.banditTable||null,a,c,r,{estInputTokens:L,providerBias:C});b&&c.includes(b.model)&&(A?.info?.("AUTO",`bandit_policy → ${b.model} cluster=${a} (${b.lead===1/0?"solo":`lead ${Math.round(b.lead)}`})`),O={model:b.model,cluster:a,confidence:"high",reason:"bandit_policy",alternates:c.filter(a=>a!==b.model).slice(0,2)})}}if(!O&&M&&!B?.aborted){let a=(0,w.vX)(N);a&&c.includes(a.model)?(A?.info?.("AUTO",`cached route → ${a.model} (fp ${H.fingerprint})`),O={model:a.model,cluster:a.cluster||"general",confidence:a.confidence||"high",reason:"cached_route",alternates:c.filter(b=>b!==a.model).slice(0,2)},Q=!0):a&&(0,w.Y3)(N)}if(!O){let b=n(q,c),{messages:e}=function({comboName:a,pool:b,body:c,objective:d="balanced",learning:e=null,healthByModel:g={},maxFewShots:h=5,signals:n=null,workerCaps:p={}}){let q=n||k(c),r=b.map(a=>{let[b,...c]=a.split("/"),d=c.join("/")||b,e=p?.[a],h=e&&"object"==typeof e&&Object.keys(e).length>0?e:(0,f.nl)(b,d)||{},j=[h.vision&&"vision",h.pdf&&"pdf",!1!==h.tools&&"tools"].filter(Boolean).join(",")||"text",k=g[a]||{},m="number"==typeof q.textLen&&Number.isFinite(q.textLen)?Math.round((q.textLen||0)/4):({"0-500":250,"500-2k":1250,"2k-8k":5e3,"8k+":12e3})[q.tokenBand]??250,n=k.avgTokensOut??500,o=(0,l.h)(a,m,n),r=null!=o?` — est:$${o.toFixed(4)}`:"",s="number"==typeof k.winRate?`${Math.round(100*Math.min(1,Math.max(0,k.winRate)))}%`:"n/a",t="number"==typeof k.avgLatencyMs&&k.avgLatencyMs>0?k.avgLatencyMs:null,u="number"==typeof t?`${Math.round(t)}ms`:"n/a",v=k.health||"ok",w=(0,i.getPricingForModel)(b,d),x=w&&"number"==typeof w.input?`$${w.input}/$${w.output??"?"}`:"n/a",y=(0,l.g1)(a);return`- ${a} — caps:[${j}] — 7d win:${s} — avgLat:${u} — price/1M:${x}${r} — costTier:${y} — health:${v}`}).join("\n"),s=new Set(b||[]),t=function(a,b){if(!a||"object"!=typeof a||!b?.size)return a||{};let c={};for(let[d,e]of Object.entries(a)){let a={};for(let[c,d]of Object.entries(e||{}))b.has(c)&&(a[c]=d);Object.keys(a).length&&(c[d]=a)}return c}(e?.banditTable,s),u=(e?.learnedRules||[]).filter(a=>(function(a,b){if(!a||!b?.size)return!0;let c=String(a).match(/[a-zA-Z0-9_.-]+\/[a-zA-Z0-9_./:-]+/g)||[];return!c.length||c.every(a=>b.has(a))})(a,s)).slice(0,10),v=function(a){if(!a||"object"!=typeof a)return[];let b=[];for(let[c,d]of Object.entries(a)){let a=Object.entries(d||{}).map(([a,b])=>({id:a,avg:Number(b.avgScore)||0,n:Number(b.attempts)||0})).filter(a=>a.n>=10).sort((a,b)=>b.avg-a.avg);!(a.length<2)&&a[0].avg-a[1].avg<=15&&b.push(`no rule: ${c} top two within 15 pts — ${o(a[0].id)}=${Math.round(a[0].avg)} vs ${o(a[1].id)}=${Math.round(a[1].avg)}; explore fairly`)}return b}(t),w=u.length?u.map(a=>`- ${a}`).join("\n"):v.length?v.map(a=>`- (${a})`).join("\n"):"- (none yet — explore fairly)",x=function(a){if(!a||"object"!=typeof a)return"- (no bandit data yet)";let b=[];for(let[c,d]of Object.entries(a)){let a=Object.entries(d||{}).map(([a,b])=>({id:a,avg:Number(b.avgScore)||0,n:Number(b.attempts)||0})).filter(a=>a.n>0).sort((a,b)=>b.avg-a.avg).slice(0,3);a.length&&b.push(`- ${c}: ${a.map(a=>`${o(a.id)} ${Math.round(a.avg)} n=${a.n}`).join("; ")}`)}return b.length?b.join("\n"):"- (no bandit data yet)"}(t),y=Math.max(1,Math.min(20,Number(h)||5)),z=(e?.fewShots||[]).filter(a=>!a.worker||s.has(a.worker)).slice(0,y),A=z.length?z.map((a,b)=>{let c,d=(c=String(a.summary||a.fingerprint||""||"").replace(/<<+|>>+/g," ").replace(/FEWSHOT/gi," ").replace(/\s+/g," ").trim(),(0,j.Wg)(c,120));return`${b+1}. cluster=${a.cluster||"?"} worker=${a.worker} score=${a.score??"?"} summary=<<FEWSHOT ${d} FEWSHOT>>`}).join("\n"):"- (none yet)";return{messages:[{role:"system",content:`You are the ROUTER for combo "${a}".
17
+ ${g}`).digest("hex").slice(0,16)}catch{return""}}function q(a){try{if("string"==typeof a)return a;if(!Array.isArray(a))return"";let b="";for(let c of a)"string"==typeof c?b+=c:c?.type==="text"&&"string"==typeof c.text&&(b+=c.text);return b}catch{return""}}function r(a){let b={firstUserText:"",latestUserText:"",priorAssistantHasAsk:!1,userTurns:0};if(!Array.isArray(a))return b;try{let b="",c="",d=-1,f=0;for(let e=0;e<a.length;e+=1){let g=a[e];if(g?.role!=="user")continue;let h=q(g.content);0===f&&(b=h),c=h,d=e,f+=1}let g=!1;for(let b=d-1;b>=0;b-=1){let c=a[b];if(c?.role==="assistant"){g="string"==typeof c.content&&c.content.includes(e);break}}return{firstUserText:b,latestUserText:c,priorAssistantHasAsk:g,userTurns:f}}catch{return b}}function s(a){if(!Array.isArray(a))return!1;try{for(let b of a)if("string"==typeof b?.content&&b.content.includes(e))return!0}catch{}return!1}function t(a){try{let b=a&&"object"==typeof a?a:{},c=.6*Number(!!b.exploration)+.4*Number(!!b.contested)+.3*Number(!!b.coldCell)+.5*Number(!!b.escalatedOrRescue)+.2*Number(!!b.judgeUnconfident);return Math.min(1,c)}catch{return 0}}function u(a){try{let b=l(a);b.interactions+=1,b.interactions-b.lastRefillAt>=20&&(b.tokens=Math.min(3,b.tokens+1),b.lastRefillAt=b.interactions)}catch{}}function v(a){try{let b=a&&"object"==typeof a?a:{};if(!b.feedbackAskEnabled||!b.gateOk)return!1;let c=Number(b.askValue)||0;if(c<=0)return!1;let d=l(b.apiKeyHash),e=k(b.conversationFp);if(d.asked[e]||d.interactions<d.cooldownUntil||d.tokens<1)return!1;let f=c*d.multiplier,g="function"==typeof b.rng?b.rng:Math.random,h=Number(g());if(!Number.isFinite(h)||h>=f)return!1;return d.tokens-=1,d.asked[e]=!0,!0}catch{return!1}}function w(a){try{let b=l(a);b.multiplier=1,b.ignoredStreak=0,b.cooldownUntil=b.interactions+50}catch{}}function x(a){try{let b=l(a);b.ignoredStreak+=1,b.ignoredStreak>=4?b.multiplier=.25:b.ignoredStreak>=2&&(b.multiplier=.5)}catch{}}function y(){return Array.isArray(g.pending)&&g.pending.length>0}function z(a){try{let b=a&&"object"==typeof a?a:{},c=Date.now();m(c),g.pending.push({apiKeyHash:j(b.apiKeyHash),conversationFp:k(b.conversationFp),requestId:b.requestId,ts:i(void 0===b.ts?c:b.ts)})}catch{}}function A(a,b,c=Date.now()){try{let d=i(c);m(d);let e=j(a),f=k(b);if(!Array.isArray(g.pending))return null;for(let a=g.pending.length-1;a>=0;a-=1){let b=g.pending[a];if(Number.isFinite(Number(b?.ts))&&Number(b.ts)+18e5>=d&&b.apiKeyHash===e&&b.conversationFp===f)return{...b}}}catch{}return null}function B(a,b,c=Date.now()){try{let d=i(c);m(d);let e=A(a,b,d);if(!e)return null;let f=j(a),h=k(b);return g.pending=g.pending.filter(a=>a?.apiKeyHash!==f||a?.conversationFp!==h),e}catch{return null}}function C(a){try{if("string"!=typeof a)return null;let b=a.trim().match(/^[\s.:!]*([123])[\s.:!]*$/);return b?Number(b[1]):null}catch{return null}}function D(a){return 1===a?-1:2===a?0:3===a?1:null}function E(a){if(!Array.isArray(a))return a;try{let b=[],c=!1;for(let d of a){let a=d?.role,f=d?.content,g="assistant"===a,h="user"===a,i="string"==typeof f,j=g&&i?f.indexOf(e):-1;if(j>=0){let a=f.slice(0,j).replace(/\s+$/,"");a&&b.push({...d,content:a}),c=!0;continue}if(g&&i&&"Thanks — noted."===f.trim()||h&&i&&c&&null!==C(f)){c=!1;continue}b.push(d),c=!1}return b}catch{return a.slice()}}},61522:(a,b,c)=>{c.d(b,{EA:()=>G,a8:()=>F});var d=c(55511),e=c(3072),f=c(43904),g=c(89865),h=c(60290),i=c(84646),j=c(66573);function k(a){let b=[],c=!1,e=!1,f=0,g=0,h=[],i=a=>{if("string"==typeof a){g+=a.length,h.push(a);return}if(!a||"object"!=typeof a)return;let b=a.type;("image_url"===b||"image"===b||"input_image"===b)&&(c=!0),("file"===b||"document"===b||"input_file"===b)&&(e=!0),("text"===b||"input_text"===b||"output_text"===b)&&"string"==typeof a.text&&(g+=a.text.length,h.push(a.text)),"string"!=typeof a.content||b||(g+=a.content.length,h.push(a.content))},k=a=>{if("string"==typeof a){g+=a.length,h.push(a);return}if(Array.isArray(a))for(let b of a)i(b)};for(let b of a?.messages||[])(b?.role==="user"||b?.role==="tool")&&k(b.content);if("string"==typeof a?.input)k(a.input);else if(Array.isArray(a?.input))for(let b of a.input)(b?.role==="user"||b?.type==="message")&&k(b.content),(b?.type==="input_text"||b?.type==="text")&&i(b);Array.isArray(a?.tools)&&(f=a.tools.length),Array.isArray(a?.functions)&&(f=Math.max(f,a.functions.length)),c&&b.push("vision"),e&&b.push("pdf"),b.length||b.push("text");let l=f>0,m=0===f?"0":f<=3?"1-3":f<=10?"4-10":"10+",n=g<500?"0-500":g<2e3?"500-2k":g<8e3?"2k-8k":"8k+",o=(0,j.Wg)(h.slice(-3).join("\n"),4e3),p=[];/\brefactor\b/i.test(o)&&p.push("refactor"),/\b(debug|bug|error|stack)\b/i.test(o)&&p.push("debug"),/\b(test|spec|unit test)\b/i.test(o)&&p.push("test"),/\b(explain|what is|how does)\b/i.test(o)&&p.push("explain");let q=function(a){if(!a)return"(empty)";let b=String(a).replace(/[\u0000-\u0008\u000B\u000C\u000E-\u001F]/g," ").replace(/<<<USER_INTENT|USER_INTENT>>>/gi," ").replace(/\s+/g," ").trim();return b.length<=280?b:`${(0,j.Wg)(b,200)}…${(0,j.Hh)(b,60)}`}(o);return{fingerprint:(0,d.createHash)("sha256").update(JSON.stringify({hasVision:c,hasPdf:e,hasTools:l,toolCountBand:m,tokenBand:n,keywordHints:p})).digest("hex").slice(0,16),modalities:b,hasTools:l,toolCountBand:m,tokenBand:n,textLen:g,keywordHints:p,userSummary:q}}var l=c(36079),m=c(35453);function n(a,b){let c={},d={};for(let a of b)c[a]={winRate:0,avgLatencyMs:0,avgTokensOut:0,health:"ok",attempts:0,wins:0};for(let b of a||[]){let a=b.pickedWorker;if(!c[a])continue;let e=Number(b.n)||0;if(e<=0)continue;let f=Number(b.avgScore)||0,g=null!=b.wins&&Number.isFinite(Number(b.wins)),h=g?Math.max(0,Math.min(e,Number(b.wins))):Math.round(f/100*e),i=c[a].attempts,j=c[a].wins,k=c[a].winRate*i;c[a].attempts=i+e,c[a].wins=j+h;let l=g?h/e:Math.min(1,Math.max(0,f/100));if(c[a].winRate=c[a].attempts>0?Math.min(1,(k+l*e)/c[a].attempts):0,null!=b.avgLatencyMs){let d=Number(b.avgLatencyMs)||0;i<=0?c[a].avgLatencyMs=d:c[a].avgLatencyMs=(c[a].avgLatencyMs*i+d*e)/c[a].attempts}if(null!=b.avgTokensOut&&Number.isFinite(Number(b.avgTokensOut))){let f=d[a]||0;c[a].avgTokensOut=(c[a].avgTokensOut*f+Number(b.avgTokensOut)*e)/(f+e),d[a]=f+e}f<40&&(c[a].health="degraded")}return c}function o(a){if(!a)return"?";let b=String(a).split("/");return b[b.length-1]||a}function p(a,b){if(!a||!Array.isArray(b))return null;if(b.includes(a))return a;let c=b.filter(b=>b===a||b.endsWith(`/${a}`)||b.split("/").pop()===a);return 1===c.length?c[0]:null}function q(a){return"string"!=typeof a?"":a.slice(0,280)}function r(a,b,c){if(!Array.isArray(a))return[];let d=[];for(let e of a){if("string"!=typeof e)continue;let a=e.trim();if(!b.includes(a)){let c=p(a,b);if(!c)continue;a=c}a===c||d.includes(a)||d.push(a)}return d.slice(0,5)}var s=c(1354),t=c(43957);function u(a,b,c){let{body:d,comboName:e,signals:f,pick:g,routerModel:h,routerLatencyMs:i,learningVersionId:j,exploration:k,skippedRouter:l,objective:n,routerPickedWorker:o,pickedWorker:p,workerStatus:q,workerLatencyMs:r,workerOk:s,fallbackUsed:u,retries:v,hasCompletion:w,tokensIn:x,tokensOut:y,clusterP50LatencyMs:z,attemptsSnapshot:A,requestFallbackUsed:B,routerInPool:C,metaExtra:D,requestId:E,terminal:F=!0}=c,G={workerOk:!!s,workerLatencyMs:r??null,clusterP50LatencyMs:z??null,fallbackUsed:!!u,retries:v??0,hasCompletion:!!w,tokensOut:y??null},H=(0,t._4)(G);return(F||!s)&&b?.info?.("AUTO",`outcome score=${H} worker=${p} cluster=${g.cluster||"?"} router=${i??0}ms+worker=${r??0}ms`+(k?" exploration":"")+(s?"":" FAIL")+(F?" terminal":" attempt")),Promise.resolve(a({timestamp:new Date().toISOString(),comboName:e,requestId:E||null,sessionId:d?.metadata?.session_id||d?.metadata?.sessionId||d?.metadata?.conversation_id||null,requestFingerprint:f?.fingerprint||null,cluster:(0,m._v)(g.cluster),routerModel:l?null:h,pickedWorker:p,alternates:g.alternates||[],routerReason:g.reason,routerConfidence:g.confidence,routerLatencyMs:i,workerStatus:q,workerLatencyMs:r,fallbackUsed:!!(B||u),retries:v??0,tokensIn:x??null,tokensOut:y??null,outcomeScore:H,objective:n,learningVersionId:j,meta:{exploration:k,skippedRouter:l,terminal:!!F,requestId:E||null,modalities:f?.modalities,hasTools:f?.hasTools,parseError:g.parseError||null,routerPickedWorker:o,attempts:A||[],scoreFallbackUsed:!!u,scoreRetries:v??0,scoreInputs:G,baseOutcomeScore:H,userSummary:f?.userSummary?String(f.userSummary).slice(0,120):null,routerInPool:!!C,...D||{}}})).catch(a=>b?.warn?.("AUTO",`recordEvent failed: ${a.message}`)),H}function v(a,b){if(!a)return a;try{let c=new Headers(a.headers);b.worker&&c.set("X-Auto-Router-Worker",String(b.worker)),b.requestId&&c.set("X-Auto-Router-Request-Id",String(b.requestId)),b.cluster&&c.set("X-Auto-Router-Cluster",String(b.cluster)),b.confidence&&c.set("X-Auto-Router-Confidence",String(b.confidence)),null!=b.score&&c.set("X-Auto-Router-Score",String(b.score)),null!=b.routerLatencyMs&&c.set("X-Auto-Router-Router-Ms",String(Math.round(b.routerLatencyMs))),null!=b.workerLatencyMs&&c.set("X-Auto-Router-Worker-Ms",String(Math.round(b.workerLatencyMs))),b.exploration&&c.set("X-Auto-Router-Exploration","1"),b.skipped&&c.set("X-Auto-Router-Skipped","1");let d=c.get("Access-Control-Expose-Headers")||"",e=new Set(d.split(",").map(a=>a.trim()).filter(Boolean).concat(["X-Auto-Router-Worker","X-Auto-Router-Request-Id","X-Auto-Router-Cluster","X-Auto-Router-Confidence","X-Auto-Router-Score","X-Auto-Router-Router-Ms","X-Auto-Router-Worker-Ms","X-Auto-Router-Exploration","X-Auto-Router-Skipped"]));return c.set("Access-Control-Expose-Headers",[...e].join(", ")),new Response(a.body,{status:a.status,statusText:a.statusText,headers:c})}catch{return a}}var w=c(19978),x=c(5770),y=c(15083),z=c(23928);function A(a){let b=new Headers(a);return b.delete("content-length"),b.delete("content-encoding"),b}async function B(a,b=z.vh){try{let c=await a.clone().text(),d=JSON.parse(c),e=d?.choices?.[0]?.message?.content;if("string"!=typeof e)return a;return d.choices[0].message.content=e+b,new Response(JSON.stringify(d),{status:a.status,statusText:a.statusText,headers:A(a.headers)})}catch{return a}}var C=c(1996);let D=global.__autoVisionWarned??=new Set,E="route:";function F(a){(0,w.Y3)(a?`${E}${a}:`:E)}async function G({body:a,models:b,handleSingleModel:c,log:d,comboName:f,strategy:i={},loadLearning:j=async()=>null,loadStats:k=async()=>[],loadGlobalStats:l=async()=>[],loadClusterP50:m=null,loadProviderLatency:n=async()=>({}),loadProviderUsage:o=async()=>({}),loadProviderQuota:p=async()=>({}),recordEvent:q=async()=>{},applyJudgeScore:r=async()=>{},autoDepth:t=0,comboDepth:u=0,clientAbortSignal:v=null,feedbackCtx:w=null,workerCaps:z={}}){if(t>=2||t+u>=h.wg)return(0,g.yj)(h.gx.BAD_REQUEST,`Auto combo "${f}" recursion limit (auto ${t} + combo ${u})`);if(!i.routerModel||"string"!=typeof i.routerModel)return(0,g.yj)(h.gx.BAD_REQUEST,`Auto combo "${f}" has no routerModel configured — select a router model in the combo's Auto settings`);let{routerModel:A,objective:B,explorationRate:E,routerTimeoutMs:F,heuristicFirst:K,childDepth:M,tuning:N}=function({strategy:a,autoDepth:b}){let c,d=a.routerModel,e=a.objective||"balanced",f=Number.isFinite(c=Number(a.explorationRate??.05))?Math.max(0,Math.min(.2,c)):0,g=a.autoTuning||{};return{routerModel:d,objective:e,explorationRate:f,routerTimeoutMs:S(g.routerTimeoutMs),heuristicFirst:!1!==a.capacityAutoSwitch&&!1!==g.heuristicFirst,childDepth:b+1,tuning:g}}({strategy:i,autoDepth:t}),O=function({models:a,routerModel:b,strategy:c}){let d=(a||[]).filter(a=>a&&a!==b);return"function"==typeof c.filterWorker&&(d=d.filter(a=>c.filterWorker(a))),d}({models:b,routerModel:A,strategy:i});if(!O.length)return(0,g.yj)(h.gx.BAD_REQUEST,`Auto combo "${f}" has empty worker pool (add models besides router)`);!function({pool:a,body:b,comboName:c,log:d,workerCaps:f}){D.has(c)||!(0,e.t8)(b).has("vision")||a.some(a=>R(a,["vision"],f))||(D.add(c),d?.warn?.("AUTO",`combo "${c}" has no vision-capable worker — image inputs will be stripped`))}({pool:O,body:a,comboName:f,log:d,workerCaps:z});let P=!1!==i.emitAutoRouterHeaders,Q=i.learningWindowDays??14,T=(0,y.Vf)({tuning:N,routerModel:A,comboName:f,handleSingleModel:c,extractAssistantText:s.dO,applyJudgeScore:r,log:d}),{candidates:U,shortcut:V}=function({body:a,pool:b,heuristicFirst:c,log:d,workerCaps:f}){if(1===b.length)return d?.info?.("AUTO",`pool size 1 → direct ${b[0]}`),{candidates:b,shortcut:{worker:b[0],pick:{model:b[0],cluster:"general",confidence:"high",reason:"single_worker",alternates:[]}}};let g=b;if(!c)return{candidates:g,shortcut:null};let h=(0,e.t8)(a);if(0===h.size)return{candidates:g,shortcut:null};let i=[...h],j=b.filter(a=>R(a,i,f));return 1===j.length?(d?.info?.("AUTO",`only one model capable of [${i}] → ${j[0]}`),{candidates:g,shortcut:{worker:j[0],pick:{model:j[0],cluster:i.includes("vision")?"vision":i.includes("pdf")?"document":"general",confidence:"high",reason:"heuristic_only_capable",alternates:[]}}}):{candidates:g=j.length>1?(0,e.xP)(j,h):(0,e.xP)(b,h),shortcut:null}}({body:a,pool:O,heuristicFirst:K,log:d,workerCaps:z});if(V)return L({body:a,worker:V.worker,pool:O,handleSingleModel:c,log:d,comboName:f,routerModel:A,objective:B,pick:V.pick,routerLatencyMs:0,learningVersionId:null,exploration:!1,signals:null,recordEvent:q,skippedRouter:!0,stats:[],autoDepth:M,comboDepth:u,emitHeaders:P,loadClusterP50:m,windowDays:Q,clientAbortSignal:v});let{learning:W,stats:X,globalStats:Y,providerLatencyMs:Z,providerUsage:$,providerQuota:_}=await I({comboName:f,strategy:i,loadLearning:j,loadStats:k,loadGlobalStats:l,loadProviderLatency:n,loadProviderUsage:o,loadProviderQuota:p,log:d}),aa=H(i)?{strategy:i.providerStrategy,providerOrder:Array.isArray(i.providerOrder)?i.providerOrder:[],providerLatencyMs:Z,providerUsage:$,providerQuota:_,guardMs:i.providerLatencyGuardMs??x.Qm}:null,ab=(0,C.Y9)(W?.banditTable,f),ac=W?{...W,banditTable:!1!==N.warmStart?function(a,b){try{if(!a||"object"!=typeof a||!Array.isArray(b)||!b.length)return a;let c=new Map;for(let a of b)a?.worker&&c.set(a.worker,a);let d=Object.create(null);for(let[b,e]of Object.entries(a)){let a=Object.create(null);for(let[d,f]of Object.entries(e||{})){let e=Number(f?.attempts)||0;if(e>=10){a[d]=f;continue}let g=c.get(d);if(!g){a[d]=f;continue}let h=g.clusters?.[b],i=h&&Number(h.n)>=5?Number(h.avgScore):Number(g.avgScore);if(!Number.isFinite(i)){a[d]=f;continue}let j=(Number(f?.avgScore)||0)*e,k=(5*i+j)/(5+e);a[d]={...f||{},avgScore:Math.max(0,Math.min(100,k))}}d[b]=a}return d}catch{return a}}(ab,Y):ab}:W,ad=await J({body:a,models:b,candidates:U,comboName:f,strategy:i,learning:ac,stats:X,objective:B,explorationRate:E,routerModel:A,routerTimeoutMs:F,childDepth:M,tuning:N,handleSingleModel:c,log:d,clientAbortSignal:v,providerBias:aa,workerCaps:z});if(ad.response)return ad.response;let ae=function(a,b){try{let c=a?.[b];if(!c)return!1;let d=Object.values(c).map(a=>({avg:Number(a.avgScore)||0,n:Number(a.attempts)||0})).filter(a=>a.n>=10).sort((a,b)=>b.avg-a.avg);return d.length>=2&&d[0].avg-d[1].avg<=15}catch{return!1}}(ac?.banditTable,ad.pick.cluster),af=function(a,b,c){try{let d=a?.[b]?.[c];return!d||10>(Number(d.attempts)||0)}catch{return!1}}(ac?.banditTable,ad.pick.cluster,ad.pick.model);return L({body:a,worker:ad.pick.model,pool:ad.candidates,handleSingleModel:c,log:d,comboName:f,routerModel:A,objective:B,pick:ad.pick,routerLatencyMs:ad.routerLatencyMs,learningVersionId:ac?.id||i.activeLearningVersionId||null,exploration:ad.exploration,signals:ad.signals,recordEvent:q,alternates:ad.pick.alternates,stats:X,autoDepth:M,comboDepth:u,routerInPool:ad.routerInPool,emitHeaders:P,loadClusterP50:m,windowDays:Q,clientAbortSignal:v,judgeCtx:T,tierSplit:ad.tierSplit,feedbackCtx:w?{...w,contested:ae,coldCell:af}:null})}function H(a){return!!a?.providerStrategy&&"off"!==a.providerStrategy}async function I({comboName:a,strategy:b,loadLearning:c,loadStats:d,loadGlobalStats:e,loadProviderLatency:f,loadProviderUsage:g,loadProviderQuota:h,log:i}){let j=!1!==b.learningEnabled,k=b.autoTuning||{},l=null,m=[],n=[],o={},p={},q={};if(j||b.activeLearningVersionId)try{l=await c(a,b)}catch(a){i?.warn?.("AUTO",`loadLearning failed: ${a.message}`)}try{m=await d(a,b.learningWindowDays??14)}catch{}if(!1!==k.warmStart)try{n=await e(b.learningWindowDays??14)}catch{n=[]}if(H(b)){try{let a=await f(b.learningWindowDays??14);o=a&&"object"==typeof a?a:{}}catch{o={}}try{let a=await g();p=a&&"object"==typeof a?a:{}}catch{p={}}if("quota-first"===b.providerStrategy)try{let a=await h();q=a&&"object"==typeof a?a:{}}catch{q={}}}return{learning:l,stats:m,globalStats:n,providerLatencyMs:o,providerUsage:p,providerQuota:q}}async function J({body:a,models:b,candidates:c,comboName:d,strategy:e,learning:p,stats:q,objective:r,explorationRate:s,routerModel:t,routerTimeoutMs:u,childDepth:v,tuning:x,handleSingleModel:z,log:A,clientAbortSignal:B,providerBias:C,workerCaps:D}){var F;let G=(b||[]).includes(t);G&&A?.info?.("AUTO",`router ${t} also listed in models — excluded from worker pool`);let H=k(a);c=function(a,b,c,d,e){let f=Array.isArray(a)?a:[];if(!Number.isFinite(c)||c<=0)return f;try{let a=n(b,f),g=f.filter(b=>{let d=Number(a[b]?.avgLatencyMs);return!Number.isFinite(d)||d<=0||d<=c});if(g.length)return g;d?.info?.("AUTO",`maxLatencyMs=${c} would empty pool for combo ${e} — ignored`)}catch{}return f}(c,q,Number(e.maxLatencyMs),A,d);let I=(0,l.S)(c),L=Math.round((H.textLen||0)/4),M=!1!==x.cachedRoutes,N=(F=H.fingerprint,`${E}${d}:${F}`);if(B?.aborted)return{response:(0,g.yj)(h.gx.BAD_REQUEST,"Client disconnected")};let O=null,P=0,Q=!1;if(!1!==x.policyFastPath&&!B?.aborted){let a=(0,m.Lh)(H);if(a){let b=(0,l.sd)(p?.banditTable||null,a,c,r,{estInputTokens:L,providerBias:C});b&&c.includes(b.model)&&(A?.info?.("AUTO",`bandit_policy → ${b.model} cluster=${a} (${b.lead===1/0?"solo":`lead ${Math.round(b.lead)}`})`),O={model:b.model,cluster:a,confidence:"high",reason:"bandit_policy",alternates:c.filter(a=>a!==b.model).slice(0,2)})}}if(!O&&M&&!B?.aborted){let a=(0,w.vX)(N);a&&c.includes(a.model)?(A?.info?.("AUTO",`cached route → ${a.model} (fp ${H.fingerprint})`),O={model:a.model,cluster:a.cluster||"general",confidence:a.confidence||"high",reason:"cached_route",alternates:c.filter(b=>b!==a.model).slice(0,2)},Q=!0):a&&(0,w.Y3)(N)}if(!O){let b=n(q,c),{messages:e}=function({comboName:a,pool:b,body:c,objective:d="balanced",learning:e=null,healthByModel:g={},maxFewShots:h=5,signals:n=null,workerCaps:p={}}){let q=n||k(c),r=b.map(a=>{let[b,...c]=a.split("/"),d=c.join("/")||b,e=p?.[a],h=e&&"object"==typeof e&&Object.keys(e).length>0?e:(0,f.nl)(b,d)||{},j=[h.vision&&"vision",h.pdf&&"pdf",!1!==h.tools&&"tools"].filter(Boolean).join(",")||"text",k=g[a]||{},m="number"==typeof q.textLen&&Number.isFinite(q.textLen)?Math.round((q.textLen||0)/4):({"0-500":250,"500-2k":1250,"2k-8k":5e3,"8k+":12e3})[q.tokenBand]??250,n=k.avgTokensOut??500,o=(0,l.h)(a,m,n),r=null!=o?` — est:$${o.toFixed(4)}`:"",s="number"==typeof k.winRate?`${Math.round(100*Math.min(1,Math.max(0,k.winRate)))}%`:"n/a",t="number"==typeof k.avgLatencyMs&&k.avgLatencyMs>0?k.avgLatencyMs:null,u="number"==typeof t?`${Math.round(t)}ms`:"n/a",v=k.health||"ok",w=(0,i.getPricingForModel)(b,d),x=w&&"number"==typeof w.input?`$${w.input}/$${w.output??"?"}`:"n/a",y=(0,l.g1)(a);return`- ${a} — caps:[${j}] — 7d win:${s} — avgLat:${u} — price/1M:${x}${r} — costTier:${y} — health:${v}`}).join("\n"),s=new Set(b||[]),t=function(a,b){if(!a||"object"!=typeof a||!b?.size)return a||{};let c={};for(let[d,e]of Object.entries(a)){let a={};for(let[c,d]of Object.entries(e||{}))b.has(c)&&(a[c]=d);Object.keys(a).length&&(c[d]=a)}return c}(e?.banditTable,s),u=(e?.learnedRules||[]).filter(a=>(function(a,b){if(!a||!b?.size)return!0;let c=String(a).match(/[a-zA-Z0-9_.-]+\/[a-zA-Z0-9_./:-]+/g)||[];return!c.length||c.every(a=>b.has(a))})(a,s)).slice(0,10),v=function(a){if(!a||"object"!=typeof a)return[];let b=[];for(let[c,d]of Object.entries(a)){let a=Object.entries(d||{}).map(([a,b])=>({id:a,avg:Number(b.avgScore)||0,n:Number(b.attempts)||0})).filter(a=>a.n>=10).sort((a,b)=>b.avg-a.avg);!(a.length<2)&&a[0].avg-a[1].avg<=15&&b.push(`no rule: ${c} top two within 15 pts — ${o(a[0].id)}=${Math.round(a[0].avg)} vs ${o(a[1].id)}=${Math.round(a[1].avg)}; explore fairly`)}return b}(t),w=u.length?u.map(a=>`- ${a}`).join("\n"):v.length?v.map(a=>`- (${a})`).join("\n"):"- (none yet — explore fairly)",x=function(a){if(!a||"object"!=typeof a)return"- (no bandit data yet)";let b=[];for(let[c,d]of Object.entries(a)){let a=Object.entries(d||{}).map(([a,b])=>({id:a,avg:Number(b.avgScore)||0,n:Number(b.attempts)||0})).filter(a=>a.n>0).sort((a,b)=>b.avg-a.avg).slice(0,3);a.length&&b.push(`- ${c}: ${a.map(a=>`${o(a.id)} ${Math.round(a.avg)} n=${a.n}`).join("; ")}`)}return b.length?b.join("\n"):"- (no bandit data yet)"}(t),y=Math.max(1,Math.min(20,Number(h)||5)),z=(e?.fewShots||[]).filter(a=>!a.worker||s.has(a.worker)).slice(0,y),A=z.length?z.map((a,b)=>{let c,d=(c=String(a.summary||a.fingerprint||""||"").replace(/<<+|>>+/g," ").replace(/FEWSHOT/gi," ").replace(/\s+/g," ").trim(),(0,j.Wg)(c,120));return`${b+1}. cluster=${a.cluster||"?"} worker=${a.worker} score=${a.score??"?"} summary=<<FEWSHOT ${d} FEWSHOT>>`}).join("\n"):"- (none yet)";return{messages:[{role:"system",content:`You are the ROUTER for combo "${a}".
18
18
  Pick exactly ONE worker from POOL.
19
19
  ${(0,l.BI)(d)}
20
20
  Classify the request into exactly ONE cluster from this fixed list (use "general" if none fit):
@@ -43,7 +43,7 @@ ${q.userSummary}
43
43
  USER_INTENT>>>
44
44
 
45
45
  JSON only:
46
- {"model":"<exact pool id>","cluster":"<one of: ${m.S1.join("|")}>","confidence":"high|low","reason":"<one line>","alternates":["..."]}`}],signals:q}}({comboName:d,pool:c,body:a,objective:r,learning:p,healthByModel:b,maxFewShots:x.maxFewShots??5,signals:H,workerCaps:D}),g=await K({routerBody:{model:t,messages:e,stream:!1,temperature:0,max_tokens:256},routerModel:t,candidates:c,routerTimeoutMs:u,childDepth:v,handleSingleModel:z,log:A,clientAbortSignal:B});if(g.response)return g;O=g.pick,P=g.routerLatencyMs}let R=function({pick:a,tierSplit:b,candidates:c,comboName:d,objective:e,learning:f,estInputTokens:g,log:h,providerBias:i}){if(!a||b?.disabled||"bandit_policy"!==a.reason&&"cached_route"!==a.reason)return null;let j=(b?.frontier||[]).filter(a=>c.includes(a));if(!j.length||!(0,y.EL)(d,a.cluster,e))return null;let k=(0,l.qK)(f?.banditTable?.[a.cluster]||{},e,j,{estInputTokens:g,providerBias:i})||j[0];return k&&k!==a.model?(h?.info?.("AUTO",`judge_flag_escalation → ${k} (cluster=${a.cluster})`),{...a,model:k,reason:"judge_flag_escalation",confidence:"high",alternates:c.filter(a=>a!==k).slice(0,2)}):null}({pick:O,tierSplit:I,candidates:c,comboName:d,objective:r,learning:p,estInputTokens:L,log:A,providerBias:C});R&&(O=R);let S=!1;if(Math.random()<s&&c.length>1){let a=(0,l.Ns)(p?.banditTable||null,O.cluster,c),b=a[Math.floor(Math.random()*a.length)];b!==O.model&&(A?.info?.("AUTO",`exploration → ${b} (ε=${s}, ${a.length}/${c.length} plausible)`),O={...O,model:b,reason:`exploration:${O.reason||""}`,confidence:"low"},S=!0)}return!M||Q||S||"judge_flag_escalation"===O.reason||"high"!==O.confidence||O.parseError||(0,w.s1)(N,{model:O.model,cluster:O.cluster,confidence:O.confidence},6e5),{pick:O,routerLatencyMs:P,exploration:S,signals:H,routerInPool:G,candidates:c,tierSplit:I}}async function K({routerBody:a,routerModel:b,candidates:c,routerTimeoutMs:d,childDepth:e,handleSingleModel:f,log:i,clientAbortSignal:j}){let k,l=0,n=Date.now();try{let g=await function(a,b,c,d=null){let e=S(b),f=new AbortController,g=T(f.signal,d)||f.signal;return new Promise((b,h)=>{if(d?.aborted)return void h(Error("client_aborted"));let i=setTimeout(()=>{try{f.abort()}catch{}h(Error(c||"timeout"))},e);d&&d.addEventListener("abort",()=>{clearTimeout(i);try{f.abort()}catch{}h(Error("client_aborted"))},{once:!0}),Promise.resolve().then(()=>a(g)).then(a=>{clearTimeout(i),b(a)},a=>{clearTimeout(i),h(a)})})}(c=>f(a,b,{sourceFormatOverride:"openai",bypassNativePassthrough:!0,signal:T(c,j),autoDepth:e,bypassPromptFilters:!0}),d,"router_timeout",j);l=Date.now()-n;let h=await (0,s.dO)(g);h.httpError?(i?.warn?.("AUTO",`router HTTP ${h.status}; using pool[0]`),k={model:c[0],cluster:"unknown",confidence:"low",reason:h.httpError,alternates:c.slice(1,3),parseError:h.httpError}):(k=function(a,b){var c,d;let e,f=b[0]||null,g={model:f,cluster:"unknown",confidence:"low",reason:"fallback",alternates:[]};if(!f)return{...g,model:null,parseError:"empty_pool"};if("string"!=typeof a||!a.trim())return{...g,reason:"empty_router_response",parseError:"empty"};let h=a.trim(),i=h.match(/```(?:json)?\s*([\s\S]*?)```/i);i&&(h=i[1].trim());let j=function(a){let b=a.indexOf("{");if(b<0)return null;let c=0,d=!1,e=!1;for(let f=b;f<a.length;f++){let g=a[f];if(d){e?e=!1:"\\"===g?e=!0:'"'===g&&(d=!1);continue}if('"'===g)d=!0;else if("{"===g)c++;else if("}"===g&&0==--c)return a.slice(b,f+1)}return null}(h);j&&(h=j);try{e=JSON.parse(h)}catch{try{let a=h.indexOf("{"),b=h.lastIndexOf("}");a>=0&&b>a&&(e=JSON.parse(h.slice(a,b+1)))}catch{return{...g,reason:"invalid_json",parseError:"json"}}}if(!e||"object"!=typeof e)return{...g,reason:"invalid_shape",parseError:"shape"};let k="string"==typeof e.model?e.model.trim():"";if(k&&!b.includes(k)){let a=p(k,b);a&&(k=a)}if(!b.includes(k)){return{model:f,cluster:(c=e.cluster,(0,m._v)(c)),confidence:"low",reason:q(e.reason)||"model_not_in_pool",alternates:r(e.alternates,b,f),parseError:"not_in_pool"}}let l="high"===e.confidence||"low"===e.confidence?e.confidence:"low";return{model:k,cluster:(d=e.cluster,(0,m._v)(d)),confidence:l,reason:q(e.reason),alternates:r(e.alternates,b,k)}}(h.text,c)).parseError?i?.warn?.("AUTO",`router parse ${k.parseError}; using ${k.model}`):i?.info?.("AUTO",`router → ${k.model} cluster=${k.cluster} conf=${k.confidence} (${l}ms)`)}catch(a){if(l=Date.now()-n,j?.aborted||a?.name==="AbortError"||a?.message==="client_aborted")return{response:(0,g.yj)(h.gx.BAD_REQUEST,"Client disconnected")};i?.warn?.("AUTO",`router failed: ${a.message}; pool[0]`),k={model:c[0],cluster:"unknown",confidence:"low",reason:a.message||"router_error",alternates:c.slice(1,3),parseError:"router_timeout"===a.message?"router_timeout":"error"}}return{pick:k,routerLatencyMs:l}}async function L({body:a,worker:b,pool:c,handleSingleModel:e,log:f,comboName:i,routerModel:j,objective:k,pick:l,routerLatencyMs:m,learningVersionId:n,exploration:o,signals:p,recordEvent:q,alternates:r=[],skippedRouter:t=!1,stats:u=[],autoDepth:v=1,routerInPool:w=!1,emitHeaders:x=!0,loadClusterP50:y=null,windowDays:z=14,clientAbortSignal:A=null,judgeCtx:B=null,tierSplit:C=null,feedbackCtx:D=null}){let E=l.model,F=await N({loadClusterP50:y,comboName:i,cluster:l.cluster,windowDays:z,stats:u}),G=(0,d.randomUUID)(),{attempts:H,attempted:I,tryWorker:J}=function({body:a,handleSingleModel:b,log:c,autoDepth:d,clientAbortSignal:e}){let f=new Set,g=[],h=async h=>{if(f.has(h))return null;f.add(h);let i=Date.now(),j=null;if(e?.aborted)return g.push({worker:h,ok:!1,status:499,latencyMs:Date.now()-i,reason:"client_aborted"}),null;try{j=await b(function(a){try{return"function"==typeof structuredClone?structuredClone(a):JSON.parse(JSON.stringify(a))}catch{return{...a}}}(a),h,{autoDepth:d,signal:e||void 0})}catch(a){return c?.warn?.("AUTO",`worker ${h} threw: ${a.message}`),g.push({worker:h,ok:!1,status:500,latencyMs:Date.now()-i}),null}let k=Date.now()-i;if(!j?.ok){g.push({worker:h,ok:!1,status:j?.status??500,latencyMs:k});try{await j?.body?.cancel?.()}catch{}return null}let l=await (0,s.wx)(j,c,{abortSignal:e}),m=Date.now()-i;return l.ok?(g.push({worker:h,ok:!0,status:l.result?.status??200,latencyMs:m}),{result:l.result,latencyMs:m,modelStr:h,preInspect:l.preInspect||null,ttfbMs:k,workerStartMs:i}):(c?.warn?.("AUTO",`worker ${h} empty/incomplete response → fallback (${l.reason||"empty"})`),g.push({worker:h,ok:!1,status:502,latencyMs:m,reason:l.reason||"empty_response"}),null)};return{attempts:g,attempted:f,tryWorker:h}}({body:a,handleSingleModel:e,log:f,autoDepth:v,clientAbortSignal:A}),K=await O({worker:b,alternates:r,pool:c,attempted:I,tryWorker:J,tierSplit:C,log:f});return K?(!t&&H.some(a=>!a.ok)&&P({attempts:H,recordEvent:q,log:f,body:a,comboName:i,signals:p,pick:l,routerModel:j,routerLatencyMs:m,learningVersionId:n,exploration:o,skippedRouter:t,objective:k,routerPickedWorker:E,clusterRefLatency:F,requestId:G,requestFallbackUsed:!0,allFailed:!1}),M({success:K,attempts:H,requestId:G,routerPickedWorker:E,body:a,comboName:i,signals:p,pick:l,routerModel:j,routerLatencyMs:m,learningVersionId:n,exploration:o,skippedRouter:t,objective:k,recordEvent:q,log:f,routerInPool:w,emitHeaders:x,clusterRefLatency:F,judgeCtx:B,feedbackCtx:D})):(P({attempts:H,recordEvent:q,log:f,body:a,comboName:i,signals:p,pick:l,routerModel:j,routerLatencyMs:m,learningVersionId:n,exploration:o,skippedRouter:t,objective:k,routerPickedWorker:E,clusterRefLatency:F,requestId:G,requestFallbackUsed:H.length>1,allFailed:!0}),(0,g.yj)(h.gx.SERVICE_UNAVAILABLE,`Auto combo "${i}" all workers failed`))}async function M({success:a,attempts:b,requestId:c,routerPickedWorker:d,body:e,comboName:f,signals:g,pick:h,routerModel:i,routerLatencyMs:j,learningVersionId:k,exploration:l,skippedRouter:m,objective:n,recordEvent:o,log:p,routerInPool:q,emitHeaders:r,clusterRefLatency:t,judgeCtx:w=null,feedbackCtx:x=null}){let{result:y,latencyMs:C,modelStr:D,preInspect:E,ttfbMs:F,workerStartMs:G}=a,H=D!==d,I=b.some(a=>!a.ok)||H,J=function({body:a,comboName:b,signals:c,pick:d,routerModel:e,routerLatencyMs:f,learningVersionId:g,exploration:h,skippedRouter:i,objective:j,routerPickedWorker:k,winner:l,result:m,latencyMs:n,requestFallbackUsed:o,clusterRefLatency:p,attempts:q,requestId:r}){return{body:a,comboName:b,signals:c,pick:d,routerModel:e,routerLatencyMs:f,learningVersionId:g,exploration:h,skippedRouter:i,objective:j,routerPickedWorker:k,pickedWorker:l,workerStatus:m.status,workerLatencyMs:n,workerOk:!0,fallbackUsed:!1,retries:0,requestFallbackUsed:o,clusterP50LatencyMs:p,attemptsSnapshot:[...q],requestId:r,terminal:!0}}({body:e,comboName:f,signals:g,pick:h,routerModel:i,routerLatencyMs:j,learningVersionId:k,exploration:l,skippedRouter:m,objective:n,routerPickedWorker:d,winner:D,result:y,latencyMs:C,requestFallbackUsed:I,clusterRefLatency:t,attempts:b,requestId:c});if(m)return r?v(y,{worker:D,cluster:h.cluster,confidence:h.confidence||"high",routerLatencyMs:j,workerLatencyMs:C,skipped:!0}):y;let K=null;if(x&&x.feedbackAsk&&x.openAiWire)try{(0,z.YJ)(x.apiKeyHash);let a=(0,z.AF)({exploration:l,contested:x.contested,coldCell:x.coldCell,escalatedOrRescue:"judge_flag_escalation"===h.reason||I});(0,z.Kn)({apiKeyHash:x.apiKeyHash,conversationFp:x.conversationFp,askValue:a,feedbackAskEnabled:!0,gateOk:x.gateOk})&&(K=z.vh,(0,z.gp)({apiKeyHash:x.apiKeyHash,conversationFp:x.conversationFp,requestId:c}))}catch{}let L=(y.headers?.get?.("content-type")||"").toLowerCase();if((L.includes("text/event-stream")||L.includes("ndjson"))&&y.body){let a=function({response:a,recordEvent:b,log:c,baseEvent:d,ttfbMs:e,workerStartMs:f=null,emitHeaders:g=!0,routerLatencyMs:h=0,routerInPool:i=!1,seedHasCompletion:j=!1,seedTokensIn:k=null,seedTokensOut:l=null,judgeCtx:m=null}){let n=a.body,o="number"==typeof f&&Number.isFinite(f)?f:Date.now()-(e||0);if(!n||"function"!=typeof n.getReader)return u(b,c,{...d,hasCompletion:!!j,tokensIn:k,tokensOut:l,workerLatencyMs:Date.now()-o,routerInPool:i,metaExtra:{streamObserved:!1}}),g?v(a,{worker:d.pickedWorker,requestId:d.requestId,cluster:d.pick?.cluster,confidence:d.pick?.confidence,routerLatencyMs:h,workerLatencyMs:Date.now()-o,exploration:d.exploration}):a;let p=n.getReader(),q=new TextDecoder,r="",t=!!j,w=k??null,x=l??null,y=!1,z=!1,A=a=>{let b=(0,s.Ah)(a);b&&(w=b.prompt_tokens??w,(x=b.completion_tokens??x)>0&&(t=!0)),!t&&(0,s.Ki)(a)&&(t=!0)},B=(a={})=>{if(z)return;z=!0;try{let a=q.decode();a&&A(a)}catch{}let f=Date.now()-o,g=t&&!y;u(b,c,{...d,workerOk:d.workerOk&&g,workerStatus:g?d.workerStatus:502,workerLatencyMs:f,hasCompletion:t,tokensIn:w,tokensOut:x,routerInPool:i,metaExtra:{streamObserved:!0,streamDied:y,ttfbMs:e,...a}}),function(a,b,c,d,e){if(a&&c&&a.shouldSample())try{let c=d()||"";if(!c)return;Promise.resolve(a.runJudge({baseEvent:b,assistantText:c})).catch(a=>e?.warn?.("AUTO",`judge dispatch failed: ${a?.message||a}`))}catch(a){e?.warn?.("AUTO",`judge dispatch failed: ${a?.message||a}`)}}(m,d,g,()=>(0,s.NT)(r),c)},C=new Response(new ReadableStream({async pull(a){try{let{done:b,value:c}=await p.read();if(b){a.close(),B();return}if(c){if(c.byteLength){let a=q.decode(c,{stream:!0});if(r=(r+a).slice(-128e3),t){let b=(0,s.Ah)(a);b&&(w=b.prompt_tokens??w,x=b.completion_tokens??x)}else A(a.length<512?r.slice(-512):a)}a.enqueue(c)}}catch(b){y=!0;try{a.error(b)}catch{}B({streamError:b?.message||String(b)})}},async cancel(a){try{await p.cancel(a)}catch{}if(!t){z=!0,c?.info?.("AUTO",`client disconnected before completion — skip scoring worker=${d.pickedWorker}`);return}B({clientDisconnected:!0})}}),{status:a.status,statusText:a.statusText,headers:a.headers});return g?v(C,{worker:d.pickedWorker,requestId:d.requestId,cluster:d.pick?.cluster,confidence:d.pick?.confidence,routerLatencyMs:h,workerLatencyMs:e,exploration:d.exploration}):C}({response:y,recordEvent:o,log:p,baseEvent:J,ttfbMs:F??C,workerStartMs:G||Date.now()-C,emitHeaders:r,routerLatencyMs:j,routerInPool:q,seedHasCompletion:!!E?.hasCompletion,seedTokensIn:E?.tokensIn??null,seedTokensOut:E?.tokensOut??null,judgeCtx:w});return K&&(a=function(a,b=z.vh){try{if(!a?.body||"function"!=typeof a.body.getReader)return a;let c=a.body.getReader(),d=new TextDecoder,e=new TextEncoder,f="",g=!1,h=!1,i=a=>{a.enqueue(e.encode(`data: ${JSON.stringify({id:"chatcmpl-fbask",object:"chat.completion.chunk",created:Math.floor(Date.now()/1e3),model:"auto",choices:[{index:0,delta:{content:b},finish_reason:null}]})}
46
+ {"model":"<exact pool id>","cluster":"<one of: ${m.S1.join("|")}>","confidence":"high|low","reason":"<one line>","alternates":["..."]}`}],signals:q}}({comboName:d,pool:c,body:a,objective:r,learning:p,healthByModel:b,maxFewShots:x.maxFewShots??5,signals:H,workerCaps:D}),g=await K({routerBody:{model:t,messages:e,stream:!1,temperature:0,max_tokens:256},routerModel:t,candidates:c,routerTimeoutMs:u,childDepth:v,handleSingleModel:z,log:A,clientAbortSignal:B});if(g.response)return g;O=g.pick,P=g.routerLatencyMs}let R=function({pick:a,tierSplit:b,candidates:c,comboName:d,objective:e,learning:f,estInputTokens:g,log:h,providerBias:i}){if(!a||b?.disabled||"bandit_policy"!==a.reason&&"cached_route"!==a.reason)return null;let j=(b?.frontier||[]).filter(a=>c.includes(a));if(!j.length||!(0,y.EL)(d,a.cluster,e))return null;let k=(0,l.qK)(f?.banditTable?.[a.cluster]||{},e,j,{estInputTokens:g,providerBias:i})||j[0];return k&&k!==a.model?(h?.info?.("AUTO",`judge_flag_escalation → ${k} (cluster=${a.cluster})`),{...a,model:k,reason:"judge_flag_escalation",confidence:"high",alternates:c.filter(a=>a!==k).slice(0,2)}):null}({pick:O,tierSplit:I,candidates:c,comboName:d,objective:r,learning:p,estInputTokens:L,log:A,providerBias:C});R&&(O=R);let S=!1;if(Math.random()<s&&c.length>1){let a=(0,l.Ns)(p?.banditTable||null,O.cluster,c),b=a[Math.floor(Math.random()*a.length)];b!==O.model&&(A?.info?.("AUTO",`exploration → ${b} (ε=${s}, ${a.length}/${c.length} plausible)`),O={...O,model:b,reason:`exploration:${O.reason||""}`,confidence:"low"},S=!0)}return!M||Q||S||"judge_flag_escalation"===O.reason||"high"!==O.confidence||O.parseError||(0,w.s1)(N,{model:O.model,cluster:O.cluster,confidence:O.confidence},6e5),{pick:O,routerLatencyMs:P,exploration:S,signals:H,routerInPool:G,candidates:c,tierSplit:I}}async function K({routerBody:a,routerModel:b,candidates:c,routerTimeoutMs:d,childDepth:e,handleSingleModel:f,log:i,clientAbortSignal:j}){let k,l=0,n=Date.now();try{let g=await function(a,b,c,d=null){let e=S(b),f=new AbortController,g=T(f.signal,d)||f.signal;return new Promise((b,h)=>{if(d?.aborted)return void h(Error("client_aborted"));let i=setTimeout(()=>{try{f.abort()}catch{}h(Error(c||"timeout"))},e);d&&d.addEventListener("abort",()=>{clearTimeout(i);try{f.abort()}catch{}h(Error("client_aborted"))},{once:!0}),Promise.resolve().then(()=>a(g)).then(a=>{clearTimeout(i),b(a)},a=>{clearTimeout(i),h(a)})})}(c=>f(a,b,{sourceFormatOverride:"openai",bypassNativePassthrough:!0,signal:T(c,j),autoDepth:e,bypassPromptFilters:!0}),d,"router_timeout",j);l=Date.now()-n;let h=await (0,s.dO)(g);h.httpError?(i?.warn?.("AUTO",`router HTTP ${h.status}; using pool[0]`),k={model:c[0],cluster:"unknown",confidence:"low",reason:h.httpError,alternates:c.slice(1,3),parseError:h.httpError}):(k=function(a,b){var c,d;let e,f=b[0]||null,g={model:f,cluster:"unknown",confidence:"low",reason:"fallback",alternates:[]};if(!f)return{...g,model:null,parseError:"empty_pool"};if("string"!=typeof a||!a.trim())return{...g,reason:"empty_router_response",parseError:"empty"};let h=a.trim(),i=h.match(/```(?:json)?\s*([\s\S]*?)```/i);i&&(h=i[1].trim());let j=function(a){let b=a.indexOf("{");if(b<0)return null;let c=0,d=!1,e=!1;for(let f=b;f<a.length;f++){let g=a[f];if(d){e?e=!1:"\\"===g?e=!0:'"'===g&&(d=!1);continue}if('"'===g)d=!0;else if("{"===g)c++;else if("}"===g&&0==--c)return a.slice(b,f+1)}return null}(h);j&&(h=j);try{e=JSON.parse(h)}catch{try{let a=h.indexOf("{"),b=h.lastIndexOf("}");a>=0&&b>a&&(e=JSON.parse(h.slice(a,b+1)))}catch{return{...g,reason:"invalid_json",parseError:"json"}}}if(!e||"object"!=typeof e)return{...g,reason:"invalid_shape",parseError:"shape"};let k="string"==typeof e.model?e.model.trim():"";if(k&&!b.includes(k)){let a=p(k,b);a&&(k=a)}if(!b.includes(k)){return{model:f,cluster:(c=e.cluster,(0,m._v)(c)),confidence:"low",reason:q(e.reason)||"model_not_in_pool",alternates:r(e.alternates,b,f),parseError:"not_in_pool"}}let l="high"===e.confidence||"low"===e.confidence?e.confidence:"low";return{model:k,cluster:(d=e.cluster,(0,m._v)(d)),confidence:l,reason:q(e.reason),alternates:r(e.alternates,b,k)}}(h.text,c)).parseError?i?.warn?.("AUTO",`router parse ${k.parseError}; using ${k.model}`):i?.info?.("AUTO",`router → ${k.model} cluster=${k.cluster} conf=${k.confidence} (${l}ms)`)}catch(a){if(l=Date.now()-n,j?.aborted||a?.name==="AbortError"||a?.message==="client_aborted")return{response:(0,g.yj)(h.gx.BAD_REQUEST,"Client disconnected")};i?.warn?.("AUTO",`router failed: ${a.message}; pool[0]`),k={model:c[0],cluster:"unknown",confidence:"low",reason:a.message||"router_error",alternates:c.slice(1,3),parseError:"router_timeout"===a.message?"router_timeout":"error"}}return{pick:k,routerLatencyMs:l}}async function L({body:a,worker:b,pool:c,handleSingleModel:e,log:f,comboName:i,routerModel:j,objective:k,pick:l,routerLatencyMs:m,learningVersionId:n,exploration:o,signals:p,recordEvent:q,alternates:r=[],skippedRouter:t=!1,stats:u=[],autoDepth:v=1,comboDepth:w=0,routerInPool:x=!1,emitHeaders:y=!0,loadClusterP50:z=null,windowDays:A=14,clientAbortSignal:B=null,judgeCtx:C=null,tierSplit:D=null,feedbackCtx:E=null}){let F=l.model,G=await N({loadClusterP50:z,comboName:i,cluster:l.cluster,windowDays:A,stats:u}),H=(0,d.randomUUID)(),{attempts:I,attempted:J,tryWorker:K}=function({body:a,handleSingleModel:b,log:c,autoDepth:d,comboDepth:e=0,clientAbortSignal:f}){let g=new Set,h=[],i=async i=>{if(g.has(i))return null;g.add(i);let j=Date.now(),k=null;if(f?.aborted)return h.push({worker:i,ok:!1,status:499,latencyMs:Date.now()-j,reason:"client_aborted"}),null;try{k=await b(function(a){try{return"function"==typeof structuredClone?structuredClone(a):JSON.parse(JSON.stringify(a))}catch{return{...a}}}(a),i,{autoDepth:d,comboDepth:e,signal:f||void 0})}catch(a){return c?.warn?.("AUTO",`worker ${i} threw: ${a.message}`),h.push({worker:i,ok:!1,status:500,latencyMs:Date.now()-j}),null}let l=Date.now()-j;if(!k?.ok){h.push({worker:i,ok:!1,status:k?.status??500,latencyMs:l});try{await k?.body?.cancel?.()}catch{}return null}let m=await (0,s.wx)(k,c,{abortSignal:f}),n=Date.now()-j;return m.ok?(h.push({worker:i,ok:!0,status:m.result?.status??200,latencyMs:n}),{result:m.result,latencyMs:n,modelStr:i,preInspect:m.preInspect||null,ttfbMs:l,workerStartMs:j}):(c?.warn?.("AUTO",`worker ${i} empty/incomplete response → fallback (${m.reason||"empty"})`),h.push({worker:i,ok:!1,status:502,latencyMs:n,reason:m.reason||"empty_response"}),null)};return{attempts:h,attempted:g,tryWorker:i}}({body:a,handleSingleModel:e,log:f,autoDepth:v,comboDepth:w,clientAbortSignal:B}),Q=await O({worker:b,alternates:r,pool:c,attempted:J,attempts:I,tryWorker:K,tierSplit:D,log:f});return Q?(!t&&I.some(a=>!a.ok)&&P({attempts:I,recordEvent:q,log:f,body:a,comboName:i,signals:p,pick:l,routerModel:j,routerLatencyMs:m,learningVersionId:n,exploration:o,skippedRouter:t,objective:k,routerPickedWorker:F,clusterRefLatency:G,requestId:H,requestFallbackUsed:!0,allFailed:!1}),M({success:Q,attempts:I,requestId:H,routerPickedWorker:F,body:a,comboName:i,signals:p,pick:l,routerModel:j,routerLatencyMs:m,learningVersionId:n,exploration:o,skippedRouter:t,objective:k,recordEvent:q,log:f,routerInPool:x,emitHeaders:y,clusterRefLatency:G,judgeCtx:C,feedbackCtx:E})):(P({attempts:I,recordEvent:q,log:f,body:a,comboName:i,signals:p,pick:l,routerModel:j,routerLatencyMs:m,learningVersionId:n,exploration:o,skippedRouter:t,objective:k,routerPickedWorker:F,clusterRefLatency:G,requestId:H,requestFallbackUsed:I.length>1,allFailed:!0}),(0,g.yj)(h.gx.SERVICE_UNAVAILABLE,`Auto combo "${i}" all workers failed`))}async function M({success:a,attempts:b,requestId:c,routerPickedWorker:d,body:e,comboName:f,signals:g,pick:h,routerModel:i,routerLatencyMs:j,learningVersionId:k,exploration:l,skippedRouter:m,objective:n,recordEvent:o,log:p,routerInPool:q,emitHeaders:r,clusterRefLatency:t,judgeCtx:w=null,feedbackCtx:x=null}){let{result:y,latencyMs:C,modelStr:D,preInspect:E,ttfbMs:F,workerStartMs:G}=a,H=D!==d,I=b.some(a=>!a.ok)||H,J=function({body:a,comboName:b,signals:c,pick:d,routerModel:e,routerLatencyMs:f,learningVersionId:g,exploration:h,skippedRouter:i,objective:j,routerPickedWorker:k,winner:l,result:m,latencyMs:n,requestFallbackUsed:o,clusterRefLatency:p,attempts:q,requestId:r}){return{body:a,comboName:b,signals:c,pick:d,routerModel:e,routerLatencyMs:f,learningVersionId:g,exploration:h,skippedRouter:i,objective:j,routerPickedWorker:k,pickedWorker:l,workerStatus:m.status,workerLatencyMs:n,workerOk:!0,fallbackUsed:!1,retries:0,requestFallbackUsed:o,clusterP50LatencyMs:p,attemptsSnapshot:[...q],requestId:r,terminal:!0}}({body:e,comboName:f,signals:g,pick:h,routerModel:i,routerLatencyMs:j,learningVersionId:k,exploration:l,skippedRouter:m,objective:n,routerPickedWorker:d,winner:D,result:y,latencyMs:C,requestFallbackUsed:I,clusterRefLatency:t,attempts:b,requestId:c});if(m)return r?v(y,{worker:D,cluster:h.cluster,confidence:h.confidence||"high",routerLatencyMs:j,workerLatencyMs:C,skipped:!0}):y;let K=null;if(x&&x.feedbackAsk&&x.openAiWire)try{(0,z.YJ)(x.apiKeyHash);let a=(0,z.AF)({exploration:l,contested:x.contested,coldCell:x.coldCell,escalatedOrRescue:"judge_flag_escalation"===h.reason||I});(0,z.Kn)({apiKeyHash:x.apiKeyHash,conversationFp:x.conversationFp,askValue:a,feedbackAskEnabled:!0,gateOk:x.gateOk})&&(K=z.vh,(0,z.gp)({apiKeyHash:x.apiKeyHash,conversationFp:x.conversationFp,requestId:c}))}catch{}let L=(y.headers?.get?.("content-type")||"").toLowerCase();if((L.includes("text/event-stream")||L.includes("ndjson"))&&y.body){let a=function({response:a,recordEvent:b,log:c,baseEvent:d,ttfbMs:e,workerStartMs:f=null,emitHeaders:g=!0,routerLatencyMs:h=0,routerInPool:i=!1,seedHasCompletion:j=!1,seedTokensIn:k=null,seedTokensOut:l=null,judgeCtx:m=null}){let n=a.body,o="number"==typeof f&&Number.isFinite(f)?f:Date.now()-(e||0);if(!n||"function"!=typeof n.getReader)return u(b,c,{...d,hasCompletion:!!j,tokensIn:k,tokensOut:l,workerLatencyMs:Date.now()-o,routerInPool:i,metaExtra:{streamObserved:!1}}),g?v(a,{worker:d.pickedWorker,requestId:d.requestId,cluster:d.pick?.cluster,confidence:d.pick?.confidence,routerLatencyMs:h,workerLatencyMs:Date.now()-o,exploration:d.exploration}):a;let p=n.getReader(),q=new TextDecoder,r="",t=!!j,w=k??null,x=l??null,y=!1,z=!1,A=a=>{let b=(0,s.Ah)(a);b&&(w=b.prompt_tokens??w,(x=b.completion_tokens??x)>0&&(t=!0)),!t&&(0,s.Ki)(a)&&(t=!0)},B=(a={})=>{if(z)return;z=!0;try{let a=q.decode();a&&A(a)}catch{}let f=Date.now()-o,g=t&&!y;u(b,c,{...d,workerOk:d.workerOk&&g,workerStatus:g?d.workerStatus:502,workerLatencyMs:f,hasCompletion:t,tokensIn:w,tokensOut:x,routerInPool:i,metaExtra:{streamObserved:!0,streamDied:y,ttfbMs:e,...a}}),function(a,b,c,d,e){if(a&&c&&a.shouldSample())try{let c=d()||"";if(!c)return;Promise.resolve(a.runJudge({baseEvent:b,assistantText:c})).catch(a=>e?.warn?.("AUTO",`judge dispatch failed: ${a?.message||a}`))}catch(a){e?.warn?.("AUTO",`judge dispatch failed: ${a?.message||a}`)}}(m,d,g,()=>(0,s.NT)(r),c)},C=new Response(new ReadableStream({async pull(a){try{let{done:b,value:c}=await p.read();if(b){a.close(),B();return}if(c){if(c.byteLength){let a=q.decode(c,{stream:!0});if(r=(r+a).slice(-128e3),t){let b=(0,s.Ah)(a);b&&(w=b.prompt_tokens??w,x=b.completion_tokens??x)}else A(a.length<512?r.slice(-512):a)}a.enqueue(c)}}catch(b){y=!0;try{a.error(b)}catch{}B({streamError:b?.message||String(b)})}},async cancel(a){try{await p.cancel(a)}catch{}if(!t){z=!0,c?.info?.("AUTO",`client disconnected before completion — skip scoring worker=${d.pickedWorker}`);return}B({clientDisconnected:!0})}}),{status:a.status,statusText:a.statusText,headers:a.headers});return g?v(C,{worker:d.pickedWorker,requestId:d.requestId,cluster:d.pick?.cluster,confidence:d.pick?.confidence,routerLatencyMs:h,workerLatencyMs:e,exploration:d.exploration}):C}({response:y,recordEvent:o,log:p,baseEvent:J,ttfbMs:F??C,workerStartMs:G||Date.now()-C,emitHeaders:r,routerLatencyMs:j,routerInPool:q,seedHasCompletion:!!E?.hasCompletion,seedTokensIn:E?.tokensIn??null,seedTokensOut:E?.tokensOut??null,judgeCtx:w});return K&&(a=function(a,b=z.vh){try{if(!a?.body||"function"!=typeof a.body.getReader)return a;let c=a.body.getReader(),d=new TextDecoder,e=new TextEncoder,f="",g=!1,h=!1,i=a=>{a.enqueue(e.encode(`data: ${JSON.stringify({id:"chatcmpl-fbask",object:"chat.completion.chunk",created:Math.floor(Date.now()/1e3),model:"auto",choices:[{index:0,delta:{content:b},finish_reason:null}]})}
47
47
 
48
48
  `)),h=!0},j=(a,b)=>{if("data: [DONE]"!==b.trim()){if(b.startsWith("data: ")&&!h)try{let c=JSON.parse(b.slice(6));c?.choices?.[0]?.finish_reason!=null&&i(a)}catch{}a.enqueue(e.encode(`${b}
49
- `))}},k=a=>{let b=f.indexOf("\n");for(;b>=0;){let c=f.slice(0,b);f=f.slice(b+1),j(a,c),b=f.indexOf("\n")}},l=new ReadableStream({async pull(a){if(!g)try{let{done:b,value:l}=await c.read();if(b)return void(a=>{if(!g){g=!0;try{f+=d.decode(),k(a),f&&(j(a,f),f=""),h||i(a),a.enqueue(e.encode("data: [DONE]\n\n"))}catch{}try{a.close()}catch{}}})(a);l&&(f+=d.decode(l,{stream:!0}),k(a))}catch{g=!0;try{a.close()}catch{}}},async cancel(a){g=!0;try{await c.cancel(a)}catch{}}});return new Response(l,{status:a.status,statusText:a.statusText,headers:A(a.headers)})}catch{return a}}(a,K)),a}let{tokensIn:N,tokensOut:O,hasCompletion:P}=await Q({result:y,preInspect:E}),R=w&&P&&w.shouldSample()?function(a){try{return a?.clone?.()||null}catch{return null}}(y):null,S=u(o,p,{...J,hasCompletion:P,tokensIn:N,tokensOut:O,routerInPool:q});R&&function(a,b,c,d){if(a&&c)try{Promise.resolve().then(async()=>{let d=await (0,s.dO)(c),e=d?.text||"";e&&await a.runJudge({baseEvent:b,assistantText:e})}).catch(a=>d?.warn?.("AUTO",`judge dispatch failed: ${a?.message||a}`))}catch(a){d?.warn?.("AUTO",`judge dispatch failed: ${a?.message||a}`)}}(w,J,R,p);let T=r?v(y,{worker:D,requestId:c,cluster:h.cluster,confidence:h.confidence,score:S,routerLatencyMs:j,workerLatencyMs:C,exploration:J.exploration}):y;return K&&(T=await B(T,K)),T}async function N({loadClusterP50:a,comboName:b,cluster:c,windowDays:d,stats:e}){let f=null;if("function"==typeof a&&c)try{f=await a(b,c,d)}catch{f=null}return null==f&&(f=function(a,b){let c=(a||[]).filter(a=>a.cluster===b&&null!=a.avgLatencyMs&&Number(a.n)>0);if(!c.length)return null;let d=0,e=0;for(let a of c){let b=Number(a.n)||0;d+=b,e+=(Number(a.avgLatencyMs)||0)*b}return d?e/d:null}(e,c)),f}async function O({worker:a,alternates:b,pool:c,attempted:d,tryWorker:e,tierSplit:f=null,log:g}){let h=await e(a),i=function(a,b){if(!a||a.disabled)return!1;let c=new Set(a.cheap||[]),d=a.frontier||[];return c.has(b)&&d.length>0}(f,a);if(!h&&!i&&Array.isArray(b)){for(let a of b)if(!(!a||d.has(a))&&c.includes(a)&&(g?.info?.("AUTO",`worker failed → alternate ${a}`),h=await e(a)))break}if(!h&&c.length>1){var j,k,l,m;let b,n,o;for(let p of i?(j=c,k=f,l=a,m=g,b=new Set(k.frontier||[]),n=j.filter(a=>b.has(a)),o=j.filter(a=>!b.has(a)),m?.info?.("AUTO",`escalation: cheap ${l} failed → frontier-first fallback`),[...n,...o]):c)if(!d.has(p)&&(g?.info?.("AUTO",`fallback chain → ${p}`),h=await e(p)))break}return h}function P({attempts:a,recordEvent:b,log:c,body:d,comboName:e,signals:f,pick:g,routerModel:h,routerLatencyMs:i,learningVersionId:j,exploration:k,skippedRouter:l,objective:m,routerPickedWorker:n,clusterRefLatency:o,requestId:p,requestFallbackUsed:q,allFailed:r}){a.length&&function({attempts:a,recordEvent:b,log:c,body:d,comboName:e,signals:f,pick:g,routerModel:h,routerLatencyMs:i,learningVersionId:j,exploration:k,skippedRouter:l,objective:m,routerPickedWorker:n,clusterRefLatency:o,requestId:p,requestFallbackUsed:q,allFailed:r}){let s=(a||[]).filter(a=>!a.ok);s.forEach((t,v)=>{let w=v===s.length-1;u(b,c,{body:d,comboName:e,signals:f,pick:g,routerModel:h,routerLatencyMs:i,learningVersionId:j,exploration:k,skippedRouter:l,objective:m,routerPickedWorker:n,pickedWorker:t.worker,workerStatus:t.status,workerLatencyMs:t.latencyMs,workerOk:!1,fallbackUsed:s.length>1&&v>0,retries:v,hasCompletion:!1,tokensIn:null,tokensOut:null,clusterP50LatencyMs:o,attemptsSnapshot:a,requestFallbackUsed:!!q||s.length>1,requestId:p,terminal:!!r&&w})})}({attempts:a,recordEvent:b,log:c,body:d,comboName:e,signals:f,pick:g,routerModel:h,routerLatencyMs:i,learningVersionId:j,exploration:k,skippedRouter:l,objective:m,routerPickedWorker:n,clusterRefLatency:o,requestId:p,requestFallbackUsed:q,allFailed:r})}async function Q({result:a,preInspect:b}){let c=b?.tokensIn??null,d=b?.tokensOut??null,e=!!b?.hasCompletion;if(null==b){e=!1;try{let b=await a.clone().json(),f=(0,s.f5)(b);f&&(c=f.prompt_tokens??null,d=f.completion_tokens??null),e=(0,s.R5)(b)||"number"==typeof d&&d>0}catch{e=!1}}return{tokensIn:c,tokensOut:d,hasCompletion:e}}function R(a,b,c={}){let d=c?.[a],e=d&&"object"==typeof d&&Object.keys(d).length>0?d:(()=>{let[b,...c]=a.split("/"),d=c.join("/")||b;return(0,f.nl)(b,d)||{}})();return b.every(a=>"vision"===a?!!e.vision:"pdf"!==a||!!e.pdf)}function S(a){let b=Number(a);return!Number.isFinite(b)||b<=0?15e3:Math.min(b,12e4)}function T(...a){let b=a.filter(a=>a&&"object"==typeof a);if(!b.length)return;if(1===b.length)return b[0];let c=new AbortController,d=()=>{try{c.abort()}catch{}};for(let a of b){if(a.aborted){d();break}a.addEventListener("abort",d,{once:!0})}return c.signal}},81294:(a,b,c)=>{c.d(b,{f:()=>n});var d=c(2142),e=c(1996),f=c(61522),g=c(15083);let h=global.__feedbackRelearn??={counts:Object.create(null)};var i=c(19291),j=c(15717),k=c(38775);let l=Object.create(null);async function m(a){delete l[a];try{let b=await (0,j.mt)(),c=b?.comboStrategies?.[a]||{};if("auto"!==c.fallbackStrategy||c.freezeLearning||!1===c.learningEnabled||!c.routerModel)return;let d=null;try{d=(await (0,k.getComboModels)(a)||[]).filter(a=>a&&a!==c.routerModel)}catch{d=null}await (0,i.P3)(a,{force:!1,source:"feedback",minEvents:c.autoTuning?.minEventsBeforeLearn??50,windowDays:c.learningWindowDays??14,maxFewShots:c.autoTuning?.maxFewShots??5,objective:c.objective||"balanced",pool:d,log:{info:(a,b)=>console.log(`[${a}] ${b}`),warn:(a,b)=>console.warn(`[${a}] ${b}`)}})}catch(a){console.warn("[ROUTING_LEARN] feedback relearn failed:",a?.message||a)}}async function n(a,b){try{if(!a||null==b)return;let c=await (0,d.Oe)(a);if(!c?.comboName||!c?.cluster||!c?.pickedWorker)return;(0,e.QA)(c.comboName,c.cluster,c.pickedWorker,b),0>Number(b)&&((0,f.a8)(c.comboName),(0,g.C6)(c.comboName,c.cluster)),function(a){try{if(!a||!function(a,b=3){return!!a&&(h.counts[a]=(h.counts[a]||0)+1,h.counts[a]>=b&&(h.counts[a]=0,!0))}(a))return;l[a]&&clearTimeout(l[a]),l[a]=setTimeout(()=>m(a),6e4),"function"==typeof l[a].unref&&l[a].unref()}catch{}}(c.comboName)}catch{}}}};
49
+ `))}},k=a=>{let b=f.indexOf("\n");for(;b>=0;){let c=f.slice(0,b);f=f.slice(b+1),j(a,c),b=f.indexOf("\n")}},l=new ReadableStream({async pull(a){if(!g)try{let{done:b,value:l}=await c.read();if(b)return void(a=>{if(!g){g=!0;try{f+=d.decode(),k(a),f&&(j(a,f),f=""),h||i(a),a.enqueue(e.encode("data: [DONE]\n\n"))}catch{}try{a.close()}catch{}}})(a);l&&(f+=d.decode(l,{stream:!0}),k(a))}catch{g=!0;try{a.close()}catch{}}},async cancel(a){g=!0;try{await c.cancel(a)}catch{}}});return new Response(l,{status:a.status,statusText:a.statusText,headers:A(a.headers)})}catch{return a}}(a,K)),a}let{tokensIn:N,tokensOut:O,hasCompletion:P}=await Q({result:y,preInspect:E}),R=w&&P&&w.shouldSample()?function(a){try{return a?.clone?.()||null}catch{return null}}(y):null,S=u(o,p,{...J,hasCompletion:P,tokensIn:N,tokensOut:O,routerInPool:q});R&&function(a,b,c,d){if(a&&c)try{Promise.resolve().then(async()=>{let d=await (0,s.dO)(c),e=d?.text||"";e&&await a.runJudge({baseEvent:b,assistantText:e})}).catch(a=>d?.warn?.("AUTO",`judge dispatch failed: ${a?.message||a}`))}catch(a){d?.warn?.("AUTO",`judge dispatch failed: ${a?.message||a}`)}}(w,J,R,p);let T=r?v(y,{worker:D,requestId:c,cluster:h.cluster,confidence:h.confidence,score:S,routerLatencyMs:j,workerLatencyMs:C,exploration:J.exploration}):y;return K&&(T=await B(T,K)),T}async function N({loadClusterP50:a,comboName:b,cluster:c,windowDays:d,stats:e}){let f=null;if("function"==typeof a&&c)try{f=await a(b,c,d)}catch{f=null}return null==f&&(f=function(a,b){let c=(a||[]).filter(a=>a.cluster===b&&null!=a.avgLatencyMs&&Number(a.n)>0);if(!c.length)return null;let d=0,e=0;for(let a of c){let b=Number(a.n)||0;d+=b,e+=(Number(a.avgLatencyMs)||0)*b}return d?e/d:null}(e,c)),f}async function O({worker:a,alternates:b,pool:c,attempted:d,attempts:e=[],tryWorker:f,tierSplit:g=null,log:h}){let i=await f(a),j=[...e].reverse().find(b=>b.worker===a&&!b.ok)?.status,k=function(a,b,c=null){if(!a||a.disabled)return!1;let d=new Set(a.cheap||[]),e=a.frontier||[];return!!d.has(b)&&0!==e.length&&(null==c||408===c||429===c||c>=500&&c<=599)}(g,a,j);if(!i&&!k&&Array.isArray(b)){for(let a of b)if(!(!a||d.has(a))&&c.includes(a)&&(h?.info?.("AUTO",`worker failed → alternate ${a}`),i=await f(a)))break}if(!i&&c.length>1){var l,m,n,o;let b,e,j;for(let p of k?(l=c,m=g,n=a,o=h,b=new Set(m.frontier||[]),e=l.filter(a=>b.has(a)),j=l.filter(a=>!b.has(a)),o?.info?.("AUTO",`escalation: cheap ${n} failed → frontier-first fallback`),[...e,...j]):c)if(!d.has(p)&&(h?.info?.("AUTO",`fallback chain → ${p}`),i=await f(p)))break}return i}function P({attempts:a,recordEvent:b,log:c,body:d,comboName:e,signals:f,pick:g,routerModel:h,routerLatencyMs:i,learningVersionId:j,exploration:k,skippedRouter:l,objective:m,routerPickedWorker:n,clusterRefLatency:o,requestId:p,requestFallbackUsed:q,allFailed:r}){a.length&&function({attempts:a,recordEvent:b,log:c,body:d,comboName:e,signals:f,pick:g,routerModel:h,routerLatencyMs:i,learningVersionId:j,exploration:k,skippedRouter:l,objective:m,routerPickedWorker:n,clusterRefLatency:o,requestId:p,requestFallbackUsed:q,allFailed:r}){let s=(a||[]).filter(a=>!a.ok);s.forEach((t,v)=>{let w=v===s.length-1;u(b,c,{body:d,comboName:e,signals:f,pick:g,routerModel:h,routerLatencyMs:i,learningVersionId:j,exploration:k,skippedRouter:l,objective:m,routerPickedWorker:n,pickedWorker:t.worker,workerStatus:t.status,workerLatencyMs:t.latencyMs,workerOk:!1,fallbackUsed:s.length>1&&v>0,retries:v,hasCompletion:!1,tokensIn:null,tokensOut:null,clusterP50LatencyMs:o,attemptsSnapshot:a,requestFallbackUsed:!!q||s.length>1,requestId:p,terminal:!!r&&w})})}({attempts:a,recordEvent:b,log:c,body:d,comboName:e,signals:f,pick:g,routerModel:h,routerLatencyMs:i,learningVersionId:j,exploration:k,skippedRouter:l,objective:m,routerPickedWorker:n,clusterRefLatency:o,requestId:p,requestFallbackUsed:q,allFailed:r})}async function Q({result:a,preInspect:b}){let c=b?.tokensIn??null,d=b?.tokensOut??null,e=!!b?.hasCompletion;if(null==b){e=!1;try{let b=await a.clone().json(),f=(0,s.f5)(b);f&&(c=f.prompt_tokens??null,d=f.completion_tokens??null),e=(0,s.R5)(b)||"number"==typeof d&&d>0}catch{e=!1}}return{tokensIn:c,tokensOut:d,hasCompletion:e}}function R(a,b,c={}){let d=c?.[a],e=d&&"object"==typeof d&&Object.keys(d).length>0?d:(()=>{let[b,...c]=a.split("/"),d=c.join("/")||b;return(0,f.nl)(b,d)||{}})();return b.every(a=>"vision"===a?!!e.vision:"pdf"!==a||!!e.pdf)}function S(a){let b=Number(a);return!Number.isFinite(b)||b<=0?15e3:Math.min(b,12e4)}function T(...a){let b=a.filter(a=>a&&"object"==typeof a);if(!b.length)return;if(1===b.length)return b[0];let c=new AbortController,d=()=>{try{c.abort()}catch{}};for(let a of b){if(a.aborted){d();break}a.addEventListener("abort",d,{once:!0})}return c.signal}},81294:(a,b,c)=>{c.d(b,{f:()=>n});var d=c(2142),e=c(1996),f=c(61522),g=c(15083);let h=global.__feedbackRelearn??={counts:Object.create(null)};var i=c(19291),j=c(15717),k=c(38775);let l=Object.create(null);async function m(a){delete l[a];try{let b=await (0,j.mt)(),c=b?.comboStrategies?.[a]||{};if("auto"!==c.fallbackStrategy||c.freezeLearning||!1===c.learningEnabled||!c.routerModel)return;let d=null;try{d=(await (0,k.getComboModels)(a)||[]).filter(a=>a&&a!==c.routerModel)}catch{d=null}await (0,i.P3)(a,{force:!1,source:"feedback",minEvents:c.autoTuning?.minEventsBeforeLearn??50,windowDays:c.learningWindowDays??14,maxFewShots:c.autoTuning?.maxFewShots??5,objective:c.objective||"balanced",pool:d,log:{info:(a,b)=>console.log(`[${a}] ${b}`),warn:(a,b)=>console.warn(`[${a}] ${b}`)}})}catch(a){console.warn("[ROUTING_LEARN] feedback relearn failed:",a?.message||a)}}async function n(a,b){try{if(!a||null==b)return;let c=await (0,d.Oe)(a);if(!c?.comboName||!c?.cluster||!c?.pickedWorker)return;(0,e.QA)(c.comboName,c.cluster,c.pickedWorker,b),0>Number(b)&&((0,f.a8)(c.comboName),(0,g.C6)(c.comboName,c.cluster)),function(a){try{if(!a||!function(a,b=3){return!!a&&(h.counts[a]=(h.counts[a]||0)+1,h.counts[a]>=b&&(h.counts[a]=0,!0))}(a))return;l[a]&&clearTimeout(l[a]),l[a]=setTimeout(()=>m(a),6e4),"function"==typeof l[a].unref&&l[a].unref()}catch{}}(c.comboName)}catch{}}}};
@@ -0,0 +1 @@
1
+ "use strict";exports.id=1351,exports.ids=[1351],exports.modules={4630:(a,b,c)=>{c.d(b,{Ak:()=>e,Yg:()=>h,sr:()=>d.sr,xq:()=>d.xq});var d=c(45350);function e(a){return(a?.providerSpecificData?.baseUrl?.trim()||"http://localhost:11434").replace(/\/$/,"")}let f=d.xq["xiaomi-tokenplan"]?.regions||{},g=d.xq["xiaomi-tokenplan"]?.defaultRegion;function h(a){return f[a?.providerSpecificData?.region]||f[g]}},18271:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{GET:()=>m,refreshAndUpdateCredentials:()=>l});var e=c(30369),f=c(15717),g=c(56002),h=c(48400),i=c(39326),j=c(40615),k=a([e,h]);[e,h]=k.then?(await k)():k;let n=["expired","authentication","unauthorized","401","re-authorize"];async function l(a,b=!1,c=null){let d=(0,h.getExecutor)(a.provider),e={accessToken:a.accessToken,refreshToken:a.refreshToken,idToken:a.idToken,expiresAt:a.expiresAt||a.tokenExpiresAt,lastRefreshAt:a.lastRefreshAt,connectionId:a.id,providerSpecificData:a.providerSpecificData,copilotToken:a.providerSpecificData?.copilotToken,copilotTokenExpiresAt:a.providerSpecificData?.copilotTokenExpiresAt};if(!(b||d.needsRefresh(e)))return{connection:a,refreshed:!1};let g=await d.refreshCredentials(e,console,c);if(!g){if(a.accessToken)return{connection:a,refreshed:!1};throw Error("Failed to refresh credentials. Please re-authorize the connection.")}let i={updatedAt:new Date().toISOString()};g.accessToken&&(i.accessToken=g.accessToken),g.refreshToken&&(i.refreshToken=g.refreshToken),g.idToken&&(i.idToken=g.idToken),g.lastRefreshAt&&(i.lastRefreshAt=g.lastRefreshAt),g.expiresIn?(i.expiresAt=new Date(Date.now()+1e3*g.expiresIn).toISOString(),i.expiresIn=g.expiresIn):g.expiresAt&&(i.expiresAt=g.expiresAt);let j={...g.providerSpecificData||{},...g.copilotToken?{copilotToken:g.copilotToken}:{},...g.copilotTokenExpiresAt?{copilotTokenExpiresAt:g.copilotTokenExpiresAt}:{}};return Object.keys(j).length>0&&(i.providerSpecificData={...a.providerSpecificData||{},...j}),await (0,f.updateProviderConnection)(a.id,i),{connection:{...a,...i,providerSpecificData:i.providerSpecificData||a.providerSpecificData},refreshed:!0}}async function m(a,{params:b}){let c;try{let{connectionId:d}=await b;if(!d||"string"!=typeof d||d.length>200)return Response.json({error:"Invalid connection id"},{status:400});let e="1"===new URL(a.url).searchParams.get("force");if(!(c=await (0,f.Mc)(d)))return Response.json({error:"Connection not found"},{status:404});let h="oauth"===c.authType,k=("apikey"===c.authType||"api_key"===c.authType)&&j.jO.includes(c.provider);if(!h&&!k)return Response.json({error:"Usage not available for this connection"},{status:400});let m=await (0,i.B)(c.providerSpecificData),o={connectionProxyEnabled:!0===m.connectionProxyEnabled,connectionProxyUrl:m.connectionProxyUrl||"",connectionNoProxy:m.connectionNoProxy||"",vercelRelayUrl:m.vercelRelayUrl||"",strictProxy:!1};if(h)try{c=(await l(c,!1,o)).connection}catch(a){return console.error("[Usage API] Credential refresh failed:",a),Response.json({error:"Credential refresh failed. Please re-authorize the connection."},{status:401})}let p=await (0,g.my)(c,o,{force:e});if(h&&function(a){if(!a?.message)return!1;let b=a.message.toLowerCase();return n.some(a=>b.includes(a))}(p)&&c.refreshToken)try{c=(await l(c,!0,o)).connection,p=await (0,g.my)(c,o,{force:e})}catch(a){console.warn(`[Usage] ${c.provider}: force refresh failed: ${a.message}`)}return Response.json(p)}catch(b){let a=c?.provider??"unknown";return console.warn(`[Usage] ${a}: ${b.message}`),Response.json({error:"Failed to fetch usage"},{status:500})}}d()}catch(a){d(a)}})},39326:(a,b,c)=>{function d(a){return null==a?"":String(a).trim()}async function e(a={}){try{let b=function(a={}){let b=a?.connectionProxyEnabled===!0,c=d(a?.connectionProxyUrl);return{connectionProxyEnabled:b,connectionProxyUrl:c,connectionNoProxy:d(a?.connectionNoProxy)}}(a);if(b.connectionProxyEnabled&&b.connectionProxyUrl)return{source:"legacy",proxyPoolId:null,proxyPool:null,...b,strictProxy:!1,vercelRelayUrl:""};return{source:"none",proxyPoolId:null,proxyPool:null,connectionProxyEnabled:!1,connectionProxyUrl:"",connectionNoProxy:b.connectionNoProxy||"",strictProxy:!1,vercelRelayUrl:""}}catch(a){return console.error("[resolveConnectionProxyConfig] Failed to resolve proxy config:",a),{source:"error",proxyPoolId:null,proxyPool:null,connectionProxyEnabled:!1,connectionProxyUrl:"",connectionNoProxy:"",strictProxy:!1,vercelRelayUrl:""}}}c.d(b,{B:()=>e})},49485:(a,b,c)=>{c.d(b,{RO:()=>m,Tl:()=>k,Yt:()=>l});var d=c(46052),e=c(88705);let f={usageUrl:(0,e.U)("codex").url,resetCreditsUrl:(0,e.U)("codex").resetCreditsUrl,resetCreditsConsumeUrl:(0,e.U)("codex").resetCreditsConsumeUrl};function g(a){if(!a)return null;let b=a instanceof Date?a:new Date("number"==typeof a&&a<1e12?1e3*a:a);return Number.isFinite(b.getTime())?b.toISOString():null}function h(a){return!a||"object"!=typeof a||Array.isArray(a)?null:a.rate_limit&&"object"==typeof a.rate_limit?a.rate_limit:a}function i(a){let b=Math.max(0,Math.min(100,(0,e.IQ)(a?.used_percent??a?.percent_used,0)));return{used:b,total:100,remaining:Math.max(0,100-b),resetAt:(0,e.eZ)(a?.reset_at??a?.resets_at??a?.resetAt??null),unlimited:!1}}function j(a,b,c){let d=h(c);if(!d)return!1;let e=d.primary_window||d.primary||c.primary_window||c.primary,f=d.secondary_window||d.secondary||c.secondary_window||c.secondary,g=!1;return e&&(a[b?`${b}_session`:"session"]=i(e),g=!0),f&&(a[b?`${b}_weekly`:"weekly"]=i(f),g=!0),g}async function k(a,b=null){try{let c=await (0,d.Fm)(f.usageUrl,{method:"GET",headers:{Authorization:`Bearer ${a}`,Accept:"application/json"},identity:"codex-cli",provider:"codex",format:"codex"},b);if(!c.ok)return{message:`Codex connected. Usage API temporarily unavailable (${c.status}).`};let g=await c.json(),i=g.rate_limit||g.rate_limits||g.rate_limits_by_limit_id?.codex||{},k=function(a){if(a.code_review_rate_limit||a.review_rate_limit)return a.code_review_rate_limit||a.review_rate_limit;let b=a.rate_limits_by_limit_id;return b&&"object"==typeof b&&!Array.isArray(b)?b.code_review||b.codex_review||b.review||null:(Array.isArray(a.additional_rate_limits)?a.additional_rate_limits:[]).find(a=>{let b=String(a?.limit_name||a?.metered_feature||a?.id||"").toLowerCase();return"code_review"===b||"codex_review"===b||"review"===b||b.includes("review")})||null}(g),l=Math.max(0,(0,e.IQ)(g.rate_limit_reset_credits?.available_count,0)),m={};return j(m,"",i),j(m,"review",k),{plan:g.plan_type||g.summary?.plan||"unknown",limitReached:h(i)?.limit_reached||!1,reviewLimitReached:h(k)?.limit_reached||!1,resetCredits:{availableCount:l},quotas:m}}catch(a){throw Error(`Failed to fetch Codex usage: ${a.message}`)}}async function l(a,b=null,c=null){if(!a)throw Error("No Codex access token available. Please re-authorize the connection.");let h=c?.workspaceId||c?.accountId||c?.chatgptAccountId||null,i={Authorization:`Bearer ${a}`,Accept:"application/json","OpenAI-Beta":"codex-1",originator:"codex_cli_rs"};h&&(i["ChatGPT-Account-ID"]=h);let j=await (0,d.Fm)(f.resetCreditsUrl,{method:"GET",headers:i,identity:"codex-cli",provider:"codex",format:"codex"},b),k=null;try{k=await j.json()}catch{k=null}if(!j.ok)throw Error(k?.message||k?.error||k?.detail||`Codex reset credits API unavailable (${j.status}).`);let m=Array.isArray(k?.credits)?k.credits:[];return{availableCount:Math.max(0,(0,e.IQ)(k?.available_count??k?.availableCount,0)),credits:m.map(a=>({status:String(a?.status||"unknown"),grantedAt:g(a?.granted_at??a?.grantedAt),expiresAt:g(a?.expires_at??a?.expiresAt)}))}}async function m(a,b,c=null){let g;if(!a)throw Error("No Codex access token available. Please re-authorize the connection.");if(!b||"string"!=typeof b)throw Error("A redeem request id is required to consume a Codex reset credit.");let h=null;try{g=await (0,d.Fm)(f.resetCreditsConsumeUrl,{method:"POST",headers:{Authorization:`Bearer ${a}`,Accept:"application/json","Content-Type":"application/json"},body:JSON.stringify({redeem_request_id:b}),identity:"codex-cli",provider:"codex",format:"codex"},c);let e=await g.text();h=e?JSON.parse(e):null}catch(a){throw Error(`Failed to consume Codex reset credit: ${a.message}`)}let i=h?.code||null,j=(0,e.IQ)(h?.windows_reset,0);return{ok:g.ok&&("reset"===i||j>0),noCredit:g.ok&&"no_credit"===i,status:g.status,code:i,windowsReset:j,message:h?.message||null,raw:h}}},56002:(a,b,c)=>{c.d(b,{RO:()=>o.RO,Yt:()=>o.Yt,my:()=>U});var d=c(46052),e=c(88705);async function f(a,b,c=null){try{if(!a)throw Error("No GitHub access token available. Please re-authorize the connection.");let b=await (0,d.Fm)((0,e.U)("github").url,{headers:{Authorization:`token ${a}`,Accept:"application/json"},identity:"copilot",provider:"github",format:"openai"},c);if(!b.ok){let a=await b.text();throw Error(`GitHub API error: ${a}`)}let f=await b.json();if(f.quota_snapshots){let a=f.quota_snapshots,b=(0,e.eZ)(f.quota_reset_date);return{plan:f.copilot_plan,resetDate:f.quota_reset_date,quotas:{chat:{...g(a.chat),resetAt:b},completions:{...g(a.completions),resetAt:b},premium_interactions:{...g(a.premium_interactions),resetAt:b}}}}if(f.monthly_quotas||f.limited_user_quotas){let a=f.monthly_quotas||{},b=f.limited_user_quotas||{},c=(0,e.eZ)(f.limited_user_reset_date);return{plan:f.copilot_plan||f.access_type_sku,resetDate:f.limited_user_reset_date,quotas:{chat:{used:b.chat||0,total:a.chat||0,unlimited:!1,resetAt:c},completions:{used:b.completions||0,total:a.completions||0,unlimited:!1,resetAt:c}}}}return{message:"GitHub Copilot connected. Unable to parse quota data."}}catch(a){throw Error(`Failed to fetch GitHub usage: ${a.message}`)}}function g(a){return a?{used:a.entitlement-a.remaining,total:a.entitlement,remaining:a.remaining,unlimited:a.unlimited||!1}:{used:0,total:0,unlimited:!0}}var h=c(28730);let i=(0,e.U)("antigravity");async function j(a,b,c=null){if(!a)return{plan:"Free",message:"Gemini CLI access token not available."};try{let d=(0,e.gD)(b?.projectId),f="Free";if(!d){let b=await k(a,c);d=(0,e.gD)(b?.cloudaicompanionProject),f=b?.currentTier?.name||f}if(!d)return{plan:f,message:"Gemini CLI project ID not available. Reconnect Gemini CLI, or configure a Google Cloud project with Gemini Code Assist access before checking quota."};let g=await (0,e.u9)((0,e.U)("gemini-cli").quotaUrl,{method:"POST",headers:{Authorization:`Bearer ${a}`,"Content-Type":"application/json"},body:JSON.stringify({project:d}),identity:"gemini-cli",provider:"gemini-cli",format:"gemini"},1e4,c);if(!g.ok)return{plan:f,message:`Gemini CLI quota error (${g.status}).`};let h=await g.json(),i={};if(Array.isArray(h.buckets))for(let a of h.buckets){if(!a.modelId||null==a.remainingFraction)continue;let b=Number(a.remainingFraction)||0,c=Math.round(1e3*b),d=Math.max(0,1e3-c);i[a.modelId]={used:d,total:1e3,resetAt:(0,e.eZ)(a.resetTime),remainingPercentage:100*b,unlimited:!1}}return{plan:f,quotas:i}}catch(a){return{message:`Gemini CLI error: ${a.message}`}}}async function k(a,b=null){try{let c=await (0,e.u9)((0,e.U)("gemini-cli").loadCodeAssistUrl,{method:"POST",headers:{Authorization:`Bearer ${a}`,"Content-Type":"application/json"},body:JSON.stringify({metadata:h.Cn}),identity:"gemini-cli",provider:"gemini-cli",format:"gemini"},1e4,b);if(!c.ok)return null;return await c.json()}catch{return null}}async function l(a,b,c=null){try{let b=await m(a,c),d=b?.cloudaicompanionProject||null,f=await (0,e.u9)(i.quotaApiUrl,{method:"POST",headers:{Authorization:`Bearer ${a}`,"Content-Type":"application/json","X-Client-Name":"antigravity"},body:JSON.stringify({...d?{project:d}:{}}),identity:"antigravity",provider:"antigravity",format:"antigravity"},1e4,c);if(403===f.status)return{message:"Antigravity quota API access forbidden. Chat may still work.",quotas:{}};if(401===f.status)return{message:"Antigravity quota API authentication expired. Chat may still work.",quotas:{}};if(!f.ok)throw Error(`Antigravity API error: ${f.status}`);let g=await f.json(),h={};if(g.models){let a=["gemini-3-flash-agent","gemini-3.5-flash-low","gemini-3.5-flash-extra-low","gemini-pro-agent","gemini-3.1-pro-low","claude-sonnet-4-6","claude-opus-4-6-thinking","gpt-oss-120b-medium","gemini-3-flash","gemini-3.1-flash-image","gemini-3-pro-image"];for(let[b,c]of Object.entries(g.models)){if(!c.quotaInfo||c.isInternal||!a.includes(b))continue;let d=c.quotaInfo.remainingFraction||0,f=100*d,g=Math.round(1e3*d),i=1e3-g;h[b]={used:i,total:1e3,resetAt:(0,e.eZ)(c.quotaInfo.resetTime),remainingPercentage:f,unlimited:!1,displayName:c.displayName||b}}}return{plan:b?.currentTier?.name||"Unknown",quotas:h,subscriptionInfo:b}}catch(a){return console.error("[Antigravity Usage] Error:",a.message,a.cause),{message:`Antigravity error: ${a.message}`}}}async function m(a,b=null){try{let c=await (0,e.u9)(i.loadProjectApiUrl,{method:"POST",headers:{Authorization:`Bearer ${a}`,"Content-Type":"application/json"},body:JSON.stringify({metadata:h.Cn,mode:1}),identity:"antigravity",provider:"antigravity",format:"antigravity"},1e4,b);if(!c.ok)return null;return await c.json()}catch(a){return console.error("[Antigravity Subscription] Error:",a.message),null}}var n=c(98594),o=c(49485),p=c(3148);async function q(a,b,c=null){let f=b?.authMethod||"builder-id",g="api_key"===f,h=g?{tokentype:"API_KEY"}:{},i="external_idp"===f?{TokenType:"EXTERNAL_IDP"}:{},j=g?b?.profileArn||"":b?.profileArn||(0,p.We)(f),k=new URLSearchParams({isEmailRequired:"true",origin:"AI_EDITOR",resourceType:"AGENTIC_REQUEST"}),l=!1,m=[];for(let b of[{name:"codewhisperer-get",run:async()=>(0,d.Fm)(`${(0,e.U)("kiro").cwHost}${(0,e.U)("kiro").limitsPath}?${k.toString()}`,{method:"GET",headers:{Authorization:`Bearer ${a}`,Accept:"application/json","x-amz-user-agent":"aws-sdk-js/1.0.0 KiroIDE","user-agent":"aws-sdk-js/1.0.0 KiroIDE",...h,...i}},c)},{name:"codewhisperer-post",run:async()=>(0,d.Fm)((0,e.U)("kiro").cwHost,{method:"POST",headers:{Authorization:`Bearer ${a}`,"Content-Type":"application/x-amz-json-1.0","x-amz-target":"AmazonCodeWhispererService.GetUsageLimits",Accept:"application/json",...h,...i},body:JSON.stringify({origin:"AI_EDITOR",...j?{profileArn:j}:{},resourceType:"AGENTIC_REQUEST"})},c)},{name:"q-get",run:async()=>{let b=new URLSearchParams({origin:"AI_EDITOR",...j?{profileArn:j}:{},resourceType:"AGENTIC_REQUEST"});return(0,d.Fm)(`${(0,e.U)("kiro").qHost}${(0,e.U)("kiro").limitsPath}?${b}`,{method:"GET",headers:{Authorization:`Bearer ${a}`,Accept:"application/json",...h,...i}},c)}}])try{let a=await b.run();if(!a.ok){let c=await a.text().catch(()=>"");(401===a.status||403===a.status)&&(l=!0),m.push(`${b.name}:${a.status}${c?`:${c}`:""}`);continue}let c=await a.json();return function(a){let b=a.usageBreakdownList||[],c={},d=(0,e.eZ)(a.nextDateReset||a.resetDate);return b.forEach(a=>{let b=a.resourceType?.toLowerCase()||"unknown",f=a.currentUsageWithPrecision||0,g=a.usageLimitWithPrecision||0;if(c[b]={used:f,total:g,remaining:g-f,resetAt:d,unlimited:!1},a.freeTrialInfo){let f=a.freeTrialInfo.currentUsageWithPrecision||0,g=a.freeTrialInfo.usageLimitWithPrecision||0;c[`${b}_freetrial`]={used:f,total:g,remaining:g-f,resetAt:(0,e.eZ)(a.freeTrialInfo.freeTrialExpiry||d),unlimited:!1}}}),{plan:a.subscriptionInfo?.subscriptionTitle||"Kiro",quotas:c}}(c)}catch(a){m.push(`${b.name}:${a.message}`)}return l&&"idc"===f?{message:"Kiro quota API is unavailable for the current AWS IAM Identity Center session. Chat may still work. If this persists after renewing your session, reconnect Kiro.",quotas:{}}:l&&("google"===f||"github"===f)?{message:"Kiro quota API authentication expired. Chat may still work.",quotas:{}}:l?{message:"Kiro quota API rejected the current token. Chat may still work.",quotas:{}}:{message:m.length>0?`Unable to fetch Kiro usage right now. (${m[m.length-1]})`:"Unable to fetch Kiro usage right now.",quotas:{}}}let r={minimax:(0,e.U)("minimax").urls,"minimax-cn":(0,e.U)("minimax-cn").urls};function s(a,b,c){return a&&"object"==typeof a?a[b]??a[c]??null:null}function t(a,b,c){if(!a||"object"!=typeof a)return null;let d=a[b]??a[c];if(null==d)return null;let e=Number(d);return Number.isFinite(e)?Math.max(0,Math.min(100,e)):null}function u(a){return Math.max(0,Number(s(a,"current_interval_total_count","currentIntervalTotalCount"))||0)}function v(a){return Math.max(0,Number(s(a,"current_weekly_total_count","currentWeeklyTotalCount"))||0)}function w(a){return!!(u(a)>0||v(a)>0)||null!==t(a,"current_interval_remaining_percent","currentIntervalRemainingPercent")||null!==t(a,"current_weekly_remaining_percent","currentWeeklyRemainingPercent")}function x(a,b,c,d,f,g,h,i,j,k){let l=d(c),m=t(c,h,i);if(l<=0&&null===m)return;let n=Math.max(0,Number(s(c,f,g))||0),o=l,p=n;l<=0&&(o=100,p=k?Math.round(m/100*o):Math.round(o*(1-m/100))),a[b]=function(a,b,c,d,e=null){var f,g,h;let i=Math.max(0,a),j=d?Math.max(i-b,0):Math.min(Math.max(0,b),i),k=Math.max(i-j,0),l=(f=e,g=k,h=i,null!=f&&Number.isFinite(f)?Math.max(0,Math.min(100,f)):h>0?Math.max(0,Math.min(100,g/h*100)):0);return{used:j,total:i,remaining:k,remainingPercentage:l,resetAt:c,unlimited:!1}}(o,p,function(a,b,c,d,f,g){let h=Number(s(a,c,d))||0;return h>0?new Date(b+h).toISOString():(0,e.eZ)(s(a,f,g))}(c,...j),k,m)}async function y(a,b,c=null){if(!a)return{message:"MiniMax API key not available."};let e=r[b]||[],f="";for(let b=0;b<e.length;b+=1){let g=e[b],h=b<e.length-1;try{let b=await (0,d.Fm)(g,{method:"GET",headers:{Authorization:`Bearer ${a}`,Accept:"application/json","Content-Type":"application/json"}},c),e=await b.text(),i={};if(e)try{i=JSON.parse(e)}catch{i={}}let j=(i?.base_resp??i?.baseResp)||{},k=Number(j.status_code??j.statusCode)||0,l=String(j.status_msg??j.statusMsg??"").trim(),m=`${l} ${e}`.trim(),n=/token plan|coding plan|invalid api key|invalid key|unauthorized|inactive/i;if(401===b.status||403===b.status||1004===k||n.test(m))return{message:"MiniMax API key invalid or inactive. Use an active Token/Coding Plan key."};if(!b.ok){if(f=`MiniMax usage endpoint error (${b.status})`,(404===b.status||405===b.status||b.status>=500)&&h)continue;return{message:`MiniMax connected. ${f}`}}if(0!==k)return{message:`MiniMax connected. ${l||"Upstream quota API error"}`};let o=i?.model_remains??i?.modelRemains,p=(Array.isArray(o)?o:[]).filter(w);if(0===p.length)return{message:"MiniMax connected. No quota data was returned."};let q=Date.now(),r=g.includes("/coding_plan/remains"),t={};for(let a of p){let b=function(a){let b=String(s(a,"model_name","modelName")||"").trim();return b?"MiniMax-M*"===b||"general"===b?"M-series":b.replace(/[_-]+/g," ").replace(/\s+/g," ").trim().replace(/\b\w/g,a=>a.toUpperCase()).replace(/\bTo\b/g,"to").replace(/\bTts\b/g,"TTS").replace(/\bHd\b/g,"HD"):"MiniMax"}(a);x(t,`${b} (5h)`,a,u,"current_interval_usage_count","currentIntervalUsageCount","current_interval_remaining_percent","currentIntervalRemainingPercent",[q,"remains_time","remainsTime","end_time","endTime"],r),x(t,`${b} (7d)`,a,v,"current_weekly_usage_count","currentWeeklyUsageCount","current_weekly_remaining_percent","currentWeeklyRemainingPercent",[q,"weekly_remains_time","weeklyRemainsTime","weekly_end_time","weeklyEndTime"],r)}if(0===Object.keys(t).length)return{message:"MiniMax connected. Unable to extract quota usage."};return{quotas:t}}catch(a){if(f=a.message,!h)break}}return{message:f?`MiniMax connected. Unable to fetch usage: ${f}`:"MiniMax connected. Unable to fetch usage."}}var z=c(45350);let A="codebuddy-cn";function B(a,b){let c=Number(a??b);return Number.isFinite(c)?c:0}async function C(a,b,c,f=null){let g=a||b;if(!g)return{message:"CodeBuddy CN credential not available."};try{let a=await (0,d.Fm)((0,e.U)(A).url,{method:"POST",headers:{...z.xq[A]?.headers||{},Authorization:`Bearer ${g}`,"Content-Type":"application/json",Accept:"application/json"},body:"{}"},f);if(401===a.status||403===a.status)return{message:"CodeBuddy CN credential invalid or expired."};if(!a.ok)return{message:`CodeBuddy CN quota API error (${a.status}).`};let b=await a.json();if(b?.code!==0)return{message:`CodeBuddy CN quota error: ${b?.msg||"unknown"}`};let c=b?.data?.Response?.Data||{},h=Array.isArray(c.Accounts)?c.Accounts:[];if(0===h.length)return{message:"CodeBuddy CN connected. No credit package found."};let i=a=>{let b=(0,e.eZ)(a.CycleEndTime);return b?new Date(b).getTime():1/0},j=a=>{let b=i(a),c=Number(a.DeductionEndTime);return Number.isFinite(b)&&Number.isFinite(c)&&c-b>1728e5},k=(a,b)=>i(a)-i(b),l=h.filter(j).sort(k),m=h.filter(a=>!j(a)).sort(k),n={},o={};l.forEach(a=>{let b=function(a){let b=(0,e.eZ)(a.CycleStartTime),c=(0,e.eZ)(a.CycleEndTime);if(b&&c){let a=(new Date(c).getTime()-new Date(b).getTime())/864e5;if(a<=1.5)return"Daily";if(a<=10)return"Weekly"}return"Monthly"}(a);o[b]=(o[b]||0)+1,n[o[b]>1?`${b} ${o[b]}`:b]={used:B(a.CycleCapacityUsedPrecise,a.CycleCapacityUsed),total:B(a.CycleCapacitySizePrecise,a.CycleCapacitySize),resetAt:(0,e.eZ)(a.CycleEndTime),unlimited:!1,recurring:!0}}),m.forEach((a,b)=>{n[`Bonus Pack ${b+1}`]={used:B(a.CapacityUsedPrecise,a.CapacityUsed),total:B(a.CapacitySizePrecise,a.CapacitySize),resetAt:(0,e.eZ)(a.CycleEndTime),unlimited:!1,recurring:!1}});let p=l[0]||h[0]||{};return{plan:p.PackageName||p.SubProductName||"CodeBuddy CN",quotas:n}}catch(a){return{message:`CodeBuddy CN error: ${a.message}`}}}let D={LEVEL_BASIC:"Moderato",LEVEL_INTERMEDIATE:"Allegretto",LEVEL_ADVANCED:"Allegro",LEVEL_STANDARD:"Vivace"};function E({used:a,total:b,remaining:c,resetAt:d}){let f,g=Math.max(0,(0,e.IQ)(b,0)),h=Math.max(0,(0,e.IQ)(a,0));return f=g>0&&null!=c&&Number.isFinite(Number(c))?Math.max(0,Number(c))/g*100:g>0?Math.max(0,g-h)/g*100:0,{used:h,total:g,remainingPercentage:f,resetAt:d||null,unlimited:!1}}async function F(a=null,b=null,c=null,f=null){let g="string"==typeof b&&b.length>0,i=!g&&"string"==typeof a&&a.length>0;if(!g&&!i)return{message:"Kimi access token or API key not available."};let j=g?{"x-api-key":b}:{Authorization:`Bearer ${a}`,...(0,h.VK)(f?.deviceId)};try{let a,b=await (0,d.Fm)("https://api.kimi.com/coding/v1/usages",{method:"GET",headers:{...j,"Content-Type":"application/json",Accept:"application/json"}},c),f=await b.text().catch(()=>"");if(!b.ok)return{plan:"Kimi Coding",message:function(a,b){let c=null;try{c=JSON.parse(b||"")}catch{}let d=Array.isArray(c?.details)?c.details[0]:null,e=d?.debug||c?.debug||null,f=e?.reason||c?.reason||"",g=e?.localizedMessage?.message||d?.localizedMessage?.message||c?.message||"";if(401===a)return"Kimi authentication expired. Please re-authorize.";if(403===a&&("REASON_FEATURE_NO_PERMISSION"===f||/permission_denied|do not have permission|subscribe/i.test(`${c?.code||""} ${g} ${b||""}`)))return g||"Kimi connected, but this account has no permission to view usage. Subscribe to Kimi Code to access quota.";let h=(g||b||"").slice(0,100);return h?`Kimi Coding connected. API Error ${a}: ${h}`:`Kimi Coding connected. API Error ${a}`}(b.status,f)};try{a=JSON.parse(f||"{}")}catch{return{plan:"Kimi Coding",message:"Kimi Coding connected. Invalid JSON response from API."}}let g={},h=a?.usage&&"object"==typeof a.usage?a.usage:{},i=(0,e.IQ)(h.limit??h.Limit,0),k=(0,e.IQ)(h.used??h.Used,0),l=h.remaining??h.Remaining,m=null!=l&&""!==l?(0,e.IQ)(l,NaN):NaN,n=h.resetTime||h.ResetTime||h.reset_at||h.resetAt;for(let b of(i>0&&(g.Weekly=E({used:k,total:i,remaining:Number.isFinite(m)?m:null,resetAt:(0,e.eZ)(n)})),Array.isArray(a?.limits)?a.limits:[])){if(!b||"object"!=typeof b)continue;let a=b.detail&&"object"==typeof b.detail?b.detail:{},c=(0,e.IQ)(a.limit??a.Limit,0),d=(0,e.IQ)(a.remaining??a.Remaining,NaN),f=a.resetTime||a.reset_at||a.resetAt;if(c>0){let a=Number.isFinite(d)?d:Math.max(0,c);g.Ratelimit=E({used:Math.max(0,c-a),total:c,remaining:a,resetAt:(0,e.eZ)(f)})}}let o=a?.user?.membership?.level,p=function(a){if(!a)return"";let b=String(a);return D[b]?D[b]:b.replace(/^LEVEL_/,"").toLowerCase()}(o)||"Kimi Coding";if(Object.keys(g).length>0)return{plan:p,quotas:g};return{plan:p,message:"Kimi Coding connected. Usage tracked per request."}}catch(a){return{message:`Kimi Coding connected. Unable to fetch usage: ${a.message}`}}}async function G(a=null,b=null){if(!a||"string"!=typeof a||!a.trim())return{message:"DeepSeek API key not available. Add a key to view usage."};try{let c=await (0,d.Fm)("https://api.deepseek.com/user/balance",{method:"GET",headers:{Authorization:`Bearer ${a.trim()}`,"Content-Type":"application/json",Accept:"application/json"}},b);if(401===c.status||403===c.status)return{plan:"DeepSeek",message:"DeepSeek authentication failed. Check the API key."};if(!c.ok){let a=await c.text().catch(()=>"");return{plan:"DeepSeek",message:`DeepSeek balance API error (${c.status})${a?`: ${a.slice(0,120)}`:""}`}}let f=await c.json().catch(()=>null);if(!f||"object"!=typeof f)return{message:"DeepSeek balance response was not JSON."};let g=function(a){let b=Array.isArray(a?.balance_infos)?a.balance_infos:[],c=[];for(let a of b){if(!a||"object"!=typeof a)continue;let b="string"==typeof a.currency?a.currency.toUpperCase():"";if(!b)continue;let d=(0,e.IQ)(a.total_balance??a.totalBalance,0);c.push({currency:b,totalBalance:d,grantedBalance:(0,e.IQ)(a.granted_balance??a.grantedBalance,0),toppedUpBalance:(0,e.IQ)(a.topped_up_balance??a.toppedUpBalance,0)})}return c}(f);if(0===g.length)return{plan:"DeepSeek",message:"DeepSeek connected. No balance data returned."};let h=!0===f.is_available||!0===f.isAvailable,i={};for(let a of g){let b=Math.max(0,a.totalBalance);i[`Balance (${a.currency})`]={used:0,total:b,remainingPercentage:100*(b>0),resetAt:null,unlimited:b>0}}return{plan:h?"DeepSeek":"DeepSeek (Insufficient Balance)",quotas:i}}catch(a){return{message:`DeepSeek error: ${a.message}`}}}var H=c(13247);let I=(a,b=0)=>a&&"object"==typeof a&&"val"in a?(0,e.IQ)(a.val,b):(0,e.IQ)(a,b);function J(a,b,c=null){let d=Math.max(0,b),e=Math.max(0,a);return{used:e,total:d,remainingPercentage:d?Math.max(0,(d-e)/d*100):0,resetAt:c,unlimited:!1}}async function K(a,b=null,c=null){if(!a)return{message:"Grok CLI access token not available."};let f=(0,H.Ab)(a,b||{}),g=(0,e.U)("grok-cli");try{let[a,b]=await Promise.all([(0,d.Fm)(g.url,{method:"GET",headers:f,...H.Ai},c),(0,d.Fm)(g.userUrl,{method:"GET",headers:f,signal:AbortSignal.timeout(2e3),...H.Ai},c).catch(()=>null)]);if(401===a.status||403===a.status)return{message:"Grok CLI authentication expired. Please re-authorize."};if(!a.ok)return{message:`Grok CLI billing API error (${a.status})`};let h=await a.json(),i=b?.ok?await b.json().catch(()=>null):null,j=function(a,b=null){let c=a&&"object"==typeof a?a:{},d=c.config&&"object"==typeof c.config?c.config:c,f=(0,e.eZ)(d.billingPeriodEnd||d.currentPeriod?.end||d.resetAt),g=b?.subscriptionTier||b?.subscription_tier||b?.subscription?.tier||"",h="string"==typeof g&&""!==g&&!/^(free|none|null)$/i.test(g),i={},j=I(d.monthlyLimit??c.monthlyLimit,NaN),k=I(d.includedUsed??c.includedUsed??d.totalUsed??c.totalUsed,0);Number.isFinite(j)&&j>0&&(i["Monthly included"]=J(k,j,f));let l=I(d.onDemandCap??c.onDemandCap,NaN),m=I(d.onDemandUsed??c.onDemandUsed,0);Number.isFinite(l)&&l>0?i["On-demand"]=J(m,l,f):h||0!==l||(i["On-demand"]=J(1,1,f));let n=I(d.prepaidBalance??c.prepaidBalance,NaN);return Number.isFinite(n)&&n>0&&(i.Prepaid=J(0,n)),{plan:g?String(g).replace(/[_-]+/g," ").replace(/\b\w/g,a=>a.toUpperCase()):b?.hasGrokCodeAccess?"Grok Code":"Grok Build",quotas:i,subscriptionAccess:h}}(h,i);if(Object.keys(j.quotas).length)return{plan:j.plan,quotas:j.quotas};return{plan:j.plan,quotas:{},message:j.subscriptionAccess?"Subscription access is active; Grok does not expose a numeric included quota.":"Grok Build connected, but no credit allotment was returned."}}catch(a){return{message:`Grok CLI usage error: ${a.message}`}}}let L={international:(0,e.U)("glm").url,china:(0,e.U)("glm-cn").url},M=(0,e.U)("vercel-ai-gateway").url;async function N(a,b){try{if(!b?.resourceUrl)return{message:"Qwen connected. No resource URL available."};return{message:"Qwen connected. Usage tracked per request."}}catch(a){return{message:"Unable to fetch Qwen usage."}}}async function O(a){try{return{message:"iFlow connected. Usage tracked per request."}}catch(a){return{message:"Unable to fetch iFlow usage."}}}async function P(a,b,c=null){if(!a)return{message:"Ollama Cloud API key not available."};try{let b,f=await (0,d.Fm)("https://ollama.com/api/usage",{headers:{Authorization:`Bearer ${a}`,Accept:"application/json"}},c);if(401===f.status||403===f.status)return{message:"Ollama Cloud API key invalid or expired."};if(!f.ok)return{message:`Ollama Cloud usage API error (${f.status}).`};try{b=await f.json()}catch{return{message:"Ollama Cloud usage response was not JSON."}}let g=await (0,d.Fm)("https://ollama.com/api/me",{method:"POST",headers:{Authorization:`Bearer ${a}`,Accept:"application/json","Content-Length":"0"}},c).then(a=>a.ok?a.json():null).catch(()=>null),h="string"==typeof g?.Plan?g.Plan:"",i=h?h.charAt(0).toUpperCase()+h.slice(1).toLowerCase():"Ollama Cloud",j=b?.limits&&"object"==typeof b.limits?b.limits:{};function e(a,b=null){let c=Math.max(0,Math.min(1,Number(a)||0)),d=Math.round(100*c);return{used:d,total:100,remainingPercentage:100-d,resetAt:b,unlimited:!1}}let k=j.session?.usage,l=j.weekly?.usage,m=Number(k),n=Number(l),o=null!=k&&!Number.isNaN(m),p=null!=l&&!Number.isNaN(n);if(!o&&!p)return{plan:i,message:"Ollama Cloud connected. No usage limits reported.",quotas:{}};let q={};return o&&(q["Session (5h)"]=e(m)),p&&(q["Weekly (7d)"]=e(n)),{plan:i,quotas:q}}catch(a){return{message:`Ollama Cloud error: ${a.message}`}}}async function Q(a,b,c=null){if(!a)return{message:"GLM API key not available."};let e=L["glm-cn"===b?"china":"international"];try{let b=await (0,d.Fm)(e,{headers:{Authorization:`Bearer ${a}`,Accept:"application/json"}},c);if(!b.ok){if(401===b.status)return{message:"GLM API key invalid or expired."};return{message:`GLM quota API error (${b.status}).`}}let f=await b.json(),g=f?.data&&"object"==typeof f.data?f.data:{},h=Array.isArray(g.limits)?g.limits:[],i={};for(let a of h){if(!a||"TOKENS_LIMIT"!==a.type)continue;let b=Number(a.percentage)||0,c=Number(a.nextResetTime)||0,d=Math.max(0,100-b);i.session={used:b,total:100,remaining:d,remainingPercentage:d,resetAt:c>0?new Date(c).toISOString():null,unlimited:!1}}let j="string"==typeof g.level?g.level:"";return{plan:j?j.charAt(0).toUpperCase()+j.slice(1).toLowerCase():"Unknown",quotas:i}}catch(a){return{message:`GLM error: ${a.message}`}}}async function R(a,b=null){if(!a)return{message:"Vercel AI Gateway API key not available."};try{let c=await (0,d.Fm)(M,{method:"GET",headers:{Authorization:`Bearer ${a}`,Accept:"application/json"}},b);if(401===c.status||403===c.status)return{message:"Vercel AI Gateway API key invalid or expired."};if(!c.ok){let a=await c.text().catch(()=>""),b=a?`: ${a.slice(0,200)}`:"";return{message:`Vercel AI Gateway credits API error (${c.status})${b}`}}let e=await c.json(),f=Number(e?.balance)||0,g=Number(e?.total_used)||0;if(f<=0&&g<=0)return{plan:"Pay-as-you-go",message:"Vercel AI Gateway connected. No credit allocation found (BYOK or unfunded account).",quotas:{}};return{plan:"Pay-as-you-go",quotas:{"Used (USD)":{used:g,total:0,remaining:0,remainingPercentage:100,unlimited:!0},"Remaining (USD)":{used:f,total:5,remaining:f,remainingPercentage:f/5*100,unlimited:!1}}}}catch(a){return{message:`Vercel AI Gateway error: ${a.message}`}}}async function S(a,b=null){if(!a)return{message:"Qoder usage unavailable: no access token"};try{let c=await (0,d.Fm)((0,e.U)("qoder").url,{method:"GET",headers:{Authorization:`Bearer ${a}`,Accept:"application/json"}},b);if(!c.ok)return{message:`Qoder connected. Usage fetch returned ${c.status}.`};let f=await c.json().catch(()=>null);if(!f)return{message:"Qoder connected. Usage response was not JSON."};let g=f.userQuota||{},h=f.orgResourcePackage||{},i=Number.isFinite(Number(f.expiresAt))&&Number(f.expiresAt)>0?Number(f.expiresAt):null,j=i?new Date(i).toISOString():null;return{quotas:{user:{total:Number(g.total)||0,used:Number(g.used)||0,remaining:Number(g.remaining)||0,unit:g.unit||"credits",resetAt:j},organization:{total:Number(h.total)||0,used:Number(h.used)||0,remaining:Number(h.remaining)||0,unit:h.unit||"credits",resetAt:j}},totalUsagePercentage:Number(f.totalUsagePercentage)||0,isQuotaExceeded:!!f.isQuotaExceeded,expiresAt:i}}catch(a){return{message:`Qoder connected. Unable to fetch usage: ${a.message}`}}}let T={github:a=>f(a.accessToken,a.providerSpecificData,a.proxyOptions),"gemini-cli":a=>j(a.accessToken,a.providerDataWithProjectId,a.proxyOptions),antigravity:a=>l(a.accessToken,a.providerSpecificData,a.proxyOptions),claude:a=>(0,n.g)(a.accessToken,a.proxyOptions,{force:a.force}),codex:a=>(0,o.Tl)(a.accessToken,a.proxyOptions),kiro:a=>q(a.accessToken,a.providerSpecificData,a.proxyOptions),qoder:a=>S(a.accessToken,a.proxyOptions),qwen:a=>N(a.accessToken,a.providerSpecificData),iflow:a=>O(a.accessToken),ollama:a=>P(a.apiKey,a.providerSpecificData,a.proxyOptions),glm:a=>Q(a.apiKey,a.provider,a.proxyOptions),"glm-cn":a=>Q(a.apiKey,a.provider,a.proxyOptions),minimax:a=>y(a.apiKey,a.provider,a.proxyOptions),"minimax-cn":a=>y(a.apiKey,a.provider,a.proxyOptions),"vercel-ai-gateway":a=>R(a.apiKey,a.proxyOptions),"codebuddy-cn":a=>C(a.accessToken,a.apiKey,a.providerSpecificData,a.proxyOptions),kimi:a=>F(a.accessToken,a.apiKey,a.proxyOptions,a.providerSpecificData),"kimi-coding":a=>F(a.accessToken,a.apiKey,a.proxyOptions,a.providerSpecificData),deepseek:a=>G(a.apiKey,a.proxyOptions),"grok-cli":a=>K(a.accessToken,a.providerSpecificData,a.proxyOptions)};async function U(a,b=null,c={}){let{provider:d,accessToken:e,apiKey:f,providerSpecificData:g,projectId:h}=a,i={...g||{},...h?{projectId:h}:{}},j=T[d];return j?await j({provider:d,accessToken:e,apiKey:f,providerSpecificData:g,providerDataWithProjectId:i,proxyOptions:b,force:!0===c.force}):{message:`Usage API not implemented for ${d}`}}},66451:(a,b,c)=>{c.d(b,{Xh:()=>f,js:()=>h,sc:()=>g});var d=c(58976);let e={el:"elevenlabs",jina:"jina-ai","jina-ai":"jina-ai",polly:"aws-polly","aws-polly":"aws-polly"};for(let a of d.A)for(let b of(e[a.id]=a.id,a.alias&&(e[a.alias]=a.id),a.aliases||[]))e[b]=a.id;function f(a){if(!a)return{provider:null,model:null,isAlias:!1,providerAlias:null};if(a.includes("/")){let b=a.indexOf("/"),c=a.slice(0,b),d=a.slice(b+1);return{provider:e[c]||c,model:d,isAlias:!1,providerAlias:c}}return{provider:null,model:a,isAlias:!0,providerAlias:null}}function g(a,b){var c,d;if(!b||"string"!=typeof a)return null;let f=b[a];if(!f){for(let[c,d]of Object.entries(b))if("string"==typeof c&&c.includes("*"))try{let b="^"+c.replace(/[.+?^${}()|[\]\\]/g,"\\$&").replace(/\*/g,".*")+"$";if(RegExp(b,"i").test(a)){f=d;break}}catch{}}if(!f)return null;if("string"==typeof f&&f.includes("/")){let a=f.indexOf("/");return{provider:e[c=f.slice(0,a)]||c,model:f.slice(a+1)}}return"object"==typeof f&&f.provider&&f.model?{provider:e[d=f.provider]||d,model:f.model}:"string"==typeof f?{provider:null,model:f}:null}async function h(a,b){let c=f(a);if(!c.isAlias)return{provider:c.provider,model:c.model};let d="function"==typeof b?await b():b,e=g(c.model,d);return e||{provider:function(a){if(!a)return"openai";let b=a.toLowerCase();return i.find(([a])=>a.test(b))?.[1]||"openai"}(c.model),model:c.model}}let i=[[/^grok-build$/,"grok-cli"],[/^claude-/,"anthropic"],[/^gemini-/,"gemini"],[/^gpt-/,"openai"],[/^o[134]/,"openai"],[/^deepseek-/,"openrouter"]]},75008:(a,b,c)=>{c.d(b,{R:()=>f});var d=c(57034);let e=/^arn:(aws|aws-us-gov):codewhisperer:([^:]+):(\d{12}):profile\/([^/]+)$/;function f(a){let b="string"==typeof a?a.trim():"",c=b.match(e);return c&&(0,d.i7)(c[2])?{profileArn:b,region:c[2]}:null}},88705:(a,b,c)=>{c.d(b,{IQ:()=>h,U:()=>f,eZ:()=>g,gD:()=>i,u9:()=>j});var d=c(45350),e=c(46052);let f=a=>d.xq[a]?.usage||{};function g(a){if(!a)return null;try{if(a instanceof Date)return a.toISOString();if("number"==typeof a)return new Date(a<1e12?1e3*a:a).toISOString();if("string"==typeof a){if(/^\d+$/.test(a)){let b=Number(a);return new Date(b<1e12?1e3*b:b).toISOString()}return new Date(a).toISOString()}return null}catch(b){return console.warn(`Failed to parse reset time: ${a}`,b),null}}function h(a,b=0){if("number"==typeof a&&Number.isFinite(a))return a;if("string"==typeof a&&a.trim()){let b=Number(a);if(Number.isFinite(b))return b}return b}function i(a){return"string"==typeof a?a.trim()||null:a&&"object"==typeof a&&"string"==typeof a.id&&a.id.trim()||null}async function j(a,b,c=1e4,d=null){let f=new AbortController,g=setTimeout(()=>f.abort(),c);try{return await (0,e.Fm)(a,{...b,signal:f.signal},d)}finally{clearTimeout(g)}}},98594:(a,b,c)=>{c.d(b,{g:()=>j});var d=c(46052),e=c(92675),f=c(88705);let g={oauthUsageUrl:(0,f.U)("claude").oauthUrl,usageUrl:(0,f.U)("claude").orgUrl,settingsUrl:(0,f.U)("claude").settingsUrl,apiVersion:e.b8},h=new Map,i=new Map;async function j(a,b=null,c={}){let d=c?.force===!0;if(!d&&a){let b=i.get(a);if(b?.promise)return b.promise;if(b&&b.expiresAt>Date.now())return b.result}let e=!d&&a&&i.get(a)?.result||null,f=(async()=>{let c=await k(a,b);return a&&c?.quotas?(i.set(a,{result:c,expiresAt:Date.now()+3e5}),c):e||c})();return a&&i.set(a,{promise:f}),f.then(()=>{let b=i.get(a);a&&b?.promise===f&&i.delete(a)}),f}async function k(a,b=null){try{let c=h.get(a);if(c&&Date.now()<c)return await l(a,b);let e=await (0,d.Fm)(g.oauthUsageUrl,{method:"GET",headers:{Authorization:`Bearer ${a}`,"anthropic-beta":"oauth-2025-04-20","anthropic-version":g.apiVersion},identity:"claude-cli",provider:"claude",format:"claude"},b);if(e.ok){let a=await e.json(),b={},c=a=>a&&"object"==typeof a&&"number"==typeof a.utilization,d=a=>{let b=a.utilization,c=Math.max(0,100-b);return{used:b,total:100,remaining:c,remainingPercentage:c,resetAt:(0,f.eZ)(a.resets_at),unlimited:!1}};for(let[e,f]of(c(a.five_hour)&&(b["session (5h)"]=d(a.five_hour)),c(a.seven_day)&&(b["weekly (7d)"]=d(a.seven_day)),Object.entries(a)))if(e.startsWith("seven_day_")&&"seven_day"!==e&&c(f)){let a=e.replace("seven_day_","");b[`weekly ${a} (7d)`]=d(f)}return{plan:"Claude Code",extraUsage:a.extra_usage??null,quotas:b}}return 429===e.status&&h.set(a,Date.now()+18e4),console.warn(`[Claude Usage] OAuth endpoint returned ${e.status}, falling back to legacy`),await l(a,b)}catch(a){return{message:`Claude connected. Unable to fetch usage: ${a.message}`}}}async function l(a,b=null){try{let c=await (0,d.Fm)(g.settingsUrl,{method:"GET",headers:{Authorization:`Bearer ${a}`,"anthropic-version":g.apiVersion},identity:"claude-cli",provider:"claude",format:"claude"},b);if(c.ok){let e=await c.json();if(e.organization_id){let c=await (0,d.Fm)(g.usageUrl.replace("{org_id}",e.organization_id),{method:"GET",headers:{Authorization:`Bearer ${a}`,"anthropic-version":g.apiVersion},identity:"claude-cli",provider:"claude",format:"claude"},b);if(c.ok){let a=await c.json();return{plan:e.plan||"Unknown",organization:e.organization_name,quotas:a}}}return{plan:e.plan||"Unknown",organization:e.organization_name,message:"Claude connected. Usage details require admin access."}}return{message:"Claude connected. Usage API requires admin permissions."}}catch(a){return{message:`Claude connected. Unable to fetch usage: ${a.message}`}}}}};
@@ -0,0 +1,2 @@
1
+ exports.id=1792,exports.ids=[1792],exports.modules={6547:(a,b,c)=>{"use strict";c.d(b,{$3:()=>q,$R:()=>i,Dm:()=>s,E$:()=>k,Zb:()=>h,jI:()=>j,ti:()=>n});var d=c(92675),e=c(70628),f=c(48161),g=c(13247);let h=["Accept","Authorization","Content-Type","User-Agent","X-Claude-Code-Session-Id","X-Stainless-Arch","X-Stainless-Lang","X-Stainless-OS","X-Stainless-Package-Version","X-Stainless-Retry-Count","X-Stainless-Runtime","X-Stainless-Runtime-Version","X-Stainless-Timeout","anthropic-beta","anthropic-dangerous-direct-browser-access","anthropic-version","x-app","x-client-request-id","Connection","Host","Accept-Encoding","Content-Length"],i=h.filter(a=>"X-Stainless-Timeout"!==a),j={"claude-cli":{id:"claude-cli",tls:"claude-code",alpn:["http/1.1"],headerOrder:h,source:{npm:"@anthropic-ai/claude-code",capture:"claude-code-native",tlsSpec:"claude-code"},headers:function(a){let b=a?.version||"2.1.258",c=a?.entrypoint||"cli";return{"Anthropic-Version":d.b8,"Anthropic-Beta":a?.betas||"claude-code-20250219,interleaved-thinking-2025-05-14,redact-thinking-2026-02-12,thinking-token-count-2026-05-13,context-management-2025-06-27,prompt-caching-scope-2026-01-05,mid-conversation-system-2026-04-07,effort-2025-11-24,structured-outputs-2025-12-15","Anthropic-Dangerous-Direct-Browser-Access":"true","User-Agent":a?.userAgent||`claude-cli/${b} (external, ${c})`,"X-App":"cli","X-Stainless-Runtime-Version":a?.runtimeVersion||process.version,"X-Stainless-Package-Version":a?.packageVersion||"0.112.1","X-Stainless-Runtime":"node","X-Stainless-Lang":"js","X-Stainless-Arch":a?.arch||(0,e.Tc)(),"X-Stainless-Os":a?.os||(0,e.vv)(),"X-Stainless-Timeout":"600"}}},"codex-cli":{id:"codex-cli",tls:"chrome",alpn:["h2","http/1.1"],headerOrder:["Authorization","Content-Type","originator","session_id","User-Agent","version","chatgpt-account-id"],source:{npm:"@openai/codex"},headers:function(a){let b=a?.version||"0.149.0";return{originator:"codex_cli_rs","User-Agent":`codex_cli_rs/${b}`,version:b}}},"gemini-cli":{id:"gemini-cli",tls:"node",alpn:["h2","http/1.1"],headerOrder:["Content-Type","Authorization","User-Agent","X-Goog-Api-Client","Accept"],source:{npm:"@google/gemini-cli"},headers:function(a){let b=a?.version||"0.56.0",c=a?.upstreamModel||"unknown",d="ia32"===(0,e.LY)()?"x86":(0,e.LY)(),f="u">typeof process&&process.version?process.version.replace(/^v/,""):"unknown";return{"User-Agent":`GeminiCLI/${b}/${c} (${(0,e.ol)()}; ${d}; terminal)`,"X-Goog-Api-Client":a?.apiClient||`google-genai-sdk/1.41.0 gl-node/v${f}`}}},"openai-node":{id:"openai-node",tls:"node",alpn:["h2","http/1.1"],headerOrder:["Authorization","Content-Type","User-Agent"],source:{npm:"openai"},headers:function(){return{"User-Agent":`OpenAI/NodeJS/${process.version.replace(/^v/,"")}`}}},cline:{id:"cline",tls:"node",alpn:["h2","http/1.1"],headerOrder:["Authorization","Content-Type","HTTP-Referer","X-Title","User-Agent","X-PLATFORM","X-PLATFORM-VERSION","X-CLIENT-TYPE","X-CLIENT-VERSION","X-CORE-VERSION","X-IS-MULTIROOT"],source:{npm:"cline"},headers:function(a){let b=a?.version||"3.0.0";return{"HTTP-Referer":"https://cline.bot","X-Title":"Cline","User-Agent":`Cline/${b}`,"X-PLATFORM":(0,e.ol)()||"unknown","X-PLATFORM-VERSION":a?.platformVersion||(0,f.release)()||"unknown","X-CLIENT-TYPE":"extension","X-CLIENT-VERSION":b,"X-CORE-VERSION":b,"X-IS-MULTIROOT":"false"}}},chrome:{id:"chrome",tls:"chrome",alpn:["h2","http/1.1"],headerOrder:["User-Agent","Accept","Accept-Language","Accept-Encoding"],source:{capture:"chrome"},headers:function(a){let b,c=a?.chromeVersion||"136";return{"User-Agent":`Mozilla/5.0 (${"darwin"===(b=(0,e.ol)())?"Macintosh; Intel Mac OS X 10_15_7":"win32"===b?"Windows NT 10.0; Win64; x64":"X11; Linux x86_64"}) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/${c}.0.0.0 Safari/537.36`}}},cursor:{id:"cursor",tls:"node",alpn:["h2","http/1.1"],headerOrder:[],source:{capture:"cursor"},headers:()=>({})},antigravity:{id:"antigravity",tls:"node",alpn:["h2","http/1.1"],headerOrder:["Authorization","Content-Type","User-Agent","Accept"],source:{capture:"antigravity"},headers:function(a){let b=a?.version||"1.107.0";return{"User-Agent":`antigravity/${b} ${(0,e.ol)()}/${(0,e.LY)()}`}}},copilot:{id:"copilot",tls:"node",alpn:["h2","http/1.1"],headerOrder:["Authorization","Content-Type","copilot-integration-id","editor-version","editor-plugin-version","user-agent","openai-intent","x-github-api-version"],source:{capture:"github-copilot"},headers:function(a){let b=a?.vscodeVersion||"1.110.0",c=a?.chatVersion||a?.version||"0.38.0";return{"copilot-integration-id":"vscode-chat","editor-version":`vscode/${b}`,"editor-plugin-version":`copilot-chat/${c}`,"user-agent":`GitHubCopilotChat/${c}`,"openai-intent":"conversation-panel","x-github-api-version":a?.apiVersion||"2025-04-01","x-vscode-user-agent-library-version":"electron-fetch","X-Initiator":"user"}}},qwen:{id:"qwen",tls:"node",alpn:["h2","http/1.1"],headerOrder:["Authorization","Content-Type","User-Agent","X-Stainless-Arch","X-Stainless-Os"],source:{capture:"qwen-code"},headers:function(a){let{os:b,arch:c,stainlessOs:d,stainlessArch:f}=a?.qwenOsArch||{os:"win32"===(0,e.ol)()?"windows":"darwin"===(0,e.ol)()?"darwin":"linux",arch:"arm64"===(0,e.LY)()?"arm64":"x64",stainlessOs:(0,e.vv)(),stainlessArch:(0,e.Tc)()},g=a?.version||"0.12.3",h=`QwenCode/${g} (${b}; ${c})`;return{"User-Agent":h,"X-DashScope-UserAgent":h,"X-Stainless-Arch":f,"X-Stainless-Os":d,"X-Stainless-Lang":"js","X-Stainless-Runtime":"node","X-Stainless-Runtime-Version":a?.runtimeVersion||process.version,"X-Stainless-Package-Version":a?.packageVersion||"5.11.0"}}},kimi:{id:"kimi",tls:"node",alpn:["h2","http/1.1"],headerOrder:["Authorization","Content-Type","X-Msh-Version","X-Msh-Device-Model"],source:{capture:"kimi-code"},headers:function(){return{"X-Msh-Version":"2.1.2","X-Msh-Device-Model":`${(0,e.ol)()} ${(0,e.LY)()}`}}},"grok-cli":{id:"grok-cli",tls:"node",alpn:["h2","http/1.1"],headerOrder:["Authorization","Content-Type","User-Agent"],source:{capture:"grok-cli"},headers:function(a){return{"User-Agent":`grok-cli/${a?.version||"1.0.0"}`}}},"grok-build":{id:"grok-build",tls:"node",alpn:["h2","http/1.1"],headerOrder:["Authorization","Content-Type","Accept","User-Agent","x-grok-client-identifier","x-grok-client-version"],source:{capture:"@xai-official/grok 0.2.99"},headers:function(){let a;return{"User-Agent":`grok-shell/${g.uG} (${(0,e.ol)()||"linux"}; ${"x64"===(a=(0,e.LY)())?"x86_64":"arm64"===a?"aarch64":"ia32"===a?"x86":a||"x86_64"})`,"x-grok-client-identifier":g.rK,"x-grok-client-version":g.uG}}}};function k(a){return j[a]||j["openai-node"]}let l=new Set(["openai","openai-responses","openai-compat"]),m=new Set(["claude"]);function n(a,b={}){if("string"==typeof a&&a)return a;if(a&&"object"==typeof a&&a.profile)return a.profile;let c=b.format||"",d=b.provider||"";return"claude"===c||m.has(c)||"claude"===d||d.startsWith("anthropic-compatible")?"claude-cli":"codex"===d?"codex-cli":"gemini-cli"===d?"gemini-cli":"antigravity"===d?"antigravity":"github"===d?"copilot":"qwen"===d?"qwen":"cline"===d||"clinepass"===d?"cline":"kimi"===d||"kimi-coding"===d?"kimi":"xai"===d?"grok-cli":"grok-cli"===d?"grok-build":"grok-web"===d?"chrome":"cursor"===d||"cursor"===c?"cursor":(l.has(c),"openai-node")}let o=new Set(["user-agent","anthropic-beta","x-stainless-package-version","x-stainless-runtime-version","x-stainless-os","x-stainless-arch"]),p=new Set(["x-stainless-helper-method","x-stainless-retry-count"]);function q(a,b,c={}){var d;let e,f=k(b),g=(d=c.snapshot,"function"==typeof(e=k(b)).headers?e.headers(d):{...e.headers||{}});!0===c.stream&&"claude-cli"===b?g["X-Stainless-Helper-Method"]="stream":"claude-cli"===b&&delete g["X-Stainless-Helper-Method"],"number"==typeof c.retryCount&&"claude-cli"===b&&(g["X-Stainless-Retry-Count"]=String(c.retryCount));let h=new Map;for(let[b,c]of Object.entries(a||{})){let a=b.toLowerCase();("authorization"===a||"x-api-key"===a||"api-key"===a)&&h.set(a,[b,c])}let i=!0===c.preserveUserAgent&&"claude-cli"!==b&&Object.entries(a||{}).find(([a])=>"user-agent"===a.toLowerCase())||null,j=r(a,g),l=c.overlay&&"object"==typeof c.overlay?"claude-cli"===b?function(a,b){let c,d,e={...a||{}},f=0!==(d=Object.values(c=Object.fromEntries([...o].map(a=>{let b;return[a,(b=Object.keys(e||{}).find(b=>b.toLowerCase()===a))?e[b]:void 0]}))).filter(a=>null!=a).length)&&d===o.size&&String(c["user-agent"]).match(/claude-(?:cli|code)\/(\d+\.\d+\.\d+)/i)?.[1]===b?.version;for(let a of Object.keys(e)){let b=a.toLowerCase();(p.has(b)||!f&&o.has(b))&&delete e[a]}return e}(c.overlay,c.snapshot):{...c.overlay}:{};for(let a of Object.keys(l))h.has(a.toLowerCase())&&delete l[a];let m=r(j,l);if(i&&!Object.keys(l).some(a=>"user-agent"===a.toLowerCase())){for(let a of Object.keys(m))"user-agent"===a.toLowerCase()&&delete m[a];m[i[0]]=i[1]}if("claude-cli"===b){if(!0===c.stream)m["X-Stainless-Helper-Method"]="stream";else for(let a of Object.keys(m))"x-stainless-helper-method"===a.toLowerCase()&&delete m[a];if("number"==typeof c.retryCount){for(let a of Object.keys(m))"x-stainless-retry-count"===a.toLowerCase()&&delete m[a];m["X-Stainless-Retry-Count"]=String(c.retryCount)}}for(let[a,[b,c]]of h){for(let b of Object.keys(m))b.toLowerCase()===a&&delete m[b];m[b]=c}return f?.headerOrder?s(m,f.headerOrder):m}function r(...a){let b={};for(let c of a)for(let[a,d]of Object.entries(c||{})){let c=Object.keys(b).find(b=>b.toLowerCase()===a.toLowerCase());c&&delete b[c],b[a]=d}return b}function s(a,b){if(!b||!b.length)return{...a};let c=new Set,d={},e=new Map;for(let[b,c]of Object.entries(a))e.set(b.toLowerCase(),[b,c]);for(let a of b){let b=e.get(a.toLowerCase());b&&(d[b[0]]=b[1],c.add(a.toLowerCase()))}for(let[b,e]of Object.entries(a))c.has(b.toLowerCase())||(d[b]=e);return d}},35570:(a,b,c)=>{"use strict";c.d(b,{I2:()=>C,Iq:()=>D,Kn:()=>v,dV:()=>w,zi:()=>x});var d=c(73024),e=c(76760),f=c(77598),g=c(6547),h=c(70628);let i=["claude-cli","codex-cli","gemini-cli"],j=new Map,k=new Map,l=new Set,m=null;function n(){let a=process.env.DATA_DIR||e.join(process.env.HOME||process.env.USERPROFILE||".",".switchboard");return e.join(a,"identity")}function o(a){return e.join(n(),`${a}.json`)}let p=function(){try{return JSON.parse(d.readFileSync(e.join(process.cwd(),"open-sse","identity","snapshots","versions.json"),"utf8"))}catch{try{return JSON.parse(d.readFileSync(new c.U(c(94552)),"utf8"))}catch{return{}}}}();function q(a){let b=p[a],c=b?.version;if(!c)return null;if("claude-cli"!==a)return{version:c,latestVersion:b.latestVersion};let d=b.tlsSpecRev||c;return{version:c,billingVersion:c,tlsSpecRev:d,latestVersion:b.latestVersion,capturedAt:b.capturedAt,entrypoint:b.entrypoint||"cli",userAgent:`claude-cli/${c} (external, ${b.entrypoint||"cli"})`,packageVersion:b.packageVersion||"0.112.1",runtimeVersion:b.runtimeVersion||"v26.3.0",betas:b.betas||"claude-code-20250219,interleaved-thinking-2025-05-14,redact-thinking-2026-02-12,thinking-token-count-2026-05-13,context-management-2025-06-27,prompt-caching-scope-2026-01-05,mid-conversation-system-2026-04-07,effort-2025-11-24,structured-outputs-2025-12-15"}}function r(a){let b=String(a||"").split(".").map(Number);return 3===b.length&&b.every(Number.isInteger)?b:null}function s(a){let b=String(a?.tlsSpecRev||"").match(/(\d+\.\d+\.\d+)/);return b?.[1]||null}function t(a,b){let c=r(a),d=r(b);if(!c||!d)return 0;for(let a=0;a<3;a++)if(c[a]!==d[a])return c[a]-d[a];return 0}function u(a){return!!(a?.version&&a?.billingVersion===a.version&&s(a)===a.version&&a.version===(z(p["claude-cli"]?.tlsSpecRev)||p["claude-cli"]?.version||null)&&a?.userAgent?.includes(`claude-cli/${a.version}`)&&a?.packageVersion&&a?.runtimeVersion&&a?.betas)}function v(a){return{version:a?.version||null,billingVersion:a?.billingVersion||null,tlsVersion:s(a),userAgentVersion:z(a?.userAgent)}}function w(a){if(j.has(a))return j.get(a);let b=null;try{b=JSON.parse(d.readFileSync(o(a),"utf8"))}catch{b=q(a)}return"claude-cli"!==a||u(b)||(b=q(a)),b&&j.set(a,b),b}function x(a){let b=w(a);return"claude-cli"!==a||u(b)?b:q(a)}function y(a,b){if(b&&"object"==typeof b){j.set(a,b);try{d.mkdirSync(n(),{recursive:!0}),d.writeFileSync(o(a),JSON.stringify(b,null,2))}catch{}}}function z(a){if("string"!=typeof a)return null;let b=a.match(/claude-cli\/(\d+\.\d+\.\d+)/i)||a.match(/codex_cli_rs\/(\d+\.\d+\.\d+)/i)||a.match(/GeminiCLI\/(\d+\.\d+\.\d+)/i)||a.match(/Cline\/(\d+\.\d+\.\d+)/i)||a.match(/antigravity\/(\d+\.\d+\.\d+)/i)||a.match(/QwenCode\/(\d+\.\d+\.\d+)/i)||a.match(/GitHubCopilotChat\/(\d+\.\d+\.\d+)/i);return b?b[1]:null}let A={"claude-cli":/claude-(?:cli|code)\//i,"codex-cli":/codex_cli_rs\//i,"gemini-cli":/GeminiCLI\//i,cline:/Cline\//i,antigravity:/antigravity\//i,qwen:/QwenCode\//i,copilot:/GitHubCopilotChat\//i};function B(a,b){let c=A[a];return!(c&&b?.userAgent)||c.test(b.userAgent)}function C(a,b){let c=function(a){let b={};if(!a)return b;for(let[c,d]of Object.entries(a))b[c.toLowerCase()]=d;return b}(b),d=c["user-agent"],e=z(d);if(!d||!e||!B(a,{userAgent:d}))return!1;if("claude-cli"===a){let b=c["x-stainless-package-version"],f=c["x-stainless-runtime-version"],g=c["anthropic-beta"];if(!b||!f||!g)return!1;let h=x(a)||{},i=s(h);return i&&e!==i?(E(a,`harvest ${e} does not match TLS capture ${h.tlsSpecRev}`),!1):(y(a,{...h,version:e,billingVersion:e,userAgent:d,packageVersion:b,runtimeVersion:f,betas:g,os:h.os||c["x-stainless-os"],arch:h.arch||c["x-stainless-arch"],entrypoint:/\(external,\s*([^)]+)\)/.exec(d)?.[1]||"cli",harvestedAt:Date.now()}),!0)}if("copilot"===a){let b=String(c["editor-plugin-version"]||"").match(/copilot-chat\/(\d+\.\d+\.\d+)/i)?.[1],f=String(c["editor-version"]||"").match(/vscode\/(\d+\.\d+\.\d+)/i)?.[1],g=c["x-github-api-version"];return!!b&&b===e&&!!f&&!!g&&(y(a,{...w(a),version:e,chatVersion:b,vscodeVersion:f,apiVersion:g,userAgent:d,harvestedAt:Date.now()}),!0)}return y(a,{...w(a),version:e,userAgent:d,harvestedAt:Date.now()}),!0}function D(a){let b=a||"anonymous";if(k.has(b))return k.get(b);let c=(0,f.createHash)("sha256").update(`device:${b}`).digest("hex"),d={buildHash:c.slice(0,3),deviceId:c,accountUuid:`${c.slice(0,8)}-${c.slice(8,12)}-4${c.slice(13,16)}-a${c.slice(17,20)}-${c.slice(20,32)}`,os:(0,h.vv)(),arch:(0,h.Tc)()};return k.set(b,d),d}function E(a,b){l.has(a)||(l.add(a),console.warn(`[IDENTITY_STALE] ${a}: ${b}`))}async function F(a,b){let c=g.jI[a]?.source?.npm;if(!c)return null;let d=await b(`https://registry.npmjs.org/${encodeURIComponent(c)}/latest`,{headers:{Accept:"application/json"}});if(!d.ok)return null;let e=await d.json();return r(e?.version)?e.version:null}async function G(a=globalThis.fetch){"function"==typeof a&&await Promise.all(i.map(async b=>{try{let c=await F(b,a);if(!c)return;let d=x(b)||q(b)||{};if("claude-cli"===b){t(c,d.version)>0&&(y(b,{...d,latestVersion:c,checkedAt:Date.now()}),E(b,`npm ${c} is ahead of captured tuple ${d.version}`));return}if(!B(b,d)||t(d.version,c)>0)E(b,`stored snapshot ${d.version} cannot belong to ${b}; reset to npm ${c}`),d=q(b)||{};else if(0>=t(c,d.version))return;let e="codex-cli"===b?`codex_cli_rs/${c}`:d.userAgent;y(b,{...d,version:c,...e?{userAgent:e}:{},checkedAt:Date.now()})}catch{}}))}function H(){let a=Date.now();for(let b of Object.keys(g.jI)){let c=x(b)||q(b),d=c?.capturedAt;if(!d)continue;let e=a-new Date(d).getTime();if(Number.isFinite(e)&&e>2592e6){let a=Math.floor(e/864e5);E(b,`snapshot is ${a}d old; run npm run identity:refresh`)}}}"1"!==process.env.SWITCHBOARD_DISABLE_IDENTITY_POLL&&queueMicrotask(()=>(function(a=globalThis.fetch){return m||"function"!=typeof a||(G(a),H(),m=setInterval(()=>{G(a),H()},216e5),m.unref?.()),m})())},39211:(a,b,c)=>{"use strict";c.d(b,{fX:()=>n});let d=/switchboard/i,e=/Switchboard\//i,f="https://github.com/Vijay-Duke/switchboard-router",g=new Set(["authorization","x-api-key","api-key","cookie"]);function h(a){return g.has(String(a).toLowerCase())}function i(a){let b={};for(let[c,g]of a?a instanceof Headers?[...a.entries()]:Object.entries(a):[])null!=g&&!function(a,b){let c=String(a),g=null==b?"":String(b),i=c.toLowerCase();return!!(i.startsWith("x-switchboard-")||"x-client-type"===i&&/^switchboard$/i.test(g.trim())||"x-msh-platform"===i&&/^switchboard$/i.test(g.trim())||"user-agent"===i&&e.test(g)||d.test(c)&&!h(c)||d.test(g)&&!h(c)||g.includes(f))}(c,g)&&(b[c]=String(g));return b}Object.freeze({SWITCHBOARD_RE:d,SWITCHBOARD_UA_RE:e,SWITCHBOARD_GITHUB:f});var j=c(6547),k=c(35570),l=c(70628);function m(a){return Object.keys(a).find(a=>"user-agent"===a.toLowerCase())}function n(a,b={}){let c=i(a),d=(0,j.ti)(b.identity,{format:b.format,provider:b.provider}),e=b.snapshot||(0,k.zi)(d),f="claude-cli"===d?(0,k.Iq)(b.credentialId):null,g=(0,j.$3)(c,d,{snapshot:f?{...e,os:f.os,arch:f.arch}:e,overlay:b.overlay,stream:b.stream,retryCount:b.retryCount,preserveUserAgent:!b.identity}),h=(0,j.E$)(d),o=i(g);if("claude-cli"===d&&b.requestPath?.startsWith("/v1/messages/count_tokens")){for(let a of Object.keys(o))"x-stainless-timeout"===a.toLowerCase()&&delete o[a];o=(0,j.Dm)(o,j.$R)}if(!m(o)){let a=e?.userAgent||function(a,b){let c=b?.version,d=(0,l.ol)()||"linux",e="ia32"===(0,l.LY)()?"x86":(0,l.LY)()||"x64";switch(a){case"claude-cli":return`claude-cli/${c||"2.1.258"} (external, cli)`;case"codex-cli":return`codex_cli_rs/${c||"0.149.0"}`;case"gemini-cli":return`GeminiCLI/${c||"0.56.0"}/unknown (${d}; ${e}; terminal)`;case"cline":return`Cline/${c||"3.0.0"}`;case"antigravity":return`antigravity/${c||"1.107.0"} ${d}/${e}`;case"copilot":return`GitHubCopilotChat/${c||"0.38.0"}`;case"qwen":return`QwenCode/${c||"0.12.3"} (${d}; ${e})`;case"grok-cli":return`grok-cli/${c||"1.0.0"}`;case"grok-build":return`grok-shell/${c||"0.2.99"} (${d}; ${e})`;case"chrome":return"Mozilla/5.0";default:return`OpenAI/NodeJS/${"u">typeof process&&process.version?process.version.replace(/^v/,""):"unknown"}`}}(d,e);o["User-Agent"]=a}return"claude-cli"===d&&function(a,b){let c=(0,k.Kn)(b),d=m(a),e=String(d?a[d]:"").match(/claude-(?:cli|code)\/(\d+\.\d+\.\d+)/i)?.[1]||null;if(!c.version||c.billingVersion!==c.version||c.tlsVersion!==c.version||c.userAgentVersion!==c.version||e!==c.version)throw Error(`Claude identity mismatch: ua=${e||c.userAgentVersion} version=${c.version} billing=${c.billingVersion} tls=${c.tlsVersion}`)}(o,e),{headers:i(o),profileId:d,tls:h?.tls||"node",alpn:h?.alpn||["h2","http/1.1"],tlsSpecRev:e?.tlsSpecRev}}},46052:(a,b,c)=>{"use strict";let d;c.d(b,{wo:()=>Q,Fm:()=>U,$6:()=>K,ip:()=>P,WV:()=>M});var e=c(27910),f=c(60290),g=c(39211),h=c(6547),i=c(31421),j=c(51455),k=c(76760),l=c(73136),m=c(57075);let n="2.1.258",o=Object.freeze(["http/1.1"]);Object.freeze(["TLS_AES_128_GCM_SHA256","TLS_AES_256_GCM_SHA384","TLS_CHACHA20_POLY1305_SHA256","TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256","TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256","TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384","TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384","TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256","TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256","TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA","TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA","TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA","TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA","TLS_RSA_WITH_AES_128_GCM_SHA256","TLS_RSA_WITH_AES_256_GCM_SHA384","TLS_RSA_WITH_AES_128_CBC_SHA","TLS_RSA_WITH_AES_256_CBC_SHA"]),Object.freeze(["server_name","extended_master_secret","renegotiation_info","supported_groups:x25519_mlkem768,x25519,secp256r1,secp384r1","ec_point_formats:uncompressed","session_ticket","alpn:http/1.1","status_request","signature_algorithms:ecdsa_secp256r1_sha256,rsa_pss_rsae_sha256,rsa_pkcs1_sha256,ecdsa_secp384r1_sha384,rsa_pss_rsae_sha384,rsa_pkcs1_sha384,rsa_pss_rsae_sha512,rsa_pkcs1_sha512,rsa_pkcs1_sha1","signed_certificate_timestamp","key_share:x25519_mlkem768","psk_key_exchange_modes:psk_dhe_ke","supported_versions:TLS1.3,TLS1.2"]);let p=k.dirname((0,l.fileURLToPath)("file:///home/runner/work/switchboard-router/switchboard-router/open-sse/identity/tls/claude-code.js")),q="win32"===process.platform?"switchboard-claude-tls.exe":"switchboard-claude-tls",r=[process.env.SWITCHBOARD_CLAUDE_TLS_HELPER,k.join(process.cwd(),"open-sse","identity","tls","bin",process.platform,process.arch,q),k.join(p,"bin",process.platform,process.arch,q)].filter(Boolean);function s(a){let b=Number(a);return Number.isFinite(b)&&b>0?Math.floor(b):null}let t=i.spawn,u=function(a){if(null==a||""===a)return 2;let b=Number(a);return Number.isInteger(b)&&b>=0?b:2}(process.env.SWITCHBOARD_CLAUDE_TLS_POOL_CAP),v=new Map,w=null;function x(a){return t(a,[],{stdio:["pipe","pipe","pipe"],windowsHide:!0})}function y(a,b){for(let c of[a,a.stdin,a.stdout,a.stderr])c?.[b?"ref":"unref"]?.()}async function z(){if(d)return d;for(let a of r)try{return await (0,j.access)(a),d=a,a}catch{}throw Error(`Claude Code TLS helper is not installed for ${process.platform}-${process.arch}`)}function A(){return new DOMException("The operation was aborted.","AbortError")}let B=globalThis.fetch,C=new Map,D=new Map,E=async()=>async function(a,b={},c={}){var d,e,f,g;if(c.alpn?.length!==1||"http/1.1"!==c.alpn[0])throw Error("Claude Code TLS transport requires ALPN http/1.1 only");if(b.signal?.aborted)throw A();let h=await z(),i=function(){for(let[a,b]of v)if(b(),null==a.exitCode&&null==a.signalCode)return y(a,!0),a;return null}()??x(h);w||v.size>=u||(w=setImmediate(()=>{w=null,function(a){for(;v.size<u;){let b;try{b=x(a)}catch{return}!function(a){let b=()=>{clearTimeout(c),a.off("exit",b),a.off("error",b),v.delete(a)},c=setTimeout(()=>{b();try{a.kill("SIGTERM")}catch{}},6e4);c.unref?.(),a.once("exit",b),a.once("error",b),y(a,!1),v.set(a,b)}(b)}}(h)}),w.unref?.());let j=function(a){if(null==a)return null;if("string"==typeof a)return Buffer.from(a);if(Buffer.isBuffer(a))return a;if(a instanceof Uint8Array)return Buffer.from(a);throw TypeError("Claude Code TLS helper requires a string or byte request body")}(b.body),k={url:String(a),method:b.method||"GET",headers:(d=b.headers)instanceof Headers?[...d.entries()]:Object.entries(d||{}).map(([a,b])=>[a,String(b)]),headerOrder:c.headerOrder||[],proxyUrl:c.proxyUrl||"",tlsSpecRev:n,alpn:o,bodyLength:j?.byteLength||0,timeoutMs:s(b.timeoutMs)??s(c.timeoutMs)??6e4};return i.stdin.write(`${JSON.stringify(k)}
2
+ `),j&&i.stdin.write(j),i.stdin.end(),e=i.stdout,f=i.stderr,g=b.signal,new Promise((a,b)=>{let c=Buffer.alloc(0),d="",h=!1,j=a=>{d.length>=16384||(d+=a.toString("utf8",0,16384-d.length))},k=(a,b,c)=>{let e=d.trim(),f=`${null==a?"":` with code ${a}`}${b?` (${b})`:""}`;return Error(e||`Claude TLS helper exited${c}${f}`)},l=()=>{e.off("data",r),i.off("error",o),i.off("exit",p)},n=a=>{h||(h=!0,l(),f.off("data",j),g?.removeEventListener("abort",q),b(a))},o=a=>n(a),p=(a,b)=>n(k(a,b," before metadata")),q=()=>{n(A()),i.kill("SIGTERM")},r=b=>{let d,o=(c=Buffer.concat([c,b])).indexOf("\n");if(o<0)return;try{d=JSON.parse(c.subarray(0,o).toString("utf8"))}catch(a){n(Error(`Claude TLS helper returned invalid metadata: ${a.message}`));return}if(d.error)return void n(Error(d.error));h=!0,l(),g?.removeEventListener("abort",q);let p=new m.PassThrough,r=m.Readable.toWeb(p),s=!1,t=!1,u=!1,v=a=>{u||(u=!0,e.unpipe(p),e.off("end",y),e.off("error",x),f.off("data",j),i.off("error",x),i.off("exit",z),g?.removeEventListener("abort",B),a?p.destroy(a):p.end())},w=a=>{e.destroyed||(e.once("error",()=>{}),e.destroy(a)),v(a)},x=a=>v(a),y=()=>{s=!0,t&&v()},z=(a,b)=>{0!==a||b?w(k(a,b," after metadata")):(t=!0,s&&v())},B=()=>{w(A()),i.kill("SIGTERM")};e.once("end",y),e.once("error",x),i.once("error",x),i.once("exit",z),g?.addEventListener("abort",B,{once:!0}),p.write(c.subarray(o+1)),e.pipe(p,{end:!1}),a(new Response(r,{status:d.status,statusText:d.statusText||"",headers:new Headers(d.headers||[])}))};f.on("data",j),e.on("data",r),i.once("error",o),i.once("exit",p),g?.addEventListener("abort",q,{once:!0}),g?.aborted&&q()})},F=async()=>(await Promise.resolve().then(c.t.bind(c,36435,19))).Impit,G=new Map,H=["cloudcode-pa.googleapis.com","daily-cloudcode-pa.googleapis.com","api.individual.githubcopilot.com","q.us-east-1.amazonaws.com","codewhisperer.us-east-1.amazonaws.com","api2.cursor.sh"],I=["8.8.8.8","8.8.4.4"];function J(a){return null==a?"":String(a).trim()}function K(a){let b=a?.providerSpecificData||{};return{connectionProxyEnabled:!0===b.connectionProxyEnabled,connectionProxyUrl:b.connectionProxyUrl||"",connectionNoProxy:b.connectionNoProxy||"",vercelRelayUrl:b.vercelRelayUrl||"",strictProxy:!0===b.strictProxy}}async function L(a){let b=G.get(a);if(b&&Date.now()<b.expiry&&Array.isArray(b.ips)&&b.ips.length>0)return b.idx=(b.idx+1)%b.ips.length,b.ips[b.idx];try{let b=await Promise.resolve().then(c.t.bind(c,14985,19)),{promisify:d}=await Promise.resolve().then(c.t.bind(c,28354,19)),e=new b.Resolver;e.setServers(I);let g=d(e.resolve4.bind(e)),h=d(e.resolve6.bind(e)),i=await g(a).catch(()=>[]);if(Array.isArray(i)&&0!==i.length||(i=await h(a).catch(()=>[])),!Array.isArray(i)||0===i.length)return null;if(G.size>=f.v1.dnsCacheMaxSize){let a=Date.now();for(let[b,c]of G)c.expiry<=a&&G.delete(b);for(;G.size>=f.v1.dnsCacheMaxSize;)G.delete(G.keys().next().value)}return G.set(a,{ips:i,idx:0,expiry:Date.now()+f.v1.dnsCacheTtlMs}),i[0]}catch(b){return console.warn(`[ProxyFetch] DNS resolve failed for ${a}:`,b.message),null}}function M(a){try{let b=new URL(a).hostname;return H.some(a=>b.includes(a))}catch{return!1}}function N(a,b){let c,d=J(b);if(!d)return!1;try{c=new URL(a).hostname.toLowerCase()}catch{return!1}return d.split(",").map(a=>a.trim().toLowerCase()).filter(Boolean).some(a=>"*"===a||(a.startsWith(".")?c.endsWith(a)||c===a.slice(1):c===a||c.endsWith(`.${a}`)))}function O(a){let b=J(a);if(!b)return null;try{return new URL(b),b}catch{return`http://${b}`}}function P(a,b){return function(a,b){if(b?.enabled!==!0&&b?.connectionProxyEnabled!==!0)return null;let c=J(b?.url??b?.connectionProxyUrl);if(!c)return null;let d=J(b?.noProxy??b?.connectionNoProxy);return d&&N(a,d)?null:O(c)}(a,b)||O(function(a){let b;if(N(a,process.env.NO_PROXY||process.env.no_proxy))return null;try{b=new URL(a).protocol}catch{return null}return"https:"===b?process.env.HTTPS_PROXY||process.env.https_proxy||process.env.ALL_PROXY||process.env.all_proxy:process.env.HTTP_PROXY||process.env.http_proxy||process.env.ALL_PROXY||process.env.all_proxy}(a))}async function Q(a){let b=O(a);if(!b)return null;if(!C.has(b)){if(C.size>=f.v1.proxyDispatchersMaxSize){let a=C.keys().next().value,b=C.get(a);C.delete(a),Promise.resolve(b?.close?.()).catch(()=>{})}let{ProxyAgent:a}=await c.e(7774).then(c.t.bind(c,47774,19));C.set(b,new a({uri:b}))}let d=C.get(b);return C.delete(b),C.set(b,d),d}async function R(a){let b=a||"",c=D.get(b);return c||(c=new(await F())({browser:"chrome",...a?{proxyUrl:a}:{},followRedirects:!1}),D.set(b,c)),(a,b)=>c.fetch(a,b)}function S(a){return a?"u">typeof Headers&&a instanceof Headers?Object.fromEntries(a.entries()):{...a}:{}}async function T(a,b,d){let f=await Promise.resolve().then(c.t.bind(c,55591,19)),g=await Promise.resolve().then(c.t.bind(c,91645,19)),h=f.default??f,i=g.default??g;return new Promise((c,f)=>{let g,j=new i.Socket,k=!1;function l(){j.setTimeout(0),d.signal&&d.signal.removeEventListener("abort",m)}function m(){k||(k=!0,l(),j.destroy(),g?.destroy(),f(new DOMException("The operation was aborted.","AbortError")))}d.signal?.aborted?m():(d.signal&&d.signal.addEventListener("abort",m,{once:!0}),j.setTimeout(1e4,()=>{k||(k=!0,l(),j.destroy(),f(Error(`[ProxyFetch] connect timeout after 10000ms to ${b}`)))}),j.connect(443,b,()=>{j.setTimeout(0);let b={socket:j,servername:a.hostname,path:a.pathname+a.search,method:d.method||"POST",headers:{...S(d.headers),Host:a.hostname}};if((g=h.request(b,a=>{let b=()=>{try{a.destroy(new DOMException("The operation was aborted.","AbortError"))}catch{a.destroy()}},g=()=>d.signal?.removeEventListener("abort",b);if(d.signal?.aborted){k=!0,l(),b(),g(),f(new DOMException("The operation was aborted.","AbortError"));return}d.signal?.addEventListener("abort",b,{once:!0}),a.once("end",g),a.once("close",g),a.once("error",g);let h={ok:a.statusCode>=200&&a.statusCode<300,status:a.statusCode,statusText:a.statusMessage,headers:new Map(Object.entries(a.headers)),body:e.Readable.toWeb(a),text:async()=>{let b=[];for await(let c of a)b.push(c);return Buffer.concat(b).toString()},json:async()=>JSON.parse(await h.text())};k=!0,l(),c(h)})).on("error",a=>{k||(k=!0,l(),f(a))}),null!=d.body)try{g.write(function(a){if("string"==typeof a||"u">typeof Buffer&&Buffer.isBuffer(a)||a instanceof Uint8Array)return a;if("u">typeof ArrayBuffer&&a instanceof ArrayBuffer)return Buffer.from(a);if("u">typeof FormData&&a instanceof FormData)throw Error("[ProxyFetch] FormData bodies are not supported on the MITM bypass path");return JSON.stringify(a)}(d.body))}catch(a){k||(k=!0,l(),f(a));return}g.end()}),j.on("error",a=>{k||(k=!0,l(),f(a))}))})}async function U(a,b={},c=null){let d="string"==typeof a?a:a.toString(),e=function(a,b={}){let c=b.headers?.Accept||b.headers?.accept||"",d="string"==typeof c&&c.includes("text/event-stream"),e=(0,g.fX)(b.headers||{},{identity:b.identity,provider:b.provider,format:b.format,overlay:b.overlay,credentialId:b.credentialId,stream:b.stream??d,retryCount:b.retryCount,snapshot:b.snapshot,requestPath:new URL(a).pathname});return{...b,headers:e.headers,_identityTls:e.tls,_identityAlpn:e.alpn,_identityTlsSpecRev:e.tlsSpecRev,_identityProfile:e.profileId}}(d,b),f=function(a){let{_identityTls:b,_identityAlpn:c,_identityTlsSpecRev:d,_identityProfile:e,identity:f,provider:g,format:h,overlay:i,credentialId:j,stream:k,retryCount:l,snapshot:m,...n}=a;return n}(e),{_identityTls:i,_identityAlpn:j,_identityProfile:k}=e,l=J(c?.vercelRelayUrl);if(l){let a=new URL(d);return((...a)=>B(...a))(l,{...f,headers:{...S(f.headers),"x-relay-target":`${a.protocol}//${a.host}`,"x-relay-path":`${a.pathname}${a.search}`}})}let m=P(d,c);if("node"!==i)try{let b={profileId:k,alpn:j,proxyUrl:m,headerOrder:"claude-cli"===k?new URL(d).pathname.startsWith("/v1/messages/count_tokens")?h.$R:h.Zb:(0,h.E$)(k)?.headerOrder||[]},c=/^claude-code-(\d+\.\d+\.\d+)$/.exec(e._identityTlsSpecRev||"")?.[1]||e._identityTlsSpecRev;if("claude-cli"===k&&c!==n)throw Error(`snapshot TLS spec ${e._identityTlsSpecRev||"missing"} does not match helper ${n}`);let g="chrome"===i?await R(m):await E();return await g(a,f,b)}catch(b){if(b?.name==="AbortError")throw b;let a=Error(`[ProxyFetch] ${i} TLS (${k}) unavailable: ${b.message}`);throw a.status=503,a}if(M(d)){if(m)try{let b=await Q(m);return await ((...a)=>B(...a))(a,{...f,dispatcher:b})}catch(a){if(c?.strictProxy===!0)throw Error(`[ProxyFetch] Proxy required but failed (strictProxy=true): ${a.message}`);console.warn(`[ProxyFetch] Proxy failed, falling back to direct bypass: ${a.message}`)}try{let a=new URL(d),b=await L(a.hostname);if(b)return await T(a,b,f)}catch(a){console.warn(`[ProxyFetch] MITM bypass failed: ${a.message}`)}}if(m)try{let b=await Q(m);return await ((...a)=>B(...a))(a,{...f,dispatcher:b})}catch(a){if(c?.strictProxy===!0)throw Error(`[ProxyFetch] Proxy required but failed (strictProxy=true): ${a.message}`);console.warn(`[ProxyFetch] Proxy failed, falling back to direct: ${a.message}`)}return((...a)=>B(...a))(a,f)}async function V(a,b={}){return U(a,b,null)}globalThis.fetch!==V&&(globalThis.fetch=V)},70628:(a,b,c)=>{"use strict";c.d(b,{LY:()=>h,Tc:()=>f,ol:()=>g,vv:()=>e});var d=c(21820);function e(){switch((0,d.platform)()){case"darwin":return"MacOS";case"win32":return"Windows";case"linux":return"Linux";case"freebsd":return"FreeBSD";default:return`Other::${(0,d.platform)()}`}}function f(){switch((0,d.arch)()){case"x64":return"x64";case"arm64":return"arm64";case"ia32":return"x86";default:return`other::${(0,d.arch)()}`}}function g(){return(0,d.platform)()}function h(){return(0,d.arch)()}},78335:()=>{},94552:(a,b,c)=>{"use strict";a.exports=c.p+"static/media/versions.4155c5ec.json"},96487:()=>{}};
@@ -0,0 +1 @@
1
+ "use strict";exports.id=1837,exports.ids=[1837],exports.modules={43429:(a,b,c)=>{c.d(b,{Y:()=>e});let d=["user-agent","anthropic-beta","anthropic-version","anthropic-dangerous-direct-browser-access","x-app","x-stainless-helper-method","x-stainless-retry-count","x-stainless-runtime-version","x-stainless-package-version","x-stainless-runtime","x-stainless-lang","x-stainless-arch","x-stainless-os","x-stainless-timeout","x-claude-code-session-id","package-version","runtime-version","os","arch"];function e(a){if(!a||"object"!=typeof a)return null;let b={};for(let c of d)void 0!==a[c]&&null!==a[c]&&(b[c]=a[c]);return Object.keys(b).length>0?b:null}},68988:(a,b,c)=>{c.d(b,{A9:()=>i,R8:()=>j,Sx:()=>h,mn:()=>k});var d=c(46052),e=c(13247),f=c(53129);async function g(a){let b=await a.text();try{return JSON.parse(b)}catch{return{error:"invalid_response",error_description:b}}}async function h(a){let b=new URLSearchParams({client_id:a.clientId,scope:a.scope});a.referrer&&b.set("referrer",a.referrer);let c=await (0,d.Fm)(a.deviceCodeUrl,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:b,...e.Ai}),f=await g(c);if(!c.ok)throw Error(`Grok CLI device code request failed: ${f.error_description||f.error||c.status}`);return f}async function i(a,b){let c=await (0,d.Fm)(a.tokenUrl,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams({grant_type:"urn:ietf:params:oauth:grant-type:device_code",device_code:b,client_id:a.clientId}),...e.Ai}),f=await g(c),h="authorization_pending"===f.error||"slow_down"===f.error;return{ok:c.ok||h,data:f}}async function j(a){try{let b=await (0,d.Fm)(`${e.Nr}/user`,{headers:(0,e.Ab)(a.access_token),...e.Ai});return{user:b.ok?await b.json():null}}catch{return{user:null}}}function k(a,b=null){let c=b?.user||{},d=(0,f.pG)(a.id_token)||(0,f.J_)(a.access_token)||c.email,e=c.userId||c.principalId||null,g=[c.firstName,c.lastName].filter(Boolean).join(" ").trim();return{accessToken:a.access_token,refreshToken:a.refresh_token||null,expiresIn:a.expires_in,scope:a.scope,...d?{email:d}:{},...g?{displayName:g}:{},providerSpecificData:{authMethod:"device_code",idToken:a.id_token||null,email:d||null,userId:e,hasGrokCodeAccess:c.hasGrokCodeAccess??null,subscriptionTier:c.subscriptionTier??null}}}},74177:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{backfillCodexEmails:()=>y,exchangeTokens:()=>v,extractCodexAccountInfo:()=>l.YR,fetchKiroProfileArn:()=>l.gR,generateAuthData:()=>u,getProvider:()=>s,getProviderNames:()=>t,pollForToken:()=>x,requestDeviceCode:()=>w});var e=c(30369),f=c(55511),g=c.n(f),h=c(28730),i=c(13808),j=c(92990),k=c(73159),l=c(53129),m=c(75008),n=c(22898),o=c(46052),p=c(68988),q=a([e]);e=(q.then?(await q)():q)[0];let z=null;async function r(){if(z)return z;try{let a=await (0,o.Fm)(k.o.discoveryUrl,{headers:{Accept:"application/json"},identity:"grok-cli",provider:"xai",format:"openai"});if(a.ok){let b=await a.json();return z={authorizeUrl:(0,l.js)(b.authorization_endpoint,"authorization_endpoint"),tokenUrl:(0,l.js)(b.token_endpoint,"token_endpoint")}}}catch{}return z={authorizeUrl:k.o.authorizeUrl,tokenUrl:k.o.tokenUrl}}let A={claude:{config:j.OV,flowType:"authorization_code_pkce",buildAuthUrl:(a,b,c,d)=>{let e=new URLSearchParams({code:"true",client_id:a.clientId,response_type:"code",redirect_uri:b,scope:a.scopes.join(" "),code_challenge:d,code_challenge_method:a.codeChallengeMethod,state:c});return`${a.authorizeUrl}?${e.toString()}`},exchangeToken:async(a,b,c,d,e)=>{let f=b,g="";if(f.includes("#")){let a=f.split("#");f=a[0],g=a[1]||""}let h=await (0,o.Fm)(a.tokenUrl,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify({code:f,state:g||e,grant_type:"authorization_code",client_id:a.clientId,redirect_uri:c,code_verifier:d}),...(0,l.ro)("claude")});if(!h.ok){let a=await h.text();throw Error(`Token exchange failed: ${a}`)}return await h.json()},mapTokens:a=>({accessToken:a.access_token,refreshToken:a.refresh_token,expiresIn:a.expires_in,scope:a.scope})},codex:{config:j.DI,flowType:"authorization_code_pkce",fixedPort:j.DI.fixedPort,callbackPath:j.DI.callbackPath,buildAuthUrl:(a,b,c,d)=>{let e={response_type:"code",client_id:a.clientId,redirect_uri:b,scope:a.scope,code_challenge:d,code_challenge_method:a.codeChallengeMethod,...a.extraParams,state:c},f=Object.entries(e).map(([a,b])=>`${a}=${encodeURIComponent(b)}`).join("&");return`${a.authorizeUrl}?${f}`},exchangeToken:async(a,b,c,d)=>{let e=await (0,o.Fm)(a.tokenUrl,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams({grant_type:"authorization_code",client_id:a.clientId,code:b,redirect_uri:c,code_verifier:d}),...(0,l.ro)("codex")});if(!e.ok){let a=await e.text();throw Error(`Token exchange failed: ${a}`)}return await e.json()},mapTokens:a=>{let b=(0,l.YR)(a.id_token),c={accessToken:a.access_token,refreshToken:a.refresh_token,idToken:a.id_token,expiresIn:a.expires_in,lastRefreshAt:new Date().toISOString()},d=b.email||(0,l.J_)(a.access_token);return d&&(c.email=d),(b.chatgptAccountId||b.chatgptPlanType)&&(c.providerSpecificData={chatgptAccountId:b.chatgptAccountId,chatgptPlanType:b.chatgptPlanType}),c}},xai:{config:k.o,flowType:"authorization_code_pkce",fixedPort:k.o.loopbackPort,callbackPath:k.o.callbackPath,pkceVerifierBytes:k.U,prepareConfig:async a=>{let b=await r();return{...a,authorizeUrl:b.authorizeUrl,tokenUrl:b.tokenUrl}},buildAuthUrl:(a,b,c,d)=>{let e=g().randomBytes(16).toString("hex"),f={response_type:"code",client_id:a.clientId,redirect_uri:b,scope:a.scope,code_challenge:d,code_challenge_method:a.codeChallengeMethod,state:c,nonce:e,plan:"generic",referrer:"cli-proxy-api"},h=Object.entries(f).map(([a,b])=>`${a}=${encodeURIComponent(b)}`).join("&");return`${a.authorizeUrl}?${h}`},exchangeToken:async(a,b,c,d)=>{let e=await (0,o.Fm)(a.tokenUrl,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams({grant_type:"authorization_code",client_id:a.clientId,code:b,redirect_uri:c,code_verifier:d}),identity:"grok-cli",provider:"xai",format:"openai"});if(!e.ok){let a=await e.text();throw Error(`xAI token exchange failed: ${a}`)}return await e.json()},mapTokens:a=>{let b={accessToken:a.access_token,refreshToken:a.refresh_token,expiresIn:a.expires_in,scope:a.scope},c=(0,l.pG)(a.id_token);return c&&(b.email=c),a.id_token&&(b.providerSpecificData={idToken:a.id_token}),b}},"grok-cli":{config:j.qp,flowType:"device_code",requestDeviceCode:p.Sx,pollToken:(a,b)=>(0,p.A9)(a,b),postExchange:p.R8,mapTokens:p.mn},"gemini-cli":{config:j.LT,flowType:"authorization_code",buildAuthUrl:(a,b,c)=>{let d=new URLSearchParams({client_id:a.clientId,response_type:"code",redirect_uri:b,scope:a.scopes.join(" "),state:c,access_type:"offline",prompt:"consent"});return`${a.authorizeUrl}?${d.toString()}`},exchangeToken:async(a,b,c)=>{let d=await (0,o.Fm)(a.tokenUrl,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams({grant_type:"authorization_code",client_id:a.clientId,client_secret:a.clientSecret,code:b,redirect_uri:c}),...(0,l.ro)("gemini-cli")});if(!d.ok){let a=await d.text();throw Error(`Token exchange failed: ${a}`)}return await d.json()},postExchange:async a=>{let b=await (0,o.Fm)(`${j.LT.userInfoUrl}?alt=json`,{headers:{Authorization:`Bearer ${a.access_token}`},...(0,l.ro)("gemini-cli")}),c=b.ok?await b.json():{},d="";try{let b=await (0,o.Fm)("https://cloudcode-pa.googleapis.com/v1internal:loadCodeAssist",{method:"POST",headers:{Authorization:`Bearer ${a.access_token}`,"Content-Type":"application/json"},body:JSON.stringify({metadata:(0,j.cD)(),mode:1}),...(0,l.ro)("gemini-cli")});if(b.ok){let a=await b.json();d=a.cloudaicompanionProject?.id||a.cloudaicompanionProject||""}}catch(a){console.log("Failed to fetch project ID:",a)}return{userInfo:c,projectId:d}},mapTokens:(a,b)=>({accessToken:a.access_token,refreshToken:a.refresh_token,expiresIn:a.expires_in,scope:a.scope,email:b?.userInfo?.email,projectId:b?.projectId})},antigravity:{config:j.YT,flowType:"authorization_code",buildAuthUrl:(a,b,c)=>{let d=new URLSearchParams({client_id:a.clientId,response_type:"code",redirect_uri:b,scope:a.scopes.join(" "),state:c,access_type:"offline",prompt:"consent"});return`${a.authorizeUrl}?${d.toString()}`},exchangeToken:async(a,b,c)=>{let d=await (0,o.Fm)(a.tokenUrl,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams({grant_type:"authorization_code",client_id:a.clientId,client_secret:a.clientSecret,code:b,redirect_uri:c}),identity:"antigravity",provider:"antigravity",format:"antigravity"});if(!d.ok){let a=await d.text();throw Error(`Token exchange failed: ${a}`)}return await d.json()},postExchange:async a=>{let b={Authorization:`Bearer ${a.access_token}`,"Content-Type":"application/json","X-Goog-Api-Client":j.YT.loadCodeAssistApiClient,"Client-Metadata":j.YT.loadCodeAssistClientMetadata},c=(0,j.cD)(),d=await (0,o.Fm)(`${j.YT.userInfoUrl}?alt=json`,{headers:{Authorization:`Bearer ${a.access_token}`},identity:"antigravity",provider:"antigravity",format:"antigravity"}),e=d.ok?await d.json():{},f="",g="legacy-tier";try{let a=await (0,o.Fm)(j.YT.loadCodeAssistEndpoint,{method:"POST",headers:b,body:JSON.stringify({metadata:c}),identity:"antigravity",provider:"antigravity",format:"antigravity"});if(a.ok){let b=await a.json();if(f=b.cloudaicompanionProject?.id||b.cloudaicompanionProject||"",Array.isArray(b.allowedTiers)){for(let a of b.allowedTiers)if(a.isDefault&&a.id){g=a.id.trim();break}}}}catch(a){console.log("Failed to load code assist:",a)}return f&&(async()=>{for(let a=0;a<10;a++){try{let a=await (0,o.Fm)(j.YT.onboardUserEndpoint,{method:"POST",headers:b,body:JSON.stringify({tierId:g,metadata:c}),identity:"antigravity",provider:"antigravity",format:"antigravity"});if(a.ok){let b=await a.json();if(!0===b.done)break}}catch(a){break}await new Promise(a=>setTimeout(a,5e3))}})().catch(()=>{}),{userInfo:e,projectId:f}},mapTokens:(a,b)=>({accessToken:a.access_token,refreshToken:a.refresh_token,expiresIn:a.expires_in,scope:a.scope,email:b?.userInfo?.email,projectId:b?.projectId})},iflow:{config:j.ZL,flowType:"authorization_code",buildAuthUrl:(a,b,c)=>{let d=new URLSearchParams({loginMethod:a.extraParams.loginMethod,type:a.extraParams.type,redirect:b,state:c,client_id:a.clientId});return`${a.authorizeUrl}?${d.toString()}`},exchangeToken:async(a,b,c)=>{let d=Buffer.from(`${a.clientId}:${a.clientSecret}`).toString("base64"),e=await (0,o.Fm)(a.tokenUrl,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json",Authorization:`Basic ${d}`},body:new URLSearchParams({grant_type:"authorization_code",code:b,redirect_uri:c,client_id:a.clientId,client_secret:a.clientSecret}),...(0,l.ro)("iflow")});if(!e.ok){let a=await e.text();throw Error(`Token exchange failed: ${a}`)}return await e.json()},postExchange:async a=>{let b=await (0,o.Fm)(`${j.ZL.userInfoUrl}?accessToken=${encodeURIComponent(a.access_token)}`,{headers:{Accept:"application/json"},...(0,l.ro)("iflow")});if(!b.ok){let a=await b.text();throw Error(`Failed to fetch user info: ${a}`)}let c=await b.json();if(!c.success)throw Error(`User info request failed: ${c.message||"Unknown error"}`);let d=c.data||{};if(!d.apiKey||""===d.apiKey.trim())throw Error("Empty API key returned from iFlow");if(!(d.email?.trim()||d.phone?.trim()))throw Error("Missing account email/phone in user info");return{userInfo:d}},mapTokens:(a,b)=>({accessToken:a.access_token,refreshToken:a.refresh_token,expiresIn:a.expires_in,apiKey:b?.userInfo?.apiKey,email:b?.userInfo?.email||b?.userInfo?.phone,displayName:b?.userInfo?.nickname||b?.userInfo?.name})},qoder:{config:j.hF,flowType:"device_code",requestDeviceCode:async a=>{let{QoderService:b}=await c.e(3546).then(c.bind(c,73546)),d=new b().initiateDeviceFlow();return{device_code:d.nonce,user_code:d.nonce.slice(0,8).toUpperCase(),verification_uri:a.loginUrl,verification_uri_complete:d.verificationUriComplete,expires_in:300,interval:2,codeVerifier:d.codeVerifier,_qoderNonce:d.nonce,_qoderMachineId:d.machineId}},pollToken:async(a,b,d,e)=>{let f,{QoderService:g}=await c.e(3546).then(c.bind(c,73546)),h=new g,i=b||e?._qoderNonce,j=d||e?._qoderVerifier;if(!i||!j)return{ok:!1,data:{error:"invalid_request",error_description:"Missing nonce/verifier"}};try{f=await h.pollDeviceToken({nonce:i,codeVerifier:j})}catch(a){return{ok:!1,data:{error:"poll_failed",error_description:a.message}}}if("pending"===f.status)return{ok:!1,data:{error:"authorization_pending"}};let k=await h.fetchUserInfo(f.accessToken),l=Math.floor((f.expireTime-Date.now())/1e3),m=Math.max(86400,l);return{ok:!0,data:{access_token:f.accessToken,refresh_token:f.refreshToken,expires_in:m,_qoderUserId:f.userId,_qoderMachineId:e?._qoderMachineId||"",_qoderName:k.name,_qoderEmail:k.email,_qoderOrganizationId:k.organizationId}}},mapTokens:a=>{let b=(a._qoderEmail||"").trim(),c=(a._qoderName||"").trim()||null,d=a._qoderUserId||"",e=b||(d?`qoder-user-${d}`:null);return{accessToken:a.access_token,refreshToken:a.refresh_token||null,expiresIn:a.expires_in,email:e,displayName:c,providerSpecificData:{authMethod:"device",userId:d,machineId:a._qoderMachineId||"",organizationId:a._qoderOrganizationId||""}}}},qwen:{config:j.Hp,flowType:"device_code",requestDeviceCode:async(a,b)=>{let c=await (0,o.Fm)(a.deviceCodeUrl,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams({client_id:a.clientId,scope:a.scope,code_challenge:b,code_challenge_method:a.codeChallengeMethod}),...(0,l.ro)("qwen")});if(!c.ok){let a=await c.text();throw Error(`Device code request failed: ${a}`)}return await c.json()},pollToken:async(a,b,c)=>{let d=await (0,o.Fm)(a.tokenUrl,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams({grant_type:"urn:ietf:params:oauth:grant-type:device_code",client_id:a.clientId,device_code:b,code_verifier:c}),...(0,l.ro)("qwen")});return{ok:d.ok,data:await d.json()}},mapTokens:a=>({accessToken:a.access_token,refreshToken:a.refresh_token,expiresIn:a.expires_in,providerSpecificData:{resourceUrl:a.resource_url}})},github:{config:j.Nu,flowType:"device_code",requestDeviceCode:async a=>{let b=await (0,o.Fm)(a.deviceCodeUrl,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams({client_id:a.clientId,scope:a.scopes}),...(0,l.ro)("github")});if(!b.ok){let a=await b.text();throw Error(`Device code request failed: ${a}`)}return await b.json()},pollToken:async(a,b)=>{let c,d=await (0,o.Fm)(a.tokenUrl,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams({client_id:a.clientId,device_code:b,grant_type:"urn:ietf:params:oauth:grant-type:device_code"}),...(0,l.ro)("github")});try{c=await d.json()}catch(b){let a=await d.text();c={error:"invalid_response",error_description:a}}return{ok:d.ok,data:c}},postExchange:async a=>{let b=await (0,o.Fm)(j.Nu.copilotTokenUrl,{headers:{Authorization:`Bearer ${a.access_token}`,Accept:"application/json"},identity:"copilot",provider:"github",format:"openai"}),c=b.ok?await b.json():{},d=await (0,o.Fm)(j.Nu.userInfoUrl,{headers:{Authorization:`Bearer ${a.access_token}`,Accept:"application/json","X-GitHub-Api-Version":j.Nu.apiVersion},identity:"copilot",provider:"github",format:"openai"}),e=d.ok?await d.json():{};return{copilotToken:c,userInfo:e}},mapTokens:(a,b)=>({accessToken:a.access_token,refreshToken:a.refresh_token,expiresIn:a.expires_in,providerSpecificData:{copilotToken:b?.copilotToken?.token,copilotTokenExpiresAt:b?.copilotToken?.expires_at,githubUserId:b?.userInfo?.id,githubLogin:b?.userInfo?.login,githubName:b?.userInfo?.name,githubEmail:b?.userInfo?.email}})},kiro:{config:j.Tx,flowType:"device_code",requestDeviceCode:async(a,b,c={})=>{let d=("string"==typeof c.region?c.region.trim():"")||"us-east-1";(0,j.S6)(d);let e=("string"==typeof c.startUrl?c.startUrl.trim():"")||a.startUrl,f="idc"===c.authMethod?"idc":"builder-id",g=`https://oidc.${d}.amazonaws.com/client/register`,h=`https://oidc.${d}.amazonaws.com/device_authorization`,i=await (0,o.Fm)(g,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify({clientName:a.clientName,clientType:a.clientType,scopes:a.scopes,grantTypes:a.grantTypes,issuerUrl:a.issuerUrl}),...(0,l.ro)("kiro")});if(!i.ok){let a=await i.text();throw Error(`Client registration failed: ${a}`)}let k=await i.json(),m=await (0,o.Fm)(h,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify({clientId:k.clientId,clientSecret:k.clientSecret,startUrl:e}),...(0,l.ro)("kiro")});if(!m.ok){let a=await m.text();throw Error(`Device authorization failed: ${a}`)}let n=await m.json();return{device_code:n.deviceCode,user_code:n.userCode,verification_uri:n.verificationUri,verification_uri_complete:n.verificationUriComplete,expires_in:n.expiresIn,interval:n.interval||5,_clientId:k.clientId,_clientSecret:k.clientSecret,_region:d,_authMethod:f,_startUrl:e}},pollToken:async(a,b,c,d)=>{let e,f=d?._region||"us-east-1";(0,j.S6)(f);let g=(0,m.R)(d?._profileArn);if(d?._profileArn&&!g)throw Error("A valid Kiro profile ARN is required for IAM Identity Center");let h=`https://oidc.${f}.amazonaws.com/token`,i=await (0,o.Fm)(h,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify({clientId:d?._clientId,clientSecret:d?._clientSecret,deviceCode:b,grantType:"urn:ietf:params:oauth:grant-type:device_code"}),...(0,l.ro)("kiro")});try{e=await i.json()}catch(b){let a=await i.text();e={error:"invalid_response",error_description:a}}if(e.accessToken){let a=(0,m.R)(e.profileArn),b=a?.profileArn||g?.profileArn||await (0,l.gR)(e.accessToken,f);if(d?._authMethod==="idc"&&!b)throw Error("Kiro did not return an enterprise profile. Check that the subscription is active, or enter a profile ARN from `kiro-cli whoami`.");return{ok:!0,data:{access_token:e.accessToken,refresh_token:e.refreshToken,expires_in:e.expiresIn,profile_arn:b,_clientId:d?._clientId,_clientSecret:d?._clientSecret,_region:d?._region,_authMethod:d?._authMethod,_startUrl:d?._startUrl}}}return{ok:!1,data:{error:e.error||"authorization_pending",error_description:e.error_description||e.message}}},mapTokens:a=>{let b=(0,l.J_)(a.access_token);return{accessToken:a.access_token,refreshToken:a.refresh_token,expiresIn:a.expires_in,email:b,providerSpecificData:{profileArn:a?.profile_arn||null,clientId:a._clientId,clientSecret:a._clientSecret,region:a._region||"us-east-1",authMethod:a._authMethod||"builder-id",startUrl:a._startUrl||j.Tx.startUrl}}}},cursor:{config:j.WN,flowType:"import_token",mapTokens:a=>({accessToken:a.accessToken,refreshToken:null,expiresIn:a.expiresIn||86400,providerSpecificData:{machineId:a.machineId,authMethod:"imported"}})},"kimi-coding":{config:j.t,flowType:"device_code",requestDeviceCode:async a=>{let b=g().randomUUID(),c=await (0,o.Fm)(a.deviceCodeUrl,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json",...(0,h.VK)(b)},body:new URLSearchParams({client_id:a.clientId}),...(0,l.ro)("kimi-coding")});if(!c.ok){let a=await c.text();throw Error(`Device code request failed: ${a}`)}let d=await c.json();return{device_code:d.device_code,user_code:d.user_code,verification_uri:d.verification_uri||"https://www.kimi.com/code/authorize_device",verification_uri_complete:d.verification_uri_complete||`https://www.kimi.com/code/authorize_device?user_code=${d.user_code}`,expires_in:d.expires_in,interval:d.interval||5,_kimiDeviceId:b}},pollToken:async(a,b,c,d)=>{let e,f=d?._kimiDeviceId,g=await (0,o.Fm)(a.tokenUrl,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json",...(0,h.VK)(f)},body:new URLSearchParams({grant_type:"urn:ietf:params:oauth:grant-type:device_code",client_id:a.clientId,device_code:b}),...(0,l.ro)("kimi-coding")});try{e=await g.json()}catch(b){let a=await g.text();e={error:"invalid_response",error_description:a}}return e.access_token&&f&&(e._kimiDeviceId=f),{ok:g.ok,data:e}},mapTokens:a=>({accessToken:a.access_token,refreshToken:a.refresh_token,expiresIn:a.expires_in,...a._kimiDeviceId?{providerSpecificData:{deviceId:a._kimiDeviceId}}:{}})},kilocode:{config:j.MZ,flowType:"device_code",requestDeviceCode:async a=>{let b=await (0,o.Fm)(a.initiateUrl,{method:"POST",headers:{"Content-Type":"application/json"},...(0,l.ro)("kilocode")});if(!b.ok){if(429===b.status)throw Error("Too many pending authorization requests. Please try again later.");let a=await b.text();throw Error(`Device auth initiation failed: ${a}`)}let c=await b.json();return{device_code:c.code,user_code:c.code,verification_uri:c.verificationUrl,verification_uri_complete:c.verificationUrl,expires_in:c.expiresIn||300,interval:3}},pollToken:async(a,b)=>{let c=await (0,o.Fm)(`${a.pollUrlBase}/${b}`,{...(0,l.ro)("kilocode")});if(202===c.status)return{ok:!1,data:{error:"authorization_pending"}};if(403===c.status)return{ok:!1,data:{error:"access_denied",error_description:"Authorization denied by user"}};if(410===c.status)return{ok:!1,data:{error:"expired_token",error_description:"Authorization code expired"}};if(!c.ok)return{ok:!1,data:{error:"poll_failed",error_description:`Poll failed: ${c.status}`}};let d=await c.json();if("approved"===d.status&&d.token){let b=null;try{let c=await (0,o.Fm)(`${a.apiBaseUrl}/api/profile`,{headers:{Authorization:`Bearer ${d.token}`},...(0,l.ro)("kilocode")});if(c.ok){let a=await c.json();b=a.organizations?.[0]?.id||null}}catch{}return{ok:!0,data:{access_token:d.token,_userEmail:d.userEmail,_orgId:b}}}return{ok:!1,data:{error:"authorization_pending"}}},mapTokens:a=>({accessToken:a.access_token,refreshToken:null,expiresIn:null,email:a._userEmail,...a._orgId?{providerSpecificData:{orgId:a._orgId}}:{}})},cline:{config:j.lB,flowType:"authorization_code",buildAuthUrl:(a,b)=>{let c=new URLSearchParams({client_type:"extension",callback_url:b,redirect_uri:b});return`${a.authorizeUrl}?${c.toString()}`},exchangeToken:async(a,b,c)=>{try{let a=b,c=4-a.length%4;4!==c&&(a+="=".repeat(c));let d=Buffer.from(a,"base64").toString("utf-8"),e=d.lastIndexOf("}");if(-1===e)throw Error("No JSON found in decoded code");let f=JSON.parse(d.substring(0,e+1));return{access_token:f.accessToken,refresh_token:f.refreshToken,email:f.email,firstName:f.firstName,lastName:f.lastName,expires_at:f.expiresAt}}catch(f){let d=await (0,o.Fm)(a.tokenExchangeUrl,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify({grant_type:"authorization_code",code:b,client_type:"extension",redirect_uri:c}),...(0,l.ro)("cline")});if(!d.ok){let a=await d.text();throw Error(`Cline token exchange failed: ${a}`)}let e=await d.json();return{access_token:e.data?.accessToken||e.accessToken,refresh_token:e.data?.refreshToken||e.refreshToken,email:e.data?.userInfo?.email||"",expires_at:e.data?.expiresAt||e.expiresAt}}},mapTokens:a=>({accessToken:a.access_token,refreshToken:a.refresh_token,expiresIn:a.expires_at?Math.floor((new Date(a.expires_at).getTime()-Date.now())/1e3):3600,email:a.email,providerSpecificData:{firstName:a.firstName,lastName:a.lastName}})},clinepass:{config:j.w1,flowType:"authorization_code",buildAuthUrl:(a,b)=>{let c=new URLSearchParams({client_type:"extension",callback_url:b,redirect_uri:b});return`${a.authorizeUrl}?${c.toString()}`},exchangeToken:async(a,b,c)=>{try{let a=b,c=4-a.length%4;4!==c&&(a+="=".repeat(c));let d=Buffer.from(a,"base64").toString("utf-8"),e=d.lastIndexOf("}");if(-1===e)throw Error("No JSON found in decoded code");let f=JSON.parse(d.substring(0,e+1));return{access_token:f.accessToken,refresh_token:f.refreshToken,email:f.email,firstName:f.firstName,lastName:f.lastName,expires_at:f.expiresAt}}catch(f){let d=await (0,o.Fm)(a.tokenUrl,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify({grant_type:"authorization_code",code:b,client_type:"extension",redirect_uri:c}),...(0,l.ro)("clinepass")});if(!d.ok){let a=await d.text();throw Error(`ClinePass token exchange failed: ${a}`)}let e=await d.json();return{access_token:e.data?.accessToken||e.accessToken,refresh_token:e.data?.refreshToken||e.refreshToken,email:e.data?.userInfo?.email||"",expires_at:e.data?.expiresAt||e.expiresAt}}},mapTokens:a=>({accessToken:a.access_token,refreshToken:a.refresh_token,expiresIn:a.expires_at?Math.floor((new Date(a.expires_at).getTime()-Date.now())/1e3):3600,email:a.email,providerSpecificData:{firstName:a.firstName,lastName:a.lastName}})},gitlab:{config:j.f7,flowType:"authorization_code_pkce",buildAuthUrl:(a,b,c,d,e={})=>{let f=e.baseUrl||a.defaultBaseUrl,g=e.clientId||"",h=new URLSearchParams({client_id:g,redirect_uri:b,response_type:"code",state:c,scope:a.scope,code_challenge:d,code_challenge_method:a.codeChallengeMethod});return`${f}${a.authorizeUrlPath}?${h.toString()}`},exchangeToken:async(a,b,c,d,e,f={})=>{let g=f.baseUrl||a.defaultBaseUrl,h=f.clientId||"",i=f.clientSecret||"",j=new URLSearchParams({client_id:h,grant_type:"authorization_code",code:b,redirect_uri:c,code_verifier:d});i&&j.set("client_secret",i);let k=await (0,o.Fm)(`${g}${a.tokenUrlPath}`,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:j.toString(),...(0,l.ro)("gitlab")});if(!k.ok)throw Error(`GitLab token exchange failed: ${await k.text()}`);let m=await k.json(),n=await (0,o.Fm)(`${g}${a.userInfoUrlPath}`,{headers:{Authorization:`Bearer ${m.access_token}`},...(0,l.ro)("gitlab")}),p=n.ok?await n.json():{};return{...m,_user:p,_baseUrl:g,_clientId:h}},mapTokens:a=>({accessToken:a.access_token,refreshToken:a.refresh_token,expiresIn:a.expires_in,scope:a.scope,providerSpecificData:{username:a._user?.username||"",email:a._user?.email||a._user?.public_email||"",name:a._user?.name||"",baseUrl:a._baseUrl,clientId:a._clientId,authKind:"oauth"}})},"codebuddy-cn":{config:j.Nl,flowType:"device_code",requestDeviceCode:async a=>{let b=await (0,o.Fm)(`${a.stateUrl}?platform=${a.platform}`,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json","User-Agent":a.userAgent,"X-Requested-With":"XMLHttpRequest","X-Domain":"copilot.tencent.com","X-No-Authorization":"true","X-No-User-Id":"true","X-Product":"SaaS"},body:"{}",...(0,l.ro)("codebuddy-cn")});if(!b.ok)throw Error(`CodeBuddy state request failed: ${await b.text()}`);let c=await b.json();if(0!==c.code||!c.data?.state||!c.data?.authUrl)throw Error(`CodeBuddy state error: ${c.msg||"missing state/authUrl"}`);return{device_code:c.data.state,verification_uri:c.data.authUrl,user_code:"",interval:a.pollInterval/1e3,_isCodeBuddy:!0}},pollToken:async(a,b)=>{let c=await (0,o.Fm)(`${a.tokenUrl}?state=${encodeURIComponent(b)}`,{method:"GET",headers:{Accept:"application/json","User-Agent":a.userAgent,"X-Requested-With":"XMLHttpRequest","X-Domain":"copilot.tencent.com","X-No-Authorization":"true","X-No-User-Id":"true","X-No-Enterprise-Id":"true","X-No-Department-Info":"true","X-Product":"SaaS"},...(0,l.ro)("codebuddy-cn")});if(!c.ok)return{ok:!1,data:{error:"request_failed"}};let d=await c.json();return 0===d.code&&d.data?.accessToken?{ok:!0,data:{access_token:d.data.accessToken,refresh_token:d.data.refreshToken||"",token_type:d.data.tokenType||"Bearer",expires_in:d.data.expiresIn}}:11217===d.code?{ok:!0,data:{error:"authorization_pending"}}:{ok:!1,data:{error:d.msg||"unknown_error"}}},mapTokens:a=>({accessToken:a.access_token,refreshToken:a.refresh_token,expiresIn:a.expires_in||86400,providerSpecificData:{}})},kimchi:{config:j.Td,flowType:"browser_token",buildAuthUrl:(a,b,c)=>{let d=(a.webAppUrl||"https://app.kimchi.dev").replace(/\/+$/,""),e=new URLSearchParams({callback:b,state:c});return`${d}/cli-auth?${e.toString()}`},exchangeToken:async(a,b)=>{let c=String(b||"").trim();if(!c)throw Error("Missing Kimchi token");let d=a.validationUrl||"https://api.cast.ai/v1/llm/openai/supported-providers",e=await (0,o.Fm)(d,{method:"GET",headers:{Accept:"application/json",Authorization:`Bearer ${c}`},...(0,l.ro)("kimchi")});if(!e.ok)throw Error(`Kimchi token validation failed: ${e.status}`);let f={};if(a.userInfoUrl)try{let b=await (0,o.Fm)(a.userInfoUrl,{method:"GET",headers:{Accept:"application/json",Authorization:`Bearer ${c}`},...(0,l.ro)("kimchi")});b.ok&&(f=await b.json())}catch{f={}}return{access_token:c,token_type:"Bearer",_kimchiUser:f}},mapTokens:a=>{let b=a._kimchiUser||{},c=b.id?String(b.id):"",d=b.username||"",e=b.email||(c?`kimchi-user-${c}`:null);return{accessToken:a.access_token,refreshToken:null,email:e,displayName:b.name||d||null,providerSpecificData:{authMethod:"browser_token",userId:c,username:d}}}}};function s(a){let b=A[a];if(!b)throw Error(`Unknown provider: ${a}`);return b}function t(){return Object.keys(A)}async function u(a,b,c){let d,e=s(a),f=e.prepareConfig?await e.prepareConfig(e.config,c||{}):e.config,{codeVerifier:g,codeChallenge:h,state:j}=(0,i.lz)(e.pkceVerifierBytes);return d="device_code"===e.flowType?null:"authorization_code_pkce"===e.flowType?e.buildAuthUrl(f,b,j,h,c||{}):e.buildAuthUrl(f,b,j,void 0,c||{}),(0,n.e_)({state:j,provider:a,codeVerifier:g,redirectUri:b||null}),{authUrl:d,state:j,codeVerifier:g,codeChallenge:h,redirectUri:b,flowType:e.flowType,fixedPort:e.fixedPort,callbackPath:e.callbackPath||"/callback"}}async function v(a,b,c,d,e,f){let g=s(a),h=g.prepareConfig?await g.prepareConfig(g.config,f||{}):g.config,i=await g.exchangeToken(h,b,c,d,e,f||{}),j=null;return g.postExchange&&(j=await g.postExchange(i)),g.mapTokens(i,j)}async function w(a,b,c){let d=s(a);if("device_code"!==d.flowType)throw Error(`Provider ${a} does not support device code flow`);return await d.requestDeviceCode(d.config,b,c||{})}async function x(a,b,c,d){let e=s(a);if("device_code"!==e.flowType)throw Error(`Provider ${a} does not support device code flow`);let f=await e.pollToken(e.config,b,c,d);if(f.ok)if(f.data.access_token){let b=null;e.postExchange&&(b=await e.postExchange(f.data));let c=e.mapTokens(f.data,b);if("kiro"===a&&!c.providerSpecificData?.profileArn){let a=await (0,l.gR)(c.accessToken,c.providerSpecificData?.region);a&&(c.providerSpecificData.profileArn=a)}return{success:!0,tokens:c}}else if("authorization_pending"===f.data.error||"slow_down"===f.data.error)return{success:!1,error:f.data.error,errorDescription:f.data.error_description||f.data.message,pending:"authorization_pending"===f.data.error};else return{success:!1,error:f.data.error||"no_access_token",errorDescription:f.data.error_description||f.data.message||"No access token received"};return{success:!1,error:f.data.error,errorDescription:f.data.error_description}}let B=!1;async function y(){if(!B){B=!0;try{let{getProviderConnections:a,updateProviderConnection:b}=await Promise.resolve().then(c.bind(c,15717));for(let c of(await a()).filter(a=>{if("codex"!==a.provider||"oauth"!==a.authType||!a.idToken)return!1;let b=!!a.email,c=!!a.providerSpecificData?.chatgptAccountId;return!b||!c})){let a=(0,l.YR)(c.idToken);if(!a.email&&!a.chatgptAccountId)continue;let d={};!c.email&&a.email&&(d.email=a.email),(a.chatgptAccountId||a.chatgptPlanType)&&(d.providerSpecificData={...c.providerSpecificData||{},chatgptAccountId:a.chatgptAccountId,chatgptPlanType:a.chatgptPlanType}),Object.keys(d).length&&await b(c.id,d)}}catch(a){B=!1,console.log("backfillCodexEmails failed:",a?.message||a)}}}d()}catch(a){d(a)}})},89865:(a,b,c)=>{c.d(b,{A1:()=>h,lR:()=>j,wO:()=>i,yj:()=>f,zL:()=>g});var d=c(87252);async function e(a,b){let c=a?.body?.getReader?.();if(!c)try{return(await a.text()).slice(0,b)}catch{return""}let d=new TextDecoder,e="",f=0;try{for(;f<b;){let{done:a,value:g}=await c.read();if(a)break;let h=g instanceof Uint8Array?g:new Uint8Array(g),i=b-f;if(e+=d.decode(h.subarray(0,i),{stream:h.byteLength<=i}),f+=Math.min(h.byteLength,i),h.byteLength>i){try{await c.cancel("upstream error body limit")}catch{}break}}return e+d.decode()}catch{return e}finally{try{c.releaseLock?.()}catch{}}}function f(a,b){let c;return new Response(JSON.stringify((c=d.LY[a]||(a>=500?{type:"server_error",code:"internal_server_error"}:{type:"invalid_request_error",code:""}),{error:{message:b||d.O[a]||"An error occurred",type:c.type,code:c.code}})),{status:a,headers:{"Content-Type":"application/json"}})}async function g(a,b=null){let c=await e(a,65536);if(b&&"function"==typeof b.parseError)try{let e=b.parseError(a,c);if(e&&"object"==typeof e){let b=e.message||d.O[a.status]||`Upstream error: ${a.status}`;return{statusCode:e.status||a.status,message:b,resetsAtMs:e.resetsAtMs}}}catch{}let f="";try{let a=JSON.parse(c);f="string"==typeof a?.error?.message?a.error.message:"string"==typeof a?.message?a.message:"string"==typeof a?.error_description?a.error_description:"string"==typeof a?.error?a.error:""}catch{f=c}let h=("string"==typeof f?f:"")||d.O[a.status]||`Upstream error: ${a.status}`;return{statusCode:a.status,message:h}}function h(a,b,c){return{success:!1,status:a,error:b,resetsAtMs:c,response:f(a,b)}}function i(a,b,c,d){let e=Math.max(Math.ceil((new Date(c).getTime()-Date.now())/1e3),1);return new Response(JSON.stringify({error:{message:`${b} (${d})`}}),{status:a,headers:{"Content-Type":"application/json","Retry-After":String(e)}})}function j(a,b,c,d){let e=d||a.code||"FETCH_FAILED",f=a.message||"Unknown error",g=a.cause?.code,h=a.cause?.message,i=g||h?` (cause: ${[g,h].filter(Boolean).join(": ")})`:"";return`[${e}]: ${f}${i}`}}};