zevairouter 1.1.2 → 1.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (345) hide show
  1. package/CHANGELOG.md +5 -0
  2. package/cli/app/.next-cli-build/BUILD_ID +1 -1
  3. package/cli/app/.next-cli-build/app-path-routes-manifest.json +6 -6
  4. package/cli/app/.next-cli-build/build-manifest.json +2 -2
  5. package/cli/app/.next-cli-build/prerender-manifest.json +3 -3
  6. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/automation/page_client-reference-manifest.js +1 -1
  7. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
  8. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page_client-reference-manifest.js +1 -1
  9. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  10. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  11. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
  12. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/context/page_client-reference-manifest.js +1 -1
  13. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  14. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js +1 -1
  15. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page_client-reference-manifest.js +1 -1
  16. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page_client-reference-manifest.js +1 -1
  17. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page_client-reference-manifest.js +1 -1
  18. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
  19. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  20. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/playground/page_client-reference-manifest.js +1 -1
  21. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  22. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  23. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  24. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  25. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
  26. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page_client-reference-manifest.js +1 -1
  27. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
  28. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  29. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page_client-reference-manifest.js +1 -1
  30. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/terminal/page_client-reference-manifest.js +1 -1
  31. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page_client-reference-manifest.js +1 -1
  32. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  33. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  34. package/cli/app/.next-cli-build/server/app/_global-error/page_client-reference-manifest.js +1 -1
  35. package/cli/app/.next-cli-build/server/app/_global-error.html +1 -1
  36. package/cli/app/.next-cli-build/server/app/_global-error.rsc +1 -1
  37. package/cli/app/.next-cli-build/server/app/_global-error.segments/_full.segment.rsc +1 -1
  38. package/cli/app/.next-cli-build/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  39. package/cli/app/.next-cli-build/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  40. package/cli/app/.next-cli-build/server/app/_global-error.segments/_head.segment.rsc +1 -1
  41. package/cli/app/.next-cli-build/server/app/_global-error.segments/_index.segment.rsc +1 -1
  42. package/cli/app/.next-cli-build/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  43. package/cli/app/.next-cli-build/server/app/_not-found/page_client-reference-manifest.js +1 -1
  44. package/cli/app/.next-cli-build/server/app/_not-found.html +1 -1
  45. package/cli/app/.next-cli-build/server/app/_not-found.rsc +3 -3
  46. package/cli/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +3 -3
  47. package/cli/app/.next-cli-build/server/app/_not-found.segments/_head.segment.rsc +1 -1
  48. package/cli/app/.next-cli-build/server/app/_not-found.segments/_index.segment.rsc +3 -3
  49. package/cli/app/.next-cli-build/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  50. package/cli/app/.next-cli-build/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  51. package/cli/app/.next-cli-build/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  52. package/cli/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js +4 -4
  53. package/cli/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js +2 -2
  54. package/cli/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js +2 -2
  55. package/cli/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js +1 -1
  56. package/cli/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js +1 -1
  57. package/cli/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js +2 -2
  58. package/cli/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js +1 -1
  59. package/cli/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js +2 -2
  60. package/cli/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js +1 -1
  61. package/cli/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js +3 -3
  62. package/cli/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js +1 -1
  63. package/cli/app/.next-cli-build/server/app/api/cli-tools/grok-build-settings/route.js +1 -1
  64. package/cli/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js +1 -1
  65. package/cli/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js +2 -2
  66. package/cli/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js +2 -2
  67. package/cli/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js +2 -2
  68. package/cli/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js +1 -1
  69. package/cli/app/.next-cli-build/server/app/api/models/route.js +1 -1
  70. package/cli/app/.next-cli-build/server/app/api/providers/route.js +1 -1
  71. package/cli/app/.next-cli-build/server/app/api/translator/console-logs/route.js +1 -1
  72. package/cli/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js +1 -1
  73. package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js +2 -2
  74. package/cli/app/.next-cli-build/server/app/api/version/route.js +1 -1
  75. package/cli/app/.next-cli-build/server/app/callback/page_client-reference-manifest.js +1 -1
  76. package/cli/app/.next-cli-build/server/app/callback.html +1 -1
  77. package/cli/app/.next-cli-build/server/app/callback.rsc +3 -3
  78. package/cli/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +3 -3
  79. package/cli/app/.next-cli-build/server/app/callback.segments/_head.segment.rsc +1 -1
  80. package/cli/app/.next-cli-build/server/app/callback.segments/_index.segment.rsc +3 -3
  81. package/cli/app/.next-cli-build/server/app/callback.segments/_tree.segment.rsc +1 -1
  82. package/cli/app/.next-cli-build/server/app/callback.segments/callback/__PAGE__.segment.rsc +1 -1
  83. package/cli/app/.next-cli-build/server/app/callback.segments/callback.segment.rsc +1 -1
  84. package/cli/app/.next-cli-build/server/app/dashboard/automation.html +1 -1
  85. package/cli/app/.next-cli-build/server/app/dashboard/automation.rsc +5 -5
  86. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/!KGRhc2hib2FyZCk/dashboard/automation/__PAGE__.segment.rsc +2 -2
  87. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/!KGRhc2hib2FyZCk/dashboard/automation.segment.rsc +1 -1
  88. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  89. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  90. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/_full.segment.rsc +5 -5
  91. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/_head.segment.rsc +1 -1
  92. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/_index.segment.rsc +3 -3
  93. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/_tree.segment.rsc +1 -1
  94. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.html +1 -1
  95. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.rsc +5 -5
  96. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +2 -2
  97. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat.segment.rsc +1 -1
  98. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  99. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  100. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_full.segment.rsc +5 -5
  101. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_head.segment.rsc +1 -1
  102. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_index.segment.rsc +3 -3
  103. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +1 -1
  104. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.html +1 -1
  105. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.rsc +5 -5
  106. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +2 -2
  107. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools.segment.rsc +1 -1
  108. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  109. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  110. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_full.segment.rsc +5 -5
  111. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_head.segment.rsc +1 -1
  112. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_index.segment.rsc +3 -3
  113. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +1 -1
  114. package/cli/app/.next-cli-build/server/app/dashboard/combos.html +1 -1
  115. package/cli/app/.next-cli-build/server/app/dashboard/combos.rsc +5 -5
  116. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +2 -2
  117. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos.segment.rsc +1 -1
  118. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  119. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  120. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/_full.segment.rsc +5 -5
  121. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/_head.segment.rsc +1 -1
  122. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/_index.segment.rsc +3 -3
  123. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/_tree.segment.rsc +1 -1
  124. package/cli/app/.next-cli-build/server/app/dashboard/context.html +1 -1
  125. package/cli/app/.next-cli-build/server/app/dashboard/context.rsc +5 -5
  126. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/!KGRhc2hib2FyZCk/dashboard/context/__PAGE__.segment.rsc +2 -2
  127. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/!KGRhc2hib2FyZCk/dashboard/context.segment.rsc +1 -1
  128. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  129. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  130. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/_full.segment.rsc +5 -5
  131. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/_head.segment.rsc +1 -1
  132. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/_index.segment.rsc +3 -3
  133. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/_tree.segment.rsc +1 -1
  134. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.html +1 -1
  135. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.rsc +5 -5
  136. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +2 -2
  137. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint.segment.rsc +1 -1
  138. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  139. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  140. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/_full.segment.rsc +5 -5
  141. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/_head.segment.rsc +1 -1
  142. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/_index.segment.rsc +3 -3
  143. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/_tree.segment.rsc +1 -1
  144. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.html +1 -1
  145. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.rsc +5 -5
  146. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web/__PAGE__.segment.rsc +2 -2
  147. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web.segment.rsc +1 -1
  148. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers.segment.rsc +1 -1
  149. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  150. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  151. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_full.segment.rsc +5 -5
  152. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_head.segment.rsc +1 -1
  153. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_index.segment.rsc +3 -3
  154. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_tree.segment.rsc +1 -1
  155. package/cli/app/.next-cli-build/server/app/dashboard/mitm.html +1 -1
  156. package/cli/app/.next-cli-build/server/app/dashboard/mitm.rsc +5 -5
  157. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +2 -2
  158. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm.segment.rsc +1 -1
  159. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  160. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  161. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/_full.segment.rsc +5 -5
  162. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/_head.segment.rsc +1 -1
  163. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/_index.segment.rsc +3 -3
  164. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/_tree.segment.rsc +1 -1
  165. package/cli/app/.next-cli-build/server/app/dashboard/playground.html +1 -1
  166. package/cli/app/.next-cli-build/server/app/dashboard/playground.rsc +5 -5
  167. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/!KGRhc2hib2FyZCk/dashboard/playground/__PAGE__.segment.rsc +2 -2
  168. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/!KGRhc2hib2FyZCk/dashboard/playground.segment.rsc +1 -1
  169. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  170. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  171. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/_full.segment.rsc +5 -5
  172. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/_head.segment.rsc +1 -1
  173. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/_index.segment.rsc +3 -3
  174. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/_tree.segment.rsc +1 -1
  175. package/cli/app/.next-cli-build/server/app/dashboard/profile.html +1 -1
  176. package/cli/app/.next-cli-build/server/app/dashboard/profile.rsc +5 -5
  177. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +2 -2
  178. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile.segment.rsc +1 -1
  179. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  180. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  181. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/_full.segment.rsc +5 -5
  182. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/_head.segment.rsc +1 -1
  183. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/_index.segment.rsc +3 -3
  184. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/_tree.segment.rsc +1 -1
  185. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.html +1 -1
  186. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.rsc +5 -5
  187. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +2 -2
  188. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new.segment.rsc +1 -1
  189. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
  190. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  191. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  192. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/_full.segment.rsc +5 -5
  193. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/_head.segment.rsc +1 -1
  194. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/_index.segment.rsc +3 -3
  195. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/_tree.segment.rsc +1 -1
  196. package/cli/app/.next-cli-build/server/app/dashboard/providers.html +1 -1
  197. package/cli/app/.next-cli-build/server/app/dashboard/providers.rsc +5 -5
  198. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +2 -2
  199. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
  200. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  201. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  202. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/_full.segment.rsc +5 -5
  203. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/_head.segment.rsc +1 -1
  204. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/_index.segment.rsc +3 -3
  205. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/_tree.segment.rsc +1 -1
  206. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.html +1 -1
  207. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.rsc +5 -5
  208. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +2 -2
  209. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools.segment.rsc +1 -1
  210. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  211. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  212. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +5 -5
  213. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_head.segment.rsc +1 -1
  214. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_index.segment.rsc +3 -3
  215. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +1 -1
  216. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.html +1 -1
  217. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.rsc +5 -5
  218. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard/pxpipe/__PAGE__.segment.rsc +2 -2
  219. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard/pxpipe.segment.rsc +1 -1
  220. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  221. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  222. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_full.segment.rsc +5 -5
  223. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_head.segment.rsc +1 -1
  224. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_index.segment.rsc +3 -3
  225. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_tree.segment.rsc +1 -1
  226. package/cli/app/.next-cli-build/server/app/dashboard/quota.html +2 -2
  227. package/cli/app/.next-cli-build/server/app/dashboard/quota.rsc +6 -6
  228. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +3 -3
  229. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota.segment.rsc +1 -1
  230. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  231. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  232. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/_full.segment.rsc +6 -6
  233. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/_head.segment.rsc +1 -1
  234. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/_index.segment.rsc +3 -3
  235. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/_tree.segment.rsc +1 -1
  236. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.html +1 -1
  237. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.rsc +4 -4
  238. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/!KGRhc2hib2FyZCk/dashboard/settings/pricing/__PAGE__.segment.rsc +1 -1
  239. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/!KGRhc2hib2FyZCk/dashboard/settings/pricing.segment.rsc +1 -1
  240. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/!KGRhc2hib2FyZCk/dashboard/settings.segment.rsc +1 -1
  241. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  242. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  243. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +4 -4
  244. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_head.segment.rsc +1 -1
  245. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_index.segment.rsc +3 -3
  246. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +1 -1
  247. package/cli/app/.next-cli-build/server/app/dashboard/skills.html +1 -1
  248. package/cli/app/.next-cli-build/server/app/dashboard/skills.rsc +5 -5
  249. package/cli/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills/__PAGE__.segment.rsc +2 -2
  250. package/cli/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills.segment.rsc +1 -1
  251. package/cli/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  252. package/cli/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  253. package/cli/app/.next-cli-build/server/app/dashboard/skills.segments/_full.segment.rsc +5 -5
  254. package/cli/app/.next-cli-build/server/app/dashboard/skills.segments/_head.segment.rsc +1 -1
  255. package/cli/app/.next-cli-build/server/app/dashboard/skills.segments/_index.segment.rsc +3 -3
  256. package/cli/app/.next-cli-build/server/app/dashboard/skills.segments/_tree.segment.rsc +1 -1
  257. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.html +1 -1
  258. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.rsc +5 -5
  259. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver/__PAGE__.segment.rsc +2 -2
  260. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver.segment.rsc +1 -1
  261. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  262. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  263. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/_full.segment.rsc +5 -5
  264. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/_head.segment.rsc +1 -1
  265. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/_index.segment.rsc +3 -3
  266. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/_tree.segment.rsc +1 -1
  267. package/cli/app/.next-cli-build/server/app/dashboard/translator.html +1 -1
  268. package/cli/app/.next-cli-build/server/app/dashboard/translator.rsc +5 -5
  269. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +2 -2
  270. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator.segment.rsc +1 -1
  271. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  272. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  273. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/_full.segment.rsc +5 -5
  274. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/_head.segment.rsc +1 -1
  275. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/_index.segment.rsc +3 -3
  276. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/_tree.segment.rsc +1 -1
  277. package/cli/app/.next-cli-build/server/app/dashboard/usage.html +1 -1
  278. package/cli/app/.next-cli-build/server/app/dashboard/usage.rsc +5 -5
  279. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +2 -2
  280. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage.segment.rsc +1 -1
  281. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  282. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  283. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/_full.segment.rsc +5 -5
  284. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/_head.segment.rsc +1 -1
  285. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/_index.segment.rsc +3 -3
  286. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/_tree.segment.rsc +1 -1
  287. package/cli/app/.next-cli-build/server/app/dashboard.html +1 -1
  288. package/cli/app/.next-cli-build/server/app/dashboard.rsc +5 -5
  289. package/cli/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +2 -2
  290. package/cli/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  291. package/cli/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  292. package/cli/app/.next-cli-build/server/app/dashboard.segments/_full.segment.rsc +5 -5
  293. package/cli/app/.next-cli-build/server/app/dashboard.segments/_head.segment.rsc +1 -1
  294. package/cli/app/.next-cli-build/server/app/dashboard.segments/_index.segment.rsc +3 -3
  295. package/cli/app/.next-cli-build/server/app/dashboard.segments/_tree.segment.rsc +1 -1
  296. package/cli/app/.next-cli-build/server/app/index.html +1 -1
  297. package/cli/app/.next-cli-build/server/app/index.rsc +3 -3
  298. package/cli/app/.next-cli-build/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  299. package/cli/app/.next-cli-build/server/app/index.segments/_full.segment.rsc +3 -3
  300. package/cli/app/.next-cli-build/server/app/index.segments/_head.segment.rsc +1 -1
  301. package/cli/app/.next-cli-build/server/app/index.segments/_index.segment.rsc +3 -3
  302. package/cli/app/.next-cli-build/server/app/index.segments/_tree.segment.rsc +1 -1
  303. package/cli/app/.next-cli-build/server/app/landing/page_client-reference-manifest.js +1 -1
  304. package/cli/app/.next-cli-build/server/app/landing.html +1 -1
  305. package/cli/app/.next-cli-build/server/app/landing.rsc +4 -4
  306. package/cli/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +4 -4
  307. package/cli/app/.next-cli-build/server/app/landing.segments/_head.segment.rsc +1 -1
  308. package/cli/app/.next-cli-build/server/app/landing.segments/_index.segment.rsc +3 -3
  309. package/cli/app/.next-cli-build/server/app/landing.segments/_tree.segment.rsc +1 -1
  310. package/cli/app/.next-cli-build/server/app/landing.segments/landing/__PAGE__.segment.rsc +2 -2
  311. package/cli/app/.next-cli-build/server/app/landing.segments/landing.segment.rsc +1 -1
  312. package/cli/app/.next-cli-build/server/app/login/page_client-reference-manifest.js +1 -1
  313. package/cli/app/.next-cli-build/server/app/login.html +1 -1
  314. package/cli/app/.next-cli-build/server/app/login.rsc +4 -4
  315. package/cli/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +4 -4
  316. package/cli/app/.next-cli-build/server/app/login.segments/_head.segment.rsc +1 -1
  317. package/cli/app/.next-cli-build/server/app/login.segments/_index.segment.rsc +3 -3
  318. package/cli/app/.next-cli-build/server/app/login.segments/_tree.segment.rsc +1 -1
  319. package/cli/app/.next-cli-build/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
  320. package/cli/app/.next-cli-build/server/app/login.segments/login.segment.rsc +1 -1
  321. package/cli/app/.next-cli-build/server/app/page_client-reference-manifest.js +1 -1
  322. package/cli/app/.next-cli-build/server/app-paths-manifest.json +6 -6
  323. package/cli/app/.next-cli-build/server/chunks/1131.js +1 -1
  324. package/cli/app/.next-cli-build/server/chunks/1350.js +1 -1
  325. package/cli/app/.next-cli-build/server/chunks/3949.js +1 -1
  326. package/cli/app/.next-cli-build/server/chunks/4827.js +1 -1
  327. package/cli/app/.next-cli-build/server/chunks/5330.js +1 -1
  328. package/cli/app/.next-cli-build/server/chunks/7319.js +2 -2
  329. package/cli/app/.next-cli-build/server/chunks/7634.js +1 -1
  330. package/cli/app/.next-cli-build/server/chunks/8306.js +1 -1
  331. package/cli/app/.next-cli-build/server/chunks/8491.js +1 -1
  332. package/cli/app/.next-cli-build/server/chunks/8895.js +6 -6
  333. package/cli/app/.next-cli-build/server/chunks/9489.js +1 -1
  334. package/cli/app/.next-cli-build/server/middleware-build-manifest.js +1 -1
  335. package/cli/app/.next-cli-build/server/pages/404.html +1 -1
  336. package/cli/app/.next-cli-build/server/pages/500.html +1 -1
  337. package/cli/app/.next-cli-build/server/server-reference-manifest.js +1 -1
  338. package/cli/app/.next-cli-build/server/server-reference-manifest.json +1 -1
  339. package/cli/app/.next-cli-build/static/chunks/{620-2075800c876e9693.js → 620-efc89e1a3218d121.js} +1 -1
  340. package/cli/app/CHANGELOG.md +5 -0
  341. package/cli/app/package.json +1 -1
  342. package/cli/package.json +1 -1
  343. package/package.json +1 -1
  344. /package/cli/app/.next-cli-build/static/{3lpmBgM-rKS2xpNTmBYlY → ovgrVe3rKmV4t4z_SEd8D}/_buildManifest.js +0 -0
  345. /package/cli/app/.next-cli-build/static/{3lpmBgM-rKS2xpNTmBYlY → ovgrVe3rKmV4t4z_SEd8D}/_ssgManifest.js +0 -0
@@ -3,7 +3,7 @@ MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDA8iMH5c02LilrsERw9t6Pv5Nc
3
3
  4k6Pz1EaDicBMpdpxKduSZu5OANqUq8er4GM95omAGIOPOh+Nx0spthYA2BqGz+l
4
4
  6HRkPJ7S236FZz73In/KVuLnwI8JJ2CbuJap8kvheCCZpmAWpb/cPx/3Vr/J6I17
5
5
  XcW+ML9FoCI6AOvOzwIDAQAB
6
- -----END PUBLIC KEY-----`},39006:a=>{a.exports=JSON.parse('{"name":"zevairouter","version":"1.1.2","description":"Self-hosted AI router: many providers, one OpenAI-compatible /v1 endpoint and dashboard","bin":{"zevai":"cli/cli.js"},"files":["cli/cli.js","cli/app/","cli/hooks/","cli/src/","cli/package.json","cli/README.md","cli/LICENSE","scripts/start-standalone.mjs","README.md","README.zh-CN.md","DOCKER.md","LICENSE","CHANGELOG.md"],"scripts":{"dev":"next dev --webpack --port 1997","build":"node scripts/build-app.mjs","start":"node ./scripts/start-standalone.mjs","dev:bun":"bun --bun next dev --webpack --port 1997","build:bun":"bun --bun next build --webpack","start:bun":"bun ./.next/standalone/server.js","lint":"eslint .","test":"vitest run --config tests/vitest.config.js","build:cli":"node cli/scripts/build-cli.js","audit:package":"node cli/scripts/audit-package.mjs","smoke:package":"node cli/scripts/smoke-package.mjs","verify:mobile-scroll":"node cli/scripts/verify-dashboard-mobile-scroll.mjs","candidate:build":"node cli/scripts/local-candidate.mjs build","candidate:install":"node cli/scripts/local-candidate.mjs install","candidate:status":"node cli/scripts/local-candidate.mjs status","candidate:rollback":"node cli/scripts/local-candidate.mjs rollback","release":"node cli/scripts/release.js","prepack":"npm run build:cli && npm run audit:package","postinstall":"node cli/hooks/postinstall.js"},"dependencies":{"@node-saml/node-saml":"5.1.0","next":"16.2.12","node-machine-id":"1.1.12","react":"19.2.4","react-dom":"19.2.4","sql.js":"1.14.1","yaml":"2.9.0"},"comment_optional_runtime":"Optional packages are installed into ~/.zevai/runtime instead of the published tarball. Automation uses CloakBrowser with playwright-core; ZEVAI_MINIMAL_POSTINSTALL=1 skips its browser download. Other lazy runtimes are better-sqlite3, node-pty, and systray2.","overrides":{"body-parser":"^2.3.0","brace-expansion":"5.0.9","dompurify":"^3.4.12","ip-address":"^10.4.0","nanoid":"^3.3.18","postcss":"^8.5.10","sharp":"^0.35.0"},"comment_overrides":"Security floors for transitive dependencies. ESLint\'s legacy minimatch is a private, source-pinned 3.1.5 compatibility package backed by brace-expansion 5.0.9; modern minimatch and nanoid use fixed floors directly. Monaco still pins an old DOMPurify; Express and Next may resolve vulnerable body-parser/sharp releases. Recheck and remove overrides once parent packages require fixed versions.","devDependencies":{"@dnd-kit/core":"^6.3.1","@dnd-kit/modifiers":"^9.0.0","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2","@monaco-editor/react":"^4.7.0","@tailwindcss/postcss":"^4.1.18","@xterm/addon-fit":"^0.11.0","@xterm/addon-web-links":"^0.12.0","@xterm/xterm":"^6.0.0","@xyflow/react":"^12.10.1","bcryptjs":"^3.0.3","better-sqlite3":"^12.6.2","chalk":"^4.1.2","confbox":"^0.2.4","dompurify":"^3.4.12","esbuild":"^0.28.1","eslint":"^9","eslint-config-next":"16.2.9","express":"^5.2.1","http-proxy-middleware":"^3.0.7","jose":"^6.1.3","marked":"^18.0.1","material-symbols":"^0.45.1","minimatch":"file:vendor/minimatch3-secure","monaco-editor":"^0.55.1","node-forge":"^1.3.3","open":"^11.0.0","ora":"^9.1.0","postcss":"^8.5.10","prop-types":"^15.8.1","react-is":"^19.2.7","recharts":"^3.7.0","selfsigned":"^5.5.0","socks":"^2.8.9","socks-proxy-agent":"^10.1.0","tailwindcss":"^4","undici":"^8.10.0","uuid":"^14.0.1","vitest":"^4.1.10","zustand":"^5.0.10"},"engines":{"node":">=22.5.0"},"keywords":["zevairouter","zevai","ai","router","proxy","kiro","codebuddy","claude","openai","api","quota","automation"],"license":"MIT","repository":{"type":"git","url":"git+https://github.com/Verifiedlabs/zevairouter.git"},"bugs":{"url":"https://github.com/Verifiedlabs/zevairouter/issues"},"homepage":"https://github.com/Verifiedlabs/zevairouter"}')},53225:(a,b,c)=>{c.d(b,{EV:()=>m,X5:()=>l});var d=c(55511),e=c(39609),f=c(78085),g=c(21031),h=c(30022);let i=new Map,j=new Map;async function k(a,b,c=null){let d,g,i={userId:(g=a?.providerSpecificData||{}).userId,authToken:a.accessToken,name:a.displayName||"",email:a.email||"",machineId:g.machineId||""};if(!i.userId||!i.authToken)return null;let j=String(i.authToken).startsWith("jt-")?`${h.j9}/algo/api/v2/model/list`:h.t6,l={Accept:"application/json","Accept-Encoding":"identity",...(0,f.d)(Buffer.alloc(0),j,i)},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.proxyAwareFetch)(j,{method:"GET",headers:l,signal:m.signal},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={}){var c;let e,f;try{e=await (0,g.iC)(a,b)}catch(a){return b.log?.warn?.("QODER","PAT exchange failed",{code:a?.code||null,status:a?.status||null}),null}if(!e?.accessToken||!(e.providerSpecificData||{}).userId)return null;let h=(c=e,f=(c?.providerSpecificData||{}).userId||c?.refreshToken||c?.accessToken||"anonymous",(0,d.createHash)("sha256").update(`qoder:${f}`).digest("hex")),l=Date.now();if(!b.forceRefresh){let a=i.get(h);if(a&&a.expiresAt>l)return a}let n=j.get(h);if(n&&!b.forceRefresh)return n;let o=(async()=>{let a=await k(e,b.signal,b.proxyOptions);if(!a)return null;let c={expiresAt:Date.now()+36e5,models:a.models,rawConfigs:a.rawConfigs,fetched:!0};return i.set(h,c),c})();j.set(h,o);try{return await o}finally{j.get(h)===o&&j.delete(h)}}},78085:(a,b,c)=>{c.d(b,{d:()=>i});var d=c(55511),e=c.n(d),f=c(47293),g=c(30022);function h(a){return e().createHash("md5").update(a).digest("hex")}function i(a,b,c){var d;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}=(d={uid:c.userId,security_oauth_token:c.authToken,name:c.name||"",aid:"",email:c.email||""},i=(0,f.A)().slice(0,16),j=function(a,b){var c;let d,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=e().createCipheriv("aes-128-cbc",g,h);i.setAutoPadding(!1);let j=(d=16-(c=Buffer.from(a,"utf8")).length%16,f=Buffer.alloc(c.length+d,d),c.copy(f,0),f);return Buffer.concat([i.update(j),i.final()]).toString("base64")}(JSON.stringify(d),i),{cosyKey:e().publicEncrypt({key:g.pr,padding:e().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,f.A)(),info:m,cosyVersion:g.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-----`},39006:a=>{a.exports=JSON.parse('{"name":"zevairouter","version":"1.1.3","description":"Self-hosted AI router: many providers, one OpenAI-compatible /v1 endpoint and dashboard","bin":{"zevai":"cli/cli.js"},"files":["cli/cli.js","cli/app/","cli/hooks/","cli/src/","cli/package.json","cli/README.md","cli/LICENSE","scripts/start-standalone.mjs","README.md","README.zh-CN.md","DOCKER.md","LICENSE","CHANGELOG.md"],"scripts":{"dev":"next dev --webpack --port 1997","build":"node scripts/build-app.mjs","start":"node ./scripts/start-standalone.mjs","dev:bun":"bun --bun next dev --webpack --port 1997","build:bun":"bun --bun next build --webpack","start:bun":"bun ./.next/standalone/server.js","lint":"eslint .","test":"vitest run --config tests/vitest.config.js","build:cli":"node cli/scripts/build-cli.js","audit:package":"node cli/scripts/audit-package.mjs","smoke:package":"node cli/scripts/smoke-package.mjs","verify:mobile-scroll":"node cli/scripts/verify-dashboard-mobile-scroll.mjs","candidate:build":"node cli/scripts/local-candidate.mjs build","candidate:install":"node cli/scripts/local-candidate.mjs install","candidate:status":"node cli/scripts/local-candidate.mjs status","candidate:rollback":"node cli/scripts/local-candidate.mjs rollback","release":"node cli/scripts/release.js","prepack":"npm run build:cli && npm run audit:package","postinstall":"node cli/hooks/postinstall.js"},"dependencies":{"@node-saml/node-saml":"5.1.0","next":"16.2.12","node-machine-id":"1.1.12","react":"19.2.4","react-dom":"19.2.4","sql.js":"1.14.1","yaml":"2.9.0"},"comment_optional_runtime":"Optional packages are installed into ~/.zevai/runtime instead of the published tarball. Automation uses CloakBrowser with playwright-core; ZEVAI_MINIMAL_POSTINSTALL=1 skips its browser download. Other lazy runtimes are better-sqlite3, node-pty, and systray2.","overrides":{"body-parser":"^2.3.0","brace-expansion":"5.0.9","dompurify":"^3.4.12","ip-address":"^10.4.0","nanoid":"^3.3.18","postcss":"^8.5.10","sharp":"^0.35.0"},"comment_overrides":"Security floors for transitive dependencies. ESLint\'s legacy minimatch is a private, source-pinned 3.1.5 compatibility package backed by brace-expansion 5.0.9; modern minimatch and nanoid use fixed floors directly. Monaco still pins an old DOMPurify; Express and Next may resolve vulnerable body-parser/sharp releases. Recheck and remove overrides once parent packages require fixed versions.","devDependencies":{"@dnd-kit/core":"^6.3.1","@dnd-kit/modifiers":"^9.0.0","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2","@monaco-editor/react":"^4.7.0","@tailwindcss/postcss":"^4.1.18","@xterm/addon-fit":"^0.11.0","@xterm/addon-web-links":"^0.12.0","@xterm/xterm":"^6.0.0","@xyflow/react":"^12.10.1","bcryptjs":"^3.0.3","better-sqlite3":"^12.6.2","chalk":"^4.1.2","confbox":"^0.2.4","dompurify":"^3.4.12","esbuild":"^0.28.1","eslint":"^9","eslint-config-next":"16.2.9","express":"^5.2.1","http-proxy-middleware":"^3.0.7","jose":"^6.1.3","marked":"^18.0.1","material-symbols":"^0.45.1","minimatch":"file:vendor/minimatch3-secure","monaco-editor":"^0.55.1","node-forge":"^1.3.3","open":"^11.0.0","ora":"^9.1.0","postcss":"^8.5.10","prop-types":"^15.8.1","react-is":"^19.2.7","recharts":"^3.7.0","selfsigned":"^5.5.0","socks":"^2.8.9","socks-proxy-agent":"^10.1.0","tailwindcss":"^4","undici":"^8.10.0","uuid":"^14.0.1","vitest":"^4.1.10","zustand":"^5.0.10"},"engines":{"node":">=22.5.0"},"keywords":["zevairouter","zevai","ai","router","proxy","kiro","codebuddy","claude","openai","api","quota","automation"],"license":"MIT","repository":{"type":"git","url":"git+https://github.com/Verifiedlabs/zevairouter.git"},"bugs":{"url":"https://github.com/Verifiedlabs/zevairouter/issues"},"homepage":"https://github.com/Verifiedlabs/zevairouter"}')},53225:(a,b,c)=>{c.d(b,{EV:()=>m,X5:()=>l});var d=c(55511),e=c(39609),f=c(78085),g=c(21031),h=c(30022);let i=new Map,j=new Map;async function k(a,b,c=null){let d,g,i={userId:(g=a?.providerSpecificData||{}).userId,authToken:a.accessToken,name:a.displayName||"",email:a.email||"",machineId:g.machineId||""};if(!i.userId||!i.authToken)return null;let j=String(i.authToken).startsWith("jt-")?`${h.j9}/algo/api/v2/model/list`:h.t6,l={Accept:"application/json","Accept-Encoding":"identity",...(0,f.d)(Buffer.alloc(0),j,i)},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.proxyAwareFetch)(j,{method:"GET",headers:l,signal:m.signal},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={}){var c;let e,f;try{e=await (0,g.iC)(a,b)}catch(a){return b.log?.warn?.("QODER","PAT exchange failed",{code:a?.code||null,status:a?.status||null}),null}if(!e?.accessToken||!(e.providerSpecificData||{}).userId)return null;let h=(c=e,f=(c?.providerSpecificData||{}).userId||c?.refreshToken||c?.accessToken||"anonymous",(0,d.createHash)("sha256").update(`qoder:${f}`).digest("hex")),l=Date.now();if(!b.forceRefresh){let a=i.get(h);if(a&&a.expiresAt>l)return a}let n=j.get(h);if(n&&!b.forceRefresh)return n;let o=(async()=>{let a=await k(e,b.signal,b.proxyOptions);if(!a)return null;let c={expiresAt:Date.now()+36e5,models:a.models,rawConfigs:a.rawConfigs,fetched:!0};return i.set(h,c),c})();j.set(h,o);try{return await o}finally{j.get(h)===o&&j.delete(h)}}},78085:(a,b,c)=>{c.d(b,{d:()=>i});var d=c(55511),e=c.n(d),f=c(47293),g=c(30022);function h(a){return e().createHash("md5").update(a).digest("hex")}function i(a,b,c){var d;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}=(d={uid:c.userId,security_oauth_token:c.authToken,name:c.name||"",aid:"",email:c.email||""},i=(0,f.A)().slice(0,16),j=function(a,b){var c;let d,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=e().createCipheriv("aes-128-cbc",g,h);i.setAutoPadding(!1);let j=(d=16-(c=Buffer.from(a,"utf8")).length%16,f=Buffer.alloc(c.length+d,d),c.copy(f,0),f);return Buffer.concat([i.update(j),i.final()]).toString("base64")}(JSON.stringify(d),i),{cosyKey:e().publicEncrypt({key:g.pr,padding:e().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,f.A)(),info:m,cosyVersion:g.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
- exports.id=8306,exports.ids=[8306],exports.modules={30869:(a,b,c)=>{"use strict";c.d(b,{UY:()=>i,X3:()=>k,eh:()=>f.eh,fg:()=>e.fg,h0:()=>h,oc:()=>j,vQ:()=>g});var d=c(39006),e=c(75681),f=c(81329);let g={name:"ZevaiRouter",description:"AI Infrastructure Management",version:d.version},h={npmPackageName:"zevairouter",installCmd:"npm i -g zevairouter",installCmdLatest:"npm i -g zevairouter@latest --prefer-online",shutdownCountdownSec:3,exitDelayMs:500,statusPort:20129,statusPollIntervalMs:1e3,statusLogTailLines:8,installRetries:3,installRetryDelayMs:5e3,lingerAfterDoneMs:3e4,waitForExitMinMs:5e3,waitForExitMaxMs:2e4,waitForExitCheckMs:500,appPort:1997},i={maxLines:200,pollIntervalMs:1e3},j={tickIntervalMs:6e4,pingLeadMs:5e3,refreshAheadMs:3e5,failureCooldownMs:9e5,providers:{claude:{settingsKey:"claudeAutoPing",quotaKey:"session (5h)",pingModel:"claude-haiku-4-5-20251001",pingText:"hi",pingMaxTokens:1},codex:{settingsKey:"codexAutoPing",quotaKey:"session",pingWhenResetAtSlides:!0,resetAtDriftMs:3e4,minPingIntervalMs:6e5,skipWhenBlockingQuotaExhausted:!0,pingModel:"gpt-5.5",pingText:"hi",pingInstructions:"Reply with OK.",pingReasoningEffort:"none"}}},k={openrouter:"https://openrouter.ai/api/v1/chat/completions",glm:"https://api.z.ai/api/anthropic/v1/messages","glm-cn":"https://open.bigmodel.cn/api/coding/paas/v4/chat/completions",kimi:"https://api.kimi.com/coding/v1/messages",minimax:"https://api.minimax.io/anthropic/v1/messages","minimax-cn":"https://api.minimaxi.com/anthropic/v1/messages",alicode:"https://coding.dashscope.aliyuncs.com/v1/chat/completions","alicode-intl":"https://coding-intl.dashscope.aliyuncs.com/v1/chat/completions","volcengine-ark":"https://ark.cn-beijing.volces.com/api/coding/v3/chat/completions",byteplus:"https://ark.ap-southeast.bytepluses.com/api/coding/v3/chat/completions",openai:"https://api.openai.com/v1/chat/completions","vercel-ai-gateway":"https://ai-gateway.vercel.sh/v1/chat/completions",anthropic:"https://api.anthropic.com/v1/messages",gemini:"https://generativelanguage.googleapis.com/v1beta/models",ollama:"https://ollama.com/api/chat","ollama-local":"http://localhost:11434/api/chat","notion-ai":"https://app.notion.com/api/v3/runInferenceTranscript"}},38238:(a,b,c)=>{"use strict";c.d(b,{P:()=>h});var d=c(89718),e=c(30869),f=c(54603);async function g(a=null){let b=null;try{let a=await (0,d.PX)(!0);b=a.find(a=>!1!==a.isActive)?.key||null}catch{}let c={"Content-Type":"application/json"};return b&&(c.Authorization=`Bearer ${b}`),c["x-zevai-cli-token"]=await (0,f.Xj)("zevai-cli-auth"),a&&(c["x-zevai-connection-id"]=a),c}async function h(a,b,c=`http://127.0.0.1:${process.env.PORT||e.h0.appPort}`,d={}){let f=await g(d.connectionId),i=Date.now();if("embedding"===b){let b=await fetch(`${c}/api/v1/embeddings`,{method:"POST",headers:f,body:JSON.stringify({model:a,input:"test"}),signal:AbortSignal.timeout(15e3)}),d=Date.now()-i,e=await b.text().catch(()=>""),g=null;try{g=e?JSON.parse(e):null}catch{}if(!b.ok){let a=g?.error?.message||g?.error||e;return{ok:!1,latencyMs:d,error:`HTTP ${b.status}${a?`: ${String(a).slice(0,240)}`:""}`,status:b.status}}return Array.isArray(g?.data)&&g.data.length>0&&Array.isArray(g.data[0]?.embedding)?{ok:!0,latencyMs:d,error:null,status:b.status}:{ok:!1,latencyMs:d,status:b.status,error:"Provider returned no embedding data"}}if("image"===b){let b=await fetch(`${c}/api/v1/images/generations`,{method:"POST",headers:f,body:JSON.stringify({model:a,prompt:"test"}),signal:AbortSignal.timeout(15e3)}),d=Date.now()-i,e=await b.text().catch(()=>""),g=null;try{g=e?JSON.parse(e):null}catch{}if(!b.ok){let a=g?.error?.message||g?.msg||g?.message||g?.error||e;return{ok:!1,latencyMs:d,error:`HTTP ${b.status}${a?`: ${String(a).slice(0,240)}`:""}`,status:b.status}}return Array.isArray(g?.data)&&g.data.length>0?{ok:!0,latencyMs:d,error:null,status:b.status}:{ok:!1,latencyMs:d,status:b.status,error:"Provider returned no image data for this model"}}if("stt"===b){let b,d,e,g,h=new FormData,j=(e=new DataView(d=new ArrayBuffer(44+(b=2*Math.max(1,Math.floor(4e3))))),(g=(a,b)=>{for(let c=0;c<b.length;c+=1)e.setUint8(a+c,b.charCodeAt(c))})(0,"RIFF"),e.setUint32(4,36+b,!0),g(8,"WAVE"),g(12,"fmt "),e.setUint32(16,16,!0),e.setUint16(20,1,!0),e.setUint16(22,1,!0),e.setUint32(24,16e3,!0),e.setUint32(28,32e3,!0),e.setUint16(32,2,!0),e.setUint16(34,16,!0),g(36,"data"),e.setUint32(40,b,!0),new Blob([d],{type:"audio/wav"}));h.append("file",j,"test.wav"),h.append("model",a);let k=await fetch(`${c}/api/v1/audio/transcriptions`,{method:"POST",headers:Object.fromEntries(Object.entries(f).filter(([a])=>"content-type"!==a.toLowerCase())),body:h,signal:AbortSignal.timeout(15e3)}),l=Date.now()-i,m=await k.text().catch(()=>""),n=null;try{n=m?JSON.parse(m):null}catch{}if(!k.ok){let a=n?.error?.message||n?.msg||n?.message||n?.error||m;return{ok:!1,latencyMs:l,error:`HTTP ${k.status}${a?`: ${String(a).slice(0,240)}`:""}`,status:k.status}}return("string"==typeof n?.text?n.text:"").trim()?{ok:!0,latencyMs:l,error:null,status:k.status}:{ok:!1,latencyMs:l,status:k.status,error:"Provider returned no transcription text for this model"}}let j=await fetch(`${c}/api/v1/chat/completions`,{method:"POST",headers:f,body:JSON.stringify({model:a,max_tokens:1,stream:!1,messages:[{role:"user",content:"hi"}]}),signal:AbortSignal.timeout(15e3)}),k=Date.now()-i,l=await j.text().catch(()=>""),m=null;try{m=l?JSON.parse(l):null}catch{}if(!j.ok){let a=m?.error?.message||m?.msg||m?.message||m?.error||l;return{ok:!1,latencyMs:k,error:`HTTP ${j.status}${a?`: ${String(a).slice(0,240)}`:""}`,status:j.status}}let n=m?.status,o=m?.msg||m?.message;if(null!=n&&"200"!==String(n)&&"0"!==String(n)&&o)return{ok:!1,latencyMs:k,status:j.status,error:`Provider status ${n}: ${String(o).slice(0,240)}`};if(m?.error){let a=m?.error?.message||m?.error||"Provider returned an error";return{ok:!1,latencyMs:k,status:j.status,error:String(a).slice(0,240)}}return Array.isArray(m?.choices)&&m.choices.length>0?{ok:!0,latencyMs:k,error:null,status:j.status}:{ok:!1,latencyMs:k,status:j.status,error:"Provider returned no completion choices for this model"}}},39006:a=>{"use strict";a.exports=JSON.parse('{"name":"zevairouter","version":"1.1.2","description":"Self-hosted AI router: many providers, one OpenAI-compatible /v1 endpoint and dashboard","bin":{"zevai":"cli/cli.js"},"files":["cli/cli.js","cli/app/","cli/hooks/","cli/src/","cli/package.json","cli/README.md","cli/LICENSE","scripts/start-standalone.mjs","README.md","README.zh-CN.md","DOCKER.md","LICENSE","CHANGELOG.md"],"scripts":{"dev":"next dev --webpack --port 1997","build":"node scripts/build-app.mjs","start":"node ./scripts/start-standalone.mjs","dev:bun":"bun --bun next dev --webpack --port 1997","build:bun":"bun --bun next build --webpack","start:bun":"bun ./.next/standalone/server.js","lint":"eslint .","test":"vitest run --config tests/vitest.config.js","build:cli":"node cli/scripts/build-cli.js","audit:package":"node cli/scripts/audit-package.mjs","smoke:package":"node cli/scripts/smoke-package.mjs","verify:mobile-scroll":"node cli/scripts/verify-dashboard-mobile-scroll.mjs","candidate:build":"node cli/scripts/local-candidate.mjs build","candidate:install":"node cli/scripts/local-candidate.mjs install","candidate:status":"node cli/scripts/local-candidate.mjs status","candidate:rollback":"node cli/scripts/local-candidate.mjs rollback","release":"node cli/scripts/release.js","prepack":"npm run build:cli && npm run audit:package","postinstall":"node cli/hooks/postinstall.js"},"dependencies":{"@node-saml/node-saml":"5.1.0","next":"16.2.12","node-machine-id":"1.1.12","react":"19.2.4","react-dom":"19.2.4","sql.js":"1.14.1","yaml":"2.9.0"},"comment_optional_runtime":"Optional packages are installed into ~/.zevai/runtime instead of the published tarball. Automation uses CloakBrowser with playwright-core; ZEVAI_MINIMAL_POSTINSTALL=1 skips its browser download. Other lazy runtimes are better-sqlite3, node-pty, and systray2.","overrides":{"body-parser":"^2.3.0","brace-expansion":"5.0.9","dompurify":"^3.4.12","ip-address":"^10.4.0","nanoid":"^3.3.18","postcss":"^8.5.10","sharp":"^0.35.0"},"comment_overrides":"Security floors for transitive dependencies. ESLint\'s legacy minimatch is a private, source-pinned 3.1.5 compatibility package backed by brace-expansion 5.0.9; modern minimatch and nanoid use fixed floors directly. Monaco still pins an old DOMPurify; Express and Next may resolve vulnerable body-parser/sharp releases. Recheck and remove overrides once parent packages require fixed versions.","devDependencies":{"@dnd-kit/core":"^6.3.1","@dnd-kit/modifiers":"^9.0.0","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2","@monaco-editor/react":"^4.7.0","@tailwindcss/postcss":"^4.1.18","@xterm/addon-fit":"^0.11.0","@xterm/addon-web-links":"^0.12.0","@xterm/xterm":"^6.0.0","@xyflow/react":"^12.10.1","bcryptjs":"^3.0.3","better-sqlite3":"^12.6.2","chalk":"^4.1.2","confbox":"^0.2.4","dompurify":"^3.4.12","esbuild":"^0.28.1","eslint":"^9","eslint-config-next":"16.2.9","express":"^5.2.1","http-proxy-middleware":"^3.0.7","jose":"^6.1.3","marked":"^18.0.1","material-symbols":"^0.45.1","minimatch":"file:vendor/minimatch3-secure","monaco-editor":"^0.55.1","node-forge":"^1.3.3","open":"^11.0.0","ora":"^9.1.0","postcss":"^8.5.10","prop-types":"^15.8.1","react-is":"^19.2.7","recharts":"^3.7.0","selfsigned":"^5.5.0","socks":"^2.8.9","socks-proxy-agent":"^10.1.0","tailwindcss":"^4","undici":"^8.10.0","uuid":"^14.0.1","vitest":"^4.1.10","zustand":"^5.0.10"},"engines":{"node":">=22.5.0"},"keywords":["zevairouter","zevai","ai","router","proxy","kiro","codebuddy","claude","openai","api","quota","automation"],"license":"MIT","repository":{"type":"git","url":"git+https://github.com/Verifiedlabs/zevairouter.git"},"bugs":{"url":"https://github.com/Verifiedlabs/zevairouter/issues"},"homepage":"https://github.com/Verifiedlabs/zevairouter"}')},54603:(a,b,c)=>{"use strict";c.d(b,{Xj:()=>q});var d=c(19713),e=c(73024),f=c.n(e),g=c(76760),h=c.n(g),i=c(77598),j=c.n(i),k=c(49120);let l=h().join(k.DATA_DIR,"machine-id"),m=h().join(k.DATA_DIR,"auth"),n=h().join(m,"cli-secret"),o=null,p=null;async function q(a=null){let b=a||process.env.MACHINE_ID_SALT||"endpoint-proxy-salt",c=function(){if(o)return o;try{if(o=f().readFileSync(l,"utf8").trim())return o}catch{}try{o=(0,d.machineIdSync)()}catch{o=j().randomUUID()}try{f().mkdirSync(k.DATA_DIR,{recursive:!0}),f().writeFileSync(l,o,{mode:384})}catch{}return o}(),e="zevai-cli-auth"===b?function(){if(p)return p;try{if(p=f().readFileSync(n,"utf8").trim())return p}catch{}p=j().randomBytes(32).toString("hex");try{f().mkdirSync(m,{recursive:!0}),f().writeFileSync(n,p,{mode:384})}catch{}return p}():"";return j().createHash("sha256").update(c+b+e).digest("hex").substring(0,16)}},78335:()=>{},81329:(a,b,c)=>{"use strict";c.d(b,{Xg:()=>d.Xg,eh:()=>e,vq:()=>d.vq});var d=c(83477);Object.entries(c(75681).AI_PROVIDERS).filter(([,a])=>a.passthroughModels).map(([a])=>a);let e=Object.entries(d.vq).flatMap(([a,b])=>b.map(b=>({provider:a,model:b.id,name:b.name})))},89718:(a,b,c)=>{"use strict";c.d(b,{CG:()=>d.CG,Dj:()=>d.Dj,Fh:()=>d.Fh,Iq:()=>d.Iq,Iu:()=>d.Iu,K1:()=>d.K1,KJ:()=>d.KJ,KK:()=>d.KK,Kg:()=>d.Kg,L:()=>d.L,L9:()=>d.L9,Lh:()=>d.Lh,ME:()=>d.ME,Mc:()=>d.Mc,NR:()=>d.NR,Op:()=>d.Op,PX:()=>d.PX,Pb:()=>d.Pb,Pc:()=>d.Pc,QI:()=>d.QI,Q_:()=>d.Q_,Qu:()=>d.Qu,S8:()=>d.S8,Uv:()=>d.Uv,VT:()=>d.VT,XW:()=>d.XW,Xx:()=>d.Xx,Yd:()=>d.Yd,ZO:()=>d.ZO,c:()=>d.c,dK:()=>d.dK,deleteModelAlias:()=>d.fv,ek:()=>d.ek,fK:()=>d.fK,getModelAliases:()=>d.OM,getProviderConnections:()=>d.P,getQuotaSnapshot:()=>d.LF,ho:()=>d.ho,hr:()=>d.hr,i0:()=>d.i0,iE:()=>d.iE,jd:()=>d.jd,mt:()=>d.mt,o5:()=>d.o5,oG:()=>d.oG,op:()=>d.op,p3:()=>d.p3,qd:()=>d.qd,r4:()=>d.r4,tV:()=>d.tV,uH:()=>d.uH,uL:()=>d.uL,ui:()=>d.ui,updateProviderConnection:()=>d.rj,uv:()=>d.uv,yF:()=>d.yF,yW:()=>d.yW,yg:()=>d.yg,zP:()=>d.zP,zY:()=>d.zY});var d=c(93999)},96487:()=>{}};
1
+ exports.id=8306,exports.ids=[8306],exports.modules={30869:(a,b,c)=>{"use strict";c.d(b,{UY:()=>i,X3:()=>k,eh:()=>f.eh,fg:()=>e.fg,h0:()=>h,oc:()=>j,vQ:()=>g});var d=c(39006),e=c(75681),f=c(81329);let g={name:"ZevaiRouter",description:"AI Infrastructure Management",version:d.version},h={npmPackageName:"zevairouter",installCmd:"npm i -g zevairouter",installCmdLatest:"npm i -g zevairouter@latest --prefer-online",shutdownCountdownSec:3,exitDelayMs:500,statusPort:20129,statusPollIntervalMs:1e3,statusLogTailLines:8,installRetries:3,installRetryDelayMs:5e3,lingerAfterDoneMs:3e4,waitForExitMinMs:5e3,waitForExitMaxMs:2e4,waitForExitCheckMs:500,appPort:1997},i={maxLines:200,pollIntervalMs:1e3},j={tickIntervalMs:6e4,pingLeadMs:5e3,refreshAheadMs:3e5,failureCooldownMs:9e5,providers:{claude:{settingsKey:"claudeAutoPing",quotaKey:"session (5h)",pingModel:"claude-haiku-4-5-20251001",pingText:"hi",pingMaxTokens:1},codex:{settingsKey:"codexAutoPing",quotaKey:"session",pingWhenResetAtSlides:!0,resetAtDriftMs:3e4,minPingIntervalMs:6e5,skipWhenBlockingQuotaExhausted:!0,pingModel:"gpt-5.5",pingText:"hi",pingInstructions:"Reply with OK.",pingReasoningEffort:"none"}}},k={openrouter:"https://openrouter.ai/api/v1/chat/completions",glm:"https://api.z.ai/api/anthropic/v1/messages","glm-cn":"https://open.bigmodel.cn/api/coding/paas/v4/chat/completions",kimi:"https://api.kimi.com/coding/v1/messages",minimax:"https://api.minimax.io/anthropic/v1/messages","minimax-cn":"https://api.minimaxi.com/anthropic/v1/messages",alicode:"https://coding.dashscope.aliyuncs.com/v1/chat/completions","alicode-intl":"https://coding-intl.dashscope.aliyuncs.com/v1/chat/completions","volcengine-ark":"https://ark.cn-beijing.volces.com/api/coding/v3/chat/completions",byteplus:"https://ark.ap-southeast.bytepluses.com/api/coding/v3/chat/completions",openai:"https://api.openai.com/v1/chat/completions","vercel-ai-gateway":"https://ai-gateway.vercel.sh/v1/chat/completions",anthropic:"https://api.anthropic.com/v1/messages",gemini:"https://generativelanguage.googleapis.com/v1beta/models",ollama:"https://ollama.com/api/chat","ollama-local":"http://localhost:11434/api/chat","notion-ai":"https://app.notion.com/api/v3/runInferenceTranscript"}},38238:(a,b,c)=>{"use strict";c.d(b,{P:()=>h});var d=c(89718),e=c(30869),f=c(54603);async function g(a=null){let b=null;try{let a=await (0,d.PX)(!0);b=a.find(a=>!1!==a.isActive)?.key||null}catch{}let c={"Content-Type":"application/json"};return b&&(c.Authorization=`Bearer ${b}`),c["x-zevai-cli-token"]=await (0,f.Xj)("zevai-cli-auth"),a&&(c["x-zevai-connection-id"]=a),c}async function h(a,b,c=`http://127.0.0.1:${process.env.PORT||e.h0.appPort}`,d={}){let f=await g(d.connectionId),i=Date.now();if("embedding"===b){let b=await fetch(`${c}/api/v1/embeddings`,{method:"POST",headers:f,body:JSON.stringify({model:a,input:"test"}),signal:AbortSignal.timeout(15e3)}),d=Date.now()-i,e=await b.text().catch(()=>""),g=null;try{g=e?JSON.parse(e):null}catch{}if(!b.ok){let a=g?.error?.message||g?.error||e;return{ok:!1,latencyMs:d,error:`HTTP ${b.status}${a?`: ${String(a).slice(0,240)}`:""}`,status:b.status}}return Array.isArray(g?.data)&&g.data.length>0&&Array.isArray(g.data[0]?.embedding)?{ok:!0,latencyMs:d,error:null,status:b.status}:{ok:!1,latencyMs:d,status:b.status,error:"Provider returned no embedding data"}}if("image"===b){let b=await fetch(`${c}/api/v1/images/generations`,{method:"POST",headers:f,body:JSON.stringify({model:a,prompt:"test"}),signal:AbortSignal.timeout(15e3)}),d=Date.now()-i,e=await b.text().catch(()=>""),g=null;try{g=e?JSON.parse(e):null}catch{}if(!b.ok){let a=g?.error?.message||g?.msg||g?.message||g?.error||e;return{ok:!1,latencyMs:d,error:`HTTP ${b.status}${a?`: ${String(a).slice(0,240)}`:""}`,status:b.status}}return Array.isArray(g?.data)&&g.data.length>0?{ok:!0,latencyMs:d,error:null,status:b.status}:{ok:!1,latencyMs:d,status:b.status,error:"Provider returned no image data for this model"}}if("stt"===b){let b,d,e,g,h=new FormData,j=(e=new DataView(d=new ArrayBuffer(44+(b=2*Math.max(1,Math.floor(4e3))))),(g=(a,b)=>{for(let c=0;c<b.length;c+=1)e.setUint8(a+c,b.charCodeAt(c))})(0,"RIFF"),e.setUint32(4,36+b,!0),g(8,"WAVE"),g(12,"fmt "),e.setUint32(16,16,!0),e.setUint16(20,1,!0),e.setUint16(22,1,!0),e.setUint32(24,16e3,!0),e.setUint32(28,32e3,!0),e.setUint16(32,2,!0),e.setUint16(34,16,!0),g(36,"data"),e.setUint32(40,b,!0),new Blob([d],{type:"audio/wav"}));h.append("file",j,"test.wav"),h.append("model",a);let k=await fetch(`${c}/api/v1/audio/transcriptions`,{method:"POST",headers:Object.fromEntries(Object.entries(f).filter(([a])=>"content-type"!==a.toLowerCase())),body:h,signal:AbortSignal.timeout(15e3)}),l=Date.now()-i,m=await k.text().catch(()=>""),n=null;try{n=m?JSON.parse(m):null}catch{}if(!k.ok){let a=n?.error?.message||n?.msg||n?.message||n?.error||m;return{ok:!1,latencyMs:l,error:`HTTP ${k.status}${a?`: ${String(a).slice(0,240)}`:""}`,status:k.status}}return("string"==typeof n?.text?n.text:"").trim()?{ok:!0,latencyMs:l,error:null,status:k.status}:{ok:!1,latencyMs:l,status:k.status,error:"Provider returned no transcription text for this model"}}let j=await fetch(`${c}/api/v1/chat/completions`,{method:"POST",headers:f,body:JSON.stringify({model:a,max_tokens:1,stream:!1,messages:[{role:"user",content:"hi"}]}),signal:AbortSignal.timeout(15e3)}),k=Date.now()-i,l=await j.text().catch(()=>""),m=null;try{m=l?JSON.parse(l):null}catch{}if(!j.ok){let a=m?.error?.message||m?.msg||m?.message||m?.error||l;return{ok:!1,latencyMs:k,error:`HTTP ${j.status}${a?`: ${String(a).slice(0,240)}`:""}`,status:j.status}}let n=m?.status,o=m?.msg||m?.message;if(null!=n&&"200"!==String(n)&&"0"!==String(n)&&o)return{ok:!1,latencyMs:k,status:j.status,error:`Provider status ${n}: ${String(o).slice(0,240)}`};if(m?.error){let a=m?.error?.message||m?.error||"Provider returned an error";return{ok:!1,latencyMs:k,status:j.status,error:String(a).slice(0,240)}}return Array.isArray(m?.choices)&&m.choices.length>0?{ok:!0,latencyMs:k,error:null,status:j.status}:{ok:!1,latencyMs:k,status:j.status,error:"Provider returned no completion choices for this model"}}},39006:a=>{"use strict";a.exports=JSON.parse('{"name":"zevairouter","version":"1.1.3","description":"Self-hosted AI router: many providers, one OpenAI-compatible /v1 endpoint and dashboard","bin":{"zevai":"cli/cli.js"},"files":["cli/cli.js","cli/app/","cli/hooks/","cli/src/","cli/package.json","cli/README.md","cli/LICENSE","scripts/start-standalone.mjs","README.md","README.zh-CN.md","DOCKER.md","LICENSE","CHANGELOG.md"],"scripts":{"dev":"next dev --webpack --port 1997","build":"node scripts/build-app.mjs","start":"node ./scripts/start-standalone.mjs","dev:bun":"bun --bun next dev --webpack --port 1997","build:bun":"bun --bun next build --webpack","start:bun":"bun ./.next/standalone/server.js","lint":"eslint .","test":"vitest run --config tests/vitest.config.js","build:cli":"node cli/scripts/build-cli.js","audit:package":"node cli/scripts/audit-package.mjs","smoke:package":"node cli/scripts/smoke-package.mjs","verify:mobile-scroll":"node cli/scripts/verify-dashboard-mobile-scroll.mjs","candidate:build":"node cli/scripts/local-candidate.mjs build","candidate:install":"node cli/scripts/local-candidate.mjs install","candidate:status":"node cli/scripts/local-candidate.mjs status","candidate:rollback":"node cli/scripts/local-candidate.mjs rollback","release":"node cli/scripts/release.js","prepack":"npm run build:cli && npm run audit:package","postinstall":"node cli/hooks/postinstall.js"},"dependencies":{"@node-saml/node-saml":"5.1.0","next":"16.2.12","node-machine-id":"1.1.12","react":"19.2.4","react-dom":"19.2.4","sql.js":"1.14.1","yaml":"2.9.0"},"comment_optional_runtime":"Optional packages are installed into ~/.zevai/runtime instead of the published tarball. Automation uses CloakBrowser with playwright-core; ZEVAI_MINIMAL_POSTINSTALL=1 skips its browser download. Other lazy runtimes are better-sqlite3, node-pty, and systray2.","overrides":{"body-parser":"^2.3.0","brace-expansion":"5.0.9","dompurify":"^3.4.12","ip-address":"^10.4.0","nanoid":"^3.3.18","postcss":"^8.5.10","sharp":"^0.35.0"},"comment_overrides":"Security floors for transitive dependencies. ESLint\'s legacy minimatch is a private, source-pinned 3.1.5 compatibility package backed by brace-expansion 5.0.9; modern minimatch and nanoid use fixed floors directly. Monaco still pins an old DOMPurify; Express and Next may resolve vulnerable body-parser/sharp releases. Recheck and remove overrides once parent packages require fixed versions.","devDependencies":{"@dnd-kit/core":"^6.3.1","@dnd-kit/modifiers":"^9.0.0","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2","@monaco-editor/react":"^4.7.0","@tailwindcss/postcss":"^4.1.18","@xterm/addon-fit":"^0.11.0","@xterm/addon-web-links":"^0.12.0","@xterm/xterm":"^6.0.0","@xyflow/react":"^12.10.1","bcryptjs":"^3.0.3","better-sqlite3":"^12.6.2","chalk":"^4.1.2","confbox":"^0.2.4","dompurify":"^3.4.12","esbuild":"^0.28.1","eslint":"^9","eslint-config-next":"16.2.9","express":"^5.2.1","http-proxy-middleware":"^3.0.7","jose":"^6.1.3","marked":"^18.0.1","material-symbols":"^0.45.1","minimatch":"file:vendor/minimatch3-secure","monaco-editor":"^0.55.1","node-forge":"^1.3.3","open":"^11.0.0","ora":"^9.1.0","postcss":"^8.5.10","prop-types":"^15.8.1","react-is":"^19.2.7","recharts":"^3.7.0","selfsigned":"^5.5.0","socks":"^2.8.9","socks-proxy-agent":"^10.1.0","tailwindcss":"^4","undici":"^8.10.0","uuid":"^14.0.1","vitest":"^4.1.10","zustand":"^5.0.10"},"engines":{"node":">=22.5.0"},"keywords":["zevairouter","zevai","ai","router","proxy","kiro","codebuddy","claude","openai","api","quota","automation"],"license":"MIT","repository":{"type":"git","url":"git+https://github.com/Verifiedlabs/zevairouter.git"},"bugs":{"url":"https://github.com/Verifiedlabs/zevairouter/issues"},"homepage":"https://github.com/Verifiedlabs/zevairouter"}')},54603:(a,b,c)=>{"use strict";c.d(b,{Xj:()=>q});var d=c(19713),e=c(73024),f=c.n(e),g=c(76760),h=c.n(g),i=c(77598),j=c.n(i),k=c(49120);let l=h().join(k.DATA_DIR,"machine-id"),m=h().join(k.DATA_DIR,"auth"),n=h().join(m,"cli-secret"),o=null,p=null;async function q(a=null){let b=a||process.env.MACHINE_ID_SALT||"endpoint-proxy-salt",c=function(){if(o)return o;try{if(o=f().readFileSync(l,"utf8").trim())return o}catch{}try{o=(0,d.machineIdSync)()}catch{o=j().randomUUID()}try{f().mkdirSync(k.DATA_DIR,{recursive:!0}),f().writeFileSync(l,o,{mode:384})}catch{}return o}(),e="zevai-cli-auth"===b?function(){if(p)return p;try{if(p=f().readFileSync(n,"utf8").trim())return p}catch{}p=j().randomBytes(32).toString("hex");try{f().mkdirSync(m,{recursive:!0}),f().writeFileSync(n,p,{mode:384})}catch{}return p}():"";return j().createHash("sha256").update(c+b+e).digest("hex").substring(0,16)}},78335:()=>{},81329:(a,b,c)=>{"use strict";c.d(b,{Xg:()=>d.Xg,eh:()=>e,vq:()=>d.vq});var d=c(83477);Object.entries(c(75681).AI_PROVIDERS).filter(([,a])=>a.passthroughModels).map(([a])=>a);let e=Object.entries(d.vq).flatMap(([a,b])=>b.map(b=>({provider:a,model:b.id,name:b.name})))},89718:(a,b,c)=>{"use strict";c.d(b,{CG:()=>d.CG,Dj:()=>d.Dj,Fh:()=>d.Fh,Iq:()=>d.Iq,Iu:()=>d.Iu,K1:()=>d.K1,KJ:()=>d.KJ,KK:()=>d.KK,Kg:()=>d.Kg,L:()=>d.L,L9:()=>d.L9,Lh:()=>d.Lh,ME:()=>d.ME,Mc:()=>d.Mc,NR:()=>d.NR,Op:()=>d.Op,PX:()=>d.PX,Pb:()=>d.Pb,Pc:()=>d.Pc,QI:()=>d.QI,Q_:()=>d.Q_,Qu:()=>d.Qu,S8:()=>d.S8,Uv:()=>d.Uv,VT:()=>d.VT,XW:()=>d.XW,Xx:()=>d.Xx,Yd:()=>d.Yd,ZO:()=>d.ZO,c:()=>d.c,dK:()=>d.dK,deleteModelAlias:()=>d.fv,ek:()=>d.ek,fK:()=>d.fK,getModelAliases:()=>d.OM,getProviderConnections:()=>d.P,getQuotaSnapshot:()=>d.LF,ho:()=>d.ho,hr:()=>d.hr,i0:()=>d.i0,iE:()=>d.iE,jd:()=>d.jd,mt:()=>d.mt,o5:()=>d.o5,oG:()=>d.oG,op:()=>d.op,p3:()=>d.p3,qd:()=>d.qd,r4:()=>d.r4,tV:()=>d.tV,uH:()=>d.uH,uL:()=>d.uL,ui:()=>d.ui,updateProviderConnection:()=>d.rj,uv:()=>d.uv,yF:()=>d.yF,yW:()=>d.yW,yg:()=>d.yg,zP:()=>d.zP,zY:()=>d.zY});var d=c(93999)},96487:()=>{}};
@@ -1 +1 @@
1
- "use strict";exports.id=8491,exports.ids=[1998,8491],exports.modules={7803:(a,b,c)=>{c.r(b),c.d(b,{debug:()=>o,error:()=>r,errorLine:()=>l,fmtThink:()=>m,info:()=>p,line:()=>k,maskKey:()=>v,nextTag:()=>i,request:()=>s,response:()=>t,stream:()=>u,tagForSession:()=>j,warn:()=>q});let d={DEBUG:0,INFO:1,WARN:2,ERROR:3},e=d[process.env.LOG_LEVEL?.toUpperCase?.()]??d.INFO;function f(){return new Date().toLocaleTimeString("en-US",{hour12:!1})}let g=["\uD83D\uDFE2","\uD83D\uDD35","\uD83D\uDFE3","\uD83D\uDFE1","\uD83D\uDFE0","\uD83D\uDD34","⚪","\uD83D\uDFE4"],h=0;function i(){let a=g[h%g.length];return h+=1,a}function j(a){if(!a)return i();let b=0,c=String(a);for(let a=0;a<c.length;a+=1)b=31*b+c.charCodeAt(a)|0;return g[Math.abs(b)%g.length]}function k(a,b,c){e>d.INFO||console.log(`[${f()}] ${a||"⚪"} ${b} ${c}`)}function l(a,b,c){console.log(`[${f()}] ${a||"⚪"} ${b} ${c}`)}function m(a){return a&&a.mode?"none"===a.mode?"off":"auto"===a.mode?"auto":"budget"===a.mode?a.budget>=1e3?`${Math.round(a.budget/1e3)}k`:`${a.budget}`:"level"===a.mode?a.level:null:null}function n(a){if(!a)return"";if("string"==typeof a)return a;try{return JSON.stringify(a)}catch{return String(a)}}function o(a,b,c){if(e<=d.DEBUG){let d=c?` ${n(c)}`:"";console.log(`[${f()}] 🔍 [${a}] ${b}${d}`)}}function p(a,b,c){if(e<=d.INFO){let d=c?` ${n(c)}`:"";console.log(`[${f()}] ℹ️ [${a}] ${b}${d}`)}}function q(a,b,c){if(e<=d.WARN){let d=c?` ${n(c)}`:"";console.warn(`[${f()}] ⚠️ [${a}] ${b}${d}`)}}function r(a,b,c){if(e<=d.ERROR){let d=c?` ${n(c)}`:"";console.log(`[${f()}] ❌ [${a}] ${b}${d}`)}}function s(a,b,c){let d=c?` ${n(c)}`:"";console.log(`\x1b[36m[${f()}] 📥 ${a} ${b}${d}\x1b[0m`)}function t(a,b,c){let d=c?` ${n(c)}`:"";console.log(`[${f()}] ${a<400?"\uD83D\uDCE4":"\uD83D\uDCA5"} ${a} (${b}ms)${d}`)}function u(a,b){let c=b?` ${n(b)}`:"";console.log(`[${f()}] 🌊 [STREAM] ${a}${c}`)}function v(a){return!a||a.length<8?"***":`${a.slice(0,4)}...${a.slice(-4)}`}},19225:(a,b,c)=>{a.exports=c(44870)},39326:(a,b,c)=>{c.d(b,{B:()=>h,p:()=>g});var d=c(71998);function e(a){return null==a?"":String(a).trim()}let f=new Map;function g(a,b,c){if(!a||0===a.length)return null;if(1===a.length)return a[0];if("round-robin"===b){let b=f.get(c)||{index:-1};return b.index=(b.index+1)%a.length,f.set(c,b),a[b.index]}return"random"===b?a[Math.floor(Math.random()*a.length)]:a[0]}async function h(a={}){try{let b=e(a?.proxyPoolId),c="__none__"===b?"":b,f=function(a={}){let b=a?.connectionProxyEnabled===!0,c=e(a?.connectionProxyUrl);return{connectionProxyEnabled:b,connectionProxyUrl:c,connectionNoProxy:e(a?.connectionNoProxy)}}(a);if(c){let a=await (0,d.hr)(c),b=e(a?.proxyUrl),f=e(a?.noProxy);if(a&&!0===a.isActive&&b){if("vercel"===a.type||"cloudflare"===a.type||"deno"===a.type)return{source:a.type,proxyPoolId:c,proxyPool:a,connectionProxyEnabled:!1,connectionProxyUrl:"",connectionNoProxy:f,strictProxy:!0===a.strictProxy,vercelRelayUrl:b};return{source:"pool",proxyPoolId:c,proxyPool:a,connectionProxyEnabled:!0,connectionProxyUrl:b,connectionNoProxy:f,strictProxy:!0===a.strictProxy}}}if(f.connectionProxyEnabled&&f.connectionProxyUrl)return{source:"legacy",proxyPoolId:c||null,proxyPool:null,...f};return{source:"none",proxyPoolId:c||null,proxyPool:null,...f}}catch(a){return console.error("[resolveConnectionProxyConfig] Failed to resolve proxy config:",a),{source:"error",proxyPoolId:null,proxyPool:null,connectionProxyEnabled:!1,connectionProxyUrl:"",connectionNoProxy:"",strictProxy:!1}}}},43659:(a,b,c)=>{c.d(b,{A1:()=>g,lR:()=>i,wO:()=>h,yj:()=>e,zL:()=>f});var d=c(3662);function e(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","Access-Control-Allow-Origin":"*"}})}async function f(a,b=null){let c="";try{c=await a.text()}catch{c=""}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}`,{status:c,message:f,...g}=e;return{statusCode:c||a.status,message:b,...g}}}catch{}let e="";try{let a=JSON.parse(c);e=a.error?.message||a.message||a.error||c}catch{e=c}let g=("string"==typeof e?e:JSON.stringify(e))||d.O[a.status]||`Upstream error: ${a.status}`;return{statusCode:a.status,message:g}}function g(a,b,c,d=null){return{success:!1,status:a,error:b,resetsAtMs:c,...d&&"object"==typeof d?{failureMetadata:d}:{},response:e(a,b)}}function h(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 i(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}`}},71998:(a,b,c)=>{c.d(b,{Fh:()=>d.Fh,Iu:()=>d.Iu,Kg:()=>d.Kg,L9:()=>d.L9,Mc:()=>d.Mc,OM:()=>d.getModelAliases,Pc:()=>d.Pc,Q_:()=>d.Q_,Qu:()=>d.Qu,S8:()=>d.S8,Yd:()=>d.Yd,ZO:()=>d.ZO,c:()=>d.c,createProviderConnection:()=>d.iE,fK:()=>d.fK,fv:()=>d.deleteModelAlias,getProviderConnections:()=>d.getProviderConnections,ho:()=>d.ho,hr:()=>d.hr,i0:()=>d.i0,o5:()=>d.o5,op:()=>d.op,rj:()=>d.updateProviderConnection,uL:()=>d.uL,ui:()=>d.ui,uv:()=>d.uv});var d=c(89718)},79761:(a,b,c)=>{c.d(b,{BU:()=>l,hb:()=>k,tH:()=>j});var d=c(40669),e=c(35989),f=c(75434);let g=new Set(["account","provider","egress","integrity"]);function h(a,b="unknown",c=160){return String(a||"").trim().toLowerCase().replace(/[^a-z0-9._:-]+/g,"-").replace(/^-+|-+$/g,"").slice(0,c)||b}function i(a={}){let b=g.has(a.scope)?a.scope:null;if(!b)return null;let c=h((0,d.g2)(h(a.provider)),"unknown-provider",80),f=h(a.accountId||a.connectionId,"unknown-account"),j=h(a.egressId,"direct"),k=(0,e.Nm)(a.modelFamily||a.model);return Object.freeze("account"===b?{scope:b,provider:c,accountId:f}:"provider"===b?{scope:b,provider:c}:"egress"===b?{scope:b,egressId:j}:{scope:b,provider:c,modelFamily:k,egressId:j})}let j=function(a={}){let b="function"==typeof a.now?a.now:Date.now,c="function"==typeof a.onTransition?a.onTransition:()=>{},e=new Map,f=0;function g(a,b,d){c(Object.freeze({type:"circuit",provider:a.dimensions.provider,phase:b,reason:a.dimensions.scope,deadlineMs:a.openUntilMs?Math.max(0,a.openUntilMs-d):0,...a.dimensions.modelFamily?{modelFamily:a.dimensions.modelFamily}:{}}))}function j(a){for(let[b,c]of e)c.failures=c.failures.filter(b=>a-b.atMs<=6e4),"closed"===c.mode&&0===c.failures.length&&a-c.lastTouchedAtMs>18e5&&e.delete(b);let b=[...e.entries()].filter(([,a])=>"closed"===a.mode).sort((a,b)=>a[1].lastTouchedAtMs-b[1].lastTouchedAtMs);for(;b.length>2048;)e.delete(b.shift()[0])}function k(a,c=!1){let d=i(a);if(!d)return null;let f=Object.values(d).join("\x1f"),g=e.get(f);return!g&&c&&(g={dimensions:d,mode:"closed",failures:[],openDurationMs:3e4,openUntilMs:null,probeLeaseId:null,probeSuccesses:0,lastTouchedAtMs:b()},e.set(f,g)),g}function l(a,b){a?.mode==="open"&&b>=a.openUntilMs&&(a.mode="half_open",a.probeLeaseId=null,g(a,"half_open",b))}function m(a,b,c=a.openDurationMs){a.mode="open",a.openDurationMs=Math.min(3e5,Math.max(3e4,c)),a.openUntilMs=b+a.openDurationMs,a.probeLeaseId=null,a.probeSuccesses=0,a.lastTouchedAtMs=b,g(a,"open",b)}return Object.freeze({recordFailure:function(a={}){let c;if(!1===a.evidentiary)return!1;let e=b();j(e);let f=k(a,!0);return!!f&&(l(f,e),"closed"===f.mode)&&(f.failures=f.failures.filter(a=>e-a.atMs<=6e4),f.failures.push(Object.freeze({atMs:e,accountId:h(a.accountId||a.connectionId,"unknown-account"),provider:h((0,d.g2)(h(a.provider)),"unknown-provider",80)})),f.lastTouchedAtMs=e,c=f.failures.length,("integrity"===f.dimensions.scope?c>=1:!(c<5)&&("provider"===f.dimensions.scope?new Set(f.failures.map(a=>a.accountId)).size>=2:"egress"!==f.dimensions.scope||new Set(f.failures.map(a=>a.provider)).size>=2))&&m(f,e),!0)},recordSuccess:function(a={}){let c=b(),d=k(a);return!!d&&(l(d,c),"closed"===d.mode&&(d.failures=[],d.lastTouchedAtMs=c,!0))},getDecision:function(a){let c=b();j(c);let d=i(a),e=k(a);return e?(l(e,c),Object.freeze({...e.dimensions,state:e.mode,openUntilMs:e.openUntilMs,openDurationMs:e.openDurationMs,probeInFlight:!!e.probeLeaseId,consecutiveProbeSuccesses:e.probeSuccesses})):Object.freeze({...d||{scope:null},state:"closed",openUntilMs:null,openDurationMs:3e4,probeInFlight:!1,consecutiveProbeSuccesses:0})},tryAcquireProbe:function(a){let c=b(),d=k(a);return d?(l(d,c),"half_open"!==d.mode)?Object.freeze({acquired:!1,reason:"open"===d.mode?"circuit_open":"circuit_closed"}):d.probeLeaseId?Object.freeze({acquired:!1,reason:"probe_in_flight"}):(d.probeLeaseId=`probe-${c}-${++f}`,d.lastTouchedAtMs=c,Object.freeze({acquired:!0,leaseId:d.probeLeaseId})):Object.freeze({acquired:!1,reason:"circuit_closed"})},releaseProbe:function(a,c={}){let d=b(),e=k(a);if(!e||"half_open"!==e.mode||!e.probeLeaseId||c.leaseId!==e.probeLeaseId)return!1;if(e.probeLeaseId=null,e.lastTouchedAtMs=d,!0===c.cancelled)return!0;if(!0===c.success)return e.probeSuccesses+=1,e.probeSuccesses>=2&&(e.mode="closed",e.failures=[],e.openDurationMs=3e4,e.openUntilMs=null,e.probeLeaseId=null,e.probeSuccesses=0,e.lastTouchedAtMs=d,g(e,"closed",d)),!0;return m(e,d,Math.min(3e5,2*e.openDurationMs)),!0}})}({onTransition:f.cN}),k=j.recordFailure;j.recordSuccess,j.getDecision,j.tryAcquireProbe;let l=j.releaseProbe},80238:(a,b,c)=>{c.d(b,{Pt:()=>B,Tr:()=>C,c1:()=>y,kI:()=>D,uT:()=>x,vk:()=>A});var d=c(89718),e=c(39326),f=c(12557),g=c(3662),h=c(29679),i=c(91254),j=c(75681),k=c(7803),l=c(93930),m=c(79761);let n=Promise.resolve(),o=new Set(["policy_suspended","credential_rejected","reauth_required"]),p=new Set(["authentication","entitlement_or_quota","permission_denied","rate_limited","upstream_transient"]),q=new Set(["not_attempted","succeeded","transient_failed","rejected"]);function r(a,b=200){return null==a||""===a?null:String(a).slice(0,b).replace(/[^a-zA-Z0-9._:/#-]/g,"")||null}function s(a){let b=Number(a);return Number.isInteger(b)&&b>=0&&b<=599?b:null}function t(a,b){return({policy_suspended:"Kiro reports that this account is suspended or disabled by upstream policy.",credential_rejected:"Kiro rejected the credential after a successful token refresh.",reauth_required:"Kiro rejected the refresh credential; sign in again before re-enabling.",entitlement_or_quota:"Kiro entitlement or quota is temporarily unavailable.",rate_limited:"Kiro rate limit is temporarily exhausted.",authentication:"Kiro authentication is temporarily unavailable.",permission_denied:"Kiro denied this request without confirming an account suspension.",upstream_transient:"Kiro upstream is temporarily unavailable."})[a]||`Kiro upstream request failed with status ${b||"unknown"}.`}function u(a){return"string"!=typeof a?"":a.trim().replace(/^(?:kiro|kr)\//i,"")}function v(a,b){let c=a?.providerSpecificData?.enabledModels;if(!Array.isArray(c)||0===c.length)return!0;let d=u(b);return c.some(a=>u(a)===d)}function w(a){return Object.freeze({...a,supportedModels:Object.freeze([...a.supportedModels||[]]),supportedOperations:Object.freeze([...a.supportedOperations||[]]),capabilities:Object.freeze([...a.capabilities||[]]),quota:a.quota?Object.freeze({...a.quota}):null,circuits:Object.freeze({...a.circuits||{}}),eligibility:Object.freeze({eligible:a.eligibility.eligible,reasons:Object.freeze([...a.eligibility.reasons])})})}async function x(a,b=null,c={}){let e=(0,j.rs)(a),g=Array.isArray(c.allowedConnectionIds)?c.allowedConnectionIds:null;if(!g&&c.apiKey&&(g=await (0,d.ME)(c.apiKey)),j.IS[e]?.noAuth){let a={id:"noauth",provider:e,priority:1,legacyOrder:0,isActive:!0,quarantinedAt:null,reauthRequired:!1,supportedModels:[],supportedOperations:[c.operation||"chat"],capabilities:c.capabilities||[],modelLocked:!1,quota:null,circuits:{},transportAvailable:!1!==c.transportAvailable,outboundAllowed:!1!==c.outboundAllowed,egressId:"direct",health:null,sticky:!1};return a.eligibility=(0,l.Z)(a,{...c,provider:e,model:b,operation:c.operation||"chat",allowedConnectionIds:g,pinnedConnectionId:c.strictPreferred?c.preferredConnectionId:null}),Object.freeze([w(a)])}let[h,i]=await Promise.all([(0,d.getProviderConnections)({provider:e}),(0,d.tV)(e)]),k=new Map(i.map(a=>[a.connectionId,a])),n=Number.isFinite(c.nowMs)?c.nowMs:Date.now(),o=c.circuitRegistry||m.tH;return Object.freeze(h.map((a,d)=>{let h=a.providerSpecificData||{},i=k.get(a.id)||null,j=Date.parse(i?.fetchedAt),m=Number.isFinite(j)&&n-j<=f.JN,p=(0,f.td)(i?.usage,e,b),q=(0,f.yH)(i,n),r=Array.isArray(h.enabledModels)?h.enabledModels.map(a=>u(a)):[],s=h.connectionProxyPoolId||h.proxyPoolId||(h.vercelRelayUrl?"relay":"direct"),t={account:{scope:"account",provider:e,accountId:a.id},provider:{scope:"provider",provider:e},egress:{scope:"egress",egressId:s},integrity:{scope:"integrity",provider:e,model:b,egressId:s}},v=Object.fromEntries(Object.entries(t).map(([a,b])=>[a,o.getDecision(b)])),x=Object.entries(v).filter(([,a])=>"half_open"===a.state),y=Object.values(v).some(a=>"open"===a.state);if(!0===c.acquireCircuitProbes&&!y&&1===x.length){let[a]=x[0],b=o.tryAcquireProbe(t[a]);v[a]={...v[a],probeAcquired:!0===b.acquired,...b.leaseId?{probeLeaseId:b.leaseId}:{}}}let z={id:a.id,provider:e,priority:Number.isFinite(a.priority)?a.priority:999,legacyOrder:d,isActive:!0===a.isActive,quarantinedAt:a.quarantinedAt||null,reauthRequired:"reauth_required"===a.failureClass||"token_expired"===a.autoDisabledReason||"reauth_required"===a.autoDisabledReason,supportedModels:r,supportedOperations:Array.isArray(h.supportedOperations)?h.supportedOperations:[c.operation||"chat"],capabilities:Array.isArray(h.capabilities)?h.capabilities:[],modelLocked:(0,f.Bl)(a,b,e),quota:i?{provenance:m?"fresh":"last_successful",exhausted:!!q,remaining:p>=0?p:null,total:p>=0?100:null,fetchedAtMs:Number.isFinite(j)?j:null,validUntilMs:Number.isFinite(j)?j+f.JN:null,exhaustedUntilMs:q||null}:null,circuits:v,transportAvailable:!1!==c.transportAvailable&&!1!==h.transportAvailable,outboundAllowed:!1!==c.outboundAllowed,egressId:s,health:"unavailable"===a.testStatus||a.lastError?"degraded":"success"===a.testStatus||"connected"===a.testStatus?"healthy":null,sticky:a.consecutiveUseCount>0};return z.eligibility=(0,l.Z)(z,{...c,provider:e,model:b,operation:c.operation||"chat",allowedConnectionIds:g,pinnedConnectionId:c.strictPreferred?c.preferredConnectionId:null,nowMs:n}),w(z)}))}async function y(a,b=null,g=null,l={}){let m,o=b instanceof Set?b:b?new Set([b]):new Set,p=l?.preferredConnectionId||null,q=!!l?.strictPreferred,r=n;n=new Promise(a=>{m=a});try{let b;await r;let m=(0,j.rs)(a);if(j.IS[m]?.noAuth){let a=((await (0,d.mt)()).providerStrategies||{})[m]||{},b=a.rotateStrategy||"none",c=a.proxyPoolId||null;if("none"!==b){let a=(await (0,d.ui)({isActive:!0})).filter(a=>a.proxyUrl).map(a=>a.id);c=(0,e.p)(a,b,m)}let f=await (0,e.B)({proxyPoolId:c||""});return{id:"noauth",connectionName:"Public",isActive:!0,accessToken:"public",providerSpecificData:{connectionProxyEnabled:f.connectionProxyEnabled,connectionProxyUrl:f.connectionProxyUrl,connectionNoProxy:f.connectionNoProxy,connectionProxyPoolId:f.proxyPoolId||null,vercelRelayUrl:f.vercelRelayUrl||""}}}let n=await (0,d.getProviderConnections)({provider:m,isActive:!0}),s=Array.isArray(l?.allowedConnectionIds)?l.allowedConnectionIds:null;if(!s&&l?.apiKey&&(s=await (0,d.ME)(l.apiKey)),Array.isArray(s)&&s.length>0){let b=new Set(s);n=n.filter(a=>b.has(a.id)),k.debug("AUTH",`${a} | API key scoped to ${n.length} allowed connection(s)`)}k.debug("AUTH",`${a} | total connections: ${n.length}, excludeIds: ${o.size>0?[...o].join(","):"none"}, model: ${g||"any"}`);let t=null;if("kiro"===m&&g)try{t=await (0,h.ED)(g)}catch(a){k.warn("AUTH",`Kiro model support cache unavailable: ${a?.message||a}`)}let u=t?.state==="supported"||t?.state==="unsupported",w={modelUnavailable:!0,provider:m,model:g};if(0===n.length){if(u)return k.warn("AUTH",`${a} | no eligible supporter for ${g}`),w;return k.warn("AUTH",`No credentials for ${a}`),null}let x=n.filter(a=>!a.quarantinedAt),y=new Set,z=new Set,A=!1;if("kiro"===m&&g){let a=x=x.filter(a=>v(a,g)),b=new Set(t?.unsupportedConnectionIds||[]),c=new Set(t?.freshCatalogConnectionIds||[]),d=n.filter(a=>{let c=a?.providerSpecificData?.enabledModels;return Array.isArray(c)&&c.length>0&&v(a,g)&&!b.has(a.id)}).map(a=>a.id),e=new Set([...t?.supportingConnectionIds||[],...d].filter(a=>!b.has(a)));z=new Set([...b,...[...c].filter(a=>!e.has(a))]),x=x.filter(a=>!z.has(a.id)),A=a.length>0&&a.every(a=>z.has(a.id)),e.size>0?(y=e,u=!0):t?.state==="unsupported"&&(x=[])}let B=new Map;if("codebuddy-cn"===m)for(let a of(await (0,d.tV)(m))){let b=(0,f.yH)(a);b&&B.set(a.connectionId,b)}let C=new Map;if("codebuddy-cn"===m)for(let a of n){if(11140!==Number(a.providerErrorCode))continue;let b=(0,f.kJ)(a);b&&C.set(a.id,b)}let D=new Set,E=new Set;if("codex"===m&&g){let a=await (0,d.tV)(m),b=new Map(a.map(a=>[a.connectionId,a]));for(let a of n)(0,f.xB)(a,g,m)&&E.add(a.id),(0,f.N2)(a,g,b.get(a.id),m,{ignoreProbe:!0})&&!E.has(a.id)&&D.add(a.id)}if("codebuddy"===m||"codebuddy-cn"===m)for(let a of n)(0,i.hN)(a)&&(0,f.xB)(a,null,m)&&E.add(a.id);let F=a=>C.has(a.id)||("codebuddy"===m||"codebuddy-cn"===m)&&(0,i.hN)(a)&&E.has(a.id)||(0,f.Bl)(a,g,m)&&!D.has(a.id),G=a=>E.has(a.id)?"codebuddy"===m||"codebuddy-cn"===m?a[(0,f.UM)(null,m)]:new Date(Date.now()+1e3).toISOString():[(0,f.V0)(a,g,m),C.get(a.id)].filter(Boolean).sort().at(-1)||null,H=x.filter(a=>!(o.has(a.id)||F(a)||B.has(a.id))),I=H,J=!1;if("kiro"===m&&g&&!q){let a=H.filter(a=>y.has(a.id));if(a.length>0)I=a;else{let a=H.filter(a=>!y.has(a.id)),b=[...o].filter(a=>!y.has(a)).length;I=a,b>=3?(I=[],J=!0):o.size>0&&0===a.length&&(J=!0)}}if(q&&p){let b=n.find(a=>a.id===p);if(!b)return k.warn("AUTH",`${a} | pinned account not found: ${p}`),null;if(b.quarantinedAt)return k.warn("AUTH",`${a} | pinned account is quarantined: ${b.id?.slice(0,8)}`),null;if(z.has(b.id))return k.warn("AUTH",`${a} | pinned account does not support ${g}: ${b.id?.slice(0,8)}`),w;if(!x.some(a=>a.id===b.id))return k.warn("AUTH",`${a} | pinned account is not eligible for ${g||"this request"}: ${b.id?.slice(0,8)}`),u?w:null;if(o.has(b.id))return k.warn("AUTH",`${a} | pinned account excluded after failure: ${b.id?.slice(0,8)}`),null;if(F(b)||B.has(b.id)){let a=[G(b),B.has(b.id)?new Date(B.get(b.id)).toISOString():null].filter(Boolean).sort().at(-1);return{allRateLimited:!0,retryAfter:a,retryAfterHuman:(0,f.Qo)(a),lastError:b.lastError||"Pinned account unavailable",lastErrorCode:b.errorCode||null}}I=[b]}if(k.debug("AUTH",`${a} | available: ${I.length}/${x.length}`),n.forEach(a=>{let b=o.has(a.id),c=F(a),d=D.has(a.id),e=B.get(a.id),h=!!a.quarantinedAt,i=z.has(a.id);if(b||c||e||d||h||i){let j=(0,f.kJ)(a),l=E.has(a.id);k.debug("AUTH",` \u2192 ${a.id?.slice(0,8)} | ${b?"excluded":""} ${c?`modelLocked(${g}) until ${j}`:""} ${d?`staleLockRecovered(${g})`:""} ${l?`recoveryProbeInFlight(${g})`:""} ${e?`quotaExhausted until ${new Date(e).toISOString()}`:""} ${h?"quarantined":""} ${i?`unsupported(${g})`:""}`)}}),0===I.length){if(J)return k.warn("AUTH",`${a} | bounded fallback exhausted for ${g}`),null;let b=x.filter(a=>F(a)),c=x.map(a=>[F(a)?G(a):null,B.has(a.id)?new Date(B.get(a.id)).toISOString():null].filter(Boolean).sort().at(-1)).filter(Boolean).sort()[0]||null;if(c){let d=b[0];return k.warn("AUTH",`${a} | all ${x.length} candidate accounts locked for ${g||"all"} (${(0,f.Qo)(c)}) | lastError=${d?.lastError?.slice(0,50)}`),{allRateLimited:!0,retryAfter:c,retryAfterHuman:(0,f.Qo)(c),lastError:d?.lastError||null,lastErrorCode:d?.errorCode||null}}return k.warn("AUTH",`${a} | all ${n.length} accounts unavailable`),u||A?w:null}let K=await (0,d.mt)(),L=(K.providerStrategies||{})[m]||{},M=L.fallbackStrategy||K.fallbackStrategy||"fill-first";if(p&&(b=I.find(a=>a.id===p))&&k.debug("AUTH",`${a} | pinned to ${b.id?.slice(0,8)} (${b.name||b.email||"unnamed"})`),b);else if(q&&p)return k.warn("AUTH",`${a} | pinned account unavailable: ${p}`),null;else if("round-robin"===M){let a=L.stickyRoundRobinLimit||K.stickyRoundRobinLimit||3,c=[...I].sort((a,b)=>a.lastUsedAt||b.lastUsedAt?a.lastUsedAt?b.lastUsedAt?new Date(b.lastUsedAt)-new Date(a.lastUsedAt):-1:1:(a.priority||999)-(b.priority||999))[0],e=c?.consecutiveUseCount||0;c&&c.lastUsedAt&&e<a?(b=c,await (0,d.updateProviderConnection)(b.id,{lastUsedAt:new Date().toISOString(),consecutiveUseCount:(b.consecutiveUseCount||0)+1})):(b=[...I].sort((a,b)=>a.lastUsedAt||b.lastUsedAt?a.lastUsedAt?b.lastUsedAt?new Date(a.lastUsedAt)-new Date(b.lastUsedAt):1:-1:(a.priority||999)-(b.priority||999))[0],await (0,d.updateProviderConnection)(b.id,{lastUsedAt:new Date().toISOString(),consecutiveUseCount:1}))}else if("most-quota"===M){let a=await Promise.all(I.map(async a=>{let b=-1;try{let c=await (0,d.getQuotaSnapshot)(a.id);b=(0,f.td)(c?.usage,m,g)}catch{}return{conn:a,remaining:b}}));a.sort((a,b)=>a.remaining!==b.remaining?b.remaining-a.remaining:(a.conn.priority||999)-(b.conn.priority||999)),b=(a.filter(a=>0!==a.remaining)[0]||a[0]).conn,await (0,d.updateProviderConnection)(b.id,{lastUsedAt:new Date().toISOString(),consecutiveUseCount:1})}else if("lowest-latency"===M){let{getLatencyStats:e}=await Promise.resolve().then(c.bind(c,93999)),f=await e(),g=I.map(a=>{let b=f.get(`${a.provider}|${a.id}`)||f.get(`${m}|${a.id}`);return{conn:a,avgMs:b?b.avgMs:null,samples:b?b.samples:0}});g.sort((a,b)=>null===a.avgMs&&null===b.avgMs?(a.conn.priority||999)-(b.conn.priority||999):null===a.avgMs?1:null===b.avgMs?-1:a.avgMs!==b.avgMs?a.avgMs-b.avgMs:(a.conn.priority||999)-(b.conn.priority||999)),b=g[0].conn,k.debug("AUTH",`${a} | lowest-latency → ${b.id?.slice(0,8)} (${g[0].avgMs??"?"}ms avg, ${g[0].samples} samples)`),await (0,d.updateProviderConnection)(b.id,{lastUsedAt:new Date().toISOString(),consecutiveUseCount:1})}else b=I[0];if(D.has(b.id)){let a=(0,f.WP)(g,m);await (0,d.updateProviderConnection)(b.id,a),b={...b,...a}}if(("codebuddy"===m||"codebuddy-cn"===m)&&(0,i.hN)(b)){let a=(0,f.WP)(null,m);await (0,d.updateProviderConnection)(b.id,a),b={...b,...a}}let N=await (0,e.B)(b.providerSpecificData||{});return{authType:b.authType,apiKey:b.apiKey,accessToken:b.accessToken,refreshToken:b.refreshToken,idToken:b.idToken,expiresAt:b.expiresAt,expiresIn:b.expiresIn,lastRefreshAt:b.lastRefreshAt,projectId:b.projectId||b.providerSpecificData?.projectId||null,connectionName:b.displayName||b.name||b.email||b.id,copilotToken:b.providerSpecificData?.copilotToken,providerSpecificData:{...b.providerSpecificData||{},connectionProxyEnabled:N.connectionProxyEnabled,connectionProxyUrl:N.connectionProxyUrl,connectionNoProxy:N.connectionNoProxy,strictProxy:!0===N.strictProxy,connectionProxyPoolId:N.proxyPoolId||null,vercelRelayUrl:N.vercelRelayUrl||""},connectionId:b.id,testStatus:b.testStatus,lastError:b.lastError,_connection:b}}finally{m&&m()}}async function z(a,b,e,h=null,l=null,m=null,n=null){let o,p,q;if(!a||"noauth"===a)return{shouldFallback:!1,cooldownMs:0};let r=(0,j.rs)(h),s=(0,f.UM)(l,r);if((0,f.d5)(b,e))return await (0,d.updateProviderConnection)(a,{[s]:null}),k.warn("AUTH",`shared egress/WAF error; fallback without locking account [${b}]`),{shouldFallback:!0,cooldownMs:0};if((0,f.P0)(b,e))return await (0,d.updateProviderConnection)(a,{[s]:null}),k.warn("AUTH",`non-account error; no fallback [${b}] ${"string"==typeof e?e.slice(0,100):"Provider error"}`),{shouldFallback:!1,cooldownMs:0};let t=(await (0,d.getProviderConnections)({provider:r})).find(b=>b.id===a),u=t?.backoffLevel||0,v=(0,f.UO)(e),w="codebuddy-cn"===r&&14018===v,x="codebuddy"===r&&14018===v,y="codebuddy-cn"===r&&11140===v;if(y){let c=new Date().toISOString(),e="CodeBuddy CN rejected this credential (11140 request illegal).";return await (0,d.Iu)(a,(a,d)=>{if(a.manuallyReenabledAt&&a.manuallyReenabledAt!==n?.manuallyReenabledAt)return null;let f={...a,providerSpecificData:(0,i.r_)(a.providerSpecificData,c,v)};return{connection:{[s]:null,isActive:!1,testStatus:"unavailable",lastError:e,errorCode:b,providerErrorCode:v,quarantinedAt:c,quarantineReason:e,lastErrorAt:c,autoDisabledAt:c,autoDisabledReason:"credential_rejected",consecutiveAuthFailures:Math.max(1,(a.consecutiveAuthFailures||0)+1),backoffLevel:0,providerSpecificData:f.providerSpecificData},quotaUsage:(0,i.pX)(d?.usage||{},f)}}),k.warn("AUTH",`${t?.displayName||t?.name||a.slice(0,8)} quarantined immediately [11140]`),{shouldFallback:!0,cooldownMs:0}}if(w){let b=await (0,d.getQuotaSnapshot)(a);m=(0,f.lI)(b?.usage)||m}if(m&&m>Date.now()?(o=!0,p=Math.min(m-Date.now(),g.fh),q=0):{shouldFallback:o,cooldownMs:p,newBackoffLevel:q}=(0,f.hk)(b,e,u),!o)return await (0,d.updateProviderConnection)(a,{[s]:null}),{shouldFallback:!1,cooldownMs:0};let A="string"==typeof e?e.slice(0,100):"Provider error",B=w||x,C=B?null:(0,f.LV)(r,l),D=(0,f.S5)(C,p,r),E=new Date().toISOString(),F={...D,[s]:null,...B?{[(0,f.UM)(null,r)]:null}:{},testStatus:"unavailable",lastError:A,errorCode:b,providerErrorCode:v,modelLockReason:{model:C||"__all",providerErrorCode:v,reason:A,lockedAt:E,resetsAt:new Date(Date.now()+p).toISOString()},lastErrorAt:E,backoffLevel:q??u};if(B)try{await (0,d.Iu)(a,(a,b)=>{if(a.manuallyReenabledAt&&a.manuallyReenabledAt!==n?.manuallyReenabledAt)return null;let c={...a,providerSpecificData:(0,i.QN)(a.providerSpecificData,E)};return{connection:{...F,providerSpecificData:c.providerSpecificData},quotaUsage:(0,i.pX)(b?.usage||{},c)}})}catch(a){throw k.warn("AUTH",`CodeBuddy runtime exhaustion update failed: ${a?.message||a}`),a}else await (0,d.updateProviderConnection)(a,F);let G=Object.keys(D)[0],H=t?.displayName||t?.name||t?.email||a.slice(0,8);if(k.warn("AUTH",`${H} locked ${G} for ${Math.round(p/1e3)}s [${b}]`),h&&c.e(6802).then(c.bind(c,86802)).then(a=>{a.alertProviderDown(h,`${H}: ${A}`),(429===b||A.toLowerCase().includes("quota"))&&a.alertQuotaExhausted(h,H)}).catch(()=>{}),h&&b&&A&&console.error(`\u274c ${h} [${b}]: ${A}`),new Set([401,403]).has(b)&&!w){let c=("string"==typeof e?e:"").toLowerCase(),f=["quota","payment","billing","entitlement","subscription","insufficient_quota"].some(a=>c.includes(a));if(y||!f&&["token expired","token invalid","invalid token","revoked","unauthorized","invalid api key","invalid_api_key","banned","suspended","restricted","account disabled"].some(a=>c.includes(a))){let e=(t?.consecutiveAuthFailures||0)+1;e>=3?(await (0,d.updateProviderConnection)(a,{isActive:!1,autoDisabledAt:new Date().toISOString(),autoDisabledReason:c.includes("banned")||c.includes("suspended")||c.includes("restricted")||c.includes("account disabled")?"banned":"token_expired",consecutiveAuthFailures:e}),k.warn("AUTH",`\u26d4 Auto-disabled ${H} after ${e} consecutive auth failures [${b}]: ${A}`)):(await (0,d.updateProviderConnection)(a,{consecutiveAuthFailures:e}),k.warn("AUTH",`${H} auth failure ${e}/3 [${b}]: ${A}`))}}return{shouldFallback:!0,cooldownMs:p}}async function A(a,b,c,e=null,i=null,l=null,m=null,n=null){let u,v,w,x,y,B,C,D=(0,j.rs)(e);if("kiro"!==D)return z(a,b,c,e,i,l,n);if(!a||"noauth"===a)return{shouldFallback:!1,cooldownMs:0};let E=(0,f.UM)(i,D),F=(x=m&&"object"==typeof m&&!Array.isArray(m)?m:{},B=new Date(y=Number(l??x.resetsAtMs)),C=Number.isFinite(y)&&y>0&&Number.isFinite(B.getTime())?B.toISOString():null,{failureClass:r(x.failureClass,80)?.toLowerCase()||null,providerErrorCode:r(x.providerErrorCode),upstreamRequestId:r(x.upstreamRequestId),failureResetAt:C,authLifecycle:function(a){if(!a||"object"!=typeof a||Array.isArray(a))return null;let b=q.has(a.refreshOutcome)?a.refreshOutcome:"not_attempted";return{initialStatus:s(a.initialStatus),refreshAttempted:!0===a.refreshAttempted,refreshOutcome:b,retryStatus:s(a.retryStatus)}}(x.authLifecycle)}),{failureClass:G}=F;if("shared_egress_waf"===G||(0,f.d5)(b,c))return await (0,d.updateProviderConnection)(a,{[E]:null}),k.warn("AUTH",`Kiro shared egress/WAF error; fallback without account punishment [${b}]`),{shouldFallback:!0,cooldownMs:0};if(function(a,b){if("invalid_model"===a)return!0;let c=String(b||"").toUpperCase();return/INVALID[_-]?MODEL|MODEL[_-]?(?:NOT[_-]?(?:FOUND|SUPPORTED)|UNSUPPORTED)/.test(c)}(G,F.providerErrorCode)){await (0,d.updateProviderConnection)(a,{[E]:null});let b=!1;try{await (0,h.FL)(a,i);let c=(await (0,d.getProviderConnections)({provider:D,isActive:!0})).filter(a=>!a.quarantinedAt).map(a=>a.id);b=!!i&&await (0,h.CY)(i,a,c)}catch(a){k.warn("AUTH",`Kiro model support cache update failed: ${a?.message||a}`)}return k.warn("AUTH",`Kiro model is unsupported by ${a.slice(0,8)}; ${b?"trying a known supporter":"not rotating to an unknown account"}`),{shouldFallback:b,cooldownMs:0}}if(function(a,b){if("invalid_request"===a||"request_error"===a)return!0;let c=String(b||"").toUpperCase();return/INVALID[_-]?(?:REQUEST|ARGUMENT)|VALIDATION|BAD[_-]?REQUEST|MALFORMED/.test(c)}(G,F.providerErrorCode)||(0,f.P0)(b,c))return await (0,d.updateProviderConnection)(a,{[E]:null}),k.warn("AUTH",`Kiro request error; no account lock or credential rotation [${b}]`),{shouldFallback:!1,cooldownMs:0};let H=(await (0,d.getProviderConnections)({provider:D})).find(b=>b.id===a),I=H?.backoffLevel||0,J=F.providerErrorCode||r((0,f.UO)(c)),K=H?.displayName||H?.name||H?.email||a.slice(0,8);if(o.has(G)){let c=new Date().toISOString(),e=t(G,b);return await (0,d.updateProviderConnection)(a,{[E]:null,isActive:!1,testStatus:"unavailable",lastError:e,errorCode:b,failureClass:G,providerErrorCode:J,upstreamRequestId:F.upstreamRequestId,failureResetAt:F.failureResetAt,authLifecycle:F.authLifecycle,quarantinedAt:c,quarantineReason:e,lastErrorAt:c,autoDisabledAt:c,autoDisabledReason:G,consecutiveAuthFailures:Math.max(1,(H?.consecutiveAuthFailures||0)+1),backoffLevel:0}),k.warn("AUTH",`${K} quarantined immediately [${G}]`),{shouldFallback:!0,cooldownMs:0}}let L=Number(l);if(Number.isFinite(L)&&L>Date.now()?(u=!0,v=Math.min(L-Date.now(),g.fh),w=0):{shouldFallback:u,cooldownMs:v,newBackoffLevel:w}=(0,f.hk)(b,c,I),!u)return await (0,d.updateProviderConnection)(a,{[E]:null}),{shouldFallback:!1,cooldownMs:0};let M=p.has(G)||403===b||408===b||429===b||b>=500,N=G||(429===b?"rate_limited":403===b?"permission_denied":b>=500?"upstream_transient":null),O=t(N,b),P=M?null:(0,f.LV)(D,i),Q=(0,f.S5)(P,v,D),R=new Date().toISOString(),S=new Date(Date.now()+v).toISOString();await (0,d.updateProviderConnection)(a,{...Q,[E]:null,testStatus:"unavailable",lastError:O,errorCode:b,failureClass:N,providerErrorCode:J,upstreamRequestId:F.upstreamRequestId,failureResetAt:F.failureResetAt,authLifecycle:F.authLifecycle,modelLockReason:{model:P||"__all",providerErrorCode:J,reason:O,lockedAt:R,resetsAt:S},lastErrorAt:R,backoffLevel:w??I,consecutiveAuthFailures:0});let T=Object.keys(Q)[0];if(k.warn("AUTH",`${K} locked ${T} for ${Math.round(v/1e3)}s [${b}]`),!G&&(401===b||403===b)){let e=("string"==typeof c?c:"").toLowerCase();if(!["quota","payment","billing","entitlement","subscription","insufficient_quota"].some(a=>e.includes(a))&&["token expired","token invalid","invalid token","revoked","unauthorized","invalid api key","invalid_api_key","banned","suspended","restricted","account disabled"].some(a=>e.includes(a))){let c=(H?.consecutiveAuthFailures||0)+1,f=["banned","suspended","restricted","account disabled"].some(a=>e.includes(a));if(c>=3){let e=new Date().toISOString(),g=f?t("policy_suspended",b):"Kiro rejected this credential three consecutive times.";await (0,d.updateProviderConnection)(a,{isActive:!1,quarantinedAt:e,quarantineReason:g,failureClass:f?"policy_suspended":"authentication",autoDisabledAt:e,autoDisabledReason:f?"policy_suspended":"token_expired",consecutiveAuthFailures:c}),k.warn("AUTH",`${K} quarantined after ${c} unstructured auth failures`)}else await (0,d.updateProviderConnection)(a,{consecutiveAuthFailures:c})}}return{shouldFallback:!0,cooldownMs:v}}async function B(a,b,c=null){if(!a||"noauth"===a)return;let e=b._connection||b,g=(0,j.rs)(e.provider),h=(0,f.LV)(g,c),l=Date.now(),m=(0,f.UM)(c,g),n=!1,o=!1,p=(a,b=!1)=>{if(!a||b&&(a.quarantinedAt||e.quarantinedAt))return null;let d=(a,b)=>{if(!a.startsWith(b))return!1;let d=a.slice(b.length);return"__all"===d||!c||(0,f.LV)(g,d)===h};if(b&&Object.keys(a).some(b=>(d(b,"modelLock_")||d(b,"modelRecoveryProbe_"))&&a[b]!==e[b]&&Date.parse(a[b])>l))return n=!0,null;let i=Object.keys(a).filter(a=>a.startsWith("modelLock_"));if("unavailable"!==a.testStatus&&!a.lastError&&0===i.length)return null;let j=i.filter(d=>{if(b&&a[d]!==e[d])return!1;let i=d.slice(10);if(c&&(0,f.LV)(g,i)===h||c&&"modelLock___all"===d)return!0;let j=a[d];return j&&new Date(j).getTime()<=l});if(0===j.length&&"unavailable"!==a.testStatus&&!a.lastError)return null;let k=i.filter(b=>!j.includes(b)&&Date.parse(a[b])>l),o={...Object.fromEntries(j.map(a=>[a,null]))};return b&&a[m]!==e[m]||(o[m]=null),0===k.length&&Object.assign(o,{testStatus:"active",lastError:null,errorCode:null,providerErrorCode:null,..."kiro"===g?{failureClass:null,upstreamRequestId:null,failureResetAt:null,authLifecycle:null}:{},modelLockReason:null,lastErrorAt:null,backoffLevel:0,consecutiveAuthFailures:0}),o};if("kiro"===g){await (0,d.Op)(a,a=>p(a,!0)),n&&k.debug("AUTH",`Kiro success did not clear newer failure state for ${a.slice(0,8)}`);return}if("codebuddy"===g||"codebuddy-cn"===g){let b=(0,i.kt)(e);await (0,d.Iu)(a,a=>{if(a.quarantinedAt||(0,i.uF)(a))return null;let c=(0,i.kt)(a);if(c&&c!==b)return null;let d=p(a)||{};return(b&&(0,i.kt)(a)===b&&(d.providerSpecificData=(0,i.US)(a.providerSpecificData),d[(0,f.UM)(null,g)]=null,o=!0),0===Object.keys(d).length)?null:{connection:d,...o?{quotaUsage:null}:{}}});return}let q=p(e);q&&await (0,d.updateProviderConnection)(a,q)}function C(a){let b=a.headers.get("Authorization");if(b?.startsWith("Bearer "))return b.slice(7);let c=a.headers.get("x-api-key");return c||null}async function D(a){return!!a&&await (0,d.ek)(a)}},91254:(a,b,c)=>{c.d(b,{CG:()=>p,QN:()=>k,US:()=>o,hN:()=>j,kt:()=>i,pX:()=>q,r_:()=>n,uF:()=>m});let d="codebuddyRuntimeExhaustedAt",e="codebuddyRuntimeExhaustedCode",f="codebuddyRuntimeRejectedAt",g="codebuddyRuntimeRejectedCode";function h(a){return a?.provider==="codebuddy"||a?.provider==="codebuddy-cn"}function i(a){return h(a)&&a.providerSpecificData?.[d]||null}function j(a){return!!i(a)}function k(a,b){return{...a||{},[d]:b,[e]:14018}}function l(a){return a?.provider!=="codebuddy-cn"?null:a.providerSpecificData?.[f]||null}function m(a){return!!l(a)}function n(a,b,c=11140){return{...a||{},[f]:b,[g]:c}}function o(a){let b={...a||{}};return delete b[d],delete b[e],b}function p(a){let b=o(a);return delete b[f],delete b[g],b}function q(a,b){if(!h(b))return a;let c=l(b),d=i(b);if(!c&&!d)return a;let e=a?.billingQuotas||a?.quotas||{};if(c)return{...a||{},message:"CodeBuddy CN chat API rejected this credential (11140); billing package balance is nominal and does not prove chat access.",billingQuotas:e,runtimeStatus:"credential_rejected",chatUsable:!1,runtimeRejectedAt:c,runtimeRejectedCode:Number(b.providerSpecificData?.[g])||11140};let f=Object.fromEntries(Object.entries(e).map(([a,b])=>{let c=Number(b?.total);return[a,{...b||{},...Number.isFinite(c)?{used:c}:{},remaining:0,remainingPercentage:0}]}));return{...a||{},message:"CodeBuddy chat API reported exhausted credits (14018); billing package balance is nominal until a chat request succeeds.",billingQuotas:e,quotas:f,runtimeStatus:"exhausted",chatUsable:!1,runtimeExhausted:!0,runtimeExhaustedAt:d,runtimeExhaustedCode:14018}}},92280:(a,b,c)=>{Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(28208),e=c(47617),f=c(62018);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}},93930:(a,b,c)=>{c.d(b,{Z:()=>e});let d=Object.freeze([["unsupported_model",(a,b)=>Array.isArray(a.supportedModels)&&a.supportedModels.length>0&&!a.supportedModels.includes(b.model)],["unsupported_operation",(a,b)=>Array.isArray(a.supportedOperations)&&a.supportedOperations.length>0&&!a.supportedOperations.includes(b.operation)],["unsupported_capability",(a,b)=>{let c=new Set(a.capabilities||[]);return c.size>0&&(b.requiredCapabilities||[]).some(a=>!c.has(a))}],["api_key_model_restricted",(a,b)=>Array.isArray(b.allowedModels)&&b.allowedModels.length>0&&!b.allowedModels.includes(b.model)],["api_key_provider_restricted",(a,b)=>Array.isArray(b.allowedProviders)&&b.allowedProviders.length>0&&!b.allowedProviders.includes(a.provider)],["connection_restricted",(a,b)=>Array.isArray(b.allowedConnectionIds)&&b.allowedConnectionIds.length>0&&!b.allowedConnectionIds.includes(a.id)],["explicit_pin_mismatch",(a,b)=>!!b.pinnedConnectionId&&b.pinnedConnectionId!==a.id],["inactive",a=>!0!==a.isActive],["quarantined",a=>!!a.quarantinedAt],["reauth_required",a=>!0===a.reauthRequired],["model_locked",a=>!0===a.modelLocked],["quota_exhausted",(a,b)=>{let c=a.quota;return!!c&&!0===c.exhausted&&("last_successful"!==c.provenance||!(Number(c.remaining)>0&&Number(c.validUntilMs)>Number(b.nowMs||Date.now())))}],["circuit_open",a=>Object.values(a.circuits||{}).some(a=>a?.state==="open"||a?.state==="half_open"&&a?.probeAcquired!==!0)],["missing_transport",a=>!1===a.transportAvailable],["outbound_rejected",a=>!1===a.outboundAllowed]]);function e(a={},b={}){let c=d.filter(([,c])=>c(a,b)).map(([a])=>a);return Object.freeze({eligible:0===c.length,reasons:Object.freeze(c)})}}};
1
+ "use strict";exports.id=8491,exports.ids=[1998,8491],exports.modules={7803:(a,b,c)=>{c.r(b),c.d(b,{debug:()=>o,error:()=>r,errorLine:()=>l,fmtThink:()=>m,info:()=>p,line:()=>k,maskKey:()=>v,nextTag:()=>i,request:()=>s,response:()=>t,stream:()=>u,tagForSession:()=>j,warn:()=>q});let d={DEBUG:0,INFO:1,WARN:2,ERROR:3},e=d[process.env.LOG_LEVEL?.toUpperCase?.()]??d.INFO;function f(){return new Date().toLocaleTimeString("en-US",{hour12:!1})}let g=["\uD83D\uDFE2","\uD83D\uDD35","\uD83D\uDFE3","\uD83D\uDFE1","\uD83D\uDFE0","\uD83D\uDD34","⚪","\uD83D\uDFE4"],h=0;function i(){let a=g[h%g.length];return h+=1,a}function j(a){if(!a)return i();let b=0,c=String(a);for(let a=0;a<c.length;a+=1)b=31*b+c.charCodeAt(a)|0;return g[Math.abs(b)%g.length]}function k(a,b,c){e>d.INFO||console.log(`[${f()}] ${a||"⚪"} ${b} ${c}`)}function l(a,b,c){console.log(`[${f()}] ${a||"⚪"} ${b} ${c}`)}function m(a){return a&&a.mode?"none"===a.mode?"off":"auto"===a.mode?"auto":"budget"===a.mode?a.budget>=1e3?`${Math.round(a.budget/1e3)}k`:`${a.budget}`:"level"===a.mode?a.level:null:null}function n(a){if(!a)return"";if("string"==typeof a)return a;try{return JSON.stringify(a)}catch{return String(a)}}function o(a,b,c){if(e<=d.DEBUG){let d=c?` ${n(c)}`:"";console.log(`[${f()}] 🔍 [${a}] ${b}${d}`)}}function p(a,b,c){if(e<=d.INFO){let d=c?` ${n(c)}`:"";console.log(`[${f()}] ℹ️ [${a}] ${b}${d}`)}}function q(a,b,c){if(e<=d.WARN){let d=c?` ${n(c)}`:"";console.warn(`[${f()}] ⚠️ [${a}] ${b}${d}`)}}function r(a,b,c){if(e<=d.ERROR){let d=c?` ${n(c)}`:"";console.log(`[${f()}] ❌ [${a}] ${b}${d}`)}}function s(a,b,c){let d=c?` ${n(c)}`:"";console.log(`\x1b[36m[${f()}] 📥 ${a} ${b}${d}\x1b[0m`)}function t(a,b,c){let d=c?` ${n(c)}`:"";console.log(`[${f()}] ${a<400?"\uD83D\uDCE4":"\uD83D\uDCA5"} ${a} (${b}ms)${d}`)}function u(a,b){let c=b?` ${n(b)}`:"";console.log(`[${f()}] 🌊 [STREAM] ${a}${c}`)}function v(a){return!a||a.length<8?"***":`${a.slice(0,4)}...${a.slice(-4)}`}},19225:(a,b,c)=>{a.exports=c(44870)},39326:(a,b,c)=>{c.d(b,{B:()=>h,p:()=>g});var d=c(71998);function e(a){return null==a?"":String(a).trim()}let f=new Map;function g(a,b,c){if(!a||0===a.length)return null;if(1===a.length)return a[0];if("round-robin"===b){let b=f.get(c)||{index:-1};return b.index=(b.index+1)%a.length,f.set(c,b),a[b.index]}return"random"===b?a[Math.floor(Math.random()*a.length)]:a[0]}async function h(a={}){try{let b=e(a?.proxyPoolId),c="__none__"===b?"":b,f=function(a={}){let b=a?.connectionProxyEnabled===!0,c=e(a?.connectionProxyUrl);return{connectionProxyEnabled:b,connectionProxyUrl:c,connectionNoProxy:e(a?.connectionNoProxy)}}(a);if(c){let a=await (0,d.hr)(c),b=e(a?.proxyUrl),f=e(a?.noProxy);if(a&&!0===a.isActive&&b){if("vercel"===a.type||"cloudflare"===a.type||"deno"===a.type)return{source:a.type,proxyPoolId:c,proxyPool:a,connectionProxyEnabled:!1,connectionProxyUrl:"",connectionNoProxy:f,strictProxy:!0===a.strictProxy,vercelRelayUrl:b};return{source:"pool",proxyPoolId:c,proxyPool:a,connectionProxyEnabled:!0,connectionProxyUrl:b,connectionNoProxy:f,strictProxy:!0===a.strictProxy}}}if(f.connectionProxyEnabled&&f.connectionProxyUrl)return{source:"legacy",proxyPoolId:c||null,proxyPool:null,...f};return{source:"none",proxyPoolId:c||null,proxyPool:null,...f}}catch(a){return console.error("[resolveConnectionProxyConfig] Failed to resolve proxy config:",a),{source:"error",proxyPoolId:null,proxyPool:null,connectionProxyEnabled:!1,connectionProxyUrl:"",connectionNoProxy:"",strictProxy:!1}}}},43659:(a,b,c)=>{c.d(b,{A1:()=>g,lR:()=>i,wO:()=>h,yj:()=>e,zL:()=>f});var d=c(3662);function e(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","Access-Control-Allow-Origin":"*"}})}async function f(a,b=null){let c="";try{c=await a.text()}catch{c=""}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}`,{status:c,message:f,...g}=e;return{statusCode:c||a.status,message:b,...g}}}catch{}let e="";try{let a=JSON.parse(c);e=a.error?.message||a.message||a.error||c}catch{e=c}let g=("string"==typeof e?e:JSON.stringify(e))||d.O[a.status]||`Upstream error: ${a.status}`;return{statusCode:a.status,message:g}}function g(a,b,c,d=null){return{success:!1,status:a,error:b,resetsAtMs:c,...d&&"object"==typeof d?{failureMetadata:d}:{},response:e(a,b)}}function h(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 i(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}`}},71998:(a,b,c)=>{c.d(b,{Fh:()=>d.Fh,Iu:()=>d.Iu,Kg:()=>d.Kg,L9:()=>d.L9,Mc:()=>d.Mc,OM:()=>d.getModelAliases,Pc:()=>d.Pc,Q_:()=>d.Q_,Qu:()=>d.Qu,S8:()=>d.S8,Yd:()=>d.Yd,ZO:()=>d.ZO,c:()=>d.c,createProviderConnection:()=>d.iE,fK:()=>d.fK,fv:()=>d.deleteModelAlias,getProviderConnections:()=>d.getProviderConnections,ho:()=>d.ho,hr:()=>d.hr,i0:()=>d.i0,o5:()=>d.o5,op:()=>d.op,rj:()=>d.updateProviderConnection,uL:()=>d.uL,ui:()=>d.ui,uv:()=>d.uv});var d=c(89718)},79761:(a,b,c)=>{c.d(b,{BU:()=>l,hb:()=>k,tH:()=>j});var d=c(40669),e=c(35989),f=c(75434);let g=new Set(["account","provider","egress","integrity"]);function h(a,b="unknown",c=160){return String(a||"").trim().toLowerCase().replace(/[^a-z0-9._:-]+/g,"-").replace(/^-+|-+$/g,"").slice(0,c)||b}function i(a={}){let b=g.has(a.scope)?a.scope:null;if(!b)return null;let c=h((0,d.g2)(h(a.provider)),"unknown-provider",80),f=h(a.accountId||a.connectionId,"unknown-account"),j=h(a.egressId,"direct"),k=(0,e.Nm)(a.modelFamily||a.model);return Object.freeze("account"===b?{scope:b,provider:c,accountId:f}:"provider"===b?{scope:b,provider:c}:"egress"===b?{scope:b,egressId:j}:{scope:b,provider:c,modelFamily:k,egressId:j})}let j=function(a={}){let b="function"==typeof a.now?a.now:Date.now,c="function"==typeof a.onTransition?a.onTransition:()=>{},e=new Map,f=0;function g(a,b,d){c(Object.freeze({type:"circuit",provider:a.dimensions.provider,phase:b,reason:a.dimensions.scope,deadlineMs:a.openUntilMs?Math.max(0,a.openUntilMs-d):0,...a.dimensions.modelFamily?{modelFamily:a.dimensions.modelFamily}:{}}))}function j(a){for(let[b,c]of e)c.failures=c.failures.filter(b=>a-b.atMs<=6e4),"closed"===c.mode&&0===c.failures.length&&a-c.lastTouchedAtMs>18e5&&e.delete(b);let b=[...e.entries()].filter(([,a])=>"closed"===a.mode).sort((a,b)=>a[1].lastTouchedAtMs-b[1].lastTouchedAtMs);for(;b.length>2048;)e.delete(b.shift()[0])}function k(a,c=!1){let d=i(a);if(!d)return null;let f=Object.values(d).join("\x1f"),g=e.get(f);return!g&&c&&(g={dimensions:d,mode:"closed",failures:[],openDurationMs:3e4,openUntilMs:null,probeLeaseId:null,probeSuccesses:0,lastTouchedAtMs:b()},e.set(f,g)),g}function l(a,b){a?.mode==="open"&&b>=a.openUntilMs&&(a.mode="half_open",a.probeLeaseId=null,g(a,"half_open",b))}function m(a,b,c=a.openDurationMs){a.mode="open",a.openDurationMs=Math.min(3e5,Math.max(3e4,c)),a.openUntilMs=b+a.openDurationMs,a.probeLeaseId=null,a.probeSuccesses=0,a.lastTouchedAtMs=b,g(a,"open",b)}return Object.freeze({recordFailure:function(a={}){let c;if(!1===a.evidentiary)return!1;let e=b();j(e);let f=k(a,!0);return!!f&&(l(f,e),"closed"===f.mode)&&(f.failures=f.failures.filter(a=>e-a.atMs<=6e4),f.failures.push(Object.freeze({atMs:e,accountId:h(a.accountId||a.connectionId,"unknown-account"),provider:h((0,d.g2)(h(a.provider)),"unknown-provider",80)})),f.lastTouchedAtMs=e,c=f.failures.length,("integrity"===f.dimensions.scope?c>=1:!(c<5)&&("provider"===f.dimensions.scope?new Set(f.failures.map(a=>a.accountId)).size>=2:"egress"!==f.dimensions.scope||new Set(f.failures.map(a=>a.provider)).size>=2))&&m(f,e),!0)},recordSuccess:function(a={}){let c=b(),d=k(a);return!!d&&(l(d,c),"closed"===d.mode&&(d.failures=[],d.lastTouchedAtMs=c,!0))},getDecision:function(a){let c=b();j(c);let d=i(a),e=k(a);return e?(l(e,c),Object.freeze({...e.dimensions,state:e.mode,openUntilMs:e.openUntilMs,openDurationMs:e.openDurationMs,probeInFlight:!!e.probeLeaseId,consecutiveProbeSuccesses:e.probeSuccesses})):Object.freeze({...d||{scope:null},state:"closed",openUntilMs:null,openDurationMs:3e4,probeInFlight:!1,consecutiveProbeSuccesses:0})},tryAcquireProbe:function(a){let c=b(),d=k(a);return d?(l(d,c),"half_open"!==d.mode)?Object.freeze({acquired:!1,reason:"open"===d.mode?"circuit_open":"circuit_closed"}):d.probeLeaseId?Object.freeze({acquired:!1,reason:"probe_in_flight"}):(d.probeLeaseId=`probe-${c}-${++f}`,d.lastTouchedAtMs=c,Object.freeze({acquired:!0,leaseId:d.probeLeaseId})):Object.freeze({acquired:!1,reason:"circuit_closed"})},releaseProbe:function(a,c={}){let d=b(),e=k(a);if(!e||"half_open"!==e.mode||!e.probeLeaseId||c.leaseId!==e.probeLeaseId)return!1;if(e.probeLeaseId=null,e.lastTouchedAtMs=d,!0===c.cancelled)return!0;if(!0===c.success)return e.probeSuccesses+=1,e.probeSuccesses>=2&&(e.mode="closed",e.failures=[],e.openDurationMs=3e4,e.openUntilMs=null,e.probeLeaseId=null,e.probeSuccesses=0,e.lastTouchedAtMs=d,g(e,"closed",d)),!0;return m(e,d,Math.min(3e5,2*e.openDurationMs)),!0}})}({onTransition:f.cN}),k=j.recordFailure;j.recordSuccess,j.getDecision,j.tryAcquireProbe;let l=j.releaseProbe},80238:(a,b,c)=>{c.d(b,{Pt:()=>C,Tr:()=>D,c1:()=>z,kI:()=>E,uT:()=>y,vk:()=>B});var d=c(89718),e=c(39326),f=c(12557),g=c(3662),h=c(29679),i=c(91254),j=c(75681),k=c(7803),l=c(93930),m=c(79761);let n=Promise.resolve(),o=new Set(["policy_suspended","credential_rejected","reauth_required"]),p=new Set(["authentication","entitlement_or_quota","permission_denied","rate_limited","upstream_transient"]),q=new Set(["not_attempted","succeeded","transient_failed","rejected"]);function r(a,b=200){return null==a||""===a?null:String(a).slice(0,b).replace(/[^a-zA-Z0-9._:/#-]/g,"")||null}function s(a){let b=Number(a);return Number.isInteger(b)&&b>=0&&b<=599?b:null}function t(a,b){let c=a&&"object"==typeof a&&!Array.isArray(a)?a:{},d=Number(b??c.resetsAtMs),e=new Date(d),f=Number.isFinite(d)&&d>0&&Number.isFinite(e.getTime())?e.toISOString():null;return{failureClass:r(c.failureClass,80)?.toLowerCase()||null,providerErrorCode:r(c.providerErrorCode),upstreamRequestId:r(c.upstreamRequestId),failureResetAt:f,authLifecycle:function(a){if(!a||"object"!=typeof a||Array.isArray(a))return null;let b=q.has(a.refreshOutcome)?a.refreshOutcome:"not_attempted";return{initialStatus:s(a.initialStatus),refreshAttempted:!0===a.refreshAttempted,refreshOutcome:b,retryStatus:s(a.retryStatus)}}(c.authLifecycle)}}function u(a,b){return({policy_suspended:"Kiro reports that this account is suspended or disabled by upstream policy.",credential_rejected:"Kiro rejected the credential after a successful token refresh.",reauth_required:"Kiro rejected the refresh credential; sign in again before re-enabling.",entitlement_or_quota:"Kiro entitlement or quota is temporarily unavailable.",rate_limited:"Kiro rate limit is temporarily exhausted.",authentication:"Kiro authentication is temporarily unavailable.",permission_denied:"Kiro denied this request without confirming an account suspension.",upstream_transient:"Kiro upstream is temporarily unavailable."})[a]||`Kiro upstream request failed with status ${b||"unknown"}.`}function v(a){return"string"!=typeof a?"":a.trim().replace(/^(?:kiro|kr)\//i,"")}function w(a,b){let c=a?.providerSpecificData?.enabledModels;if(!Array.isArray(c)||0===c.length)return!0;let d=v(b);return c.some(a=>v(a)===d)}function x(a){return Object.freeze({...a,supportedModels:Object.freeze([...a.supportedModels||[]]),supportedOperations:Object.freeze([...a.supportedOperations||[]]),capabilities:Object.freeze([...a.capabilities||[]]),quota:a.quota?Object.freeze({...a.quota}):null,circuits:Object.freeze({...a.circuits||{}}),eligibility:Object.freeze({eligible:a.eligibility.eligible,reasons:Object.freeze([...a.eligibility.reasons])})})}async function y(a,b=null,c={}){let e=(0,j.rs)(a),g=Array.isArray(c.allowedConnectionIds)?c.allowedConnectionIds:null;if(!g&&c.apiKey&&(g=await (0,d.ME)(c.apiKey)),j.IS[e]?.noAuth){let a={id:"noauth",provider:e,priority:1,legacyOrder:0,isActive:!0,quarantinedAt:null,reauthRequired:!1,supportedModels:[],supportedOperations:[c.operation||"chat"],capabilities:c.capabilities||[],modelLocked:!1,quota:null,circuits:{},transportAvailable:!1!==c.transportAvailable,outboundAllowed:!1!==c.outboundAllowed,egressId:"direct",health:null,sticky:!1};return a.eligibility=(0,l.Z)(a,{...c,provider:e,model:b,operation:c.operation||"chat",allowedConnectionIds:g,pinnedConnectionId:c.strictPreferred?c.preferredConnectionId:null}),Object.freeze([x(a)])}let[h,i]=await Promise.all([(0,d.getProviderConnections)({provider:e}),(0,d.tV)(e)]),k=new Map(i.map(a=>[a.connectionId,a])),n=Number.isFinite(c.nowMs)?c.nowMs:Date.now(),o=c.circuitRegistry||m.tH;return Object.freeze(h.map((a,d)=>{let h=a.providerSpecificData||{},i=k.get(a.id)||null,j=Date.parse(i?.fetchedAt),m=Number.isFinite(j)&&n-j<=f.JN,p=(0,f.td)(i?.usage,e,b),q=(0,f.yH)(i,n),r=Array.isArray(h.enabledModels)?h.enabledModels.map(a=>v(a)):[],s=h.connectionProxyPoolId||h.proxyPoolId||(h.vercelRelayUrl?"relay":"direct"),t={account:{scope:"account",provider:e,accountId:a.id},provider:{scope:"provider",provider:e},egress:{scope:"egress",egressId:s},integrity:{scope:"integrity",provider:e,model:b,egressId:s}},u=Object.fromEntries(Object.entries(t).map(([a,b])=>[a,o.getDecision(b)])),w=Object.entries(u).filter(([,a])=>"half_open"===a.state),y=Object.values(u).some(a=>"open"===a.state);if(!0===c.acquireCircuitProbes&&!y&&1===w.length){let[a]=w[0],b=o.tryAcquireProbe(t[a]);u[a]={...u[a],probeAcquired:!0===b.acquired,...b.leaseId?{probeLeaseId:b.leaseId}:{}}}let z={id:a.id,provider:e,priority:Number.isFinite(a.priority)?a.priority:999,legacyOrder:d,isActive:!0===a.isActive,quarantinedAt:a.quarantinedAt||null,reauthRequired:"reauth_required"===a.failureClass||"token_expired"===a.autoDisabledReason||"reauth_required"===a.autoDisabledReason,supportedModels:r,supportedOperations:Array.isArray(h.supportedOperations)?h.supportedOperations:[c.operation||"chat"],capabilities:Array.isArray(h.capabilities)?h.capabilities:[],modelLocked:(0,f.Bl)(a,b,e),quota:i?{provenance:m?"fresh":"last_successful",exhausted:!!q,remaining:p>=0?p:null,total:p>=0?100:null,fetchedAtMs:Number.isFinite(j)?j:null,validUntilMs:Number.isFinite(j)?j+f.JN:null,exhaustedUntilMs:q||null}:null,circuits:u,transportAvailable:!1!==c.transportAvailable&&!1!==h.transportAvailable,outboundAllowed:!1!==c.outboundAllowed,egressId:s,health:"unavailable"===a.testStatus||a.lastError?"degraded":"success"===a.testStatus||"connected"===a.testStatus?"healthy":null,sticky:a.consecutiveUseCount>0};return z.eligibility=(0,l.Z)(z,{...c,provider:e,model:b,operation:c.operation||"chat",allowedConnectionIds:g,pinnedConnectionId:c.strictPreferred?c.preferredConnectionId:null,nowMs:n}),x(z)}))}async function z(a,b=null,g=null,l={}){let m,o=b instanceof Set?b:b?new Set([b]):new Set,p=l?.preferredConnectionId||null,q=!!l?.strictPreferred,r=n;n=new Promise(a=>{m=a});try{let b;await r;let m=(0,j.rs)(a);if(j.IS[m]?.noAuth){let a=((await (0,d.mt)()).providerStrategies||{})[m]||{},b=a.rotateStrategy||"none",c=a.proxyPoolId||null;if("none"!==b){let a=(await (0,d.ui)({isActive:!0})).filter(a=>a.proxyUrl).map(a=>a.id);c=(0,e.p)(a,b,m)}let f=await (0,e.B)({proxyPoolId:c||""});return{id:"noauth",connectionName:"Public",isActive:!0,accessToken:"public",providerSpecificData:{connectionProxyEnabled:f.connectionProxyEnabled,connectionProxyUrl:f.connectionProxyUrl,connectionNoProxy:f.connectionNoProxy,connectionProxyPoolId:f.proxyPoolId||null,vercelRelayUrl:f.vercelRelayUrl||""}}}let n=await (0,d.getProviderConnections)({provider:m,isActive:!0}),s=Array.isArray(l?.allowedConnectionIds)?l.allowedConnectionIds:null;if(!s&&l?.apiKey&&(s=await (0,d.ME)(l.apiKey)),Array.isArray(s)&&s.length>0){let b=new Set(s);n=n.filter(a=>b.has(a.id)),k.debug("AUTH",`${a} | API key scoped to ${n.length} allowed connection(s)`)}k.debug("AUTH",`${a} | total connections: ${n.length}, excludeIds: ${o.size>0?[...o].join(","):"none"}, model: ${g||"any"}`);let t=null;if("kiro"===m&&g)try{t=await (0,h.ED)(g)}catch(a){k.warn("AUTH",`Kiro model support cache unavailable: ${a?.message||a}`)}let u=t?.state==="supported"||t?.state==="unsupported",v={modelUnavailable:!0,provider:m,model:g};if(0===n.length){if(u)return k.warn("AUTH",`${a} | no eligible supporter for ${g}`),v;return k.warn("AUTH",`No credentials for ${a}`),null}let x=n.filter(a=>!a.quarantinedAt),y=new Set,z=new Set,A=!1;if("kiro"===m&&g){let a=x=x.filter(a=>w(a,g)),b=new Set(t?.unsupportedConnectionIds||[]),c=new Set(t?.freshCatalogConnectionIds||[]),d=n.filter(a=>{let c=a?.providerSpecificData?.enabledModels;return Array.isArray(c)&&c.length>0&&w(a,g)&&!b.has(a.id)}).map(a=>a.id),e=new Set([...t?.supportingConnectionIds||[],...d].filter(a=>!b.has(a)));z=new Set([...b,...[...c].filter(a=>!e.has(a))]),x=x.filter(a=>!z.has(a.id)),A=a.length>0&&a.every(a=>z.has(a.id)),e.size>0?(y=e,u=!0):t?.state==="unsupported"&&(x=[])}let B=new Map;if("codebuddy-cn"===m)for(let a of(await (0,d.tV)(m))){let b=(0,f.yH)(a);b&&B.set(a.connectionId,b)}let C=new Map;if("codebuddy-cn"===m)for(let a of n){if(11140!==Number(a.providerErrorCode))continue;let b=(0,f.kJ)(a);b&&C.set(a.id,b)}let D=new Set,E=new Set;if("codex"===m&&g){let a=await (0,d.tV)(m),b=new Map(a.map(a=>[a.connectionId,a]));for(let a of n)(0,f.xB)(a,g,m)&&E.add(a.id),(0,f.N2)(a,g,b.get(a.id),m,{ignoreProbe:!0})&&!E.has(a.id)&&D.add(a.id)}if("codebuddy"===m||"codebuddy-cn"===m)for(let a of n)(0,i.hN)(a)&&(0,f.xB)(a,null,m)&&E.add(a.id);let F=a=>C.has(a.id)||("codebuddy"===m||"codebuddy-cn"===m)&&(0,i.hN)(a)&&E.has(a.id)||(0,f.Bl)(a,g,m)&&!D.has(a.id),G=a=>E.has(a.id)?"codebuddy"===m||"codebuddy-cn"===m?a[(0,f.UM)(null,m)]:new Date(Date.now()+1e3).toISOString():[(0,f.V0)(a,g,m),C.get(a.id)].filter(Boolean).sort().at(-1)||null,H=x.filter(a=>!(o.has(a.id)||F(a)||B.has(a.id))),I=H,J=!1;if("kiro"===m&&g&&!q){let a=H.filter(a=>y.has(a.id));if(a.length>0)I=a;else{let a=H.filter(a=>!y.has(a.id)),b=[...o].filter(a=>!y.has(a)).length;I=a,b>=3?(I=[],J=!0):o.size>0&&0===a.length&&(J=!0)}}if(q&&p){let b=n.find(a=>a.id===p);if(!b)return k.warn("AUTH",`${a} | pinned account not found: ${p}`),null;if(b.quarantinedAt)return k.warn("AUTH",`${a} | pinned account is quarantined: ${b.id?.slice(0,8)}`),null;if(z.has(b.id))return k.warn("AUTH",`${a} | pinned account does not support ${g}: ${b.id?.slice(0,8)}`),v;if(!x.some(a=>a.id===b.id))return k.warn("AUTH",`${a} | pinned account is not eligible for ${g||"this request"}: ${b.id?.slice(0,8)}`),u?v:null;if(o.has(b.id))return k.warn("AUTH",`${a} | pinned account excluded after failure: ${b.id?.slice(0,8)}`),null;if(F(b)||B.has(b.id)){let a=[G(b),B.has(b.id)?new Date(B.get(b.id)).toISOString():null].filter(Boolean).sort().at(-1);return{allRateLimited:!0,retryAfter:a,retryAfterHuman:(0,f.Qo)(a),lastError:b.lastError||"Pinned account unavailable",lastErrorCode:b.errorCode||null}}I=[b]}if(k.debug("AUTH",`${a} | available: ${I.length}/${x.length}`),n.forEach(a=>{let b=o.has(a.id),c=F(a),d=D.has(a.id),e=B.get(a.id),h=!!a.quarantinedAt,i=z.has(a.id);if(b||c||e||d||h||i){let j=(0,f.kJ)(a),l=E.has(a.id);k.debug("AUTH",` \u2192 ${a.id?.slice(0,8)} | ${b?"excluded":""} ${c?`modelLocked(${g}) until ${j}`:""} ${d?`staleLockRecovered(${g})`:""} ${l?`recoveryProbeInFlight(${g})`:""} ${e?`quotaExhausted until ${new Date(e).toISOString()}`:""} ${h?"quarantined":""} ${i?`unsupported(${g})`:""}`)}}),0===I.length){if(J)return k.warn("AUTH",`${a} | bounded fallback exhausted for ${g}`),null;let b=x.filter(a=>F(a)),c=x.map(a=>[F(a)?G(a):null,B.has(a.id)?new Date(B.get(a.id)).toISOString():null].filter(Boolean).sort().at(-1)).filter(Boolean).sort()[0]||null;if(c){let d=b[0];return k.warn("AUTH",`${a} | all ${x.length} candidate accounts locked for ${g||"all"} (${(0,f.Qo)(c)}) | lastError=${d?.lastError?.slice(0,50)}`),{allRateLimited:!0,retryAfter:c,retryAfterHuman:(0,f.Qo)(c),lastError:d?.lastError||null,lastErrorCode:d?.errorCode||null}}return k.warn("AUTH",`${a} | all ${n.length} accounts unavailable`),u||A?v:null}let K=await (0,d.mt)(),L=(K.providerStrategies||{})[m]||{},M=L.fallbackStrategy||K.fallbackStrategy||"fill-first";if(p&&(b=I.find(a=>a.id===p))&&k.debug("AUTH",`${a} | pinned to ${b.id?.slice(0,8)} (${b.name||b.email||"unnamed"})`),b);else if(q&&p)return k.warn("AUTH",`${a} | pinned account unavailable: ${p}`),null;else if("round-robin"===M){let a=L.stickyRoundRobinLimit||K.stickyRoundRobinLimit||3,c=[...I].sort((a,b)=>a.lastUsedAt||b.lastUsedAt?a.lastUsedAt?b.lastUsedAt?new Date(b.lastUsedAt)-new Date(a.lastUsedAt):-1:1:(a.priority||999)-(b.priority||999))[0],e=c?.consecutiveUseCount||0;c&&c.lastUsedAt&&e<a?(b=c,await (0,d.updateProviderConnection)(b.id,{lastUsedAt:new Date().toISOString(),consecutiveUseCount:(b.consecutiveUseCount||0)+1})):(b=[...I].sort((a,b)=>a.lastUsedAt||b.lastUsedAt?a.lastUsedAt?b.lastUsedAt?new Date(a.lastUsedAt)-new Date(b.lastUsedAt):1:-1:(a.priority||999)-(b.priority||999))[0],await (0,d.updateProviderConnection)(b.id,{lastUsedAt:new Date().toISOString(),consecutiveUseCount:1}))}else if("most-quota"===M){let a=await Promise.all(I.map(async a=>{let b=-1;try{let c=await (0,d.getQuotaSnapshot)(a.id);b=(0,f.td)(c?.usage,m,g)}catch{}return{conn:a,remaining:b}}));a.sort((a,b)=>a.remaining!==b.remaining?b.remaining-a.remaining:(a.conn.priority||999)-(b.conn.priority||999)),b=(a.filter(a=>0!==a.remaining)[0]||a[0]).conn,await (0,d.updateProviderConnection)(b.id,{lastUsedAt:new Date().toISOString(),consecutiveUseCount:1})}else if("lowest-latency"===M){let{getLatencyStats:e}=await Promise.resolve().then(c.bind(c,93999)),f=await e(),g=I.map(a=>{let b=f.get(`${a.provider}|${a.id}`)||f.get(`${m}|${a.id}`);return{conn:a,avgMs:b?b.avgMs:null,samples:b?b.samples:0}});g.sort((a,b)=>null===a.avgMs&&null===b.avgMs?(a.conn.priority||999)-(b.conn.priority||999):null===a.avgMs?1:null===b.avgMs?-1:a.avgMs!==b.avgMs?a.avgMs-b.avgMs:(a.conn.priority||999)-(b.conn.priority||999)),b=g[0].conn,k.debug("AUTH",`${a} | lowest-latency → ${b.id?.slice(0,8)} (${g[0].avgMs??"?"}ms avg, ${g[0].samples} samples)`),await (0,d.updateProviderConnection)(b.id,{lastUsedAt:new Date().toISOString(),consecutiveUseCount:1})}else b=I[0];if(D.has(b.id)){let a=(0,f.WP)(g,m);await (0,d.updateProviderConnection)(b.id,a),b={...b,...a}}if(("codebuddy"===m||"codebuddy-cn"===m)&&(0,i.hN)(b)){let a=(0,f.WP)(null,m);await (0,d.updateProviderConnection)(b.id,a),b={...b,...a}}let N=await (0,e.B)(b.providerSpecificData||{});return{authType:b.authType,apiKey:b.apiKey,accessToken:b.accessToken,refreshToken:b.refreshToken,idToken:b.idToken,expiresAt:b.expiresAt,expiresIn:b.expiresIn,lastRefreshAt:b.lastRefreshAt,projectId:b.projectId||b.providerSpecificData?.projectId||null,connectionName:b.displayName||b.name||b.email||b.id,copilotToken:b.providerSpecificData?.copilotToken,providerSpecificData:{...b.providerSpecificData||{},connectionProxyEnabled:N.connectionProxyEnabled,connectionProxyUrl:N.connectionProxyUrl,connectionNoProxy:N.connectionNoProxy,strictProxy:!0===N.strictProxy,connectionProxyPoolId:N.proxyPoolId||null,vercelRelayUrl:N.vercelRelayUrl||""},connectionId:b.id,testStatus:b.testStatus,lastError:b.lastError,_connection:b}}finally{m&&m()}}async function A(a,b,e,h=null,l=null,m=null,n=null){let o,p,q;if(!a||"noauth"===a)return{shouldFallback:!1,cooldownMs:0};let r=(0,j.rs)(h),s=(0,f.UM)(l,r);if((0,f.d5)(b,e))return await (0,d.updateProviderConnection)(a,{[s]:null}),k.warn("AUTH",`shared egress/WAF error; fallback without locking account [${b}]`),{shouldFallback:!0,cooldownMs:0};if((0,f.P0)(b,e))return await (0,d.updateProviderConnection)(a,{[s]:null}),k.warn("AUTH",`non-account error; no fallback [${b}] ${"string"==typeof e?e.slice(0,100):"Provider error"}`),{shouldFallback:!1,cooldownMs:0};let t=(await (0,d.getProviderConnections)({provider:r})).find(b=>b.id===a),u=t?.backoffLevel||0,v=(0,f.UO)(e),w="codebuddy-cn"===r&&14018===v,x="codebuddy"===r&&14018===v,y="codebuddy-cn"===r&&11140===v;if(y){let c=new Date().toISOString(),e="CodeBuddy CN rejected this credential (11140 request illegal).";return await (0,d.Iu)(a,(a,d)=>{if(a.manuallyReenabledAt&&a.manuallyReenabledAt!==n?.manuallyReenabledAt)return null;let f={...a,providerSpecificData:(0,i.r_)(a.providerSpecificData,c,v)};return{connection:{[s]:null,isActive:!1,testStatus:"unavailable",lastError:e,errorCode:b,providerErrorCode:v,quarantinedAt:c,quarantineReason:e,lastErrorAt:c,autoDisabledAt:c,autoDisabledReason:"credential_rejected",consecutiveAuthFailures:Math.max(1,(a.consecutiveAuthFailures||0)+1),backoffLevel:0,providerSpecificData:f.providerSpecificData},quotaUsage:(0,i.pX)(d?.usage||{},f)}}),k.warn("AUTH",`${t?.displayName||t?.name||a.slice(0,8)} quarantined immediately [11140]`),{shouldFallback:!0,cooldownMs:0}}if(w){let b=await (0,d.getQuotaSnapshot)(a);m=(0,f.lI)(b?.usage)||m}if(m&&m>Date.now()?(o=!0,p=Math.min(m-Date.now(),g.fh),q=0):{shouldFallback:o,cooldownMs:p,newBackoffLevel:q}=(0,f.hk)(b,e,u),!o)return await (0,d.updateProviderConnection)(a,{[s]:null}),{shouldFallback:!1,cooldownMs:0};let z="string"==typeof e?e.slice(0,100):"Provider error",B=w||x,C=B?null:(0,f.LV)(r,l),D=(0,f.S5)(C,p,r),E=new Date().toISOString(),F={...D,[s]:null,...B?{[(0,f.UM)(null,r)]:null}:{},testStatus:"unavailable",lastError:z,errorCode:b,providerErrorCode:v,modelLockReason:{model:C||"__all",providerErrorCode:v,reason:z,lockedAt:E,resetsAt:new Date(Date.now()+p).toISOString()},lastErrorAt:E,backoffLevel:q??u};if(B)try{await (0,d.Iu)(a,(a,b)=>{if(a.manuallyReenabledAt&&a.manuallyReenabledAt!==n?.manuallyReenabledAt)return null;let c={...a,providerSpecificData:(0,i.QN)(a.providerSpecificData,E)};return{connection:{...F,providerSpecificData:c.providerSpecificData},quotaUsage:(0,i.pX)(b?.usage||{},c)}})}catch(a){throw k.warn("AUTH",`CodeBuddy runtime exhaustion update failed: ${a?.message||a}`),a}else await (0,d.updateProviderConnection)(a,F);let G=Object.keys(D)[0],H=t?.displayName||t?.name||t?.email||a.slice(0,8);if(k.warn("AUTH",`${H} locked ${G} for ${Math.round(p/1e3)}s [${b}]`),h&&c.e(6802).then(c.bind(c,86802)).then(a=>{a.alertProviderDown(h,`${H}: ${z}`),(429===b||z.toLowerCase().includes("quota"))&&a.alertQuotaExhausted(h,H)}).catch(()=>{}),h&&b&&z&&console.error(`\u274c ${h} [${b}]: ${z}`),new Set([401,403]).has(b)&&!w){let c=("string"==typeof e?e:"").toLowerCase(),f=["quota","payment","billing","entitlement","subscription","insufficient_quota"].some(a=>c.includes(a));if(y||!f&&["token expired","token invalid","invalid token","revoked","unauthorized","invalid api key","invalid_api_key","banned","suspended","restricted","account disabled"].some(a=>c.includes(a))){let e=(t?.consecutiveAuthFailures||0)+1;e>=3?(await (0,d.updateProviderConnection)(a,{isActive:!1,autoDisabledAt:new Date().toISOString(),autoDisabledReason:c.includes("banned")||c.includes("suspended")||c.includes("restricted")||c.includes("account disabled")?"banned":"token_expired",consecutiveAuthFailures:e}),k.warn("AUTH",`\u26d4 Auto-disabled ${H} after ${e} consecutive auth failures [${b}]: ${z}`)):(await (0,d.updateProviderConnection)(a,{consecutiveAuthFailures:e}),k.warn("AUTH",`${H} auth failure ${e}/3 [${b}]: ${z}`))}}return{shouldFallback:!0,cooldownMs:p}}async function B(a,b,c,e=null,i=null,l=null,m=null,n=null){let q,s,v,w=(0,j.rs)(e);if("antigravity"===w){let c=t(m,l);if("policy_suspended"===c.failureClass&&"ORG_CODE_ASSIST_RESTRICTED"===c.providerErrorCode){if(!a||"noauth"===a)return{shouldFallback:!1,cooldownMs:0};let e=(await (0,d.getProviderConnections)({provider:w})).find(b=>b.id===a),g=new Date().toISOString(),h="Google organization policy blocks Gemini Code Assist access for this Antigravity account.",j=(0,f.UM)(i,w);await (0,d.updateProviderConnection)(a,{[j]:null,isActive:!1,testStatus:"unavailable",lastError:h,errorCode:b,failureClass:c.failureClass,providerErrorCode:c.providerErrorCode,upstreamRequestId:c.upstreamRequestId,failureResetAt:c.failureResetAt,authLifecycle:c.authLifecycle,quarantinedAt:g,quarantineReason:h,lastErrorAt:g,autoDisabledAt:g,autoDisabledReason:c.failureClass,consecutiveAuthFailures:Math.max(1,(e?.consecutiveAuthFailures||0)+1),backoffLevel:0});let l=e?.displayName||e?.name||e?.email||a.slice(0,8);return k.warn("AUTH",`${l} quarantined immediately [${c.failureClass}]`),{shouldFallback:!0,cooldownMs:0}}}if("kiro"!==w)return A(a,b,c,e,i,l,n);if(!a||"noauth"===a)return{shouldFallback:!1,cooldownMs:0};let x=(0,f.UM)(i,w),y=t(m,l),{failureClass:z}=y;if("shared_egress_waf"===z||(0,f.d5)(b,c))return await (0,d.updateProviderConnection)(a,{[x]:null}),k.warn("AUTH",`Kiro shared egress/WAF error; fallback without account punishment [${b}]`),{shouldFallback:!0,cooldownMs:0};if(function(a,b){if("invalid_model"===a)return!0;let c=String(b||"").toUpperCase();return/INVALID[_-]?MODEL|MODEL[_-]?(?:NOT[_-]?(?:FOUND|SUPPORTED)|UNSUPPORTED)/.test(c)}(z,y.providerErrorCode)){await (0,d.updateProviderConnection)(a,{[x]:null});let b=!1;try{await (0,h.FL)(a,i);let c=(await (0,d.getProviderConnections)({provider:w,isActive:!0})).filter(a=>!a.quarantinedAt).map(a=>a.id);b=!!i&&await (0,h.CY)(i,a,c)}catch(a){k.warn("AUTH",`Kiro model support cache update failed: ${a?.message||a}`)}return k.warn("AUTH",`Kiro model is unsupported by ${a.slice(0,8)}; ${b?"trying a known supporter":"not rotating to an unknown account"}`),{shouldFallback:b,cooldownMs:0}}if(function(a,b){if("invalid_request"===a||"request_error"===a)return!0;let c=String(b||"").toUpperCase();return/INVALID[_-]?(?:REQUEST|ARGUMENT)|VALIDATION|BAD[_-]?REQUEST|MALFORMED/.test(c)}(z,y.providerErrorCode)||(0,f.P0)(b,c))return await (0,d.updateProviderConnection)(a,{[x]:null}),k.warn("AUTH",`Kiro request error; no account lock or credential rotation [${b}]`),{shouldFallback:!1,cooldownMs:0};let C=(await (0,d.getProviderConnections)({provider:w})).find(b=>b.id===a),D=C?.backoffLevel||0,E=y.providerErrorCode||r((0,f.UO)(c)),F=C?.displayName||C?.name||C?.email||a.slice(0,8);if(o.has(z)){let c=new Date().toISOString(),e=u(z,b);return await (0,d.updateProviderConnection)(a,{[x]:null,isActive:!1,testStatus:"unavailable",lastError:e,errorCode:b,failureClass:z,providerErrorCode:E,upstreamRequestId:y.upstreamRequestId,failureResetAt:y.failureResetAt,authLifecycle:y.authLifecycle,quarantinedAt:c,quarantineReason:e,lastErrorAt:c,autoDisabledAt:c,autoDisabledReason:z,consecutiveAuthFailures:Math.max(1,(C?.consecutiveAuthFailures||0)+1),backoffLevel:0}),k.warn("AUTH",`${F} quarantined immediately [${z}]`),{shouldFallback:!0,cooldownMs:0}}let G=Number(l);if(Number.isFinite(G)&&G>Date.now()?(q=!0,s=Math.min(G-Date.now(),g.fh),v=0):{shouldFallback:q,cooldownMs:s,newBackoffLevel:v}=(0,f.hk)(b,c,D),!q)return await (0,d.updateProviderConnection)(a,{[x]:null}),{shouldFallback:!1,cooldownMs:0};let H=p.has(z)||403===b||408===b||429===b||b>=500,I=z||(429===b?"rate_limited":403===b?"permission_denied":b>=500?"upstream_transient":null),J=u(I,b),K=H?null:(0,f.LV)(w,i),L=(0,f.S5)(K,s,w),M=new Date().toISOString(),N=new Date(Date.now()+s).toISOString();await (0,d.updateProviderConnection)(a,{...L,[x]:null,testStatus:"unavailable",lastError:J,errorCode:b,failureClass:I,providerErrorCode:E,upstreamRequestId:y.upstreamRequestId,failureResetAt:y.failureResetAt,authLifecycle:y.authLifecycle,modelLockReason:{model:K||"__all",providerErrorCode:E,reason:J,lockedAt:M,resetsAt:N},lastErrorAt:M,backoffLevel:v??D,consecutiveAuthFailures:0});let O=Object.keys(L)[0];if(k.warn("AUTH",`${F} locked ${O} for ${Math.round(s/1e3)}s [${b}]`),!z&&(401===b||403===b)){let e=("string"==typeof c?c:"").toLowerCase();if(!["quota","payment","billing","entitlement","subscription","insufficient_quota"].some(a=>e.includes(a))&&["token expired","token invalid","invalid token","revoked","unauthorized","invalid api key","invalid_api_key","banned","suspended","restricted","account disabled"].some(a=>e.includes(a))){let c=(C?.consecutiveAuthFailures||0)+1,f=["banned","suspended","restricted","account disabled"].some(a=>e.includes(a));if(c>=3){let e=new Date().toISOString(),g=f?u("policy_suspended",b):"Kiro rejected this credential three consecutive times.";await (0,d.updateProviderConnection)(a,{isActive:!1,quarantinedAt:e,quarantineReason:g,failureClass:f?"policy_suspended":"authentication",autoDisabledAt:e,autoDisabledReason:f?"policy_suspended":"token_expired",consecutiveAuthFailures:c}),k.warn("AUTH",`${F} quarantined after ${c} unstructured auth failures`)}else await (0,d.updateProviderConnection)(a,{consecutiveAuthFailures:c})}}return{shouldFallback:!0,cooldownMs:s}}async function C(a,b,c=null){if(!a||"noauth"===a)return;let e=b._connection||b,g=(0,j.rs)(e.provider),h=(0,f.LV)(g,c),l=Date.now(),m=(0,f.UM)(c,g),n=!1,o=!1,p=(a,b=!1)=>{if(!a||b&&(a.quarantinedAt||e.quarantinedAt))return null;let d=(a,b)=>{if(!a.startsWith(b))return!1;let d=a.slice(b.length);return"__all"===d||!c||(0,f.LV)(g,d)===h};if(b&&Object.keys(a).some(b=>(d(b,"modelLock_")||d(b,"modelRecoveryProbe_"))&&a[b]!==e[b]&&Date.parse(a[b])>l))return n=!0,null;let i=Object.keys(a).filter(a=>a.startsWith("modelLock_"));if("unavailable"!==a.testStatus&&!a.lastError&&0===i.length)return null;let j=i.filter(d=>{if(b&&a[d]!==e[d])return!1;let i=d.slice(10);if(c&&(0,f.LV)(g,i)===h||c&&"modelLock___all"===d)return!0;let j=a[d];return j&&new Date(j).getTime()<=l});if(0===j.length&&"unavailable"!==a.testStatus&&!a.lastError)return null;let k=i.filter(b=>!j.includes(b)&&Date.parse(a[b])>l),o={...Object.fromEntries(j.map(a=>[a,null]))};return b&&a[m]!==e[m]||(o[m]=null),0===k.length&&Object.assign(o,{testStatus:"active",lastError:null,errorCode:null,providerErrorCode:null,..."kiro"===g?{failureClass:null,upstreamRequestId:null,failureResetAt:null,authLifecycle:null}:{},modelLockReason:null,lastErrorAt:null,backoffLevel:0,consecutiveAuthFailures:0}),o};if("kiro"===g){await (0,d.Op)(a,a=>p(a,!0)),n&&k.debug("AUTH",`Kiro success did not clear newer failure state for ${a.slice(0,8)}`);return}if("codebuddy"===g||"codebuddy-cn"===g){let b=(0,i.kt)(e);await (0,d.Iu)(a,a=>{if(a.quarantinedAt||(0,i.uF)(a))return null;let c=(0,i.kt)(a);if(c&&c!==b)return null;let d=p(a)||{};return(b&&(0,i.kt)(a)===b&&(d.providerSpecificData=(0,i.US)(a.providerSpecificData),d[(0,f.UM)(null,g)]=null,o=!0),0===Object.keys(d).length)?null:{connection:d,...o?{quotaUsage:null}:{}}});return}let q=p(e);q&&await (0,d.updateProviderConnection)(a,q)}function D(a){let b=a.headers.get("Authorization");if(b?.startsWith("Bearer "))return b.slice(7);let c=a.headers.get("x-api-key");return c||null}async function E(a){return!!a&&await (0,d.ek)(a)}},91254:(a,b,c)=>{c.d(b,{CG:()=>p,QN:()=>k,US:()=>o,hN:()=>j,kt:()=>i,pX:()=>q,r_:()=>n,uF:()=>m});let d="codebuddyRuntimeExhaustedAt",e="codebuddyRuntimeExhaustedCode",f="codebuddyRuntimeRejectedAt",g="codebuddyRuntimeRejectedCode";function h(a){return a?.provider==="codebuddy"||a?.provider==="codebuddy-cn"}function i(a){return h(a)&&a.providerSpecificData?.[d]||null}function j(a){return!!i(a)}function k(a,b){return{...a||{},[d]:b,[e]:14018}}function l(a){return a?.provider!=="codebuddy-cn"?null:a.providerSpecificData?.[f]||null}function m(a){return!!l(a)}function n(a,b,c=11140){return{...a||{},[f]:b,[g]:c}}function o(a){let b={...a||{}};return delete b[d],delete b[e],b}function p(a){let b=o(a);return delete b[f],delete b[g],b}function q(a,b){if(!h(b))return a;let c=l(b),d=i(b);if(!c&&!d)return a;let e=a?.billingQuotas||a?.quotas||{};if(c)return{...a||{},message:"CodeBuddy CN chat API rejected this credential (11140); billing package balance is nominal and does not prove chat access.",billingQuotas:e,runtimeStatus:"credential_rejected",chatUsable:!1,runtimeRejectedAt:c,runtimeRejectedCode:Number(b.providerSpecificData?.[g])||11140};let f=Object.fromEntries(Object.entries(e).map(([a,b])=>{let c=Number(b?.total);return[a,{...b||{},...Number.isFinite(c)?{used:c}:{},remaining:0,remainingPercentage:0}]}));return{...a||{},message:"CodeBuddy chat API reported exhausted credits (14018); billing package balance is nominal until a chat request succeeds.",billingQuotas:e,quotas:f,runtimeStatus:"exhausted",chatUsable:!1,runtimeExhausted:!0,runtimeExhaustedAt:d,runtimeExhaustedCode:14018}}},92280:(a,b,c)=>{Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(28208),e=c(47617),f=c(62018);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}},93930:(a,b,c)=>{c.d(b,{Z:()=>e});let d=Object.freeze([["unsupported_model",(a,b)=>Array.isArray(a.supportedModels)&&a.supportedModels.length>0&&!a.supportedModels.includes(b.model)],["unsupported_operation",(a,b)=>Array.isArray(a.supportedOperations)&&a.supportedOperations.length>0&&!a.supportedOperations.includes(b.operation)],["unsupported_capability",(a,b)=>{let c=new Set(a.capabilities||[]);return c.size>0&&(b.requiredCapabilities||[]).some(a=>!c.has(a))}],["api_key_model_restricted",(a,b)=>Array.isArray(b.allowedModels)&&b.allowedModels.length>0&&!b.allowedModels.includes(b.model)],["api_key_provider_restricted",(a,b)=>Array.isArray(b.allowedProviders)&&b.allowedProviders.length>0&&!b.allowedProviders.includes(a.provider)],["connection_restricted",(a,b)=>Array.isArray(b.allowedConnectionIds)&&b.allowedConnectionIds.length>0&&!b.allowedConnectionIds.includes(a.id)],["explicit_pin_mismatch",(a,b)=>!!b.pinnedConnectionId&&b.pinnedConnectionId!==a.id],["inactive",a=>!0!==a.isActive],["quarantined",a=>!!a.quarantinedAt],["reauth_required",a=>!0===a.reauthRequired],["model_locked",a=>!0===a.modelLocked],["quota_exhausted",(a,b)=>{let c=a.quota;return!!c&&!0===c.exhausted&&("last_successful"!==c.provenance||!(Number(c.remaining)>0&&Number(c.validUntilMs)>Number(b.nowMs||Date.now())))}],["circuit_open",a=>Object.values(a.circuits||{}).some(a=>a?.state==="open"||a?.state==="half_open"&&a?.probeAcquired!==!0)],["missing_transport",a=>!1===a.transportAvailable],["outbound_rejected",a=>!1===a.outboundAllowed]]);function e(a={},b={}){let c=d.filter(([,c])=>c(a,b)).map(([a])=>a);return Object.freeze({eligible:0===c.length,reasons:Object.freeze(c)})}}};
@@ -1,11 +1,11 @@
1
1
  "use strict";exports.id=8895,exports.ids=[8895],exports.modules={324:(a,b,c)=>{c.d(b,{J:()=>e,Q:()=>f});let d={claude:["claude","anthropic"],"gemini-cli":["gemini-cli"],antigravity:["antigravity"],codex:["codex"]};function e(a={},b={}){let c=(a["user-agent"]||"").toLowerCase(),d=(a["x-app"]||"").toLowerCase(),f=(a.originator||"").toLowerCase(),g=(a["openai-intent"]||"").toLowerCase(),h=(a["x-initiator"]||a["X-Initiator"]||"").toLowerCase();return"antigravity"===b.userAgent?"antigravity":c.includes("githubcopilotchat")||"conversation-panel"===g||"user"===h?"github-copilot":c.includes("codex-cli")||c.includes("codex_cli_rs")||c.includes("codex_exec")||f.startsWith("codex")?"codex":c.includes("claude-cli")||c.includes("claude-code")||"cli"===d?"claude":c.includes("gemini-cli")?"gemini-cli":c.includes("deepseek-tui")?"deepseek-tui":null}function f(a,b){if(!a)return!1;let c=d[a];if(!c)return!1;let e=b.startsWith("anthropic-compatible")?"anthropic":b;return c.includes(e)}},5016:(a,b,c)=>{c.d(b,{N:()=>q});var d=c(14170),e=c(33110),f=c(4305),g=c(99239),h=c(39551),i=c(73483),j=c(43659),k=c(41004),l=c(81626),m=c(86171),n=c(47370),o=c(55399),p=c(85442);async function q({providerResponse:a,provider:b,model:c,sourceFormat:r,targetFormat:s,body:t,stream:u,translatedBody:v,finalBody:w,requestStartTime:x,connectionId:y,apiKey:z,clientRawRequest:A,onRequestSuccess:B,onStreamFailure:C,adaptive:D,reqLogger:E,toolNameMap:F,trackDone:G,appendLog:H,reqTag:I,log:J}){let K;if(G(),(a.headers.get("content-type")||"").includes("text/event-stream")){let b=await a.text(),d=(0,l.Fe)(b,c);if(!d||d.error){if(d?.error){let a=await (0,l.a8)(d,C,"Provider stream failed");return H({status:`FAILED ${a.status}`}),a}return H({status:`FAILED ${k.gx.BAD_GATEWAY}`}),(0,j.A1)(k.gx.BAD_GATEWAY,"Invalid SSE response for non-streaming request")}K=d}else try{K=await a.json()}catch(a){return H({status:`FAILED ${k.gx.BAD_GATEWAY}`}),console.error(`[ChatCore] Failed to parse JSON from ${b}:`,a.message),(0,j.A1)(k.gx.BAD_GATEWAY,`Invalid JSON response from ${b}`)}if(!K||"object"!=typeof K||Array.isArray(K))return H({status:`FAILED ${k.gx.BAD_GATEWAY}`}),(0,j.A1)(k.gx.BAD_GATEWAY,`Invalid response payload from ${b}`);let L=K.error||("failed"===K.status?K:null);if(L){let a="string"==typeof L?L:L.message||L.error?.message||"Provider returned a failed response";return H({status:`FAILED ${k.gx.BAD_GATEWAY}`}),(0,j.A1)(k.gx.BAD_GATEWAY,a)}E.logProviderResponse(a.status,a.statusText,a.headers,K),K=(0,o.kR)(K,F);let M=(0,m.MK)(K);H({tokens:M,status:"200 OK"}),(0,m.qr)({provider:b,model:c,tokens:M,connectionId:y,apiKey:z,endpoint:A?.endpoint,latency:{ttft:0,total:Date.now()-x},silent:!0});let N=K;if((0,e.nZ)(s,r)){let a=s===d.h.OPENAI_RESPONSES?(0,l.q8)(K,c):function(a,b,c){if(b===c||b===d.h.OPENAI)return a;if(b===d.h.GEMINI||b===d.h.ANTIGRAVITY||b===d.h.GEMINI_CLI||b===d.h.VERTEX){let c=a.response||a;if(!c?.candidates?.[0])return a;let d=c.candidates[0],e=d.content,h=c.usageMetadata||a.usageMetadata,i="",j="",k=[];if(e?.parts)for(let a of e.parts)!0===a.thought&&a.text?j+=a.text:void 0!==a.text&&(i+=a.text),a.functionCall&&k.push({id:`call_${a.functionCall.name}_${Date.now()}_${k.length}`,type:"function",function:{name:a.functionCall.name,arguments:JSON.stringify(a.functionCall.args||{})}});let l={role:"assistant"};i&&(l.content=i),j&&(l.reasoning_content=j),k.length>0&&(l.tool_calls=k),l.content||l.tool_calls||(l.content="");let m=(0,f.Jm)(d.finishReason,{format:b,hasToolCalls:k.length>0}),n={id:`chatcmpl-${c.responseId||Date.now()}`,object:"chat.completion",created:Math.floor(new Date(c.createTime||Date.now()).getTime()/1e3),model:c.modelVersion||"gemini",choices:[{index:0,message:l,finish_reason:m}]},o=(0,g.i)(h);return o&&(n.usage=o),n}if(b===d.h.CLAUDE){if(a.content&&!Array.isArray(a.content))return a;let b="",c="",e=[];for(let d of a.content||[])"text"===d.type?b+=(d.text??"").replace(/^\s*```\s*json\s*\n?/i,"").replace(/\n?\s*```\s*$/i,""):"thinking"===d.type?c+=d.thinking||"":"tool_use"===d.type&&e.push({id:d.id,type:"function",function:{name:d.name,arguments:JSON.stringify(d.input||{})}});let g={role:"assistant"};b&&(g.content=b),c&&(g.reasoning_content=c),e.length>0&&(g.tool_calls=e),g.content||g.tool_calls||(g.content="");let h=(0,f.Jm)(a.stop_reason,{format:d.h.CLAUDE,hasToolCalls:e.length>0}),i={id:`chatcmpl-${a.id||Date.now()}`,object:"chat.completion",created:Math.floor(Date.now()/1e3),model:a.model||"claude",choices:[{index:0,message:g,finish_reason:h}]};return a.usage&&(i.usage={prompt_tokens:a.usage.input_tokens||0,completion_tokens:a.usage.output_tokens||0,total_tokens:(a.usage.input_tokens||0)+(a.usage.output_tokens||0)}),i}return b===d.h.OLLAMA?(0,h.ollamaBodyToOpenAI)(a):a}(K,s,d.h.OPENAI);N=(0,l.ZG)(a,r,c)}if(r===d.h.OPENAI&&(N=(0,f.k_)(N)),r===d.h.OPENAI&&(N.object||(N.object="chat.completion"),N.created||(N.created=Math.floor(Date.now()/1e3))),delete N.prompt_filter_results,r===d.h.OPENAI&&N?.choices)for(let a of N.choices)delete a.content_filter_results;if(N?.usage&&(N.usage=(0,i.WL)((0,i.O9)(N.usage),r)),r===d.h.OPENAI&&N?.choices)for(let a of N.choices)a?.message&&delete a.message.reasoning_content;await (0,l.ol)(B),E.logConvertedResponse(N);let O=Date.now()-x,P=(0,p.d)(N);return(0,m.T$)({provider:b,model:c,toolCalls:P}),J?.line?.(I,"\uD83D\uDCCA",(0,m.U$)({usage:M,latency:{ttft:O,total:O},toolCalls:P})),(0,n.ox)((0,m.$R)({provider:b,model:c,connectionId:y,adaptive:D,latency:{ttft:O,total:O},tokens:M||{prompt_tokens:0,completion_tokens:0},request:(0,m.Fo)(t,u),providerRequest:w||v||null,providerResponse:K||null,response:{content:N?.choices?.[0]?.message?.content||N?.content||null,thinking:N?.choices?.[0]?.message?.reasoning_content||N?.reasoning_content||null,finish_reason:N?.choices?.[0]?.finish_reason||(P.length>0?"tool_calls":"unknown"),...P.length>0?{tool_calls:P}:{}},status:"success"},{endpoint:A?.endpoint||null})).catch(a=>{console.error("[RequestDetail] Failed to save:",a.message)}),{success:!0,response:new Response(JSON.stringify(N),{headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}})}}},14724:(a,b,c)=>{c.d(b,{F:()=>g});let d=[{triggers:["mcp__exa__web_search_exa","mcp__exa__web_fetch_exa"],strip:["WebSearch","WebFetch","mcp__workspace__web_fetch"]},{triggers:["mcp__tavily__tavily_search","mcp__tavily__tavily_extract"],strip:["WebSearch","WebFetch","mcp__workspace__web_fetch"]},{triggers:[/^mcp__browsermcp__/],strip:[/^mcp__Claude_in_Chrome__/]}];function e(a){return a?.name||a?.function?.name||""}function f(a,b){return"string"==typeof b?a===b:b instanceof RegExp&&b.test(a)}function g(a){if(!Array.isArray(a)||0===a.length)return{tools:a,stripped:[]};let b=a.map(e),c=new Set;for(let a of d)if(b.some(b=>a.triggers.some(a=>f(b,a))))for(let d of b)a.strip.some(a=>f(d,a))&&c.add(d);return 0===c.size?{tools:a,stripped:[]}:{tools:a.filter(a=>!c.has(e(a))),stripped:Array.from(c)}}},14823:(a,b,c)=>{c.d(b,{H:()=>h});var d=c(14170);function e(a){try{return JSON.stringify(a)?.length||0}catch{return 0}}function f(a){return Math.round(a/4)}function g(a,b={}){return{body:null,summary:{applied:!1,reason:a,...b}}}async function h(a,{enabled:b,format:c,model:i,minChars:j,timeoutMs:k,transform:l}={}){if(!b)return g("disabled");if("function"!=typeof l)return g("not_installed");if(!a)return g("missing_body");if(c!==d.h.CLAUDE)return g("unsupported_format",{detail:c});let m=Date.now(),n=e(a),o=Number(j)>0?Number(j):25e3;if(n<o)return g("below_threshold",{originalChars:n,threshold:o});try{let b=new TextEncoder().encode(JSON.stringify(a)),c=Number(k)>0?Number(k):15e3,d=await Promise.race([l({body:b,model:i,options:{minCompressChars:o}}),new Promise(a=>setTimeout(()=>a(null),c))]);if(!d)return g("timeout",{originalChars:n,durationMs:Date.now()-m});if(!d.applied)return g(d.reason||"passthrough",{detail:d.detail,originalChars:n,durationMs:Date.now()-m});let h=JSON.parse(new TextDecoder().decode(d.body)),j=e(h),p=d.info||{},q=p.compressedChars||0,r=p.imageTokens||(p.imagePixels?Math.round(p.imagePixels/750):4761*(p.imageCount||0)),s={applied:!0,reason:"applied",originalChars:n,compressedBodyChars:j,imagedChars:q,imageCount:p.imageCount||0,imageBytes:p.imageBytes||0,tokensBeforeEst:p.baselineTokens||f(n),tokensAfterEst:f(Math.max(0,n-q))+r,durationMs:Date.now()-m,cacheOwnsControl:d.cache?.ownsCacheControl===!0};return s.tokensSavedEst=Math.max(0,s.tokensBeforeEst-s.tokensAfterEst),s.savedPct=s.tokensBeforeEst>0?+(s.tokensSavedEst/s.tokensBeforeEst*100).toFixed(2):0,{body:h,summary:s}}catch(a){return g("transform_error",{detail:a?.message||String(a),originalChars:n,durationMs:Date.now()-m})}}},20623:(a,b,c)=>{c.d(b,{$:()=>n,M:()=>m});var d=c(14170),e=c(33110),f=c(71857),g=c(59657),h=c(30320),i=c(68480),j=c(86171),k=c(47370);let l={"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive","Access-Control-Allow-Origin":"*"};function m({providerResponse:a,provider:b,model:c,sourceFormat:n,targetFormat:o,userAgent:p,body:q,stream:r,translatedBody:s,finalBody:t,requestStartTime:u,connectionId:v,apiKey:w,clientRawRequest:x,onRequestSuccess:y,onStreamFailure:z,onSemanticCommit:A,adaptive:B,reqLogger:C,toolNameMap:D,streamController:E,onStreamComplete:F,streamDetailId:G,latencyRecorder:H,timeoutPolicy:I}){let J=!1,K=(a,b,c)=>{"function"==typeof a&&Promise.resolve().then(()=>a(b)).catch(a=>{console.error(`[ChatCore] Streaming ${c} callback failed:`,a?.message||a)})},L=(a,b,c,d={})=>!J&&(J=!0,H?.finish?.({success:!0!==d.failed,totalMs:Date.now()-u}),d.failed?K(z,d.error,"failure"):K(y,void 0,"success"),F?.(a,b,c,d),!0),M=function({provider:a,sourceFormat:b,targetFormat:c,userAgent:g,reqLogger:h,toolNameMap:i,model:j,connectionId:k,body:l,onStreamComplete:m,apiKey:n}){let o=g?.toLowerCase().includes("droid")||g?.toLowerCase().includes("codex-cli");if("codex"===a&&c===d.h.OPENAI_RESPONSES&&!o){let c;return c=b===d.h.OPENAI_RESPONSES?d.h.OPENAI_RESPONSES:b===d.h.CLAUDE?d.h.CLAUDE:b===d.h.ANTIGRAVITY||b===d.h.GEMINI||b===d.h.GEMINI_CLI?d.h.ANTIGRAVITY:d.h.OPENAI,(0,f.i5)(d.h.OPENAI_RESPONSES,c,a,h,i,j,k,l,m,n)}return(0,e.nZ)(c,b)||c===d.h.OPENAI_RESPONSES&&b===d.h.OPENAI_RESPONSES?(0,f.i5)(c,b,a,h,i,j,k,l,m,n):(0,f.l2)(a,h,j,k,l,m,n,c)}({provider:b,sourceFormat:n,targetFormat:o,userAgent:p,reqLogger:C,toolNameMap:D,model:c,connectionId:v,body:q,onStreamComplete:L,apiKey:w}),N=(0,h.O3)(n);I||=(0,i.U)({provider:b,model:c});let O=(0,g.Jb)(a,M,E,N,d=>{let e=["STREAM_FIRST_CHUNK_TIMEOUT","STREAM_STALL_TIMEOUT","STREAM_ABSOLUTE_TIMEOUT"].includes(d?.code)?d.code:null,f=e?504:502,g="STREAM_FIRST_CHUNK_TIMEOUT"===e?"Provider stream did not start in time":"STREAM_STALL_TIMEOUT"===e?"Provider stream stalled":"STREAM_ABSOLUTE_TIMEOUT"===e?"Provider stream exceeded its absolute deadline":"Provider stream transport failed";L({content:"",thinking:""},null,null,{failed:!0,error:{status:f,message:g,errorText:g,failureMetadata:{failureClass:e?"upstream_timeout":"upstream_transient",providerErrorCode:e||"STREAM_TRANSPORT_ERROR",authLifecycle:{initialStatus:Number.isInteger(a?.status)?a.status:200,refreshAttempted:!1,refreshOutcome:"not_attempted",retryStatus:null}}}})&&(0,k.E5)({model:c,provider:b,connectionId:v,tokens:null,status:`FAILED ${f}`}).catch(()=>{})},I,(a,b)=>H?.observe?.(a,b),A);return(0,k.ox)((0,j.$R)({provider:b,model:c,connectionId:v,adaptive:B,latency:{ttft:0,total:Date.now()-u},tokens:{prompt_tokens:0,completion_tokens:0},request:(0,j.Fo)(q,r),providerRequest:t||s||null,providerResponse:"[Streaming - raw response not captured]",response:{content:"[Streaming in progress...]",thinking:null,type:"streaming"},status:"pending"},{id:G})).catch(a=>{console.error("[RequestDetail] Failed to save streaming request:",a.message)}),{success:!0,response:new Response(O,{headers:l})}}function n({provider:a,model:b,connectionId:c,apiKey:d,requestStartTime:e,body:f,stream:g,finalBody:h,translatedBody:i,clientRawRequest:l,adaptive:m,reqTag:o,log:p}){let q=`${Date.now()}-${Math.random().toString(36).slice(2,11)}`;return{onStreamComplete:(n,r,s,t={})=>{let u={ttft:s?s-e:Date.now()-e,total:Date.now()-e},v=Array.isArray(n?.tool_calls)?n.tool_calls:[],w=n?.content||(v.length>0?null:"[Empty streaming response]"),x=n?.thinking||null,y=!0===t.failed,z=y?null:n?.finish_reason||(v.length>0?"tool_calls":"stop");(0,j.T$)({provider:a,model:b,toolCalls:v});let A={content:w,thinking:x,type:"streaming",...z?{finish_reason:z}:{},...v.length>0?{tool_calls:v}:{}};(0,k.ox)((0,j.$R)({provider:a,model:b,connectionId:c,adaptive:m,latency:u,tokens:r||{prompt_tokens:0,completion_tokens:0},request:(0,j.Fo)(f,g),providerRequest:h||i||null,providerResponse:w,response:y?{...A,error:t.error?.message||"Provider stream failed",status:t.error?.status||502}:A,status:y?"error":"success"},{id:q})).catch(a=>{console.error("[RequestDetail] Failed to update streaming content:",a.message)}),y||(0,j.qr)({provider:a,model:b,tokens:r,connectionId:c,apiKey:d,endpoint:l?.endpoint,latency:u,label:"STREAM USAGE",silent:!0}),y?p?.errorLine?.(o,"✗",`ERROR ${t.error?.status||502} \xb7 ${a}/${b} \xb7 ${u.total}ms
2
- ${t.error?.message||"Provider stream failed"}`):p?.line?.(o,"\uD83D\uDCCA",(0,j.U$)({usage:r,latency:u,toolCalls:v}))},streamDetailId:q}}},30320:(a,b,c)=>{c.d(b,{O3:()=>m,nu:()=>h,u9:()=>k,yx:()=>g});var d=c(14170),e=c(9024);let f=new Set(["response.completed","response.failed","response.incomplete","error"]);function g(a,b){return a||(b&&"string"==typeof b.type?b.type:null)}function h(a,b){let c=g(a,b);if(f.has(c))return!0;let d=b?.response?.status;return"completed"===d||"failed"===d||"incomplete"===d}let i=new TextEncoder;function j(a={}){return i.encode(`${k(a)}data: [DONE]
2
+ ${t.error?.message||"Provider stream failed"}`):p?.line?.(o,"\uD83D\uDCCA",(0,j.U$)({usage:r,latency:u,toolCalls:v}))},streamDetailId:q}}},27349:(a,b,c)=>{c.d(b,{c:()=>i});var d=c(57647),e=c(33110),f=c(14170),g=c(41004),h=c(71857);function i(a,b,c="",e=!1){if(!c.includes("claude-cli")||!a.messages?.length)return null;let f=a.messages,h=a=>"string"==typeof a?a:Array.isArray(a)?a.filter(a=>"text"===a.type).map(a=>a.text).join(" "):"",j=!1,m=!1,n=f[f.length-1];if(n?.role==="assistant"&&n.content?.[0]?.text==="{"&&(j=!0),j||"Warmup"===h(f[0]?.content)&&(j=!0),j||1!==f.length||f[0]?.role!=="user"||"count"===h(f[0]?.content)&&(j=!0),!j&&g.C8?.length){let a=f.filter(a=>"user"===a.role).map(a=>h(a.content)).join(" ");g.C8.some(b=>a.includes(b))&&(j=!0)}if(!j&&e){let b=f.find(a=>"system"===a.role),c=h(b?.content),d=Array.isArray(a.system)?a.system.filter(a=>"text"===a.type).map(a=>a.text).join(" "):"string"==typeof a.system?a.system:"";(c||d).includes("isNewTopic")&&(j=!0,m=!0)}if(!j)return null;let o=(0,d.Tz)(a),p=!1!==a.stream;if(m){let a=f.find(a=>"user"===a.role),c=JSON.stringify({isNewTopic:!0,title:h(a?.content).trim().split(/\s+/).slice(0,3).join(" ")});return p?l(o,b,c):k(o,b,c)}return p?l(o,b):k(o,b)}function j(a,b="CLI Command Execution: Clear Terminal"){return{id:`chatcmpl-${Date.now()}`,object:"chat.completion",created:Math.floor(Date.now()/1e3),model:a,choices:[{index:0,message:{role:"assistant",content:b},finish_reason:"stop"}],usage:{prompt_tokens:1,completion_tokens:1,total_tokens:2}}}function k(a,b,c){let d=j(b,c);if(a===f.h.OPENAI)return{success:!0,response:new Response(JSON.stringify(d),{headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}})};let g=(0,e.Ws)(a);g.model=b;let h=m(d),i=[];for(let b of h){let c=(0,e.Y8)(f.h.OPENAI,a,b,g);c?.length>0&&i.push(...c)}let k=(0,e.Y8)(f.h.OPENAI,a,null,g);return k?.length>0&&i.push(...k),{success:!0,response:new Response(JSON.stringify(function(a,b){if(!a||0===a.length)return j("unknown");let c=a[a.length-1];if(b===f.h.CLAUDE&&a.find(a=>"message_stop"===a.type)){a.find(a=>"content_block_delta"===a.type);let b=a.find(a=>"message_delta"===a.type),d=a.find(a=>"message_start"===a.type);d?.message&&(c=d.message,b?.usage&&(c.usage=b.usage))}return c}(i,a)),{headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}})}}function l(a,b,c){let d=j(b,c),g=(0,e.Ws)(a);g.model=b;let i=m(d),k=[];for(let b of i){let c=(0,e.Y8)(f.h.OPENAI,a,b,g);if(c?.length>0)for(let b of c)k.push((0,h.v8)(b,a))}let l=(0,e.Y8)(f.h.OPENAI,a,null,g);if(l?.length>0)for(let b of l)k.push((0,h.v8)(b,a));return k.push("data: [DONE]\n\n"),{success:!0,response:new Response(k.join(""),{headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive","Access-Control-Allow-Origin":"*"}})}}function m(a){let{id:b,created:c,model:d,choices:e}=a;return[{id:b,object:"chat.completion.chunk",created:c,model:d,choices:[{index:0,delta:{role:"assistant",content:e[0].message.content},finish_reason:null}]},{id:b,object:"chat.completion.chunk",created:c,model:d,choices:[{index:0,delta:{},finish_reason:"stop"}],usage:a.usage}]}},30320:(a,b,c)=>{c.d(b,{O3:()=>m,nu:()=>h,u9:()=>k,yx:()=>g});var d=c(14170),e=c(9024);let f=new Set(["response.completed","response.failed","response.incomplete","error"]);function g(a,b){return a||(b&&"string"==typeof b.type?b.type:null)}function h(a,b){let c=g(a,b);if(f.has(c))return!0;let d=b?.response?.status;return"completed"===d||"failed"===d||"incomplete"===d}let i=new TextEncoder;function j(a={}){return i.encode(`${k(a)}data: [DONE]
3
3
 
4
4
  `)}function k({responseId:a,createdAt:b,sequenceNumber:c,errorCode:f="stream_disconnected",errorMessage:g="stream closed before response.completed"}={}){let h={type:"response.failed",response:{id:a||`resp_${Date.now()}`,object:"response",created_at:b||Math.floor(Date.now()/1e3),status:"failed",background:!1,error:{type:"stream_error",code:f,message:g},output:[]}};return Number.isFinite(c)&&(h.sequence_number=c),(0,e.v8)({event:"response.failed",data:h},d.h.OPENAI_RESPONSES)}function l(a){return({STREAM_FIRST_CHUNK_TIMEOUT:{status:504,code:"STREAM_FIRST_CHUNK_TIMEOUT",message:"Provider stream did not start in time"},STREAM_STALL_TIMEOUT:{status:504,code:"STREAM_STALL_TIMEOUT",message:"Provider stream stalled"},STREAM_ABSOLUTE_TIMEOUT:{status:504,code:"STREAM_ABSOLUTE_TIMEOUT",message:"Provider stream exceeded its absolute deadline"}})[a?.code]||{status:502,code:"STREAM_TRANSPORT_ERROR",message:"Provider stream transport failed"}}function m(a){if(a===d.h.OPENAI_RESPONSES){let a,b,c,d,e,f,g,k,l,m;return a=new TextDecoder,b="",c=!1,d=!1,e=null,f=null,g=null,k=null,l={STREAM_FIRST_CHUNK_TIMEOUT:{errorCode:"stream_first_chunk_timeout",errorMessage:"provider stream did not start in time"},STREAM_STALL_TIMEOUT:{errorCode:"stream_stall_timeout",errorMessage:"provider stream stalled"},STREAM_ABSOLUTE_TIMEOUT:{errorCode:"stream_absolute_timeout",errorMessage:"provider stream exceeded its absolute deadline"}},m=a=>{let b;if(!a.trim())return;let i=a.match(/^event:\s*(.+)$/m)?.[1]?.trim()||null,j=a.match(/^data:\s*(.+)$/m)?.[1]?.trim();if(j){if("[DONE]"===j){d=!0;return}try{b=JSON.parse(j)}catch{return}e=b?.response?.id||e,f=b?.response?.created_at||f,Number.isFinite(b?.sequence_number)&&(g=b.sequence_number+1),h(i,b)&&(c=!0)}},{setFailure(a){k=l[a?.code]||null},observe(c){let d=(b+="string"==typeof c?c:a.decode(c,{stream:!0})).split(/\r?\n\r?\n/);for(let a of(b=d.pop()||"",d))m(a)},build:()=>(b.trim()&&m(b),d)?null:c?i.encode("data: [DONE]\n\n"):j({responseId:e,createdAt:f,sequenceNumber:g,...k})}}let b=new TextDecoder,c="",f=!1,g=!1,k=l(null),m=b=>{let c,e=b.trim();if(!e.startsWith("data:"))return;let h=e.slice(5).trim();if("[DONE]"===h){g=!0;return}try{c=JSON.parse(h)}catch{return}f||=!!c?.error,f||=c?.choices?.some(a=>a?.finish_reason!==null&&a?.finish_reason!==void 0&&""!==a.finish_reason),a===d.h.CLAUDE&&(f||=c?.type==="message_stop"||c?.type==="error"),[d.h.GEMINI,d.h.GEMINI_CLI,d.h.VERTEX,d.h.ANTIGRAVITY].includes(a)&&(f||=c?.candidates?.some(a=>!!a?.finishReason))};return{setFailure(a){k=l(a)},observe(a){let d=(c+="string"==typeof a?a:b.decode(a,{stream:!0})).split(/\r?\n/);for(let a of(c=d.pop()||"",d))m(a)},build(){if(c.trim()&&m(c),g)return null;if(f)return i.encode("data: [DONE]\n\n");var b=k;if(a===d.h.OPENAI_RESPONSES)return j({errorCode:b.code.toLowerCase(),errorMessage:b.message.toLowerCase()});if(a===d.h.CLAUDE){let a={type:"error",error:{type:"api_error",message:b.message}};return i.encode(`${(0,e.v8)(a,d.h.CLAUDE)}data: [DONE]
5
5
 
6
6
  `)}let h={error:{message:b.message,type:"stream_error",code:b.code,status:b.status}};return i.encode(`${(0,e.v8)(h,a||d.h.OPENAI)}data: [DONE]
7
7
 
8
- `)}}}},48895:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{SB:()=>f.SB}),c(39609),c(35024),c(75924),c(41004),c(83477),c(14170),c(33110),c(57647),c(40669),c(12557),c(8590),c(93943);var e=c(92500);c(59657);var f=c(55330);c(43659),c(71857);var g=a([e,f]);[e,f]=g.then?(await g)():g,d()}catch(a){d(a)}})},49730:(a,b,c)=>{c.d(b,{c:()=>i});var d=c(57647),e=c(33110),f=c(14170),g=c(41004),h=c(71857);function i(a,b,c="",e=!1){if(!c.includes("claude-cli")||!a.messages?.length)return null;let f=a.messages,h=a=>"string"==typeof a?a:Array.isArray(a)?a.filter(a=>"text"===a.type).map(a=>a.text).join(" "):"",j=!1,m=!1,n=f[f.length-1];if(n?.role==="assistant"&&n.content?.[0]?.text==="{"&&(j=!0),j||"Warmup"===h(f[0]?.content)&&(j=!0),j||1!==f.length||f[0]?.role!=="user"||"count"===h(f[0]?.content)&&(j=!0),!j&&g.C8?.length){let a=f.filter(a=>"user"===a.role).map(a=>h(a.content)).join(" ");g.C8.some(b=>a.includes(b))&&(j=!0)}if(!j&&e){let b=f.find(a=>"system"===a.role),c=h(b?.content),d=Array.isArray(a.system)?a.system.filter(a=>"text"===a.type).map(a=>a.text).join(" "):"string"==typeof a.system?a.system:"";(c||d).includes("isNewTopic")&&(j=!0,m=!0)}if(!j)return null;let o=(0,d.Tz)(a),p=!1!==a.stream;if(m){let a=f.find(a=>"user"===a.role),c=JSON.stringify({isNewTopic:!0,title:h(a?.content).trim().split(/\s+/).slice(0,3).join(" ")});return p?l(o,b,c):k(o,b,c)}return p?l(o,b):k(o,b)}function j(a,b="CLI Command Execution: Clear Terminal"){return{id:`chatcmpl-${Date.now()}`,object:"chat.completion",created:Math.floor(Date.now()/1e3),model:a,choices:[{index:0,message:{role:"assistant",content:b},finish_reason:"stop"}],usage:{prompt_tokens:1,completion_tokens:1,total_tokens:2}}}function k(a,b,c){let d=j(b,c);if(a===f.h.OPENAI)return{success:!0,response:new Response(JSON.stringify(d),{headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}})};let g=(0,e.Ws)(a);g.model=b;let h=m(d),i=[];for(let b of h){let c=(0,e.Y8)(f.h.OPENAI,a,b,g);c?.length>0&&i.push(...c)}let k=(0,e.Y8)(f.h.OPENAI,a,null,g);return k?.length>0&&i.push(...k),{success:!0,response:new Response(JSON.stringify(function(a,b){if(!a||0===a.length)return j("unknown");let c=a[a.length-1];if(b===f.h.CLAUDE&&a.find(a=>"message_stop"===a.type)){a.find(a=>"content_block_delta"===a.type);let b=a.find(a=>"message_delta"===a.type),d=a.find(a=>"message_start"===a.type);d?.message&&(c=d.message,b?.usage&&(c.usage=b.usage))}return c}(i,a)),{headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}})}}function l(a,b,c){let d=j(b,c),g=(0,e.Ws)(a);g.model=b;let i=m(d),k=[];for(let b of i){let c=(0,e.Y8)(f.h.OPENAI,a,b,g);if(c?.length>0)for(let b of c)k.push((0,h.v8)(b,a))}let l=(0,e.Y8)(f.h.OPENAI,a,null,g);if(l?.length>0)for(let b of l)k.push((0,h.v8)(b,a));return k.push("data: [DONE]\n\n"),{success:!0,response:new Response(k.join(""),{headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive","Access-Control-Allow-Origin":"*"}})}}function m(a){let{id:b,created:c,model:d,choices:e}=a;return[{id:b,object:"chat.completion.chunk",created:c,model:d,choices:[{index:0,delta:{role:"assistant",content:e[0].message.content},finish_reason:null}]},{id:b,object:"chat.completion.chunk",created:c,model:d,choices:[{index:0,delta:{},finish_reason:"stop"}],usage:a.usage}]}},60125:(a,b,c)=>{c.d(b,{p:()=>j});var d=c(14170);let e="Code blocks, file paths, commands, errors, URLs: keep exact. Security warnings, irreversible action confirmations, multi-step ordered sequences: write normal. Resume terse style after.",f='Not: "Sure! I\'d be happy to help you with that. The issue you\'re experiencing is likely caused by..." Yes: "Bug in auth middleware. Token expiry check use `<` not `<=`. Fix:"',g="Auto-Clarity: drop caveman for security warnings, irreversible actions, multi-step sequences where fragment ambiguity risks misread, or when user repeats a question. Resume after the clear part.",h="ACTIVE EVERY RESPONSE. No revert after many turns. No filler drift. Still active if unsure.",i={lite:["Respond tersely. Keep grammar and full sentences but drop filler, hedging and pleasantries (just/really/basically/sure/of course/I'd be happy to). Pattern: state the thing, the action, the reason. Then next step.",f,e,g,h].join(" "),full:["Respond like terse caveman. All technical substance stay exact, only fluff die. Drop: articles (a/an/the), filler (just/really/basically/actually/simply), pleasantries, hedging. Fragments OK. Short synonyms (big not extensive, fix not implement a solution for). Pattern: [thing] [action] [reason]. [next step].",f,e,g,h].join(" "),ultra:["Respond ultra-terse. Maximum compression. Telegraphic. Abbreviate (DB/auth/config/req/res/fn/impl), strip conjunctions, use arrows for causality (X → Y). One word when one word enough. Pattern: [thing] → [result]. [fix].",f,e,g,h].join(" "),"wenyan-lite":["Respond semi-classical. Drop filler/hedging but keep grammar structure, classical register. Use classical Chinese sentence patterns where natural. Keep English for technical terms.",f,e,g,h].join(" "),wenyan:["Respond classical Chinese (文言文). Maximum classical terseness. 80-90% character reduction. Classical sentence patterns, verbs precede objects, subjects often omitted, classical particles (之/乃/為/其). Keep English for code, commands, function names, API names, error strings.",f,e,g,h].join(" "),"wenyan-ultra":["Respond extreme classical compression (文言文 ultra). Maximum compression, ultra terse. Same classical rules as wenyan-full but even more compressed. One classical particle per clause.",f,e,g,h].join(" ")};function j(a,b,c){let e=i[c];if(a&&e)switch(b){case d.h.CLAUDE:!function(a,b){if("string"==typeof a.system&&a.system.length>0){a.system=`${a.system}
8
+ `)}}}},48895:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{SB:()=>f.SB}),c(39609),c(35024),c(75924),c(41004),c(83477),c(14170),c(33110),c(57647),c(40669),c(12557),c(8590),c(93943);var e=c(92500);c(59657);var f=c(55330);c(43659),c(71857);var g=a([e,f]);[e,f]=g.then?(await g)():g,d()}catch(a){d(a)}})},60125:(a,b,c)=>{c.d(b,{p:()=>j});var d=c(14170);let e="Code blocks, file paths, commands, errors, URLs: keep exact. Security warnings, irreversible action confirmations, multi-step ordered sequences: write normal. Resume terse style after.",f='Not: "Sure! I\'d be happy to help you with that. The issue you\'re experiencing is likely caused by..." Yes: "Bug in auth middleware. Token expiry check use `<` not `<=`. Fix:"',g="Auto-Clarity: drop caveman for security warnings, irreversible actions, multi-step sequences where fragment ambiguity risks misread, or when user repeats a question. Resume after the clear part.",h="ACTIVE EVERY RESPONSE. No revert after many turns. No filler drift. Still active if unsure.",i={lite:["Respond tersely. Keep grammar and full sentences but drop filler, hedging and pleasantries (just/really/basically/sure/of course/I'd be happy to). Pattern: state the thing, the action, the reason. Then next step.",f,e,g,h].join(" "),full:["Respond like terse caveman. All technical substance stay exact, only fluff die. Drop: articles (a/an/the), filler (just/really/basically/actually/simply), pleasantries, hedging. Fragments OK. Short synonyms (big not extensive, fix not implement a solution for). Pattern: [thing] [action] [reason]. [next step].",f,e,g,h].join(" "),ultra:["Respond ultra-terse. Maximum compression. Telegraphic. Abbreviate (DB/auth/config/req/res/fn/impl), strip conjunctions, use arrows for causality (X → Y). One word when one word enough. Pattern: [thing] → [result]. [fix].",f,e,g,h].join(" "),"wenyan-lite":["Respond semi-classical. Drop filler/hedging but keep grammar structure, classical register. Use classical Chinese sentence patterns where natural. Keep English for technical terms.",f,e,g,h].join(" "),wenyan:["Respond classical Chinese (文言文). Maximum classical terseness. 80-90% character reduction. Classical sentence patterns, verbs precede objects, subjects often omitted, classical particles (之/乃/為/其). Keep English for code, commands, function names, API names, error strings.",f,e,g,h].join(" "),"wenyan-ultra":["Respond extreme classical compression (文言文 ultra). Maximum compression, ultra terse. Same classical rules as wenyan-full but even more compressed. One classical particle per clause.",f,e,g,h].join(" ")};function j(a,b,c){let e=i[c];if(a&&e)switch(b){case d.h.CLAUDE:!function(a,b){if("string"==typeof a.system&&a.system.length>0){a.system=`${a.system}
9
9
 
10
10
  ${b}`;return}if(Array.isArray(a.system)){let c={type:"text",text:b},d=-1;for(let b=a.system.length-1;b>=0;b--)if(a.system[b]?.cache_control){d=b;break}d>=0?a.system.splice(d,0,c):a.system.push(c);return}a.system=b}(a,e);return;case d.h.GEMINI:case d.h.GEMINI_CLI:case d.h.VERTEX:case d.h.ANTIGRAVITY:var f,g;let h,j,k;f=a,g=e,h=f.request&&"object"==typeof f.request?f.request:f,j=Object.prototype.hasOwnProperty.call(h,"system_instruction")?"system_instruction":"systemInstruction",(k=h[j])&&Array.isArray(k.parts)?k.parts.push({text:g}):h[j]={parts:[{text:g}]};return;default:!function(a,b){var c,d;if("string"==typeof a.instructions){a.instructions=a.instructions?`${a.instructions}
11
11
 
@@ -63,11 +63,11 @@ ${b}`;return}if(Array.isArray(a.system)){let c={type:"text",text:b},d=-1;for(let
63
63
 
64
64
  ${b}`:b;return}let e=Array.isArray(a.messages)?a.messages:Array.isArray(a.input)?a.input:null;if(!e)return;let f=e.findIndex(a=>a&&("system"===a.role||"developer"===a.role));f>=0?(c=e[f],d=b,"string"==typeof c.content?c.content=`${c.content}
65
65
 
66
- ${d}`:Array.isArray(c.content)?c.content.push({type:"input_text",text:d}):c.content=d):e.unshift({role:"system",content:b})}(a,e)}}},92500:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{wk:()=>J});var e=c(58500),f=c(57647),g=c(33110),h=c(14170),i=c(59657),j=c(8590),k=c(71336),l=c(83477),m=c(43659),n=c(41004),o=c(49730),p=c(47370),q=c(89718),r=c(55330),s=c(86171),t=c(81626),u=c(5016),v=c(20623),w=c(324),x=c(14724),y=c(60125),z=c(88299),A=c(99415),B=c(77256),C=c(70190),D=c(14823),E=c(36672),F=c(80662),G=c(35989),H=c(68480),I=a([r]);async function J({body:a,modelInfo:b,credentials:c,log:d,onCredentialsRefreshed:I,onRequestSuccess:K,onStreamFailure:L,onDisconnect:M,clientRawRequest:N,connectionId:O,userAgent:P,apiKey:Q,ccFilterNaming:R,rtkEnabled:S,headroomEnabled:T,headroomUrl:U,headroomCompressUserMessages:V,cavemanEnabled:W,cavemanLevel:X,contextInjectionEnabled:Y,ponytailEnabled:Z,ponytailLevel:$,pxpipeEnabled:_,pxpipeMinChars:aa,pxpipeTimeoutMs:ab,pxpipeTransform:ac,onPxpipeEvent:ad,sourceFormatOverride:ae,providerThinking:af,signal:ag,attemptBudget:ah,attemptLease:ai,acquireAttemptLease:aj,adaptiveMetadata:ak,onAdaptiveLifecycle:al}){let am,an,ao,ap,aq,ar,{provider:as}=b,at=Date.now(),au=(()=>{try{return(0,F.oV)({headers:N?.headers,body:a,connectionId:O,scope:as})}catch{return O||""}})(),av=d?.tagForSession?d.tagForSession(au):d?.nextTag?d.nextTag():"",aw=ae||(0,f.Tz)(a),ax=(0,o.c)(a,b.model,P,R);if(ax)return ax;let ay=(0,E.C2)(b.model,a,af);a=ay.body;let az=ay.cleanModel,aA={provider:as,model:az,operation:aw===h.h.OPENAI_RESPONSES?"responses":"chat"},aB=(0,H.U)(aA),aC=(0,G.td)(aA);ay.applied&&d?.debug?.("THINKING",`Applied thinking mode=${ay.applied} (model=${b.model})`);let aD=l.Xg[as]||as,aE=(0,l.ux)(aD,az)||(0,f.jJ)(as),aF=(0,l.cY)(aD,az),aG=(0,E.kD)((0,l.kt)(aD,az)),aH=(0,r.SB)(as),aI=ai||null,aJ=at,aK=()=>aI?.transition?.("upstream_open"),aL=()=>{let a=aI?.transition?.("semantic_commit")===!0;return a&&al?.({type:"semantic_commit",attemptIndex:aI.attemptIndex,phase:"semantic_commit"}),a},aM=async a=>{if(!aI)return!0;if(aI.semanticCommitted||"function"!=typeof aj||ah?.remaining===0)return!1;let b=aj();return!!b&&(await aI.finish({...a,retrying:!0}),aI=b,!0)},aN=async a=>aI&&a?.success===!1?(await aI.finish({success:!1,lifecycleHandled:!0===a.lifecycleHandled,shouldFallback:!0===a.shouldFallback,failure:{status:a.status,message:a.error,errorText:a.error,resetsAtMs:a.resetsAtMs,failureMetadata:a.failureMetadata}}),{...a,lifecycleHandled:!0,shouldFallback:aI.finalizationResult?.shouldFallback===!0}):a,aO=!0===a.stream||aw===h.h.ANTIGRAVITY||aw===h.h.GEMINI||aw===h.h.GEMINI_CLI,aP=function(a,b=null){return b?.forceStream===!0||"openai"===a||"codex"===a||"commandcode"===a}(as,aH.config),aQ=!!aP||!1!==a.stream,aR=(0,w.J)(N?.headers||{},a);"deepseek-tui"===aR&&!0!==a.stream&&(aQ=!1);let aS=N?.headers?.accept||"",aT=aS.includes("application/json"),aU=aS.includes("text/event-stream");aT&&!aU&&!0!==a.stream&&(aQ=!1);let aV=await (0,k.q7)(aw,aE,az);N&&aV.logClientRawRequest(N.endpoint,N.body,N.headers),aV.logRawRequest(a),d?.debug?.("FORMAT",`${aw} → ${aE} | stream=${aQ}`);let aW=(0,w.J)(N?.headers||{},a),aX=(0,w.Q)(aW,as);if(aX)d?.debug?.("PASSTHROUGH",`${aW} → ${as} | native lossless`),am={...a,model:aG};else{if(!(am=(0,g.GH)(aw,aE,aG,a,aQ,c,as,aV,aF,O,aW)))return(0,p.uw)(az,as,O,!1,!0),aN((0,m.A1)(n.gx.BAD_REQUEST,`Failed to translate request for ${aw} → ${aE}`,void 0,{failureClass:"policy_rejection"}));an=am._toolNameMap,delete am._toolNameMap,am.model=aG}if("claude"===aW&&Array.isArray(am.tools)){let{tools:a,stripped:b}=(0,x.F)(am.tools);b.length>0&&(am.tools=a,d?.debug?.("TOOLDEDUP",`stripped ${b.length}: ${b.slice(0,3).join(", ")}${b.length>3?"...":""}`))}let aY=aX?aw:aE;if(d?.line){let b=N?.body?.model||`${as}/${az}`,e=am.messages?.length||am.input?.length||am.contents?.length||am.request?.contents?.length||a.messages?.length||a.input?.length||0,f=am.tools?.length||a.tools?.length||0,g=aX?`FMT:${aw} passthrough`:`FMT:${aw}→${aE}`,h=d.fmtThink?.((0,E.sS)(am)),i=c?.connectionName||c?.connectionId?.slice(0,8)||"-",j=[`POST ${b} → ${as}/${az}`,g,aQ?"STREAM":"JSON",`${e} MSG`];f>0&&j.push(`${f} TOOL`),h&&j.push(`THINK:${h}`),j.push(`ACC:${i}`);let k=c?.providerSpecificData||{},l=k.vercelRelayUrl||(k.connectionProxyEnabled?k.connectionProxyUrl:null);if(l)try{let a=new URL(l);j.push(`PROXY:${a.hostname}${a.port?`:${a.port}`:""}`)}catch{j.push("PROXY:configured")}d.line(av,"▶",j.join(" \xb7 "))}"tts"===(0,l.OA)(aD,az)&&am.messages&&(am.messages=am.messages.filter(a=>"tool"!==a.role),delete am.tools);let aZ="off"!==String(N?.headers?.[n.SA]||"").toLowerCase(),a$=[],a_=(0,B.B)(am,aZ&&S);if(a_?.hits?.length){let a=a_.bytesBefore-a_.bytesAfter,b=a_.bytesBefore>0?(a/a_.bytesBefore*100).toFixed(0):"0";a$.push(`RTK −${a}B(${b}%)`)}let a0={},a1=await (0,C.SI)(am,{enabled:aZ&&T,url:U,model:aG,format:aY,compressUserMessages:V,diagnostics:a0});if(a1){let a=a1.tokens_before||0,b=a1.tokens_saved||0,c=a>0?(b/a*100).toFixed(1):"0";a$.push(`HEADROOM −${b}tok(${c}%)`),(0,C.cB)(a1,a0)&&d?.warn?.("HEADROOM",`reported token delta, but outbound JSON shrank <5%; provider may bill near-original payload | ${(0,C.O2)(a0)}`)}else aZ&&T&&d?.warn?.("HEADROOM",`skipped: ${a0.reason||"compression unavailable"}${a0.endpoint?` (${a0.endpoint})`:""}`);if(aZ&&W&&X&&((0,y.p)(am,aY,X),a$.push(`CAVEMAN:${X}`)),aZ&&Z&&$&&((0,z.U)(am,aY,$),a$.push(`PONYTAIL:${$}`)),aZ&&_){let a=await (0,D.H)(am,{enabled:!0,format:aY,model:aG,minChars:aa,timeoutMs:ab,transform:ac});a.body&&(am=a.body),a.summary?.applied&&a$.push(`PXPIPE:${a.summary.imageCount}img`);try{ad?.({provider:as,model:az,...a.summary})}catch{}}if(Y)try{let a=await (0,q.qd)();if(a?.length){let b=a.map(a=>a.content).filter(Boolean).join("\n\n");b&&((0,A.e)(am,aY,b),a$.push(`CONTEXT:${a.length}`))}}catch(a){d?.error?.("CONTEXT",`injection failed: ${a.message}`)}a$.length>0&&d?.line&&d.line(av,"⚙",a$.join(" \xb7 ")),(0,p.uw)(az,as,O,!0),(0,p.E5)({model:az,provider:as,connectionId:O,status:"PENDING"}).catch(()=>{});let a2=(0,i.jd)({onDisconnect:a=>{(0,p.uw)(az,as,O,!1),M&&M(a)},onError:()=>(0,p.uw)(az,as,O,!1),log:d,provider:as,model:az,reqTag:av,signal:ag}),a3={connectionProxyEnabled:c?.providerSpecificData?.connectionProxyEnabled===!0,connectionProxyUrl:c?.providerSpecificData?.connectionProxyUrl||"",connectionNoProxy:c?.providerSpecificData?.connectionNoProxy||"",strictProxy:c?.providerSpecificData?.strictProxy===!0,vercelRelayUrl:c?.providerSpecificData?.vercelRelayUrl||""};if(a3.connectionProxyEnabled&&a3.connectionNoProxy){let a=c?.connectionName||c?.connectionId||"unknown";d?.debug?.("PROXY",`${as.toUpperCase()} | ${az} | conn=${a} | no_proxy=${a3.connectionNoProxy}`)}let a4=Number.isFinite(aH.config?.maxRetries)?aH.config.maxRetries:2,a5=Number.isFinite(aH.config?.retryBaseMs)?aH.config.retryBaseMs:800,a6=a=>408===a||429===a&&aH.config?.retrySameCredential429!==!1||a>=500&&a<=599,a7=a=>a?.name==="AbortError"||a2.signal.aborted,a8=()=>{let a=Error("Request aborted");return a.name="AbortError",a},a9=a=>a&&!a7(a),ba=async()=>{aJ=Date.now();let a=new AbortController,b=new AbortController,e=aB.connectTimeoutMs,f=aB.absoluteTimeoutMs,g=setTimeout(()=>{let b=Error("provider response acquisition timed out");b.name="TimeoutError",b.code="STREAM_CONNECT_TIMEOUT",b.phase="connect",b.timeoutMs=e,a.abort(b)},e),h=setTimeout(()=>{let a=Error("provider attempt exceeded the absolute deadline");a.name="TimeoutError",a.code="STREAM_ABSOLUTE_TIMEOUT",a.phase="absolute",a.timeoutMs=f,b.abort(a)},f),i=AbortSignal.any([a2.signal,a.signal,b.signal]);try{return await aH.execute({model:az,body:am,stream:aQ,credentials:c,signal:i,log:d,proxyOptions:a3})}catch(c){if(a.signal.aborted&&!a2.signal.aborted)throw a.signal.reason;if(b.signal.aborted&&!a2.signal.aborted)throw b.signal.reason;throw c}finally{clearTimeout(g),clearTimeout(h)}};async function bb(){let a=null;for(let b=0;b<=a4;b++)try{let a=(0,G.td)(aA),c=Date.now(),f=await ba();if(a.observe("connect",Math.max(1,Date.now()-c)),aK(),f.response.ok||!1===f.retryable||!a6(f.response.status)||b===a4||!await aM({success:!1,status:f.response.status,failureClass:"upstream_transient"}))return aC=a,f;await (0,i.aI)(f.response);let g=a5*Math.pow(2,b);d?.info?.("RETRY",`${as.toUpperCase()} | ${az} | HTTP ${f.response.status}, retry ${b+1}/${a4} in ${g}ms`),await (0,e.setTimeout)(g,void 0,{signal:a2.signal})}catch(f){if(a=f,!a9(f)||b===a4||!await aM({success:!1,failureClass:"network"}))throw f;let c=a5*Math.pow(2,b);d?.info?.("RETRY",`${as.toUpperCase()} | ${az} | ${f.name}, retry ${b+1}/${a4} in ${c}ms`),await (0,e.setTimeout)(c,void 0,{signal:a2.signal})}throw a||Error("execute failed")}try{let a=await bb();ao=a.response,ap=a.url,aq=a.headers,ar=a.transformedBody,aV.logTargetRequest(ap,aq,ar)}catch(g){let b=a7(g),c=["STREAM_CONNECT_TIMEOUT","STREAM_ABSOLUTE_TIMEOUT"].includes(g?.code)?g.code:null,e=c?n.gx.GATEWAY_TIMEOUT:n.gx.BAD_GATEWAY;if((0,p.uw)(az,as,O,!1,!0),(0,p.E5)({model:az,provider:as,connectionId:O,status:`FAILED ${b?499:n.gx.BAD_GATEWAY}`}).catch(()=>{}),(0,p.ox)((0,s.$R)({provider:as,model:az,connectionId:O,adaptive:ak,latency:{ttft:0,total:Date.now()-at},tokens:{prompt_tokens:0,completion_tokens:0},request:(0,s.Fo)(a,aQ),providerRequest:am||null,response:{error:b?"Request aborted":g.message||String(g),status:b?499:e,thinking:null},status:"error"})).catch(()=>{}),b)return a2.handleError(a8()),aN((0,m.A1)(499,"Request aborted",void 0,{failureClass:"client_abort",authLifecycle:{initialStatus:null,refreshAttempted:!1,refreshOutcome:"not_attempted",retryStatus:null}}));let f=(0,m.lR)(g,as,az,e);return d?.errorLine?.(av,"✗",`ERROR ${e} \xb7 ${as}/${az} \xb7 ${Date.now()-at}ms
66
+ ${d}`:Array.isArray(c.content)?c.content.push({type:"input_text",text:d}):c.content=d):e.unshift({role:"system",content:b})}(a,e)}}},92500:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{wk:()=>J});var e=c(58500),f=c(57647),g=c(33110),h=c(14170),i=c(59657),j=c(8590),k=c(71336),l=c(83477),m=c(43659),n=c(41004),o=c(27349),p=c(47370),q=c(89718),r=c(55330),s=c(86171),t=c(81626),u=c(5016),v=c(20623),w=c(324),x=c(14724),y=c(60125),z=c(88299),A=c(99415),B=c(77256),C=c(70190),D=c(14823),E=c(36672),F=c(80662),G=c(35989),H=c(68480),I=a([r]);async function J({body:a,modelInfo:b,credentials:c,log:d,onCredentialsRefreshed:I,onRequestSuccess:K,onStreamFailure:L,onDisconnect:M,clientRawRequest:N,connectionId:O,userAgent:P,apiKey:Q,ccFilterNaming:R,rtkEnabled:S,headroomEnabled:T,headroomUrl:U,headroomCompressUserMessages:V,cavemanEnabled:W,cavemanLevel:X,contextInjectionEnabled:Y,ponytailEnabled:Z,ponytailLevel:$,pxpipeEnabled:_,pxpipeMinChars:aa,pxpipeTimeoutMs:ab,pxpipeTransform:ac,onPxpipeEvent:ad,sourceFormatOverride:ae,providerThinking:af,signal:ag,attemptBudget:ah,attemptLease:ai,acquireAttemptLease:aj,adaptiveMetadata:ak,onAdaptiveLifecycle:al}){let am,an,ao,ap,aq,ar,{provider:as}=b,at=Date.now(),au=(()=>{try{return(0,F.oV)({headers:N?.headers,body:a,connectionId:O,scope:as})}catch{return O||""}})(),av=d?.tagForSession?d.tagForSession(au):d?.nextTag?d.nextTag():"",aw=ae||(0,f.Tz)(a),ax=(0,o.c)(a,b.model,P,R);if(ax)return ax;let ay=(0,E.C2)(b.model,a,af);a=ay.body;let az=ay.cleanModel,aA={provider:as,model:az,operation:aw===h.h.OPENAI_RESPONSES?"responses":"chat"},aB=(0,H.U)(aA),aC=(0,G.td)(aA);ay.applied&&d?.debug?.("THINKING",`Applied thinking mode=${ay.applied} (model=${b.model})`);let aD=l.Xg[as]||as,aE=(0,l.ux)(aD,az)||(0,f.jJ)(as),aF=(0,l.cY)(aD,az),aG=(0,E.kD)((0,l.kt)(aD,az)),aH=(0,r.SB)(as),aI=ai||null,aJ=at,aK=()=>aI?.transition?.("upstream_open"),aL=()=>{let a=aI?.transition?.("semantic_commit")===!0;return a&&al?.({type:"semantic_commit",attemptIndex:aI.attemptIndex,phase:"semantic_commit"}),a},aM=async a=>{if(!aI)return!0;if(aI.semanticCommitted||"function"!=typeof aj||ah?.remaining===0)return!1;let b=aj();return!!b&&(await aI.finish({...a,retrying:!0}),aI=b,!0)},aN=async a=>aI&&a?.success===!1?(await aI.finish({success:!1,lifecycleHandled:!0===a.lifecycleHandled,shouldFallback:!0===a.shouldFallback,failure:{status:a.status,message:a.error,errorText:a.error,resetsAtMs:a.resetsAtMs,failureMetadata:a.failureMetadata}}),{...a,lifecycleHandled:!0,shouldFallback:aI.finalizationResult?.shouldFallback===!0}):a,aO=!0===a.stream||aw===h.h.ANTIGRAVITY||aw===h.h.GEMINI||aw===h.h.GEMINI_CLI,aP=function(a,b=null){return b?.forceStream===!0||"openai"===a||"codex"===a||"commandcode"===a}(as,aH.config),aQ=!!aP||!1!==a.stream,aR=(0,w.J)(N?.headers||{},a);"deepseek-tui"===aR&&!0!==a.stream&&(aQ=!1);let aS=N?.headers?.accept||"",aT=aS.includes("application/json"),aU=aS.includes("text/event-stream");aT&&!aU&&!0!==a.stream&&(aQ=!1);let aV=await (0,k.q7)(aw,aE,az);N&&aV.logClientRawRequest(N.endpoint,N.body,N.headers),aV.logRawRequest(a),d?.debug?.("FORMAT",`${aw} → ${aE} | stream=${aQ}`);let aW=(0,w.J)(N?.headers||{},a),aX=(0,w.Q)(aW,as);if(aX)d?.debug?.("PASSTHROUGH",`${aW} → ${as} | native lossless`),am={...a,model:aG};else{if(!(am=(0,g.GH)(aw,aE,aG,a,aQ,c,as,aV,aF,O,aW)))return(0,p.uw)(az,as,O,!1,!0),aN((0,m.A1)(n.gx.BAD_REQUEST,`Failed to translate request for ${aw} → ${aE}`,void 0,{failureClass:"policy_rejection"}));an=am._toolNameMap,delete am._toolNameMap,am.model=aG}if("claude"===aW&&Array.isArray(am.tools)){let{tools:a,stripped:b}=(0,x.F)(am.tools);b.length>0&&(am.tools=a,d?.debug?.("TOOLDEDUP",`stripped ${b.length}: ${b.slice(0,3).join(", ")}${b.length>3?"...":""}`))}let aY=aX?aw:aE;if(d?.line){let b=N?.body?.model||`${as}/${az}`,e=am.messages?.length||am.input?.length||am.contents?.length||am.request?.contents?.length||a.messages?.length||a.input?.length||0,f=am.tools?.length||a.tools?.length||0,g=aX?`FMT:${aw} passthrough`:`FMT:${aw}→${aE}`,h=d.fmtThink?.((0,E.sS)(am)),i=c?.connectionName||c?.connectionId?.slice(0,8)||"-",j=[`POST ${b} → ${as}/${az}`,g,aQ?"STREAM":"JSON",`${e} MSG`];f>0&&j.push(`${f} TOOL`),h&&j.push(`THINK:${h}`),j.push(`ACC:${i}`);let k=c?.providerSpecificData||{},l=k.vercelRelayUrl||(k.connectionProxyEnabled?k.connectionProxyUrl:null);if(l)try{let a=new URL(l);j.push(`PROXY:${a.hostname}${a.port?`:${a.port}`:""}`)}catch{j.push("PROXY:configured")}d.line(av,"▶",j.join(" \xb7 "))}"tts"===(0,l.OA)(aD,az)&&am.messages&&(am.messages=am.messages.filter(a=>"tool"!==a.role),delete am.tools);let aZ="off"!==String(N?.headers?.[n.SA]||"").toLowerCase(),a$=[],a_=(0,B.B)(am,aZ&&S);if(a_?.hits?.length){let a=a_.bytesBefore-a_.bytesAfter,b=a_.bytesBefore>0?(a/a_.bytesBefore*100).toFixed(0):"0";a$.push(`RTK −${a}B(${b}%)`)}let a0={},a1=await (0,C.SI)(am,{enabled:aZ&&T,url:U,model:aG,format:aY,compressUserMessages:V,diagnostics:a0});if(a1){let a=a1.tokens_before||0,b=a1.tokens_saved||0,c=a>0?(b/a*100).toFixed(1):"0";a$.push(`HEADROOM −${b}tok(${c}%)`),(0,C.cB)(a1,a0)&&d?.warn?.("HEADROOM",`reported token delta, but outbound JSON shrank <5%; provider may bill near-original payload | ${(0,C.O2)(a0)}`)}else aZ&&T&&d?.warn?.("HEADROOM",`skipped: ${a0.reason||"compression unavailable"}${a0.endpoint?` (${a0.endpoint})`:""}`);if(aZ&&W&&X&&((0,y.p)(am,aY,X),a$.push(`CAVEMAN:${X}`)),aZ&&Z&&$&&((0,z.U)(am,aY,$),a$.push(`PONYTAIL:${$}`)),aZ&&_){let a=await (0,D.H)(am,{enabled:!0,format:aY,model:aG,minChars:aa,timeoutMs:ab,transform:ac});a.body&&(am=a.body),a.summary?.applied&&a$.push(`PXPIPE:${a.summary.imageCount}img`);try{ad?.({provider:as,model:az,...a.summary})}catch{}}if(Y)try{let a=await (0,q.qd)();if(a?.length){let b=a.map(a=>a.content).filter(Boolean).join("\n\n");b&&((0,A.e)(am,aY,b),a$.push(`CONTEXT:${a.length}`))}}catch(a){d?.error?.("CONTEXT",`injection failed: ${a.message}`)}a$.length>0&&d?.line&&d.line(av,"⚙",a$.join(" \xb7 ")),(0,p.uw)(az,as,O,!0),(0,p.E5)({model:az,provider:as,connectionId:O,status:"PENDING"}).catch(()=>{});let a2=(0,i.jd)({onDisconnect:a=>{(0,p.uw)(az,as,O,!1),M&&M(a)},onError:()=>(0,p.uw)(az,as,O,!1),log:d,provider:as,model:az,reqTag:av,signal:ag}),a3={connectionProxyEnabled:c?.providerSpecificData?.connectionProxyEnabled===!0,connectionProxyUrl:c?.providerSpecificData?.connectionProxyUrl||"",connectionNoProxy:c?.providerSpecificData?.connectionNoProxy||"",strictProxy:c?.providerSpecificData?.strictProxy===!0,vercelRelayUrl:c?.providerSpecificData?.vercelRelayUrl||""};if(a3.connectionProxyEnabled&&a3.connectionNoProxy){let a=c?.connectionName||c?.connectionId||"unknown";d?.debug?.("PROXY",`${as.toUpperCase()} | ${az} | conn=${a} | no_proxy=${a3.connectionNoProxy}`)}let a4=Number.isFinite(aH.config?.maxRetries)?aH.config.maxRetries:2,a5=Number.isFinite(aH.config?.retryBaseMs)?aH.config.retryBaseMs:800,a6=a=>408===a||429===a&&aH.config?.retrySameCredential429!==!1||a>=500&&a<=599,a7=a=>a?.name==="AbortError"||a2.signal.aborted,a8=()=>{let a=Error("Request aborted");return a.name="AbortError",a},a9=a=>a&&!a7(a),ba=async()=>{aJ=Date.now();let a=new AbortController,b=new AbortController,e=aB.connectTimeoutMs,f=aB.absoluteTimeoutMs,g=setTimeout(()=>{let b=Error("provider response acquisition timed out");b.name="TimeoutError",b.code="STREAM_CONNECT_TIMEOUT",b.phase="connect",b.timeoutMs=e,a.abort(b)},e),h=setTimeout(()=>{let a=Error("provider attempt exceeded the absolute deadline");a.name="TimeoutError",a.code="STREAM_ABSOLUTE_TIMEOUT",a.phase="absolute",a.timeoutMs=f,b.abort(a)},f),i=AbortSignal.any([a2.signal,a.signal,b.signal]);try{return await aH.execute({model:az,body:am,stream:aQ,credentials:c,signal:i,log:d,proxyOptions:a3})}catch(c){if(a.signal.aborted&&!a2.signal.aborted)throw a.signal.reason;if(b.signal.aborted&&!a2.signal.aborted)throw b.signal.reason;throw c}finally{clearTimeout(g),clearTimeout(h)}};async function bb(){let a=null;for(let b=0;b<=a4;b++)try{let a=(0,G.td)(aA),c=Date.now(),f=await ba();if(a.observe("connect",Math.max(1,Date.now()-c)),aK(),f.response.ok||!1===f.retryable||!a6(f.response.status)||b===a4||!await aM({success:!1,status:f.response.status,failureClass:"upstream_transient"}))return aC=a,f;await (0,i.aI)(f.response);let g=a5*Math.pow(2,b);d?.info?.("RETRY",`${as.toUpperCase()} | ${az} | HTTP ${f.response.status}, retry ${b+1}/${a4} in ${g}ms`),await (0,e.setTimeout)(g,void 0,{signal:a2.signal})}catch(f){if(a=f,!a9(f)||b===a4||!await aM({success:!1,failureClass:"network"}))throw f;let c=a5*Math.pow(2,b);d?.info?.("RETRY",`${as.toUpperCase()} | ${az} | ${f.name}, retry ${b+1}/${a4} in ${c}ms`),await (0,e.setTimeout)(c,void 0,{signal:a2.signal})}throw a||Error("execute failed")}try{let a=await bb();ao=a.response,ap=a.url,aq=a.headers,ar=a.transformedBody,aV.logTargetRequest(ap,aq,ar)}catch(g){let b=a7(g),c=["STREAM_CONNECT_TIMEOUT","STREAM_ABSOLUTE_TIMEOUT"].includes(g?.code)?g.code:null,e=c?n.gx.GATEWAY_TIMEOUT:n.gx.BAD_GATEWAY;if((0,p.uw)(az,as,O,!1,!0),(0,p.E5)({model:az,provider:as,connectionId:O,status:`FAILED ${b?499:n.gx.BAD_GATEWAY}`}).catch(()=>{}),(0,p.ox)((0,s.$R)({provider:as,model:az,connectionId:O,adaptive:ak,latency:{ttft:0,total:Date.now()-at},tokens:{prompt_tokens:0,completion_tokens:0},request:(0,s.Fo)(a,aQ),providerRequest:am||null,response:{error:b?"Request aborted":g.message||String(g),status:b?499:e,thinking:null},status:"error"})).catch(()=>{}),b)return a2.handleError(a8()),aN((0,m.A1)(499,"Request aborted",void 0,{failureClass:"client_abort",authLifecycle:{initialStatus:null,refreshAttempted:!1,refreshOutcome:"not_attempted",retryStatus:null}}));let f=(0,m.lR)(g,as,az,e);return d?.errorLine?.(av,"✗",`ERROR ${e} \xb7 ${as}/${az} \xb7 ${Date.now()-at}ms
67
67
  ${f}${g.stack?`
68
- ${g.stack}`:""}`),aN((0,m.A1)(e,f,void 0,{failureClass:c?"upstream_timeout":"network",...c?{providerErrorCode:c}:{},authLifecycle:{initialStatus:null,refreshAttempted:!1,refreshOutcome:"not_attempted",retryStatus:null}}))}let bc={initialStatus:ao.status,refreshAttempted:!1,refreshOutcome:"not_attempted",retryStatus:null},bd=!1,be=ao.status===n.gx.UNAUTHORIZED||ao.status===n.gx.FORBIDDEN&&aH.config?.refreshOnForbidden!==!1;if(!aH.noAuth&&be){bc.refreshAttempted=!0;try{let a=await (0,j.qZ)(()=>aH.refreshCredentials(c,d,a3,a2.signal),3,d,a2.signal);if(a?.accessToken||a?.copilotToken){if(I)try{let b=await I(a);if("kiro"===as&&!1===b){let a=Error("Kiro refreshed credential could not be persisted");throw a.name="KiroRefreshTransientError",a.code="PERSIST_REFRESH_FAILED",a.status=n.gx.BAD_GATEWAY,a.permanent=!1,a}}catch(a){if("kiro"===as){if(a?.code==="PERSIST_REFRESH_FAILED")throw a;let b=Error("Kiro refreshed credential could not be persisted");throw b.name="KiroRefreshTransientError",b.code="PERSIST_REFRESH_FAILED",b.status=n.gx.BAD_GATEWAY,b.permanent=!1,b}d?.warn?.("TOKEN",`onCredentialsRefreshed failed: ${a.message}`)}if(bc.refreshOutcome="succeeded",d?.line?.(av,"\uD83D\uDD11",`TOKEN REFRESHED \xb7 ${as}/${az}`),Object.assign(c,a),await aM({success:!1,status:ao.status,failureClass:"authentication"}))try{let a=(0,G.td)(aA),b=Date.now(),c=await ba();if(a.observe("connect",Math.max(1,Date.now()-b)),!c?.response)throw Error("Token refresh retry returned no response");aK(),await (0,i.aI)(ao),ao=c.response,ap=c.url,aq=c.headers,ar=c.transformedBody,aC=a,bc.retryStatus=ao.status,ao.ok||d?.warn?.("TOKEN",`${as.toUpperCase()} | retry after refresh returned HTTP ${ao.status}`)}catch(a){if(a7(a))return await (0,i.aI)(ao),(0,p.uw)(az,as,O,!1,!0),(0,p.E5)({model:az,provider:as,connectionId:O,status:"FAILED 499"}).catch(()=>{}),a2.handleError(a8()),aN((0,m.A1)(499,"Request aborted",void 0,{failureClass:"client_abort",authLifecycle:bc}));d?.warn?.("TOKEN",`${as.toUpperCase()} | retry after refresh failed due to a transport error`),await (0,i.aI)(ao),ao=new Response("Upstream request failed after credential refresh",{status:n.gx.BAD_GATEWAY,headers:{"Content-Type":"text/plain; charset=utf-8"}}),bc.retryStatus=n.gx.BAD_GATEWAY,bd=!0}else d?.warn?.("TOKEN",`${as.toUpperCase()} | retry after refresh skipped: attempt budget exhausted`)}else bc.refreshOutcome="transient_failed",d?.warn?.("TOKEN",`${as.toUpperCase()} | refresh failed`)}catch(a){if(a7(a))return await (0,i.aI)(ao),(0,p.uw)(az,as,O,!1,!0),(0,p.E5)({model:az,provider:as,connectionId:O,status:"FAILED 499"}).catch(()=>{}),a2.handleError(a8()),aN((0,m.A1)(499,"Request aborted",void 0,{failureClass:"client_abort",authLifecycle:bc}));bc.refreshOutcome=a?.permanent===!0?"rejected":"transient_failed",d?.warn?.("TOKEN",`${as.toUpperCase()} | refresh threw: ${a.message}`)}}if(!ao.ok){a2.cleanup(),(0,p.uw)(az,as,O,!1,!0);let{statusCode:b,message:c,resetsAtMs:e,...f}=await (0,m.zL)(ao,aH);(0,p.E5)({model:az,provider:as,connectionId:O,status:`FAILED ${b}`}).catch(()=>{}),(0,p.ox)((0,s.$R)({provider:as,model:az,connectionId:O,adaptive:ak,latency:{ttft:0,total:Date.now()-at},tokens:{prompt_tokens:0,completion_tokens:0},request:(0,s.Fo)(a,aQ),providerRequest:ar||am||null,response:{error:c,status:b,thinking:null},status:"error"})).catch(()=>{});let g=(0,m.lR)(Error(c),as,az,b),h=ap?`
69
- URL: ${ap}`:"";d?.errorLine?.(av,"✗",`ERROR ${b} \xb7 ${as}/${az} \xb7 ${Date.now()-at}ms${h}
70
- ${g}`),aV.logError(Error(c),ar||am);let i=f.failureClass;bd?i="upstream_transient":"rejected"===bc.refreshOutcome?i="reauth_required":"succeeded"===bc.refreshOutcome&&bc.retryStatus===n.gx.UNAUTHORIZED&&(i="credential_rejected");let j={...f,...i?{failureClass:i}:{},authLifecycle:bc};return aN((0,m.A1)(b,g,e,j))}let bf=async()=>(aL(),aC.finish({success:!0,totalMs:Date.now()-at}),await aI?.finish?.({success:!0}),aI?K?.(aI):K?.()),bg=async a=>(aC.finish({success:!1,totalMs:Date.now()-at}),await aI?.finish?.({success:!1,failure:a}),aI?L?.(a,aI):L?.(a)),bh={provider:as,model:az,body:a,stream:aQ,translatedBody:am,finalBody:ar,requestStartTime:at,connectionId:O,apiKey:Q,clientRawRequest:N,adaptive:ak,onRequestSuccess:bf,onStreamFailure:bg,onSemanticCommit:aL,latencyRecorder:aC,reqTag:av,log:d},bi=a=>(0,p.E5)({model:az,provider:as,connectionId:O,...a}).catch(()=>{}),bj=()=>(0,p.uw)(az,as,O,!1);if(!aO&&aP){let a=await (0,t.I9)({...bh,providerResponse:ao,sourceFormat:aw,targetFormat:aE,trackDone:bj,appendLog:bi});if(a)return a2.handleComplete(),a.success?a:aN(a)}if(!aQ){let a=await (0,u.N)({...bh,providerResponse:ao,sourceFormat:aw,targetFormat:aE,reqLogger:aV,toolNameMap:an,trackDone:bj,appendLog:bi});return a2.handleComplete(),a.success?a:aN(a)}let{onStreamComplete:bk,streamDetailId:bl}=(0,v.$)({...bh});return(0,v.M)({...bh,providerResponse:ao,sourceFormat:aw,targetFormat:aE,userAgent:P,reqLogger:aV,toolNameMap:an,streamController:a2,onStreamComplete:bk,streamDetailId:bl,timeoutPolicy:{...aB,absoluteStartedAtMs:aJ}})}r=(I.then?(await I)():I)[0],d()}catch(a){d(a)}})},99415:(a,b,c)=>{c.d(b,{e:()=>e});var d=c(14170);function e(a,b,c){if(a&&c&&"string"==typeof c)switch(b){case d.h.CLAUDE:!function(a,b){if("string"==typeof a.system&&a.system.length>0){a.system=`${b}
68
+ ${g.stack}`:""}`),aN((0,m.A1)(e,f,void 0,{failureClass:c?"upstream_timeout":"network",...c?{providerErrorCode:c}:{},authLifecycle:{initialStatus:null,refreshAttempted:!1,refreshOutcome:"not_attempted",retryStatus:null}}))}let bc={initialStatus:ao.status,refreshAttempted:!1,refreshOutcome:"not_attempted",retryStatus:null},bd=!1,be=null;ao.status===n.gx.FORBIDDEN&&"function"==typeof ao.clone&&(be=await (0,m.zL)(ao.clone(),aH));let bf=ao.status===n.gx.UNAUTHORIZED||ao.status===n.gx.FORBIDDEN&&aH.config?.refreshOnForbidden!==!1&&be?.refreshRecommended!==!1;if(!aH.noAuth&&bf){bc.refreshAttempted=!0;try{let a=await (0,j.qZ)(()=>aH.refreshCredentials(c,d,a3,a2.signal),3,d,a2.signal);if(a?.accessToken||a?.copilotToken){if(I)try{let b=await I(a);if("kiro"===as&&!1===b){let a=Error("Kiro refreshed credential could not be persisted");throw a.name="KiroRefreshTransientError",a.code="PERSIST_REFRESH_FAILED",a.status=n.gx.BAD_GATEWAY,a.permanent=!1,a}}catch(a){if("kiro"===as){if(a?.code==="PERSIST_REFRESH_FAILED")throw a;let b=Error("Kiro refreshed credential could not be persisted");throw b.name="KiroRefreshTransientError",b.code="PERSIST_REFRESH_FAILED",b.status=n.gx.BAD_GATEWAY,b.permanent=!1,b}d?.warn?.("TOKEN",`onCredentialsRefreshed failed: ${a.message}`)}if(bc.refreshOutcome="succeeded",d?.line?.(av,"\uD83D\uDD11",`TOKEN REFRESHED \xb7 ${as}/${az}`),Object.assign(c,a),await aM({success:!1,status:ao.status,failureClass:"authentication"}))try{let a=(0,G.td)(aA),b=Date.now(),c=await ba();if(a.observe("connect",Math.max(1,Date.now()-b)),!c?.response)throw Error("Token refresh retry returned no response");aK(),await (0,i.aI)(ao),ao=c.response,ap=c.url,aq=c.headers,ar=c.transformedBody,aC=a,be=null,bc.retryStatus=ao.status,ao.ok||d?.warn?.("TOKEN",`${as.toUpperCase()} | retry after refresh returned HTTP ${ao.status}`)}catch(a){if(a7(a))return await (0,i.aI)(ao),(0,p.uw)(az,as,O,!1,!0),(0,p.E5)({model:az,provider:as,connectionId:O,status:"FAILED 499"}).catch(()=>{}),a2.handleError(a8()),aN((0,m.A1)(499,"Request aborted",void 0,{failureClass:"client_abort",authLifecycle:bc}));d?.warn?.("TOKEN",`${as.toUpperCase()} | retry after refresh failed due to a transport error`),await (0,i.aI)(ao),ao=new Response("Upstream request failed after credential refresh",{status:n.gx.BAD_GATEWAY,headers:{"Content-Type":"text/plain; charset=utf-8"}}),bc.retryStatus=n.gx.BAD_GATEWAY,bd=!0}else d?.warn?.("TOKEN",`${as.toUpperCase()} | retry after refresh skipped: attempt budget exhausted`)}else bc.refreshOutcome="transient_failed",d?.warn?.("TOKEN",`${as.toUpperCase()} | refresh failed`)}catch(a){if(a7(a))return await (0,i.aI)(ao),(0,p.uw)(az,as,O,!1,!0),(0,p.E5)({model:az,provider:as,connectionId:O,status:"FAILED 499"}).catch(()=>{}),a2.handleError(a8()),aN((0,m.A1)(499,"Request aborted",void 0,{failureClass:"client_abort",authLifecycle:bc}));bc.refreshOutcome=a?.permanent===!0?"rejected":"transient_failed",d?.warn?.("TOKEN",`${as.toUpperCase()} | refresh threw: ${a.message}`)}}if(!ao.ok){a2.cleanup(),(0,p.uw)(az,as,O,!1,!0);let{statusCode:b,message:c,resetsAtMs:e,refreshRecommended:f,...g}=be||await (0,m.zL)(ao,aH);(0,p.E5)({model:az,provider:as,connectionId:O,status:`FAILED ${b}`}).catch(()=>{}),(0,p.ox)((0,s.$R)({provider:as,model:az,connectionId:O,adaptive:ak,latency:{ttft:0,total:Date.now()-at},tokens:{prompt_tokens:0,completion_tokens:0},request:(0,s.Fo)(a,aQ),providerRequest:ar||am||null,response:{error:c,status:b,thinking:null},status:"error"})).catch(()=>{});let h=(0,m.lR)(Error(c),as,az,b),i=ap?`
69
+ URL: ${ap}`:"";d?.errorLine?.(av,"✗",`ERROR ${b} \xb7 ${as}/${az} \xb7 ${Date.now()-at}ms${i}
70
+ ${h}`),aV.logError(Error(c),ar||am);let j=g.failureClass;bd?j="upstream_transient":"rejected"===bc.refreshOutcome?j="reauth_required":"succeeded"===bc.refreshOutcome&&bc.retryStatus===n.gx.UNAUTHORIZED&&(j="credential_rejected");let k={...g,...j?{failureClass:j}:{},authLifecycle:bc};return aN((0,m.A1)(b,h,e,k))}let bg=async()=>(aL(),aC.finish({success:!0,totalMs:Date.now()-at}),await aI?.finish?.({success:!0}),aI?K?.(aI):K?.()),bh=async a=>(aC.finish({success:!1,totalMs:Date.now()-at}),await aI?.finish?.({success:!1,failure:a}),aI?L?.(a,aI):L?.(a)),bi={provider:as,model:az,body:a,stream:aQ,translatedBody:am,finalBody:ar,requestStartTime:at,connectionId:O,apiKey:Q,clientRawRequest:N,adaptive:ak,onRequestSuccess:bg,onStreamFailure:bh,onSemanticCommit:aL,latencyRecorder:aC,reqTag:av,log:d},bj=a=>(0,p.E5)({model:az,provider:as,connectionId:O,...a}).catch(()=>{}),bk=()=>(0,p.uw)(az,as,O,!1);if(!aO&&aP){let a=await (0,t.I9)({...bi,providerResponse:ao,sourceFormat:aw,targetFormat:aE,trackDone:bk,appendLog:bj});if(a)return a2.handleComplete(),a.success?a:aN(a)}if(!aQ){let a=await (0,u.N)({...bi,providerResponse:ao,sourceFormat:aw,targetFormat:aE,reqLogger:aV,toolNameMap:an,trackDone:bk,appendLog:bj});return a2.handleComplete(),a.success?a:aN(a)}let{onStreamComplete:bl,streamDetailId:bm}=(0,v.$)({...bi});return(0,v.M)({...bi,providerResponse:ao,sourceFormat:aw,targetFormat:aE,userAgent:P,reqLogger:aV,toolNameMap:an,streamController:a2,onStreamComplete:bl,streamDetailId:bm,timeoutPolicy:{...aB,absoluteStartedAtMs:aJ}})}r=(I.then?(await I)():I)[0],d()}catch(a){d(a)}})},99415:(a,b,c)=>{c.d(b,{e:()=>e});var d=c(14170);function e(a,b,c){if(a&&c&&"string"==typeof c)switch(b){case d.h.CLAUDE:!function(a,b){if("string"==typeof a.system&&a.system.length>0){a.system=`${b}
71
71
 
72
72
  ${a.system}`;return}Array.isArray(a.system)?a.system.unshift({type:"text",text:b}):a.system=b}(a,c);return;case d.h.GEMINI:case d.h.GEMINI_CLI:case d.h.VERTEX:case d.h.ANTIGRAVITY:var e,f;let g,h,i;e=a,f=c,g=e.request&&"object"==typeof e.request?e.request:e,h=Object.prototype.hasOwnProperty.call(g,"system_instruction")?"system_instruction":"systemInstruction",(i=g[h])&&Array.isArray(i.parts)?i.parts.unshift({text:f}):g[h]={parts:[{text:f}]};return;default:!function(a,b){var c,d;if("string"==typeof a.instructions){a.instructions=a.instructions?`${b}
73
73