switchboard-router 0.9.57 → 0.9.59

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 (1266) hide show
  1. package/app/.next/static/cG6cLaTIiXMA9B8cN_VI5/_buildManifest.js +1 -0
  2. package/app/{.next-cli-build/static/chunks/1321-6054454e39d71f19.js → .next/static/chunks/1321-a7406eb3cccfd85f.js} +1 -1
  3. package/app/{.next-cli-build/static/chunks/1330-e1ec0f07ea113880.js → .next/static/chunks/1330-916ae59f041a0a4f.js} +2 -2
  4. package/app/.next/static/chunks/{3378-277dccfa153c2c15.js → 3378-0978c9887e5e6bd8.js} +6 -11
  5. package/app/.next/static/chunks/app/(dashboard)/dashboard/endpoint/{page-51f788f35bc5325f.js → page-adba2750c4fbf61e.js} +1 -1
  6. package/app/.next/static/chunks/app/_global-error/page-55c8179537f7f084.js +1 -0
  7. package/app/.next/static/chunks/app/api/agent-library/catalog/route-55c8179537f7f084.js +1 -0
  8. package/app/.next/static/chunks/app/api/agent-library/doctor/route-55c8179537f7f084.js +1 -0
  9. package/app/.next/static/chunks/app/api/agent-library/export/route-55c8179537f7f084.js +1 -0
  10. package/app/.next/static/chunks/app/api/agent-library/mcp/route-55c8179537f7f084.js +1 -0
  11. package/app/.next/static/chunks/app/api/agent-library/route-55c8179537f7f084.js +1 -0
  12. package/app/.next/static/chunks/app/api/agent-library/skills/route-55c8179537f7f084.js +1 -0
  13. package/app/.next/static/chunks/app/api/agent-library/sync/route-55c8179537f7f084.js +1 -0
  14. package/app/.next/static/chunks/app/api/agent-library/updates/route-55c8179537f7f084.js +1 -0
  15. package/app/.next/static/chunks/app/api/auth/login/route-55c8179537f7f084.js +1 -0
  16. package/app/.next/static/chunks/app/api/auth/logout/route-55c8179537f7f084.js +1 -0
  17. package/app/.next/static/chunks/app/api/auth/status/route-55c8179537f7f084.js +1 -0
  18. package/app/.next/static/chunks/app/api/cli-tools/aider-settings/route-55c8179537f7f084.js +1 -0
  19. package/app/.next/static/chunks/app/api/cli-tools/all-statuses/route-55c8179537f7f084.js +1 -0
  20. package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-55c8179537f7f084.js +1 -0
  21. package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/route-55c8179537f7f084.js +1 -0
  22. package/app/.next/static/chunks/app/api/cli-tools/claude-full-catalog/route-55c8179537f7f084.js +1 -0
  23. package/app/.next/static/chunks/app/api/cli-tools/claude-picker-labels/route-55c8179537f7f084.js +1 -0
  24. package/app/.next/static/chunks/app/api/cli-tools/claude-settings/route-55c8179537f7f084.js +1 -0
  25. package/app/.next/static/chunks/app/api/cli-tools/cline-settings/route-55c8179537f7f084.js +1 -0
  26. package/app/.next/static/chunks/app/api/cli-tools/codex-settings/route-55c8179537f7f084.js +1 -0
  27. package/app/.next/static/chunks/app/api/cli-tools/cowork-mcp-registry/route-55c8179537f7f084.js +1 -0
  28. package/app/.next/static/chunks/app/api/cli-tools/cowork-mcp-tools/route-55c8179537f7f084.js +1 -0
  29. package/app/.next/static/chunks/app/api/cli-tools/cowork-settings/route-55c8179537f7f084.js +1 -0
  30. package/app/.next/static/chunks/app/api/cli-tools/deepseek-tui-settings/route-55c8179537f7f084.js +1 -0
  31. package/app/.next/static/chunks/app/api/cli-tools/droid-settings/route-55c8179537f7f084.js +1 -0
  32. package/app/.next/static/chunks/app/api/cli-tools/gemini-cli-settings/route-55c8179537f7f084.js +1 -0
  33. package/app/.next/static/chunks/app/api/cli-tools/grok-settings/route-55c8179537f7f084.js +1 -0
  34. package/app/.next/static/chunks/app/api/cli-tools/hermes-settings/route-55c8179537f7f084.js +1 -0
  35. package/app/.next/static/chunks/app/api/cli-tools/jcode-settings/route-55c8179537f7f084.js +1 -0
  36. package/app/.next/static/chunks/app/api/cli-tools/kilo-settings/route-55c8179537f7f084.js +1 -0
  37. package/app/.next/static/chunks/app/api/cli-tools/openclaw-settings/route-55c8179537f7f084.js +1 -0
  38. package/app/.next/static/chunks/app/api/cli-tools/opencode-settings/route-55c8179537f7f084.js +1 -0
  39. package/app/.next/static/chunks/app/api/cli-tools/pi-settings/manual-configs/route-55c8179537f7f084.js +1 -0
  40. package/app/.next/static/chunks/app/api/cli-tools/pi-settings/route-55c8179537f7f084.js +1 -0
  41. package/app/.next/static/chunks/app/api/cli-tools/picker-labels/route-55c8179537f7f084.js +1 -0
  42. package/app/.next/static/chunks/app/api/combos/[id]/route-55c8179537f7f084.js +1 -0
  43. package/app/.next/static/chunks/app/api/combos/route-55c8179537f7f084.js +1 -0
  44. package/app/.next/static/chunks/app/api/headroom/extras/route-55c8179537f7f084.js +1 -0
  45. package/app/.next/static/chunks/app/api/headroom/proxy/[...path]/route-55c8179537f7f084.js +1 -0
  46. package/app/.next/static/chunks/app/api/headroom/restart/route-55c8179537f7f084.js +1 -0
  47. package/app/.next/static/chunks/app/api/headroom/start/route-55c8179537f7f084.js +1 -0
  48. package/app/.next/static/chunks/app/api/headroom/status/route-55c8179537f7f084.js +1 -0
  49. package/app/.next/static/chunks/app/api/headroom/stop/route-55c8179537f7f084.js +1 -0
  50. package/app/.next/static/chunks/app/api/health/live/route-55c8179537f7f084.js +1 -0
  51. package/app/.next/static/chunks/app/api/health/route-55c8179537f7f084.js +1 -0
  52. package/app/.next/static/chunks/app/api/keys/[id]/route-55c8179537f7f084.js +1 -0
  53. package/app/.next/static/chunks/app/api/keys/route-55c8179537f7f084.js +1 -0
  54. package/app/.next/static/chunks/app/api/locale/route-55c8179537f7f084.js +1 -0
  55. package/app/.next/static/chunks/app/api/mcp/[plugin]/message/route-55c8179537f7f084.js +1 -0
  56. package/app/.next/static/chunks/app/api/mcp/[plugin]/sse/route-55c8179537f7f084.js +1 -0
  57. package/app/.next/static/chunks/app/api/media-providers/tts/deepgram/voices/route-55c8179537f7f084.js +1 -0
  58. package/app/.next/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-55c8179537f7f084.js +1 -0
  59. package/app/.next/static/chunks/app/api/media-providers/tts/inworld/voices/route-55c8179537f7f084.js +1 -0
  60. package/app/.next/static/chunks/app/api/media-providers/tts/minimax/voices/route-55c8179537f7f084.js +1 -0
  61. package/app/.next/static/chunks/app/api/media-providers/tts/voices/route-55c8179537f7f084.js +1 -0
  62. package/app/.next/static/chunks/app/api/mgmt/v1/combos/[id]/route-55c8179537f7f084.js +1 -0
  63. package/app/.next/static/chunks/app/api/mgmt/v1/combos/[id]/strategy/route-55c8179537f7f084.js +1 -0
  64. package/app/.next/static/chunks/app/api/mgmt/v1/combos/route-55c8179537f7f084.js +1 -0
  65. package/app/.next/static/chunks/app/api/mgmt/v1/health/route-55c8179537f7f084.js +1 -0
  66. package/app/.next/static/chunks/app/api/mgmt/v1/metrics/route-55c8179537f7f084.js +1 -0
  67. package/app/.next/static/chunks/app/api/mgmt/v1/providers/route-55c8179537f7f084.js +1 -0
  68. package/app/.next/static/chunks/app/api/mgmt/v1/routing/route-55c8179537f7f084.js +1 -0
  69. package/app/.next/static/chunks/app/api/mgmt/v1/usage/route-55c8179537f7f084.js +1 -0
  70. package/app/.next/static/chunks/app/api/mgmt/v1/version/route-55c8179537f7f084.js +1 -0
  71. package/app/.next/static/chunks/app/api/models/alias/route-55c8179537f7f084.js +1 -0
  72. package/app/.next/static/chunks/app/api/models/availability/route-55c8179537f7f084.js +1 -0
  73. package/app/.next/static/chunks/app/api/models/custom/route-55c8179537f7f084.js +1 -0
  74. package/app/.next/static/chunks/app/api/models/disabled/route-55c8179537f7f084.js +1 -0
  75. package/app/.next/static/chunks/app/api/models/routable/route-55c8179537f7f084.js +1 -0
  76. package/app/.next/static/chunks/app/api/models/route-55c8179537f7f084.js +1 -0
  77. package/app/.next/static/chunks/app/api/models/test/route-55c8179537f7f084.js +1 -0
  78. package/app/.next/static/chunks/app/api/oauth/[provider]/[action]/route-55c8179537f7f084.js +1 -0
  79. package/app/.next/static/chunks/app/api/oauth/codex/bulk-import/route-55c8179537f7f084.js +1 -0
  80. package/app/.next/static/chunks/app/api/oauth/codex/import-token/route-55c8179537f7f084.js +1 -0
  81. package/app/.next/static/chunks/app/api/oauth/cursor/auto-import/route-55c8179537f7f084.js +1 -0
  82. package/app/.next/static/chunks/app/api/oauth/cursor/import/route-55c8179537f7f084.js +1 -0
  83. package/app/.next/static/chunks/app/api/oauth/gitlab/pat/route-55c8179537f7f084.js +1 -0
  84. package/app/.next/static/chunks/app/api/oauth/iflow/cookie/route-55c8179537f7f084.js +1 -0
  85. package/app/.next/static/chunks/app/api/oauth/kiro/api-key/route-55c8179537f7f084.js +1 -0
  86. package/app/.next/static/chunks/app/api/oauth/kiro/auto-import/route-55c8179537f7f084.js +1 -0
  87. package/app/.next/static/chunks/app/api/oauth/kiro/import/route-55c8179537f7f084.js +1 -0
  88. package/app/.next/static/chunks/app/api/oauth/kiro/import-cli-proxy/route-55c8179537f7f084.js +1 -0
  89. package/app/.next/static/chunks/app/api/oauth/kiro/social-authorize/route-55c8179537f7f084.js +1 -0
  90. package/app/.next/static/chunks/app/api/oauth/kiro/social-exchange/route-55c8179537f7f084.js +1 -0
  91. package/app/.next/static/chunks/app/api/pricing/defaults/route-55c8179537f7f084.js +1 -0
  92. package/app/.next/static/chunks/app/api/pricing/route-55c8179537f7f084.js +1 -0
  93. package/app/.next/static/chunks/app/api/provider-nodes/[id]/route-55c8179537f7f084.js +1 -0
  94. package/app/.next/static/chunks/app/api/provider-nodes/route-55c8179537f7f084.js +1 -0
  95. package/app/.next/static/chunks/app/api/provider-nodes/validate/route-55c8179537f7f084.js +1 -0
  96. package/app/.next/static/chunks/app/api/providers/[id]/model-probes/batch/route-55c8179537f7f084.js +1 -0
  97. package/app/.next/static/chunks/app/api/providers/[id]/model-probes/cache/route-55c8179537f7f084.js +1 -0
  98. package/app/.next/static/chunks/app/api/providers/[id]/model-probes/prepare/route-55c8179537f7f084.js +1 -0
  99. package/app/.next/static/chunks/app/api/providers/[id]/model-probes/remove-unavailable/route-55c8179537f7f084.js +1 -0
  100. package/app/.next/static/chunks/app/api/providers/[id]/model-probes/route-55c8179537f7f084.js +1 -0
  101. package/app/.next/static/chunks/app/api/providers/[id]/model-probes/verify/cancel/route-55c8179537f7f084.js +1 -0
  102. package/app/.next/static/chunks/app/api/providers/[id]/model-probes/verify/start/route-55c8179537f7f084.js +1 -0
  103. package/app/.next/static/chunks/app/api/providers/[id]/model-probes/verify/status/route-55c8179537f7f084.js +1 -0
  104. package/app/.next/static/chunks/app/api/providers/[id]/models/route-55c8179537f7f084.js +1 -0
  105. package/app/.next/static/chunks/app/api/providers/[id]/route-55c8179537f7f084.js +1 -0
  106. package/app/.next/static/chunks/app/api/providers/[id]/test/route-55c8179537f7f084.js +1 -0
  107. package/app/.next/static/chunks/app/api/providers/[id]/test-models/route-55c8179537f7f084.js +1 -0
  108. package/app/.next/static/chunks/app/api/providers/client/route-55c8179537f7f084.js +1 -0
  109. package/app/.next/static/chunks/app/api/providers/kilo/free-models/route-55c8179537f7f084.js +1 -0
  110. package/app/.next/static/chunks/app/api/providers/route-55c8179537f7f084.js +1 -0
  111. package/app/.next/static/chunks/app/api/providers/suggested-models/route-55c8179537f7f084.js +1 -0
  112. package/app/.next/static/chunks/app/api/providers/test-batch/route-55c8179537f7f084.js +1 -0
  113. package/app/.next/static/chunks/app/api/providers/validate/route-55c8179537f7f084.js +1 -0
  114. package/app/.next/static/chunks/app/api/pxpipe/health/route-55c8179537f7f084.js +1 -0
  115. package/app/.next/static/chunks/app/api/pxpipe/install/route-55c8179537f7f084.js +1 -0
  116. package/app/.next/static/chunks/app/api/pxpipe/logs/route-55c8179537f7f084.js +1 -0
  117. package/app/.next/static/chunks/app/api/pxpipe/restart/route-55c8179537f7f084.js +1 -0
  118. package/app/.next/static/chunks/app/api/pxpipe/start/route-55c8179537f7f084.js +1 -0
  119. package/app/.next/static/chunks/app/api/pxpipe/stats/route-55c8179537f7f084.js +1 -0
  120. package/app/.next/static/chunks/app/api/pxpipe/status/route-55c8179537f7f084.js +1 -0
  121. package/app/.next/static/chunks/app/api/pxpipe/stop/route-55c8179537f7f084.js +1 -0
  122. package/app/.next/static/chunks/app/api/routing/feedback/route-55c8179537f7f084.js +1 -0
  123. package/app/.next/static/chunks/app/api/routing/insights/route-55c8179537f7f084.js +1 -0
  124. package/app/.next/static/chunks/app/api/routing/learn/route-55c8179537f7f084.js +1 -0
  125. package/app/.next/static/chunks/app/api/routing/stats/route-55c8179537f7f084.js +1 -0
  126. package/app/.next/static/chunks/app/api/routing/versions/promote/route-55c8179537f7f084.js +1 -0
  127. package/app/.next/static/chunks/app/api/routing/versions/rollback/route-55c8179537f7f084.js +1 -0
  128. package/app/.next/static/chunks/app/api/settings/database/route-55c8179537f7f084.js +1 -0
  129. package/app/.next/static/chunks/app/api/settings/proxy-test/route-55c8179537f7f084.js +1 -0
  130. package/app/.next/static/chunks/app/api/settings/route-55c8179537f7f084.js +1 -0
  131. package/app/.next/static/chunks/app/api/shutdown/route-55c8179537f7f084.js +1 -0
  132. package/app/.next/static/chunks/app/api/skills/[id]/route-55c8179537f7f084.js +1 -0
  133. package/app/.next/static/chunks/app/api/tags/route-55c8179537f7f084.js +1 -0
  134. package/app/.next/static/chunks/app/api/token-saver/vault-stats/route-55c8179537f7f084.js +1 -0
  135. package/app/.next/static/chunks/app/api/translator/console-logs/route-55c8179537f7f084.js +1 -0
  136. package/app/.next/static/chunks/app/api/translator/console-logs/stream/route-55c8179537f7f084.js +1 -0
  137. package/app/.next/static/chunks/app/api/translator/load/route-55c8179537f7f084.js +1 -0
  138. package/app/.next/static/chunks/app/api/translator/save/route-55c8179537f7f084.js +1 -0
  139. package/app/.next/static/chunks/app/api/translator/send/route-55c8179537f7f084.js +1 -0
  140. package/app/.next/static/chunks/app/api/translator/translate/route-55c8179537f7f084.js +1 -0
  141. package/app/.next/static/chunks/app/api/usage/[connectionId]/codex-reset-credits/route-55c8179537f7f084.js +1 -0
  142. package/app/.next/static/chunks/app/api/usage/[connectionId]/route-55c8179537f7f084.js +1 -0
  143. package/app/.next/static/chunks/app/api/usage/chart/route-55c8179537f7f084.js +1 -0
  144. package/app/.next/static/chunks/app/api/usage/history/route-55c8179537f7f084.js +1 -0
  145. package/app/.next/static/chunks/app/api/usage/logs/route-55c8179537f7f084.js +1 -0
  146. package/app/.next/static/chunks/app/api/usage/providers/route-55c8179537f7f084.js +1 -0
  147. package/app/.next/static/chunks/app/api/usage/request-details/[id]/route-55c8179537f7f084.js +1 -0
  148. package/app/.next/static/chunks/app/api/usage/request-details/route-55c8179537f7f084.js +1 -0
  149. package/app/.next/static/chunks/app/api/usage/request-logs/route-55c8179537f7f084.js +1 -0
  150. package/app/.next/static/chunks/app/api/usage/stats/route-55c8179537f7f084.js +1 -0
  151. package/app/.next/static/chunks/app/api/usage/stream/route-55c8179537f7f084.js +1 -0
  152. package/app/.next/static/chunks/app/api/v1/api/chat/route-55c8179537f7f084.js +1 -0
  153. package/app/.next/static/chunks/app/api/v1/audio/speech/route-55c8179537f7f084.js +1 -0
  154. package/app/.next/static/chunks/app/api/v1/audio/transcriptions/route-55c8179537f7f084.js +1 -0
  155. package/app/.next/static/chunks/app/api/v1/audio/voices/route-55c8179537f7f084.js +1 -0
  156. package/app/.next/static/chunks/app/api/v1/chat/completions/route-55c8179537f7f084.js +1 -0
  157. package/app/.next/static/chunks/app/api/v1/embeddings/route-55c8179537f7f084.js +1 -0
  158. package/app/.next/static/chunks/app/api/v1/images/generations/route-55c8179537f7f084.js +1 -0
  159. package/app/.next/static/chunks/app/api/v1/messages/count_tokens/route-55c8179537f7f084.js +1 -0
  160. package/app/.next/static/chunks/app/api/v1/messages/route-55c8179537f7f084.js +1 -0
  161. package/app/.next/static/chunks/app/api/v1/models/[kind]/route-55c8179537f7f084.js +1 -0
  162. package/app/.next/static/chunks/app/api/v1/models/info/route-55c8179537f7f084.js +1 -0
  163. package/app/.next/static/chunks/app/api/v1/models/route-55c8179537f7f084.js +1 -0
  164. package/app/.next/static/chunks/app/api/v1/responses/compact/route-55c8179537f7f084.js +1 -0
  165. package/app/.next/static/chunks/app/api/v1/responses/route-55c8179537f7f084.js +1 -0
  166. package/app/.next/static/chunks/app/api/v1/route-55c8179537f7f084.js +1 -0
  167. package/app/.next/static/chunks/app/api/v1/search/route-55c8179537f7f084.js +1 -0
  168. package/app/.next/static/chunks/app/api/v1/videos/[id]/route-55c8179537f7f084.js +1 -0
  169. package/app/.next/static/chunks/app/api/v1/videos/edits/route-55c8179537f7f084.js +1 -0
  170. package/app/.next/static/chunks/app/api/v1/videos/extensions/route-55c8179537f7f084.js +1 -0
  171. package/app/.next/static/chunks/app/api/v1/videos/generations/route-55c8179537f7f084.js +1 -0
  172. package/app/.next/static/chunks/app/api/v1/web/fetch/route-55c8179537f7f084.js +1 -0
  173. package/app/.next/static/chunks/app/api/v1beta/models/[...path]/route-55c8179537f7f084.js +1 -0
  174. package/app/.next/static/chunks/app/api/v1beta/models/route-55c8179537f7f084.js +1 -0
  175. package/app/.next/static/chunks/app/api/version/route-55c8179537f7f084.js +1 -0
  176. package/app/.next/static/chunks/app/api/version/shutdown/route-55c8179537f7f084.js +1 -0
  177. package/app/.next/static/chunks/app/api/version/update/route-55c8179537f7f084.js +1 -0
  178. package/app/.next/static/chunks/app/manifest.webmanifest/route-55c8179537f7f084.js +1 -0
  179. package/app/.next/static/chunks/app/page-55c8179537f7f084.js +1 -0
  180. package/app/.next/static/chunks/next/dist/client/components/builtin/app-error-55c8179537f7f084.js +1 -0
  181. package/app/.next/static/chunks/next/dist/client/components/builtin/forbidden-55c8179537f7f084.js +1 -0
  182. package/app/.next/static/chunks/next/dist/client/components/builtin/not-found-55c8179537f7f084.js +1 -0
  183. package/app/.next/static/chunks/next/dist/client/components/builtin/unauthorized-55c8179537f7f084.js +1 -0
  184. package/app/.next/static/css/d042b5b105ba183a.css +1 -0
  185. package/app/.next-cli-build/BUILD_ID +1 -1
  186. package/app/.next-cli-build/app-path-routes-manifest.json +14 -12
  187. package/app/.next-cli-build/build-manifest.json +2 -2
  188. package/app/.next-cli-build/prerender-manifest.json +3 -3
  189. package/app/.next-cli-build/routes-manifest.json +12 -0
  190. package/app/.next-cli-build/server/app/(dashboard)/dashboard/agent-library/page.js +1 -1
  191. package/app/.next-cli-build/server/app/(dashboard)/dashboard/agent-library/page.js.nft.json +1 -1
  192. package/app/.next-cli-build/server/app/(dashboard)/dashboard/agent-library/page_client-reference-manifest.js +1 -1
  193. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js +1 -1
  194. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js.nft.json +1 -1
  195. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
  196. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js +1 -1
  197. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js.nft.json +1 -1
  198. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page_client-reference-manifest.js +1 -1
  199. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js +1 -1
  200. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json +1 -1
  201. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  202. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js +1 -1
  203. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js.nft.json +1 -1
  204. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  205. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/routing/page.js +1 -1
  206. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/routing/page.js.nft.json +1 -1
  207. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/routing/page_client-reference-manifest.js +1 -1
  208. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js +1 -1
  209. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js.nft.json +1 -1
  210. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
  211. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js +3 -3
  212. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json +1 -1
  213. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  214. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js +1 -1
  215. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js.nft.json +1 -1
  216. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js +1 -1
  217. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js +1 -1
  218. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js.nft.json +1 -1
  219. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page_client-reference-manifest.js +1 -1
  220. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js +2 -2
  221. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js.nft.json +1 -1
  222. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page_client-reference-manifest.js +1 -1
  223. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/page.js +1 -1
  224. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/page.js.nft.json +1 -1
  225. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/page_client-reference-manifest.js +1 -1
  226. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js +1 -1
  227. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js.nft.json +1 -1
  228. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page_client-reference-manifest.js +1 -1
  229. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js +1 -1
  230. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js.nft.json +1 -1
  231. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
  232. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js +1 -1
  233. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
  234. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  235. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js +1 -1
  236. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js.nft.json +1 -1
  237. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  238. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js +2 -2
  239. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json +1 -1
  240. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  241. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js +1 -1
  242. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js.nft.json +1 -1
  243. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  244. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js +1 -1
  245. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js.nft.json +1 -1
  246. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  247. package/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page.js +1 -1
  248. package/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page.js.nft.json +1 -1
  249. package/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page_client-reference-manifest.js +1 -1
  250. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js +1 -1
  251. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js.nft.json +1 -1
  252. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
  253. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/[id]/page.js +1 -1
  254. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/[id]/page.js.nft.json +1 -1
  255. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/[id]/page_client-reference-manifest.js +1 -1
  256. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page.js +1 -1
  257. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page.js.nft.json +1 -1
  258. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page_client-reference-manifest.js +1 -1
  259. package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page.js +1 -1
  260. package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page.js.nft.json +1 -1
  261. package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page_client-reference-manifest.js +1 -1
  262. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js +1 -1
  263. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js.nft.json +1 -1
  264. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  265. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js +1 -1
  266. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js.nft.json +1 -1
  267. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  268. package/app/.next-cli-build/server/app/_global-error/page.js +2 -2
  269. package/app/.next-cli-build/server/app/_global-error/page.js.nft.json +1 -1
  270. package/app/.next-cli-build/server/app/_global-error/page_client-reference-manifest.js +1 -1
  271. package/app/.next-cli-build/server/app/_global-error.html +1 -1
  272. package/app/.next-cli-build/server/app/_global-error.rsc +1 -1
  273. package/app/.next-cli-build/server/app/_global-error.segments/_full.segment.rsc +1 -1
  274. package/app/.next-cli-build/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  275. package/app/.next-cli-build/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  276. package/app/.next-cli-build/server/app/_not-found/page.js +1 -1
  277. package/app/.next-cli-build/server/app/_not-found/page.js.nft.json +1 -1
  278. package/app/.next-cli-build/server/app/_not-found/page_client-reference-manifest.js +1 -1
  279. package/app/.next-cli-build/server/app/_not-found.html +1 -1
  280. package/app/.next-cli-build/server/app/_not-found.rsc +4 -4
  281. package/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +4 -4
  282. package/app/.next-cli-build/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +4 -4
  283. package/app/.next-cli-build/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  284. package/app/.next-cli-build/server/app/api/agent-library/catalog/route.js +1 -1
  285. package/app/.next-cli-build/server/app/api/agent-library/catalog/route.js.nft.json +1 -1
  286. package/app/.next-cli-build/server/app/api/agent-library/doctor/route.js +1 -1
  287. package/app/.next-cli-build/server/app/api/agent-library/doctor/route.js.nft.json +1 -1
  288. package/app/.next-cli-build/server/app/api/agent-library/export/route.js +1 -1
  289. package/app/.next-cli-build/server/app/api/agent-library/export/route.js.nft.json +1 -1
  290. package/app/.next-cli-build/server/app/api/agent-library/mcp/route.js +1 -1
  291. package/app/.next-cli-build/server/app/api/agent-library/mcp/route.js.nft.json +1 -1
  292. package/app/.next-cli-build/server/app/api/agent-library/route.js +1 -1
  293. package/app/.next-cli-build/server/app/api/agent-library/route.js.nft.json +1 -1
  294. package/app/.next-cli-build/server/app/api/agent-library/skills/route.js +1 -1
  295. package/app/.next-cli-build/server/app/api/agent-library/skills/route.js.nft.json +1 -1
  296. package/app/.next-cli-build/server/app/api/agent-library/sync/route.js +1 -1
  297. package/app/.next-cli-build/server/app/api/agent-library/sync/route.js.nft.json +1 -1
  298. package/app/.next-cli-build/server/app/api/agent-library/updates/route.js +1 -1
  299. package/app/.next-cli-build/server/app/api/agent-library/updates/route.js.nft.json +1 -1
  300. package/app/.next-cli-build/server/app/api/auth/login/route.js +1 -1
  301. package/app/.next-cli-build/server/app/api/auth/login/route.js.nft.json +1 -1
  302. package/app/.next-cli-build/server/app/api/auth/logout/route.js +1 -1
  303. package/app/.next-cli-build/server/app/api/auth/logout/route.js.nft.json +1 -1
  304. package/app/.next-cli-build/server/app/api/auth/status/route.js +1 -1
  305. package/app/.next-cli-build/server/app/api/auth/status/route.js.nft.json +1 -1
  306. package/app/.next-cli-build/server/app/api/cli-tools/aider-settings/route.js +2 -2
  307. package/app/.next-cli-build/server/app/api/cli-tools/aider-settings/route.js.nft.json +1 -1
  308. package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js +5 -5
  309. package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js.nft.json +1 -1
  310. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js +2 -2
  311. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js.nft.json +1 -1
  312. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js +1 -1
  313. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js.nft.json +1 -1
  314. package/app/.next-cli-build/server/app/api/cli-tools/claude-full-catalog/route.js +1 -1
  315. package/app/.next-cli-build/server/app/api/cli-tools/claude-full-catalog/route.js.nft.json +1 -1
  316. package/app/.next-cli-build/server/app/api/cli-tools/claude-picker-labels/route.js +1 -1
  317. package/app/.next-cli-build/server/app/api/cli-tools/claude-picker-labels/route.js.nft.json +1 -1
  318. package/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js +1 -1
  319. package/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js.nft.json +1 -1
  320. package/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js +1 -1
  321. package/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js.nft.json +1 -1
  322. package/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js +1 -1
  323. package/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js.nft.json +1 -1
  324. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js +1 -1
  325. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js.nft.json +1 -1
  326. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js +2 -2
  327. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js.nft.json +1 -1
  328. package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js +1 -1
  329. package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js.nft.json +1 -1
  330. package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js +1 -1
  331. package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js.nft.json +1 -1
  332. package/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js +2 -2
  333. package/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js.nft.json +1 -1
  334. package/app/.next-cli-build/server/app/api/cli-tools/gemini-cli-settings/route.js +3 -3
  335. package/app/.next-cli-build/server/app/api/cli-tools/gemini-cli-settings/route.js.nft.json +1 -1
  336. package/app/.next-cli-build/server/app/api/cli-tools/grok-settings/route.js +3 -3
  337. package/app/.next-cli-build/server/app/api/cli-tools/grok-settings/route.js.nft.json +1 -1
  338. package/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js +2 -2
  339. package/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js.nft.json +1 -1
  340. package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js +2 -2
  341. package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js.nft.json +1 -1
  342. package/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js +2 -2
  343. package/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js.nft.json +1 -1
  344. package/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js +2 -2
  345. package/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js.nft.json +1 -1
  346. package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js +1 -1
  347. package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js.nft.json +1 -1
  348. package/app/.next-cli-build/server/app/api/cli-tools/pi-settings/manual-configs/route.js +1 -0
  349. package/app/.next-cli-build/server/app/api/cli-tools/pi-settings/manual-configs/route.js.nft.json +1 -0
  350. package/app/.next-cli-build/server/app/api/cli-tools/pi-settings/manual-configs/route_client-reference-manifest.js +1 -0
  351. package/app/.next-cli-build/server/app/api/cli-tools/pi-settings/route.js +2 -2
  352. package/app/.next-cli-build/server/app/api/cli-tools/pi-settings/route.js.nft.json +1 -1
  353. package/app/.next-cli-build/server/app/api/cli-tools/picker-labels/route.js +1 -1
  354. package/app/.next-cli-build/server/app/api/cli-tools/picker-labels/route.js.nft.json +1 -1
  355. package/app/.next-cli-build/server/app/api/combos/[id]/route.js +1 -1
  356. package/app/.next-cli-build/server/app/api/combos/[id]/route.js.nft.json +1 -1
  357. package/app/.next-cli-build/server/app/api/combos/route.js +1 -1
  358. package/app/.next-cli-build/server/app/api/combos/route.js.nft.json +1 -1
  359. package/app/.next-cli-build/server/app/api/headroom/extras/route.js +1 -1
  360. package/app/.next-cli-build/server/app/api/headroom/extras/route.js.nft.json +1 -1
  361. package/app/.next-cli-build/server/app/api/headroom/proxy/[...path]/route.js +1 -1
  362. package/app/.next-cli-build/server/app/api/headroom/proxy/[...path]/route.js.nft.json +1 -1
  363. package/app/.next-cli-build/server/app/api/headroom/restart/route.js +1 -1
  364. package/app/.next-cli-build/server/app/api/headroom/restart/route.js.nft.json +1 -1
  365. package/app/.next-cli-build/server/app/api/headroom/start/route.js +1 -1
  366. package/app/.next-cli-build/server/app/api/headroom/start/route.js.nft.json +1 -1
  367. package/app/.next-cli-build/server/app/api/headroom/status/route.js +1 -1
  368. package/app/.next-cli-build/server/app/api/headroom/status/route.js.nft.json +1 -1
  369. package/app/.next-cli-build/server/app/api/headroom/stop/route.js +1 -1
  370. package/app/.next-cli-build/server/app/api/headroom/stop/route.js.nft.json +1 -1
  371. package/app/.next-cli-build/server/app/api/health/live/route.js +1 -0
  372. package/app/.next-cli-build/server/app/api/health/live/route.js.nft.json +1 -0
  373. package/app/.next-cli-build/server/app/api/health/live/route_client-reference-manifest.js +1 -0
  374. package/app/.next-cli-build/server/app/api/health/route.js +1 -1
  375. package/app/.next-cli-build/server/app/api/health/route.js.nft.json +1 -1
  376. package/app/.next-cli-build/server/app/api/keys/[id]/route.js +1 -1
  377. package/app/.next-cli-build/server/app/api/keys/[id]/route.js.nft.json +1 -1
  378. package/app/.next-cli-build/server/app/api/keys/route.js +1 -1
  379. package/app/.next-cli-build/server/app/api/keys/route.js.nft.json +1 -1
  380. package/app/.next-cli-build/server/app/api/locale/route.js +1 -1
  381. package/app/.next-cli-build/server/app/api/locale/route.js.nft.json +1 -1
  382. package/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js +1 -1
  383. package/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js.nft.json +1 -1
  384. package/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js +1 -1
  385. package/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js.nft.json +1 -1
  386. package/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js +1 -1
  387. package/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js.nft.json +1 -1
  388. package/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js +1 -1
  389. package/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js.nft.json +1 -1
  390. package/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js +1 -1
  391. package/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js.nft.json +1 -1
  392. package/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js +1 -1
  393. package/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js.nft.json +1 -1
  394. package/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js +1 -1
  395. package/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js.nft.json +1 -1
  396. package/app/.next-cli-build/server/app/api/mgmt/v1/combos/[id]/route.js +1 -1
  397. package/app/.next-cli-build/server/app/api/mgmt/v1/combos/[id]/route.js.nft.json +1 -1
  398. package/app/.next-cli-build/server/app/api/mgmt/v1/combos/[id]/strategy/route.js +1 -1
  399. package/app/.next-cli-build/server/app/api/mgmt/v1/combos/[id]/strategy/route.js.nft.json +1 -1
  400. package/app/.next-cli-build/server/app/api/mgmt/v1/combos/route.js +1 -1
  401. package/app/.next-cli-build/server/app/api/mgmt/v1/combos/route.js.nft.json +1 -1
  402. package/app/.next-cli-build/server/app/api/mgmt/v1/health/route.js +1 -1
  403. package/app/.next-cli-build/server/app/api/mgmt/v1/health/route.js.nft.json +1 -1
  404. package/app/.next-cli-build/server/app/api/mgmt/v1/metrics/route.js +2 -2
  405. package/app/.next-cli-build/server/app/api/mgmt/v1/metrics/route.js.nft.json +1 -1
  406. package/app/.next-cli-build/server/app/api/mgmt/v1/providers/route.js +1 -1
  407. package/app/.next-cli-build/server/app/api/mgmt/v1/providers/route.js.nft.json +1 -1
  408. package/app/.next-cli-build/server/app/api/mgmt/v1/routing/route.js +1 -1
  409. package/app/.next-cli-build/server/app/api/mgmt/v1/routing/route.js.nft.json +1 -1
  410. package/app/.next-cli-build/server/app/api/mgmt/v1/usage/route.js +1 -1
  411. package/app/.next-cli-build/server/app/api/mgmt/v1/usage/route.js.nft.json +1 -1
  412. package/app/.next-cli-build/server/app/api/mgmt/v1/version/route.js +1 -1
  413. package/app/.next-cli-build/server/app/api/mgmt/v1/version/route.js.nft.json +1 -1
  414. package/app/.next-cli-build/server/app/api/models/alias/route.js +1 -1
  415. package/app/.next-cli-build/server/app/api/models/alias/route.js.nft.json +1 -1
  416. package/app/.next-cli-build/server/app/api/models/availability/route.js +1 -1
  417. package/app/.next-cli-build/server/app/api/models/availability/route.js.nft.json +1 -1
  418. package/app/.next-cli-build/server/app/api/models/custom/route.js +1 -1
  419. package/app/.next-cli-build/server/app/api/models/custom/route.js.nft.json +1 -1
  420. package/app/.next-cli-build/server/app/api/models/disabled/route.js +1 -1
  421. package/app/.next-cli-build/server/app/api/models/disabled/route.js.nft.json +1 -1
  422. package/app/.next-cli-build/server/app/api/models/routable/route.js +1 -1
  423. package/app/.next-cli-build/server/app/api/models/routable/route.js.nft.json +1 -1
  424. package/app/.next-cli-build/server/app/api/models/route.js +1 -1
  425. package/app/.next-cli-build/server/app/api/models/route.js.nft.json +1 -1
  426. package/app/.next-cli-build/server/app/api/models/test/route.js +1 -1
  427. package/app/.next-cli-build/server/app/api/models/test/route.js.nft.json +1 -1
  428. package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js +1 -1
  429. package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -1
  430. package/app/.next-cli-build/server/app/api/oauth/codex/bulk-import/route.js +1 -1
  431. package/app/.next-cli-build/server/app/api/oauth/codex/bulk-import/route.js.nft.json +1 -1
  432. package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js +1 -1
  433. package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js.nft.json +1 -1
  434. package/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js +2 -2
  435. package/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js.nft.json +1 -1
  436. package/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js +1 -1
  437. package/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js.nft.json +1 -1
  438. package/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js +1 -1
  439. package/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js.nft.json +1 -1
  440. package/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js +1 -1
  441. package/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js.nft.json +1 -1
  442. package/app/.next-cli-build/server/app/api/oauth/kiro/api-key/route.js +1 -1
  443. package/app/.next-cli-build/server/app/api/oauth/kiro/api-key/route.js.nft.json +1 -1
  444. package/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route.js +1 -1
  445. package/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route.js.nft.json +1 -1
  446. package/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js +1 -1
  447. package/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js.nft.json +1 -1
  448. package/app/.next-cli-build/server/app/api/oauth/kiro/import-cli-proxy/route.js +1 -1
  449. package/app/.next-cli-build/server/app/api/oauth/kiro/import-cli-proxy/route.js.nft.json +1 -1
  450. package/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js +1 -1
  451. package/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js.nft.json +1 -1
  452. package/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js +1 -1
  453. package/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js.nft.json +1 -1
  454. package/app/.next-cli-build/server/app/api/pricing/defaults/route.js +1 -1
  455. package/app/.next-cli-build/server/app/api/pricing/defaults/route.js.nft.json +1 -1
  456. package/app/.next-cli-build/server/app/api/pricing/route.js +1 -1
  457. package/app/.next-cli-build/server/app/api/pricing/route.js.nft.json +1 -1
  458. package/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js +1 -1
  459. package/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js.nft.json +1 -1
  460. package/app/.next-cli-build/server/app/api/provider-nodes/route.js +1 -1
  461. package/app/.next-cli-build/server/app/api/provider-nodes/route.js.nft.json +1 -1
  462. package/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js +1 -1
  463. package/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js.nft.json +1 -1
  464. package/app/.next-cli-build/server/app/api/providers/[id]/model-probes/batch/route.js +1 -1
  465. package/app/.next-cli-build/server/app/api/providers/[id]/model-probes/batch/route.js.nft.json +1 -1
  466. package/app/.next-cli-build/server/app/api/providers/[id]/model-probes/cache/route.js +1 -1
  467. package/app/.next-cli-build/server/app/api/providers/[id]/model-probes/cache/route.js.nft.json +1 -1
  468. package/app/.next-cli-build/server/app/api/providers/[id]/model-probes/prepare/route.js +1 -1
  469. package/app/.next-cli-build/server/app/api/providers/[id]/model-probes/prepare/route.js.nft.json +1 -1
  470. package/app/.next-cli-build/server/app/api/providers/[id]/model-probes/remove-unavailable/route.js +1 -1
  471. package/app/.next-cli-build/server/app/api/providers/[id]/model-probes/remove-unavailable/route.js.nft.json +1 -1
  472. package/app/.next-cli-build/server/app/api/providers/[id]/model-probes/route.js +1 -1
  473. package/app/.next-cli-build/server/app/api/providers/[id]/model-probes/route.js.nft.json +1 -1
  474. package/app/.next-cli-build/server/app/api/providers/[id]/model-probes/verify/cancel/route.js +1 -1
  475. package/app/.next-cli-build/server/app/api/providers/[id]/model-probes/verify/cancel/route.js.nft.json +1 -1
  476. package/app/.next-cli-build/server/app/api/providers/[id]/model-probes/verify/start/route.js +1 -1
  477. package/app/.next-cli-build/server/app/api/providers/[id]/model-probes/verify/start/route.js.nft.json +1 -1
  478. package/app/.next-cli-build/server/app/api/providers/[id]/model-probes/verify/status/route.js +1 -1
  479. package/app/.next-cli-build/server/app/api/providers/[id]/model-probes/verify/status/route.js.nft.json +1 -1
  480. package/app/.next-cli-build/server/app/api/providers/[id]/models/route.js +1 -1
  481. package/app/.next-cli-build/server/app/api/providers/[id]/models/route.js.nft.json +1 -1
  482. package/app/.next-cli-build/server/app/api/providers/[id]/route.js +1 -1
  483. package/app/.next-cli-build/server/app/api/providers/[id]/route.js.nft.json +1 -1
  484. package/app/.next-cli-build/server/app/api/providers/[id]/test/route.js +1 -1
  485. package/app/.next-cli-build/server/app/api/providers/[id]/test/route.js.nft.json +1 -1
  486. package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js +1 -1
  487. package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js.nft.json +1 -1
  488. package/app/.next-cli-build/server/app/api/providers/client/route.js +1 -1
  489. package/app/.next-cli-build/server/app/api/providers/client/route.js.nft.json +1 -1
  490. package/app/.next-cli-build/server/app/api/providers/kilo/free-models/route.js +1 -1
  491. package/app/.next-cli-build/server/app/api/providers/kilo/free-models/route.js.nft.json +1 -1
  492. package/app/.next-cli-build/server/app/api/providers/route.js +1 -1
  493. package/app/.next-cli-build/server/app/api/providers/route.js.nft.json +1 -1
  494. package/app/.next-cli-build/server/app/api/providers/suggested-models/route.js +1 -1
  495. package/app/.next-cli-build/server/app/api/providers/suggested-models/route.js.nft.json +1 -1
  496. package/app/.next-cli-build/server/app/api/providers/test-batch/route.js +1 -1
  497. package/app/.next-cli-build/server/app/api/providers/test-batch/route.js.nft.json +1 -1
  498. package/app/.next-cli-build/server/app/api/providers/validate/route.js +1 -1
  499. package/app/.next-cli-build/server/app/api/providers/validate/route.js.nft.json +1 -1
  500. package/app/.next-cli-build/server/app/api/pxpipe/health/route.js +2 -2
  501. package/app/.next-cli-build/server/app/api/pxpipe/health/route.js.nft.json +1 -1
  502. package/app/.next-cli-build/server/app/api/pxpipe/install/route.js +2 -2
  503. package/app/.next-cli-build/server/app/api/pxpipe/install/route.js.nft.json +1 -1
  504. package/app/.next-cli-build/server/app/api/pxpipe/logs/route.js +2 -2
  505. package/app/.next-cli-build/server/app/api/pxpipe/logs/route.js.nft.json +1 -1
  506. package/app/.next-cli-build/server/app/api/pxpipe/restart/route.js +2 -2
  507. package/app/.next-cli-build/server/app/api/pxpipe/restart/route.js.nft.json +1 -1
  508. package/app/.next-cli-build/server/app/api/pxpipe/start/route.js +2 -2
  509. package/app/.next-cli-build/server/app/api/pxpipe/start/route.js.nft.json +1 -1
  510. package/app/.next-cli-build/server/app/api/pxpipe/stats/route.js +2 -2
  511. package/app/.next-cli-build/server/app/api/pxpipe/stats/route.js.nft.json +1 -1
  512. package/app/.next-cli-build/server/app/api/pxpipe/status/route.js +2 -2
  513. package/app/.next-cli-build/server/app/api/pxpipe/status/route.js.nft.json +1 -1
  514. package/app/.next-cli-build/server/app/api/pxpipe/stop/route.js +2 -2
  515. package/app/.next-cli-build/server/app/api/pxpipe/stop/route.js.nft.json +1 -1
  516. package/app/.next-cli-build/server/app/api/routing/feedback/route.js +1 -1
  517. package/app/.next-cli-build/server/app/api/routing/feedback/route.js.nft.json +1 -1
  518. package/app/.next-cli-build/server/app/api/routing/insights/route.js +1 -1
  519. package/app/.next-cli-build/server/app/api/routing/insights/route.js.nft.json +1 -1
  520. package/app/.next-cli-build/server/app/api/routing/learn/route.js +1 -1
  521. package/app/.next-cli-build/server/app/api/routing/learn/route.js.nft.json +1 -1
  522. package/app/.next-cli-build/server/app/api/routing/stats/route.js +1 -1
  523. package/app/.next-cli-build/server/app/api/routing/stats/route.js.nft.json +1 -1
  524. package/app/.next-cli-build/server/app/api/routing/versions/promote/route.js +1 -1
  525. package/app/.next-cli-build/server/app/api/routing/versions/promote/route.js.nft.json +1 -1
  526. package/app/.next-cli-build/server/app/api/routing/versions/rollback/route.js +1 -1
  527. package/app/.next-cli-build/server/app/api/routing/versions/rollback/route.js.nft.json +1 -1
  528. package/app/.next-cli-build/server/app/api/settings/database/route.js +1 -1
  529. package/app/.next-cli-build/server/app/api/settings/database/route.js.nft.json +1 -1
  530. package/app/.next-cli-build/server/app/api/settings/proxy-test/route.js +1 -1
  531. package/app/.next-cli-build/server/app/api/settings/proxy-test/route.js.nft.json +1 -1
  532. package/app/.next-cli-build/server/app/api/settings/route.js +1 -1
  533. package/app/.next-cli-build/server/app/api/settings/route.js.nft.json +1 -1
  534. package/app/.next-cli-build/server/app/api/shutdown/route.js +1 -1
  535. package/app/.next-cli-build/server/app/api/shutdown/route.js.nft.json +1 -1
  536. package/app/.next-cli-build/server/app/api/skills/[id]/route.js +1 -1
  537. package/app/.next-cli-build/server/app/api/skills/[id]/route.js.nft.json +1 -1
  538. package/app/.next-cli-build/server/app/api/tags/route.js +1 -1
  539. package/app/.next-cli-build/server/app/api/tags/route.js.nft.json +1 -1
  540. package/app/.next-cli-build/server/app/api/token-saver/vault-stats/route.js +1 -1
  541. package/app/.next-cli-build/server/app/api/token-saver/vault-stats/route.js.nft.json +1 -1
  542. package/app/.next-cli-build/server/app/api/translator/console-logs/route.js +1 -1
  543. package/app/.next-cli-build/server/app/api/translator/console-logs/route.js.nft.json +1 -1
  544. package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js +2 -2
  545. package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js.nft.json +1 -1
  546. package/app/.next-cli-build/server/app/api/translator/load/route.js +1 -1
  547. package/app/.next-cli-build/server/app/api/translator/load/route.js.nft.json +1 -1
  548. package/app/.next-cli-build/server/app/api/translator/save/route.js +1 -1
  549. package/app/.next-cli-build/server/app/api/translator/save/route.js.nft.json +1 -1
  550. package/app/.next-cli-build/server/app/api/translator/send/route.js +1 -1
  551. package/app/.next-cli-build/server/app/api/translator/send/route.js.nft.json +1 -1
  552. package/app/.next-cli-build/server/app/api/translator/translate/route.js +1 -1
  553. package/app/.next-cli-build/server/app/api/translator/translate/route.js.nft.json +1 -1
  554. package/app/.next-cli-build/server/app/api/usage/[connectionId]/codex-reset-credits/route.js +1 -1
  555. package/app/.next-cli-build/server/app/api/usage/[connectionId]/codex-reset-credits/route.js.nft.json +1 -1
  556. package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js +1 -1
  557. package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
  558. package/app/.next-cli-build/server/app/api/usage/chart/route.js +1 -1
  559. package/app/.next-cli-build/server/app/api/usage/chart/route.js.nft.json +1 -1
  560. package/app/.next-cli-build/server/app/api/usage/history/route.js +1 -1
  561. package/app/.next-cli-build/server/app/api/usage/history/route.js.nft.json +1 -1
  562. package/app/.next-cli-build/server/app/api/usage/logs/route.js +1 -1
  563. package/app/.next-cli-build/server/app/api/usage/logs/route.js.nft.json +1 -1
  564. package/app/.next-cli-build/server/app/api/usage/providers/route.js +1 -1
  565. package/app/.next-cli-build/server/app/api/usage/providers/route.js.nft.json +1 -1
  566. package/app/.next-cli-build/server/app/api/usage/request-details/[id]/route.js +1 -1
  567. package/app/.next-cli-build/server/app/api/usage/request-details/[id]/route.js.nft.json +1 -1
  568. package/app/.next-cli-build/server/app/api/usage/request-details/route.js +1 -1
  569. package/app/.next-cli-build/server/app/api/usage/request-details/route.js.nft.json +1 -1
  570. package/app/.next-cli-build/server/app/api/usage/request-logs/route.js +1 -1
  571. package/app/.next-cli-build/server/app/api/usage/request-logs/route.js.nft.json +1 -1
  572. package/app/.next-cli-build/server/app/api/usage/stats/route.js +1 -1
  573. package/app/.next-cli-build/server/app/api/usage/stats/route.js.nft.json +1 -1
  574. package/app/.next-cli-build/server/app/api/usage/stream/route.js +2 -2
  575. package/app/.next-cli-build/server/app/api/usage/stream/route.js.nft.json +1 -1
  576. package/app/.next-cli-build/server/app/api/v1/api/chat/route.js +2 -2
  577. package/app/.next-cli-build/server/app/api/v1/api/chat/route.js.nft.json +1 -1
  578. package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js +1 -1
  579. package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js.nft.json +1 -1
  580. package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js +1 -1
  581. package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js.nft.json +1 -1
  582. package/app/.next-cli-build/server/app/api/v1/audio/voices/route.js +1 -1
  583. package/app/.next-cli-build/server/app/api/v1/audio/voices/route.js.nft.json +1 -1
  584. package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js +1 -1
  585. package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
  586. package/app/.next-cli-build/server/app/api/v1/embeddings/route.js +1 -1
  587. package/app/.next-cli-build/server/app/api/v1/embeddings/route.js.nft.json +1 -1
  588. package/app/.next-cli-build/server/app/api/v1/images/generations/route.js +1 -1
  589. package/app/.next-cli-build/server/app/api/v1/images/generations/route.js.nft.json +1 -1
  590. package/app/.next-cli-build/server/app/api/v1/messages/count_tokens/route.js +1 -1
  591. package/app/.next-cli-build/server/app/api/v1/messages/count_tokens/route.js.nft.json +1 -1
  592. package/app/.next-cli-build/server/app/api/v1/messages/route.js +1 -1
  593. package/app/.next-cli-build/server/app/api/v1/messages/route.js.nft.json +1 -1
  594. package/app/.next-cli-build/server/app/api/v1/models/[kind]/route.js +1 -1
  595. package/app/.next-cli-build/server/app/api/v1/models/[kind]/route.js.nft.json +1 -1
  596. package/app/.next-cli-build/server/app/api/v1/models/info/route.js +1 -1
  597. package/app/.next-cli-build/server/app/api/v1/models/info/route.js.nft.json +1 -1
  598. package/app/.next-cli-build/server/app/api/v1/models/route.js +1 -1
  599. package/app/.next-cli-build/server/app/api/v1/models/route.js.nft.json +1 -1
  600. package/app/.next-cli-build/server/app/api/v1/responses/compact/route.js +1 -1
  601. package/app/.next-cli-build/server/app/api/v1/responses/compact/route.js.nft.json +1 -1
  602. package/app/.next-cli-build/server/app/api/v1/responses/route.js +1 -1
  603. package/app/.next-cli-build/server/app/api/v1/responses/route.js.nft.json +1 -1
  604. package/app/.next-cli-build/server/app/api/v1/route.js +1 -1
  605. package/app/.next-cli-build/server/app/api/v1/route.js.nft.json +1 -1
  606. package/app/.next-cli-build/server/app/api/v1/search/route.js +1 -1
  607. package/app/.next-cli-build/server/app/api/v1/search/route.js.nft.json +1 -1
  608. package/app/.next-cli-build/server/app/api/v1/videos/[id]/route.js +1 -1
  609. package/app/.next-cli-build/server/app/api/v1/videos/[id]/route.js.nft.json +1 -1
  610. package/app/.next-cli-build/server/app/api/v1/videos/edits/route.js +1 -1
  611. package/app/.next-cli-build/server/app/api/v1/videos/edits/route.js.nft.json +1 -1
  612. package/app/.next-cli-build/server/app/api/v1/videos/extensions/route.js +1 -1
  613. package/app/.next-cli-build/server/app/api/v1/videos/extensions/route.js.nft.json +1 -1
  614. package/app/.next-cli-build/server/app/api/v1/videos/generations/route.js +1 -1
  615. package/app/.next-cli-build/server/app/api/v1/videos/generations/route.js.nft.json +1 -1
  616. package/app/.next-cli-build/server/app/api/v1/web/fetch/route.js +1 -1
  617. package/app/.next-cli-build/server/app/api/v1/web/fetch/route.js.nft.json +1 -1
  618. package/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js +1 -1
  619. package/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
  620. package/app/.next-cli-build/server/app/api/v1beta/models/route.js +1 -1
  621. package/app/.next-cli-build/server/app/api/v1beta/models/route.js.nft.json +1 -1
  622. package/app/.next-cli-build/server/app/api/version/route.js +1 -1
  623. package/app/.next-cli-build/server/app/api/version/route.js.nft.json +1 -1
  624. package/app/.next-cli-build/server/app/api/version/shutdown/route.js +1 -1
  625. package/app/.next-cli-build/server/app/api/version/shutdown/route.js.nft.json +1 -1
  626. package/app/.next-cli-build/server/app/api/version/update/route.js +1 -1
  627. package/app/.next-cli-build/server/app/api/version/update/route.js.nft.json +1 -1
  628. package/app/.next-cli-build/server/app/callback/page.js +1 -1
  629. package/app/.next-cli-build/server/app/callback/page.js.nft.json +1 -1
  630. package/app/.next-cli-build/server/app/callback/page_client-reference-manifest.js +1 -1
  631. package/app/.next-cli-build/server/app/callback.html +1 -1
  632. package/app/.next-cli-build/server/app/callback.rsc +4 -4
  633. package/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +4 -4
  634. package/app/.next-cli-build/server/app/callback.segments/_tree.segment.rsc +2 -2
  635. package/app/.next-cli-build/server/app/callback.segments/callback/__PAGE__.segment.rsc +4 -4
  636. package/app/.next-cli-build/server/app/dashboard/settings/pricing/page.js +1 -1
  637. package/app/.next-cli-build/server/app/dashboard/settings/pricing/page.js.nft.json +1 -1
  638. package/app/.next-cli-build/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  639. package/app/.next-cli-build/server/app/dashboard/settings/pricing.html +1 -1
  640. package/app/.next-cli-build/server/app/dashboard/settings/pricing.rsc +4 -4
  641. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +4 -4
  642. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +2 -2
  643. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +4 -4
  644. package/app/.next-cli-build/server/app/favicon.ico/route.js +1 -1
  645. package/app/.next-cli-build/server/app/favicon.ico/route.js.nft.json +1 -1
  646. package/app/.next-cli-build/server/app/index.html +1 -1
  647. package/app/.next-cli-build/server/app/index.rsc +4 -4
  648. package/app/.next-cli-build/server/app/index.segments/__PAGE__.segment.rsc +4 -4
  649. package/app/.next-cli-build/server/app/index.segments/_full.segment.rsc +4 -4
  650. package/app/.next-cli-build/server/app/index.segments/_tree.segment.rsc +2 -2
  651. package/app/.next-cli-build/server/app/landing/page.js +1 -1
  652. package/app/.next-cli-build/server/app/landing/page.js.nft.json +1 -1
  653. package/app/.next-cli-build/server/app/landing/page_client-reference-manifest.js +1 -1
  654. package/app/.next-cli-build/server/app/landing.html +1 -1
  655. package/app/.next-cli-build/server/app/landing.rsc +4 -4
  656. package/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +4 -4
  657. package/app/.next-cli-build/server/app/landing.segments/_tree.segment.rsc +2 -2
  658. package/app/.next-cli-build/server/app/landing.segments/landing/__PAGE__.segment.rsc +4 -4
  659. package/app/.next-cli-build/server/app/login/page.js +1 -1
  660. package/app/.next-cli-build/server/app/login/page.js.nft.json +1 -1
  661. package/app/.next-cli-build/server/app/login/page_client-reference-manifest.js +1 -1
  662. package/app/.next-cli-build/server/app/login.html +1 -1
  663. package/app/.next-cli-build/server/app/login.rsc +5 -5
  664. package/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +5 -5
  665. package/app/.next-cli-build/server/app/login.segments/_tree.segment.rsc +2 -2
  666. package/app/.next-cli-build/server/app/login.segments/login/__PAGE__.segment.rsc +5 -5
  667. package/app/.next-cli-build/server/app/manifest.webmanifest/route.js +2 -2
  668. package/app/.next-cli-build/server/app/manifest.webmanifest/route.js.nft.json +1 -1
  669. package/app/.next-cli-build/server/app/page.js +1 -1
  670. package/app/.next-cli-build/server/app/page.js.nft.json +1 -1
  671. package/app/.next-cli-build/server/app/page_client-reference-manifest.js +1 -1
  672. package/app/.next-cli-build/server/app-paths-manifest.json +14 -12
  673. package/app/.next-cli-build/server/chunks/1129.js +2 -2
  674. package/app/.next-cli-build/server/chunks/1158.js +1 -1
  675. package/app/.next-cli-build/server/chunks/1294.js +2 -2
  676. package/app/.next-cli-build/server/chunks/1937.js +2 -2
  677. package/app/.next-cli-build/server/chunks/1998.js +1 -1
  678. package/app/.next-cli-build/server/chunks/2142.js +1 -1
  679. package/app/.next-cli-build/server/chunks/2619.js +1 -1
  680. package/app/.next-cli-build/server/chunks/2847.js +1 -1
  681. package/app/.next-cli-build/server/chunks/3446.js +1 -1
  682. package/app/.next-cli-build/server/chunks/369.js +6 -6
  683. package/app/.next-cli-build/server/chunks/4301.js +1 -1
  684. package/app/.next-cli-build/server/chunks/5115.js +1 -1
  685. package/app/.next-cli-build/server/chunks/5139.js +1 -1
  686. package/app/.next-cli-build/server/chunks/519.js +1 -1
  687. package/app/.next-cli-build/server/chunks/5565.js +6 -11
  688. package/app/.next-cli-build/server/chunks/6328.js +1 -1
  689. package/app/.next-cli-build/server/chunks/7059.js +1 -0
  690. package/app/.next-cli-build/server/chunks/7133.js +1 -1
  691. package/app/.next-cli-build/server/chunks/7828.js +2 -2
  692. package/app/.next-cli-build/server/chunks/8400.js +3 -3
  693. package/app/.next-cli-build/server/chunks/869.js +1 -1
  694. package/app/.next-cli-build/server/chunks/8775.js +1 -1
  695. package/app/.next-cli-build/server/chunks/8789.js +1 -1
  696. package/app/.next-cli-build/server/chunks/8915.js +2 -2
  697. package/app/.next-cli-build/server/chunks/8942.js +1 -1
  698. package/app/.next-cli-build/server/chunks/8998.js +6 -6
  699. package/app/.next-cli-build/server/chunks/9059.js +1 -1
  700. package/app/.next-cli-build/server/chunks/9261.js +1 -1
  701. package/app/.next-cli-build/server/chunks/9264.js +2 -2
  702. package/app/.next-cli-build/server/chunks/9353.js +42 -0
  703. package/app/.next-cli-build/server/middleware-build-manifest.js +1 -1
  704. package/app/.next-cli-build/server/middleware.js +3 -3
  705. package/app/.next-cli-build/server/pages/404.html +1 -1
  706. package/app/.next-cli-build/server/pages/500.html +1 -1
  707. package/app/.next-cli-build/server/server-reference-manifest.js +1 -1
  708. package/app/.next-cli-build/server/server-reference-manifest.json +1 -1
  709. package/app/.next-cli-build/static/cG6cLaTIiXMA9B8cN_VI5/_buildManifest.js +1 -0
  710. package/app/{.next/static/chunks/1321-6054454e39d71f19.js → .next-cli-build/static/chunks/1321-a7406eb3cccfd85f.js} +1 -1
  711. package/app/{.next/static/chunks/1330-e1ec0f07ea113880.js → .next-cli-build/static/chunks/1330-916ae59f041a0a4f.js} +2 -2
  712. package/app/.next-cli-build/static/chunks/{3378-277dccfa153c2c15.js → 3378-0978c9887e5e6bd8.js} +6 -11
  713. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/endpoint/{page-51f788f35bc5325f.js → page-adba2750c4fbf61e.js} +1 -1
  714. package/app/.next-cli-build/static/chunks/app/_global-error/page-55c8179537f7f084.js +1 -0
  715. package/app/.next-cli-build/static/chunks/app/api/agent-library/catalog/route-55c8179537f7f084.js +1 -0
  716. package/app/.next-cli-build/static/chunks/app/api/agent-library/doctor/route-55c8179537f7f084.js +1 -0
  717. package/app/.next-cli-build/static/chunks/app/api/agent-library/export/route-55c8179537f7f084.js +1 -0
  718. package/app/.next-cli-build/static/chunks/app/api/agent-library/mcp/route-55c8179537f7f084.js +1 -0
  719. package/app/.next-cli-build/static/chunks/app/api/agent-library/route-55c8179537f7f084.js +1 -0
  720. package/app/.next-cli-build/static/chunks/app/api/agent-library/skills/route-55c8179537f7f084.js +1 -0
  721. package/app/.next-cli-build/static/chunks/app/api/agent-library/sync/route-55c8179537f7f084.js +1 -0
  722. package/app/.next-cli-build/static/chunks/app/api/agent-library/updates/route-55c8179537f7f084.js +1 -0
  723. package/app/.next-cli-build/static/chunks/app/api/auth/login/route-55c8179537f7f084.js +1 -0
  724. package/app/.next-cli-build/static/chunks/app/api/auth/logout/route-55c8179537f7f084.js +1 -0
  725. package/app/.next-cli-build/static/chunks/app/api/auth/status/route-55c8179537f7f084.js +1 -0
  726. package/app/.next-cli-build/static/chunks/app/api/cli-tools/aider-settings/route-55c8179537f7f084.js +1 -0
  727. package/app/.next-cli-build/static/chunks/app/api/cli-tools/all-statuses/route-55c8179537f7f084.js +1 -0
  728. package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-55c8179537f7f084.js +1 -0
  729. package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/route-55c8179537f7f084.js +1 -0
  730. package/app/.next-cli-build/static/chunks/app/api/cli-tools/claude-full-catalog/route-55c8179537f7f084.js +1 -0
  731. package/app/.next-cli-build/static/chunks/app/api/cli-tools/claude-picker-labels/route-55c8179537f7f084.js +1 -0
  732. package/app/.next-cli-build/static/chunks/app/api/cli-tools/claude-settings/route-55c8179537f7f084.js +1 -0
  733. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cline-settings/route-55c8179537f7f084.js +1 -0
  734. package/app/.next-cli-build/static/chunks/app/api/cli-tools/codex-settings/route-55c8179537f7f084.js +1 -0
  735. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-registry/route-55c8179537f7f084.js +1 -0
  736. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-tools/route-55c8179537f7f084.js +1 -0
  737. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-settings/route-55c8179537f7f084.js +1 -0
  738. package/app/.next-cli-build/static/chunks/app/api/cli-tools/deepseek-tui-settings/route-55c8179537f7f084.js +1 -0
  739. package/app/.next-cli-build/static/chunks/app/api/cli-tools/droid-settings/route-55c8179537f7f084.js +1 -0
  740. package/app/.next-cli-build/static/chunks/app/api/cli-tools/gemini-cli-settings/route-55c8179537f7f084.js +1 -0
  741. package/app/.next-cli-build/static/chunks/app/api/cli-tools/grok-settings/route-55c8179537f7f084.js +1 -0
  742. package/app/.next-cli-build/static/chunks/app/api/cli-tools/hermes-settings/route-55c8179537f7f084.js +1 -0
  743. package/app/.next-cli-build/static/chunks/app/api/cli-tools/jcode-settings/route-55c8179537f7f084.js +1 -0
  744. package/app/.next-cli-build/static/chunks/app/api/cli-tools/kilo-settings/route-55c8179537f7f084.js +1 -0
  745. package/app/.next-cli-build/static/chunks/app/api/cli-tools/openclaw-settings/route-55c8179537f7f084.js +1 -0
  746. package/app/.next-cli-build/static/chunks/app/api/cli-tools/opencode-settings/route-55c8179537f7f084.js +1 -0
  747. package/app/.next-cli-build/static/chunks/app/api/cli-tools/pi-settings/manual-configs/route-55c8179537f7f084.js +1 -0
  748. package/app/.next-cli-build/static/chunks/app/api/cli-tools/pi-settings/route-55c8179537f7f084.js +1 -0
  749. package/app/.next-cli-build/static/chunks/app/api/cli-tools/picker-labels/route-55c8179537f7f084.js +1 -0
  750. package/app/.next-cli-build/static/chunks/app/api/combos/[id]/route-55c8179537f7f084.js +1 -0
  751. package/app/.next-cli-build/static/chunks/app/api/combos/route-55c8179537f7f084.js +1 -0
  752. package/app/.next-cli-build/static/chunks/app/api/headroom/extras/route-55c8179537f7f084.js +1 -0
  753. package/app/.next-cli-build/static/chunks/app/api/headroom/proxy/[...path]/route-55c8179537f7f084.js +1 -0
  754. package/app/.next-cli-build/static/chunks/app/api/headroom/restart/route-55c8179537f7f084.js +1 -0
  755. package/app/.next-cli-build/static/chunks/app/api/headroom/start/route-55c8179537f7f084.js +1 -0
  756. package/app/.next-cli-build/static/chunks/app/api/headroom/status/route-55c8179537f7f084.js +1 -0
  757. package/app/.next-cli-build/static/chunks/app/api/headroom/stop/route-55c8179537f7f084.js +1 -0
  758. package/app/.next-cli-build/static/chunks/app/api/health/live/route-55c8179537f7f084.js +1 -0
  759. package/app/.next-cli-build/static/chunks/app/api/health/route-55c8179537f7f084.js +1 -0
  760. package/app/.next-cli-build/static/chunks/app/api/keys/[id]/route-55c8179537f7f084.js +1 -0
  761. package/app/.next-cli-build/static/chunks/app/api/keys/route-55c8179537f7f084.js +1 -0
  762. package/app/.next-cli-build/static/chunks/app/api/locale/route-55c8179537f7f084.js +1 -0
  763. package/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/message/route-55c8179537f7f084.js +1 -0
  764. package/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/sse/route-55c8179537f7f084.js +1 -0
  765. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/deepgram/voices/route-55c8179537f7f084.js +1 -0
  766. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-55c8179537f7f084.js +1 -0
  767. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/inworld/voices/route-55c8179537f7f084.js +1 -0
  768. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/minimax/voices/route-55c8179537f7f084.js +1 -0
  769. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/voices/route-55c8179537f7f084.js +1 -0
  770. package/app/.next-cli-build/static/chunks/app/api/mgmt/v1/combos/[id]/route-55c8179537f7f084.js +1 -0
  771. package/app/.next-cli-build/static/chunks/app/api/mgmt/v1/combos/[id]/strategy/route-55c8179537f7f084.js +1 -0
  772. package/app/.next-cli-build/static/chunks/app/api/mgmt/v1/combos/route-55c8179537f7f084.js +1 -0
  773. package/app/.next-cli-build/static/chunks/app/api/mgmt/v1/health/route-55c8179537f7f084.js +1 -0
  774. package/app/.next-cli-build/static/chunks/app/api/mgmt/v1/metrics/route-55c8179537f7f084.js +1 -0
  775. package/app/.next-cli-build/static/chunks/app/api/mgmt/v1/providers/route-55c8179537f7f084.js +1 -0
  776. package/app/.next-cli-build/static/chunks/app/api/mgmt/v1/routing/route-55c8179537f7f084.js +1 -0
  777. package/app/.next-cli-build/static/chunks/app/api/mgmt/v1/usage/route-55c8179537f7f084.js +1 -0
  778. package/app/.next-cli-build/static/chunks/app/api/mgmt/v1/version/route-55c8179537f7f084.js +1 -0
  779. package/app/.next-cli-build/static/chunks/app/api/models/alias/route-55c8179537f7f084.js +1 -0
  780. package/app/.next-cli-build/static/chunks/app/api/models/availability/route-55c8179537f7f084.js +1 -0
  781. package/app/.next-cli-build/static/chunks/app/api/models/custom/route-55c8179537f7f084.js +1 -0
  782. package/app/.next-cli-build/static/chunks/app/api/models/disabled/route-55c8179537f7f084.js +1 -0
  783. package/app/.next-cli-build/static/chunks/app/api/models/routable/route-55c8179537f7f084.js +1 -0
  784. package/app/.next-cli-build/static/chunks/app/api/models/route-55c8179537f7f084.js +1 -0
  785. package/app/.next-cli-build/static/chunks/app/api/models/test/route-55c8179537f7f084.js +1 -0
  786. package/app/.next-cli-build/static/chunks/app/api/oauth/[provider]/[action]/route-55c8179537f7f084.js +1 -0
  787. package/app/.next-cli-build/static/chunks/app/api/oauth/codex/bulk-import/route-55c8179537f7f084.js +1 -0
  788. package/app/.next-cli-build/static/chunks/app/api/oauth/codex/import-token/route-55c8179537f7f084.js +1 -0
  789. package/app/.next-cli-build/static/chunks/app/api/oauth/cursor/auto-import/route-55c8179537f7f084.js +1 -0
  790. package/app/.next-cli-build/static/chunks/app/api/oauth/cursor/import/route-55c8179537f7f084.js +1 -0
  791. package/app/.next-cli-build/static/chunks/app/api/oauth/gitlab/pat/route-55c8179537f7f084.js +1 -0
  792. package/app/.next-cli-build/static/chunks/app/api/oauth/iflow/cookie/route-55c8179537f7f084.js +1 -0
  793. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/api-key/route-55c8179537f7f084.js +1 -0
  794. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/auto-import/route-55c8179537f7f084.js +1 -0
  795. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import/route-55c8179537f7f084.js +1 -0
  796. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import-cli-proxy/route-55c8179537f7f084.js +1 -0
  797. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-authorize/route-55c8179537f7f084.js +1 -0
  798. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-exchange/route-55c8179537f7f084.js +1 -0
  799. package/app/.next-cli-build/static/chunks/app/api/pricing/defaults/route-55c8179537f7f084.js +1 -0
  800. package/app/.next-cli-build/static/chunks/app/api/pricing/route-55c8179537f7f084.js +1 -0
  801. package/app/.next-cli-build/static/chunks/app/api/provider-nodes/[id]/route-55c8179537f7f084.js +1 -0
  802. package/app/.next-cli-build/static/chunks/app/api/provider-nodes/route-55c8179537f7f084.js +1 -0
  803. package/app/.next-cli-build/static/chunks/app/api/provider-nodes/validate/route-55c8179537f7f084.js +1 -0
  804. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/model-probes/batch/route-55c8179537f7f084.js +1 -0
  805. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/model-probes/cache/route-55c8179537f7f084.js +1 -0
  806. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/model-probes/prepare/route-55c8179537f7f084.js +1 -0
  807. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/model-probes/remove-unavailable/route-55c8179537f7f084.js +1 -0
  808. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/model-probes/route-55c8179537f7f084.js +1 -0
  809. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/model-probes/verify/cancel/route-55c8179537f7f084.js +1 -0
  810. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/model-probes/verify/start/route-55c8179537f7f084.js +1 -0
  811. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/model-probes/verify/status/route-55c8179537f7f084.js +1 -0
  812. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/models/route-55c8179537f7f084.js +1 -0
  813. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/route-55c8179537f7f084.js +1 -0
  814. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/test/route-55c8179537f7f084.js +1 -0
  815. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/test-models/route-55c8179537f7f084.js +1 -0
  816. package/app/.next-cli-build/static/chunks/app/api/providers/client/route-55c8179537f7f084.js +1 -0
  817. package/app/.next-cli-build/static/chunks/app/api/providers/kilo/free-models/route-55c8179537f7f084.js +1 -0
  818. package/app/.next-cli-build/static/chunks/app/api/providers/route-55c8179537f7f084.js +1 -0
  819. package/app/.next-cli-build/static/chunks/app/api/providers/suggested-models/route-55c8179537f7f084.js +1 -0
  820. package/app/.next-cli-build/static/chunks/app/api/providers/test-batch/route-55c8179537f7f084.js +1 -0
  821. package/app/.next-cli-build/static/chunks/app/api/providers/validate/route-55c8179537f7f084.js +1 -0
  822. package/app/.next-cli-build/static/chunks/app/api/pxpipe/health/route-55c8179537f7f084.js +1 -0
  823. package/app/.next-cli-build/static/chunks/app/api/pxpipe/install/route-55c8179537f7f084.js +1 -0
  824. package/app/.next-cli-build/static/chunks/app/api/pxpipe/logs/route-55c8179537f7f084.js +1 -0
  825. package/app/.next-cli-build/static/chunks/app/api/pxpipe/restart/route-55c8179537f7f084.js +1 -0
  826. package/app/.next-cli-build/static/chunks/app/api/pxpipe/start/route-55c8179537f7f084.js +1 -0
  827. package/app/.next-cli-build/static/chunks/app/api/pxpipe/stats/route-55c8179537f7f084.js +1 -0
  828. package/app/.next-cli-build/static/chunks/app/api/pxpipe/status/route-55c8179537f7f084.js +1 -0
  829. package/app/.next-cli-build/static/chunks/app/api/pxpipe/stop/route-55c8179537f7f084.js +1 -0
  830. package/app/.next-cli-build/static/chunks/app/api/routing/feedback/route-55c8179537f7f084.js +1 -0
  831. package/app/.next-cli-build/static/chunks/app/api/routing/insights/route-55c8179537f7f084.js +1 -0
  832. package/app/.next-cli-build/static/chunks/app/api/routing/learn/route-55c8179537f7f084.js +1 -0
  833. package/app/.next-cli-build/static/chunks/app/api/routing/stats/route-55c8179537f7f084.js +1 -0
  834. package/app/.next-cli-build/static/chunks/app/api/routing/versions/promote/route-55c8179537f7f084.js +1 -0
  835. package/app/.next-cli-build/static/chunks/app/api/routing/versions/rollback/route-55c8179537f7f084.js +1 -0
  836. package/app/.next-cli-build/static/chunks/app/api/settings/database/route-55c8179537f7f084.js +1 -0
  837. package/app/.next-cli-build/static/chunks/app/api/settings/proxy-test/route-55c8179537f7f084.js +1 -0
  838. package/app/.next-cli-build/static/chunks/app/api/settings/route-55c8179537f7f084.js +1 -0
  839. package/app/.next-cli-build/static/chunks/app/api/shutdown/route-55c8179537f7f084.js +1 -0
  840. package/app/.next-cli-build/static/chunks/app/api/skills/[id]/route-55c8179537f7f084.js +1 -0
  841. package/app/.next-cli-build/static/chunks/app/api/tags/route-55c8179537f7f084.js +1 -0
  842. package/app/.next-cli-build/static/chunks/app/api/token-saver/vault-stats/route-55c8179537f7f084.js +1 -0
  843. package/app/.next-cli-build/static/chunks/app/api/translator/console-logs/route-55c8179537f7f084.js +1 -0
  844. package/app/.next-cli-build/static/chunks/app/api/translator/console-logs/stream/route-55c8179537f7f084.js +1 -0
  845. package/app/.next-cli-build/static/chunks/app/api/translator/load/route-55c8179537f7f084.js +1 -0
  846. package/app/.next-cli-build/static/chunks/app/api/translator/save/route-55c8179537f7f084.js +1 -0
  847. package/app/.next-cli-build/static/chunks/app/api/translator/send/route-55c8179537f7f084.js +1 -0
  848. package/app/.next-cli-build/static/chunks/app/api/translator/translate/route-55c8179537f7f084.js +1 -0
  849. package/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/codex-reset-credits/route-55c8179537f7f084.js +1 -0
  850. package/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/route-55c8179537f7f084.js +1 -0
  851. package/app/.next-cli-build/static/chunks/app/api/usage/chart/route-55c8179537f7f084.js +1 -0
  852. package/app/.next-cli-build/static/chunks/app/api/usage/history/route-55c8179537f7f084.js +1 -0
  853. package/app/.next-cli-build/static/chunks/app/api/usage/logs/route-55c8179537f7f084.js +1 -0
  854. package/app/.next-cli-build/static/chunks/app/api/usage/providers/route-55c8179537f7f084.js +1 -0
  855. package/app/.next-cli-build/static/chunks/app/api/usage/request-details/[id]/route-55c8179537f7f084.js +1 -0
  856. package/app/.next-cli-build/static/chunks/app/api/usage/request-details/route-55c8179537f7f084.js +1 -0
  857. package/app/.next-cli-build/static/chunks/app/api/usage/request-logs/route-55c8179537f7f084.js +1 -0
  858. package/app/.next-cli-build/static/chunks/app/api/usage/stats/route-55c8179537f7f084.js +1 -0
  859. package/app/.next-cli-build/static/chunks/app/api/usage/stream/route-55c8179537f7f084.js +1 -0
  860. package/app/.next-cli-build/static/chunks/app/api/v1/api/chat/route-55c8179537f7f084.js +1 -0
  861. package/app/.next-cli-build/static/chunks/app/api/v1/audio/speech/route-55c8179537f7f084.js +1 -0
  862. package/app/.next-cli-build/static/chunks/app/api/v1/audio/transcriptions/route-55c8179537f7f084.js +1 -0
  863. package/app/.next-cli-build/static/chunks/app/api/v1/audio/voices/route-55c8179537f7f084.js +1 -0
  864. package/app/.next-cli-build/static/chunks/app/api/v1/chat/completions/route-55c8179537f7f084.js +1 -0
  865. package/app/.next-cli-build/static/chunks/app/api/v1/embeddings/route-55c8179537f7f084.js +1 -0
  866. package/app/.next-cli-build/static/chunks/app/api/v1/images/generations/route-55c8179537f7f084.js +1 -0
  867. package/app/.next-cli-build/static/chunks/app/api/v1/messages/count_tokens/route-55c8179537f7f084.js +1 -0
  868. package/app/.next-cli-build/static/chunks/app/api/v1/messages/route-55c8179537f7f084.js +1 -0
  869. package/app/.next-cli-build/static/chunks/app/api/v1/models/[kind]/route-55c8179537f7f084.js +1 -0
  870. package/app/.next-cli-build/static/chunks/app/api/v1/models/info/route-55c8179537f7f084.js +1 -0
  871. package/app/.next-cli-build/static/chunks/app/api/v1/models/route-55c8179537f7f084.js +1 -0
  872. package/app/.next-cli-build/static/chunks/app/api/v1/responses/compact/route-55c8179537f7f084.js +1 -0
  873. package/app/.next-cli-build/static/chunks/app/api/v1/responses/route-55c8179537f7f084.js +1 -0
  874. package/app/.next-cli-build/static/chunks/app/api/v1/route-55c8179537f7f084.js +1 -0
  875. package/app/.next-cli-build/static/chunks/app/api/v1/search/route-55c8179537f7f084.js +1 -0
  876. package/app/.next-cli-build/static/chunks/app/api/v1/videos/[id]/route-55c8179537f7f084.js +1 -0
  877. package/app/.next-cli-build/static/chunks/app/api/v1/videos/edits/route-55c8179537f7f084.js +1 -0
  878. package/app/.next-cli-build/static/chunks/app/api/v1/videos/extensions/route-55c8179537f7f084.js +1 -0
  879. package/app/.next-cli-build/static/chunks/app/api/v1/videos/generations/route-55c8179537f7f084.js +1 -0
  880. package/app/.next-cli-build/static/chunks/app/api/v1/web/fetch/route-55c8179537f7f084.js +1 -0
  881. package/app/.next-cli-build/static/chunks/app/api/v1beta/models/[...path]/route-55c8179537f7f084.js +1 -0
  882. package/app/.next-cli-build/static/chunks/app/api/v1beta/models/route-55c8179537f7f084.js +1 -0
  883. package/app/.next-cli-build/static/chunks/app/api/version/route-55c8179537f7f084.js +1 -0
  884. package/app/.next-cli-build/static/chunks/app/api/version/shutdown/route-55c8179537f7f084.js +1 -0
  885. package/app/.next-cli-build/static/chunks/app/api/version/update/route-55c8179537f7f084.js +1 -0
  886. package/app/.next-cli-build/static/chunks/app/manifest.webmanifest/route-55c8179537f7f084.js +1 -0
  887. package/app/.next-cli-build/static/chunks/app/page-55c8179537f7f084.js +1 -0
  888. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/app-error-55c8179537f7f084.js +1 -0
  889. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/forbidden-55c8179537f7f084.js +1 -0
  890. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/not-found-55c8179537f7f084.js +1 -0
  891. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/unauthorized-55c8179537f7f084.js +1 -0
  892. package/app/.next-cli-build/static/css/d042b5b105ba183a.css +1 -0
  893. package/app/custom-server.js +32 -3
  894. package/app/node_modules/impit-linux-x64-musl/README.md +3 -0
  895. package/app/node_modules/impit-linux-x64-musl/impit-node.linux-x64-musl.node +0 -0
  896. package/app/node_modules/impit-linux-x64-musl/package.json +24 -0
  897. package/app/open-sse/identity/tls/bin/darwin/arm64/switchboard-claude-tls +0 -0
  898. package/app/open-sse/identity/tls/bin/darwin/x64/switchboard-claude-tls +0 -0
  899. package/app/open-sse/identity/tls/bin/linux/arm64/switchboard-claude-tls +0 -0
  900. package/app/open-sse/identity/tls/bin/linux/x64/switchboard-claude-tls +0 -0
  901. package/app/open-sse/identity/tls/bin/win32/arm64/switchboard-claude-tls.exe +0 -0
  902. package/app/open-sse/identity/tls/bin/win32/x64/switchboard-claude-tls.exe +0 -0
  903. package/app/package.json +1 -1
  904. package/cli.js +34 -16
  905. package/package.json +1 -1
  906. package/src/cli/serverStatus.js +9 -3
  907. package/app/.next/static/chunks/app/_global-error/page-3981c2a159de99ad.js +0 -1
  908. package/app/.next/static/chunks/app/api/agent-library/catalog/route-3981c2a159de99ad.js +0 -1
  909. package/app/.next/static/chunks/app/api/agent-library/doctor/route-3981c2a159de99ad.js +0 -1
  910. package/app/.next/static/chunks/app/api/agent-library/export/route-3981c2a159de99ad.js +0 -1
  911. package/app/.next/static/chunks/app/api/agent-library/mcp/route-3981c2a159de99ad.js +0 -1
  912. package/app/.next/static/chunks/app/api/agent-library/route-3981c2a159de99ad.js +0 -1
  913. package/app/.next/static/chunks/app/api/agent-library/skills/route-3981c2a159de99ad.js +0 -1
  914. package/app/.next/static/chunks/app/api/agent-library/sync/route-3981c2a159de99ad.js +0 -1
  915. package/app/.next/static/chunks/app/api/agent-library/updates/route-3981c2a159de99ad.js +0 -1
  916. package/app/.next/static/chunks/app/api/auth/login/route-3981c2a159de99ad.js +0 -1
  917. package/app/.next/static/chunks/app/api/auth/logout/route-3981c2a159de99ad.js +0 -1
  918. package/app/.next/static/chunks/app/api/auth/status/route-3981c2a159de99ad.js +0 -1
  919. package/app/.next/static/chunks/app/api/cli-tools/aider-settings/route-3981c2a159de99ad.js +0 -1
  920. package/app/.next/static/chunks/app/api/cli-tools/all-statuses/route-3981c2a159de99ad.js +0 -1
  921. package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-3981c2a159de99ad.js +0 -1
  922. package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/route-3981c2a159de99ad.js +0 -1
  923. package/app/.next/static/chunks/app/api/cli-tools/claude-full-catalog/route-3981c2a159de99ad.js +0 -1
  924. package/app/.next/static/chunks/app/api/cli-tools/claude-picker-labels/route-3981c2a159de99ad.js +0 -1
  925. package/app/.next/static/chunks/app/api/cli-tools/claude-settings/route-3981c2a159de99ad.js +0 -1
  926. package/app/.next/static/chunks/app/api/cli-tools/cline-settings/route-3981c2a159de99ad.js +0 -1
  927. package/app/.next/static/chunks/app/api/cli-tools/codex-settings/route-3981c2a159de99ad.js +0 -1
  928. package/app/.next/static/chunks/app/api/cli-tools/cowork-mcp-registry/route-3981c2a159de99ad.js +0 -1
  929. package/app/.next/static/chunks/app/api/cli-tools/cowork-mcp-tools/route-3981c2a159de99ad.js +0 -1
  930. package/app/.next/static/chunks/app/api/cli-tools/cowork-settings/route-3981c2a159de99ad.js +0 -1
  931. package/app/.next/static/chunks/app/api/cli-tools/deepseek-tui-settings/route-3981c2a159de99ad.js +0 -1
  932. package/app/.next/static/chunks/app/api/cli-tools/droid-settings/route-3981c2a159de99ad.js +0 -1
  933. package/app/.next/static/chunks/app/api/cli-tools/gemini-cli-settings/route-3981c2a159de99ad.js +0 -1
  934. package/app/.next/static/chunks/app/api/cli-tools/grok-settings/route-3981c2a159de99ad.js +0 -1
  935. package/app/.next/static/chunks/app/api/cli-tools/hermes-settings/route-3981c2a159de99ad.js +0 -1
  936. package/app/.next/static/chunks/app/api/cli-tools/jcode-settings/route-3981c2a159de99ad.js +0 -1
  937. package/app/.next/static/chunks/app/api/cli-tools/kilo-settings/route-3981c2a159de99ad.js +0 -1
  938. package/app/.next/static/chunks/app/api/cli-tools/openclaw-settings/route-3981c2a159de99ad.js +0 -1
  939. package/app/.next/static/chunks/app/api/cli-tools/opencode-settings/route-3981c2a159de99ad.js +0 -1
  940. package/app/.next/static/chunks/app/api/cli-tools/pi-settings/route-3981c2a159de99ad.js +0 -1
  941. package/app/.next/static/chunks/app/api/cli-tools/picker-labels/route-3981c2a159de99ad.js +0 -1
  942. package/app/.next/static/chunks/app/api/combos/[id]/route-3981c2a159de99ad.js +0 -1
  943. package/app/.next/static/chunks/app/api/combos/route-3981c2a159de99ad.js +0 -1
  944. package/app/.next/static/chunks/app/api/headroom/extras/route-3981c2a159de99ad.js +0 -1
  945. package/app/.next/static/chunks/app/api/headroom/proxy/[...path]/route-3981c2a159de99ad.js +0 -1
  946. package/app/.next/static/chunks/app/api/headroom/restart/route-3981c2a159de99ad.js +0 -1
  947. package/app/.next/static/chunks/app/api/headroom/start/route-3981c2a159de99ad.js +0 -1
  948. package/app/.next/static/chunks/app/api/headroom/status/route-3981c2a159de99ad.js +0 -1
  949. package/app/.next/static/chunks/app/api/headroom/stop/route-3981c2a159de99ad.js +0 -1
  950. package/app/.next/static/chunks/app/api/health/route-3981c2a159de99ad.js +0 -1
  951. package/app/.next/static/chunks/app/api/keys/[id]/route-3981c2a159de99ad.js +0 -1
  952. package/app/.next/static/chunks/app/api/keys/route-3981c2a159de99ad.js +0 -1
  953. package/app/.next/static/chunks/app/api/locale/route-3981c2a159de99ad.js +0 -1
  954. package/app/.next/static/chunks/app/api/mcp/[plugin]/message/route-3981c2a159de99ad.js +0 -1
  955. package/app/.next/static/chunks/app/api/mcp/[plugin]/sse/route-3981c2a159de99ad.js +0 -1
  956. package/app/.next/static/chunks/app/api/media-providers/tts/deepgram/voices/route-3981c2a159de99ad.js +0 -1
  957. package/app/.next/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-3981c2a159de99ad.js +0 -1
  958. package/app/.next/static/chunks/app/api/media-providers/tts/inworld/voices/route-3981c2a159de99ad.js +0 -1
  959. package/app/.next/static/chunks/app/api/media-providers/tts/minimax/voices/route-3981c2a159de99ad.js +0 -1
  960. package/app/.next/static/chunks/app/api/media-providers/tts/voices/route-3981c2a159de99ad.js +0 -1
  961. package/app/.next/static/chunks/app/api/mgmt/v1/combos/[id]/route-3981c2a159de99ad.js +0 -1
  962. package/app/.next/static/chunks/app/api/mgmt/v1/combos/[id]/strategy/route-3981c2a159de99ad.js +0 -1
  963. package/app/.next/static/chunks/app/api/mgmt/v1/combos/route-3981c2a159de99ad.js +0 -1
  964. package/app/.next/static/chunks/app/api/mgmt/v1/health/route-3981c2a159de99ad.js +0 -1
  965. package/app/.next/static/chunks/app/api/mgmt/v1/metrics/route-3981c2a159de99ad.js +0 -1
  966. package/app/.next/static/chunks/app/api/mgmt/v1/providers/route-3981c2a159de99ad.js +0 -1
  967. package/app/.next/static/chunks/app/api/mgmt/v1/routing/route-3981c2a159de99ad.js +0 -1
  968. package/app/.next/static/chunks/app/api/mgmt/v1/usage/route-3981c2a159de99ad.js +0 -1
  969. package/app/.next/static/chunks/app/api/mgmt/v1/version/route-3981c2a159de99ad.js +0 -1
  970. package/app/.next/static/chunks/app/api/models/alias/route-3981c2a159de99ad.js +0 -1
  971. package/app/.next/static/chunks/app/api/models/availability/route-3981c2a159de99ad.js +0 -1
  972. package/app/.next/static/chunks/app/api/models/custom/route-3981c2a159de99ad.js +0 -1
  973. package/app/.next/static/chunks/app/api/models/disabled/route-3981c2a159de99ad.js +0 -1
  974. package/app/.next/static/chunks/app/api/models/routable/route-3981c2a159de99ad.js +0 -1
  975. package/app/.next/static/chunks/app/api/models/route-3981c2a159de99ad.js +0 -1
  976. package/app/.next/static/chunks/app/api/models/test/route-3981c2a159de99ad.js +0 -1
  977. package/app/.next/static/chunks/app/api/oauth/[provider]/[action]/route-3981c2a159de99ad.js +0 -1
  978. package/app/.next/static/chunks/app/api/oauth/codex/bulk-import/route-3981c2a159de99ad.js +0 -1
  979. package/app/.next/static/chunks/app/api/oauth/codex/import-token/route-3981c2a159de99ad.js +0 -1
  980. package/app/.next/static/chunks/app/api/oauth/cursor/auto-import/route-3981c2a159de99ad.js +0 -1
  981. package/app/.next/static/chunks/app/api/oauth/cursor/import/route-3981c2a159de99ad.js +0 -1
  982. package/app/.next/static/chunks/app/api/oauth/gitlab/pat/route-3981c2a159de99ad.js +0 -1
  983. package/app/.next/static/chunks/app/api/oauth/iflow/cookie/route-3981c2a159de99ad.js +0 -1
  984. package/app/.next/static/chunks/app/api/oauth/kiro/api-key/route-3981c2a159de99ad.js +0 -1
  985. package/app/.next/static/chunks/app/api/oauth/kiro/auto-import/route-3981c2a159de99ad.js +0 -1
  986. package/app/.next/static/chunks/app/api/oauth/kiro/import/route-3981c2a159de99ad.js +0 -1
  987. package/app/.next/static/chunks/app/api/oauth/kiro/import-cli-proxy/route-3981c2a159de99ad.js +0 -1
  988. package/app/.next/static/chunks/app/api/oauth/kiro/social-authorize/route-3981c2a159de99ad.js +0 -1
  989. package/app/.next/static/chunks/app/api/oauth/kiro/social-exchange/route-3981c2a159de99ad.js +0 -1
  990. package/app/.next/static/chunks/app/api/pricing/defaults/route-3981c2a159de99ad.js +0 -1
  991. package/app/.next/static/chunks/app/api/pricing/route-3981c2a159de99ad.js +0 -1
  992. package/app/.next/static/chunks/app/api/provider-nodes/[id]/route-3981c2a159de99ad.js +0 -1
  993. package/app/.next/static/chunks/app/api/provider-nodes/route-3981c2a159de99ad.js +0 -1
  994. package/app/.next/static/chunks/app/api/provider-nodes/validate/route-3981c2a159de99ad.js +0 -1
  995. package/app/.next/static/chunks/app/api/providers/[id]/model-probes/batch/route-3981c2a159de99ad.js +0 -1
  996. package/app/.next/static/chunks/app/api/providers/[id]/model-probes/cache/route-3981c2a159de99ad.js +0 -1
  997. package/app/.next/static/chunks/app/api/providers/[id]/model-probes/prepare/route-3981c2a159de99ad.js +0 -1
  998. package/app/.next/static/chunks/app/api/providers/[id]/model-probes/remove-unavailable/route-3981c2a159de99ad.js +0 -1
  999. package/app/.next/static/chunks/app/api/providers/[id]/model-probes/route-3981c2a159de99ad.js +0 -1
  1000. package/app/.next/static/chunks/app/api/providers/[id]/model-probes/verify/cancel/route-3981c2a159de99ad.js +0 -1
  1001. package/app/.next/static/chunks/app/api/providers/[id]/model-probes/verify/start/route-3981c2a159de99ad.js +0 -1
  1002. package/app/.next/static/chunks/app/api/providers/[id]/model-probes/verify/status/route-3981c2a159de99ad.js +0 -1
  1003. package/app/.next/static/chunks/app/api/providers/[id]/models/route-3981c2a159de99ad.js +0 -1
  1004. package/app/.next/static/chunks/app/api/providers/[id]/route-3981c2a159de99ad.js +0 -1
  1005. package/app/.next/static/chunks/app/api/providers/[id]/test/route-3981c2a159de99ad.js +0 -1
  1006. package/app/.next/static/chunks/app/api/providers/[id]/test-models/route-3981c2a159de99ad.js +0 -1
  1007. package/app/.next/static/chunks/app/api/providers/client/route-3981c2a159de99ad.js +0 -1
  1008. package/app/.next/static/chunks/app/api/providers/kilo/free-models/route-3981c2a159de99ad.js +0 -1
  1009. package/app/.next/static/chunks/app/api/providers/route-3981c2a159de99ad.js +0 -1
  1010. package/app/.next/static/chunks/app/api/providers/suggested-models/route-3981c2a159de99ad.js +0 -1
  1011. package/app/.next/static/chunks/app/api/providers/test-batch/route-3981c2a159de99ad.js +0 -1
  1012. package/app/.next/static/chunks/app/api/providers/validate/route-3981c2a159de99ad.js +0 -1
  1013. package/app/.next/static/chunks/app/api/pxpipe/health/route-3981c2a159de99ad.js +0 -1
  1014. package/app/.next/static/chunks/app/api/pxpipe/install/route-3981c2a159de99ad.js +0 -1
  1015. package/app/.next/static/chunks/app/api/pxpipe/logs/route-3981c2a159de99ad.js +0 -1
  1016. package/app/.next/static/chunks/app/api/pxpipe/restart/route-3981c2a159de99ad.js +0 -1
  1017. package/app/.next/static/chunks/app/api/pxpipe/start/route-3981c2a159de99ad.js +0 -1
  1018. package/app/.next/static/chunks/app/api/pxpipe/stats/route-3981c2a159de99ad.js +0 -1
  1019. package/app/.next/static/chunks/app/api/pxpipe/status/route-3981c2a159de99ad.js +0 -1
  1020. package/app/.next/static/chunks/app/api/pxpipe/stop/route-3981c2a159de99ad.js +0 -1
  1021. package/app/.next/static/chunks/app/api/routing/feedback/route-3981c2a159de99ad.js +0 -1
  1022. package/app/.next/static/chunks/app/api/routing/insights/route-3981c2a159de99ad.js +0 -1
  1023. package/app/.next/static/chunks/app/api/routing/learn/route-3981c2a159de99ad.js +0 -1
  1024. package/app/.next/static/chunks/app/api/routing/stats/route-3981c2a159de99ad.js +0 -1
  1025. package/app/.next/static/chunks/app/api/routing/versions/promote/route-3981c2a159de99ad.js +0 -1
  1026. package/app/.next/static/chunks/app/api/routing/versions/rollback/route-3981c2a159de99ad.js +0 -1
  1027. package/app/.next/static/chunks/app/api/settings/database/route-3981c2a159de99ad.js +0 -1
  1028. package/app/.next/static/chunks/app/api/settings/proxy-test/route-3981c2a159de99ad.js +0 -1
  1029. package/app/.next/static/chunks/app/api/settings/route-3981c2a159de99ad.js +0 -1
  1030. package/app/.next/static/chunks/app/api/shutdown/route-3981c2a159de99ad.js +0 -1
  1031. package/app/.next/static/chunks/app/api/skills/[id]/route-3981c2a159de99ad.js +0 -1
  1032. package/app/.next/static/chunks/app/api/tags/route-3981c2a159de99ad.js +0 -1
  1033. package/app/.next/static/chunks/app/api/token-saver/vault-stats/route-3981c2a159de99ad.js +0 -1
  1034. package/app/.next/static/chunks/app/api/translator/console-logs/route-3981c2a159de99ad.js +0 -1
  1035. package/app/.next/static/chunks/app/api/translator/console-logs/stream/route-3981c2a159de99ad.js +0 -1
  1036. package/app/.next/static/chunks/app/api/translator/load/route-3981c2a159de99ad.js +0 -1
  1037. package/app/.next/static/chunks/app/api/translator/save/route-3981c2a159de99ad.js +0 -1
  1038. package/app/.next/static/chunks/app/api/translator/send/route-3981c2a159de99ad.js +0 -1
  1039. package/app/.next/static/chunks/app/api/translator/translate/route-3981c2a159de99ad.js +0 -1
  1040. package/app/.next/static/chunks/app/api/usage/[connectionId]/codex-reset-credits/route-3981c2a159de99ad.js +0 -1
  1041. package/app/.next/static/chunks/app/api/usage/[connectionId]/route-3981c2a159de99ad.js +0 -1
  1042. package/app/.next/static/chunks/app/api/usage/chart/route-3981c2a159de99ad.js +0 -1
  1043. package/app/.next/static/chunks/app/api/usage/history/route-3981c2a159de99ad.js +0 -1
  1044. package/app/.next/static/chunks/app/api/usage/logs/route-3981c2a159de99ad.js +0 -1
  1045. package/app/.next/static/chunks/app/api/usage/providers/route-3981c2a159de99ad.js +0 -1
  1046. package/app/.next/static/chunks/app/api/usage/request-details/[id]/route-3981c2a159de99ad.js +0 -1
  1047. package/app/.next/static/chunks/app/api/usage/request-details/route-3981c2a159de99ad.js +0 -1
  1048. package/app/.next/static/chunks/app/api/usage/request-logs/route-3981c2a159de99ad.js +0 -1
  1049. package/app/.next/static/chunks/app/api/usage/stats/route-3981c2a159de99ad.js +0 -1
  1050. package/app/.next/static/chunks/app/api/usage/stream/route-3981c2a159de99ad.js +0 -1
  1051. package/app/.next/static/chunks/app/api/v1/api/chat/route-3981c2a159de99ad.js +0 -1
  1052. package/app/.next/static/chunks/app/api/v1/audio/speech/route-3981c2a159de99ad.js +0 -1
  1053. package/app/.next/static/chunks/app/api/v1/audio/transcriptions/route-3981c2a159de99ad.js +0 -1
  1054. package/app/.next/static/chunks/app/api/v1/audio/voices/route-3981c2a159de99ad.js +0 -1
  1055. package/app/.next/static/chunks/app/api/v1/chat/completions/route-3981c2a159de99ad.js +0 -1
  1056. package/app/.next/static/chunks/app/api/v1/embeddings/route-3981c2a159de99ad.js +0 -1
  1057. package/app/.next/static/chunks/app/api/v1/images/generations/route-3981c2a159de99ad.js +0 -1
  1058. package/app/.next/static/chunks/app/api/v1/messages/count_tokens/route-3981c2a159de99ad.js +0 -1
  1059. package/app/.next/static/chunks/app/api/v1/messages/route-3981c2a159de99ad.js +0 -1
  1060. package/app/.next/static/chunks/app/api/v1/models/[kind]/route-3981c2a159de99ad.js +0 -1
  1061. package/app/.next/static/chunks/app/api/v1/models/info/route-3981c2a159de99ad.js +0 -1
  1062. package/app/.next/static/chunks/app/api/v1/models/route-3981c2a159de99ad.js +0 -1
  1063. package/app/.next/static/chunks/app/api/v1/responses/compact/route-3981c2a159de99ad.js +0 -1
  1064. package/app/.next/static/chunks/app/api/v1/responses/route-3981c2a159de99ad.js +0 -1
  1065. package/app/.next/static/chunks/app/api/v1/route-3981c2a159de99ad.js +0 -1
  1066. package/app/.next/static/chunks/app/api/v1/search/route-3981c2a159de99ad.js +0 -1
  1067. package/app/.next/static/chunks/app/api/v1/videos/[id]/route-3981c2a159de99ad.js +0 -1
  1068. package/app/.next/static/chunks/app/api/v1/videos/edits/route-3981c2a159de99ad.js +0 -1
  1069. package/app/.next/static/chunks/app/api/v1/videos/extensions/route-3981c2a159de99ad.js +0 -1
  1070. package/app/.next/static/chunks/app/api/v1/videos/generations/route-3981c2a159de99ad.js +0 -1
  1071. package/app/.next/static/chunks/app/api/v1/web/fetch/route-3981c2a159de99ad.js +0 -1
  1072. package/app/.next/static/chunks/app/api/v1beta/models/[...path]/route-3981c2a159de99ad.js +0 -1
  1073. package/app/.next/static/chunks/app/api/v1beta/models/route-3981c2a159de99ad.js +0 -1
  1074. package/app/.next/static/chunks/app/api/version/route-3981c2a159de99ad.js +0 -1
  1075. package/app/.next/static/chunks/app/api/version/shutdown/route-3981c2a159de99ad.js +0 -1
  1076. package/app/.next/static/chunks/app/api/version/update/route-3981c2a159de99ad.js +0 -1
  1077. package/app/.next/static/chunks/app/manifest.webmanifest/route-3981c2a159de99ad.js +0 -1
  1078. package/app/.next/static/chunks/app/page-3981c2a159de99ad.js +0 -1
  1079. package/app/.next/static/chunks/next/dist/client/components/builtin/app-error-3981c2a159de99ad.js +0 -1
  1080. package/app/.next/static/chunks/next/dist/client/components/builtin/forbidden-3981c2a159de99ad.js +0 -1
  1081. package/app/.next/static/chunks/next/dist/client/components/builtin/not-found-3981c2a159de99ad.js +0 -1
  1082. package/app/.next/static/chunks/next/dist/client/components/builtin/unauthorized-3981c2a159de99ad.js +0 -1
  1083. package/app/.next/static/css/912e8e046d0cd4ca.css +0 -1
  1084. package/app/.next/static/jX_YoXTmP5GCN19LWe_Ur/_buildManifest.js +0 -1
  1085. package/app/.next-cli-build/server/chunks/5717.js +0 -42
  1086. package/app/.next-cli-build/server/chunks/7003.js +0 -1
  1087. package/app/.next-cli-build/static/chunks/app/_global-error/page-3981c2a159de99ad.js +0 -1
  1088. package/app/.next-cli-build/static/chunks/app/api/agent-library/catalog/route-3981c2a159de99ad.js +0 -1
  1089. package/app/.next-cli-build/static/chunks/app/api/agent-library/doctor/route-3981c2a159de99ad.js +0 -1
  1090. package/app/.next-cli-build/static/chunks/app/api/agent-library/export/route-3981c2a159de99ad.js +0 -1
  1091. package/app/.next-cli-build/static/chunks/app/api/agent-library/mcp/route-3981c2a159de99ad.js +0 -1
  1092. package/app/.next-cli-build/static/chunks/app/api/agent-library/route-3981c2a159de99ad.js +0 -1
  1093. package/app/.next-cli-build/static/chunks/app/api/agent-library/skills/route-3981c2a159de99ad.js +0 -1
  1094. package/app/.next-cli-build/static/chunks/app/api/agent-library/sync/route-3981c2a159de99ad.js +0 -1
  1095. package/app/.next-cli-build/static/chunks/app/api/agent-library/updates/route-3981c2a159de99ad.js +0 -1
  1096. package/app/.next-cli-build/static/chunks/app/api/auth/login/route-3981c2a159de99ad.js +0 -1
  1097. package/app/.next-cli-build/static/chunks/app/api/auth/logout/route-3981c2a159de99ad.js +0 -1
  1098. package/app/.next-cli-build/static/chunks/app/api/auth/status/route-3981c2a159de99ad.js +0 -1
  1099. package/app/.next-cli-build/static/chunks/app/api/cli-tools/aider-settings/route-3981c2a159de99ad.js +0 -1
  1100. package/app/.next-cli-build/static/chunks/app/api/cli-tools/all-statuses/route-3981c2a159de99ad.js +0 -1
  1101. package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-3981c2a159de99ad.js +0 -1
  1102. package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/route-3981c2a159de99ad.js +0 -1
  1103. package/app/.next-cli-build/static/chunks/app/api/cli-tools/claude-full-catalog/route-3981c2a159de99ad.js +0 -1
  1104. package/app/.next-cli-build/static/chunks/app/api/cli-tools/claude-picker-labels/route-3981c2a159de99ad.js +0 -1
  1105. package/app/.next-cli-build/static/chunks/app/api/cli-tools/claude-settings/route-3981c2a159de99ad.js +0 -1
  1106. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cline-settings/route-3981c2a159de99ad.js +0 -1
  1107. package/app/.next-cli-build/static/chunks/app/api/cli-tools/codex-settings/route-3981c2a159de99ad.js +0 -1
  1108. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-registry/route-3981c2a159de99ad.js +0 -1
  1109. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-tools/route-3981c2a159de99ad.js +0 -1
  1110. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-settings/route-3981c2a159de99ad.js +0 -1
  1111. package/app/.next-cli-build/static/chunks/app/api/cli-tools/deepseek-tui-settings/route-3981c2a159de99ad.js +0 -1
  1112. package/app/.next-cli-build/static/chunks/app/api/cli-tools/droid-settings/route-3981c2a159de99ad.js +0 -1
  1113. package/app/.next-cli-build/static/chunks/app/api/cli-tools/gemini-cli-settings/route-3981c2a159de99ad.js +0 -1
  1114. package/app/.next-cli-build/static/chunks/app/api/cli-tools/grok-settings/route-3981c2a159de99ad.js +0 -1
  1115. package/app/.next-cli-build/static/chunks/app/api/cli-tools/hermes-settings/route-3981c2a159de99ad.js +0 -1
  1116. package/app/.next-cli-build/static/chunks/app/api/cli-tools/jcode-settings/route-3981c2a159de99ad.js +0 -1
  1117. package/app/.next-cli-build/static/chunks/app/api/cli-tools/kilo-settings/route-3981c2a159de99ad.js +0 -1
  1118. package/app/.next-cli-build/static/chunks/app/api/cli-tools/openclaw-settings/route-3981c2a159de99ad.js +0 -1
  1119. package/app/.next-cli-build/static/chunks/app/api/cli-tools/opencode-settings/route-3981c2a159de99ad.js +0 -1
  1120. package/app/.next-cli-build/static/chunks/app/api/cli-tools/pi-settings/route-3981c2a159de99ad.js +0 -1
  1121. package/app/.next-cli-build/static/chunks/app/api/cli-tools/picker-labels/route-3981c2a159de99ad.js +0 -1
  1122. package/app/.next-cli-build/static/chunks/app/api/combos/[id]/route-3981c2a159de99ad.js +0 -1
  1123. package/app/.next-cli-build/static/chunks/app/api/combos/route-3981c2a159de99ad.js +0 -1
  1124. package/app/.next-cli-build/static/chunks/app/api/headroom/extras/route-3981c2a159de99ad.js +0 -1
  1125. package/app/.next-cli-build/static/chunks/app/api/headroom/proxy/[...path]/route-3981c2a159de99ad.js +0 -1
  1126. package/app/.next-cli-build/static/chunks/app/api/headroom/restart/route-3981c2a159de99ad.js +0 -1
  1127. package/app/.next-cli-build/static/chunks/app/api/headroom/start/route-3981c2a159de99ad.js +0 -1
  1128. package/app/.next-cli-build/static/chunks/app/api/headroom/status/route-3981c2a159de99ad.js +0 -1
  1129. package/app/.next-cli-build/static/chunks/app/api/headroom/stop/route-3981c2a159de99ad.js +0 -1
  1130. package/app/.next-cli-build/static/chunks/app/api/health/route-3981c2a159de99ad.js +0 -1
  1131. package/app/.next-cli-build/static/chunks/app/api/keys/[id]/route-3981c2a159de99ad.js +0 -1
  1132. package/app/.next-cli-build/static/chunks/app/api/keys/route-3981c2a159de99ad.js +0 -1
  1133. package/app/.next-cli-build/static/chunks/app/api/locale/route-3981c2a159de99ad.js +0 -1
  1134. package/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/message/route-3981c2a159de99ad.js +0 -1
  1135. package/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/sse/route-3981c2a159de99ad.js +0 -1
  1136. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/deepgram/voices/route-3981c2a159de99ad.js +0 -1
  1137. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-3981c2a159de99ad.js +0 -1
  1138. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/inworld/voices/route-3981c2a159de99ad.js +0 -1
  1139. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/minimax/voices/route-3981c2a159de99ad.js +0 -1
  1140. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/voices/route-3981c2a159de99ad.js +0 -1
  1141. package/app/.next-cli-build/static/chunks/app/api/mgmt/v1/combos/[id]/route-3981c2a159de99ad.js +0 -1
  1142. package/app/.next-cli-build/static/chunks/app/api/mgmt/v1/combos/[id]/strategy/route-3981c2a159de99ad.js +0 -1
  1143. package/app/.next-cli-build/static/chunks/app/api/mgmt/v1/combos/route-3981c2a159de99ad.js +0 -1
  1144. package/app/.next-cli-build/static/chunks/app/api/mgmt/v1/health/route-3981c2a159de99ad.js +0 -1
  1145. package/app/.next-cli-build/static/chunks/app/api/mgmt/v1/metrics/route-3981c2a159de99ad.js +0 -1
  1146. package/app/.next-cli-build/static/chunks/app/api/mgmt/v1/providers/route-3981c2a159de99ad.js +0 -1
  1147. package/app/.next-cli-build/static/chunks/app/api/mgmt/v1/routing/route-3981c2a159de99ad.js +0 -1
  1148. package/app/.next-cli-build/static/chunks/app/api/mgmt/v1/usage/route-3981c2a159de99ad.js +0 -1
  1149. package/app/.next-cli-build/static/chunks/app/api/mgmt/v1/version/route-3981c2a159de99ad.js +0 -1
  1150. package/app/.next-cli-build/static/chunks/app/api/models/alias/route-3981c2a159de99ad.js +0 -1
  1151. package/app/.next-cli-build/static/chunks/app/api/models/availability/route-3981c2a159de99ad.js +0 -1
  1152. package/app/.next-cli-build/static/chunks/app/api/models/custom/route-3981c2a159de99ad.js +0 -1
  1153. package/app/.next-cli-build/static/chunks/app/api/models/disabled/route-3981c2a159de99ad.js +0 -1
  1154. package/app/.next-cli-build/static/chunks/app/api/models/routable/route-3981c2a159de99ad.js +0 -1
  1155. package/app/.next-cli-build/static/chunks/app/api/models/route-3981c2a159de99ad.js +0 -1
  1156. package/app/.next-cli-build/static/chunks/app/api/models/test/route-3981c2a159de99ad.js +0 -1
  1157. package/app/.next-cli-build/static/chunks/app/api/oauth/[provider]/[action]/route-3981c2a159de99ad.js +0 -1
  1158. package/app/.next-cli-build/static/chunks/app/api/oauth/codex/bulk-import/route-3981c2a159de99ad.js +0 -1
  1159. package/app/.next-cli-build/static/chunks/app/api/oauth/codex/import-token/route-3981c2a159de99ad.js +0 -1
  1160. package/app/.next-cli-build/static/chunks/app/api/oauth/cursor/auto-import/route-3981c2a159de99ad.js +0 -1
  1161. package/app/.next-cli-build/static/chunks/app/api/oauth/cursor/import/route-3981c2a159de99ad.js +0 -1
  1162. package/app/.next-cli-build/static/chunks/app/api/oauth/gitlab/pat/route-3981c2a159de99ad.js +0 -1
  1163. package/app/.next-cli-build/static/chunks/app/api/oauth/iflow/cookie/route-3981c2a159de99ad.js +0 -1
  1164. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/api-key/route-3981c2a159de99ad.js +0 -1
  1165. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/auto-import/route-3981c2a159de99ad.js +0 -1
  1166. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import/route-3981c2a159de99ad.js +0 -1
  1167. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import-cli-proxy/route-3981c2a159de99ad.js +0 -1
  1168. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-authorize/route-3981c2a159de99ad.js +0 -1
  1169. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-exchange/route-3981c2a159de99ad.js +0 -1
  1170. package/app/.next-cli-build/static/chunks/app/api/pricing/defaults/route-3981c2a159de99ad.js +0 -1
  1171. package/app/.next-cli-build/static/chunks/app/api/pricing/route-3981c2a159de99ad.js +0 -1
  1172. package/app/.next-cli-build/static/chunks/app/api/provider-nodes/[id]/route-3981c2a159de99ad.js +0 -1
  1173. package/app/.next-cli-build/static/chunks/app/api/provider-nodes/route-3981c2a159de99ad.js +0 -1
  1174. package/app/.next-cli-build/static/chunks/app/api/provider-nodes/validate/route-3981c2a159de99ad.js +0 -1
  1175. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/model-probes/batch/route-3981c2a159de99ad.js +0 -1
  1176. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/model-probes/cache/route-3981c2a159de99ad.js +0 -1
  1177. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/model-probes/prepare/route-3981c2a159de99ad.js +0 -1
  1178. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/model-probes/remove-unavailable/route-3981c2a159de99ad.js +0 -1
  1179. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/model-probes/route-3981c2a159de99ad.js +0 -1
  1180. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/model-probes/verify/cancel/route-3981c2a159de99ad.js +0 -1
  1181. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/model-probes/verify/start/route-3981c2a159de99ad.js +0 -1
  1182. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/model-probes/verify/status/route-3981c2a159de99ad.js +0 -1
  1183. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/models/route-3981c2a159de99ad.js +0 -1
  1184. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/route-3981c2a159de99ad.js +0 -1
  1185. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/test/route-3981c2a159de99ad.js +0 -1
  1186. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/test-models/route-3981c2a159de99ad.js +0 -1
  1187. package/app/.next-cli-build/static/chunks/app/api/providers/client/route-3981c2a159de99ad.js +0 -1
  1188. package/app/.next-cli-build/static/chunks/app/api/providers/kilo/free-models/route-3981c2a159de99ad.js +0 -1
  1189. package/app/.next-cli-build/static/chunks/app/api/providers/route-3981c2a159de99ad.js +0 -1
  1190. package/app/.next-cli-build/static/chunks/app/api/providers/suggested-models/route-3981c2a159de99ad.js +0 -1
  1191. package/app/.next-cli-build/static/chunks/app/api/providers/test-batch/route-3981c2a159de99ad.js +0 -1
  1192. package/app/.next-cli-build/static/chunks/app/api/providers/validate/route-3981c2a159de99ad.js +0 -1
  1193. package/app/.next-cli-build/static/chunks/app/api/pxpipe/health/route-3981c2a159de99ad.js +0 -1
  1194. package/app/.next-cli-build/static/chunks/app/api/pxpipe/install/route-3981c2a159de99ad.js +0 -1
  1195. package/app/.next-cli-build/static/chunks/app/api/pxpipe/logs/route-3981c2a159de99ad.js +0 -1
  1196. package/app/.next-cli-build/static/chunks/app/api/pxpipe/restart/route-3981c2a159de99ad.js +0 -1
  1197. package/app/.next-cli-build/static/chunks/app/api/pxpipe/start/route-3981c2a159de99ad.js +0 -1
  1198. package/app/.next-cli-build/static/chunks/app/api/pxpipe/stats/route-3981c2a159de99ad.js +0 -1
  1199. package/app/.next-cli-build/static/chunks/app/api/pxpipe/status/route-3981c2a159de99ad.js +0 -1
  1200. package/app/.next-cli-build/static/chunks/app/api/pxpipe/stop/route-3981c2a159de99ad.js +0 -1
  1201. package/app/.next-cli-build/static/chunks/app/api/routing/feedback/route-3981c2a159de99ad.js +0 -1
  1202. package/app/.next-cli-build/static/chunks/app/api/routing/insights/route-3981c2a159de99ad.js +0 -1
  1203. package/app/.next-cli-build/static/chunks/app/api/routing/learn/route-3981c2a159de99ad.js +0 -1
  1204. package/app/.next-cli-build/static/chunks/app/api/routing/stats/route-3981c2a159de99ad.js +0 -1
  1205. package/app/.next-cli-build/static/chunks/app/api/routing/versions/promote/route-3981c2a159de99ad.js +0 -1
  1206. package/app/.next-cli-build/static/chunks/app/api/routing/versions/rollback/route-3981c2a159de99ad.js +0 -1
  1207. package/app/.next-cli-build/static/chunks/app/api/settings/database/route-3981c2a159de99ad.js +0 -1
  1208. package/app/.next-cli-build/static/chunks/app/api/settings/proxy-test/route-3981c2a159de99ad.js +0 -1
  1209. package/app/.next-cli-build/static/chunks/app/api/settings/route-3981c2a159de99ad.js +0 -1
  1210. package/app/.next-cli-build/static/chunks/app/api/shutdown/route-3981c2a159de99ad.js +0 -1
  1211. package/app/.next-cli-build/static/chunks/app/api/skills/[id]/route-3981c2a159de99ad.js +0 -1
  1212. package/app/.next-cli-build/static/chunks/app/api/tags/route-3981c2a159de99ad.js +0 -1
  1213. package/app/.next-cli-build/static/chunks/app/api/token-saver/vault-stats/route-3981c2a159de99ad.js +0 -1
  1214. package/app/.next-cli-build/static/chunks/app/api/translator/console-logs/route-3981c2a159de99ad.js +0 -1
  1215. package/app/.next-cli-build/static/chunks/app/api/translator/console-logs/stream/route-3981c2a159de99ad.js +0 -1
  1216. package/app/.next-cli-build/static/chunks/app/api/translator/load/route-3981c2a159de99ad.js +0 -1
  1217. package/app/.next-cli-build/static/chunks/app/api/translator/save/route-3981c2a159de99ad.js +0 -1
  1218. package/app/.next-cli-build/static/chunks/app/api/translator/send/route-3981c2a159de99ad.js +0 -1
  1219. package/app/.next-cli-build/static/chunks/app/api/translator/translate/route-3981c2a159de99ad.js +0 -1
  1220. package/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/codex-reset-credits/route-3981c2a159de99ad.js +0 -1
  1221. package/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/route-3981c2a159de99ad.js +0 -1
  1222. package/app/.next-cli-build/static/chunks/app/api/usage/chart/route-3981c2a159de99ad.js +0 -1
  1223. package/app/.next-cli-build/static/chunks/app/api/usage/history/route-3981c2a159de99ad.js +0 -1
  1224. package/app/.next-cli-build/static/chunks/app/api/usage/logs/route-3981c2a159de99ad.js +0 -1
  1225. package/app/.next-cli-build/static/chunks/app/api/usage/providers/route-3981c2a159de99ad.js +0 -1
  1226. package/app/.next-cli-build/static/chunks/app/api/usage/request-details/[id]/route-3981c2a159de99ad.js +0 -1
  1227. package/app/.next-cli-build/static/chunks/app/api/usage/request-details/route-3981c2a159de99ad.js +0 -1
  1228. package/app/.next-cli-build/static/chunks/app/api/usage/request-logs/route-3981c2a159de99ad.js +0 -1
  1229. package/app/.next-cli-build/static/chunks/app/api/usage/stats/route-3981c2a159de99ad.js +0 -1
  1230. package/app/.next-cli-build/static/chunks/app/api/usage/stream/route-3981c2a159de99ad.js +0 -1
  1231. package/app/.next-cli-build/static/chunks/app/api/v1/api/chat/route-3981c2a159de99ad.js +0 -1
  1232. package/app/.next-cli-build/static/chunks/app/api/v1/audio/speech/route-3981c2a159de99ad.js +0 -1
  1233. package/app/.next-cli-build/static/chunks/app/api/v1/audio/transcriptions/route-3981c2a159de99ad.js +0 -1
  1234. package/app/.next-cli-build/static/chunks/app/api/v1/audio/voices/route-3981c2a159de99ad.js +0 -1
  1235. package/app/.next-cli-build/static/chunks/app/api/v1/chat/completions/route-3981c2a159de99ad.js +0 -1
  1236. package/app/.next-cli-build/static/chunks/app/api/v1/embeddings/route-3981c2a159de99ad.js +0 -1
  1237. package/app/.next-cli-build/static/chunks/app/api/v1/images/generations/route-3981c2a159de99ad.js +0 -1
  1238. package/app/.next-cli-build/static/chunks/app/api/v1/messages/count_tokens/route-3981c2a159de99ad.js +0 -1
  1239. package/app/.next-cli-build/static/chunks/app/api/v1/messages/route-3981c2a159de99ad.js +0 -1
  1240. package/app/.next-cli-build/static/chunks/app/api/v1/models/[kind]/route-3981c2a159de99ad.js +0 -1
  1241. package/app/.next-cli-build/static/chunks/app/api/v1/models/info/route-3981c2a159de99ad.js +0 -1
  1242. package/app/.next-cli-build/static/chunks/app/api/v1/models/route-3981c2a159de99ad.js +0 -1
  1243. package/app/.next-cli-build/static/chunks/app/api/v1/responses/compact/route-3981c2a159de99ad.js +0 -1
  1244. package/app/.next-cli-build/static/chunks/app/api/v1/responses/route-3981c2a159de99ad.js +0 -1
  1245. package/app/.next-cli-build/static/chunks/app/api/v1/route-3981c2a159de99ad.js +0 -1
  1246. package/app/.next-cli-build/static/chunks/app/api/v1/search/route-3981c2a159de99ad.js +0 -1
  1247. package/app/.next-cli-build/static/chunks/app/api/v1/videos/[id]/route-3981c2a159de99ad.js +0 -1
  1248. package/app/.next-cli-build/static/chunks/app/api/v1/videos/edits/route-3981c2a159de99ad.js +0 -1
  1249. package/app/.next-cli-build/static/chunks/app/api/v1/videos/extensions/route-3981c2a159de99ad.js +0 -1
  1250. package/app/.next-cli-build/static/chunks/app/api/v1/videos/generations/route-3981c2a159de99ad.js +0 -1
  1251. package/app/.next-cli-build/static/chunks/app/api/v1/web/fetch/route-3981c2a159de99ad.js +0 -1
  1252. package/app/.next-cli-build/static/chunks/app/api/v1beta/models/[...path]/route-3981c2a159de99ad.js +0 -1
  1253. package/app/.next-cli-build/static/chunks/app/api/v1beta/models/route-3981c2a159de99ad.js +0 -1
  1254. package/app/.next-cli-build/static/chunks/app/api/version/route-3981c2a159de99ad.js +0 -1
  1255. package/app/.next-cli-build/static/chunks/app/api/version/shutdown/route-3981c2a159de99ad.js +0 -1
  1256. package/app/.next-cli-build/static/chunks/app/api/version/update/route-3981c2a159de99ad.js +0 -1
  1257. package/app/.next-cli-build/static/chunks/app/manifest.webmanifest/route-3981c2a159de99ad.js +0 -1
  1258. package/app/.next-cli-build/static/chunks/app/page-3981c2a159de99ad.js +0 -1
  1259. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/app-error-3981c2a159de99ad.js +0 -1
  1260. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/forbidden-3981c2a159de99ad.js +0 -1
  1261. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/not-found-3981c2a159de99ad.js +0 -1
  1262. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/unauthorized-3981c2a159de99ad.js +0 -1
  1263. package/app/.next-cli-build/static/css/912e8e046d0cd4ca.css +0 -1
  1264. package/app/.next-cli-build/static/jX_YoXTmP5GCN19LWe_Ur/_buildManifest.js +0 -1
  1265. /package/app/.next/static/{jX_YoXTmP5GCN19LWe_Ur → cG6cLaTIiXMA9B8cN_VI5}/_ssgManifest.js +0 -0
  1266. /package/app/.next-cli-build/static/{jX_YoXTmP5GCN19LWe_Ur → cG6cLaTIiXMA9B8cN_VI5}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- "use strict";exports.id=1158,exports.ids=[1158],exports.modules={51158:(a,b,c)=>{c.d(b,{g:()=>A,s:()=>B});var d=c(67133),e=c(15717),f=c(38775),g=c(89865),h=c(60290),i=c(41029),j=c(18129),k=c(45350),l=c(46052);let m=Number(process.env.VIDEO_FETCH_TIMEOUT_MS||12e4),n=new Set(["generations","edits","extensions"]);function o(a){return k.B$[a]?.videoConfig||null}function p(a,b=null){if(!a)return a;let c=String(a).replace(/Bearer\s+[A-Za-z0-9._~+/=-]{8,}/gi,"Bearer [redacted]");for(let a of["accessToken","refreshToken","apiKey"]){let d=b?.[a];"string"==typeof d&&d.length>=8&&(c=c.split(d).join("[redacted]"))}return c}async function q({provider:a,action:b=null,requestId:c=null,rawBody:d=null,contentType:e=null,idempotencyKey:f=null,credentials:r,signal:s,timeoutMs:t=m,log:u,onCredentialsRefreshed:v}){let w,x,y,z,A=o(a);if(!A)return(0,g.A1)(h.gx.BAD_REQUEST,`Provider '${a}' does not support video generation`);if(!c&&!n.has(b))return(0,g.A1)(h.gx.BAD_REQUEST,`Unknown video action: ${b}`);let{identity:B,format:C}=(x=k.xq[a]||{},{identity:(o(a)||{}).identity||x.identity||"openai-node",format:x.format||"openai"}),D=c?"GET":"POST",E=(y=A.baseUrl.replace(/\/$/,""),c?`${y}/${encodeURIComponent(c)}`:`${y}/${b}`),F=(z="function"==typeof AbortSignal?.timeout?AbortSignal.timeout(t):null,s&&z&&"function"==typeof AbortSignal.any?AbortSignal.any([s,z]):s||z||void 0),G=(0,l.$6)(r),H=b=>(0,l.Fm)(E,{method:D,headers:function({token:a,contentType:b,idempotencyKey:c}){let d={Accept:"application/json"};return a&&(d.Authorization=`Bearer ${a}`),b&&(d["Content-Type"]=b),c&&(d["Idempotency-Key"]=c),d}({token:b,contentType:"POST"===D?e:null,idempotencyKey:"POST"===D?f:null}),body:"POST"===D?d:void 0,signal:F,identity:B,format:C,provider:a},G);try{w=await H(r?.accessToken||r?.apiKey)}catch(b){if(b?.name==="AbortError"||b?.name==="TimeoutError")return(0,g.A1)(h.gx.REQUEST_TIMEOUT,`[${a}] video ${D} aborted: ${b.message}`);return(0,g.A1)(h.gx.BAD_GATEWAY,p(`[${a}] video upstream fetch failed: ${b.message}`,r))}if((w.status===h.gx.UNAUTHORIZED||w.status===h.gx.FORBIDDEN)&&r?.refreshToken){let b=null;try{b=await (0,j.MF)(a,r,()=>(0,i.$B)(a,r,u))}catch(b){u?.warn?.("TOKEN",`${a} | video refresh error: ${p(b.message,r)}`)}if(b?.accessToken){u?.info?.("TOKEN",`${a.toUpperCase()} | refreshed for video ${D}`),Object.assign(r,b),v&&await v(b);try{await w.body?.cancel?.()}catch{}try{w=await H(r.accessToken||r.apiKey)}catch(b){return(0,g.A1)(h.gx.BAD_GATEWAY,p(`[${a}] video retry after refresh failed: ${b.message}`,r))}}else u?.warn?.("TOKEN",`${a.toUpperCase()} | video refresh failed — account needs re-auth`)}let I=await w.text().catch(()=>"");if(!w.ok){let b=p(I||`HTTP ${w.status}`,r);return(0,g.A1)(w.status,`[${a}] ${b.slice(0,2e3)}`)}return{success:!0,response:new Response(I,{status:w.status,headers:{"Content-Type":w.headers.get("content-type")||"application/json"}})}}var r=c(67828),s=c(7803),t=c(78102),u=c(66077);let v=new Set([h.gx.UNAUTHORIZED,h.gx.FORBIDDEN,h.gx.RATE_LIMITED]);async function w(a){let b=await (0,e.mt)();return(0,t.DM)({settings:b,rawKey:(0,d.Tr)(a),request:a,target:{kind:"model",id:null}})}async function x(a){let b=a.headers.get("content-type")||"";if(b.includes("application/json")){let c,d=await a.text();try{c=JSON.parse(d)}catch{return{error:(0,g.yj)(h.gx.BAD_REQUEST,"Invalid JSON body")}}return{raw:d,parsed:c,contentType:b}}return{raw:Buffer.from(await a.arrayBuffer()),parsed:null,contentType:b}}async function y(a){if(!a?.model)return{provider:"xai",model:null};let b=String(a.model),c=await (0,f.getModelInfo)(b);return c.provider?o(c.provider)?{provider:c.provider,model:c.model}:b.includes("/")?{error:(0,g.yj)(h.gx.BAD_REQUEST,`Provider '${c.provider}' does not support video generation`)}:{provider:"xai",model:b}:{error:(0,g.yj)(h.gx.BAD_REQUEST,"Combos are not supported for video generation")}}function z(a,b){if(!b)return a;let c=new Headers(a.headers);return c.set("x-switchboard-connection-id",String(b)),new Response(a.body,{status:a.status,headers:c})}async function A(a,b){let c=await w(a);return c.ok?(0,t.yH)(c.lease,async()=>{let e=await x(a);if(e.error)return e.error;let f=await y(e.parsed);if(f.error)return f.error;let{provider:i,model:j}=f,k=e.raw;e.parsed&&j&&e.parsed.model!==j&&(k=JSON.stringify({...e.parsed,model:j}));let l=a.headers.get("x-connection-id")||null,m="1"===a.headers.get("x-switchboard-strict-connection"),n=a.headers.get("idempotency-key")||null,{clientKeyId:o}=c,t=new Set,w=null,A=null;for(;;){let c=await (0,d.getProviderCredentials)(i,t,j,{preferredConnectionId:l,strictPreferredConnection:m,clientKeyId:o});if(!c||c.allRateLimited){if(c?.allRateLimited){let a=w||c.lastError||"Unavailable",b=A||Number(c.lastErrorCode)||h.gx.SERVICE_UNAVAILABLE;return(0,g.wO)(b,`[${i}/${j||"video"}] ${a}`,c.retryAfter,c.retryAfterHuman)}if(0===t.size)return(0,g.yj)(h.gx.BAD_REQUEST,`No credentials for provider: ${i}`);return(0,g.yj)(A||h.gx.SERVICE_UNAVAILABLE,w||"All accounts unavailable")}let f=await (0,u.G)({provider:i,model:j,connectionId:c.connectionId},async()=>{let f=await (0,r.eU)(i,c),g=await q({provider:i,action:b,rawBody:k,contentType:e.contentType||null,idempotencyKey:n,credentials:f,signal:a.signal,log:s,onCredentialsRefreshed:async a=>{await (0,r.vN)(c.connectionId,{accessToken:a.accessToken,refreshToken:a.refreshToken,providerSpecificData:a.providerSpecificData,testStatus:"active"})}});if(g.success)return await (0,d.Pt)(c.connectionId,c,j),s.info("VIDEO",`${i.toUpperCase()} | ${b} accepted (connection ${c.connectionId})`),{finalResponse:z(g.response,c.connectionId)};let{shouldFallback:h}=await (0,d.vk)(c.connectionId,g.status,p(g.error,f),i,j);return h&&v.has(g.status)?{retry:!0,error:g.error,status:g.status}:{finalResponse:g.response}});if(f.finalResponse)return f.finalResponse;t.add(c.connectionId),w=f.error,A=f.status}}):c.response}async function B(a,b){let c=await w(a);return c.ok?(0,t.yH)(c.lease,async()=>{if(!b)return(0,g.yj)(h.gx.BAD_REQUEST,"Missing video request id");let e=a.headers.get("x-connection-id")||null,{clientKeyId:f}=c,i=await (0,d.getProviderCredentials)("xai",null,null,{preferredConnectionId:e,clientKeyId:f});if(!i||i.allRateLimited)return(0,g.yj)(h.gx.BAD_REQUEST,"No credentials for provider: xai");let j=await (0,r.eU)("xai",i),k=await q({provider:"xai",requestId:b,credentials:j,signal:a.signal,log:s,onCredentialsRefreshed:async a=>{await (0,r.vN)(i.connectionId,{accessToken:a.accessToken,refreshToken:a.refreshToken,providerSpecificData:a.providerSpecificData,testStatus:"active"})}});return k.success?(await (0,d.Pt)(i.connectionId,i,null),z(k.response,i.connectionId)):(await (0,d.vk)(i.connectionId,k.status,p(k.error,j),"xai",null),k.response)}):c.response}},66077:(a,b,c)=>{c.d(b,{G:()=>e});var d=c(23832);async function e({provider:a,model:b,connectionId:c},f){if(!c||"noauth"===c)return f();let g=!1,h=()=>{g||(g=!0,(0,d.uw)(b,a,c,!1))};(0,d.uw)(b,a,c,!0);try{let a=await f();if(a instanceof Response){if(!(a instanceof Response)||!a.body)return h(),a;let b=a.body.getReader();return new Response(new ReadableStream({async pull(a){try{let{done:c,value:d}=await b.read();c?(h(),a.close()):a.enqueue(d)}catch(b){h(),a.error(b)}},async cancel(a){try{await b.cancel(a)}finally{h()}}}),{status:a.status,statusText:a.statusText,headers:a.headers})}return h(),a}catch(a){throw h(),a}}},78102:(a,b,c)=>{c.d(b,{DM:()=>j,yH:()=>k});var d=c(15717),e=c(68658),f=c(41460);function g(){return global._clientKeyPolicyState}function h(a,b,c=null){let d={"content-type":"application/json"};return null!=c&&(d["retry-after"]=String(c)),{ok:!1,response:new Response(JSON.stringify({error:{message:"API key policy rejected this request",type:"client_key_policy_error",code:b}}),{status:a,headers:d})}}function i(a){return{ok:!0,mode:a,clientKey:null,clientKeyId:null,lease:null}}async function j({settings:a,rawKey:b,request:c,target:k}){if(c&&(0,e.v5)(c))return i("local");if(c)try{if(await (0,f.gN)(c))return i("cli")}catch{}if(!b)return a?.requireApiKey?h(401,"missing_api_key"):i("local");let l=await (0,d.PW)(b);if(!l)return a?.requireApiKey?h(401,"invalid_api_key"):i("local");let m=Date.now();if(l.expiresAt&&new Date(l.expiresAt).getTime()<=m)return h(403,"client_key_expired");if(!function(a,b){if(!a)return!0;let c=b.allowedModels||[],d=b.allowedCombos||[];return 0===c.length&&0===d.length||("combo"===a.kind?d.includes(a.id):c.includes(a.id))}(k,l))return h(403,"client_key_target_not_allowed");if(null!=l.spendLimitUsd){let a=await (0,d.fz)(l.id);if(l.spentUsd=a,a>=l.spendLimitUsd)return h(429,"client_key_spend_limit_exceeded")}let n=g().byId.get(l.id);if((!n||m-n.windowStartedAt>=6e4)&&(n={windowStartedAt:m,acceptedStarts:0,inFlight:n?.inFlight||0},g().byId.set(l.id,n)),null!=l.concurrencyLimit&&n.inFlight>=l.concurrencyLimit)return h(429,"client_key_concurrency_limit_exceeded",1);if(null!=l.rateLimitPerMinute&&n.acceptedStarts>=l.rateLimitPerMinute)return h(429,"client_key_rate_limit_exceeded",Math.max(1,Math.ceil((6e4-(m-n.windowStartedAt))/1e3)));n.acceptedStarts++,n.inFlight++;let o=!1;return{ok:!0,mode:"api-key",clientKey:l,clientKeyId:l.id,lease:{release(){if(o)return;o=!0;let a=g().byId.get(l.id);a&&(a.inFlight=Math.max(0,a.inFlight-1))}}}}async function k(a,b){let c;if(!a)return await b();let d=!1,e=()=>{d||(d=!0,a.release())};try{c=await b()}catch(a){throw e(),a}if(!(c instanceof Response&&c.body&&(c.headers.get("content-type")||"").toLowerCase().includes("text/event-stream")))return e(),c;let f=c.body.getReader();return new Response(new ReadableStream({async pull(a){try{let{done:b,value:c}=await f.read();b?(e(),a.close()):a.enqueue(c)}catch(b){e(),a.error(b)}},async cancel(a){e(),await f.cancel(a)}}),{status:c.status,statusText:c.statusText,headers:c.headers})}global._clientKeyPolicyState||(global._clientKeyPolicyState={byId:new Map})},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}`}}};
1
+ "use strict";exports.id=1158,exports.ids=[1158],exports.modules={51158:(a,b,c)=>{c.d(b,{g:()=>A,s:()=>B});var d=c(67133),e=c(59353),f=c(38775),g=c(89865),h=c(60290),i=c(41029),j=c(18129),k=c(45350),l=c(46052);let m=Number(process.env.VIDEO_FETCH_TIMEOUT_MS||12e4),n=new Set(["generations","edits","extensions"]);function o(a){return k.B$[a]?.videoConfig||null}function p(a,b=null){if(!a)return a;let c=String(a).replace(/Bearer\s+[A-Za-z0-9._~+/=-]{8,}/gi,"Bearer [redacted]");for(let a of["accessToken","refreshToken","apiKey"]){let d=b?.[a];"string"==typeof d&&d.length>=8&&(c=c.split(d).join("[redacted]"))}return c}async function q({provider:a,action:b=null,requestId:c=null,rawBody:d=null,contentType:e=null,idempotencyKey:f=null,credentials:r,signal:s,timeoutMs:t=m,log:u,onCredentialsRefreshed:v}){let w,x,y,z,A=o(a);if(!A)return(0,g.A1)(h.gx.BAD_REQUEST,`Provider '${a}' does not support video generation`);if(!c&&!n.has(b))return(0,g.A1)(h.gx.BAD_REQUEST,`Unknown video action: ${b}`);let{identity:B,format:C}=(x=k.xq[a]||{},{identity:(o(a)||{}).identity||x.identity||"openai-node",format:x.format||"openai"}),D=c?"GET":"POST",E=(y=A.baseUrl.replace(/\/$/,""),c?`${y}/${encodeURIComponent(c)}`:`${y}/${b}`),F=(z="function"==typeof AbortSignal?.timeout?AbortSignal.timeout(t):null,s&&z&&"function"==typeof AbortSignal.any?AbortSignal.any([s,z]):s||z||void 0),G=(0,l.$6)(r),H=b=>(0,l.Fm)(E,{method:D,headers:function({token:a,contentType:b,idempotencyKey:c}){let d={Accept:"application/json"};return a&&(d.Authorization=`Bearer ${a}`),b&&(d["Content-Type"]=b),c&&(d["Idempotency-Key"]=c),d}({token:b,contentType:"POST"===D?e:null,idempotencyKey:"POST"===D?f:null}),body:"POST"===D?d:void 0,signal:F,identity:B,format:C,provider:a},G);try{w=await H(r?.accessToken||r?.apiKey)}catch(b){if(b?.name==="AbortError"||b?.name==="TimeoutError")return(0,g.A1)(h.gx.REQUEST_TIMEOUT,`[${a}] video ${D} aborted: ${b.message}`);return(0,g.A1)(h.gx.BAD_GATEWAY,p(`[${a}] video upstream fetch failed: ${b.message}`,r))}if((w.status===h.gx.UNAUTHORIZED||w.status===h.gx.FORBIDDEN)&&r?.refreshToken){let b=null;try{b=await (0,j.MF)(a,r,()=>(0,i.$B)(a,r,u))}catch(b){u?.warn?.("TOKEN",`${a} | video refresh error: ${p(b.message,r)}`)}if(b?.accessToken){u?.info?.("TOKEN",`${a.toUpperCase()} | refreshed for video ${D}`),Object.assign(r,b),v&&await v(b);try{await w.body?.cancel?.()}catch{}try{w=await H(r.accessToken||r.apiKey)}catch(b){return(0,g.A1)(h.gx.BAD_GATEWAY,p(`[${a}] video retry after refresh failed: ${b.message}`,r))}}else u?.warn?.("TOKEN",`${a.toUpperCase()} | video refresh failed — account needs re-auth`)}let I=await w.text().catch(()=>"");if(!w.ok){let b=p(I||`HTTP ${w.status}`,r);return(0,g.A1)(w.status,`[${a}] ${b.slice(0,2e3)}`)}return{success:!0,response:new Response(I,{status:w.status,headers:{"Content-Type":w.headers.get("content-type")||"application/json"}})}}var r=c(67828),s=c(7803),t=c(78102),u=c(66077);let v=new Set([h.gx.UNAUTHORIZED,h.gx.FORBIDDEN,h.gx.RATE_LIMITED]);async function w(a){let b=await (0,e.mt)();return(0,t.DM)({settings:b,rawKey:(0,d.Tr)(a),request:a,target:{kind:"model",id:null}})}async function x(a){let b=a.headers.get("content-type")||"";if(b.includes("application/json")){let c,d=await a.text();try{c=JSON.parse(d)}catch{return{error:(0,g.yj)(h.gx.BAD_REQUEST,"Invalid JSON body")}}return{raw:d,parsed:c,contentType:b}}return{raw:Buffer.from(await a.arrayBuffer()),parsed:null,contentType:b}}async function y(a){if(!a?.model)return{provider:"xai",model:null};let b=String(a.model),c=await (0,f.getModelInfo)(b);return c.provider?o(c.provider)?{provider:c.provider,model:c.model}:b.includes("/")?{error:(0,g.yj)(h.gx.BAD_REQUEST,`Provider '${c.provider}' does not support video generation`)}:{provider:"xai",model:b}:{error:(0,g.yj)(h.gx.BAD_REQUEST,"Combos are not supported for video generation")}}function z(a,b){if(!b)return a;let c=new Headers(a.headers);return c.set("x-switchboard-connection-id",String(b)),new Response(a.body,{status:a.status,headers:c})}async function A(a,b){let c=await w(a);return c.ok?(0,t.yH)(c.lease,async()=>{let e=await x(a);if(e.error)return e.error;let f=await y(e.parsed);if(f.error)return f.error;let{provider:i,model:j}=f,k=e.raw;e.parsed&&j&&e.parsed.model!==j&&(k=JSON.stringify({...e.parsed,model:j}));let l=a.headers.get("x-connection-id")||null,m="1"===a.headers.get("x-switchboard-strict-connection"),n=a.headers.get("idempotency-key")||null,{clientKeyId:o}=c,t=new Set,w=null,A=null;for(;;){let c=await (0,d.getProviderCredentials)(i,t,j,{preferredConnectionId:l,strictPreferredConnection:m,clientKeyId:o});if(!c||c.allRateLimited){if(c?.allRateLimited){let a=w||c.lastError||"Unavailable",b=A||Number(c.lastErrorCode)||h.gx.SERVICE_UNAVAILABLE;return(0,g.wO)(b,`[${i}/${j||"video"}] ${a}`,c.retryAfter,c.retryAfterHuman)}if(0===t.size)return(0,g.yj)(h.gx.BAD_REQUEST,`No credentials for provider: ${i}`);return(0,g.yj)(A||h.gx.SERVICE_UNAVAILABLE,w||"All accounts unavailable")}let f=await (0,u.G)({provider:i,model:j,connectionId:c.connectionId},async()=>{let f=await (0,r.eU)(i,c),g=await q({provider:i,action:b,rawBody:k,contentType:e.contentType||null,idempotencyKey:n,credentials:f,signal:a.signal,log:s,onCredentialsRefreshed:async a=>{await (0,r.vN)(c.connectionId,{accessToken:a.accessToken,refreshToken:a.refreshToken,providerSpecificData:a.providerSpecificData,testStatus:"active"})}});if(g.success)return await (0,d.Pt)(c.connectionId,c,j),s.info("VIDEO",`${i.toUpperCase()} | ${b} accepted (connection ${c.connectionId})`),{finalResponse:z(g.response,c.connectionId)};let{shouldFallback:h}=await (0,d.vk)(c.connectionId,g.status,p(g.error,f),i,j);return h&&v.has(g.status)?{retry:!0,error:g.error,status:g.status}:{finalResponse:g.response}});if(f.finalResponse)return f.finalResponse;t.add(c.connectionId),w=f.error,A=f.status}}):c.response}async function B(a,b){let c=await w(a);return c.ok?(0,t.yH)(c.lease,async()=>{if(!b)return(0,g.yj)(h.gx.BAD_REQUEST,"Missing video request id");let e=a.headers.get("x-connection-id")||null,{clientKeyId:f}=c,i=await (0,d.getProviderCredentials)("xai",null,null,{preferredConnectionId:e,clientKeyId:f});if(!i||i.allRateLimited)return(0,g.yj)(h.gx.BAD_REQUEST,"No credentials for provider: xai");let j=await (0,r.eU)("xai",i),k=await q({provider:"xai",requestId:b,credentials:j,signal:a.signal,log:s,onCredentialsRefreshed:async a=>{await (0,r.vN)(i.connectionId,{accessToken:a.accessToken,refreshToken:a.refreshToken,providerSpecificData:a.providerSpecificData,testStatus:"active"})}});return k.success?(await (0,d.Pt)(i.connectionId,i,null),z(k.response,i.connectionId)):(await (0,d.vk)(i.connectionId,k.status,p(k.error,j),"xai",null),k.response)}):c.response}},66077:(a,b,c)=>{c.d(b,{G:()=>e});var d=c(23832);async function e({provider:a,model:b,connectionId:c},f){if(!c||"noauth"===c)return f();let g=!1,h=()=>{g||(g=!0,(0,d.uw)(b,a,c,!1))};(0,d.uw)(b,a,c,!0);try{let a=await f();if(a instanceof Response){if(!(a instanceof Response)||!a.body)return h(),a;let b=a.body.getReader();return new Response(new ReadableStream({async pull(a){try{let{done:c,value:d}=await b.read();c?(h(),a.close()):a.enqueue(d)}catch(b){h(),a.error(b)}},async cancel(a){try{await b.cancel(a)}finally{h()}}}),{status:a.status,statusText:a.statusText,headers:a.headers})}return h(),a}catch(a){throw h(),a}}},78102:(a,b,c)=>{c.d(b,{DM:()=>j,yH:()=>k});var d=c(59353),e=c(68658),f=c(41460);function g(){return global._clientKeyPolicyState}function h(a,b,c=null){let d={"content-type":"application/json"};return null!=c&&(d["retry-after"]=String(c)),{ok:!1,response:new Response(JSON.stringify({error:{message:"API key policy rejected this request",type:"client_key_policy_error",code:b}}),{status:a,headers:d})}}function i(a){return{ok:!0,mode:a,clientKey:null,clientKeyId:null,lease:null}}async function j({settings:a,rawKey:b,request:c,target:k}){if(c&&(0,e.v5)(c))return i("local");if(c)try{if(await (0,f.gN)(c))return i("cli")}catch{}if(!b)return a?.requireApiKey?h(401,"missing_api_key"):i("local");let l=await (0,d.PW)(b);if(!l)return a?.requireApiKey?h(401,"invalid_api_key"):i("local");let m=Date.now();if(l.expiresAt&&new Date(l.expiresAt).getTime()<=m)return h(403,"client_key_expired");if(!function(a,b){if(!a)return!0;let c=b.allowedModels||[],d=b.allowedCombos||[];return 0===c.length&&0===d.length||("combo"===a.kind?d.includes(a.id):c.includes(a.id))}(k,l))return h(403,"client_key_target_not_allowed");if(null!=l.spendLimitUsd){let a=await (0,d.fz)(l.id);if(l.spentUsd=a,a>=l.spendLimitUsd)return h(429,"client_key_spend_limit_exceeded")}let n=g().byId.get(l.id);if((!n||m-n.windowStartedAt>=6e4)&&(n={windowStartedAt:m,acceptedStarts:0,inFlight:n?.inFlight||0},g().byId.set(l.id,n)),null!=l.concurrencyLimit&&n.inFlight>=l.concurrencyLimit)return h(429,"client_key_concurrency_limit_exceeded",1);if(null!=l.rateLimitPerMinute&&n.acceptedStarts>=l.rateLimitPerMinute)return h(429,"client_key_rate_limit_exceeded",Math.max(1,Math.ceil((6e4-(m-n.windowStartedAt))/1e3)));n.acceptedStarts++,n.inFlight++;let o=!1;return{ok:!0,mode:"api-key",clientKey:l,clientKeyId:l.id,lease:{release(){if(o)return;o=!0;let a=g().byId.get(l.id);a&&(a.inFlight=Math.max(0,a.inFlight-1))}}}}async function k(a,b){let c;if(!a)return await b();let d=!1,e=()=>{d||(d=!0,a.release())};try{c=await b()}catch(a){throw e(),a}if(!(c instanceof Response&&c.body&&(c.headers.get("content-type")||"").toLowerCase().includes("text/event-stream")))return e(),c;let f=c.body.getReader();return new Response(new ReadableStream({async pull(a){try{let{done:b,value:c}=await f.read();b?(e(),a.close()):a.enqueue(c)}catch(b){e(),a.error(b)}},async cancel(a){e(),await f.cancel(a)}}),{status:c.status,statusText:c.statusText,headers:c.headers})}global._clientKeyPolicyState||(global._clientKeyPolicyState={byId:new Map})},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}`}}};
@@ -8,7 +8,7 @@ ASSISTANT RESPONSE (untrusted):
8
8
  ${r}
9
9
  RESPONSE>>>
10
10
 
11
- JSON only: {"score":<0-10>,"confident":<true|false>}`}]),w={model:p,messages:v,stream:!1,temperature:0,max_tokens:64},x=await (n=a=>d(w,p,{sourceFormatOverride:"openai",bypassNativePassthrough:!0,bypassPromptFilters:!0,autoDepth:2,signal:a}),s=new AbortController,new Promise((a,b)=>{let c=setTimeout(()=>{try{s.abort()}catch{}b(Error("judge_timeout"))},3e4);Promise.resolve().then(()=>n(s.signal)).then(b=>{clearTimeout(c),a(b)},a=>{clearTimeout(c),b(a)})})),y=await g(x);if(y?.httpError)return void k?.warn?.("AUTO",`judge HTTP ${y.status} — drop`);let z=function(a){let b;if("string"!=typeof a||!a.trim())return null;let c=a.trim(),d=c.match(/```(?:json)?\s*([\s\S]*?)```/i);d&&(c=d[1].trim());let e=c.indexOf("{"),f=c.lastIndexOf("}");if(e<0||f<=e)return null;try{b=JSON.parse(c.slice(e,f+1))}catch{return null}if(!b||"object"!=typeof b||!0!==b.confident)return null;let g=Number(b.score);return!Number.isFinite(g)||g<0||g>10?null:{score:g,confident:!0}}(y?.text||"");if(!z)return;j(c,u,z.score<=3);let A=(0,f.Uq)(z.score);if(k?.info?.("AUTO",`judge score=${z.score} rating=${A} cluster=${u} req=${t}`),0!==A){let a=await i(t,z.score);a&&0===a.updated&&(await new Promise(a=>setTimeout(a,1500)),await i(t,z.score))}}catch(a){k?.warn?.("AUTO",`judge failed (dropped): ${a?.message||a}`)}},sampleRate:o}}},19978:(a,b,c)=>{c.d(b,{C5:()=>j,Hr:()=>i,PO:()=>e,Y3:()=>h,s1:()=>g,vX:()=>f});let d=new Map;async function e(a,b,c=15e3){let f=d.get(a);if(f&&f.expiresAt>Date.now())return f.value;let g=await b();return d.set(a,{value:g,expiresAt:Date.now()+c}),g}function f(a){let b=d.get(a);if(b&&b.expiresAt>Date.now())return b.value;b&&d.delete(a)}function g(a,b,c=15e3){d.set(a,{value:b,expiresAt:Date.now()+c})}function h(a){if(!a)return void d.clear();for(let b of d.keys())b.startsWith(a)&&d.delete(b)}function i(a,b){return`stats:${a}:${b}`}function j(a){return`learning:${a}`}},23928:(a,b,c)=>{c.d(b,{A4:()=>A,AF:()=>t,Bk:()=>p,EN:()=>n,Gz:()=>s,Jl:()=>E,Kn:()=>v,LH:()=>B,Mc:()=>r,T6:()=>C,YJ:()=>u,g2:()=>w,gp:()=>z,lg:()=>x,of:()=>D,sN:()=>y,sO:()=>o,vh:()=>f});var d=c(55511);let e="─ How is Switchboard routing?",f=`
11
+ JSON only: {"score":<0-10>,"confident":<true|false>}`}]),w={model:p,messages:v,stream:!1,temperature:0,max_tokens:64},x=await (n=a=>d(w,p,{sourceFormatOverride:"openai",bypassNativePassthrough:!0,bypassPromptFilters:!0,autoDepth:2,signal:a}),s=new AbortController,new Promise((a,b)=>{let c=setTimeout(()=>{try{s.abort()}catch{}b(Error("judge_timeout"))},3e4);Promise.resolve().then(()=>n(s.signal)).then(b=>{clearTimeout(c),a(b)},a=>{clearTimeout(c),b(a)})})),y=await g(x);if(y?.httpError)return void k?.warn?.("AUTO",`judge HTTP ${y.status} — drop`);let z=function(a){let b;if("string"!=typeof a||!a.trim())return null;let c=a.trim(),d=c.match(/```(?:json)?\s*([\s\S]*?)```/i);d&&(c=d[1].trim());let e=c.indexOf("{"),f=c.lastIndexOf("}");if(e<0||f<=e)return null;try{b=JSON.parse(c.slice(e,f+1))}catch{return null}if(!b||"object"!=typeof b||!0!==b.confident)return null;let g=Number(b.score);return!Number.isFinite(g)||g<0||g>10?null:{score:g,confident:!0}}(y?.text||"");if(!z)return;j(c,u,z.score<=3);let A=(0,f.Uq)(z.score);if(k?.info?.("AUTO",`judge score=${z.score} rating=${A} cluster=${u} req=${t}`),0!==A){let a=await i(t,z.score);a&&0===a.updated&&(await new Promise(a=>setTimeout(a,1500)),await i(t,z.score))}}catch(a){k?.warn?.("AUTO",`judge failed (dropped): ${a?.message||a}`)}},sampleRate:o}}},19978:(a,b,c)=>{c.d(b,{C5:()=>m,Hr:()=>l,PO:()=>h,Y3:()=>k,s1:()=>j,vX:()=>i});let d=new Map,e=null;function f(a=Date.now()){for(let[b,c]of d)c.expiresAt<=a&&d.delete(b);for(;d.size>500;){let a=d.keys().next().value;if(void 0===a)break;d.delete(a)}}function g(){e||(e=setInterval(()=>f(),3e4),e.unref?.())}async function h(a,b,c=15e3){g();let e=d.get(a);if(e&&e.expiresAt>Date.now())return e.value;e&&d.delete(a);let i=await b();return d.set(a,{value:i,expiresAt:Date.now()+c}),f(),i}function i(a){let b=d.get(a);if(b&&b.expiresAt>Date.now())return b.value;b&&d.delete(a)}function j(a,b,c=15e3){g(),d.set(a,{value:b,expiresAt:Date.now()+c}),f()}function k(a){if(!a)return void d.clear();for(let b of d.keys())b.startsWith(a)&&d.delete(b)}function l(a,b){return`stats:${a}:${b}`}function m(a){return`learning:${a}`}},23928:(a,b,c)=>{c.d(b,{A4:()=>A,AF:()=>t,Bk:()=>p,EN:()=>n,Gz:()=>s,Jl:()=>E,Kn:()=>v,LH:()=>B,Mc:()=>r,T6:()=>C,YJ:()=>u,g2:()=>w,gp:()=>z,lg:()=>x,of:()=>D,sN:()=>y,sO:()=>o,vh:()=>f});var d=c(55511);let e="─ How is Switchboard routing?",f=`
12
12
 
13
13
  ${e} Reply 1: bad \xb7 2: fine \xb7 3: good (or just ignore this)`,g=global.__feedbackAsk??={byKey:Object.create(null),pending:[]};function h(a,b=""){try{return String(a??b)}catch{return b}}function i(a=Date.now()){let b=Number(a);return Number.isFinite(b)?b:Date.now()}function j(a){return h(a,"anon")||"anon"}function k(a){return h(a,"")||"unknown"}function l(a){g.byKey&&"object"==typeof g.byKey||(g.byKey=Object.create(null));let b=j(a),c=g.byKey[b];if(c&&"object"==typeof c)return c;let d={tokens:3,interactions:0,lastRefillAt:0,ignoredStreak:0,multiplier:1,cooldownUntil:0,asked:Object.create(null)};return g.byKey[b]=d,d}function m(a=Date.now()){Array.isArray(g.pending)||(g.pending=[]);let b=[];for(let c of g.pending){let d=Number(c?.ts);if(Number.isFinite(d)&&d+18e5<a){x(c?.apiKeyHash);continue}b.push(c)}g.pending=b}function n(a){try{let b=null==a||""===a?"anon":h(a,"anon");return(0,d.createHash)("sha256").update(b||"anon").digest("hex")}catch{return(0,d.createHash)("sha256").update("anon").digest("hex")}}function o(a,b){try{let c=h(a,""),e=h(b,"anon");return(0,d.createHash)("sha256").update(`${e}
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}
@@ -46,4 +46,4 @@ JSON only:
46
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,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{}}}};
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(59353),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{}}}};
@@ -1,9 +1,9 @@
1
- "use strict";exports.id=1937,exports.ids=[1937],exports.modules={8298:(a,b,c)=>{c.d(b,{KC:()=>j,RB:()=>q,Ty:()=>m,_G:()=>h,bg:()=>g,cT:()=>l,pM:()=>p,pr:()=>r,qk:()=>n,rf:()=>f,t6:()=>k,xG:()=>o});let d="https://openapi.qoder.sh",e="https://api3.qoder.sh",f="https://qoder.com/device/selectAccounts",g=`${d}/api/v1/deviceToken/poll`,h=`${d}/api/v1/userinfo`,i=`${e}/algo/api/v2/service/pro/sse/agent_chat_generation?FetchKeys=llm_model_result&AgentId=agent_common`,j=`${i}&Encode=1`,k=`${e}/algo/api/v2/model/list`,l="1.0.0",m="5",n="disagree",o="v2",p="x86_64_windows",q="5",r=`-----BEGIN PUBLIC KEY-----
1
+ "use strict";exports.id=1937,exports.ids=[1937],exports.modules={7866:(a,b,c)=>{c.d(b,{w$:()=>e});var d=c(39211);function e(a,b={}){let c,f=(c=function(a){if("string"!=typeof a)return"";let b=a.trim();return b?b.startsWith("workos:")?b:`workos:${b}`:""}(a))?`Bearer ${c}`:"",{headers:g}=(0,d.fX)({...f?{Authorization:f}:{},...b},{identity:"cline"});return g}},8298:(a,b,c)=>{c.d(b,{KC:()=>j,RB:()=>q,Ty:()=>m,_G:()=>h,bg:()=>g,cT:()=>l,pM:()=>p,pr:()=>r,qk:()=>n,rf:()=>f,t6:()=>k,xG:()=>o});let d="https://openapi.qoder.sh",e="https://api3.qoder.sh",f="https://qoder.com/device/selectAccounts",g=`${d}/api/v1/deviceToken/poll`,h=`${d}/api/v1/userinfo`,i=`${e}/algo/api/v2/service/pro/sse/agent_chat_generation?FetchKeys=llm_model_result&AgentId=agent_common`,j=`${i}&Encode=1`,k=`${e}/algo/api/v2/model/list`,l="1.0.0",m="5",n="disagree",o="v2",p="x86_64_windows",q="5",r=`-----BEGIN PUBLIC KEY-----
2
2
  MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDA8iMH5c02LilrsERw9t6Pv5Nc
3
3
  4k6Pz1EaDicBMpdpxKduSZu5OANqUq8er4GM95omAGIOPOh+Nx0spthYA2BqGz+l
4
4
  6HRkPJ7S236FZz73In/KVuLnwI8JJ2CbuJap8kvheCCZpmAWpb/cPx/3Vr/J6I17
5
5
  XcW+ML9FoCI6AOvOzwIDAQAB
6
- -----END PUBLIC KEY-----`},9155:(a,b,c)=>{c.d(b,{EV:()=>m,X5:()=>l});var d=c(55511),e=c(46052),f=c(45350),g=c(99393),h=c(8298);let i=new Map,j=new Map;async function k(a,b,c=null){let d,i,j={userId:(i=a?.providerSpecificData||{}).userId,authToken:a.accessToken,name:a.displayName||"",email:a.email||"",machineId:i.machineId||""};if(!j.userId||!j.authToken)return null;let l={Accept:"application/json","Accept-Encoding":"identity",...(0,g.d)(Buffer.alloc(0),h.t6,j)},m=new AbortController,n=null,o=null;try{n=setTimeout(()=>m.abort("timeout"),15e3),b&&"function"==typeof b.addEventListener&&(b.aborted?m.abort(b.reason):(o=()=>m.abort(b.reason),b.addEventListener("abort",o))),d=await (0,e.Fm)(h.t6,{method:"GET",headers:l,signal:m.signal,identity:f.xq.qoder.identity,provider:"qoder",format:f.xq.qoder.format},c)}finally{n&&clearTimeout(n),b&&o&&b.removeEventListener("abort",o)}if(!d.ok)return null;let p=await d.json().catch(()=>null);if(!p||!Array.isArray(p.chat))return null;let q=[],r=new Map;for(let a of p.chat){if(!a||"object"!=typeof a)continue;let b=a.key;if(!b||(r.set(b,a),!1===a.enable))continue;let c=a.display_name||b,d=Number(a.max_input_tokens)||131072;q.push({id:b,name:`${c}`,contextLength:d,isVL:!!a.is_vl,isReasoning:!!a.is_reasoning,maxOutputTokens:Number(a.max_output_tokens)||0,description:a.description||""})}return{models:q,rawConfigs:r}}async function l(a,b,c={}){let d=await m(a,c);if(!d)return null;let e=d.rawConfigs.get(b);return e?{...e,key:b}:null}async function m(a,b={}){let c;if(!a?.accessToken||!(a.providerSpecificData||{}).userId)return null;let e=(c=(a?.providerSpecificData||{}).userId||a?.refreshToken||a?.accessToken||"anonymous",(0,d.createHash)("sha256").update(`qoder:${c}`).digest("hex")),f=Date.now();if(!b.forceRefresh){let a=i.get(e);if(a&&a.expiresAt>f)return a}let g=j.get(e);if(g&&!b.forceRefresh)return g;let h=(async()=>{let c=await k(a,b.signal,b.proxyOptions);if(!c)return null;let d={expiresAt:Date.now()+36e5,models:c.models,rawConfigs:c.rawConfigs,fetched:!0};return i.set(e,d),d})();j.set(e,h);try{return await h}finally{j.get(e)===h&&j.delete(e)}}},33026:(a,b,c)=>{c.d(b,{CP:()=>p,Y8:()=>o,yI:()=>m});var d=c(47293),e=c(74075);let f="1"===process.env.CURSOR_PROTOBUF_DEBUG,g=(a,...b)=>f&&console.log(`[PROTOBUF:${a}]`,...b);new TextDecoder;let h="1.1.3",i=new Set([1,2,3,9,10,11,27,1,25]);function j(a){let b=[];for(;a>=128;)b.push(127&a|128),a>>>=7;return b.push(127&a),new Uint8Array(b)}function k(a,b,c){let d=j(a<<3|b);if(0===b)return l(d,j(c));if(2===b){let a="string"==typeof c?new TextEncoder().encode(c):c instanceof Uint8Array?c:Buffer.isBuffer(c)?new Uint8Array(c):new Uint8Array(0);return l(d,j(a.length),a)}return new Uint8Array(0)}function l(...a){let b=new Uint8Array(a.reduce((a,b)=>a+b.length,0)),c=0;for(let d of a)b.set(d,c),c+=d.length;return b}function m(a,b,c=[],f=null,h=!1){g("BODY",`Generating: ${a.length} msgs, model=${b}, tools=${c.length}, reasoning=${f||"none"}, forceAgentMode=${h}`);let i=function(a,b,c=[],e=null,f=!1){return k(1,2,function(a,b,c=[],e=null,f=!1){let h,i=c?.length>0,m=i||f,n=[],o=[],p=[];for(let b=0;b<a.length;b++){let c=a[b],d=Array.isArray(c?.tool_calls)&&c.tool_calls.length>0,e=Array.isArray(c?.tool_results)&&c.tool_results.length>0;if(c?.role==="assistant"&&d&&e){g("ENCODE",`normalizing mixed assistant tool payload at msg[${b}] (calls=${c.tool_calls.length}, results=${c.tool_results.length})`),p.push({...c,tool_results:[]});let d=a[b+1],e=d?.role==="assistant"&&Array.isArray(d?.tool_results)&&d.tool_results.length>0,f=new Set(c.tool_results.map(a=>a?.tool_call_id).filter(a=>"string"==typeof a)),h=new Set((d?.tool_results||[]).map(a=>a?.tool_call_id).filter(a=>"string"==typeof a)),i=f.size>0&&f.size===h.size;if(i){for(let a of f)if(!h.has(a)){i=!1;break}}e&&i||p.push({role:"assistant",content:"",tool_results:c.tool_results});continue}p.push(c)}for(let a=0;a<p.length;a++){let b=p[a],c="user"===b.role?1:2,e=(0,d.A)(),f=a===p.length-1;n.push({content:b.content,role:c,messageId:e,isLast:f,hasTools:i,toolResults:b.tool_results||[]}),o.push({messageId:e,role:c})}let q=0;return"medium"===e?q=1:"high"===e&&(q=2),l(...n.map(a=>k(1,2,function(a,b,c,d=!1,e=!1,f=[],g=null){let h=f.length>0;return l(k(1,2,a),k(2,0,b),k(13,2,c),...g?[k(32,2,g)]:[],...h?f.map(a=>k(18,2,function(a){var b;let c,d,e=function(a){let b="string"==typeof a&&a.length>0?a:"tool";if(b.startsWith("mcp__")){let a=b.slice(5),c=a.indexOf("__");if(c>=0){let b=a.slice(0,c)||"custom",d=a.slice(c+2)||"tool";return`mcp_${b}_${d}`}return`mcp_custom_${a||"tool"}`}return b.startsWith("mcp_")?b:`mcp_custom_${b}`}(a.tool_name||a.name||""),f=a.raw_args||"{}",g=a.result_content||a.result||"",{toolCallId:h,modelCallId:i}=(b=a.tool_call_id||"",c="\nmc_",(d=b.indexOf(c))>=0?{toolCallId:b.slice(0,d),modelCallId:b.slice(d+c.length)}:{toolCallId:b,modelCallId:null}),j=a.tool_index||a.index||1,{serverName:m,selectedTool:n}=function(a){if("string"!=typeof a||!a.startsWith("mcp_"))return{serverName:"custom",selectedTool:a||"tool"};let b=a.slice(4),c=b.indexOf("_");return c<0?{serverName:"custom",selectedTool:b||"tool"}:{serverName:b.slice(0,c)||"custom",selectedTool:b.slice(c+1)||"tool"}}(e);return l(k(1,2,h),k(2,2,e),k(3,0,j>0?j:1),...i?[k(12,2,i)]:[],k(5,2,f),k(8,2,function(a,b,c,d,e=1){return l(k(1,0,19),k(28,2,l(k(1,2,c),k(2,2,d))),k(35,2,a),...b?[k(48,2,b)]:[],k(49,0,e>0?e:1))}(h,i,n,g,j)),k(11,2,function(a,b,c,d,e,f,g=1){let h;return l(k(1,0,19),k(27,2,(h=l(k(1,2,c),k(3,2,e),k(4,2,d)),k(1,2,h))),k(3,2,a),k(9,2,b),k(10,2,e),k(48,0,g>0?g:1),...f?[k(49,2,f)]:[])}(h,e,n,m,f,i,j)))}(a))):[],k(29,0,+!!e),k(47,0,e?2:1),...d&&e?[k(51,2,j(1))]:[])}(a.content,a.role,a.messageId,a.isLast,a.hasTools,a.toolResults))),k(2,0,1),k(3,2,new Uint8Array(0)),k(4,0,1),k(5,2,l(k(1,2,b),k(4,2,new Uint8Array(0)))),k(8,2,""),k(13,0,1),k(15,2,(h=l(k(1,2,new Uint8Array(0)),k(2,2,new Uint8Array(0))),l(k(1,2,"cursor\\aisettings"),k(3,2,new Uint8Array(0)),k(6,2,h),k(8,0,1),k(9,0,1)))),k(19,0,1),k(23,2,(0,d.A)()),k(26,2,l(k(1,2,process.platform||"linux"),k(2,2,process.arch||"x64"),k(3,2,process.version||"v20.0.0"),k(4,2,process.cwd?.()||"/"),k(5,2,new Date().toISOString()))),k(27,0,+!!m),...m?[k(29,2,j(1))]:[],...o.map(a=>k(30,2,function(a,b,c=null){return l(k(1,2,a),...c?[k(2,2,c)]:[],k(3,0,b))}(a.messageId,a.role))),...c?.length>0?c.map(a=>{let b,c,d;return k(34,2,(b=a.function?.name||a.name||"",c=a.function?.description||a.description||"",d=a.function?.parameters||a.input_schema||{},l(...b?[k(1,2,b)]:[],...c?[k(2,2,c)]:[],...Object.keys(d).length>0?[k(3,2,JSON.stringify(d))]:[],k(4,2,"custom"))))}):[],k(35,0,0),k(38,0,0),k(46,0,m?2:1),k(47,2,""),k(48,0,+!m),k(49,0,q),k(51,0,0),k(53,0,1),k(54,2,m?"Agent":"Ask"))}(a,b,c,e,f))}(a,b,c,f,h),n=function(a,b=!1){let c=a,d=0;b&&(c=new Uint8Array(e.gzipSync(Buffer.from(a))),d=1);let f=new Uint8Array(5+c.length);return f[0]=d,f[1]=c.length>>24&255,f[2]=c.length>>16&255,f[3]=c.length>>8&255,f[4]=255&c.length,f.set(c,5),f}(i,!1);return g("BODY",`Protobuf=${i.length}B, Framed=${n.length}B`),n}function n(a,b){let c=0,d=0,e=b;for(;e<a.length;){let b=a[e];if(c|=(127&b)<<d,e++,!(128&b))break;d+=7}return[c,e]}function o(a){let b=new Map,c=0;for(;c<a.length;){let[d,e,f,g]=function(a,b){let c;if(b>=a.length)return[null,null,null,b];let[d,e]=n(a,b),f=7&d,g=e;if(0===f)[c,g]=n(a,g);else if(2===f){let[b,d]=n(a,g);c=a.slice(d,d+b),g=d+b}else 1===f?(c=a.slice(g,g+8),g+=8):5===f?(c=a.slice(g,g+4),g+=4):c=null;return[d>>3,f,c,g]}(a,c);if(null===d)break;b.has(d)||b.set(d,[]),b.get(d).push({wireType:e,value:f}),c=g}return b}function p(a){try{let b=o(a);for(let a of b.keys())i.has(a)||g("SCHEMA",`Unknown response field #${a} detected. Schema v${h} may be outdated.`);if(b.has(1)){let a=function(a){let b=o(a),c="",d="",e="",f=!1;if(b.has(3)&&(c=new TextDecoder().decode(b.get(3)[0].value).split("\n")[0]),b.has(9)&&(d=new TextDecoder().decode(b.get(9)[0].value)),b.has(11)&&(f=0!==b.get(11)[0].value),b.has(27))try{let a=o(b.get(27)[0].value);if(a.has(1)){let b=o(a.get(1)[0].value);b.has(1)&&(d=new TextDecoder().decode(b.get(1)[0].value)),b.has(3)&&(e=new TextDecoder().decode(b.get(3)[0].value))}}catch(a){g("EXTRACT",`MCP parse error: ${a.message}`)}return(!e&&b.has(10)&&(e=new TextDecoder().decode(b.get(10)[0].value)),c&&d)?{id:c,type:"function",function:{name:d,arguments:e||"{}"},isLast:f}:null}(b.get(1)[0].value);if(a)return g("EXTRACT",`Tool call: ${a.function.name}`),{text:null,error:null,toolCall:a,thinking:null}}if(b.has(2)){let{text:a,thinking:c}=function(a){let b=o(a),c=null,d=null;if(b.has(1)&&(c=new TextDecoder().decode(b.get(1)[0].value)),b.has(25))try{let a=o(b.get(25)[0].value);a.has(1)&&(d=new TextDecoder().decode(a.get(1)[0].value))}catch(a){g("EXTRACT",`Thinking parse error: ${a.message}`)}return{text:c,thinking:d}}(b.get(2)[0].value);if(a||c)return{text:a,error:null,toolCall:null,thinking:c}}return{text:null,error:null,toolCall:null,thinking:null}}catch(b){return g("EXTRACT",`Decode failed (schema v${h}): ${b.message}`),{text:null,error:null,toolCall:null,thinking:null,raw:Buffer.from(a).toString("base64"),decodeError:b.message}}}},85485:(a,b,c)=>{c.d(b,{w$:()=>e});var d=c(39211);function e(a,b={}){let c,f=(c=function(a){if("string"!=typeof a)return"";let b=a.trim();return b?b.startsWith("workos:")?b:`workos:${b}`:""}(a))?`Bearer ${c}`:"",{headers:g}=(0,d.fX)({...f?{Authorization:f}:{},...b},{identity:"cline"});return g}},86925:(a,b,c)=>{c.d(b,{av:()=>o,gK:()=>m});var d=c(55511),e=c(46052);let f="https://llm.kimchi.dev",g=new Set([429,500,502,503,504]),h=new Map,i=new Map;function j(a){return(("string"==typeof a?a.trim():"")||f).replace(/\/+$/,"")}function k(a){return a?.accessToken||a?.apiKey||a?.providerSpecificData?.apiKey||null}function l(a){if(!a||"object"!=typeof a)return null;let b=a.slug||a.id||a.model||a.name;if("string"!=typeof b||""===b.trim())return null;let c=Array.isArray(a.input_modalities)?a.input_modalities.filter(a=>"text"===a||"image"===a):[],d=a.limits&&"object"==typeof a.limits?a.limits:{},e=Number(d.context_window||a.contextLength||a.context_length)||void 0,f=Number(d.max_output_tokens||a.maxOutputTokens||a.max_output_tokens)||void 0,g="string"==typeof a.provider?a.provider:"",h=!0===a.reasoning,i=Array.isArray(c)&&c.includes("image")?"imageToText":"llm",j={...a,id:b.trim(),name:String(a.display_name||a.displayName||a.name||b).trim(),provider:g,upstreamProvider:g,reasoning:h,inputModalities:c,kind:i,type:i,capabilities:{vision:c.includes("image"),reasoning:h,...e?{contextWindow:e}:{},...f?{maxOutput:f}:{},...g?{upstreamProvider:g}:{}},...e?{contextLength:e}:{},...f?{maxOutputTokens:f}:{}};return"anthropic"===g&&(j.compat={supportsReasoningEffort:!1,cacheControlFormat:"anthropic"}),j}function m(a){if("string"!=typeof a||""===a.trim())return null;let b=a.includes("/")?a.split("/").pop():a;return i.get(b)||i.get(b.toLowerCase())||null}async function n(a,b,c={}){let d=`${j(b)}/v1/models/metadata?include_in_cli=true`,f=new AbortController,h=setTimeout(()=>f.abort(Error("Kimchi models fetch timeout")),2e4),i=c.signal?AbortSignal.any([c.signal,f.signal]):f.signal;try{let b=await (0,e.Fm)(d,{method:"GET",headers:{Accept:"application/json",Authorization:`Bearer ${a}`,"User-Agent":"kimchi/0.1.40"},cache:"no-store",signal:i},c.proxyOptions||null);if(!b.ok){let a=Error(`Kimchi models ${b.status}: ${b.statusText}`);throw a.status=b.status,a.retryable=g.has(b.status),a}let f=await b.json();return Array.isArray(f?.models)?f.models:[]}finally{clearTimeout(h)}}async function o(a,b={}){let c,e,g,m=k(a);if(!m)return null;let p=a?.providerSpecificData?.kimchiEndpoint||b.endpoint||f,q=(g=(e=a?.providerSpecificData||{}).userId||e.username||a?.refreshToken||k(a)||"anonymous",(0,d.createHash)("sha256").update(`kimchi:${j(p)}:${g}`).digest("hex")),r=Date.now();if(!b.forceRefresh){let a=h.get(q);if(a&&a.expiresAt>r)return a}try{c=await n(m,p,b)}catch(a){return b.log?.warn?.("KIMCHI_MODELS",a.message),null}let s=c.map(l).filter(Boolean);if(0===s.length)return null;for(let a of s||[])a?.id&&(i.set(a.id,a),i.set(a.id.toLowerCase(),a));let t={expiresAt:Date.now()+3e5,models:s,rawModels:c};return h.set(q,t),t}},99393:(a,b,c)=>{c.d(b,{d:()=>h});var d=c(55511),e=c(47293),f=c(8298);function g(a){return d.createHash("md5").update(a).digest("hex")}function h(a,b,c){var h;let i,j;if(!c?.userId)throw Error("cosy: user id is empty");if(!c?.authToken)throw Error("cosy: auth token is empty");let k=Buffer.isBuffer(a)?a:"string"==typeof a?Buffer.from(a,"latin1"):Buffer.from(a||[]),{cosyKey:l,info:m}=(h={uid:c.userId,security_oauth_token:c.authToken,name:c.name||"",aid:"",email:c.email||""},i=(0,e.A)().slice(0,16),j=function(a,b){var c;let e,f,g=Buffer.from(b,"utf8");if(16!==g.length)throw Error(`aes key must be 16 bytes, got ${g.length}`);let h=g.subarray(0,16),i=d.createCipheriv("aes-128-cbc",g,h);i.setAutoPadding(!1);let j=(e=16-(c=Buffer.from(a,"utf8")).length%16,f=Buffer.alloc(c.length+e,e),c.copy(f,0),f);return Buffer.concat([i.update(j),i.final()]).toString("base64")}(JSON.stringify(h),i),{cosyKey:d.publicEncrypt({key:f.pr,padding:d.constants.RSA_PKCS1_PADDING},Buffer.from(i,"utf8")).toString("base64"),info:j}),n=String(Math.floor(Date.now()/1e3)),o=JSON.stringify({version:"v1",requestId:(0,e.A)(),info:m,cosyVersion:f.cT,ideVersion:""}),p=Buffer.from(o,"utf8").toString("base64"),q=function(a){let b;try{b=new URL(a).pathname||""}catch{return""}return b.startsWith("/algo")?b.slice(5):b}(b),r=`${p}
6
+ -----END PUBLIC KEY-----`},9155:(a,b,c)=>{c.d(b,{EV:()=>m,X5:()=>l});var d=c(55511),e=c(46052),f=c(45350),g=c(99393),h=c(8298);let i=new Map,j=new Map;async function k(a,b,c=null){let d,i,j={userId:(i=a?.providerSpecificData||{}).userId,authToken:a.accessToken,name:a.displayName||"",email:a.email||"",machineId:i.machineId||""};if(!j.userId||!j.authToken)return null;let l={Accept:"application/json","Accept-Encoding":"identity",...(0,g.d)(Buffer.alloc(0),h.t6,j)},m=new AbortController,n=null,o=null;try{n=setTimeout(()=>m.abort("timeout"),15e3),b&&"function"==typeof b.addEventListener&&(b.aborted?m.abort(b.reason):(o=()=>m.abort(b.reason),b.addEventListener("abort",o))),d=await (0,e.Fm)(h.t6,{method:"GET",headers:l,signal:m.signal,identity:f.xq.qoder.identity,provider:"qoder",format:f.xq.qoder.format},c)}finally{n&&clearTimeout(n),b&&o&&b.removeEventListener("abort",o)}if(!d.ok)return null;let p=await d.json().catch(()=>null);if(!p||!Array.isArray(p.chat))return null;let q=[],r=new Map;for(let a of p.chat){if(!a||"object"!=typeof a)continue;let b=a.key;if(!b||(r.set(b,a),!1===a.enable))continue;let c=a.display_name||b,d=Number(a.max_input_tokens)||131072;q.push({id:b,name:`${c}`,contextLength:d,isVL:!!a.is_vl,isReasoning:!!a.is_reasoning,maxOutputTokens:Number(a.max_output_tokens)||0,description:a.description||""})}return{models:q,rawConfigs:r}}async function l(a,b,c={}){let d=await m(a,c);if(!d)return null;let e=d.rawConfigs.get(b);return e?{...e,key:b}:null}async function m(a,b={}){let c;if(!a?.accessToken||!(a.providerSpecificData||{}).userId)return null;let e=(c=(a?.providerSpecificData||{}).userId||a?.refreshToken||a?.accessToken||"anonymous",(0,d.createHash)("sha256").update(`qoder:${c}`).digest("hex")),f=Date.now();if(!b.forceRefresh){let a=i.get(e);if(a&&a.expiresAt>f)return a}let g=j.get(e);if(g&&!b.forceRefresh)return g;let h=(async()=>{let c=await k(a,b.signal,b.proxyOptions);if(!c)return null;let d={expiresAt:Date.now()+36e5,models:c.models,rawConfigs:c.rawConfigs,fetched:!0};return i.set(e,d),d})();j.set(e,h);try{return await h}finally{j.get(e)===h&&j.delete(e)}}},33026:(a,b,c)=>{c.d(b,{CP:()=>p,Y8:()=>o,yI:()=>m});var d=c(47293),e=c(74075);let f="1"===process.env.CURSOR_PROTOBUF_DEBUG,g=(a,...b)=>f&&console.log(`[PROTOBUF:${a}]`,...b);new TextDecoder;let h="1.1.3",i=new Set([1,2,3,9,10,11,27,1,25]);function j(a){let b=[];for(;a>=128;)b.push(127&a|128),a>>>=7;return b.push(127&a),new Uint8Array(b)}function k(a,b,c){let d=j(a<<3|b);if(0===b)return l(d,j(c));if(2===b){let a="string"==typeof c?new TextEncoder().encode(c):c instanceof Uint8Array?c:Buffer.isBuffer(c)?new Uint8Array(c):new Uint8Array(0);return l(d,j(a.length),a)}return new Uint8Array(0)}function l(...a){let b=new Uint8Array(a.reduce((a,b)=>a+b.length,0)),c=0;for(let d of a)b.set(d,c),c+=d.length;return b}function m(a,b,c=[],f=null,h=!1){g("BODY",`Generating: ${a.length} msgs, model=${b}, tools=${c.length}, reasoning=${f||"none"}, forceAgentMode=${h}`);let i=function(a,b,c=[],e=null,f=!1){return k(1,2,function(a,b,c=[],e=null,f=!1){let h,i=c?.length>0,m=i||f,n=[],o=[],p=[];for(let b=0;b<a.length;b++){let c=a[b],d=Array.isArray(c?.tool_calls)&&c.tool_calls.length>0,e=Array.isArray(c?.tool_results)&&c.tool_results.length>0;if(c?.role==="assistant"&&d&&e){g("ENCODE",`normalizing mixed assistant tool payload at msg[${b}] (calls=${c.tool_calls.length}, results=${c.tool_results.length})`),p.push({...c,tool_results:[]});let d=a[b+1],e=d?.role==="assistant"&&Array.isArray(d?.tool_results)&&d.tool_results.length>0,f=new Set(c.tool_results.map(a=>a?.tool_call_id).filter(a=>"string"==typeof a)),h=new Set((d?.tool_results||[]).map(a=>a?.tool_call_id).filter(a=>"string"==typeof a)),i=f.size>0&&f.size===h.size;if(i){for(let a of f)if(!h.has(a)){i=!1;break}}e&&i||p.push({role:"assistant",content:"",tool_results:c.tool_results});continue}p.push(c)}for(let a=0;a<p.length;a++){let b=p[a],c="user"===b.role?1:2,e=(0,d.A)(),f=a===p.length-1;n.push({content:b.content,role:c,messageId:e,isLast:f,hasTools:i,toolResults:b.tool_results||[]}),o.push({messageId:e,role:c})}let q=0;return"medium"===e?q=1:"high"===e&&(q=2),l(...n.map(a=>k(1,2,function(a,b,c,d=!1,e=!1,f=[],g=null){let h=f.length>0;return l(k(1,2,a),k(2,0,b),k(13,2,c),...g?[k(32,2,g)]:[],...h?f.map(a=>k(18,2,function(a){var b;let c,d,e=function(a){let b="string"==typeof a&&a.length>0?a:"tool";if(b.startsWith("mcp__")){let a=b.slice(5),c=a.indexOf("__");if(c>=0){let b=a.slice(0,c)||"custom",d=a.slice(c+2)||"tool";return`mcp_${b}_${d}`}return`mcp_custom_${a||"tool"}`}return b.startsWith("mcp_")?b:`mcp_custom_${b}`}(a.tool_name||a.name||""),f=a.raw_args||"{}",g=a.result_content||a.result||"",{toolCallId:h,modelCallId:i}=(b=a.tool_call_id||"",c="\nmc_",(d=b.indexOf(c))>=0?{toolCallId:b.slice(0,d),modelCallId:b.slice(d+c.length)}:{toolCallId:b,modelCallId:null}),j=a.tool_index||a.index||1,{serverName:m,selectedTool:n}=function(a){if("string"!=typeof a||!a.startsWith("mcp_"))return{serverName:"custom",selectedTool:a||"tool"};let b=a.slice(4),c=b.indexOf("_");return c<0?{serverName:"custom",selectedTool:b||"tool"}:{serverName:b.slice(0,c)||"custom",selectedTool:b.slice(c+1)||"tool"}}(e);return l(k(1,2,h),k(2,2,e),k(3,0,j>0?j:1),...i?[k(12,2,i)]:[],k(5,2,f),k(8,2,function(a,b,c,d,e=1){return l(k(1,0,19),k(28,2,l(k(1,2,c),k(2,2,d))),k(35,2,a),...b?[k(48,2,b)]:[],k(49,0,e>0?e:1))}(h,i,n,g,j)),k(11,2,function(a,b,c,d,e,f,g=1){let h;return l(k(1,0,19),k(27,2,(h=l(k(1,2,c),k(3,2,e),k(4,2,d)),k(1,2,h))),k(3,2,a),k(9,2,b),k(10,2,e),k(48,0,g>0?g:1),...f?[k(49,2,f)]:[])}(h,e,n,m,f,i,j)))}(a))):[],k(29,0,+!!e),k(47,0,e?2:1),...d&&e?[k(51,2,j(1))]:[])}(a.content,a.role,a.messageId,a.isLast,a.hasTools,a.toolResults))),k(2,0,1),k(3,2,new Uint8Array(0)),k(4,0,1),k(5,2,l(k(1,2,b),k(4,2,new Uint8Array(0)))),k(8,2,""),k(13,0,1),k(15,2,(h=l(k(1,2,new Uint8Array(0)),k(2,2,new Uint8Array(0))),l(k(1,2,"cursor\\aisettings"),k(3,2,new Uint8Array(0)),k(6,2,h),k(8,0,1),k(9,0,1)))),k(19,0,1),k(23,2,(0,d.A)()),k(26,2,l(k(1,2,process.platform||"linux"),k(2,2,process.arch||"x64"),k(3,2,process.version||"v20.0.0"),k(4,2,process.cwd?.()||"/"),k(5,2,new Date().toISOString()))),k(27,0,+!!m),...m?[k(29,2,j(1))]:[],...o.map(a=>k(30,2,function(a,b,c=null){return l(k(1,2,a),...c?[k(2,2,c)]:[],k(3,0,b))}(a.messageId,a.role))),...c?.length>0?c.map(a=>{let b,c,d;return k(34,2,(b=a.function?.name||a.name||"",c=a.function?.description||a.description||"",d=a.function?.parameters||a.input_schema||{},l(...b?[k(1,2,b)]:[],...c?[k(2,2,c)]:[],...Object.keys(d).length>0?[k(3,2,JSON.stringify(d))]:[],k(4,2,"custom"))))}):[],k(35,0,0),k(38,0,0),k(46,0,m?2:1),k(47,2,""),k(48,0,+!m),k(49,0,q),k(51,0,0),k(53,0,1),k(54,2,m?"Agent":"Ask"))}(a,b,c,e,f))}(a,b,c,f,h),n=function(a,b=!1){let c=a,d=0;b&&(c=new Uint8Array(e.gzipSync(Buffer.from(a))),d=1);let f=new Uint8Array(5+c.length);return f[0]=d,f[1]=c.length>>24&255,f[2]=c.length>>16&255,f[3]=c.length>>8&255,f[4]=255&c.length,f.set(c,5),f}(i,!1);return g("BODY",`Protobuf=${i.length}B, Framed=${n.length}B`),n}function n(a,b){let c=0,d=0,e=b;for(;e<a.length;){let b=a[e];if(c|=(127&b)<<d,e++,!(128&b))break;d+=7}return[c,e]}function o(a){let b=new Map,c=0;for(;c<a.length;){let[d,e,f,g]=function(a,b){let c;if(b>=a.length)return[null,null,null,b];let[d,e]=n(a,b),f=7&d,g=e;if(0===f)[c,g]=n(a,g);else if(2===f){let[b,d]=n(a,g);c=a.slice(d,d+b),g=d+b}else 1===f?(c=a.slice(g,g+8),g+=8):5===f?(c=a.slice(g,g+4),g+=4):c=null;return[d>>3,f,c,g]}(a,c);if(null===d)break;b.has(d)||b.set(d,[]),b.get(d).push({wireType:e,value:f}),c=g}return b}function p(a){try{let b=o(a);for(let a of b.keys())i.has(a)||g("SCHEMA",`Unknown response field #${a} detected. Schema v${h} may be outdated.`);if(b.has(1)){let a=function(a){let b=o(a),c="",d="",e="",f=!1;if(b.has(3)&&(c=new TextDecoder().decode(b.get(3)[0].value).split("\n")[0]),b.has(9)&&(d=new TextDecoder().decode(b.get(9)[0].value)),b.has(11)&&(f=0!==b.get(11)[0].value),b.has(27))try{let a=o(b.get(27)[0].value);if(a.has(1)){let b=o(a.get(1)[0].value);b.has(1)&&(d=new TextDecoder().decode(b.get(1)[0].value)),b.has(3)&&(e=new TextDecoder().decode(b.get(3)[0].value))}}catch(a){g("EXTRACT",`MCP parse error: ${a.message}`)}return(!e&&b.has(10)&&(e=new TextDecoder().decode(b.get(10)[0].value)),c&&d)?{id:c,type:"function",function:{name:d,arguments:e||"{}"},isLast:f}:null}(b.get(1)[0].value);if(a)return g("EXTRACT",`Tool call: ${a.function.name}`),{text:null,error:null,toolCall:a,thinking:null}}if(b.has(2)){let{text:a,thinking:c}=function(a){let b=o(a),c=null,d=null;if(b.has(1)&&(c=new TextDecoder().decode(b.get(1)[0].value)),b.has(25))try{let a=o(b.get(25)[0].value);a.has(1)&&(d=new TextDecoder().decode(a.get(1)[0].value))}catch(a){g("EXTRACT",`Thinking parse error: ${a.message}`)}return{text:c,thinking:d}}(b.get(2)[0].value);if(a||c)return{text:a,error:null,toolCall:null,thinking:c}}return{text:null,error:null,toolCall:null,thinking:null}}catch(b){return g("EXTRACT",`Decode failed (schema v${h}): ${b.message}`),{text:null,error:null,toolCall:null,thinking:null,raw:Buffer.from(a).toString("base64"),decodeError:b.message}}}},86925:(a,b,c)=>{c.d(b,{av:()=>o,gK:()=>m});var d=c(55511),e=c(46052);let f="https://llm.kimchi.dev",g=new Set([429,500,502,503,504]),h=new Map,i=new Map;function j(a){return(("string"==typeof a?a.trim():"")||f).replace(/\/+$/,"")}function k(a){return a?.accessToken||a?.apiKey||a?.providerSpecificData?.apiKey||null}function l(a){if(!a||"object"!=typeof a)return null;let b=a.slug||a.id||a.model||a.name;if("string"!=typeof b||""===b.trim())return null;let c=Array.isArray(a.input_modalities)?a.input_modalities.filter(a=>"text"===a||"image"===a):[],d=a.limits&&"object"==typeof a.limits?a.limits:{},e=Number(d.context_window||a.contextLength||a.context_length)||void 0,f=Number(d.max_output_tokens||a.maxOutputTokens||a.max_output_tokens)||void 0,g="string"==typeof a.provider?a.provider:"",h=!0===a.reasoning,i=Array.isArray(c)&&c.includes("image")?"imageToText":"llm",j={...a,id:b.trim(),name:String(a.display_name||a.displayName||a.name||b).trim(),provider:g,upstreamProvider:g,reasoning:h,inputModalities:c,kind:i,type:i,capabilities:{vision:c.includes("image"),reasoning:h,...e?{contextWindow:e}:{},...f?{maxOutput:f}:{},...g?{upstreamProvider:g}:{}},...e?{contextLength:e}:{},...f?{maxOutputTokens:f}:{}};return"anthropic"===g&&(j.compat={supportsReasoningEffort:!1,cacheControlFormat:"anthropic"}),j}function m(a){if("string"!=typeof a||""===a.trim())return null;let b=a.includes("/")?a.split("/").pop():a;return i.get(b)||i.get(b.toLowerCase())||null}async function n(a,b,c={}){let d=`${j(b)}/v1/models/metadata?include_in_cli=true`,f=new AbortController,h=setTimeout(()=>f.abort(Error("Kimchi models fetch timeout")),2e4),i=c.signal?AbortSignal.any([c.signal,f.signal]):f.signal;try{let b=await (0,e.Fm)(d,{method:"GET",headers:{Accept:"application/json",Authorization:`Bearer ${a}`,"User-Agent":"kimchi/0.1.40"},cache:"no-store",signal:i},c.proxyOptions||null);if(!b.ok){let a=Error(`Kimchi models ${b.status}: ${b.statusText}`);throw a.status=b.status,a.retryable=g.has(b.status),a}let f=await b.json();return Array.isArray(f?.models)?f.models:[]}finally{clearTimeout(h)}}async function o(a,b={}){let c,e,g,m=k(a);if(!m)return null;let p=a?.providerSpecificData?.kimchiEndpoint||b.endpoint||f,q=(g=(e=a?.providerSpecificData||{}).userId||e.username||a?.refreshToken||k(a)||"anonymous",(0,d.createHash)("sha256").update(`kimchi:${j(p)}:${g}`).digest("hex")),r=Date.now();if(!b.forceRefresh){let a=h.get(q);if(a&&a.expiresAt>r)return a}try{c=await n(m,p,b)}catch(a){return b.log?.warn?.("KIMCHI_MODELS",a.message),null}let s=c.map(l).filter(Boolean);if(0===s.length)return null;for(let a of s||[])a?.id&&(i.set(a.id,a),i.set(a.id.toLowerCase(),a));let t={expiresAt:Date.now()+3e5,models:s,rawModels:c};return h.set(q,t),t}},99393:(a,b,c)=>{c.d(b,{d:()=>h});var d=c(55511),e=c(47293),f=c(8298);function g(a){return d.createHash("md5").update(a).digest("hex")}function h(a,b,c){var h;let i,j;if(!c?.userId)throw Error("cosy: user id is empty");if(!c?.authToken)throw Error("cosy: auth token is empty");let k=Buffer.isBuffer(a)?a:"string"==typeof a?Buffer.from(a,"latin1"):Buffer.from(a||[]),{cosyKey:l,info:m}=(h={uid:c.userId,security_oauth_token:c.authToken,name:c.name||"",aid:"",email:c.email||""},i=(0,e.A)().slice(0,16),j=function(a,b){var c;let e,f,g=Buffer.from(b,"utf8");if(16!==g.length)throw Error(`aes key must be 16 bytes, got ${g.length}`);let h=g.subarray(0,16),i=d.createCipheriv("aes-128-cbc",g,h);i.setAutoPadding(!1);let j=(e=16-(c=Buffer.from(a,"utf8")).length%16,f=Buffer.alloc(c.length+e,e),c.copy(f,0),f);return Buffer.concat([i.update(j),i.final()]).toString("base64")}(JSON.stringify(h),i),{cosyKey:d.publicEncrypt({key:f.pr,padding:d.constants.RSA_PKCS1_PADDING},Buffer.from(i,"utf8")).toString("base64"),info:j}),n=String(Math.floor(Date.now()/1e3)),o=JSON.stringify({version:"v1",requestId:(0,e.A)(),info:m,cosyVersion:f.cT,ideVersion:""}),p=Buffer.from(o,"utf8").toString("base64"),q=function(a){let b;try{b=new URL(a).pathname||""}catch{return""}return b.startsWith("/algo")?b.slice(5):b}(b),r=`${p}
7
7
  ${l}
8
8
  ${n}
9
9
  ${k.toString("latin1")}
@@ -1 +1 @@
1
- "use strict";exports.id=1998,exports.ids=[1998],exports.modules={71998:(a,b,c)=>{c.d(b,{Fh:()=>d.Fh,L9:()=>d.L9,Mc:()=>d.Mc,OM:()=>d.OM,P:()=>d.getProviderConnections,Pc:()=>d.Pc,Qu:()=>d.Qu,S8:()=>d.S8,c:()=>d.c,createProviderConnection:()=>d.iE,fK:()=>d.fK,fp:()=>d.fp,fv:()=>d.fv,ho:()=>d.ho,i0:()=>d.i0,o5:()=>d.o5,op:()=>d.op,py:()=>d.py,rj:()=>d.updateProviderConnection,uL:()=>d.uL,uv:()=>d.uv});var d=c(15717)}};
1
+ "use strict";exports.id=1998,exports.ids=[1998],exports.modules={71998:(a,b,c)=>{c.d(b,{Fh:()=>d.Fh,L9:()=>d.L9,Mc:()=>d.Mc,OM:()=>d.OM,P:()=>d.getProviderConnections,Pc:()=>d.Pc,Qu:()=>d.Qu,S8:()=>d.S8,c:()=>d.c,createProviderConnection:()=>d.iE,fK:()=>d.fK,fp:()=>d.fp,fv:()=>d.fv,ho:()=>d.ho,i0:()=>d.i0,o5:()=>d.o5,op:()=>d.op,py:()=>d.py,rj:()=>d.updateProviderConnection,uL:()=>d.uL,uv:()=>d.uv});var d=c(59353)}};
@@ -118,4 +118,4 @@
118
118
  FROM prometheusRoutingRequests WHERE ${b}`,c)||[],e=new Map;for(let a of d){(0,j.SQ)(a);let b=e.get(a.source)||{source:a.source,requests:0,errors:0,fallbacks:0};b.requests+=1,b.errors+=a.isError,b.fallbacks+=a.fallbackUsed,e.set(a.source,b)}for(let b of e.values()){let c=a.get("SELECT source, requests, errors, fallbacks FROM prometheusRoutingTotals WHERE source = ?",[b.source]);(0,j.BO)(c,b.source),(0,j.BO)({source:b.source,requests:c.requests-b.requests,errors:c.errors-b.errors,fallbacks:c.fallbacks-b.fallbacks}),a.run(`UPDATE prometheusRoutingTotals
119
119
  SET requests = requests - ?, errors = errors - ?, fallbacks = fallbacks - ?
120
120
  WHERE source = ?`,[b.requests,b.errors,b.fallbacks,b.source])}a.run(`DELETE FROM prometheusRoutingRequests WHERE ${b}`,c)}(b,"comboName = ?",[a])}),c=b.run("DELETE FROM routing_events WHERE comboName = ?",[a])?.changes??0,e=b.run("DELETE FROM router_learning_versions WHERE comboName = ?",[a])?.changes??0}),n(a),{events:c,versions:e}}async function T(a,b){if(!a||!b||a===b)return;let c=await (0,d.c)();c.transaction(()=>{c.run("UPDATE routing_events SET comboName = ? WHERE comboName = ?",[b,a]),c.run("UPDATE router_learning_versions SET comboName = ? WHERE comboName = ?",[b,a]),(0,j.Bq)(c,()=>{for(let b of c.all(`SELECT requestKey, terminalId, source, isError, fallbackUsed
121
- FROM prometheusRoutingRequests WHERE comboName = ?`,[a])||[])(0,j.SQ)(b);c.run("UPDATE prometheusRoutingRequests SET comboName = ? WHERE comboName = ?",[b,a])})}),n(a),n(b)}},5125:(a,b,c)=>{c.d(b,{BO:()=>m,Bq:()=>k,Kd:()=>l,SQ:()=>n});var d=c(73274);let e=["requests","promptTokens","completionTokens","cachedTokens"],f=["requests","errors","fallbacks"],g=new WeakMap;function h(a,b){let c=g.get(a);if(c||(c=new Map,g.set(a,c)),c.has(b))return c.get(b);let d=!!a.get("SELECT name FROM sqlite_master WHERE type = 'table' AND name = ?",[b]);return c.set(b,d),d}let i=new WeakMap;function j(a){i.delete(a),h(a,"prometheusMetricState")&&a.run("UPDATE prometheusMetricState SET available = 0 WHERE id = 1")}function k(a,b){if(!function(a){let b=Date.now(),c=i.get(a);if(c&&c.expiresAt>b)return c.value;let e=function(a){if(!h(a,"prometheusMetricState"))return!1;let b=a.get("SELECT available FROM prometheusMetricState WHERE id = 1");try{let a=(0,d.T)(b?.available,"metricState.available",{integer:!0});if(![0,1].includes(a))throw Error("invalid Prometheus metric state");return 1===a}catch{return j(a),!1}}(a);return i.set(a,{value:e,expiresAt:b+5e3}),e}(a))return!1;try{return a.transaction(b),!0}catch{return j(a),!1}}function l(a,b=a?.provider||"usage"){if(!a||"string"!=typeof a.provider||!a.provider)throw Error(`invalid Prometheus usage metric: ${b}.provider`);for(let c of e)(0,d.T)(a[c],`${b}.${c}`,{integer:!0});return(0,d.T)(a.cost,`${b}.cost`),a}function m(a,b=a?.source||"routing"){if(!a||"string"!=typeof a.source||!a.source)throw Error(`invalid Prometheus routing metric: ${b}.source`);for(let c of f)(0,d.T)(a[c],`${b}.${c}`,{integer:!0});return a}function n(a,b=a?.requestKey||"routingRequest"){if(!a||"string"!=typeof a.source||!a.source)throw Error(`invalid Prometheus routing request: ${b}.source`);(0,d.T)(a.terminalId,`${b}.terminalId`,{integer:!0});let c=(0,d.T)(a.isError,`${b}.isError`,{integer:!0}),e=(0,d.T)(a.fallbackUsed,`${b}.fallbackUsed`,{integer:!0});if(![0,1].includes(c)||![0,1].includes(e))throw Error(`invalid Prometheus routing request: ${b}`);return a}},5770:(a,b,c)=>{c.d(b,{Qm:()=>d,lc:()=>f,vL:()=>h});let d=2e4,e=new Map;function f(a){let b="string"==typeof a?a:String(a??""),c=b.indexOf("/");return -1===c?b:b.slice(0,c)}function g(a,b,c){let d=a?.[b];return Number.isFinite(d)?d:c}function h(a,b={}){let c=b.strategy??"off";if(!Array.isArray(a)||a.length<2||"off"===c)return a;let i=function(a){let b=new Set,c=[];for(let d of a){let a=f(d);b.has(a)||(b.add(a),c.push(a))}return c}(a),j=function(a,b,c){let d=new Map;if("priority"===b){let b=Array.isArray(c.providerOrder)?c.providerOrder:[];for(let c of a){let a=b.indexOf(c);d.set(c,-1===a?b.length:a)}return d}if("round-robin"===b){let b=c.rotationKey??"__default__",f=e.get(b)||0;e.set(b,f+1);let g=f%a.length;for(let b=0;b<a.length;b++)d.set(a[(g+b)%a.length],b);return d}for(let e of a){let f=c.providerQuota?.[e],h="fastest"===b?g(c.providerLatencyMs,e,1/0):"quota-first"===b?Number.isFinite(f)?100-f:1e6+g(c.providerUsage,e,0):a.indexOf(e);d.set(e,h)}return d}(i,c,b),k=Number.isFinite(b.guardMs)?b.guardMs:d;return a.map((a,c)=>{var d;let e,g=f(a);return{model:a,index:c,rank:j.get(g)??i.length,demoted:(d=b.providerLatencyMs,Number.isFinite(e=d?.[g])&&e>k)}}).sort((a,b)=>a.demoted!==b.demoted?Number(a.demoted)-Number(b.demoted):a.demoted?a.index-b.index:a.rank-b.rank||a.index-b.index).map(({model:a})=>a)}},36366:(a,b,c)=>{c.d(b,{c:()=>l});var d=c(95658),e=c(92792);global._dbAdapter||(global._dbAdapter={instance:null,initPromise:null,logged:!1});let f=global._dbAdapter;async function g(a){if(!process.versions.bun)return null;try{let{createBunSqliteAdapter:a}=await c.e(4739).then(c.bind(c,24739));return await a(d.AL)}catch(b){return a.push(b),console.warn(`[DB] bun:sqlite unavailable: ${b.message}`),null}}async function h(a){if(process.versions.bun)return null;try{let{createBetterSqliteAdapter:a}=await c.e(5258).then(c.bind(c,25258));return a(d.AL)}catch(b){return a.push(b),console.warn(`[DB] better-sqlite3 unavailable: ${b.message}`),null}}async function i(a){if(process.versions.bun)return null;let[b,e]=process.versions.node.split(".").map(Number);if(b<22||22===b&&e<5)return null;try{let{createNodeSqliteAdapter:a}=await c.e(8520).then(c.bind(c,88520));return await a(d.AL)}catch(b){return a.push(b),console.warn(`[DB] node:sqlite unavailable: ${b.message}`),null}}async function j(a){try{let{createSqlJsAdapter:a}=await c.e(3593).then(c.bind(c,53593));return await a(d.AL)}catch(b){return a.push(b),console.warn(`[DB] sql.js unavailable: ${b.message}`),null}}async function k(){if((0,e.I)())throw Error(`[DB] refusing to open ${d.AL} during next build — mark the calling page 'force-dynamic'`);(0,d.Jh)();let a=[],b=await g(a);if(b||(b=await h(a)),b||(b=await i(a)),b||(b=await j(a)),!b){if(a.some(a=>a?.code==="SQLITE_CORRUPT"||/corrupt|malformed|not a database/i.test(a?.message||"")))throw Error(`[DB] Database appears corrupted: ${d.AL}. Restore one of the five automatic backups from ${d.KQ}.`);throw Error("[DB] No SQLite driver available (bun/better/node/sql.js all failed)")}if(!f.logged){let a="sql.js"===b.driver?"warn":"log";"sql.js"===b.driver?console.warn(`[DB] WARNING: using sql.js fallback (in-memory + full-file rewrite). Prefer Node ≥22.5 (node:sqlite) or install better-sqlite3. file: ${d.AL}`):console[a](`[DB] Driver: ${b.driver} | file: ${d.AL}`),f.logged=!0}let{runMigrationOnce:k}=await Promise.all([c.e(9698),c.e(5350),c.e(869),c.e(5781),c.e(4675)]).then(c.bind(c,59282));try{await k(b)}catch(a){try{await b.close?.()}catch{}throw a}return b}async function l(){return f.instance?f.instance:(f.initPromise||(f.initPromise=k().then(a=>(f.instance=a,a),a=>{throw f.initPromise=null,a})),f.initPromise)}},43957:(a,b,c)=>{function d({workerOk:a,workerLatencyMs:b=null,clusterP50LatencyMs:c=null,fallbackUsed:e=!1,retries:f=0,hasCompletion:g=!1,tokensOut:h=null,userRating:i=null}){let j=0,k=!!(e||null!=f&&f>0);return a&&!k&&(j+=40),a||(j-=20),a&&"number"==typeof b&&"number"==typeof c&&c>0&&b<c&&(j+=15),k&&(j-=30),a&&(!0===g||"number"==typeof h&&h>0)&&(j+=10),1===i&&(j+=25),-1===i&&(j-=25),Math.max(0,Math.min(100,j))}function e(a){let b=Number(a);return Number.isFinite(b)?b>=8?1:b<=3?-1:0:0}function f(a,b,c={}){let g,h=a&&"object"==typeof a?{...a}:{},i=void 0!==c.userRating?0===c.userRating?null:c.userRating:h.userRating??null,j=void 0!==c.judgeScore?c.judgeScore:h.judgeScore??null,k=null!=j?e(j):0,l=1===i||-1===i?i:k||null,m=h.scoreInputs;g=m&&"object"==typeof m?d({...m,userRating:l}):Math.max(0,Math.min(100,("number"==typeof h.baseOutcomeScore?h.baseOutcomeScore:Number(b)||0)+25*(l||0))),h.userRating=i,null!=j&&(h.judgeScore=j),h.scoreAdjustedBy=1===i||-1===i?"user":k?"judge":null,h.judgeAdjusted=!!k&&1!==i&&-1!==i;let n=Number(b)!==g;return{outcomeScore:g,meta:h,changed:n}}c.d(b,{Uq:()=>e,_4:()=>d,al:()=>f})},49120:(a,b,c)=>{c.d(b,{nJ:()=>p,ok:()=>o});var d=c(73024),e=c.n(d),f=c(33873),g=c.n(f),h=c(21820),i=c.n(h);let j="switchboard";function k(a){if("win32"===process.platform){let b=process.env.APPDATA||g().join(i().homedir(),"AppData","Roaming");return g().join(b,a)}return g().join(i().homedir(),`.${a}`)}let l=["db/data.sqlite","machine-id","jwt-secret","auth","db.json"];function m(a){return l.some(b=>e().existsSync(g().join(a,b)))}function n(){let a=k(j);if(m(a))return a;let b=k("9router");return m(b)?(console.warn(`[DATA_DIR] using legacy data directory '${b}' (set DATA_DIR='${a}' to switch)`),b):a}function o(){let a=process.env.DATA_DIR;if(!a)return n();if("win32"===process.platform&&/^\//.test(a))return console.warn(`[DATA_DIR] '${a}' is a Unix path on Windows → fallback to default`),n();try{return e().mkdirSync(a,{recursive:!0}),a}catch(b){if(b?.code==="EACCES"||b?.code==="EPERM")return console.warn(`[DATA_DIR] '${a}' not writable → fallback ~/.${j}`),n();throw b}}let p=o()},73274:(a,b,c)=>{c.d(b,{T:()=>d});function d(a,b,{integer:c=!1}={}){if("number"!=typeof a||!Number.isFinite(a)||a<0||c&&!Number.isInteger(a))throw Error(`invalid Prometheus metric number: ${b}`);return Object.is(a,-0)?0:a}},92792:(a,b,c)=>{c.d(b,{I:()=>d});function d(){return"phase-production-build"===process.env.NEXT_PHASE||"phase-export"===process.env.NEXT_PHASE||"phase-static"===process.env.NEXT_PHASE}},95658:(a,b,c)=>{c.d(b,{AL:()=>j,HG:()=>i,Jh:()=>m,KQ:()=>k,Or:()=>l});var d=c(76760),e=c.n(d),f=c(73024),g=c.n(f),h=c(49120);let i=e().join(h.nJ,"db"),j=e().join(i,"data.sqlite"),k=e().join(i,"backups"),l={main:e().join(h.nJ,"db.json"),usage:e().join(h.nJ,"usage.json"),disabled:e().join(h.nJ,"disabledModels.json"),details:e().join(h.nJ,"request-details.json")};function m(){for(let a of[h.nJ,i,k])g().existsSync(a)||g().mkdirSync(a,{recursive:!0})}}};
121
+ FROM prometheusRoutingRequests WHERE comboName = ?`,[a])||[])(0,j.SQ)(b);c.run("UPDATE prometheusRoutingRequests SET comboName = ? WHERE comboName = ?",[b,a])})}),n(a),n(b)}},5125:(a,b,c)=>{c.d(b,{BO:()=>m,Bq:()=>k,Kd:()=>l,SQ:()=>n});var d=c(73274);let e=["requests","promptTokens","completionTokens","cachedTokens"],f=["requests","errors","fallbacks"],g=new WeakMap;function h(a,b){let c=g.get(a);if(c||(c=new Map,g.set(a,c)),c.has(b))return c.get(b);let d=!!a.get("SELECT name FROM sqlite_master WHERE type = 'table' AND name = ?",[b]);return c.set(b,d),d}let i=new WeakMap;function j(a){i.delete(a),h(a,"prometheusMetricState")&&a.run("UPDATE prometheusMetricState SET available = 0 WHERE id = 1")}function k(a,b){if(!function(a){let b=Date.now(),c=i.get(a);if(c&&c.expiresAt>b)return c.value;let e=function(a){if(!h(a,"prometheusMetricState"))return!1;let b=a.get("SELECT available FROM prometheusMetricState WHERE id = 1");try{let a=(0,d.T)(b?.available,"metricState.available",{integer:!0});if(![0,1].includes(a))throw Error("invalid Prometheus metric state");return 1===a}catch{return j(a),!1}}(a);return i.set(a,{value:e,expiresAt:b+5e3}),e}(a))return!1;try{return a.transaction(b),!0}catch{return j(a),!1}}function l(a,b=a?.provider||"usage"){if(!a||"string"!=typeof a.provider||!a.provider)throw Error(`invalid Prometheus usage metric: ${b}.provider`);for(let c of e)(0,d.T)(a[c],`${b}.${c}`,{integer:!0});return(0,d.T)(a.cost,`${b}.cost`),a}function m(a,b=a?.source||"routing"){if(!a||"string"!=typeof a.source||!a.source)throw Error(`invalid Prometheus routing metric: ${b}.source`);for(let c of f)(0,d.T)(a[c],`${b}.${c}`,{integer:!0});return a}function n(a,b=a?.requestKey||"routingRequest"){if(!a||"string"!=typeof a.source||!a.source)throw Error(`invalid Prometheus routing request: ${b}.source`);(0,d.T)(a.terminalId,`${b}.terminalId`,{integer:!0});let c=(0,d.T)(a.isError,`${b}.isError`,{integer:!0}),e=(0,d.T)(a.fallbackUsed,`${b}.fallbackUsed`,{integer:!0});if(![0,1].includes(c)||![0,1].includes(e))throw Error(`invalid Prometheus routing request: ${b}`);return a}},5770:(a,b,c)=>{c.d(b,{Qm:()=>d,lc:()=>f,vL:()=>h});let d=2e4,e=new Map;function f(a){let b="string"==typeof a?a:String(a??""),c=b.indexOf("/");return -1===c?b:b.slice(0,c)}function g(a,b,c){let d=a?.[b];return Number.isFinite(d)?d:c}function h(a,b={}){let c=b.strategy??"off";if(!Array.isArray(a)||a.length<2||"off"===c)return a;let i=function(a){let b=new Set,c=[];for(let d of a){let a=f(d);b.has(a)||(b.add(a),c.push(a))}return c}(a),j=function(a,b,c){let d=new Map;if("priority"===b){let b=Array.isArray(c.providerOrder)?c.providerOrder:[];for(let c of a){let a=b.indexOf(c);d.set(c,-1===a?b.length:a)}return d}if("round-robin"===b){let b=c.rotationKey??"__default__",f=e.get(b)||0;e.set(b,f+1);let g=f%a.length;for(let b=0;b<a.length;b++)d.set(a[(g+b)%a.length],b);return d}for(let e of a){let f=c.providerQuota?.[e],h="fastest"===b?g(c.providerLatencyMs,e,1/0):"quota-first"===b?Number.isFinite(f)?100-f:1e6+g(c.providerUsage,e,0):a.indexOf(e);d.set(e,h)}return d}(i,c,b),k=Number.isFinite(b.guardMs)?b.guardMs:d;return a.map((a,c)=>{var d;let e,g=f(a);return{model:a,index:c,rank:j.get(g)??i.length,demoted:(d=b.providerLatencyMs,Number.isFinite(e=d?.[g])&&e>k)}}).sort((a,b)=>a.demoted!==b.demoted?Number(a.demoted)-Number(b.demoted):a.demoted?a.index-b.index:a.rank-b.rank||a.index-b.index).map(({model:a})=>a)}},36366:(a,b,c)=>{c.d(b,{c:()=>l});var d=c(95658),e=c(92792);global._dbAdapter||(global._dbAdapter={instance:null,initPromise:null,logged:!1});let f=global._dbAdapter;async function g(a){if(!process.versions.bun)return null;try{let{createBunSqliteAdapter:a}=await c.e(4739).then(c.bind(c,24739));return await a(d.AL)}catch(b){return a.push(b),console.warn(`[DB] bun:sqlite unavailable: ${b.message}`),null}}async function h(a){if(process.versions.bun)return null;try{let{createBetterSqliteAdapter:a}=await c.e(5258).then(c.bind(c,25258));return a(d.AL)}catch(b){return a.push(b),console.warn(`[DB] better-sqlite3 unavailable: ${b.message}`),null}}async function i(a){if(process.versions.bun)return null;let[b,e]=process.versions.node.split(".").map(Number);if(b<22||22===b&&e<5)return null;try{let{createNodeSqliteAdapter:a}=await c.e(8520).then(c.bind(c,88520));return await a(d.AL)}catch(b){return a.push(b),console.warn(`[DB] node:sqlite unavailable: ${b.message}`),null}}async function j(a){try{let{createSqlJsAdapter:a}=await c.e(3593).then(c.bind(c,53593));return await a(d.AL)}catch(b){return a.push(b),console.warn(`[DB] sql.js unavailable: ${b.message}`),null}}async function k(){if((0,e.I)())throw Error(`[DB] refusing to open ${d.AL} during next build — mark the calling page 'force-dynamic'`);(0,d.Jh)();let a=[],b=await g(a);if(b||(b=await h(a)),b||(b=await i(a)),b||(b=await j(a)),b?.driver==="sql.js"&&"1"!==process.env.SWITCHBOARD_ALLOW_SQLJS){try{await b.close?.()}catch{}throw Error("[DB] sql.js fallback is dev-only (full-file rewrite stalls the event loop). Use Node ≥22.5 (node:sqlite) or install better-sqlite3, or set SWITCHBOARD_ALLOW_SQLJS=1.")}if(!b){if(a.some(a=>a?.code==="SQLITE_CORRUPT"||/corrupt|malformed|not a database/i.test(a?.message||"")))throw Error(`[DB] Database appears corrupted: ${d.AL}. Restore one of the five automatic backups from ${d.KQ}.`);throw Error("[DB] No SQLite driver available (bun/better/node/sql.js all failed)")}if(!f.logged){let a="sql.js"===b.driver?"warn":"log";"sql.js"===b.driver?console.warn(`[DB] WARNING: using sql.js fallback (in-memory + full-file rewrite). Prefer Node ≥22.5 (node:sqlite) or install better-sqlite3. file: ${d.AL}`):console[a](`[DB] Driver: ${b.driver} | file: ${d.AL}`),f.logged=!0}let{runMigrationOnce:k}=await Promise.all([c.e(9698),c.e(5350),c.e(869),c.e(5781),c.e(4675)]).then(c.bind(c,59282));try{await k(b)}catch(a){try{await b.close?.()}catch{}throw a}return b}async function l(){return f.instance?f.instance:(f.initPromise||(f.initPromise=k().then(a=>(f.instance=a,a),a=>{throw f.initPromise=null,a})),f.initPromise)}},43957:(a,b,c)=>{function d({workerOk:a,workerLatencyMs:b=null,clusterP50LatencyMs:c=null,fallbackUsed:e=!1,retries:f=0,hasCompletion:g=!1,tokensOut:h=null,userRating:i=null}){let j=0,k=!!(e||null!=f&&f>0);return a&&!k&&(j+=40),a||(j-=20),a&&"number"==typeof b&&"number"==typeof c&&c>0&&b<c&&(j+=15),k&&(j-=30),a&&(!0===g||"number"==typeof h&&h>0)&&(j+=10),1===i&&(j+=25),-1===i&&(j-=25),Math.max(0,Math.min(100,j))}function e(a){let b=Number(a);return Number.isFinite(b)?b>=8?1:b<=3?-1:0:0}function f(a,b,c={}){let g,h=a&&"object"==typeof a?{...a}:{},i=void 0!==c.userRating?0===c.userRating?null:c.userRating:h.userRating??null,j=void 0!==c.judgeScore?c.judgeScore:h.judgeScore??null,k=null!=j?e(j):0,l=1===i||-1===i?i:k||null,m=h.scoreInputs;g=m&&"object"==typeof m?d({...m,userRating:l}):Math.max(0,Math.min(100,("number"==typeof h.baseOutcomeScore?h.baseOutcomeScore:Number(b)||0)+25*(l||0))),h.userRating=i,null!=j&&(h.judgeScore=j),h.scoreAdjustedBy=1===i||-1===i?"user":k?"judge":null,h.judgeAdjusted=!!k&&1!==i&&-1!==i;let n=Number(b)!==g;return{outcomeScore:g,meta:h,changed:n}}c.d(b,{Uq:()=>e,_4:()=>d,al:()=>f})},49120:(a,b,c)=>{c.d(b,{nJ:()=>p,ok:()=>o});var d=c(73024),e=c.n(d),f=c(33873),g=c.n(f),h=c(21820),i=c.n(h);let j="switchboard";function k(a){if("win32"===process.platform){let b=process.env.APPDATA||g().join(i().homedir(),"AppData","Roaming");return g().join(b,a)}return g().join(i().homedir(),`.${a}`)}let l=["db/data.sqlite","machine-id","jwt-secret","auth","db.json"];function m(a){return l.some(b=>e().existsSync(g().join(a,b)))}function n(){let a=k(j);if(m(a))return a;let b=k("9router");return m(b)?(console.warn(`[DATA_DIR] using legacy data directory '${b}' (set DATA_DIR='${a}' to switch)`),b):a}function o(){let a=process.env.DATA_DIR;if(!a)return n();if("win32"===process.platform&&/^\//.test(a))return console.warn(`[DATA_DIR] '${a}' is a Unix path on Windows → fallback to default`),n();try{return e().mkdirSync(a,{recursive:!0}),a}catch(b){if(b?.code==="EACCES"||b?.code==="EPERM")return console.warn(`[DATA_DIR] '${a}' not writable → fallback ~/.${j}`),n();throw b}}let p=o()},73274:(a,b,c)=>{c.d(b,{T:()=>d});function d(a,b,{integer:c=!1}={}){if("number"!=typeof a||!Number.isFinite(a)||a<0||c&&!Number.isInteger(a))throw Error(`invalid Prometheus metric number: ${b}`);return Object.is(a,-0)?0:a}},92792:(a,b,c)=>{c.d(b,{I:()=>d});function d(){return"phase-production-build"===process.env.NEXT_PHASE||"phase-export"===process.env.NEXT_PHASE||"phase-static"===process.env.NEXT_PHASE}},95658:(a,b,c)=>{c.d(b,{AL:()=>j,HG:()=>i,Jh:()=>m,KQ:()=>k,Or:()=>l});var d=c(76760),e=c.n(d),f=c(73024),g=c.n(f),h=c(49120);let i=e().join(h.nJ,"db"),j=e().join(i,"data.sqlite"),k=e().join(i,"backups"),l={main:e().join(h.nJ,"db.json"),usage:e().join(h.nJ,"usage.json"),disabled:e().join(h.nJ,"disabledModels.json"),details:e().join(h.nJ,"request-details.json")};function m(){for(let a of[h.nJ,i,k])g().existsSync(a)||g().mkdirSync(a,{recursive:!0})}}};
@@ -1 +1 @@
1
- "use strict";exports.id=2619,exports.ids=[2619],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]}},10952:(a,b,c)=>{var d=c(12407),e=c(33234);(0,d.qd)({loadProviderQuotaState:e.l,saveProviderQuotaState:e._})},18271:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{GET:()=>n,refreshAndUpdateCredentials:()=>m});var e=c(30369);c(10952);var f=c(15717),g=c(43763),h=c(48400),i=c(18129),j=c(39326),k=c(40615),l=a([e,h]);[e,h]=l.then?(await l)():l;let o=["expired","authentication","unauthorized","401","re-authorize"];async function m(a,b=!1,c=null){let d=await (0,f.Mc)(a.id);if(!d)throw Error("Connection no longer available");let e=["accessToken","refreshToken","idToken"].some(b=>(d[b]??null)!==(a[b]??null))||["copilotToken","copilotTokenExpiresAt"].some(b=>(d.providerSpecificData?.[b]??null)!==(a.providerSpecificData?.[b]??null)),g=d.provider!==a.provider||d.authType!==a.authType;if(a=d,g||e&&a.accessToken)return{connection:a,refreshed:!1};let j=(0,h.getExecutor)(a.provider),k={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||j.needsRefresh(k)))return{connection:a,refreshed:!1};let l=await (0,i.MF)(a.provider,k,()=>j.refreshCredentials(k,console,c));if(!l||l.error){let b=await (0,f.Mc)(a.id);if(b?.accessToken)return{connection:b,refreshed:!1};throw Error("Failed to refresh credentials. Please re-authorize the connection.")}let n={updatedAt:new Date().toISOString()};l.accessToken&&(n.accessToken=l.accessToken),l.refreshToken&&(n.refreshToken=l.refreshToken),l.idToken&&(n.idToken=l.idToken),l.lastRefreshAt&&(n.lastRefreshAt=l.lastRefreshAt);let o=(0,i.Jj)(a.id,l),p=o?.expiresAt??(l.expiresAt?new Date(l.expiresAt).getTime():null);Number.isFinite(p)?(n.expiresAt=new Date(p).toISOString(),n.expiresIn=Math.max(0,Math.ceil((p-Date.now())/1e3))):l.expiresIn&&(n.expiresAt=new Date(Date.now()+1e3*l.expiresIn).toISOString(),n.expiresIn=l.expiresIn);let q={...Object.fromEntries(Object.entries((0,i.Hf)(l)).filter(([b,c])=>JSON.stringify(c)!==JSON.stringify(a.providerSpecificData?.[b]))),...l.copilotToken?{copilotToken:l.copilotToken}:{},...l.copilotTokenExpiresAt?{copilotTokenExpiresAt:l.copilotTokenExpiresAt}:{}};Object.keys(q).length>0&&(n.providerSpecificData=q);let r=await (0,f.rS)(a.id,a,n);if(!r){let b=await (0,f.Mc)(a.id);if(b?.accessToken)return{connection:b,refreshed:!1};throw Error("Connection no longer available")}return{connection:r,refreshed:!0}}async function n(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,i=("apikey"===c.authType||"api_key"===c.authType)&&k.jO.includes(c.provider);if(!h&&!i)return Response.json({error:"Usage not available for this connection"},{status:400});let l=await (0,j.B)(c.providerSpecificData),n={connectionProxyEnabled:!0===l.connectionProxyEnabled,connectionProxyUrl:l.connectionProxyUrl||"",connectionNoProxy:l.connectionNoProxy||"",vercelRelayUrl:l.vercelRelayUrl||"",strictProxy:!1};if(h)try{c=(await m(c,!1,n)).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,n,{force:e});if(h&&function(a){if(!a?.message)return!1;let b=a.message.toLowerCase();return o.some(a=>b.includes(a))}(p)&&c.refreshToken)try{c=(await m(c,!0,n)).connection,p=await (0,g.my)(c,n,{force:e})}catch(a){console.warn(`[Usage] ${c.provider}: force refresh failed: ${a.message}`)}return Response.json(p,{headers:{"Cache-Control":"no-store"}})}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)}})},43763:(a,b,c)=>{c.d(b,{RO:()=>q.RO,Yt:()=>q.Yt,my:()=>Z});var d=c(95812),e=c(46052),f=c(88705);async function g(a,b,c=null){try{if(!a)throw Error("No GitHub access token available. Please re-authorize the connection.");let b=await (0,e.Fm)((0,f.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 g=await b.json();if(g.quota_snapshots){let a=g.quota_snapshots,b=(0,f.eZ)(g.quota_reset_date_utc||g.quota_reset_date);return{plan:g.copilot_plan,resetDate:g.quota_reset_date,quotas:{chat:{...h(a.chat),resetAt:(0,f.eZ)(a.chat?.quota_reset_at)||b},completions:{...h(a.completions),resetAt:(0,f.eZ)(a.completions?.quota_reset_at)||b},premium_interactions:{...h(a.premium_interactions),resetAt:(0,f.eZ)(a.premium_interactions?.quota_reset_at)||b}}}}if(g.monthly_quotas||g.limited_user_quotas){let a=g.monthly_quotas||{},b=g.limited_user_quotas||{},c=(0,f.eZ)(g.limited_user_reset_date);return{plan:g.copilot_plan||g.access_type_sku,resetDate:g.limited_user_reset_date,quotas:{chat:{used:null!==(0,d.Gv)(a.chat)&&null!==(0,d.Gv)(b.chat)?Math.max(0,(0,d.Gv)(a.chat)-(0,d.Gv)(b.chat)):null,remaining:(0,d.Gv)(b.chat),total:(0,d.Gv)(a.chat),unlimited:!1,resetAt:c},completions:{used:null!==(0,d.Gv)(a.completions)&&null!==(0,d.Gv)(b.completions)?Math.max(0,(0,d.Gv)(a.completions)-(0,d.Gv)(b.completions)):null,remaining:(0,d.Gv)(b.completions),total:(0,d.Gv)(a.completions),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 h(a){if(!a)return{used:null,total:null,unlimited:!1};let b=(0,d.Gv)(a.entitlement),c=(0,d.Gv)(a.quota_remaining??a.remaining);return{used:(0,d.Gv)(a.credits_used)??(null!==b&&null!==c?Math.max(0,b-c):null),remainingPercentage:(0,d.Gv)(a.percent_remaining),total:b,remaining:c,unlimited:a.unlimited||!1}}var i=c(28730);let j=(0,f.U)("antigravity");async function k(a,b,c=null){if(!a)return{plan:"Unknown",message:"Gemini CLI access token not available."};try{let e=(0,f.gD)(b?.projectId),g="Unknown";if(!e){let b=await l(a,c);e=(0,f.gD)(b?.cloudaicompanionProject),g=b?.currentTier?.name||g}if(!e)return{plan:g,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 h=await (0,f.u9)((0,f.U)("gemini-cli").quotaUrl,{method:"POST",headers:{Authorization:`Bearer ${a}`,"Content-Type":"application/json"},body:JSON.stringify({project:e}),identity:"gemini-cli",provider:"gemini-cli",format:"gemini"},1e4,c);if(!h.ok)return{plan:g,message:`Gemini CLI quota error (${h.status}).`};let i=await h.json(),j={};if(Array.isArray(i.buckets))for(let a of i.buckets){if(!a.modelId||null==a.remainingFraction)continue;let b=(0,d.Gv)(a.remainingFraction);if(null===b||b<0||b>1)continue;let c=100*b,e=Math.max(0,100-c);j[a.modelId]={used:e,total:100,resetAt:(0,f.eZ)(a.resetTime),remainingPercentage:100*b,unlimited:!1,unit:"%"}}return{plan:g,quotas:j}}catch(a){return{message:`Gemini CLI error: ${a.message}`}}}async function l(a,b=null){try{let c=await (0,f.u9)((0,f.U)("gemini-cli").loadCodeAssistUrl,{method:"POST",headers:{Authorization:`Bearer ${a}`,"Content-Type":"application/json"},body:JSON.stringify({metadata:i.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 m(a,b,c=null){try{let b=await n(a,c),e=b?.cloudaicompanionProject||null,g=await (0,f.u9)(j.quotaApiUrl,{method:"POST",headers:{Authorization:`Bearer ${a}`,"Content-Type":"application/json","X-Client-Name":"antigravity"},body:JSON.stringify({...e?{project:e}:{}}),identity:"antigravity",provider:"antigravity",format:"antigravity"},1e4,c);if(403===g.status)return{message:"Antigravity quota API access forbidden. Chat may still work.",quotas:{}};if(401===g.status)return{message:"Antigravity quota API authentication expired. Chat may still work.",quotas:{}};if(!g.ok)throw Error(`Antigravity API error: ${g.status}`);let h=await g.json(),i={};if(h.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(h.models)){if(!c.quotaInfo||c.isInternal||!a.includes(b))continue;let e=(0,d.Gv)(c.quotaInfo.remainingFraction);if(null===e||e<0||e>1)continue;let g=100*e,h=100*e,j=100-h;i[b]={used:j,total:100,resetAt:(0,f.eZ)(c.quotaInfo.resetTime),remainingPercentage:g,unlimited:!1,unit:"%",displayName:c.displayName||b}}}return{plan:b?.currentTier?.name||"Unknown",quotas:i,subscriptionInfo:b}}catch(a){return console.error("[Antigravity Usage] Error:",a.message,a.cause),{message:`Antigravity error: ${a.message}`}}}async function n(a,b=null){try{let c=await (0,f.u9)(j.loadProjectApiUrl,{method:"POST",headers:{Authorization:`Bearer ${a}`,"Content-Type":"application/json"},body:JSON.stringify({metadata:i.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 o=c(11841),p=c(98594),q=c(49485),r=c(3148);async function s(a,b,c=null){let g=b?.authMethod||"builder-id",h="api_key"===g,i=h?{tokentype:"API_KEY"}:{},j="external_idp"===g?{TokenType:"EXTERNAL_IDP"}:{},k=h?b?.profileArn||"":b?.profileArn||(0,r.We)(g),l=new URLSearchParams({isEmailRequired:"true",origin:"AI_EDITOR",resourceType:"AGENTIC_REQUEST"}),m=!1,n=[];for(let b of[{name:"codewhisperer-get",run:async()=>(0,e.Fm)(`${(0,f.U)("kiro").cwHost}${(0,f.U)("kiro").limitsPath}?${l.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",...i,...j}},c)},{name:"codewhisperer-post",run:async()=>(0,e.Fm)((0,f.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",...i,...j},body:JSON.stringify({origin:"AI_EDITOR",...k?{profileArn:k}:{},resourceType:"AGENTIC_REQUEST"})},c)},{name:"q-get",run:async()=>{let b=new URLSearchParams({origin:"AI_EDITOR",...k?{profileArn:k}:{},resourceType:"AGENTIC_REQUEST"});return(0,e.Fm)(`${(0,f.U)("kiro").qHost}${(0,f.U)("kiro").limitsPath}?${b}`,{method:"GET",headers:{Authorization:`Bearer ${a}`,Accept:"application/json",...i,...j}},c)}}])try{let a=await b.run();if(!a.ok){let c=await a.text().catch(()=>"");(401===a.status||403===a.status)&&(m=!0),n.push(`${b.name}:${a.status}${c?`:${c}`:""}`);continue}let c=await a.json();return function(a){let b=a.usageBreakdownList||[],c={},e=(0,f.eZ)(a.nextDateReset||a.resetDate);return b.forEach(a=>{let b=a.resourceType?.toLowerCase()||"unknown",g=(0,d.Gv)(a.currentUsageWithPrecision),h=(0,d.Gv)(a.usageLimitWithPrecision);if(c[b]={used:g,total:h,remaining:null!==h&&null!==g?Math.max(0,h-g):null,resetAt:e,unlimited:!1},a.freeTrialInfo){let g=(0,d.Gv)(a.freeTrialInfo.currentUsageWithPrecision),h=(0,d.Gv)(a.freeTrialInfo.usageLimitWithPrecision);c[`${b}_freetrial`]={used:g,total:h,remaining:null!==h&&null!==g?Math.max(0,h-g):null,recurring:!1,resetAt:(0,f.eZ)(a.freeTrialInfo.freeTrialExpiry||e),unlimited:!1}}}),{plan:a.subscriptionInfo?.subscriptionTitle||"Kiro",quotas:c}}(c)}catch(a){n.push(`${b.name}:${a.message}`)}return m&&"idc"===g?{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:{}}:m&&("google"===g||"github"===g)?{message:"Kiro quota API authentication expired. Chat may still work.",quotas:{}}:m?{message:"Kiro quota API rejected the current token. Chat may still work.",quotas:{}}:{message:n.length>0?`Unable to fetch Kiro usage right now. (${n[n.length-1]})`:"Unable to fetch Kiro usage right now.",quotas:{}}}let t={minimax:(0,f.U)("minimax").urls,"minimax-cn":(0,f.U)("minimax-cn").urls};function u(a,b,c){return a&&"object"==typeof a?a[b]??a[c]??null:null}function v(a,b,c){if(!a||"object"!=typeof a)return null;let e=a[b]??a[c];if(null==e)return null;let f=(0,d.Gv)(e);return null===f?null:Math.max(0,Math.min(100,f))}function w(a){return Math.max(0,Number(u(a,"current_interval_total_count","currentIntervalTotalCount"))||0)}function x(a){return Math.max(0,Number(u(a,"current_weekly_total_count","currentWeeklyTotalCount"))||0)}function y(a){return!!(w(a)>0||x(a)>0)||null!==v(a,"current_interval_remaining_percent","currentIntervalRemainingPercent")||null!==v(a,"current_weekly_remaining_percent","currentWeeklyRemainingPercent")}function z(a,b,c,d,e,g){let h=Number(u(a,c,d))||0;return h>0?new Date(b+h).toISOString():(0,f.eZ)(u(a,e,g))}function A(a,b,c,e,f,g,h,i,j,k){let l=e(c),m=v(c,h,i);if(l<=0&&null===m)return;let n=(0,d.Gv)(u(c,f,g));if(null===n&&null===m){a[b]={used:null,total:l,remainingPercentage:null,resetAt:z(c,...j),unlimited:!1};return}let o=Math.max(0,n??(k?l*m/100:l*(1-m/100))),p=l,q=o;l<=0&&(p=100,q=k?Math.round(m/100*p):Math.round(p*(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}}(p,q,z(c,...j),k,m)}async function B(a,b,c=null){if(!a)return{message:"MiniMax API key not available."};let d=t[b]||[],f="";for(let b=0;b<d.length;b+=1){let g=d[b],h=b<d.length-1;try{let b=await (0,e.Fm)(g,{method:"GET",headers:{Authorization:`Bearer ${a}`,Accept:"application/json","Content-Type":"application/json"}},c),d=await b.text(),i={};if(d)try{i=JSON.parse(d)}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} ${d}`.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(y);if(0===p.length)return{message:"MiniMax connected. No quota data was returned."};let q=Date.now(),r=g.includes("/coding_plan/remains"),s={};for(let a of p){let b=function(a){let b=String(u(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);A(s,`${b} (5h)`,a,w,"current_interval_usage_count","currentIntervalUsageCount","current_interval_remaining_percent","currentIntervalRemainingPercent",[q,"remains_time","remainsTime","end_time","endTime"],r),A(s,`${b} (7d)`,a,x,"current_weekly_usage_count","currentWeeklyUsageCount","current_weekly_remaining_percent","currentWeeklyRemainingPercent",[q,"weekly_remains_time","weeklyRemainsTime","weekly_end_time","weeklyEndTime"],r)}if(0===Object.keys(s).length)return{message:"MiniMax connected. Unable to extract quota usage."};return{quotas:s}}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 C=c(45350);let D="codebuddy-cn";function E(a,b){return(0,d.Gv)(a??b)}async function F(a,b,c,d=null){let g=a||b;if(!g)return{message:"CodeBuddy CN credential not available."};try{let a=await (0,e.Fm)((0,f.U)(D).url,{method:"POST",headers:{...C.xq[D]?.headers||{},Authorization:`Bearer ${g}`,"Content-Type":"application/json",Accept:"application/json"},body:"{}"},d);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,f.eZ)(a.CycleEndTime);return b?new Date(b).getTime():1/0},j=a=>{let b=i(a),c=(0,f.eZ)(a.DeductionEndTime),d=c?Date.parse(c):NaN;return Number.isFinite(b)&&Number.isFinite(d)&&d-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,f.eZ)(a.CycleStartTime),c=(0,f.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:E(a.CycleCapacityUsedPrecise,a.CycleCapacityUsed),total:E(a.CycleCapacitySizePrecise,a.CycleCapacitySize),resetAt:(0,f.eZ)(a.CycleEndTime),unlimited:!1,recurring:!0}}),m.forEach((a,b)=>{n[`Bonus Pack ${b+1}`]={used:E(a.CapacityUsedPrecise,a.CapacityUsed),total:E(a.CapacitySizePrecise,a.CapacitySize),resetAt:(0,f.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 G={LEVEL_BASIC:"Moderato",LEVEL_INTERMEDIATE:"Allegretto",LEVEL_ADVANCED:"Allegro",LEVEL_STANDARD:"Vivace"};function H({used:a,total:b,remaining:c,resetAt:e}){let g,h=Math.max(0,(0,f.IQ)(b,0)),i=(0,d.Gv)(a),j=null===i?null:Math.max(0,i);return g=h>0&&null!=c&&Number.isFinite(Number(c))?Math.max(0,Number(c))/h*100:h>0&&null!==j?Math.max(0,h-j)/h*100:null,{used:null===j&&null!=c?Math.max(0,h-c):j,total:h,remainingPercentage:g,resetAt:e||null,unlimited:!1}}async function I(a=null,b=null,c=null,g=null){let h="string"==typeof b&&b.length>0,j=!h&&"string"==typeof a&&a.length>0;if(!h&&!j)return{message:"Kimi access token or API key not available."};let k=h?{"x-api-key":b}:{Authorization:`Bearer ${a}`,...(0,i.VK)(g?.deviceId)};try{let a,b=await (0,e.Fm)("https://api.kimi.com/coding/v1/usages",{method:"GET",headers:{...k,"Content-Type":"application/json",Accept:"application/json"}},c),g=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,g)};try{a=JSON.parse(g||"{}")}catch{return{plan:"Kimi Coding",message:"Kimi Coding connected. Invalid JSON response from API."}}let h={},i=a?.usage&&"object"==typeof a.usage?a.usage:{},j=(0,f.IQ)(i.limit??i.Limit,0),l=(0,d.Gv)(i.used??i.Used),m=i.remaining??i.Remaining,n=null!=m&&""!==m?(0,f.IQ)(m,NaN):NaN,o=i.resetTime||i.ResetTime||i.reset_at||i.resetAt;j>0&&(h.Weekly=H({used:l,total:j,remaining:Number.isFinite(n)?n:null,resetAt:(0,f.eZ)(o)}));let p=Array.isArray(a?.limits)?a.limits:[],q=0;for(let a of p){if(!a||"object"!=typeof a)continue;let b=a.detail&&"object"==typeof a.detail?a.detail:{},c=(0,f.IQ)(b.limit??b.Limit,0),e=(0,f.IQ)(b.remaining??b.Remaining,NaN),g=b.resetTime||b.reset_at||b.resetAt;if(c>0){let a=Number.isFinite(e)?e:null;q++,h[1===q?"Ratelimit":`Ratelimit ${q}`]=H({used:null===a?(0,d.Gv)(b.used??b.Used):Math.max(0,c-a),total:c,remaining:a,resetAt:(0,f.eZ)(g)})}}let r=a?.user?.membership?.level,s=function(a){if(!a)return"";let b=String(a);return G[b]?G[b]:b.replace(/^LEVEL_/,"").toLowerCase()}(r)||"Kimi Coding";if(Object.keys(h).length>0)return{plan:s,quotas:h};return{plan:s,message:"Kimi Coding connected. Usage tracked per request."}}catch(a){return{message:`Kimi Coding connected. Unable to fetch usage: ${a.message}`}}}async function J(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,e.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 g=await c.json().catch(()=>null);if(!g||"object"!=typeof g)return{message:"DeepSeek balance response was not JSON."};let h=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 e=(0,d.Gv)(a.total_balance??a.totalBalance);null===e||e<0||c.push({currency:b,totalBalance:e,grantedBalance:(0,f.IQ)(a.granted_balance??a.grantedBalance,0),toppedUpBalance:(0,f.IQ)(a.topped_up_balance??a.toppedUpBalance,0)})}return c}(g);if(0===h.length)return{plan:"DeepSeek",message:"DeepSeek connected. No balance data returned."};let i=!0===g.is_available||!0===g.isAvailable,j={};for(let a of h){let b=Math.max(0,a.totalBalance);j[`Balance (${a.currency})`]={kind:"balance",balance:b,unit:a.currency,used:null,total:null,remainingPercentage:null,resetAt:null,unlimited:!1}}return{plan:i?"DeepSeek":"DeepSeek (Insufficient Balance)",quotas:j}}catch(a){return{message:`DeepSeek error: ${a.message}`}}}var K=c(13247);let L=(a,b=0)=>a&&"object"==typeof a&&"val"in a?(0,f.IQ)(a.val,b):(0,f.IQ)(a,b);function M(a,b,c=null){let d=Math.max(0,b),e=null===a?null:Math.max(0,a);return{used:e,total:d,remainingPercentage:null===e?null:d?Math.max(0,(d-e)/d*100):0,resetAt:c,unlimited:!1}}async function N(a,b=null,c=null){if(!a)return{message:"Grok CLI access token not available."};let d=(0,K.Ab)(a,b||{}),g=(0,f.U)("grok-cli");try{let[a,b]=await Promise.all([(0,e.Fm)(g.url,{method:"GET",headers:d,...K.Ai},c),(0,e.Fm)(g.userUrl,{method:"GET",headers:d,signal:AbortSignal.timeout(2e3),...K.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,e=(0,f.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=L(d.monthlyLimit??c.monthlyLimit,NaN),k=L(d.includedUsed??c.includedUsed??d.totalUsed??c.totalUsed,null);Number.isFinite(j)&&j>0&&(i["Monthly included"]=M(k,j,e));let l=L(d.onDemandCap??c.onDemandCap,NaN),m=L(d.onDemandUsed??c.onDemandUsed,null);Number.isFinite(l)&&l>0&&(i["On-demand"]=M(m,l,e)),0===l&&(i["On-demand"]={used:m,total:0,remainingPercentage:null,unlimited:!1,available:!1,resetAt:e});let n=L(d.prepaidBalance??c.prepaidBalance,NaN);return Number.isFinite(n)&&n>=0&&(i.Prepaid={kind:"balance",balance:n,unit:"credits",used:null,total:null,unlimited:!1}),{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}`}}}function O(a,b){let c=Math.max(0,Math.min(100,a)),d=Math.max(0,100-c);return{used:c,total:100,remaining:d,remainingPercentage:d,resetAt:(0,f.eZ)(b),unlimited:!1}}async function P(a,b=null,c=null){var d;let g,h,i,j=b&&"object"==typeof b?b:{},k="string"==typeof j.subsTierName&&j.subsTierName.trim()?j.subsTierName.trim():"";if(!a)return k?{plan:k,quotas:{},message:"Muse connected. Live quota unavailable — no device token stored, showing last known plan."}:{message:"Muse connected. Subscription quota requires OAuth sign-in (no device token stored)."};let l=process.env.META_MINT_URL||(0,f.U)("muse").url;if(!l)return{message:"Muse connected. Usage endpoint is not configured."};try{g=await (0,e.Fm)(l,{method:"POST",headers:{Authorization:`Bearer ${a}`,"Content-Type":"application/json",Accept:"application/json","x-api-version":"1.0.0"},body:"{}",identity:"muse-code",provider:"muse"},c)}catch(a){return{message:`Muse connected. Unable to fetch usage: ${a.message}`}}if(401===g.status||403===g.status)return{message:"Muse authentication expired. Please re-authorize the connection."};if(!g.ok)return{message:`Muse connected. Usage API temporarily unavailable (${g.status}).`};try{h=await g.json()}catch{return{message:"Muse connected. Usage response was not JSON."}}let m=h?.subs_usage&&"object"==typeof h.subs_usage?h.subs_usage:null,n="string"==typeof h?.subs_tier_name&&h.subs_tier_name.trim()||"string"==typeof m?.tier&&m.tier.trim()||k||"Muse";if(h?.is_subs_active===!1)return{plan:n,quotas:{},message:"Muse connected. No active subscription on this account."};let o={},p=m?.window&&"object"==typeof m.window?m.window:null,q=m?.weekly&&"object"==typeof m.weekly?m.weekly:null,r=(0,f.IQ)(p?.used_percent,NaN);p&&Number.isFinite(r)&&(o[d=p.window_duration_mins,!Number.isFinite(i=(0,f.IQ)(d,NaN))||i<=0?"Session":i%60==0?`Session (${i/60}h)`:`Session (${i}m)`]=O(r,p.resets_at));let s=(0,f.IQ)(q?.used_percent,NaN);return(q&&Number.isFinite(s)&&(o["Weekly (7d)"]=O(s,q.resets_at)),0===Object.keys(o).length)?{plan:n,quotas:o,message:"Muse connected. No active usage window reported — quota is idle."}:{plan:n,quotas:o}}let Q={international:(0,f.U)("glm").url,china:(0,f.U)("glm-cn").url},R=(0,f.U)("vercel-ai-gateway").url;async function S(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 T(a){try{return{message:"iFlow connected. Usage tracked per request."}}catch(a){return{message:"Unable to fetch iFlow usage."}}}async function U(a,b,c=null){if(!a)return{message:"Ollama Cloud API key not available."};try{let b,g=await (0,e.Fm)("https://ollama.com/api/usage",{headers:{Authorization:`Bearer ${a}`,Accept:"application/json"}},c);if(401===g.status||403===g.status)return{message:"Ollama Cloud API key invalid or expired."};if(!g.ok)return{message:`Ollama Cloud usage API error (${g.status}).`};try{b=await g.json()}catch{return{message:"Ollama Cloud usage response was not JSON."}}let h=await (0,e.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),i="string"==typeof h?.Plan?h.Plan:"",j=i?i.charAt(0).toUpperCase()+i.slice(1).toLowerCase():"Ollama Cloud",k=b?.limits&&"object"==typeof b.limits?b.limits:{};function f(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 l=k.session?.usage,m=k.weekly?.usage,n=(0,d.Gv)(l),o=(0,d.Gv)(m),p=null!==n&&n>=0&&n<=1,q=null!==o&&o>=0&&o<=1;if(!p&&!q)return{plan:j,message:"Ollama Cloud connected. No usage limits reported.",quotas:{}};let r={};return p&&(r["Session (5h)"]=f(n)),q&&(r["Weekly (7d)"]=f(o)),{plan:j,quotas:r}}catch(a){return{message:`Ollama Cloud error: ${a.message}`}}}async function V(a,b,c=null){if(!a)return{message:"GLM API key not available."};let g=Q["glm-cn"===b?"china":"international"];try{let b=await (0,e.Fm)(g,{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 h=await b.json(),i=h?.data&&"object"==typeof h.data?h.data:{},j=Array.isArray(i.limits)?i.limits:[],k={};for(let a of j){if(!a||!["TOKENS_LIMIT","TIME_LIMIT"].includes(a.type))continue;if("TIME_LIMIT"===a.type){k.Tools={used:(0,d.Gv)(a.currentValue),total:(0,d.Gv)(a.usage),remaining:(0,d.Gv)(a.remaining),resetAt:(0,f.eZ)(a.nextResetTime),unlimited:!1};continue}let b=(0,d.Gv)(a.percentage),c=Number(a.nextResetTime)||0,e=null===b||b<0?null:Math.max(0,100-b),g=k.session?`session ${Object.keys(k).length+1}`:"session";k[g]={used:b,total:100,remaining:e,remainingPercentage:e,resetAt:(0,f.eZ)(c),unlimited:!1}}let l="string"==typeof i.level?i.level:"";return{plan:l?l.charAt(0).toUpperCase()+l.slice(1).toLowerCase():"Unknown",quotas:k}}catch(a){return{message:`GLM error: ${a.message}`}}}async function W(a,b=null){if(!a)return{message:"Vercel AI Gateway API key not available."};try{let c=await (0,e.Fm)(R,{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 f=await c.json(),g=(0,d.Gv)(f?.balance),h=(0,d.Gv)(f?.total_used);if(null===g||g<0)return{plan:"Pay-as-you-go",message:"Credit balance unavailable.",quotas:{}};return{plan:"Pay-as-you-go",quotas:{"Balance (USD)":{kind:"balance",balance:g,unit:"USD",used:h,total:null,remainingPercentage:null,unlimited:!1,resetAt:null}}}}catch(a){return{message:`Vercel AI Gateway error: ${a.message}`}}}async function X(a,b=null){if(!a)return{message:"Qoder usage unavailable: no access token"};try{let c=await (0,e.Fm)((0,f.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 g=await c.json().catch(()=>null);if(!g)return{message:"Qoder connected. Usage response was not JSON."};let h=g.userQuota||{},i=g.orgResourcePackage||{},j=Number.isFinite(Number(g.expiresAt))&&Number(g.expiresAt)>0?Number(g.expiresAt):null,k=j?(0,f.eZ)(j):null;return{quotas:{user:{total:(0,d.Gv)(h.total),used:(0,d.Gv)(h.used),remaining:(0,d.Gv)(h.remaining),unit:h.unit||"credits",resetAt:k},organization:{total:(0,d.Gv)(i.total),used:(0,d.Gv)(i.used),remaining:(0,d.Gv)(i.remaining),unit:i.unit||"credits",resetAt:k}},totalUsagePercentage:Number(g.totalUsagePercentage)||0,isQuotaExceeded:!!g.isQuotaExceeded,expiresAt:j}}catch(a){return{message:`Qoder connected. Unable to fetch usage: ${a.message}`}}}let Y={github:a=>g(a.accessToken,a.providerSpecificData,a.proxyOptions),"gemini-cli":a=>k(a.accessToken,a.providerDataWithProjectId,a.proxyOptions),antigravity:a=>m(a.accessToken,a.providerSpecificData,a.proxyOptions),claude:a=>(0,p.g)(a.accessToken,a.proxyOptions,{force:a.force,connectionId:a.connectionId,quotaIdentity:a.quotaIdentity}),codex:a=>(0,q.Tl)(a.accessToken,a.proxyOptions,a.providerSpecificData),kiro:a=>s(a.accessToken,a.providerSpecificData,a.proxyOptions),qoder:a=>X(a.accessToken,a.proxyOptions),qwen:a=>S(a.accessToken,a.providerSpecificData),iflow:a=>T(a.accessToken),ollama:a=>U(a.apiKey,a.providerSpecificData,a.proxyOptions),glm:a=>V(a.apiKey,a.provider,a.proxyOptions),"glm-cn":a=>V(a.apiKey,a.provider,a.proxyOptions),minimax:a=>B(a.apiKey,a.provider,a.proxyOptions),"minimax-cn":a=>B(a.apiKey,a.provider,a.proxyOptions),"vercel-ai-gateway":a=>W(a.apiKey,a.proxyOptions),"codebuddy-cn":a=>F(a.accessToken,a.apiKey,a.providerSpecificData,a.proxyOptions),kimi:a=>I(a.accessToken,a.apiKey,a.proxyOptions,a.providerSpecificData),"kimi-coding":a=>I(a.accessToken,a.apiKey,a.proxyOptions,a.providerSpecificData),deepseek:a=>J(a.apiKey,a.proxyOptions),"grok-cli":a=>N(a.accessToken,a.providerSpecificData,a.proxyOptions),muse:a=>P(a.providerSpecificData?.dcaToken||a.refreshToken,a.providerSpecificData,a.proxyOptions)};async function Z(a,b=null,c={}){let{provider:d,accessToken:e,apiKey:f,refreshToken:g,providerSpecificData:h,projectId:i}=a,j={...h||{},...i?{projectId:i}:{}},k=Y[d];if(!k)return{message:`Usage API not implemented for ${d}`};let l=await k({provider:d,connectionId:a.id,quotaIdentity:(0,o.AN)(a),accessToken:e,apiKey:f,refreshToken:g,providerSpecificData:h,providerDataWithProjectId:j,proxyOptions:b,force:!0===c.force});return l?.quotas&&!l.stale?{...l,observedAt:l.observedAt||new Date().toISOString()}:l}},49485:(a,b,c)=>{c.d(b,{RO:()=>o,Tl:()=>m,Yt:()=>n});var d=c(95812),e=c(46052),f=c(88705);let g={usageUrl:(0,f.U)("codex").url,resetCreditsUrl:(0,f.U)("codex").resetCreditsUrl,resetCreditsConsumeUrl:(0,f.U)("codex").resetCreditsConsumeUrl};function h(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 i(a){return a?.workspaceId||a?.accountId||a?.chatgptAccountId||null}function j(a){return!a||"object"!=typeof a||Array.isArray(a)?null:a.rate_limit&&"object"==typeof a.rate_limit?a.rate_limit:a}function k(a){let b=(0,d.Gv)(a?.used_percent??a?.percent_used),c=null!==b&&b>=0?b:null,e=(0,d.Gv)(a?.limit_window_seconds);return{used:c,total:100,remaining:null===c?null:Math.max(0,100-c),...e>0?{windowSeconds:e,displayName:18e3===e?"Session (5h)":604800===e?"Weekly (7d)":`Window (${e/3600}h)`}:{},resetAt:(0,f.eZ)(a?.reset_at??a?.resets_at??a?.resetAt??null)||((0,d.Gv)(a?.reset_after_seconds)>0?new Date(Date.now()+1e3*(0,d.Gv)(a.reset_after_seconds)).toISOString():null),unlimited:!1}}function l(a,b,c){let d=j(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"]=k(e),!0===d.limit_reached&&(a[b?`${b}_session`:"session"].blocked=!0),g=!0),f&&(a[b?`${b}_weekly`:"weekly"]=k(f),!0===d.limit_reached&&(a[b?`${b}_weekly`:"weekly"].blocked=!0),g=!0),g}async function m(a,b=null,c=null){try{let d=await (0,e.Fm)(g.usageUrl,{method:"GET",headers:{Authorization:`Bearer ${a}`,Accept:"application/json",...i(c)?{"ChatGPT-Account-ID":i(c)}:{}},identity:"codex-cli",provider:"codex",format:"codex"},b);if(!d.ok)return{message:`Codex connected. Usage API temporarily unavailable (${d.status}).`};let h=await d.json(),k=h.rate_limit||h.rate_limits||h.rate_limits_by_limit_id?.codex||{},m=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}(h),n=Math.max(0,(0,f.IQ)(h.rate_limit_reset_credits?.available_count,0)),o={};for(let a of(l(o,"",k),l(o,"review",m),Array.isArray(h.additional_rate_limits)?h.additional_rate_limits:[])){if(a===m)continue;let b=a.limit_name||a.metered_feature||a.id;"string"==typeof b&&b&&l(o,b,a)}for(let[a,b]of Object.entries(h.rate_limits_by_limit_id||{}))"codex"!==a&&b!==m&&l(o,a,b);for(let[a,b]of Object.entries(o))b.displayName&&"session"!==a&&"weekly"!==a&&(b.displayName=`${a.replace(/_(session|weekly)$/,"")} \xb7 ${b.displayName}`);return{plan:h.plan_type||h.summary?.plan||"unknown",limitReached:j(k)?.limit_reached||!1,reviewLimitReached:j(m)?.limit_reached||!1,resetCredits:{availableCount:n},quotas:o}}catch(a){throw Error(`Failed to fetch Codex usage: ${a.message}`)}}async function n(a,b=null,c=null){if(!a)throw Error("No Codex access token available. Please re-authorize the connection.");let d=i(c),j={Authorization:`Bearer ${a}`,Accept:"application/json","OpenAI-Beta":"codex-1",originator:"codex_cli_rs"};d&&(j["ChatGPT-Account-ID"]=d);let k=await (0,e.Fm)(g.resetCreditsUrl,{method:"GET",headers:j,identity:"codex-cli",provider:"codex",format:"codex"},b),l=null;try{l=await k.json()}catch{l=null}if(!k.ok)throw Error(l?.message||l?.error||l?.detail||`Codex reset credits API unavailable (${k.status}).`);let m=Array.isArray(l?.credits)?l.credits:[];return{availableCount:Math.max(0,(0,f.IQ)(l?.available_count??l?.availableCount,0)),credits:m.map(a=>({status:String(a?.status||"unknown"),grantedAt:h(a?.granted_at??a?.grantedAt),expiresAt:h(a?.expires_at??a?.expiresAt)}))}}async function o(a,b,c=null){let d;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{d=await (0,e.Fm)(g.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 f=await d.text();h=f?JSON.parse(f):null}catch(a){throw Error(`Failed to consume Codex reset credit: ${a.message}`)}let i=h?.code||null,j=(0,f.IQ)(h?.windows_reset,0);return{ok:d.ok&&("reset"===i||j>0),noCredit:d.ok&&"no_credit"===i,status:d.status,code:i,windowsReset:j,message:h?.message||null,raw:h}}},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:()=>m});var d=c(12407),e=c(11841),f=c(46052),g=c(92675),h=c(88705);let i={oauthUsageUrl:(0,h.U)("claude").oauthUrl,apiVersion:g.b8},j=new Map,k=e.R3,l=new Map;async function m(a,b=null,c={}){let e=c?.force===!0,f=c?.quotaIdentity,g=f?.connectionId&&f.createdAt?JSON.stringify(f):c?.connectionId||a,h=g&&l.get(g);if(h?.promise)return h.promise;let i=h?.result||null,q=h?.expiresAt||0,r=(0,d.oC)(),s=f?.connectionId&&f.createdAt&&r.loadProviderQuotaState&&r.saveProviderQuotaState;if(!s&&!e&&q>Date.now()&&!(j.get(g)>Date.now()))return i;let t=(async()=>{if(s){let a;try{a=await r.loadProviderQuotaState(f)}catch{let a=j.get(g),b=a>Date.now()?o(a):{code:"quota_state_unavailable",message:"Claude quota history is temporarily unavailable. Try again after storage recovers."};return i?{...i,...b,stale:!0}:b}if(a?.invalidIdentity)return n();a?.result&&(!i||Date.parse(a.result.observedAt)>=Date.parse(i.observedAt))&&(i=a.result,q=h?.expiresAt===0&&h.result?.observedAt===a.result.observedAt?0:a.expiresAt||0);let b=Date.parse(a?.retryAt);Number.isFinite(b)&&j.set(g,Math.max(j.get(g)||0,b))}let c=j.get(g);if(c>Date.now())return i?{...i,...o(c),stale:!0}:o(c);if(!e&&q>Date.now()&&i)return l.set(g,{result:i,expiresAt:q}),i;let d=await p(a,b,g),m=d?.quotas&&!d.stale;if(s)try{let a=await r.saveProviderQuotaState(f,{retryAt:429===d.status?d.retryAt:null,result:m?d:i,expiresAt:m?Date.parse(d.observedAt)+k:0});if(!1===a)return n()}catch{console.warn("[Usage] Unable to persist quota state; retaining in-process backoff.")}return g&&m?(l.set(g,{result:d,expiresAt:Date.parse(d.observedAt)+k}),d):i?{...i,...d,stale:!0}:d})();return g&&l.set(g,{promise:t,result:i,expiresAt:q}),t.then(()=>{let a=l.get(g);g&&a?.promise===t&&(i?l.set(g,{result:i,expiresAt:0}):l.delete(g))}),t}function n(){return{code:"connection_changed",message:"Claude connection changed. Reload its quota information."}}function o(a){return{status:429,code:"rate_limited",retryAt:new Date(a).toISOString(),retryAfterSeconds:Math.max(0,Math.ceil((a-Date.now())/1e3)),message:`Claude subscription usage is rate-limited. Try again after ${new Date(a).toUTCString()}.`}}async function p(a,b=null,c=a){try{let d=j.get(c);if(d&&Date.now()<d)return o(d);let e=await (0,f.Fm)(i.oauthUsageUrl,{method:"GET",headers:{Authorization:`Bearer ${a}`,"anthropic-beta":"oauth-2025-04-20","anthropic-version":i.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.isFinite(a.utilization)&&a.utilization>=0,d=a=>{let b=a.utilization,c=Math.max(0,100-b);return{used:b,total:100,remaining:c,remainingPercentage:c,resetAt:(0,h.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",observedAt:new Date().toISOString(),extraUsage:a.extra_usage??null,quotas:b}}if(429===e.status){let a,b,d,f=(a=e.headers.get("retry-after"),b=a?.trim()?Number(a):NaN,d=a?Date.parse(a):NaN,Number.isFinite(b)&&b>=0?Date.now()+Math.max(1e3,1e3*b):Number.isFinite(d)&&d>Date.now()?d:Date.now()+18e4);return j.set(c,f),o(f)}if(401===e.status)return{status:401,code:"authentication_error",message:"Claude subscription session expired or is unauthorized. Reconnect Claude if refreshing the session fails."};return{status:e.status,code:403===e.status?"permission_denied":"usage_unavailable",message:`Claude subscription usage is unavailable (HTTP ${e.status}).`}}catch(a){return{message:`Claude connected. Unable to fetch usage: ${a.message}`}}}}};
1
+ "use strict";exports.id=2619,exports.ids=[2619],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]}},10952:(a,b,c)=>{var d=c(12407),e=c(33234);(0,d.qd)({loadProviderQuotaState:e.l,saveProviderQuotaState:e._})},18271:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{GET:()=>n,refreshAndUpdateCredentials:()=>m});var e=c(30369);c(10952);var f=c(59353),g=c(43763),h=c(48400),i=c(18129),j=c(39326),k=c(40615),l=a([e,h]);[e,h]=l.then?(await l)():l;let o=["expired","authentication","unauthorized","401","re-authorize"];async function m(a,b=!1,c=null){let d=await (0,f.Mc)(a.id);if(!d)throw Error("Connection no longer available");let e=["accessToken","refreshToken","idToken"].some(b=>(d[b]??null)!==(a[b]??null))||["copilotToken","copilotTokenExpiresAt"].some(b=>(d.providerSpecificData?.[b]??null)!==(a.providerSpecificData?.[b]??null)),g=d.provider!==a.provider||d.authType!==a.authType;if(a=d,g||e&&a.accessToken)return{connection:a,refreshed:!1};let j=(0,h.getExecutor)(a.provider),k={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||j.needsRefresh(k)))return{connection:a,refreshed:!1};let l=await (0,i.MF)(a.provider,k,()=>j.refreshCredentials(k,console,c));if(!l||l.error){let b=await (0,f.Mc)(a.id);if(b?.accessToken)return{connection:b,refreshed:!1};throw Error("Failed to refresh credentials. Please re-authorize the connection.")}let n={updatedAt:new Date().toISOString()};l.accessToken&&(n.accessToken=l.accessToken),l.refreshToken&&(n.refreshToken=l.refreshToken),l.idToken&&(n.idToken=l.idToken),l.lastRefreshAt&&(n.lastRefreshAt=l.lastRefreshAt);let o=(0,i.Jj)(a.id,l),p=o?.expiresAt??(l.expiresAt?new Date(l.expiresAt).getTime():null);Number.isFinite(p)?(n.expiresAt=new Date(p).toISOString(),n.expiresIn=Math.max(0,Math.ceil((p-Date.now())/1e3))):l.expiresIn&&(n.expiresAt=new Date(Date.now()+1e3*l.expiresIn).toISOString(),n.expiresIn=l.expiresIn);let q={...Object.fromEntries(Object.entries((0,i.Hf)(l)).filter(([b,c])=>JSON.stringify(c)!==JSON.stringify(a.providerSpecificData?.[b]))),...l.copilotToken?{copilotToken:l.copilotToken}:{},...l.copilotTokenExpiresAt?{copilotTokenExpiresAt:l.copilotTokenExpiresAt}:{}};Object.keys(q).length>0&&(n.providerSpecificData=q);let r=await (0,f.rS)(a.id,a,n);if(!r){let b=await (0,f.Mc)(a.id);if(b?.accessToken)return{connection:b,refreshed:!1};throw Error("Connection no longer available")}return{connection:r,refreshed:!0}}async function n(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,i=("apikey"===c.authType||"api_key"===c.authType)&&k.jO.includes(c.provider);if(!h&&!i)return Response.json({error:"Usage not available for this connection"},{status:400});let l=await (0,j.B)(c.providerSpecificData),n={connectionProxyEnabled:!0===l.connectionProxyEnabled,connectionProxyUrl:l.connectionProxyUrl||"",connectionNoProxy:l.connectionNoProxy||"",vercelRelayUrl:l.vercelRelayUrl||"",strictProxy:!1};if(h)try{c=(await m(c,!1,n)).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,n,{force:e});if(h&&function(a){if(!a?.message)return!1;let b=a.message.toLowerCase();return o.some(a=>b.includes(a))}(p)&&c.refreshToken)try{c=(await m(c,!0,n)).connection,p=await (0,g.my)(c,n,{force:e})}catch(a){console.warn(`[Usage] ${c.provider}: force refresh failed: ${a.message}`)}return Response.json(p,{headers:{"Cache-Control":"no-store"}})}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)}})},43763:(a,b,c)=>{c.d(b,{RO:()=>q.RO,Yt:()=>q.Yt,my:()=>Z});var d=c(95812),e=c(46052),f=c(88705);async function g(a,b,c=null){try{if(!a)throw Error("No GitHub access token available. Please re-authorize the connection.");let b=await (0,e.Fm)((0,f.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 g=await b.json();if(g.quota_snapshots){let a=g.quota_snapshots,b=(0,f.eZ)(g.quota_reset_date_utc||g.quota_reset_date);return{plan:g.copilot_plan,resetDate:g.quota_reset_date,quotas:{chat:{...h(a.chat),resetAt:(0,f.eZ)(a.chat?.quota_reset_at)||b},completions:{...h(a.completions),resetAt:(0,f.eZ)(a.completions?.quota_reset_at)||b},premium_interactions:{...h(a.premium_interactions),resetAt:(0,f.eZ)(a.premium_interactions?.quota_reset_at)||b}}}}if(g.monthly_quotas||g.limited_user_quotas){let a=g.monthly_quotas||{},b=g.limited_user_quotas||{},c=(0,f.eZ)(g.limited_user_reset_date);return{plan:g.copilot_plan||g.access_type_sku,resetDate:g.limited_user_reset_date,quotas:{chat:{used:null!==(0,d.Gv)(a.chat)&&null!==(0,d.Gv)(b.chat)?Math.max(0,(0,d.Gv)(a.chat)-(0,d.Gv)(b.chat)):null,remaining:(0,d.Gv)(b.chat),total:(0,d.Gv)(a.chat),unlimited:!1,resetAt:c},completions:{used:null!==(0,d.Gv)(a.completions)&&null!==(0,d.Gv)(b.completions)?Math.max(0,(0,d.Gv)(a.completions)-(0,d.Gv)(b.completions)):null,remaining:(0,d.Gv)(b.completions),total:(0,d.Gv)(a.completions),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 h(a){if(!a)return{used:null,total:null,unlimited:!1};let b=(0,d.Gv)(a.entitlement),c=(0,d.Gv)(a.quota_remaining??a.remaining);return{used:(0,d.Gv)(a.credits_used)??(null!==b&&null!==c?Math.max(0,b-c):null),remainingPercentage:(0,d.Gv)(a.percent_remaining),total:b,remaining:c,unlimited:a.unlimited||!1}}var i=c(28730);let j=(0,f.U)("antigravity");async function k(a,b,c=null){if(!a)return{plan:"Unknown",message:"Gemini CLI access token not available."};try{let e=(0,f.gD)(b?.projectId),g="Unknown";if(!e){let b=await l(a,c);e=(0,f.gD)(b?.cloudaicompanionProject),g=b?.currentTier?.name||g}if(!e)return{plan:g,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 h=await (0,f.u9)((0,f.U)("gemini-cli").quotaUrl,{method:"POST",headers:{Authorization:`Bearer ${a}`,"Content-Type":"application/json"},body:JSON.stringify({project:e}),identity:"gemini-cli",provider:"gemini-cli",format:"gemini"},1e4,c);if(!h.ok)return{plan:g,message:`Gemini CLI quota error (${h.status}).`};let i=await h.json(),j={};if(Array.isArray(i.buckets))for(let a of i.buckets){if(!a.modelId||null==a.remainingFraction)continue;let b=(0,d.Gv)(a.remainingFraction);if(null===b||b<0||b>1)continue;let c=100*b,e=Math.max(0,100-c);j[a.modelId]={used:e,total:100,resetAt:(0,f.eZ)(a.resetTime),remainingPercentage:100*b,unlimited:!1,unit:"%"}}return{plan:g,quotas:j}}catch(a){return{message:`Gemini CLI error: ${a.message}`}}}async function l(a,b=null){try{let c=await (0,f.u9)((0,f.U)("gemini-cli").loadCodeAssistUrl,{method:"POST",headers:{Authorization:`Bearer ${a}`,"Content-Type":"application/json"},body:JSON.stringify({metadata:i.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 m(a,b,c=null){try{let b=await n(a,c),e=b?.cloudaicompanionProject||null,g=await (0,f.u9)(j.quotaApiUrl,{method:"POST",headers:{Authorization:`Bearer ${a}`,"Content-Type":"application/json","X-Client-Name":"antigravity"},body:JSON.stringify({...e?{project:e}:{}}),identity:"antigravity",provider:"antigravity",format:"antigravity"},1e4,c);if(403===g.status)return{message:"Antigravity quota API access forbidden. Chat may still work.",quotas:{}};if(401===g.status)return{message:"Antigravity quota API authentication expired. Chat may still work.",quotas:{}};if(!g.ok)throw Error(`Antigravity API error: ${g.status}`);let h=await g.json(),i={};if(h.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(h.models)){if(!c.quotaInfo||c.isInternal||!a.includes(b))continue;let e=(0,d.Gv)(c.quotaInfo.remainingFraction);if(null===e||e<0||e>1)continue;let g=100*e,h=100*e,j=100-h;i[b]={used:j,total:100,resetAt:(0,f.eZ)(c.quotaInfo.resetTime),remainingPercentage:g,unlimited:!1,unit:"%",displayName:c.displayName||b}}}return{plan:b?.currentTier?.name||"Unknown",quotas:i,subscriptionInfo:b}}catch(a){return console.error("[Antigravity Usage] Error:",a.message,a.cause),{message:`Antigravity error: ${a.message}`}}}async function n(a,b=null){try{let c=await (0,f.u9)(j.loadProjectApiUrl,{method:"POST",headers:{Authorization:`Bearer ${a}`,"Content-Type":"application/json"},body:JSON.stringify({metadata:i.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 o=c(11841),p=c(98594),q=c(49485),r=c(3148);async function s(a,b,c=null){let g=b?.authMethod||"builder-id",h="api_key"===g,i=h?{tokentype:"API_KEY"}:{},j="external_idp"===g?{TokenType:"EXTERNAL_IDP"}:{},k=h?b?.profileArn||"":b?.profileArn||(0,r.We)(g),l=new URLSearchParams({isEmailRequired:"true",origin:"AI_EDITOR",resourceType:"AGENTIC_REQUEST"}),m=!1,n=[];for(let b of[{name:"codewhisperer-get",run:async()=>(0,e.Fm)(`${(0,f.U)("kiro").cwHost}${(0,f.U)("kiro").limitsPath}?${l.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",...i,...j}},c)},{name:"codewhisperer-post",run:async()=>(0,e.Fm)((0,f.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",...i,...j},body:JSON.stringify({origin:"AI_EDITOR",...k?{profileArn:k}:{},resourceType:"AGENTIC_REQUEST"})},c)},{name:"q-get",run:async()=>{let b=new URLSearchParams({origin:"AI_EDITOR",...k?{profileArn:k}:{},resourceType:"AGENTIC_REQUEST"});return(0,e.Fm)(`${(0,f.U)("kiro").qHost}${(0,f.U)("kiro").limitsPath}?${b}`,{method:"GET",headers:{Authorization:`Bearer ${a}`,Accept:"application/json",...i,...j}},c)}}])try{let a=await b.run();if(!a.ok){let c=await a.text().catch(()=>"");(401===a.status||403===a.status)&&(m=!0),n.push(`${b.name}:${a.status}${c?`:${c}`:""}`);continue}let c=await a.json();return function(a){let b=a.usageBreakdownList||[],c={},e=(0,f.eZ)(a.nextDateReset||a.resetDate);return b.forEach(a=>{let b=a.resourceType?.toLowerCase()||"unknown",g=(0,d.Gv)(a.currentUsageWithPrecision),h=(0,d.Gv)(a.usageLimitWithPrecision);if(c[b]={used:g,total:h,remaining:null!==h&&null!==g?Math.max(0,h-g):null,resetAt:e,unlimited:!1},a.freeTrialInfo){let g=(0,d.Gv)(a.freeTrialInfo.currentUsageWithPrecision),h=(0,d.Gv)(a.freeTrialInfo.usageLimitWithPrecision);c[`${b}_freetrial`]={used:g,total:h,remaining:null!==h&&null!==g?Math.max(0,h-g):null,recurring:!1,resetAt:(0,f.eZ)(a.freeTrialInfo.freeTrialExpiry||e),unlimited:!1}}}),{plan:a.subscriptionInfo?.subscriptionTitle||"Kiro",quotas:c}}(c)}catch(a){n.push(`${b.name}:${a.message}`)}return m&&"idc"===g?{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:{}}:m&&("google"===g||"github"===g)?{message:"Kiro quota API authentication expired. Chat may still work.",quotas:{}}:m?{message:"Kiro quota API rejected the current token. Chat may still work.",quotas:{}}:{message:n.length>0?`Unable to fetch Kiro usage right now. (${n[n.length-1]})`:"Unable to fetch Kiro usage right now.",quotas:{}}}let t={minimax:(0,f.U)("minimax").urls,"minimax-cn":(0,f.U)("minimax-cn").urls};function u(a,b,c){return a&&"object"==typeof a?a[b]??a[c]??null:null}function v(a,b,c){if(!a||"object"!=typeof a)return null;let e=a[b]??a[c];if(null==e)return null;let f=(0,d.Gv)(e);return null===f?null:Math.max(0,Math.min(100,f))}function w(a){return Math.max(0,Number(u(a,"current_interval_total_count","currentIntervalTotalCount"))||0)}function x(a){return Math.max(0,Number(u(a,"current_weekly_total_count","currentWeeklyTotalCount"))||0)}function y(a){return!!(w(a)>0||x(a)>0)||null!==v(a,"current_interval_remaining_percent","currentIntervalRemainingPercent")||null!==v(a,"current_weekly_remaining_percent","currentWeeklyRemainingPercent")}function z(a,b,c,d,e,g){let h=Number(u(a,c,d))||0;return h>0?new Date(b+h).toISOString():(0,f.eZ)(u(a,e,g))}function A(a,b,c,e,f,g,h,i,j,k){let l=e(c),m=v(c,h,i);if(l<=0&&null===m)return;let n=(0,d.Gv)(u(c,f,g));if(null===n&&null===m){a[b]={used:null,total:l,remainingPercentage:null,resetAt:z(c,...j),unlimited:!1};return}let o=Math.max(0,n??(k?l*m/100:l*(1-m/100))),p=l,q=o;l<=0&&(p=100,q=k?Math.round(m/100*p):Math.round(p*(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}}(p,q,z(c,...j),k,m)}async function B(a,b,c=null){if(!a)return{message:"MiniMax API key not available."};let d=t[b]||[],f="";for(let b=0;b<d.length;b+=1){let g=d[b],h=b<d.length-1;try{let b=await (0,e.Fm)(g,{method:"GET",headers:{Authorization:`Bearer ${a}`,Accept:"application/json","Content-Type":"application/json"}},c),d=await b.text(),i={};if(d)try{i=JSON.parse(d)}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} ${d}`.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(y);if(0===p.length)return{message:"MiniMax connected. No quota data was returned."};let q=Date.now(),r=g.includes("/coding_plan/remains"),s={};for(let a of p){let b=function(a){let b=String(u(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);A(s,`${b} (5h)`,a,w,"current_interval_usage_count","currentIntervalUsageCount","current_interval_remaining_percent","currentIntervalRemainingPercent",[q,"remains_time","remainsTime","end_time","endTime"],r),A(s,`${b} (7d)`,a,x,"current_weekly_usage_count","currentWeeklyUsageCount","current_weekly_remaining_percent","currentWeeklyRemainingPercent",[q,"weekly_remains_time","weeklyRemainsTime","weekly_end_time","weeklyEndTime"],r)}if(0===Object.keys(s).length)return{message:"MiniMax connected. Unable to extract quota usage."};return{quotas:s}}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 C=c(45350);let D="codebuddy-cn";function E(a,b){return(0,d.Gv)(a??b)}async function F(a,b,c,d=null){let g=a||b;if(!g)return{message:"CodeBuddy CN credential not available."};try{let a=await (0,e.Fm)((0,f.U)(D).url,{method:"POST",headers:{...C.xq[D]?.headers||{},Authorization:`Bearer ${g}`,"Content-Type":"application/json",Accept:"application/json"},body:"{}"},d);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,f.eZ)(a.CycleEndTime);return b?new Date(b).getTime():1/0},j=a=>{let b=i(a),c=(0,f.eZ)(a.DeductionEndTime),d=c?Date.parse(c):NaN;return Number.isFinite(b)&&Number.isFinite(d)&&d-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,f.eZ)(a.CycleStartTime),c=(0,f.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:E(a.CycleCapacityUsedPrecise,a.CycleCapacityUsed),total:E(a.CycleCapacitySizePrecise,a.CycleCapacitySize),resetAt:(0,f.eZ)(a.CycleEndTime),unlimited:!1,recurring:!0}}),m.forEach((a,b)=>{n[`Bonus Pack ${b+1}`]={used:E(a.CapacityUsedPrecise,a.CapacityUsed),total:E(a.CapacitySizePrecise,a.CapacitySize),resetAt:(0,f.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 G={LEVEL_BASIC:"Moderato",LEVEL_INTERMEDIATE:"Allegretto",LEVEL_ADVANCED:"Allegro",LEVEL_STANDARD:"Vivace"};function H({used:a,total:b,remaining:c,resetAt:e}){let g,h=Math.max(0,(0,f.IQ)(b,0)),i=(0,d.Gv)(a),j=null===i?null:Math.max(0,i);return g=h>0&&null!=c&&Number.isFinite(Number(c))?Math.max(0,Number(c))/h*100:h>0&&null!==j?Math.max(0,h-j)/h*100:null,{used:null===j&&null!=c?Math.max(0,h-c):j,total:h,remainingPercentage:g,resetAt:e||null,unlimited:!1}}async function I(a=null,b=null,c=null,g=null){let h="string"==typeof b&&b.length>0,j=!h&&"string"==typeof a&&a.length>0;if(!h&&!j)return{message:"Kimi access token or API key not available."};let k=h?{"x-api-key":b}:{Authorization:`Bearer ${a}`,...(0,i.VK)(g?.deviceId)};try{let a,b=await (0,e.Fm)("https://api.kimi.com/coding/v1/usages",{method:"GET",headers:{...k,"Content-Type":"application/json",Accept:"application/json"}},c),g=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,g)};try{a=JSON.parse(g||"{}")}catch{return{plan:"Kimi Coding",message:"Kimi Coding connected. Invalid JSON response from API."}}let h={},i=a?.usage&&"object"==typeof a.usage?a.usage:{},j=(0,f.IQ)(i.limit??i.Limit,0),l=(0,d.Gv)(i.used??i.Used),m=i.remaining??i.Remaining,n=null!=m&&""!==m?(0,f.IQ)(m,NaN):NaN,o=i.resetTime||i.ResetTime||i.reset_at||i.resetAt;j>0&&(h.Weekly=H({used:l,total:j,remaining:Number.isFinite(n)?n:null,resetAt:(0,f.eZ)(o)}));let p=Array.isArray(a?.limits)?a.limits:[],q=0;for(let a of p){if(!a||"object"!=typeof a)continue;let b=a.detail&&"object"==typeof a.detail?a.detail:{},c=(0,f.IQ)(b.limit??b.Limit,0),e=(0,f.IQ)(b.remaining??b.Remaining,NaN),g=b.resetTime||b.reset_at||b.resetAt;if(c>0){let a=Number.isFinite(e)?e:null;q++,h[1===q?"Ratelimit":`Ratelimit ${q}`]=H({used:null===a?(0,d.Gv)(b.used??b.Used):Math.max(0,c-a),total:c,remaining:a,resetAt:(0,f.eZ)(g)})}}let r=a?.user?.membership?.level,s=function(a){if(!a)return"";let b=String(a);return G[b]?G[b]:b.replace(/^LEVEL_/,"").toLowerCase()}(r)||"Kimi Coding";if(Object.keys(h).length>0)return{plan:s,quotas:h};return{plan:s,message:"Kimi Coding connected. Usage tracked per request."}}catch(a){return{message:`Kimi Coding connected. Unable to fetch usage: ${a.message}`}}}async function J(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,e.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 g=await c.json().catch(()=>null);if(!g||"object"!=typeof g)return{message:"DeepSeek balance response was not JSON."};let h=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 e=(0,d.Gv)(a.total_balance??a.totalBalance);null===e||e<0||c.push({currency:b,totalBalance:e,grantedBalance:(0,f.IQ)(a.granted_balance??a.grantedBalance,0),toppedUpBalance:(0,f.IQ)(a.topped_up_balance??a.toppedUpBalance,0)})}return c}(g);if(0===h.length)return{plan:"DeepSeek",message:"DeepSeek connected. No balance data returned."};let i=!0===g.is_available||!0===g.isAvailable,j={};for(let a of h){let b=Math.max(0,a.totalBalance);j[`Balance (${a.currency})`]={kind:"balance",balance:b,unit:a.currency,used:null,total:null,remainingPercentage:null,resetAt:null,unlimited:!1}}return{plan:i?"DeepSeek":"DeepSeek (Insufficient Balance)",quotas:j}}catch(a){return{message:`DeepSeek error: ${a.message}`}}}var K=c(13247);let L=(a,b=0)=>a&&"object"==typeof a&&"val"in a?(0,f.IQ)(a.val,b):(0,f.IQ)(a,b);function M(a,b,c=null){let d=Math.max(0,b),e=null===a?null:Math.max(0,a);return{used:e,total:d,remainingPercentage:null===e?null:d?Math.max(0,(d-e)/d*100):0,resetAt:c,unlimited:!1}}async function N(a,b=null,c=null){if(!a)return{message:"Grok CLI access token not available."};let d=(0,K.Ab)(a,b||{}),g=(0,f.U)("grok-cli");try{let[a,b]=await Promise.all([(0,e.Fm)(g.url,{method:"GET",headers:d,...K.Ai},c),(0,e.Fm)(g.userUrl,{method:"GET",headers:d,signal:AbortSignal.timeout(2e3),...K.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,e=(0,f.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=L(d.monthlyLimit??c.monthlyLimit,NaN),k=L(d.includedUsed??c.includedUsed??d.totalUsed??c.totalUsed,null);Number.isFinite(j)&&j>0&&(i["Monthly included"]=M(k,j,e));let l=L(d.onDemandCap??c.onDemandCap,NaN),m=L(d.onDemandUsed??c.onDemandUsed,null);Number.isFinite(l)&&l>0&&(i["On-demand"]=M(m,l,e)),0===l&&(i["On-demand"]={used:m,total:0,remainingPercentage:null,unlimited:!1,available:!1,resetAt:e});let n=L(d.prepaidBalance??c.prepaidBalance,NaN);return Number.isFinite(n)&&n>=0&&(i.Prepaid={kind:"balance",balance:n,unit:"credits",used:null,total:null,unlimited:!1}),{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}`}}}function O(a,b){let c=Math.max(0,Math.min(100,a)),d=Math.max(0,100-c);return{used:c,total:100,remaining:d,remainingPercentage:d,resetAt:(0,f.eZ)(b),unlimited:!1}}async function P(a,b=null,c=null){var d;let g,h,i,j=b&&"object"==typeof b?b:{},k="string"==typeof j.subsTierName&&j.subsTierName.trim()?j.subsTierName.trim():"";if(!a)return k?{plan:k,quotas:{},message:"Muse connected. Live quota unavailable — no device token stored, showing last known plan."}:{message:"Muse connected. Subscription quota requires OAuth sign-in (no device token stored)."};let l=process.env.META_MINT_URL||(0,f.U)("muse").url;if(!l)return{message:"Muse connected. Usage endpoint is not configured."};try{g=await (0,e.Fm)(l,{method:"POST",headers:{Authorization:`Bearer ${a}`,"Content-Type":"application/json",Accept:"application/json","x-api-version":"1.0.0"},body:"{}",identity:"muse-code",provider:"muse"},c)}catch(a){return{message:`Muse connected. Unable to fetch usage: ${a.message}`}}if(401===g.status||403===g.status)return{message:"Muse authentication expired. Please re-authorize the connection."};if(!g.ok)return{message:`Muse connected. Usage API temporarily unavailable (${g.status}).`};try{h=await g.json()}catch{return{message:"Muse connected. Usage response was not JSON."}}let m=h?.subs_usage&&"object"==typeof h.subs_usage?h.subs_usage:null,n="string"==typeof h?.subs_tier_name&&h.subs_tier_name.trim()||"string"==typeof m?.tier&&m.tier.trim()||k||"Muse";if(h?.is_subs_active===!1)return{plan:n,quotas:{},message:"Muse connected. No active subscription on this account."};let o={},p=m?.window&&"object"==typeof m.window?m.window:null,q=m?.weekly&&"object"==typeof m.weekly?m.weekly:null,r=(0,f.IQ)(p?.used_percent,NaN);p&&Number.isFinite(r)&&(o[d=p.window_duration_mins,!Number.isFinite(i=(0,f.IQ)(d,NaN))||i<=0?"Session":i%60==0?`Session (${i/60}h)`:`Session (${i}m)`]=O(r,p.resets_at));let s=(0,f.IQ)(q?.used_percent,NaN);return(q&&Number.isFinite(s)&&(o["Weekly (7d)"]=O(s,q.resets_at)),0===Object.keys(o).length)?{plan:n,quotas:o,message:"Muse connected. No active usage window reported — quota is idle."}:{plan:n,quotas:o}}let Q={international:(0,f.U)("glm").url,china:(0,f.U)("glm-cn").url},R=(0,f.U)("vercel-ai-gateway").url;async function S(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 T(a){try{return{message:"iFlow connected. Usage tracked per request."}}catch(a){return{message:"Unable to fetch iFlow usage."}}}async function U(a,b,c=null){if(!a)return{message:"Ollama Cloud API key not available."};try{let b,g=await (0,e.Fm)("https://ollama.com/api/usage",{headers:{Authorization:`Bearer ${a}`,Accept:"application/json"}},c);if(401===g.status||403===g.status)return{message:"Ollama Cloud API key invalid or expired."};if(!g.ok)return{message:`Ollama Cloud usage API error (${g.status}).`};try{b=await g.json()}catch{return{message:"Ollama Cloud usage response was not JSON."}}let h=await (0,e.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),i="string"==typeof h?.Plan?h.Plan:"",j=i?i.charAt(0).toUpperCase()+i.slice(1).toLowerCase():"Ollama Cloud",k=b?.limits&&"object"==typeof b.limits?b.limits:{};function f(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 l=k.session?.usage,m=k.weekly?.usage,n=(0,d.Gv)(l),o=(0,d.Gv)(m),p=null!==n&&n>=0&&n<=1,q=null!==o&&o>=0&&o<=1;if(!p&&!q)return{plan:j,message:"Ollama Cloud connected. No usage limits reported.",quotas:{}};let r={};return p&&(r["Session (5h)"]=f(n)),q&&(r["Weekly (7d)"]=f(o)),{plan:j,quotas:r}}catch(a){return{message:`Ollama Cloud error: ${a.message}`}}}async function V(a,b,c=null){if(!a)return{message:"GLM API key not available."};let g=Q["glm-cn"===b?"china":"international"];try{let b=await (0,e.Fm)(g,{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 h=await b.json(),i=h?.data&&"object"==typeof h.data?h.data:{},j=Array.isArray(i.limits)?i.limits:[],k={};for(let a of j){if(!a||!["TOKENS_LIMIT","TIME_LIMIT"].includes(a.type))continue;if("TIME_LIMIT"===a.type){k.Tools={used:(0,d.Gv)(a.currentValue),total:(0,d.Gv)(a.usage),remaining:(0,d.Gv)(a.remaining),resetAt:(0,f.eZ)(a.nextResetTime),unlimited:!1};continue}let b=(0,d.Gv)(a.percentage),c=Number(a.nextResetTime)||0,e=null===b||b<0?null:Math.max(0,100-b),g=k.session?`session ${Object.keys(k).length+1}`:"session";k[g]={used:b,total:100,remaining:e,remainingPercentage:e,resetAt:(0,f.eZ)(c),unlimited:!1}}let l="string"==typeof i.level?i.level:"";return{plan:l?l.charAt(0).toUpperCase()+l.slice(1).toLowerCase():"Unknown",quotas:k}}catch(a){return{message:`GLM error: ${a.message}`}}}async function W(a,b=null){if(!a)return{message:"Vercel AI Gateway API key not available."};try{let c=await (0,e.Fm)(R,{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 f=await c.json(),g=(0,d.Gv)(f?.balance),h=(0,d.Gv)(f?.total_used);if(null===g||g<0)return{plan:"Pay-as-you-go",message:"Credit balance unavailable.",quotas:{}};return{plan:"Pay-as-you-go",quotas:{"Balance (USD)":{kind:"balance",balance:g,unit:"USD",used:h,total:null,remainingPercentage:null,unlimited:!1,resetAt:null}}}}catch(a){return{message:`Vercel AI Gateway error: ${a.message}`}}}async function X(a,b=null){if(!a)return{message:"Qoder usage unavailable: no access token"};try{let c=await (0,e.Fm)((0,f.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 g=await c.json().catch(()=>null);if(!g)return{message:"Qoder connected. Usage response was not JSON."};let h=g.userQuota||{},i=g.orgResourcePackage||{},j=Number.isFinite(Number(g.expiresAt))&&Number(g.expiresAt)>0?Number(g.expiresAt):null,k=j?(0,f.eZ)(j):null;return{quotas:{user:{total:(0,d.Gv)(h.total),used:(0,d.Gv)(h.used),remaining:(0,d.Gv)(h.remaining),unit:h.unit||"credits",resetAt:k},organization:{total:(0,d.Gv)(i.total),used:(0,d.Gv)(i.used),remaining:(0,d.Gv)(i.remaining),unit:i.unit||"credits",resetAt:k}},totalUsagePercentage:Number(g.totalUsagePercentage)||0,isQuotaExceeded:!!g.isQuotaExceeded,expiresAt:j}}catch(a){return{message:`Qoder connected. Unable to fetch usage: ${a.message}`}}}let Y={github:a=>g(a.accessToken,a.providerSpecificData,a.proxyOptions),"gemini-cli":a=>k(a.accessToken,a.providerDataWithProjectId,a.proxyOptions),antigravity:a=>m(a.accessToken,a.providerSpecificData,a.proxyOptions),claude:a=>(0,p.g)(a.accessToken,a.proxyOptions,{force:a.force,connectionId:a.connectionId,quotaIdentity:a.quotaIdentity}),codex:a=>(0,q.Tl)(a.accessToken,a.proxyOptions,a.providerSpecificData),kiro:a=>s(a.accessToken,a.providerSpecificData,a.proxyOptions),qoder:a=>X(a.accessToken,a.proxyOptions),qwen:a=>S(a.accessToken,a.providerSpecificData),iflow:a=>T(a.accessToken),ollama:a=>U(a.apiKey,a.providerSpecificData,a.proxyOptions),glm:a=>V(a.apiKey,a.provider,a.proxyOptions),"glm-cn":a=>V(a.apiKey,a.provider,a.proxyOptions),minimax:a=>B(a.apiKey,a.provider,a.proxyOptions),"minimax-cn":a=>B(a.apiKey,a.provider,a.proxyOptions),"vercel-ai-gateway":a=>W(a.apiKey,a.proxyOptions),"codebuddy-cn":a=>F(a.accessToken,a.apiKey,a.providerSpecificData,a.proxyOptions),kimi:a=>I(a.accessToken,a.apiKey,a.proxyOptions,a.providerSpecificData),"kimi-coding":a=>I(a.accessToken,a.apiKey,a.proxyOptions,a.providerSpecificData),deepseek:a=>J(a.apiKey,a.proxyOptions),"grok-cli":a=>N(a.accessToken,a.providerSpecificData,a.proxyOptions),muse:a=>P(a.providerSpecificData?.dcaToken||a.refreshToken,a.providerSpecificData,a.proxyOptions)};async function Z(a,b=null,c={}){let{provider:d,accessToken:e,apiKey:f,refreshToken:g,providerSpecificData:h,projectId:i}=a,j={...h||{},...i?{projectId:i}:{}},k=Y[d];if(!k)return{message:`Usage API not implemented for ${d}`};let l=await k({provider:d,connectionId:a.id,quotaIdentity:(0,o.AN)(a),accessToken:e,apiKey:f,refreshToken:g,providerSpecificData:h,providerDataWithProjectId:j,proxyOptions:b,force:!0===c.force});return l?.quotas&&!l.stale?{...l,observedAt:l.observedAt||new Date().toISOString()}:l}},49485:(a,b,c)=>{c.d(b,{RO:()=>o,Tl:()=>m,Yt:()=>n});var d=c(95812),e=c(46052),f=c(88705);let g={usageUrl:(0,f.U)("codex").url,resetCreditsUrl:(0,f.U)("codex").resetCreditsUrl,resetCreditsConsumeUrl:(0,f.U)("codex").resetCreditsConsumeUrl};function h(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 i(a){return a?.workspaceId||a?.accountId||a?.chatgptAccountId||null}function j(a){return!a||"object"!=typeof a||Array.isArray(a)?null:a.rate_limit&&"object"==typeof a.rate_limit?a.rate_limit:a}function k(a){let b=(0,d.Gv)(a?.used_percent??a?.percent_used),c=null!==b&&b>=0?b:null,e=(0,d.Gv)(a?.limit_window_seconds);return{used:c,total:100,remaining:null===c?null:Math.max(0,100-c),...e>0?{windowSeconds:e,displayName:18e3===e?"Session (5h)":604800===e?"Weekly (7d)":`Window (${e/3600}h)`}:{},resetAt:(0,f.eZ)(a?.reset_at??a?.resets_at??a?.resetAt??null)||((0,d.Gv)(a?.reset_after_seconds)>0?new Date(Date.now()+1e3*(0,d.Gv)(a.reset_after_seconds)).toISOString():null),unlimited:!1}}function l(a,b,c){let d=j(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"]=k(e),!0===d.limit_reached&&(a[b?`${b}_session`:"session"].blocked=!0),g=!0),f&&(a[b?`${b}_weekly`:"weekly"]=k(f),!0===d.limit_reached&&(a[b?`${b}_weekly`:"weekly"].blocked=!0),g=!0),g}async function m(a,b=null,c=null){try{let d=await (0,e.Fm)(g.usageUrl,{method:"GET",headers:{Authorization:`Bearer ${a}`,Accept:"application/json",...i(c)?{"ChatGPT-Account-ID":i(c)}:{}},identity:"codex-cli",provider:"codex",format:"codex"},b);if(!d.ok)return{message:`Codex connected. Usage API temporarily unavailable (${d.status}).`};let h=await d.json(),k=h.rate_limit||h.rate_limits||h.rate_limits_by_limit_id?.codex||{},m=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}(h),n=Math.max(0,(0,f.IQ)(h.rate_limit_reset_credits?.available_count,0)),o={};for(let a of(l(o,"",k),l(o,"review",m),Array.isArray(h.additional_rate_limits)?h.additional_rate_limits:[])){if(a===m)continue;let b=a.limit_name||a.metered_feature||a.id;"string"==typeof b&&b&&l(o,b,a)}for(let[a,b]of Object.entries(h.rate_limits_by_limit_id||{}))"codex"!==a&&b!==m&&l(o,a,b);for(let[a,b]of Object.entries(o))b.displayName&&"session"!==a&&"weekly"!==a&&(b.displayName=`${a.replace(/_(session|weekly)$/,"")} \xb7 ${b.displayName}`);return{plan:h.plan_type||h.summary?.plan||"unknown",limitReached:j(k)?.limit_reached||!1,reviewLimitReached:j(m)?.limit_reached||!1,resetCredits:{availableCount:n},quotas:o}}catch(a){throw Error(`Failed to fetch Codex usage: ${a.message}`)}}async function n(a,b=null,c=null){if(!a)throw Error("No Codex access token available. Please re-authorize the connection.");let d=i(c),j={Authorization:`Bearer ${a}`,Accept:"application/json","OpenAI-Beta":"codex-1",originator:"codex_cli_rs"};d&&(j["ChatGPT-Account-ID"]=d);let k=await (0,e.Fm)(g.resetCreditsUrl,{method:"GET",headers:j,identity:"codex-cli",provider:"codex",format:"codex"},b),l=null;try{l=await k.json()}catch{l=null}if(!k.ok)throw Error(l?.message||l?.error||l?.detail||`Codex reset credits API unavailable (${k.status}).`);let m=Array.isArray(l?.credits)?l.credits:[];return{availableCount:Math.max(0,(0,f.IQ)(l?.available_count??l?.availableCount,0)),credits:m.map(a=>({status:String(a?.status||"unknown"),grantedAt:h(a?.granted_at??a?.grantedAt),expiresAt:h(a?.expires_at??a?.expiresAt)}))}}async function o(a,b,c=null){let d;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{d=await (0,e.Fm)(g.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 f=await d.text();h=f?JSON.parse(f):null}catch(a){throw Error(`Failed to consume Codex reset credit: ${a.message}`)}let i=h?.code||null,j=(0,f.IQ)(h?.windows_reset,0);return{ok:d.ok&&("reset"===i||j>0),noCredit:d.ok&&"no_credit"===i,status:d.status,code:i,windowsReset:j,message:h?.message||null,raw:h}}},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:()=>m});var d=c(12407),e=c(11841),f=c(46052),g=c(92675),h=c(88705);let i={oauthUsageUrl:(0,h.U)("claude").oauthUrl,apiVersion:g.b8},j=new Map,k=e.R3,l=new Map;async function m(a,b=null,c={}){let e=c?.force===!0,f=c?.quotaIdentity,g=f?.connectionId&&f.createdAt?JSON.stringify(f):c?.connectionId||a,h=g&&l.get(g);if(h?.promise)return h.promise;let i=h?.result||null,q=h?.expiresAt||0,r=(0,d.oC)(),s=f?.connectionId&&f.createdAt&&r.loadProviderQuotaState&&r.saveProviderQuotaState;if(!s&&!e&&q>Date.now()&&!(j.get(g)>Date.now()))return i;let t=(async()=>{if(s){let a;try{a=await r.loadProviderQuotaState(f)}catch{let a=j.get(g),b=a>Date.now()?o(a):{code:"quota_state_unavailable",message:"Claude quota history is temporarily unavailable. Try again after storage recovers."};return i?{...i,...b,stale:!0}:b}if(a?.invalidIdentity)return n();a?.result&&(!i||Date.parse(a.result.observedAt)>=Date.parse(i.observedAt))&&(i=a.result,q=h?.expiresAt===0&&h.result?.observedAt===a.result.observedAt?0:a.expiresAt||0);let b=Date.parse(a?.retryAt);Number.isFinite(b)&&j.set(g,Math.max(j.get(g)||0,b))}let c=j.get(g);if(c>Date.now())return i?{...i,...o(c),stale:!0}:o(c);if(!e&&q>Date.now()&&i)return l.set(g,{result:i,expiresAt:q}),i;let d=await p(a,b,g),m=d?.quotas&&!d.stale;if(s)try{let a=await r.saveProviderQuotaState(f,{retryAt:429===d.status?d.retryAt:null,result:m?d:i,expiresAt:m?Date.parse(d.observedAt)+k:0});if(!1===a)return n()}catch{console.warn("[Usage] Unable to persist quota state; retaining in-process backoff.")}return g&&m?(l.set(g,{result:d,expiresAt:Date.parse(d.observedAt)+k}),d):i?{...i,...d,stale:!0}:d})();return g&&l.set(g,{promise:t,result:i,expiresAt:q}),t.then(()=>{let a=l.get(g);g&&a?.promise===t&&(i?l.set(g,{result:i,expiresAt:0}):l.delete(g))}),t}function n(){return{code:"connection_changed",message:"Claude connection changed. Reload its quota information."}}function o(a){return{status:429,code:"rate_limited",retryAt:new Date(a).toISOString(),retryAfterSeconds:Math.max(0,Math.ceil((a-Date.now())/1e3)),message:`Claude subscription usage is rate-limited. Try again after ${new Date(a).toUTCString()}.`}}async function p(a,b=null,c=a){try{let d=j.get(c);if(d&&Date.now()<d)return o(d);let e=await (0,f.Fm)(i.oauthUsageUrl,{method:"GET",headers:{Authorization:`Bearer ${a}`,"anthropic-beta":"oauth-2025-04-20","anthropic-version":i.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.isFinite(a.utilization)&&a.utilization>=0,d=a=>{let b=a.utilization,c=Math.max(0,100-b);return{used:b,total:100,remaining:c,remainingPercentage:c,resetAt:(0,h.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",observedAt:new Date().toISOString(),extraUsage:a.extra_usage??null,quotas:b}}if(429===e.status){let a,b,d,f=(a=e.headers.get("retry-after"),b=a?.trim()?Number(a):NaN,d=a?Date.parse(a):NaN,Number.isFinite(b)&&b>=0?Date.now()+Math.max(1e3,1e3*b):Number.isFinite(d)&&d>Date.now()?d:Date.now()+18e4);return j.set(c,f),o(f)}if(401===e.status)return{status:401,code:"authentication_error",message:"Claude subscription session expired or is unauthorized. Reconnect Claude if refreshing the session fails."};return{status:e.status,code:403===e.status?"permission_denied":"usage_unavailable",message:`Claude subscription usage is unavailable (HTTP ${e.status}).`}}catch(a){return{message:`Claude connected. Unable to fetch usage: ${a.message}`}}}}};