omniroute 2.2.6 → 2.2.8

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 (232) hide show
  1. package/app/.next/BUILD_ID +1 -1
  2. package/app/.next/app-path-routes-manifest.json +41 -41
  3. package/app/.next/build-manifest.json +2 -2
  4. package/app/.next/prerender-manifest.json +3 -3
  5. package/app/.next/server/app/(dashboard)/dashboard/a2a/page_client-reference-manifest.js +1 -1
  6. package/app/.next/server/app/(dashboard)/dashboard/agents/page_client-reference-manifest.js +1 -1
  7. package/app/.next/server/app/(dashboard)/dashboard/analytics/page_client-reference-manifest.js +1 -1
  8. package/app/.next/server/app/(dashboard)/dashboard/api-manager/page_client-reference-manifest.js +1 -1
  9. package/app/.next/server/app/(dashboard)/dashboard/audit-log/page_client-reference-manifest.js +1 -1
  10. package/app/.next/server/app/(dashboard)/dashboard/auto-combo/page_client-reference-manifest.js +1 -1
  11. package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  12. package/app/.next/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  13. package/app/.next/server/app/(dashboard)/dashboard/costs/page_client-reference-manifest.js +1 -1
  14. package/app/.next/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  15. package/app/.next/server/app/(dashboard)/dashboard/health/page_client-reference-manifest.js +1 -1
  16. package/app/.next/server/app/(dashboard)/dashboard/limits/page_client-reference-manifest.js +1 -1
  17. package/app/.next/server/app/(dashboard)/dashboard/logs/page_client-reference-manifest.js +1 -1
  18. package/app/.next/server/app/(dashboard)/dashboard/mcp/page_client-reference-manifest.js +1 -1
  19. package/app/.next/server/app/(dashboard)/dashboard/media/page_client-reference-manifest.js +1 -1
  20. package/app/.next/server/app/(dashboard)/dashboard/onboarding/page_client-reference-manifest.js +1 -1
  21. package/app/.next/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  22. package/app/.next/server/app/(dashboard)/dashboard/playground/page_client-reference-manifest.js +1 -1
  23. package/app/.next/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  24. package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  25. package/app/.next/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  26. package/app/.next/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  27. package/app/.next/server/app/(dashboard)/dashboard/settings/page_client-reference-manifest.js +1 -1
  28. package/app/.next/server/app/(dashboard)/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  29. package/app/.next/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  30. package/app/.next/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  31. package/app/.next/server/app/.well-known/agent.json/route_client-reference-manifest.js +1 -1
  32. package/app/.next/server/app/400/page_client-reference-manifest.js +1 -1
  33. package/app/.next/server/app/401/page_client-reference-manifest.js +1 -1
  34. package/app/.next/server/app/403/page_client-reference-manifest.js +1 -1
  35. package/app/.next/server/app/408/page_client-reference-manifest.js +1 -1
  36. package/app/.next/server/app/429/page_client-reference-manifest.js +1 -1
  37. package/app/.next/server/app/500/page_client-reference-manifest.js +1 -1
  38. package/app/.next/server/app/502/page_client-reference-manifest.js +1 -1
  39. package/app/.next/server/app/503/page_client-reference-manifest.js +1 -1
  40. package/app/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  41. package/app/.next/server/app/_global-error.html +2 -2
  42. package/app/.next/server/app/_global-error.rsc +1 -1
  43. package/app/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  44. package/app/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  45. package/app/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  46. package/app/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  47. package/app/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  48. package/app/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  49. package/app/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  50. package/app/.next/server/app/a2a/route_client-reference-manifest.js +1 -1
  51. package/app/.next/server/app/api/a2a/status/route_client-reference-manifest.js +1 -1
  52. package/app/.next/server/app/api/a2a/tasks/[id]/cancel/route_client-reference-manifest.js +1 -1
  53. package/app/.next/server/app/api/a2a/tasks/[id]/route_client-reference-manifest.js +1 -1
  54. package/app/.next/server/app/api/a2a/tasks/route_client-reference-manifest.js +1 -1
  55. package/app/.next/server/app/api/acp/agents/route_client-reference-manifest.js +1 -1
  56. package/app/.next/server/app/api/auth/login/route_client-reference-manifest.js +1 -1
  57. package/app/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
  58. package/app/.next/server/app/api/auth/status/route_client-reference-manifest.js +1 -1
  59. package/app/.next/server/app/api/cache/route_client-reference-manifest.js +1 -1
  60. package/app/.next/server/app/api/cache/stats/route_client-reference-manifest.js +1 -1
  61. package/app/.next/server/app/api/cli-tools/antigravity-mitm/alias/route.js +2 -2
  62. package/app/.next/server/app/api/cli-tools/antigravity-mitm/alias/route_client-reference-manifest.js +1 -1
  63. package/app/.next/server/app/api/cli-tools/antigravity-mitm/route.js +1 -1
  64. package/app/.next/server/app/api/cli-tools/antigravity-mitm/route_client-reference-manifest.js +1 -1
  65. package/app/.next/server/app/api/cli-tools/backups/route.js +1 -1
  66. package/app/.next/server/app/api/cli-tools/backups/route_client-reference-manifest.js +1 -1
  67. package/app/.next/server/app/api/cli-tools/claude-settings/route.js +1 -1
  68. package/app/.next/server/app/api/cli-tools/claude-settings/route_client-reference-manifest.js +1 -1
  69. package/app/.next/server/app/api/cli-tools/cline-settings/route.js +2 -2
  70. package/app/.next/server/app/api/cli-tools/cline-settings/route_client-reference-manifest.js +1 -1
  71. package/app/.next/server/app/api/cli-tools/codex-profiles/route.js +1 -1
  72. package/app/.next/server/app/api/cli-tools/codex-profiles/route_client-reference-manifest.js +1 -1
  73. package/app/.next/server/app/api/cli-tools/codex-settings/route.js +2 -2
  74. package/app/.next/server/app/api/cli-tools/codex-settings/route_client-reference-manifest.js +1 -1
  75. package/app/.next/server/app/api/cli-tools/droid-settings/route.js +1 -1
  76. package/app/.next/server/app/api/cli-tools/droid-settings/route_client-reference-manifest.js +1 -1
  77. package/app/.next/server/app/api/cli-tools/guide-settings/[toolId]/route_client-reference-manifest.js +1 -1
  78. package/app/.next/server/app/api/cli-tools/kilo-settings/route.js +2 -2
  79. package/app/.next/server/app/api/cli-tools/kilo-settings/route_client-reference-manifest.js +1 -1
  80. package/app/.next/server/app/api/cli-tools/openclaw/auto-order/route_client-reference-manifest.js +1 -1
  81. package/app/.next/server/app/api/cli-tools/openclaw-settings/route.js +2 -2
  82. package/app/.next/server/app/api/cli-tools/openclaw-settings/route_client-reference-manifest.js +1 -1
  83. package/app/.next/server/app/api/cli-tools/runtime/[toolId]/route.js +2 -2
  84. package/app/.next/server/app/api/cli-tools/runtime/[toolId]/route_client-reference-manifest.js +1 -1
  85. package/app/.next/server/app/api/cli-tools/status/route.js +1 -1
  86. package/app/.next/server/app/api/cli-tools/status/route_client-reference-manifest.js +1 -1
  87. package/app/.next/server/app/api/cloud/auth/route_client-reference-manifest.js +1 -1
  88. package/app/.next/server/app/api/cloud/credentials/update/route_client-reference-manifest.js +1 -1
  89. package/app/.next/server/app/api/cloud/model/resolve/route_client-reference-manifest.js +1 -1
  90. package/app/.next/server/app/api/cloud/models/alias/route_client-reference-manifest.js +1 -1
  91. package/app/.next/server/app/api/combos/[id]/route_client-reference-manifest.js +1 -1
  92. package/app/.next/server/app/api/combos/auto/route_client-reference-manifest.js +1 -1
  93. package/app/.next/server/app/api/combos/metrics/route_client-reference-manifest.js +1 -1
  94. package/app/.next/server/app/api/combos/route_client-reference-manifest.js +1 -1
  95. package/app/.next/server/app/api/combos/test/route_client-reference-manifest.js +1 -1
  96. package/app/.next/server/app/api/compliance/audit-log/route_client-reference-manifest.js +1 -1
  97. package/app/.next/server/app/api/db-backups/export/route_client-reference-manifest.js +1 -1
  98. package/app/.next/server/app/api/db-backups/exportAll/route_client-reference-manifest.js +1 -1
  99. package/app/.next/server/app/api/db-backups/import/route_client-reference-manifest.js +1 -1
  100. package/app/.next/server/app/api/db-backups/route_client-reference-manifest.js +1 -1
  101. package/app/.next/server/app/api/evals/[suiteId]/route_client-reference-manifest.js +1 -1
  102. package/app/.next/server/app/api/evals/route_client-reference-manifest.js +1 -1
  103. package/app/.next/server/app/api/fallback/chains/route_client-reference-manifest.js +1 -1
  104. package/app/.next/server/app/api/init/route_client-reference-manifest.js +1 -1
  105. package/app/.next/server/app/api/keys/[id]/route_client-reference-manifest.js +1 -1
  106. package/app/.next/server/app/api/keys/route_client-reference-manifest.js +1 -1
  107. package/app/.next/server/app/api/logs/console/route_client-reference-manifest.js +1 -1
  108. package/app/.next/server/app/api/mcp/audit/route_client-reference-manifest.js +1 -1
  109. package/app/.next/server/app/api/mcp/audit/stats/route_client-reference-manifest.js +1 -1
  110. package/app/.next/server/app/api/mcp/sse/route_client-reference-manifest.js +1 -1
  111. package/app/.next/server/app/api/mcp/status/route_client-reference-manifest.js +1 -1
  112. package/app/.next/server/app/api/mcp/stream/route_client-reference-manifest.js +1 -1
  113. package/app/.next/server/app/api/mcp/tools/route_client-reference-manifest.js +1 -1
  114. package/app/.next/server/app/api/models/alias/route_client-reference-manifest.js +1 -1
  115. package/app/.next/server/app/api/models/availability/route_client-reference-manifest.js +1 -1
  116. package/app/.next/server/app/api/models/catalog/route_client-reference-manifest.js +1 -1
  117. package/app/.next/server/app/api/models/openrouter-catalog/route_client-reference-manifest.js +1 -1
  118. package/app/.next/server/app/api/models/route.js +1 -1
  119. package/app/.next/server/app/api/models/route_client-reference-manifest.js +1 -1
  120. package/app/.next/server/app/api/monitoring/health/route.js +1 -1
  121. package/app/.next/server/app/api/monitoring/health/route_client-reference-manifest.js +1 -1
  122. package/app/.next/server/app/api/oauth/[provider]/[action]/route_client-reference-manifest.js +1 -1
  123. package/app/.next/server/app/api/oauth/cursor/auto-import/route_client-reference-manifest.js +1 -1
  124. package/app/.next/server/app/api/oauth/cursor/import/route_client-reference-manifest.js +1 -1
  125. package/app/.next/server/app/api/oauth/kiro/auto-import/route_client-reference-manifest.js +1 -1
  126. package/app/.next/server/app/api/oauth/kiro/import/route_client-reference-manifest.js +1 -1
  127. package/app/.next/server/app/api/oauth/kiro/social-authorize/route_client-reference-manifest.js +1 -1
  128. package/app/.next/server/app/api/oauth/kiro/social-exchange/route_client-reference-manifest.js +1 -1
  129. package/app/.next/server/app/api/policies/route_client-reference-manifest.js +1 -1
  130. package/app/.next/server/app/api/pricing/defaults/route_client-reference-manifest.js +1 -1
  131. package/app/.next/server/app/api/pricing/models/route_client-reference-manifest.js +1 -1
  132. package/app/.next/server/app/api/pricing/route_client-reference-manifest.js +1 -1
  133. package/app/.next/server/app/api/provider-metrics/route_client-reference-manifest.js +1 -1
  134. package/app/.next/server/app/api/provider-models/route_client-reference-manifest.js +1 -1
  135. package/app/.next/server/app/api/provider-nodes/[id]/route_client-reference-manifest.js +1 -1
  136. package/app/.next/server/app/api/provider-nodes/route_client-reference-manifest.js +1 -1
  137. package/app/.next/server/app/api/provider-nodes/validate/route_client-reference-manifest.js +1 -1
  138. package/app/.next/server/app/api/providers/[id]/models/route_client-reference-manifest.js +1 -1
  139. package/app/.next/server/app/api/providers/[id]/route_client-reference-manifest.js +1 -1
  140. package/app/.next/server/app/api/providers/[id]/test/route_client-reference-manifest.js +1 -1
  141. package/app/.next/server/app/api/providers/client/route_client-reference-manifest.js +1 -1
  142. package/app/.next/server/app/api/providers/route.js +1 -1
  143. package/app/.next/server/app/api/providers/route_client-reference-manifest.js +1 -1
  144. package/app/.next/server/app/api/providers/test-batch/route_client-reference-manifest.js +1 -1
  145. package/app/.next/server/app/api/providers/validate/route_client-reference-manifest.js +1 -1
  146. package/app/.next/server/app/api/rate-limit/route_client-reference-manifest.js +1 -1
  147. package/app/.next/server/app/api/rate-limits/route.js +1 -1
  148. package/app/.next/server/app/api/rate-limits/route_client-reference-manifest.js +1 -1
  149. package/app/.next/server/app/api/resilience/reset/route_client-reference-manifest.js +1 -1
  150. package/app/.next/server/app/api/resilience/route_client-reference-manifest.js +1 -1
  151. package/app/.next/server/app/api/restart/route_client-reference-manifest.js +1 -1
  152. package/app/.next/server/app/api/sessions/route_client-reference-manifest.js +1 -1
  153. package/app/.next/server/app/api/settings/background-degradation/route_client-reference-manifest.js +1 -1
  154. package/app/.next/server/app/api/settings/combo-defaults/route_client-reference-manifest.js +1 -1
  155. package/app/.next/server/app/api/settings/ip-filter/route_client-reference-manifest.js +1 -1
  156. package/app/.next/server/app/api/settings/model-aliases/route_client-reference-manifest.js +1 -1
  157. package/app/.next/server/app/api/settings/proxy/route_client-reference-manifest.js +1 -1
  158. package/app/.next/server/app/api/settings/proxy/test/route_client-reference-manifest.js +1 -1
  159. package/app/.next/server/app/api/settings/require-login/route_client-reference-manifest.js +1 -1
  160. package/app/.next/server/app/api/settings/route_client-reference-manifest.js +1 -1
  161. package/app/.next/server/app/api/settings/system-prompt/route_client-reference-manifest.js +1 -1
  162. package/app/.next/server/app/api/settings/thinking-budget/route_client-reference-manifest.js +1 -1
  163. package/app/.next/server/app/api/shutdown/route_client-reference-manifest.js +1 -1
  164. package/app/.next/server/app/api/storage/health/route_client-reference-manifest.js +1 -1
  165. package/app/.next/server/app/api/sync/cloud/route_client-reference-manifest.js +1 -1
  166. package/app/.next/server/app/api/sync/initialize/route_client-reference-manifest.js +1 -1
  167. package/app/.next/server/app/api/tags/route_client-reference-manifest.js +1 -1
  168. package/app/.next/server/app/api/telemetry/summary/route_client-reference-manifest.js +1 -1
  169. package/app/.next/server/app/api/token-health/route_client-reference-manifest.js +1 -1
  170. package/app/.next/server/app/api/translator/detect/route_client-reference-manifest.js +1 -1
  171. package/app/.next/server/app/api/translator/history/route_client-reference-manifest.js +1 -1
  172. package/app/.next/server/app/api/translator/load/route_client-reference-manifest.js +1 -1
  173. package/app/.next/server/app/api/translator/save/route_client-reference-manifest.js +1 -1
  174. package/app/.next/server/app/api/translator/send/route_client-reference-manifest.js +1 -1
  175. package/app/.next/server/app/api/translator/translate/route_client-reference-manifest.js +1 -1
  176. package/app/.next/server/app/api/usage/[connectionId]/route_client-reference-manifest.js +1 -1
  177. package/app/.next/server/app/api/usage/analytics/route_client-reference-manifest.js +1 -1
  178. package/app/.next/server/app/api/usage/budget/route_client-reference-manifest.js +1 -1
  179. package/app/.next/server/app/api/usage/call-logs/[id]/route_client-reference-manifest.js +1 -1
  180. package/app/.next/server/app/api/usage/call-logs/route_client-reference-manifest.js +1 -1
  181. package/app/.next/server/app/api/usage/history/route_client-reference-manifest.js +1 -1
  182. package/app/.next/server/app/api/usage/logs/route_client-reference-manifest.js +1 -1
  183. package/app/.next/server/app/api/usage/proxy-logs/route_client-reference-manifest.js +1 -1
  184. package/app/.next/server/app/api/usage/quota/route.js +1 -1
  185. package/app/.next/server/app/api/usage/quota/route_client-reference-manifest.js +1 -1
  186. package/app/.next/server/app/api/usage/request-logs/route_client-reference-manifest.js +1 -1
  187. package/app/.next/server/app/api/v1/api/chat/route_client-reference-manifest.js +1 -1
  188. package/app/.next/server/app/api/v1/audio/speech/route_client-reference-manifest.js +1 -1
  189. package/app/.next/server/app/api/v1/audio/transcriptions/route_client-reference-manifest.js +1 -1
  190. package/app/.next/server/app/api/v1/chat/completions/route_client-reference-manifest.js +1 -1
  191. package/app/.next/server/app/api/v1/embeddings/route_client-reference-manifest.js +1 -1
  192. package/app/.next/server/app/api/v1/images/generations/route_client-reference-manifest.js +1 -1
  193. package/app/.next/server/app/api/v1/messages/count_tokens/route_client-reference-manifest.js +1 -1
  194. package/app/.next/server/app/api/v1/messages/route_client-reference-manifest.js +1 -1
  195. package/app/.next/server/app/api/v1/models/route_client-reference-manifest.js +1 -1
  196. package/app/.next/server/app/api/v1/moderations/route_client-reference-manifest.js +1 -1
  197. package/app/.next/server/app/api/v1/music/generations/route_client-reference-manifest.js +1 -1
  198. package/app/.next/server/app/api/v1/providers/[provider]/chat/completions/route_client-reference-manifest.js +1 -1
  199. package/app/.next/server/app/api/v1/providers/[provider]/embeddings/route_client-reference-manifest.js +1 -1
  200. package/app/.next/server/app/api/v1/providers/[provider]/images/generations/route_client-reference-manifest.js +1 -1
  201. package/app/.next/server/app/api/v1/rerank/route_client-reference-manifest.js +1 -1
  202. package/app/.next/server/app/api/v1/responses/route_client-reference-manifest.js +1 -1
  203. package/app/.next/server/app/api/v1/route_client-reference-manifest.js +1 -1
  204. package/app/.next/server/app/api/v1/videos/generations/route_client-reference-manifest.js +1 -1
  205. package/app/.next/server/app/api/v1beta/models/[...path]/route_client-reference-manifest.js +1 -1
  206. package/app/.next/server/app/api/v1beta/models/route_client-reference-manifest.js +1 -1
  207. package/app/.next/server/app/callback/page_client-reference-manifest.js +1 -1
  208. package/app/.next/server/app/docs/page.js +1 -1
  209. package/app/.next/server/app/docs/page_client-reference-manifest.js +1 -1
  210. package/app/.next/server/app/forbidden/page_client-reference-manifest.js +1 -1
  211. package/app/.next/server/app/forgot-password/page_client-reference-manifest.js +1 -1
  212. package/app/.next/server/app/landing/page_client-reference-manifest.js +1 -1
  213. package/app/.next/server/app/login/page_client-reference-manifest.js +1 -1
  214. package/app/.next/server/app/maintenance/page_client-reference-manifest.js +1 -1
  215. package/app/.next/server/app/offline/page_client-reference-manifest.js +1 -1
  216. package/app/.next/server/app/page_client-reference-manifest.js +1 -1
  217. package/app/.next/server/app/privacy/page_client-reference-manifest.js +1 -1
  218. package/app/.next/server/app/status/page_client-reference-manifest.js +1 -1
  219. package/app/.next/server/app/terms/page_client-reference-manifest.js +1 -1
  220. package/app/.next/server/app-paths-manifest.json +41 -41
  221. package/app/.next/server/chunks/1308.js +1 -1
  222. package/app/.next/server/chunks/2767.js +2 -2
  223. package/app/.next/server/chunks/7544.js +1 -1
  224. package/app/.next/server/chunks/7889.js +1 -1
  225. package/app/.next/server/pages/500.html +2 -2
  226. package/app/.next/server/server-reference-manifest.js +1 -1
  227. package/app/.next/server/server-reference-manifest.json +1 -1
  228. package/app/.next/static/chunks/{5846-eb83489f882329cc.js → 5846-dffcd482091ec70d.js} +1 -1
  229. package/app/package.json +1 -1
  230. package/package.json +1 -1
  231. /package/app/.next/static/{0Hkub-B19908tpEtchLIB → ICvq31NSIsd3xIfKuYRQz}/_buildManifest.js +0 -0
  232. /package/app/.next/static/{0Hkub-B19908tpEtchLIB → ICvq31NSIsd3xIfKuYRQz}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- "use strict";exports.id=1308,exports.ids=[293,1308,4163],exports.modules={1308:(a,b,c)=>{c.d(b,{$E:()=>r,Eo:()=>A,Kr:()=>x,UE:()=>y,YO:()=>t,getAllRateLimitStatus:()=>z,mg:()=>q,rh:()=>p});var d=c(57217),e=c.n(d);c(74163);var f=c(83596),g=c(60293);function h(a){return a&&"object"==typeof a&&!Array.isArray(a)?a:{}}function i(a,b=0){let c="number"==typeof a?a:"string"==typeof a&&a.trim().length>0?Number(a):NaN;return Number.isFinite(c)?c:b}let j=new Map,k=new Set,l={},m=null,n=!1,o={maxConcurrent:10,minTime:0,reservoir:null,reservoirRefreshAmount:null,reservoirRefreshInterval:null};async function p(){if(!n){n=!0;try{let{getProviderConnections:a}=await Promise.resolve().then(c.bind(c,22901)),b=await a(),d=0,l=0,m=0;for(let a of b){let b=h(a),c="string"==typeof b.id?b.id:"",n="string"==typeof b.provider?b.provider:"",o=!0===b.isActive,p=!0===b.rateLimitProtection,q=i(b.customRpm,0),r=i(b.customTpm,0);if(c&&n){if(q>0||r>0){k.add(c),m++;let a=`${n}:${c}`,b=q>0?q:g.DEFAULT_API_LIMITS.requestsPerMinute,d=Math.max(0,Math.floor(6e4/b)-10);j.has(a)||j.set(a,new(e())({maxConcurrent:g.DEFAULT_API_LIMITS.concurrentRequests,minTime:d,reservoir:b,reservoirRefreshAmount:b,reservoirRefreshInterval:6e4,id:a}))}else if(p)k.add(c),d++;else if("apikey"===(0,f.oQ)(n)&&o){k.add(c),l++;let a=`${n}:${c}`;j.has(a)||j.set(a,new(e())({maxConcurrent:g.DEFAULT_API_LIMITS.concurrentRequests,minTime:g.DEFAULT_API_LIMITS.minTimeBetweenRequests,reservoir:g.DEFAULT_API_LIMITS.requestsPerMinute,reservoirRefreshAmount:g.DEFAULT_API_LIMITS.requestsPerMinute,reservoirRefreshInterval:6e4,id:a}))}}}(d>0||l>0||m>0)&&console.log(`🛡️ [RATE-LIMIT] Loaded ${d} explicit + ${l} auto-enabled + ${m} custom rpm/tpm protection(s)`),await B()}catch(a){console.error("[RATE-LIMIT] Failed to load settings:",a.message)}}}function q(a){k.add(a)}function r(a){for(let[b]of(k.delete(a),j))if(b.includes(a)){let a=j.get(b);a?.disconnect(),j.delete(b)}}function s(a,b,c=null){let d=c?`${a}:${b}:${c}`:`${a}:${b}`;if(!j.has(d)){let a=new(e())({...o,id:d});a.on("queued",()=>{let b=a.counts();b.QUEUED>0&&console.log(`⏳ [RATE-LIMIT] ${d} — ${b.QUEUED} request(s) queued, ${b.RUNNING} running`)}),j.set(d,a)}return j.get(d)}async function t(a,b,c,d){return k.has(b)?s(a,b,null).schedule(d):d()}let u={limit:"x-ratelimit-limit-requests",remaining:"x-ratelimit-remaining-requests",reset:"x-ratelimit-reset-requests",limitTokens:"x-ratelimit-limit-tokens",remainingTokens:"x-ratelimit-remaining-tokens",resetTokens:"x-ratelimit-reset-tokens",retryAfter:"retry-after",overLimit:"x-ratelimit-over-limit"},v={limit:"anthropic-ratelimit-requests-limit",remaining:"anthropic-ratelimit-requests-remaining",reset:"anthropic-ratelimit-requests-reset",limitTokens:"anthropic-ratelimit-input-tokens-limit",remainingTokens:"anthropic-ratelimit-input-tokens-remaining",resetTokens:"anthropic-ratelimit-input-tokens-reset",retryAfter:"retry-after"};function w(a){if(!a)return null;let b=a.match(/^(?:(\d+)h)?(?:(\d+)m(?!s))?(?:(\d+)s)?(?:(\d+)ms)?$/);if(b){let[,a,c,d,e]=b;return(3600*parseInt(a||0)+60*parseInt(c||0)+parseInt(d||0))*1e3+parseInt(e||0)}let c=parseFloat(a);if(!isNaN(c)&&c>0)return c>17e8?Math.max(0,1e3*c-Date.now()):1e3*c;try{let b=new Date(a);if(!isNaN(b.getTime()))return Math.max(0,b.getTime()-Date.now())}catch{}return null}function x(a,b,d,e,f=null){if(!k.has(b)||!d)return;let g=s(a,b,null),h="claude"===a||"anthropic"===a?v:u,i=a=>"function"==typeof d.get?d.get(a):d[a]||null,j=parseInt(i(h.limit)),n=parseInt(i(h.remaining)),o=i(h.reset),p=i(h.retryAfter),q=i(u.overLimit);if(429===e){let c=w(p)||6e4;console.log(`🚫 [RATE-LIMIT] ${a}:${b.slice(0,8)} — 429 received, pausing for ${Math.ceil(c/1e3)}s`),g.updateSettings({reservoir:0,reservoirRefreshAmount:j||60,reservoirRefreshInterval:c});return}if("yes"===q){console.log(`⚠️ [RATE-LIMIT] ${a}:${b.slice(0,8)} — near capacity, slowing down`),g.updateSettings({minTime:200});return}if(!isNaN(j)&&j>0){var r,t,y;let d=w(o)||6e4,e={minTime:Math.max(0,Math.floor(6e4/j)-10)};!isNaN(n)&&(n<.1*j?(e.reservoir=n,e.reservoirRefreshAmount=j,e.reservoirRefreshInterval=d,console.log(`⚠️ [RATE-LIMIT] ${a}:${b.slice(0,8)} — ${n}/${j} remaining, throttling`)):n>.5*j&&(e.minTime=0,e.reservoir=null,e.reservoirRefreshAmount=null,e.reservoirRefreshInterval=null)),g.updateSettings(e),r=a,t=b,y={limit:j,remaining:n,minTime:e.minTime},l[`${r}:${t}`]={...y,provider:r,connectionId:t,lastUpdated:Date.now()},m||(m=setTimeout(async()=>{m=null;try{let{updateSettings:a}=await Promise.resolve().then(c.bind(c,9679));await a({learnedRateLimits:JSON.stringify(l)}),console.log(`💾 [RATE-LIMIT] Persisted learned limits for ${Object.keys(l).length} provider(s)`)}catch(a){console.error("[RATE-LIMIT] Failed to persist learned limits:",a.message)}},6e4))}}function y(a,b){let c=`${a}:${b}`,d=j.get(c);if(!d)return{enabled:k.has(b),active:!1,queued:0,running:0};let e=d.counts();return{enabled:k.has(b),active:!0,queued:e.QUEUED||0,running:e.RUNNING||0,executing:e.EXECUTING||0,done:e.DONE||0}}function z(){let a={};for(let[b,c]of j){let d=c.counts();a[b]={queued:d.QUEUED||0,running:d.RUNNING||0,executing:d.EXECUTING||0}}return a}function A(){return{...l}}async function B(){try{let{getSettings:a}=await Promise.resolve().then(c.bind(c,9679)),b=await a(),d=b?.learnedRateLimits;if("string"!=typeof d||0===d.trim().length)return;let e=h(JSON.parse(d)),f=0;for(let[a,b]of Object.entries(e)){let c=h(b),d=i(c.lastUpdated,0);if(d>0&&Date.now()-d>864e5)continue;let e="string"==typeof c.connectionId?c.connectionId:"",g="string"==typeof c.provider?c.provider:"",m=i(c.limit,0),n=i(c.remaining,0),o=i(c.minTime,0);if(l[a]={provider:g,connectionId:e,lastUpdated:d,...m>0?{limit:m}:{},...n>=0?{remaining:n}:{},...o>=0?{minTime:o}:{}},e&&k.has(e)){let b=j.get(a);if(b&&m>0){let a=o||Math.max(0,Math.floor(6e4/m)-10);b.updateSettings({minTime:a}),f++}}}f>0&&console.log(`📥 [RATE-LIMIT] Restored ${f} learned rate limit(s) from persistence`)}catch(a){console.error("[RATE-LIMIT] Failed to load persisted limits:",a.message)}}},60293:(a,b,c)=>{c.d(b,{$V:()=>n,EQ:()=>u,Co:()=>m,Bm:()=>w,DEFAULT_API_LIMITS:()=>y,O:()=>t,Uc:()=>p,eo:()=>q,LY:()=>s,MT:()=>j,gx:()=>r,NA:()=>o,xq:()=>l,PROVIDER_PROFILES:()=>x,QS:()=>v,C8:()=>z,TH:()=>k});var d=c(29021),e=c(33873);let f=["clientId","clientSecret","tokenUrl","authUrl","refreshUrl"],g=0,h=null;var i=c(83596);let j=parseInt(process.env.FETCH_TIMEOUT_MS||"120000",10),k=parseInt(process.env.STREAM_IDLE_TIMEOUT_MS||"60000",10),l=(0,i.Z0)();!function(a){let b;if(h&&Date.now()-g<6e4)return;let c=(b=process.env.DATA_DIR||(0,e.join)(process.cwd(),"data"),(0,e.join)(b,"provider-credentials.json"));if(!(0,d.existsSync)(c))return h||console.log("[CREDENTIALS] No external credentials file found, using defaults."),h=a,g=Date.now();try{let b=(0,d.readFileSync)(c,"utf-8"),e=JSON.parse(b),g=0;for(let[b,c]of Object.entries(e)){if(!a[b]){console.log(`[CREDENTIALS] Warning: unknown provider "${b}" in credentials file, skipping.`);continue}if(!c||"object"!=typeof c){console.log(`[CREDENTIALS] Warning: provider "${b}" value must be an object, got ${typeof c}. Skipping.`);continue}for(let d of f)void 0!==c[d]&&(a[b][d]=c[d],g++)}let i=null!==h;console.log(`[CREDENTIALS] ${i?"Reloaded":"Loaded"} external credentials: ${g} field(s) from ${c}`)}catch(a){console.log(`[CREDENTIALS] Error reading credentials file: ${a.message}. Using defaults.`)}h=a,g=Date.now()}(l);let m="You are Claude Code, Anthropic's official CLI for Claude.",n="Please ignore the following [ignore]You are Antigravity, a powerful agentic AI coding assistant designed by the Google Deepmind team working on Advanced Agentic Coding.You are pair programming with a USER to solve their coding task. The task may require creating a new codebase, modifying or debugging an existing codebase, or simply answering a question.**Absolute paths only****Proactiveness**[/ignore]",o={google:{token:"https://oauth2.googleapis.com/token",auth:"https://accounts.google.com/o/oauth2/auth"},openai:{token:"https://auth.openai.com/oauth/token",auth:"https://auth.openai.com/oauth/authorize"},anthropic:{token:"https://console.anthropic.com/v1/oauth/token",auth:"https://console.anthropic.com/v1/oauth/authorize"},qwen:{token:"https://chat.qwen.ai/api/v1/oauth2/token",auth:"https://chat.qwen.ai/api/v1/oauth2/device/code"},iflow:{token:"https://iflow.cn/oauth/token",auth:"https://iflow.cn/oauth"},github:{token:"https://github.com/login/oauth/access_token",auth:"https://github.com/login/oauth/authorize",deviceCode:"https://github.com/login/device/code"}},p=64e3,q=32e3,r={BAD_REQUEST:400,UNAUTHORIZED:401,PAYMENT_REQUIRED:402,FORBIDDEN:403,NOT_FOUND:404,NOT_ACCEPTABLE:406,REQUEST_TIMEOUT:408,RATE_LIMITED:429,SERVER_ERROR:500,BAD_GATEWAY:502,SERVICE_UNAVAILABLE:503,GATEWAY_TIMEOUT:504},s={[r.BAD_REQUEST]:{type:"invalid_request_error",code:"bad_request"},[r.UNAUTHORIZED]:{type:"authentication_error",code:"invalid_api_key"},[r.FORBIDDEN]:{type:"permission_error",code:"insufficient_quota"},[r.NOT_FOUND]:{type:"invalid_request_error",code:"model_not_found"},[r.RATE_LIMITED]:{type:"rate_limit_error",code:"rate_limit_exceeded"},[r.SERVER_ERROR]:{type:"server_error",code:"internal_server_error"},[r.BAD_GATEWAY]:{type:"server_error",code:"bad_gateway"},[r.SERVICE_UNAVAILABLE]:{type:"server_error",code:"service_unavailable"},[r.GATEWAY_TIMEOUT]:{type:"server_error",code:"gateway_timeout"}},t={[r.BAD_REQUEST]:"Bad request",[r.UNAUTHORIZED]:"Invalid API key provided",[r.FORBIDDEN]:"You exceeded your current quota",[r.NOT_FOUND]:"Model not found",[r.RATE_LIMITED]:"Rate limit exceeded",[r.SERVER_ERROR]:"Internal server error",[r.BAD_GATEWAY]:"Bad gateway - upstream provider error",[r.SERVICE_UNAVAILABLE]:"Service temporarily unavailable",[r.GATEWAY_TIMEOUT]:"Gateway timeout"},u={base:1e3,max:12e4,maxLevel:15},v={QUOTA_EXHAUSTED:"quota_exhausted",RATE_LIMIT_EXCEEDED:"rate_limit_exceeded",MODEL_CAPACITY:"model_capacity",SERVER_ERROR:"server_error",AUTH_ERROR:"auth_error",UNKNOWN:"unknown"},w={unauthorized:12e4,paymentRequired:12e4,notFound:12e4,transientInitial:5e3,transientMax:6e4,transient:5e3,requestNotAllowed:5e3,rateLimit:12e4,serviceUnavailable:2e3,authExpired:12e4},x={oauth:{transientCooldown:5e3,rateLimitCooldown:6e4,maxBackoffLevel:8,circuitBreakerThreshold:3,circuitBreakerReset:6e4},apikey:{transientCooldown:3e3,rateLimitCooldown:0,maxBackoffLevel:5,circuitBreakerThreshold:5,circuitBreakerReset:3e4}},y={requestsPerMinute:100,minTimeBetweenRequests:200,concurrentRequests:10},z=["Please write a 5-10 word title for the following conversation:"]},74163:(a,b,c)=>{c.d(b,{AO:()=>m,Qo:()=>p,R7:()=>i,T_:()=>f,UY:()=>o,getAllModelLockouts:()=>j,hk:()=>l,vp:()=>n});var d=c(60293),e=c(83596);function f(a){let b=(0,e.oQ)(a);return d.PROVIDER_PROFILES[b]??d.PROVIDER_PROFILES.apikey}let g=new Map,h=null;function i(a,b,c,d,e){if(!c)return;if(!h)try{h=setInterval(()=>{let a=Date.now();for(let[b,c]of g)a>c.until&&g.delete(b)},15e3),"object"==typeof h&&"unref"in h&&h.unref?.()}catch{}let f=`${a}:${b}:${c}`;g.set(f,{reason:d,until:Date.now()+e,lockedAt:Date.now()})}function j(){let a=Date.now(),b=[];for(let[c,d]of g)if(a<=d.until){let[e,f,g]=c.split(":");b.push({provider:e,connectionId:f,model:g,reason:d.reason,remainingMs:d.until-a})}return b}function k(a=0){return Math.min(d.EQ.base*Math.pow(2,a),d.EQ.max)}function l(a,b,c=0,e=null,g=null){if(b){let a="string"==typeof b?b:JSON.stringify(b),e=a.toLowerCase();if(e.includes("no credentials"))return{shouldFallback:!0,cooldownMs:d.Bm.notFound,reason:d.QS.AUTH_ERROR};if(e.includes("request not allowed"))return{shouldFallback:!0,cooldownMs:d.Bm.requestNotAllowed,reason:d.QS.RATE_LIMIT_EXCEEDED};if(e.includes("rate limit")||e.includes("too many requests")||e.includes("quota exceeded")||e.includes("capacity")||e.includes("overloaded")){let b=Math.min(c+1,d.EQ.maxLevel),e=function(a){if(!a)return d.QS.UNKNOWN;let b=String(a).toLowerCase();return b.includes("quota exceeded")||b.includes("quota depleted")||b.includes("billing")?d.QS.QUOTA_EXHAUSTED:b.includes("rate limit")||b.includes("too many requests")||b.includes("rate_limit")?d.QS.RATE_LIMIT_EXCEEDED:b.includes("capacity")||b.includes("overloaded")||b.includes("resource exhausted")?d.QS.MODEL_CAPACITY:b.includes("unauthorized")||b.includes("invalid api key")||b.includes("authentication")?d.QS.AUTH_ERROR:b.includes("server error")||b.includes("internal error")?d.QS.SERVER_ERROR:d.QS.UNKNOWN}(a);return{shouldFallback:!0,cooldownMs:k(c),newBackoffLevel:b,reason:e}}}if(a===d.gx.UNAUTHORIZED)return{shouldFallback:!0,cooldownMs:d.Bm.unauthorized,reason:d.QS.AUTH_ERROR};if(a===d.gx.PAYMENT_REQUIRED||a===d.gx.FORBIDDEN)return{shouldFallback:!0,cooldownMs:d.Bm.paymentRequired,reason:d.QS.QUOTA_EXHAUSTED};if(a===d.gx.NOT_FOUND)return{shouldFallback:!0,cooldownMs:d.Bm.notFound,reason:d.QS.UNKNOWN};if(a===d.gx.RATE_LIMITED){let a=Math.min(c+1,d.EQ.maxLevel);return{shouldFallback:!0,cooldownMs:k(c),newBackoffLevel:a,reason:d.QS.RATE_LIMIT_EXCEEDED}}if([d.gx.NOT_ACCEPTABLE,d.gx.REQUEST_TIMEOUT,d.gx.SERVER_ERROR,d.gx.BAD_GATEWAY,d.gx.SERVICE_UNAVAILABLE,d.gx.GATEWAY_TIMEOUT].includes(a)){let a=g?f(g):null,b=a?.transientCooldown??d.Bm.transientInitial,e=a?.maxBackoffLevel??d.EQ.maxLevel;return{shouldFallback:!0,cooldownMs:Math.min(b*Math.pow(2,c),d.Bm.transientMax),newBackoffLevel:Math.min(c+1,e),reason:d.QS.SERVER_ERROR}}return a===d.gx.BAD_REQUEST?{shouldFallback:!1,cooldownMs:0,reason:d.QS.UNKNOWN}:{shouldFallback:!0,cooldownMs:d.Bm.transient,reason:d.QS.UNKNOWN}}function m(a){return!!a&&new Date(a).getTime()>Date.now()}function n(a){return new Date(Date.now()+a).toISOString()}function o(a){let b=null,c=Date.now();for(let d of a){if(!d.rateLimitedUntil)continue;let a=new Date(d.rateLimitedUntil).getTime();a<=c||(!b||a<b)&&(b=a)}return b?new Date(b).toISOString():null}function p(a){if(!a)return"";let b=new Date(a).getTime()-Date.now();if(b<=0)return"reset after 0s";let c=Math.ceil(b/1e3),d=Math.floor(c/3600),e=Math.floor(c%3600/60),f=c%60,g=[];return d>0&&g.push(`${d}h`),e>0&&g.push(`${e}m`),(f>0||0===g.length)&&g.push(`${f}s`),`reset after ${g.join(" ")}`}}};
1
+ "use strict";exports.id=1308,exports.ids=[293,1308,4163],exports.modules={1308:(a,b,c)=>{c.d(b,{$E:()=>s,Eo:()=>B,Kr:()=>y,UE:()=>z,YO:()=>u,getAllRateLimitStatus:()=>A,mg:()=>r,rh:()=>q});var d=c(57217),e=c.n(d);c(74163);var f=c(83596),g=c(60293);function h(a){return a&&"object"==typeof a&&!Array.isArray(a)?a:{}}function i(a,b=0){let c="number"==typeof a?a:"string"==typeof a&&a.trim().length>0?Number(a):NaN;return Number.isFinite(c)?c:b}let j=new Map,k=new Set,l={},m=null,n=!1,o=parseInt(process.env.RATE_LIMIT_MAX_WAIT_MS||"120000",10),p={maxConcurrent:10,minTime:0,reservoir:null,reservoirRefreshAmount:null,reservoirRefreshInterval:null,maxWait:o};async function q(){if(!n){n=!0;try{let{getProviderConnections:a}=await Promise.resolve().then(c.bind(c,22901)),b=await a(),d=0,l=0,m=0;for(let a of b){let b=h(a),c="string"==typeof b.id?b.id:"",n="string"==typeof b.provider?b.provider:"",p=!0===b.isActive,q=!0===b.rateLimitProtection,r=i(b.customRpm,0),s=i(b.customTpm,0);if(c&&n){if(r>0||s>0){k.add(c),m++;let a=`${n}:${c}`,b=r>0?r:g.DEFAULT_API_LIMITS.requestsPerMinute,d=Math.max(0,Math.floor(6e4/b)-10);j.has(a)||j.set(a,new(e())({maxConcurrent:g.DEFAULT_API_LIMITS.concurrentRequests,minTime:d,reservoir:b,reservoirRefreshAmount:b,reservoirRefreshInterval:6e4,maxWait:o,id:a}))}else if(q)k.add(c),d++;else if("apikey"===(0,f.oQ)(n)&&p){k.add(c),l++;let a=`${n}:${c}`;j.has(a)||j.set(a,new(e())({maxConcurrent:g.DEFAULT_API_LIMITS.concurrentRequests,minTime:g.DEFAULT_API_LIMITS.minTimeBetweenRequests,reservoir:g.DEFAULT_API_LIMITS.requestsPerMinute,reservoirRefreshAmount:g.DEFAULT_API_LIMITS.requestsPerMinute,reservoirRefreshInterval:6e4,maxWait:o,id:a}))}}}(d>0||l>0||m>0)&&console.log(`🛡️ [RATE-LIMIT] Loaded ${d} explicit + ${l} auto-enabled + ${m} custom rpm/tpm protection(s)`),await C()}catch(a){console.error("[RATE-LIMIT] Failed to load settings:",a.message)}}}function r(a){k.add(a)}function s(a){for(let[b]of(k.delete(a),j))if(b.includes(a)){let a=j.get(b);a?.disconnect(),j.delete(b)}}function t(a,b,c=null){let d=c?`${a}:${b}:${c}`:`${a}:${b}`;if(!j.has(d)){let a=new(e())({...p,id:d});a.on("queued",()=>{let b=a.counts();b.QUEUED>0&&console.log(`⏳ [RATE-LIMIT] ${d} — ${b.QUEUED} request(s) queued, ${b.RUNNING} running`)}),j.set(d,a)}return j.get(d)}async function u(a,b,c,d){return k.has(b)?t(a,b,null).schedule(d):d()}let v={limit:"x-ratelimit-limit-requests",remaining:"x-ratelimit-remaining-requests",reset:"x-ratelimit-reset-requests",limitTokens:"x-ratelimit-limit-tokens",remainingTokens:"x-ratelimit-remaining-tokens",resetTokens:"x-ratelimit-reset-tokens",retryAfter:"retry-after",overLimit:"x-ratelimit-over-limit"},w={limit:"anthropic-ratelimit-requests-limit",remaining:"anthropic-ratelimit-requests-remaining",reset:"anthropic-ratelimit-requests-reset",limitTokens:"anthropic-ratelimit-input-tokens-limit",remainingTokens:"anthropic-ratelimit-input-tokens-remaining",resetTokens:"anthropic-ratelimit-input-tokens-reset",retryAfter:"retry-after"};function x(a){if(!a)return null;let b=a.match(/^(?:(\d+)h)?(?:(\d+)m(?!s))?(?:(\d+)s)?(?:(\d+)ms)?$/);if(b){let[,a,c,d,e]=b;return(3600*parseInt(a||0)+60*parseInt(c||0)+parseInt(d||0))*1e3+parseInt(e||0)}let c=parseFloat(a);if(!isNaN(c)&&c>0)return c>17e8?Math.max(0,1e3*c-Date.now()):1e3*c;try{let b=new Date(a);if(!isNaN(b.getTime()))return Math.max(0,b.getTime()-Date.now())}catch{}return null}function y(a,b,d,e,f=null){if(!k.has(b)||!d)return;let g=t(a,b,null),h="claude"===a||"anthropic"===a?w:v,i=a=>"function"==typeof d.get?d.get(a):d[a]||null,j=parseInt(i(h.limit)),n=parseInt(i(h.remaining)),o=i(h.reset),p=i(h.retryAfter),q=i(v.overLimit);if(429===e){let c=x(p)||6e4;console.log(`🚫 [RATE-LIMIT] ${a}:${b.slice(0,8)} — 429 received, pausing for ${Math.ceil(c/1e3)}s`),g.updateSettings({reservoir:0,reservoirRefreshAmount:j||60,reservoirRefreshInterval:c});return}if("yes"===q){console.log(`⚠️ [RATE-LIMIT] ${a}:${b.slice(0,8)} — near capacity, slowing down`),g.updateSettings({minTime:200});return}if(!isNaN(j)&&j>0){var r,s,u;let d=x(o)||6e4,e={minTime:Math.max(0,Math.floor(6e4/j)-10)};!isNaN(n)&&(n<.1*j?(e.reservoir=n,e.reservoirRefreshAmount=j,e.reservoirRefreshInterval=d,console.log(`⚠️ [RATE-LIMIT] ${a}:${b.slice(0,8)} — ${n}/${j} remaining, throttling`)):n>.5*j&&(e.minTime=0,e.reservoir=null,e.reservoirRefreshAmount=null,e.reservoirRefreshInterval=null)),g.updateSettings(e),r=a,s=b,u={limit:j,remaining:n,minTime:e.minTime},l[`${r}:${s}`]={...u,provider:r,connectionId:s,lastUpdated:Date.now()},m||(m=setTimeout(async()=>{m=null;try{let{updateSettings:a}=await Promise.resolve().then(c.bind(c,9679));await a({learnedRateLimits:JSON.stringify(l)}),console.log(`💾 [RATE-LIMIT] Persisted learned limits for ${Object.keys(l).length} provider(s)`)}catch(a){console.error("[RATE-LIMIT] Failed to persist learned limits:",a.message)}},6e4))}}function z(a,b){let c=`${a}:${b}`,d=j.get(c);if(!d)return{enabled:k.has(b),active:!1,queued:0,running:0};let e=d.counts();return{enabled:k.has(b),active:!0,queued:e.QUEUED||0,running:e.RUNNING||0,executing:e.EXECUTING||0,done:e.DONE||0}}function A(){let a={};for(let[b,c]of j){let d=c.counts();a[b]={queued:d.QUEUED||0,running:d.RUNNING||0,executing:d.EXECUTING||0}}return a}function B(){return{...l}}async function C(){try{let{getSettings:a}=await Promise.resolve().then(c.bind(c,9679)),b=await a(),d=b?.learnedRateLimits;if("string"!=typeof d||0===d.trim().length)return;let e=h(JSON.parse(d)),f=0;for(let[a,b]of Object.entries(e)){let c=h(b),d=i(c.lastUpdated,0);if(d>0&&Date.now()-d>864e5)continue;let e="string"==typeof c.connectionId?c.connectionId:"",g="string"==typeof c.provider?c.provider:"",m=i(c.limit,0),n=i(c.remaining,0),o=i(c.minTime,0);if(l[a]={provider:g,connectionId:e,lastUpdated:d,...m>0?{limit:m}:{},...n>=0?{remaining:n}:{},...o>=0?{minTime:o}:{}},e&&k.has(e)){let b=j.get(a);if(b&&m>0){let a=o||Math.max(0,Math.floor(6e4/m)-10);b.updateSettings({minTime:a}),f++}}}f>0&&console.log(`📥 [RATE-LIMIT] Restored ${f} learned rate limit(s) from persistence`)}catch(a){console.error("[RATE-LIMIT] Failed to load persisted limits:",a.message)}}},60293:(a,b,c)=>{c.d(b,{$V:()=>n,EQ:()=>u,Co:()=>m,Bm:()=>w,DEFAULT_API_LIMITS:()=>y,O:()=>t,Uc:()=>p,eo:()=>q,LY:()=>s,MT:()=>j,gx:()=>r,NA:()=>o,xq:()=>l,PROVIDER_PROFILES:()=>x,QS:()=>v,C8:()=>z,TH:()=>k});var d=c(29021),e=c(33873);let f=["clientId","clientSecret","tokenUrl","authUrl","refreshUrl"],g=0,h=null;var i=c(83596);let j=parseInt(process.env.FETCH_TIMEOUT_MS||"120000",10),k=parseInt(process.env.STREAM_IDLE_TIMEOUT_MS||"60000",10),l=(0,i.Z0)();!function(a){let b;if(h&&Date.now()-g<6e4)return;let c=(b=process.env.DATA_DIR||(0,e.join)(process.cwd(),"data"),(0,e.join)(b,"provider-credentials.json"));if(!(0,d.existsSync)(c))return h||console.log("[CREDENTIALS] No external credentials file found, using defaults."),h=a,g=Date.now();try{let b=(0,d.readFileSync)(c,"utf-8"),e=JSON.parse(b),g=0;for(let[b,c]of Object.entries(e)){if(!a[b]){console.log(`[CREDENTIALS] Warning: unknown provider "${b}" in credentials file, skipping.`);continue}if(!c||"object"!=typeof c){console.log(`[CREDENTIALS] Warning: provider "${b}" value must be an object, got ${typeof c}. Skipping.`);continue}for(let d of f)void 0!==c[d]&&(a[b][d]=c[d],g++)}let i=null!==h;console.log(`[CREDENTIALS] ${i?"Reloaded":"Loaded"} external credentials: ${g} field(s) from ${c}`)}catch(a){console.log(`[CREDENTIALS] Error reading credentials file: ${a.message}. Using defaults.`)}h=a,g=Date.now()}(l);let m="You are Claude Code, Anthropic's official CLI for Claude.",n="Please ignore the following [ignore]You are Antigravity, a powerful agentic AI coding assistant designed by the Google Deepmind team working on Advanced Agentic Coding.You are pair programming with a USER to solve their coding task. The task may require creating a new codebase, modifying or debugging an existing codebase, or simply answering a question.**Absolute paths only****Proactiveness**[/ignore]",o={google:{token:"https://oauth2.googleapis.com/token",auth:"https://accounts.google.com/o/oauth2/auth"},openai:{token:"https://auth.openai.com/oauth/token",auth:"https://auth.openai.com/oauth/authorize"},anthropic:{token:"https://console.anthropic.com/v1/oauth/token",auth:"https://console.anthropic.com/v1/oauth/authorize"},qwen:{token:"https://chat.qwen.ai/api/v1/oauth2/token",auth:"https://chat.qwen.ai/api/v1/oauth2/device/code"},iflow:{token:"https://iflow.cn/oauth/token",auth:"https://iflow.cn/oauth"},github:{token:"https://github.com/login/oauth/access_token",auth:"https://github.com/login/oauth/authorize",deviceCode:"https://github.com/login/device/code"}},p=64e3,q=32e3,r={BAD_REQUEST:400,UNAUTHORIZED:401,PAYMENT_REQUIRED:402,FORBIDDEN:403,NOT_FOUND:404,NOT_ACCEPTABLE:406,REQUEST_TIMEOUT:408,RATE_LIMITED:429,SERVER_ERROR:500,BAD_GATEWAY:502,SERVICE_UNAVAILABLE:503,GATEWAY_TIMEOUT:504},s={[r.BAD_REQUEST]:{type:"invalid_request_error",code:"bad_request"},[r.UNAUTHORIZED]:{type:"authentication_error",code:"invalid_api_key"},[r.FORBIDDEN]:{type:"permission_error",code:"insufficient_quota"},[r.NOT_FOUND]:{type:"invalid_request_error",code:"model_not_found"},[r.RATE_LIMITED]:{type:"rate_limit_error",code:"rate_limit_exceeded"},[r.SERVER_ERROR]:{type:"server_error",code:"internal_server_error"},[r.BAD_GATEWAY]:{type:"server_error",code:"bad_gateway"},[r.SERVICE_UNAVAILABLE]:{type:"server_error",code:"service_unavailable"},[r.GATEWAY_TIMEOUT]:{type:"server_error",code:"gateway_timeout"}},t={[r.BAD_REQUEST]:"Bad request",[r.UNAUTHORIZED]:"Invalid API key provided",[r.FORBIDDEN]:"You exceeded your current quota",[r.NOT_FOUND]:"Model not found",[r.RATE_LIMITED]:"Rate limit exceeded",[r.SERVER_ERROR]:"Internal server error",[r.BAD_GATEWAY]:"Bad gateway - upstream provider error",[r.SERVICE_UNAVAILABLE]:"Service temporarily unavailable",[r.GATEWAY_TIMEOUT]:"Gateway timeout"},u={base:1e3,max:12e4,maxLevel:15},v={QUOTA_EXHAUSTED:"quota_exhausted",RATE_LIMIT_EXCEEDED:"rate_limit_exceeded",MODEL_CAPACITY:"model_capacity",SERVER_ERROR:"server_error",AUTH_ERROR:"auth_error",UNKNOWN:"unknown"},w={unauthorized:12e4,paymentRequired:12e4,notFound:12e4,transientInitial:5e3,transientMax:6e4,transient:5e3,requestNotAllowed:5e3,rateLimit:12e4,serviceUnavailable:2e3,authExpired:12e4},x={oauth:{transientCooldown:5e3,rateLimitCooldown:6e4,maxBackoffLevel:8,circuitBreakerThreshold:3,circuitBreakerReset:6e4},apikey:{transientCooldown:3e3,rateLimitCooldown:0,maxBackoffLevel:5,circuitBreakerThreshold:5,circuitBreakerReset:3e4}},y={requestsPerMinute:100,minTimeBetweenRequests:200,concurrentRequests:10},z=["Please write a 5-10 word title for the following conversation:"]},74163:(a,b,c)=>{c.d(b,{AO:()=>m,Qo:()=>p,R7:()=>i,T_:()=>f,UY:()=>o,getAllModelLockouts:()=>j,hk:()=>l,vp:()=>n});var d=c(60293),e=c(83596);function f(a){let b=(0,e.oQ)(a);return d.PROVIDER_PROFILES[b]??d.PROVIDER_PROFILES.apikey}let g=new Map,h=null;function i(a,b,c,d,e){if(!c)return;if(!h)try{h=setInterval(()=>{let a=Date.now();for(let[b,c]of g)a>c.until&&g.delete(b)},15e3),"object"==typeof h&&"unref"in h&&h.unref?.()}catch{}let f=`${a}:${b}:${c}`;g.set(f,{reason:d,until:Date.now()+e,lockedAt:Date.now()})}function j(){let a=Date.now(),b=[];for(let[c,d]of g)if(a<=d.until){let[e,f,g]=c.split(":");b.push({provider:e,connectionId:f,model:g,reason:d.reason,remainingMs:d.until-a})}return b}function k(a=0){return Math.min(d.EQ.base*Math.pow(2,a),d.EQ.max)}function l(a,b,c=0,e=null,g=null){if(b){let a="string"==typeof b?b:JSON.stringify(b),e=a.toLowerCase();if(e.includes("no credentials"))return{shouldFallback:!0,cooldownMs:d.Bm.notFound,reason:d.QS.AUTH_ERROR};if(e.includes("request not allowed"))return{shouldFallback:!0,cooldownMs:d.Bm.requestNotAllowed,reason:d.QS.RATE_LIMIT_EXCEEDED};if(e.includes("rate limit")||e.includes("too many requests")||e.includes("quota exceeded")||e.includes("capacity")||e.includes("overloaded")){let b=Math.min(c+1,d.EQ.maxLevel),e=function(a){if(!a)return d.QS.UNKNOWN;let b=String(a).toLowerCase();return b.includes("quota exceeded")||b.includes("quota depleted")||b.includes("billing")?d.QS.QUOTA_EXHAUSTED:b.includes("rate limit")||b.includes("too many requests")||b.includes("rate_limit")?d.QS.RATE_LIMIT_EXCEEDED:b.includes("capacity")||b.includes("overloaded")||b.includes("resource exhausted")?d.QS.MODEL_CAPACITY:b.includes("unauthorized")||b.includes("invalid api key")||b.includes("authentication")?d.QS.AUTH_ERROR:b.includes("server error")||b.includes("internal error")?d.QS.SERVER_ERROR:d.QS.UNKNOWN}(a);return{shouldFallback:!0,cooldownMs:k(c),newBackoffLevel:b,reason:e}}}if(a===d.gx.UNAUTHORIZED)return{shouldFallback:!0,cooldownMs:d.Bm.unauthorized,reason:d.QS.AUTH_ERROR};if(a===d.gx.PAYMENT_REQUIRED||a===d.gx.FORBIDDEN)return{shouldFallback:!0,cooldownMs:d.Bm.paymentRequired,reason:d.QS.QUOTA_EXHAUSTED};if(a===d.gx.NOT_FOUND)return{shouldFallback:!0,cooldownMs:d.Bm.notFound,reason:d.QS.UNKNOWN};if(a===d.gx.RATE_LIMITED){let a=Math.min(c+1,d.EQ.maxLevel);return{shouldFallback:!0,cooldownMs:k(c),newBackoffLevel:a,reason:d.QS.RATE_LIMIT_EXCEEDED}}if([d.gx.NOT_ACCEPTABLE,d.gx.REQUEST_TIMEOUT,d.gx.SERVER_ERROR,d.gx.BAD_GATEWAY,d.gx.SERVICE_UNAVAILABLE,d.gx.GATEWAY_TIMEOUT].includes(a)){let a=g?f(g):null,b=a?.transientCooldown??d.Bm.transientInitial,e=a?.maxBackoffLevel??d.EQ.maxLevel;return{shouldFallback:!0,cooldownMs:Math.min(b*Math.pow(2,c),d.Bm.transientMax),newBackoffLevel:Math.min(c+1,e),reason:d.QS.SERVER_ERROR}}return a===d.gx.BAD_REQUEST?{shouldFallback:!1,cooldownMs:0,reason:d.QS.UNKNOWN}:{shouldFallback:!0,cooldownMs:d.Bm.transient,reason:d.QS.UNKNOWN}}function m(a){return!!a&&new Date(a).getTime()>Date.now()}function n(a){return new Date(Date.now()+a).toISOString()}function o(a){let b=null,c=Date.now();for(let d of a){if(!d.rateLimitedUntil)continue;let a=new Date(d.rateLimitedUntil).getTime();a<=c||(!b||a<b)&&(b=a)}return b?new Date(b).toISOString():null}function p(a){if(!a)return"";let b=new Date(a).getTime()-Date.now();if(b<=0)return"reset after 0s";let c=Math.ceil(b/1e3),d=Math.floor(c/3600),e=Math.floor(c%3600/60),f=c%60,g=[];return d>0&&g.push(`${d}h`),e>0&&g.push(`${e}m`),(f>0||0===g.length)&&g.push(`${f}s`),`reset after ${g.join(" ")}`}}};
@@ -1,4 +1,4 @@
1
- "use strict";exports.id=2767,exports.ids=[2767],exports.modules={1308:(a,b,c)=>{c.d(b,{$E:()=>r,Eo:()=>A,Kr:()=>x,UE:()=>y,YO:()=>t,getAllRateLimitStatus:()=>z,mg:()=>q,rh:()=>p});var d=c(57217),e=c.n(d);c(74163);var f=c(83596),g=c(60293);function h(a){return a&&"object"==typeof a&&!Array.isArray(a)?a:{}}function i(a,b=0){let c="number"==typeof a?a:"string"==typeof a&&a.trim().length>0?Number(a):NaN;return Number.isFinite(c)?c:b}let j=new Map,k=new Set,l={},m=null,n=!1,o={maxConcurrent:10,minTime:0,reservoir:null,reservoirRefreshAmount:null,reservoirRefreshInterval:null};async function p(){if(!n){n=!0;try{let{getProviderConnections:a}=await Promise.resolve().then(c.bind(c,22901)),b=await a(),d=0,l=0,m=0;for(let a of b){let b=h(a),c="string"==typeof b.id?b.id:"",n="string"==typeof b.provider?b.provider:"",o=!0===b.isActive,p=!0===b.rateLimitProtection,q=i(b.customRpm,0),r=i(b.customTpm,0);if(c&&n){if(q>0||r>0){k.add(c),m++;let a=`${n}:${c}`,b=q>0?q:g.DEFAULT_API_LIMITS.requestsPerMinute,d=Math.max(0,Math.floor(6e4/b)-10);j.has(a)||j.set(a,new(e())({maxConcurrent:g.DEFAULT_API_LIMITS.concurrentRequests,minTime:d,reservoir:b,reservoirRefreshAmount:b,reservoirRefreshInterval:6e4,id:a}))}else if(p)k.add(c),d++;else if("apikey"===(0,f.oQ)(n)&&o){k.add(c),l++;let a=`${n}:${c}`;j.has(a)||j.set(a,new(e())({maxConcurrent:g.DEFAULT_API_LIMITS.concurrentRequests,minTime:g.DEFAULT_API_LIMITS.minTimeBetweenRequests,reservoir:g.DEFAULT_API_LIMITS.requestsPerMinute,reservoirRefreshAmount:g.DEFAULT_API_LIMITS.requestsPerMinute,reservoirRefreshInterval:6e4,id:a}))}}}(d>0||l>0||m>0)&&console.log(`🛡️ [RATE-LIMIT] Loaded ${d} explicit + ${l} auto-enabled + ${m} custom rpm/tpm protection(s)`),await B()}catch(a){console.error("[RATE-LIMIT] Failed to load settings:",a.message)}}}function q(a){k.add(a)}function r(a){for(let[b]of(k.delete(a),j))if(b.includes(a)){let a=j.get(b);a?.disconnect(),j.delete(b)}}function s(a,b,c=null){let d=c?`${a}:${b}:${c}`:`${a}:${b}`;if(!j.has(d)){let a=new(e())({...o,id:d});a.on("queued",()=>{let b=a.counts();b.QUEUED>0&&console.log(`⏳ [RATE-LIMIT] ${d} — ${b.QUEUED} request(s) queued, ${b.RUNNING} running`)}),j.set(d,a)}return j.get(d)}async function t(a,b,c,d){return k.has(b)?s(a,b,null).schedule(d):d()}let u={limit:"x-ratelimit-limit-requests",remaining:"x-ratelimit-remaining-requests",reset:"x-ratelimit-reset-requests",limitTokens:"x-ratelimit-limit-tokens",remainingTokens:"x-ratelimit-remaining-tokens",resetTokens:"x-ratelimit-reset-tokens",retryAfter:"retry-after",overLimit:"x-ratelimit-over-limit"},v={limit:"anthropic-ratelimit-requests-limit",remaining:"anthropic-ratelimit-requests-remaining",reset:"anthropic-ratelimit-requests-reset",limitTokens:"anthropic-ratelimit-input-tokens-limit",remainingTokens:"anthropic-ratelimit-input-tokens-remaining",resetTokens:"anthropic-ratelimit-input-tokens-reset",retryAfter:"retry-after"};function w(a){if(!a)return null;let b=a.match(/^(?:(\d+)h)?(?:(\d+)m(?!s))?(?:(\d+)s)?(?:(\d+)ms)?$/);if(b){let[,a,c,d,e]=b;return(3600*parseInt(a||0)+60*parseInt(c||0)+parseInt(d||0))*1e3+parseInt(e||0)}let c=parseFloat(a);if(!isNaN(c)&&c>0)return c>17e8?Math.max(0,1e3*c-Date.now()):1e3*c;try{let b=new Date(a);if(!isNaN(b.getTime()))return Math.max(0,b.getTime()-Date.now())}catch{}return null}function x(a,b,d,e,f=null){if(!k.has(b)||!d)return;let g=s(a,b,null),h="claude"===a||"anthropic"===a?v:u,i=a=>"function"==typeof d.get?d.get(a):d[a]||null,j=parseInt(i(h.limit)),n=parseInt(i(h.remaining)),o=i(h.reset),p=i(h.retryAfter),q=i(u.overLimit);if(429===e){let c=w(p)||6e4;console.log(`🚫 [RATE-LIMIT] ${a}:${b.slice(0,8)} — 429 received, pausing for ${Math.ceil(c/1e3)}s`),g.updateSettings({reservoir:0,reservoirRefreshAmount:j||60,reservoirRefreshInterval:c});return}if("yes"===q){console.log(`⚠️ [RATE-LIMIT] ${a}:${b.slice(0,8)} — near capacity, slowing down`),g.updateSettings({minTime:200});return}if(!isNaN(j)&&j>0){var r,t,y;let d=w(o)||6e4,e={minTime:Math.max(0,Math.floor(6e4/j)-10)};!isNaN(n)&&(n<.1*j?(e.reservoir=n,e.reservoirRefreshAmount=j,e.reservoirRefreshInterval=d,console.log(`⚠️ [RATE-LIMIT] ${a}:${b.slice(0,8)} — ${n}/${j} remaining, throttling`)):n>.5*j&&(e.minTime=0,e.reservoir=null,e.reservoirRefreshAmount=null,e.reservoirRefreshInterval=null)),g.updateSettings(e),r=a,t=b,y={limit:j,remaining:n,minTime:e.minTime},l[`${r}:${t}`]={...y,provider:r,connectionId:t,lastUpdated:Date.now()},m||(m=setTimeout(async()=>{m=null;try{let{updateSettings:a}=await Promise.resolve().then(c.bind(c,9679));await a({learnedRateLimits:JSON.stringify(l)}),console.log(`💾 [RATE-LIMIT] Persisted learned limits for ${Object.keys(l).length} provider(s)`)}catch(a){console.error("[RATE-LIMIT] Failed to persist learned limits:",a.message)}},6e4))}}function y(a,b){let c=`${a}:${b}`,d=j.get(c);if(!d)return{enabled:k.has(b),active:!1,queued:0,running:0};let e=d.counts();return{enabled:k.has(b),active:!0,queued:e.QUEUED||0,running:e.RUNNING||0,executing:e.EXECUTING||0,done:e.DONE||0}}function z(){let a={};for(let[b,c]of j){let d=c.counts();a[b]={queued:d.QUEUED||0,running:d.RUNNING||0,executing:d.EXECUTING||0}}return a}function A(){return{...l}}async function B(){try{let{getSettings:a}=await Promise.resolve().then(c.bind(c,9679)),b=await a(),d=b?.learnedRateLimits;if("string"!=typeof d||0===d.trim().length)return;let e=h(JSON.parse(d)),f=0;for(let[a,b]of Object.entries(e)){let c=h(b),d=i(c.lastUpdated,0);if(d>0&&Date.now()-d>864e5)continue;let e="string"==typeof c.connectionId?c.connectionId:"",g="string"==typeof c.provider?c.provider:"",m=i(c.limit,0),n=i(c.remaining,0),o=i(c.minTime,0);if(l[a]={provider:g,connectionId:e,lastUpdated:d,...m>0?{limit:m}:{},...n>=0?{remaining:n}:{},...o>=0?{minTime:o}:{}},e&&k.has(e)){let b=j.get(a);if(b&&m>0){let a=o||Math.max(0,Math.floor(6e4/m)-10);b.updateSettings({minTime:a}),f++}}}f>0&&console.log(`📥 [RATE-LIMIT] Restored ${f} learned rate limit(s) from persistence`)}catch(a){console.error("[RATE-LIMIT] Failed to load persisted limits:",a.message)}}},6327:(a,b,c)=>{function d({onDisconnect:a,log:b,provider:c,model:e}={}){let f=new AbortController,g=Date.now(),h=!1,i=null,j=a=>{let b=Date.now()-g,d=c?.toUpperCase()||"UNKNOWN";console.log(`[${new Date().toLocaleTimeString("en-US",{hour12:!1,hour:"2-digit",minute:"2-digit",second:"2-digit"})}] 🌊 [STREAM] ${d} | ${e||"unknown"} | ${b}ms | ${a}`)};return{signal:f.signal,startTime:g,isConnected:()=>!h,handleDisconnect:(b="client_closed")=>{h||(h=!0,j(`disconnect: ${b}`),i=setTimeout(()=>{f.abort()},500),a?.({reason:b,duration:Date.now()-g}))},handleComplete:()=>{!h&&(h=!0,j("complete"),i&&(clearTimeout(i),i=null))},handleError:a=>{(i&&(clearTimeout(i),i=null),a instanceof Error&&"AbortError"===a.name)?j("aborted"):a instanceof Error?j(`error: ${a.message}`):j("error: unknown")},abort:()=>f.abort()}}function e(a,b,c){var d;let e,f;return d={readable:a.body.pipeThrough(b),writable:{getWriter:()=>({abort:()=>{}})}},e=d.readable.getReader(),f=d.writable.getWriter(),new ReadableStream({async pull(a){if(!c.isConnected())return void a.close();try{let{done:b,value:d}=await e.read();if(b){c.handleComplete(),a.close();return}a.enqueue(d)}catch(b){c.handleError(b),a.error(b)}},cancel(a){c.handleDisconnect(a||"cancelled"),e.cancel(),f.abort()}})}c.d(b,{Jb:()=>e,jd:()=>d})},8550:(a,b,c)=>{c.d(b,{M:()=>d});function d(a,b){if(!a||"object"!=typeof a)return null;if(a.usage&&"object"==typeof a.usage&&void 0!==a.usage.prompt_tokens)return{prompt_tokens:a.usage.prompt_tokens||0,completion_tokens:a.usage.completion_tokens||0,cached_tokens:a.usage.prompt_tokens_details?.cached_tokens,reasoning_tokens:a.usage.completion_tokens_details?.reasoning_tokens};let c=a.response?.usage||a.usage;return c&&"object"==typeof c&&(void 0!==c.input_tokens||void 0!==c.output_tokens)?{prompt_tokens:c.input_tokens||0,completion_tokens:c.output_tokens||0,cached_tokens:c.cache_read_input_tokens,cache_creation_input_tokens:c.cache_creation_input_tokens,reasoning_tokens:c.reasoning_tokens||c.output_tokens_details?.reasoning_tokens}:a.usage&&"object"==typeof a.usage&&(void 0!==a.usage.input_tokens||void 0!==a.usage.output_tokens)?{prompt_tokens:a.usage.input_tokens||0,completion_tokens:a.usage.output_tokens||0,cache_read_input_tokens:a.usage.cache_read_input_tokens,cache_creation_input_tokens:a.usage.cache_creation_input_tokens}:a.usageMetadata&&"object"==typeof a.usageMetadata?{prompt_tokens:a.usageMetadata.promptTokenCount||0,completion_tokens:a.usageMetadata.candidatesTokenCount||0,reasoning_tokens:a.usageMetadata.thoughtsTokenCount}:null}},9315:(a,b,c)=>{c.d(b,{Cb:()=>n,IL:()=>q,QS:()=>r,RE:()=>p,TZ:()=>s,gR:()=>m,yv:()=>o});var d=c(77598),e=c.n(d),f=c(44594),g=c(42910);function h(a){return a&&"object"==typeof a&&!Array.isArray(a)?a:{}}function i(a,b=0){if("number"==typeof a&&Number.isFinite(a))return a;if("string"==typeof a&&a.trim().length>0){let c=Number(a);return Number.isFinite(c)?c:b}return b}let j=null,k={hits:0,misses:0,tokensSaved:0};function l(){return j||(j=new f.q({maxSize:parseInt(process.env.SEMANTIC_CACHE_MAX_SIZE||"100",10),maxBytes:parseInt(process.env.SEMANTIC_CACHE_MAX_BYTES||String(4194304),10),defaultTTL:parseInt(process.env.SEMANTIC_CACHE_TTL_MS||"1800000",10)})),j}function m(a,b,c=0,d=1){var f;let g=JSON.stringify({model:a,messages:Array.isArray(f=b)?f.map(a=>({role:a.role||"user",content:"string"==typeof a.content?a.content:JSON.stringify(a.content)})):[],temperature:c,top_p:d});return e().createHash("sha256").update(g).digest("hex")}function n(a){let b=l().get(a);if(b)return k.hits++,k.tokensSaved+=b.tokensSaved||0,b.response;try{let b=(0,g.sm)(),c=b.prepare("SELECT response, tokens_saved FROM semantic_cache WHERE signature = ? AND expires_at > datetime('now')").get(a);if(c){let d=h(c),e="string"==typeof d.response?d.response:null;if(!e)return k.misses++,null;let f=JSON.parse(e),g=i(d.tokens_saved,0);return l().set(a,{response:f,tokensSaved:g}),b.prepare("UPDATE semantic_cache SET hit_count = hit_count + 1 WHERE signature = ?").run(a),k.hits++,k.tokensSaved+=g,f}}catch{}return k.misses++,null}function o(a,b,c,d=0,f=36e5){let h=parseInt(process.env.SEMANTIC_CACHE_TTL_MS||String(f),10);l().set(a,{response:c,tokensSaved:d},h);try{let f=(0,g.sm)(),i=e().randomUUID(),j=a.slice(0,16),k=new Date().toISOString(),l=new Date(Date.now()+h).toISOString();f.prepare(`INSERT OR REPLACE INTO semantic_cache (id, signature, model, prompt_hash, response, tokens_saved, hit_count, created_at, expires_at)
1
+ "use strict";exports.id=2767,exports.ids=[2767],exports.modules={1308:(a,b,c)=>{c.d(b,{$E:()=>s,Eo:()=>B,Kr:()=>y,UE:()=>z,YO:()=>u,getAllRateLimitStatus:()=>A,mg:()=>r,rh:()=>q});var d=c(57217),e=c.n(d);c(74163);var f=c(83596),g=c(60293);function h(a){return a&&"object"==typeof a&&!Array.isArray(a)?a:{}}function i(a,b=0){let c="number"==typeof a?a:"string"==typeof a&&a.trim().length>0?Number(a):NaN;return Number.isFinite(c)?c:b}let j=new Map,k=new Set,l={},m=null,n=!1,o=parseInt(process.env.RATE_LIMIT_MAX_WAIT_MS||"120000",10),p={maxConcurrent:10,minTime:0,reservoir:null,reservoirRefreshAmount:null,reservoirRefreshInterval:null,maxWait:o};async function q(){if(!n){n=!0;try{let{getProviderConnections:a}=await Promise.resolve().then(c.bind(c,22901)),b=await a(),d=0,l=0,m=0;for(let a of b){let b=h(a),c="string"==typeof b.id?b.id:"",n="string"==typeof b.provider?b.provider:"",p=!0===b.isActive,q=!0===b.rateLimitProtection,r=i(b.customRpm,0),s=i(b.customTpm,0);if(c&&n){if(r>0||s>0){k.add(c),m++;let a=`${n}:${c}`,b=r>0?r:g.DEFAULT_API_LIMITS.requestsPerMinute,d=Math.max(0,Math.floor(6e4/b)-10);j.has(a)||j.set(a,new(e())({maxConcurrent:g.DEFAULT_API_LIMITS.concurrentRequests,minTime:d,reservoir:b,reservoirRefreshAmount:b,reservoirRefreshInterval:6e4,maxWait:o,id:a}))}else if(q)k.add(c),d++;else if("apikey"===(0,f.oQ)(n)&&p){k.add(c),l++;let a=`${n}:${c}`;j.has(a)||j.set(a,new(e())({maxConcurrent:g.DEFAULT_API_LIMITS.concurrentRequests,minTime:g.DEFAULT_API_LIMITS.minTimeBetweenRequests,reservoir:g.DEFAULT_API_LIMITS.requestsPerMinute,reservoirRefreshAmount:g.DEFAULT_API_LIMITS.requestsPerMinute,reservoirRefreshInterval:6e4,maxWait:o,id:a}))}}}(d>0||l>0||m>0)&&console.log(`🛡️ [RATE-LIMIT] Loaded ${d} explicit + ${l} auto-enabled + ${m} custom rpm/tpm protection(s)`),await C()}catch(a){console.error("[RATE-LIMIT] Failed to load settings:",a.message)}}}function r(a){k.add(a)}function s(a){for(let[b]of(k.delete(a),j))if(b.includes(a)){let a=j.get(b);a?.disconnect(),j.delete(b)}}function t(a,b,c=null){let d=c?`${a}:${b}:${c}`:`${a}:${b}`;if(!j.has(d)){let a=new(e())({...p,id:d});a.on("queued",()=>{let b=a.counts();b.QUEUED>0&&console.log(`⏳ [RATE-LIMIT] ${d} — ${b.QUEUED} request(s) queued, ${b.RUNNING} running`)}),j.set(d,a)}return j.get(d)}async function u(a,b,c,d){return k.has(b)?t(a,b,null).schedule(d):d()}let v={limit:"x-ratelimit-limit-requests",remaining:"x-ratelimit-remaining-requests",reset:"x-ratelimit-reset-requests",limitTokens:"x-ratelimit-limit-tokens",remainingTokens:"x-ratelimit-remaining-tokens",resetTokens:"x-ratelimit-reset-tokens",retryAfter:"retry-after",overLimit:"x-ratelimit-over-limit"},w={limit:"anthropic-ratelimit-requests-limit",remaining:"anthropic-ratelimit-requests-remaining",reset:"anthropic-ratelimit-requests-reset",limitTokens:"anthropic-ratelimit-input-tokens-limit",remainingTokens:"anthropic-ratelimit-input-tokens-remaining",resetTokens:"anthropic-ratelimit-input-tokens-reset",retryAfter:"retry-after"};function x(a){if(!a)return null;let b=a.match(/^(?:(\d+)h)?(?:(\d+)m(?!s))?(?:(\d+)s)?(?:(\d+)ms)?$/);if(b){let[,a,c,d,e]=b;return(3600*parseInt(a||0)+60*parseInt(c||0)+parseInt(d||0))*1e3+parseInt(e||0)}let c=parseFloat(a);if(!isNaN(c)&&c>0)return c>17e8?Math.max(0,1e3*c-Date.now()):1e3*c;try{let b=new Date(a);if(!isNaN(b.getTime()))return Math.max(0,b.getTime()-Date.now())}catch{}return null}function y(a,b,d,e,f=null){if(!k.has(b)||!d)return;let g=t(a,b,null),h="claude"===a||"anthropic"===a?w:v,i=a=>"function"==typeof d.get?d.get(a):d[a]||null,j=parseInt(i(h.limit)),n=parseInt(i(h.remaining)),o=i(h.reset),p=i(h.retryAfter),q=i(v.overLimit);if(429===e){let c=x(p)||6e4;console.log(`🚫 [RATE-LIMIT] ${a}:${b.slice(0,8)} — 429 received, pausing for ${Math.ceil(c/1e3)}s`),g.updateSettings({reservoir:0,reservoirRefreshAmount:j||60,reservoirRefreshInterval:c});return}if("yes"===q){console.log(`⚠️ [RATE-LIMIT] ${a}:${b.slice(0,8)} — near capacity, slowing down`),g.updateSettings({minTime:200});return}if(!isNaN(j)&&j>0){var r,s,u;let d=x(o)||6e4,e={minTime:Math.max(0,Math.floor(6e4/j)-10)};!isNaN(n)&&(n<.1*j?(e.reservoir=n,e.reservoirRefreshAmount=j,e.reservoirRefreshInterval=d,console.log(`⚠️ [RATE-LIMIT] ${a}:${b.slice(0,8)} — ${n}/${j} remaining, throttling`)):n>.5*j&&(e.minTime=0,e.reservoir=null,e.reservoirRefreshAmount=null,e.reservoirRefreshInterval=null)),g.updateSettings(e),r=a,s=b,u={limit:j,remaining:n,minTime:e.minTime},l[`${r}:${s}`]={...u,provider:r,connectionId:s,lastUpdated:Date.now()},m||(m=setTimeout(async()=>{m=null;try{let{updateSettings:a}=await Promise.resolve().then(c.bind(c,9679));await a({learnedRateLimits:JSON.stringify(l)}),console.log(`💾 [RATE-LIMIT] Persisted learned limits for ${Object.keys(l).length} provider(s)`)}catch(a){console.error("[RATE-LIMIT] Failed to persist learned limits:",a.message)}},6e4))}}function z(a,b){let c=`${a}:${b}`,d=j.get(c);if(!d)return{enabled:k.has(b),active:!1,queued:0,running:0};let e=d.counts();return{enabled:k.has(b),active:!0,queued:e.QUEUED||0,running:e.RUNNING||0,executing:e.EXECUTING||0,done:e.DONE||0}}function A(){let a={};for(let[b,c]of j){let d=c.counts();a[b]={queued:d.QUEUED||0,running:d.RUNNING||0,executing:d.EXECUTING||0}}return a}function B(){return{...l}}async function C(){try{let{getSettings:a}=await Promise.resolve().then(c.bind(c,9679)),b=await a(),d=b?.learnedRateLimits;if("string"!=typeof d||0===d.trim().length)return;let e=h(JSON.parse(d)),f=0;for(let[a,b]of Object.entries(e)){let c=h(b),d=i(c.lastUpdated,0);if(d>0&&Date.now()-d>864e5)continue;let e="string"==typeof c.connectionId?c.connectionId:"",g="string"==typeof c.provider?c.provider:"",m=i(c.limit,0),n=i(c.remaining,0),o=i(c.minTime,0);if(l[a]={provider:g,connectionId:e,lastUpdated:d,...m>0?{limit:m}:{},...n>=0?{remaining:n}:{},...o>=0?{minTime:o}:{}},e&&k.has(e)){let b=j.get(a);if(b&&m>0){let a=o||Math.max(0,Math.floor(6e4/m)-10);b.updateSettings({minTime:a}),f++}}}f>0&&console.log(`📥 [RATE-LIMIT] Restored ${f} learned rate limit(s) from persistence`)}catch(a){console.error("[RATE-LIMIT] Failed to load persisted limits:",a.message)}}},6327:(a,b,c)=>{function d({onDisconnect:a,log:b,provider:c,model:e}={}){let f=new AbortController,g=Date.now(),h=!1,i=null,j=a=>{let b=Date.now()-g,d=c?.toUpperCase()||"UNKNOWN";console.log(`[${new Date().toLocaleTimeString("en-US",{hour12:!1,hour:"2-digit",minute:"2-digit",second:"2-digit"})}] 🌊 [STREAM] ${d} | ${e||"unknown"} | ${b}ms | ${a}`)};return{signal:f.signal,startTime:g,isConnected:()=>!h,handleDisconnect:(b="client_closed")=>{h||(h=!0,j(`disconnect: ${b}`),i=setTimeout(()=>{f.abort()},500),a?.({reason:b,duration:Date.now()-g}))},handleComplete:()=>{!h&&(h=!0,j("complete"),i&&(clearTimeout(i),i=null))},handleError:a=>{(i&&(clearTimeout(i),i=null),a instanceof Error&&"AbortError"===a.name)?j("aborted"):a instanceof Error?j(`error: ${a.message}`):j("error: unknown")},abort:()=>f.abort()}}function e(a,b,c){var d;let e,f;return d={readable:a.body.pipeThrough(b),writable:{getWriter:()=>({abort:()=>{}})}},e=d.readable.getReader(),f=d.writable.getWriter(),new ReadableStream({async pull(a){if(!c.isConnected())return void a.close();try{let{done:b,value:d}=await e.read();if(b){c.handleComplete(),a.close();return}a.enqueue(d)}catch(b){c.handleError(b),a.error(b)}},cancel(a){c.handleDisconnect(a||"cancelled"),e.cancel(),f.abort()}})}c.d(b,{Jb:()=>e,jd:()=>d})},8550:(a,b,c)=>{c.d(b,{M:()=>d});function d(a,b){if(!a||"object"!=typeof a)return null;if(a.usage&&"object"==typeof a.usage&&void 0!==a.usage.prompt_tokens)return{prompt_tokens:a.usage.prompt_tokens||0,completion_tokens:a.usage.completion_tokens||0,cached_tokens:a.usage.prompt_tokens_details?.cached_tokens,reasoning_tokens:a.usage.completion_tokens_details?.reasoning_tokens};let c=a.response?.usage||a.usage;return c&&"object"==typeof c&&(void 0!==c.input_tokens||void 0!==c.output_tokens)?{prompt_tokens:c.input_tokens||0,completion_tokens:c.output_tokens||0,cached_tokens:c.cache_read_input_tokens,cache_creation_input_tokens:c.cache_creation_input_tokens,reasoning_tokens:c.reasoning_tokens||c.output_tokens_details?.reasoning_tokens}:a.usage&&"object"==typeof a.usage&&(void 0!==a.usage.input_tokens||void 0!==a.usage.output_tokens)?{prompt_tokens:a.usage.input_tokens||0,completion_tokens:a.usage.output_tokens||0,cache_read_input_tokens:a.usage.cache_read_input_tokens,cache_creation_input_tokens:a.usage.cache_creation_input_tokens}:a.usageMetadata&&"object"==typeof a.usageMetadata?{prompt_tokens:a.usageMetadata.promptTokenCount||0,completion_tokens:a.usageMetadata.candidatesTokenCount||0,reasoning_tokens:a.usageMetadata.thoughtsTokenCount}:null}},9315:(a,b,c)=>{c.d(b,{Cb:()=>n,IL:()=>q,QS:()=>r,RE:()=>p,TZ:()=>s,gR:()=>m,yv:()=>o});var d=c(77598),e=c.n(d),f=c(44594),g=c(42910);function h(a){return a&&"object"==typeof a&&!Array.isArray(a)?a:{}}function i(a,b=0){if("number"==typeof a&&Number.isFinite(a))return a;if("string"==typeof a&&a.trim().length>0){let c=Number(a);return Number.isFinite(c)?c:b}return b}let j=null,k={hits:0,misses:0,tokensSaved:0};function l(){return j||(j=new f.q({maxSize:parseInt(process.env.SEMANTIC_CACHE_MAX_SIZE||"100",10),maxBytes:parseInt(process.env.SEMANTIC_CACHE_MAX_BYTES||String(4194304),10),defaultTTL:parseInt(process.env.SEMANTIC_CACHE_TTL_MS||"1800000",10)})),j}function m(a,b,c=0,d=1){var f;let g=JSON.stringify({model:a,messages:Array.isArray(f=b)?f.map(a=>({role:a.role||"user",content:"string"==typeof a.content?a.content:JSON.stringify(a.content)})):[],temperature:c,top_p:d});return e().createHash("sha256").update(g).digest("hex")}function n(a){let b=l().get(a);if(b)return k.hits++,k.tokensSaved+=b.tokensSaved||0,b.response;try{let b=(0,g.sm)(),c=b.prepare("SELECT response, tokens_saved FROM semantic_cache WHERE signature = ? AND expires_at > datetime('now')").get(a);if(c){let d=h(c),e="string"==typeof d.response?d.response:null;if(!e)return k.misses++,null;let f=JSON.parse(e),g=i(d.tokens_saved,0);return l().set(a,{response:f,tokensSaved:g}),b.prepare("UPDATE semantic_cache SET hit_count = hit_count + 1 WHERE signature = ?").run(a),k.hits++,k.tokensSaved+=g,f}}catch{}return k.misses++,null}function o(a,b,c,d=0,f=36e5){let h=parseInt(process.env.SEMANTIC_CACHE_TTL_MS||String(f),10);l().set(a,{response:c,tokensSaved:d},h);try{let f=(0,g.sm)(),i=e().randomUUID(),j=a.slice(0,16),k=new Date().toISOString(),l=new Date(Date.now()+h).toISOString();f.prepare(`INSERT OR REPLACE INTO semantic_cache (id, signature, model, prompt_hash, response, tokens_saved, hit_count, created_at, expires_at)
2
2
  VALUES (?, ?, ?, ?, ?, ?, 0, ?, ?)`).run(i,a,b,j,JSON.stringify(c),d,k,l)}catch{}}function p(){try{return(0,g.sm)().prepare("DELETE FROM semantic_cache WHERE expires_at <= datetime('now')").run().changes}catch{return 0}}function q(){l().clear();try{(0,g.sm)().prepare("DELETE FROM semantic_cache").run()}catch{}k={hits:0,misses:0,tokensSaved:0}}function r(){let a=l().getStats(),b=0;try{let a=(0,g.sm)().prepare("SELECT COUNT(*) as count FROM semantic_cache WHERE expires_at > datetime('now')").get();b=i(h(a).count,0)}catch{}let c=k.hits+k.misses;return{memoryEntries:a.size,dbEntries:b,hits:k.hits,misses:k.misses,hitRate:c>0?(k.hits/c*100).toFixed(1):"0.0",tokensSaved:k.tokensSaved}}function s(a,b){return b?.get?.("x-omniroute-no-cache")!=="true"&&!1===a.stream&&(a.temperature??0)===0}},9686:(a,b,c)=>{c.d(b,{eU:()=>i,vN:()=>h});var d=c(27976),e=c(22901),f=c(87068);let g=f.oD;async function h(a,b){try{let c={};b.accessToken&&(c.accessToken=b.accessToken),b.refreshToken&&(c.refreshToken=b.refreshToken),b.expiresIn&&(c.expiresAt=new Date(Date.now()+1e3*b.expiresIn).toISOString(),c.expiresIn=b.expiresIn),b.providerSpecificData&&(c.providerSpecificData=b.providerSpecificData);let f=await (0,e.rj)(a,c);return d.info("TOKEN_REFRESH","Credentials updated in localDb",{connectionId:a,success:!!f}),!!f}catch(b){return d.error("TOKEN_REFRESH","Error updating credentials in localDb",{connectionId:a,error:b.message}),!1}}async function i(a,b){let c={...b};if(c.expiresAt){let b=new Date(c.expiresAt).getTime(),e=Date.now();if(b-e<g){let g;d.info("TOKEN_REFRESH","Token expiring soon, refreshing proactively",{provider:a,expiresIn:Math.round((b-e)/1e3)});let i=await (g=c,(0,f.iD)(a,g,d));i&&i.accessToken&&(await h(c.connectionId,i),c={...c,accessToken:i.accessToken,refreshToken:i.refreshToken||c.refreshToken,expiresAt:i.expiresIn?new Date(Date.now()+1e3*i.expiresIn).toISOString():c.expiresAt})}}if("github"===a&&c.providerSpecificData?.copilotTokenExpiresAt){let b=1e3*c.providerSpecificData.copilotTokenExpiresAt,e=Date.now();if(b-e<g){let g;d.info("TOKEN_REFRESH","Copilot token expiring soon, refreshing proactively",{provider:a,expiresIn:Math.round((b-e)/1e3)});let i=await (g=c.accessToken,(0,f.jR)(g,d));i&&(await h(c.connectionId,{providerSpecificData:{...c.providerSpecificData,copilotToken:i.token,copilotTokenExpiresAt:i.expiresAt}}),c.providerSpecificData={...c.providerSpecificData,copilotToken:i.token,copilotTokenExpiresAt:i.expiresAt})}}return c}},12767:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{P:()=>B});var e=c(21020),f=c(13961),g=c(32113),h=c(69590),i=c(71861),j=c(17669),k=c(60293),l=c(23969),m=c(76340),n=c(27976),o=c(9686),p=c(22901),q=c(34493),r=c(26510),s=c(77458),t=c(12620),u=c(20864),v=c(82742),w=c(44057),x=c(59545),y=c(78790),z=c(70884),A=a([h]);async function B(a,b=null){let c,d=(0,x.KZ)(),g=new w.TT(d);try{g.startPhase("parse"),c=await a.json(),g.endPhase()}catch{return n.warn("CHAT","Invalid JSON body"),(0,i.yj)(k.gx.BAD_REQUEST,"Invalid JSON body")}g.startPhase("validate");let h=(0,s.Jh)(c,n);if(h.blocked)return n.warn("SANITIZER","Request blocked due to prompt injection",{detections:h.detections}),(0,i.yj)(k.gx.BAD_REQUEST,"Request rejected: suspicious content detected");h.modified&&h.sanitizedBody&&(c=h.sanitizedBody),g.endPhase(),b||(b={endpoint:new URL(a.url).pathname,body:c,headers:Object.fromEntries(a.headers.entries())});let l=new URL(a.url),m=c.model,o=c.messages?.length||c.input?.length||0,q=c.tools?.length||0,r=c.reasoning_effort||c.reasoning?.effort||null;n.request("POST",`${l.pathname} | ${m} | ${o} msgs${q?` | ${q} tools`:""}${r?` | effort=${r}`:""}`);let t=a.headers.get("Authorization"),v=(0,e.Tr)(a);if(t&&v?n.debug("AUTH",`API Key: ${n.maskKey(v)}`):n.debug("AUTH","No API key provided (local mode)"),"true"===process.env.REQUIRE_API_KEY){if(!v)return n.warn("AUTH","Missing API key while REQUIRE_API_KEY=true"),(0,i.yj)(k.gx.UNAUTHORIZED,"Missing API key");if(!await (0,e.kI)(v))return n.warn("AUTH","Invalid API key while REQUIRE_API_KEY=true"),(0,i.yj)(k.gx.UNAUTHORIZED,"Invalid API key")}if(!m)return n.warn("CHAT","Missing model"),(0,i.yj)(k.gx.BAD_REQUEST,"Missing model");g.startPhase("policy");let y=await (0,z.S)(a,m);if(y.rejection)return n.warn("POLICY",`API key policy rejected: ${m} (key=${y.apiKeyInfo?.id||"unknown"})`),y.rejection;let A=y.apiKeyInfo;g.endPhase(),g.startPhase("resolve");let D=await (0,f.$m)(m);if(D){n.info("CHAT",`Combo "${m}" [${D.strategy||"priority"}] with ${D.models.length} models`);let d=async a=>{let b=await (0,f.mA)(a),c=b.provider;if(!c)return!0;if(!(0,u.fj)(c,b.model||a))return n.debug("AVAILABILITY",`${c}/${b.model} in cooldown, skipping`),!1;let d=await (0,e.c1)(c);return!!d&&!d.allRateLimited},[h,i]=await Promise.all([(0,p.V7)().catch(()=>({})),(0,p.Uv)().catch(()=>[])]);g.endPhase();let k=await (0,j.Pr)({body:c,combo:D,handleSingleModel:(c,d)=>C(c,d,b,a,D.name,A,g),isModelAvailable:d,log:n,settings:h,allCombos:i});return(0,w.N3)(g),k}g.endPhase();let E=await C(c,m,b,a,null,A,g);return(0,w.N3)(g),E}async function C(a,b,c=null,d=null,f=null,g=null,h=null){var j,l;let m=await D(b,a);if(m.error)return m.error;let{provider:p,model:s,sourceFormat:w,targetFormat:x}=m,z=(j=p,l=s,(0,u.fj)(j,l)?(0,t.getCircuitBreaker)(j,{failureThreshold:5,resetTimeout:3e4,onStateChange:(a,b,c)=>n.info("CIRCUIT",`${a}: ${b} → ${c}`)}).canExecute()?null:(n.warn("CIRCUIT",`Circuit breaker OPEN for ${j}, rejecting request`),(0,i.wO)(k.gx.SERVICE_UNAVAILABLE,`Provider ${j} circuit breaker is open`,30)):(n.warn("AVAILABILITY",`${j}/${l} is in cooldown, rejecting request`),(0,i.wO)(k.gx.SERVICE_UNAVAILABLE,`Model ${j}/${l} is temporarily unavailable (cooldown)`,30)));if(z)return z;let A=(0,t.getCircuitBreaker)(p,{failureThreshold:5,resetTimeout:3e4,onStateChange:(a,b,c)=>n.info("CIRCUIT",`${a}: ${b} → ${c}`)}),B=d?.headers?.get("user-agent")||"",G=null,H=null,I=null;for(;;){let b=await (0,e.c1)(p,G);if(!b||b.allRateLimited)return(429===I||503===I)&&((0,u.gC)(p,s,6e4,`HTTP ${I}`),n.info("AVAILABILITY",`${p}/${s} marked unavailable — all accounts exhausted (HTTP ${I})`)),function(a,b,c,d,e,f){if(a?.allRateLimited){let b=e||a.lastError||"Unavailable",g=f||Number(a.lastErrorCode)||k.gx.SERVICE_UNAVAILABLE;return n.warn("CHAT",`[${c}/${d}] ${b} (${a.retryAfterHuman})`),(0,i.wO)(g,`[${c}/${d}] ${b}`,a.retryAfter,a.retryAfterHuman)}return b?(n.warn("CHAT","No more accounts available",{provider:c}),(0,i.yj)(f||k.gx.SERVICE_UNAVAILABLE,e||"All accounts unavailable")):(n.error("AUTH",`No credentials for provider: ${c}`),(0,i.yj)(k.gx.BAD_REQUEST,`No credentials for provider: ${c}`))}(b,G,p,s,H,I);let d=b.connectionId.slice(0,8);n.info("AUTH",`Using ${p} account: ${d}...`);let j=await (0,o.eU)(p,b),l=await F(b.connectionId),m=Date.now();h&&h.startPhase("connect");let{result:t,tlsFingerprintUsed:z}=await E({breaker:A,body:a,provider:p,model:s,refreshedCredentials:j,proxyInfo:l,log:n,clientRawRequest:c,credentials:b,apiKeyInfo:g,userAgent:B,comboName:f});h&&h.endPhase();let C=Date.now()-m;if(function({result:a,proxyInfo:b,proxyLatency:c,provider:d,model:e,sourceFormat:f,targetFormat:g,credentials:h,comboName:i,clientRawRequest:j,tlsFingerprintUsed:k=!1}){try{(0,q.pq)({status:a.success?"success":408===a.status||504===a.status?"timeout":"error",proxy:b?.proxy||null,level:b?.level||"direct",levelId:b?.levelId||null,provider:d,targetUrl:`${d}/${e}`,latencyMs:c,error:a.success?null:a.error||null,connectionId:h.connectionId,comboId:i||null,account:h.connectionId?.slice(0,8)||null,tlsFingerprint:k})}catch{}try{(0,r.MR)({provider:d,model:e,sourceFormat:f,targetFormat:g,status:a.success?"success":"error",statusCode:a.success?200:a.status||500,latency:c,endpoint:j?.endpoint||"/v1/chat/completions",connectionId:h.connectionId||null,comboName:i||null})}catch{}}({result:t,proxyInfo:l,proxyLatency:C,provider:p,model:s,sourceFormat:w,targetFormat:x,credentials:b,comboName:f,clientRawRequest:c,tlsFingerprintUsed:z}),t.success)return(0,u.DQ)(p,s),function(a,b){if(a?.id)try{let c=b.usage||{},d=((c.prompt_tokens||0)+(c.completion_tokens||0))*1e-6;d>0&&(0,y.n5)(a.id,d)}catch{}}(g,t),h&&h.startPhase("finalize"),h&&h.endPhase(),t.response;429===t.status&&(0,v.Dk)(b.connectionId,p);let{shouldFallback:D}=await (0,e.vk)(b.connectionId,t.status,t.error,p);if(D){n.warn("AUTH",`Account ${d}... unavailable (${t.status}), trying fallback`),G=b.connectionId,H=t.error,I=t.status;continue}return t.response}}async function D(a,b){let c=await (0,f.mA)(a);if(!c.provider){if("ambiguous_model"===c.errorType){let b=c.errorMessage||`Ambiguous model '${a}'. Use provider/model prefix (ex: gh/${a} or cc/${a}).`;return n.warn("CHAT",b,{model:a,candidates:c.candidateAliases||c.candidateProviders||[]}),{error:(0,i.yj)(k.gx.BAD_REQUEST,b)}}return n.warn("CHAT","Invalid model format",{model:a}),{error:(0,i.yj)(k.gx.BAD_REQUEST,"Invalid model format")}}let{provider:d,model:e}=c,h=(0,g.Tz)(b),j=l.PROVIDER_ID_TO_ALIAS[d]||d,m=(0,l.ux)(j,e)||(0,g.jJ)(d);return"responses"===c.apiFormat&&(m="openai-responses",n.info("ROUTING",`Custom model apiFormat=responses → targetFormat=openai-responses`)),a!==`${d}/${e}`?n.info("ROUTING",`${a} → ${d}/${e}`):n.info("ROUTING",`Provider: ${d}, Model: ${e}`),{provider:d,model:e,sourceFormat:h,targetFormat:m}}async function E({breaker:a,body:b,provider:c,model:d,refreshedCredentials:f,proxyInfo:g,log:j,clientRawRequest:l,credentials:p,apiKeyInfo:q,userAgent:r,comboName:s}){try{let i=()=>(0,m.jf)(g?.proxy||null,()=>(0,h.w)({body:{...b,model:`${c}/${d}`},modelInfo:{provider:c,model:d},credentials:f,log:j,clientRawRequest:l,connectionId:p.connectionId,apiKeyInfo:q,userAgent:r,comboName:s,onCredentialsRefreshed:async a=>{await (0,o.vN)(p.connectionId,{accessToken:a.accessToken,refreshToken:a.refreshToken,providerSpecificData:a.providerSpecificData,testStatus:"active"})},onRequestSuccess:async()=>{await (0,e.Pt)(p.connectionId,p)}}));if(!g?.proxy&&(0,m.Wk)()){let b=await a.execute(async()=>(0,m.qT)(i));return{result:b.result,tlsFingerprintUsed:b.tlsFingerprintUsed}}return{result:await a.execute(i),tlsFingerprintUsed:!1}}catch(a){if(a instanceof t.ez)return n.warn("CIRCUIT",`${c} circuit open during retry: ${a.message}`),{result:{success:!1,response:(0,i.wO)(k.gx.SERVICE_UNAVAILABLE,`Provider ${c} circuit breaker is open`,Math.ceil(a.retryAfterMs/1e3)),status:k.gx.SERVICE_UNAVAILABLE},tlsFingerprintUsed:!1};throw a}}async function F(a){try{return await (0,p.YD)(a)}catch(a){return n.debug("PROXY",`Failed to resolve proxy: ${a.message}`),null}}h=(A.then?(await A)():A)[0],d()}catch(a){d(a)}})},13961:(a,b,c)=>{c.d(b,{$m:()=>h,mA:()=>g});var d=c(22901),e=c(99939);async function f(a,b){try{let c=await (0,d.uv)(a);if(!Array.isArray(c))return;let e=c.find(a=>a.id===b);return e?.apiFormat==="responses"?"responses":void 0}catch{return}}async function g(a){let b=(0,e.Xh)(a);if(b.providerAlias||b.provider){let a=b.providerAlias||b.provider,c=(await (0,d.Fh)({type:"openai-compatible"})).find(b=>b.prefix===a);if(c){let a=await f(c.id,b.model);return{provider:c.id,model:b.model,...a&&{apiFormat:a}}}let e=(await (0,d.Fh)({type:"anthropic-compatible"})).find(b=>b.prefix===a);if(e){let a=await f(e.id,b.model);return{provider:e.id,model:b.model,...a&&{apiFormat:a}}}}return b.isAlias?(0,e.js)(a,d.OM):(0,e.js)(a,null)}async function h(a){let b=await (0,d.Dj)(a);return b&&b.models&&b.models.length>0?b:null}},20864:(a,b,c)=>{c.d(b,{DQ:()=>h,GX:()=>j,Wj:()=>i,fj:()=>f,gC:()=>g});let d=new Map;function e(a,b){return`${a}::${b}`}function f(a,b){let c=e(a,b),f=d.get(c);return!f||Date.now()-f.unavailableSince>=f.cooldownMs&&(d.delete(c),!0)}function g(a,b,c=6e4,f){let h=e(a,b);d.set(h,{provider:a,model:b,unavailableSince:Date.now(),cooldownMs:c,reason:f||"unknown"})}function h(a,b){return d.delete(e(a,b))}function i(){let a=Date.now(),b=[];for(let[c,e]of d.entries()){let f=a-e.unavailableSince;if(f>=e.cooldownMs){d.delete(c);continue}b.push({provider:e.provider,model:e.model,reason:e.reason||"unknown",remainingMs:e.cooldownMs-f,unavailableSince:new Date(e.unavailableSince).toISOString()})}return b}function j(){return i(),d.size}},26510:(a,b,c)=>{function d(){return globalThis.__translatorEvents||(globalThis.__translatorEvents=[]),globalThis.__translatorEvents}function e(a){if(!a||"object"!=typeof a)return;let b=d();b.unshift({id:`evt_${Date.now()}_${Math.random().toString(36).slice(2,8)}`,timestamp:new Date().toISOString(),...a}),b.length>200&&(b.length=200)}function f(a=50){let b=Number(a),c=Number.isFinite(b)&&b>0?Math.min(Math.floor(b),200):50,e=d();return{events:e.slice(0,c),total:e.length}}c.d(b,{MR:()=>e,zS:()=>f})},26695:(a,b,c)=>{c.d(b,{lm:()=>g.lm,l2:()=>r,i5:()=>q,v8:()=>j});var d=c(79631),e=c(55120),f=c(19704),g=c(50101);function h(a){if(!a)return null;let b=a.trimStart();if(!b||100!==b.charCodeAt(0))return null;let c=b.slice(5).trim();if("[DONE]"===c)return{done:!0};try{return JSON.parse(c)}catch(a){return c.length>0&&console.log(`[WARN] Failed to parse SSE line (${c.length} chars): ${c.substring(0,200)}...`),null}}function i(a,b){if(b===e.h.OPENAI&&a.choices?.[0]?.delta){let b=a.choices[0].delta;return b.content&&""!==b.content||b.reasoning_content&&""!==b.reasoning_content||b.tool_calls&&b.tool_calls.length>0||a.choices[0].finish_reason||b.role}if(b===e.h.CLAUDE){let b="content_block_delta"===a.type,c=a.delta?.text&&""!==a.delta.text,d=a.delta?.thinking&&""!==a.delta.thinking,e=a.delta?.partial_json&&""!==a.delta.partial_json;return!b||!!c||!!d||!!e}if(b===e.h.GEMINI&&a.candidates?.[0]){let b=a.candidates[0];if(b.finishReason)return!0;let c=b.content?.parts;return!!c&&0!==c.length&&c.some(a=>a.text&&""!==a.text||a.functionCall||a.executableCode)}return!0}function j(a,b){return null==a?"data: null\n\n":a&&a.done?"data: [DONE]\n\n":a&&a.event&&a.data?`event: ${a.event}
3
3
  data: ${JSON.stringify(a.data)}
4
4
 
@@ -23,4 +23,4 @@ data: ${JSON.stringify({tokens_generated:f,elapsed_ms:Date.now()-g})}
23
23
  `;try{d.enqueue(h.encode(a))}catch{clearInterval(c)}},a),b?.addEventListener("abort",()=>{clearInterval(c)},{once:!0})},transform(a,b){let c=("string"==typeof a?a:new TextDecoder().decode(a)).split("\n").filter(a=>a.startsWith("data: "));f+=c.length,b.enqueue(a)},flush(){if(clearInterval(c),e)try{let a=`event: progress
24
24
  data: ${JSON.stringify({tokens_generated:f,elapsed_ms:Date.now()-g,done:!0})}
25
25
 
26
- `;e.enqueue(h.encode(a))}catch{}}})}function e(a){return!!a&&"true"===("function"==typeof a.get?b=>a.get(b):b=>a[b])("x-omniroute-progress")}c.d(b,{Y:()=>d,Z:()=>e})},69590:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{w:()=>C});var e=c(95982),f=c(32113),g=c(79631),h=c(55120),i=c(26695),j=c(6327),k=c(50101),l=c(87068),m=c(89122),n=c(23969),o=c(71861),p=c(60293),q=c(82795),r=c(19704),s=c(37544),t=c(50498),u=c(8550),v=c(54745),w=c(92937),x=c(1308),y=c(9315),z=c(79335),A=c(65982),B=a([s]);async function C({body:a,modelInfo:b,credentials:c,log:d,onCredentialsRefreshed:B,onRequestSuccess:C,onDisconnect:D,clientRawRequest:E,connectionId:F,apiKeyInfo:G=null,userAgent:H,comboName:I}){let J,K,L,M,N,O,{provider:P,model:Q}=b,R=Date.now(),S=(0,z.xp)(E?.headers),T=(0,z.ic)(S);if(T)return d?.debug?.("IDEMPOTENCY",`Hit for key=${S?.slice(0,12)}...`),{success:!0,response:new Response(JSON.stringify(T.response),{status:T.status,headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":(0,e.i)(),"X-OmniRoute-Idempotent":"true"}})};await (0,x.rh)();let U=(0,f.Tz)(a),V=(E?.endpoint||"").toLowerCase().endsWith("/responses"),W=(0,q.c)(a,Q,H);if(W)return W;let X=n.PROVIDER_ID_TO_ALIAS[P]||P,Y=(0,n.ux)(X,Q)||(0,f.jJ)(P),Z=!0===a.stream;if((0,y.TZ)(a,E?.headers)){let b=(0,y.gR)(Q,a.messages,a.temperature,a.top_p),c=(0,y.Cb)(b);if(c)return d?.debug?.("CACHE",`Semantic cache HIT for ${Q}`),{success:!0,response:new Response(JSON.stringify(c),{headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":(0,e.i)(),"X-OmniRoute-Cache":"HIT"}})}}let $=await (0,m.q)(U,Y,Q);E&&$.logClientRawRequest(E.endpoint,E.body,E.headers),$.logRawRequest(a),d?.debug?.("FORMAT",`${U} → ${Y} | stream=${Z}`);let _=a;try{Y!==h.h.CLAUDE||["claude","anthropic"].includes(P?.toLowerCase?.())||(_={..._,_disableToolPrefix:!0}),_=(0,g.GH)(U,Y,Q,_,Z,c,P,$)}catch(g){let a=Number(g?.statusCode),b=Number.isInteger(a)&&a>=400&&a<=599?a:p.gx.SERVER_ERROR,c=g?.message||"Invalid request",f="string"==typeof g?.errorType?g.errorType:null;if(d?.warn?.("TRANSLATE",`Request translation failed: ${c}`),f)return{success:!1,status:b,error:c,response:new Response(JSON.stringify({error:{message:c,type:f,code:f}}),{status:b,headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":(0,e.i)()}})};return(0,o.A1)(b,c)}let aa=_._toolNameMap;delete _._toolNameMap,delete _._disableToolPrefix,_.model=Q;let ab=(0,s.SB)(P);(0,r.uw)(Q,P,F,!0),(0,r.E5)({model:Q,provider:P,connectionId:F,status:"PENDING"}).catch(()=>{});let ac=_.messages?.length||_.contents?.length||_.request?.contents?.length||0;d?.debug?.("REQUEST",`${P.toUpperCase()} | ${Q} | ${ac} msgs`);let ad=(0,j.jd)({onDisconnect:D,log:d,provider:P,model:Q});try{let a=await (0,x.YO)(P,F,Q,()=>ab.execute({model:Q,body:_,stream:Z,credentials:c,signal:ad.signal,log:d}));J=a.response,K=a.url,L=a.headers,M=a.transformedBody,$.logTargetRequest(K,L,M),(0,x.Kr)(P,F,J.headers,J.status,Q)}catch(c){if((0,r.uw)(Q,P,F,!1),(0,r.E5)({model:Q,provider:P,connectionId:F,status:`FAILED ${"AbortError"===c.name?499:p.gx.BAD_GATEWAY}`}).catch(()=>{}),(0,r.gK)({method:"POST",path:E?.endpoint||"/v1/chat/completions",status:"AbortError"===c.name?499:p.gx.BAD_GATEWAY,model:Q,provider:P,connectionId:F,duration:Date.now()-R,requestBody:a,error:c.message,sourceFormat:U,targetFormat:Y,comboName:I,apiKeyId:G?.id||null,apiKeyName:G?.name||null,noLog:G?.noLog===!0}).catch(()=>{}),"AbortError"===c.name)return ad.handleError(c),(0,o.A1)(499,"Request aborted");let b=(0,o.lR)(c,P,Q,p.gx.BAD_GATEWAY);return console.log(`${i.lm.red}[ERROR] ${b}${i.lm.reset}`),(0,o.A1)(p.gx.BAD_GATEWAY,b)}if(J.status===p.gx.UNAUTHORIZED||J.status===p.gx.FORBIDDEN){let a=await (0,l.qZ)(()=>ab.refreshCredentials(c,d),3,d);if(a?.accessToken||a?.copilotToken){d?.info?.("TOKEN",`${P.toUpperCase()} | refreshed`),Object.assign(c,a),B&&a&&await B(a);try{let a=await ab.execute({model:Q,body:_,stream:Z,credentials:c,signal:ad.signal,log:d});a.response.ok&&(J=a.response,K=a.url)}catch(a){d?.warn?.("TOKEN",`${P.toUpperCase()} | retry after refresh failed`)}}else d?.warn?.("TOKEN",`${P.toUpperCase()} | refresh failed`)}if(!J.ok){(0,r.uw)(Q,P,F,!1);let{statusCode:b,message:c,retryAfterMs:e}=await (0,o.zL)(J,P);(0,r.E5)({model:Q,provider:P,connectionId:F,status:`FAILED ${b}`}).catch(()=>{}),(0,r.gK)({method:"POST",path:E?.endpoint||"/v1/chat/completions",status:b,model:Q,provider:P,connectionId:F,duration:Date.now()-R,requestBody:a,error:c,sourceFormat:U,targetFormat:Y,comboName:I,apiKeyId:G?.id||null,apiKeyName:G?.name||null,noLog:G?.noLog===!0}).catch(()=>{});let f=(0,o.lR)(Error(c),P,Q,b);if(console.log(`${i.lm.red}[ERROR] ${f}${i.lm.reset}`),e&&"antigravity"===P){let a=Math.ceil(e/1e3);d?.debug?.("RETRY",`Antigravity quota reset in ${a}s (${e}ms)`)}return $.logError(Error(c),M||_),(0,x.Kr)(P,F,J.headers,b,Q),(0,o.A1)(b,f,e)}if(!Z){let b;(0,r.uw)(Q,P,F,!1);let c=(J.headers.get("content-type")||"").toLowerCase(),f=await J.text();if(c.includes("text/event-stream")||/(^|\n)\s*(event|data):/m.test(f)){let a=Y===h.h.OPENAI_RESPONSES?(0,v.B)(f,Q):(0,v.F)(f,Q);if(!a)return(0,r.E5)({model:Q,provider:P,connectionId:F,status:`FAILED ${p.gx.BAD_GATEWAY}`}).catch(()=>{}),(0,o.A1)(p.gx.BAD_GATEWAY,"Invalid SSE response for non-streaming request");b=a}else try{b=f?JSON.parse(f):{}}catch{return(0,r.E5)({model:Q,provider:P,connectionId:F,status:`FAILED ${p.gx.BAD_GATEWAY}`}).catch(()=>{}),(0,o.A1)(p.gx.BAD_GATEWAY,"Invalid JSON response from provider")}C&&await C();let j=(0,u.M)(b,P);if((0,r.E5)({model:Q,provider:P,connectionId:F,tokens:j,status:"200 OK"}).catch(()=>{}),(0,r.gK)({method:"POST",path:E?.endpoint||"/v1/chat/completions",status:200,model:Q,provider:P,connectionId:F,duration:Date.now()-R,tokens:j,requestBody:a,responseBody:b,sourceFormat:U,targetFormat:Y,comboName:I,apiKeyId:G?.id||null,apiKeyName:G?.name||null,noLog:G?.noLog===!0}).catch(()=>{}),j&&"object"==typeof j){let a=`[${new Date().toLocaleTimeString("en-US",{hour12:!1,hour:"2-digit",minute:"2-digit"})}] 📊 [USAGE] ${P.toUpperCase()} | in=${j?.prompt_tokens||0} | out=${j?.completion_tokens||0}${F?` | account=${F.slice(0,8)}...`:""}`;console.log(`${i.lm.green}${a}${i.lm.reset}`),(0,r.sZ)({provider:P||"unknown",model:Q||"unknown",tokens:j,timestamp:new Date().toISOString(),connectionId:F||void 0,apiKeyId:G?.id||void 0,apiKeyName:G?.name||void 0}).catch(a=>{console.error("Failed to save usage stats:",a.message)})}let l=(0,g.nZ)(Y,U)?(0,t.l)(b,Y,U):b;if(U===h.h.OPENAI&&(l=(0,w.LG)(l)),l?.usage){let a=(0,k.O9)(l.usage);l.usage=(0,k.WL)(a,U)}else{let b=JSON.stringify(l?.choices?.[0]?.message?.content||"").length;if(b>0){let c=(0,k.OF)(a,b,U);l.usage=(0,k.WL)(c,U)}}if((0,y.TZ)(a,E?.headers)){let b=(0,y.gR)(Q,a.messages,a.temperature,a.top_p),c=j?.prompt_tokens+j?.completion_tokens||0;(0,y.yv)(b,Q,l,c),d?.debug?.("CACHE",`Stored response for ${Q} (${c} tokens)`)}return(0,z.tm)(S,l,200),{success:!0,response:new Response(JSON.stringify(l),{headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":(0,e.i)(),"X-OmniRoute-Cache":"MISS"}})}}C&&await C();let ae={"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive","Access-Control-Allow-Origin":(0,e.i)()},af=({status:b,usage:c})=>{(0,r.gK)({method:"POST",path:E?.endpoint||"/v1/chat/completions",status:b||200,model:Q,provider:P,connectionId:F,duration:Date.now()-R,tokens:c||{},requestBody:a,sourceFormat:U,targetFormat:Y,comboName:I,apiKeyId:G?.id||null,apiKeyName:G?.name||null,noLog:G?.noLog===!0}).catch(()=>{})},ag=H?.toLowerCase().includes("droid")||H?.toLowerCase().includes("codex-cli");if("codex"!==P||Y!==h.h.OPENAI_RESPONSES||U!==h.h.OPENAI||V||ag?(0,g.nZ)(Y,U)?(d?.debug?.("STREAM",`Translation mode: ${Y} → ${U}`),N=(0,i.i5)(Y,U,P,$,aa,Q,F,a,af,G)):(d?.debug?.("STREAM","Standard passthrough mode"),N=(0,i.l2)(P,$,Q,F,a,af,G)):(d?.debug?.("STREAM",`Codex translation mode: openai-responses → openai`),N=(0,i.i5)("openai-responses","openai",P,$,aa,Q,F,a,af,G)),(0,A.Z)(E?.headers)){let a=(0,A.Y)({signal:ad.signal});O=(0,j.Jb)(J,N,ad).pipeThrough(a),ae["X-OmniRoute-Progress"]="enabled"}else O=(0,j.Jb)(J,N,ad);return{success:!0,response:new Response(O,{headers:ae})}}s=(B.then?(await B)():B)[0],d()}catch(a){d(a)}})},77458:(a,b,c)=>{c.d(b,{Jh:()=>g});let d=[{name:"system_override",pattern:/\b(ignore|disregard|forget)\s+(all\s+)?(previous|prior|above|earlier)\s+(instructions?|prompts?|rules?|context)/i,severity:"high"},{name:"role_hijack",pattern:/\b(you\s+are\s+now|act\s+as\s+if|pretend\s+(to\s+be|you\s+are)|from\s+now\s+on\s+you\s+are)\b/i,severity:"medium"},{name:"system_prompt_leak",pattern:/\b(reveal|show|display|print|output|repeat)\s+(your\s+)?(system\s+prompt|instructions?|initial\s+prompt|hidden\s+prompt)/i,severity:"high"},{name:"delimiter_injection",pattern:/(\[SYSTEM\]|\[INST\]|<<SYS>>|<\|im_start\|>|<\|system\|>|<\|user\|>)/i,severity:"high"},{name:"jailbreak_dan",pattern:/\b(DAN|do\s+anything\s+now|jailbreak|developer\s+mode|enable\s+developer)\b/i,severity:"medium"},{name:"encoding_evasion",pattern:/\b(base64\s+decode|rot13|hex\s+decode|unicode\s+escape)\b.*\b(instruction|prompt|command)\b/i,severity:"medium"}],e=[{name:"email",pattern:/\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b/g,replacement:"[EMAIL_REDACTED]"},{name:"cpf",pattern:/\b\d{3}\.\d{3}\.\d{3}-\d{2}\b/g,replacement:"[CPF_REDACTED]"},{name:"cnpj",pattern:/\b\d{2}\.\d{3}\.\d{3}\/\d{4}-\d{2}\b/g,replacement:"[CNPJ_REDACTED]"},{name:"credit_card",pattern:/\b(?:\d{4}[-\s]?){3}\d{4}\b/g,replacement:"[CARD_REDACTED]"},{name:"phone_br",pattern:/\b\(?\d{2}\)?\s?\d{4,5}-?\d{4}\b/g,replacement:"[PHONE_REDACTED]"},{name:"ssn_us",pattern:/\b\d{3}-\d{2}-\d{4}\b/g,replacement:"[SSN_REDACTED]"}];function f(a,b=!1){let c=[],d=a;for(let f of e){let e=a.match(f.pattern);e&&e.length>0&&(c.push({type:f.name,count:e.length}),b&&(d=d.replace(f.pattern,f.replacement)))}return{text:d,detections:c}}function g(a,b=console){let c={enabled:"false"!==process.env.INPUT_SANITIZER_ENABLED,mode:process.env.INPUT_SANITIZER_MODE||"warn",piiRedaction:"true"===process.env.PII_REDACTION_ENABLED},e={blocked:!1,modified:!1,detections:[],piiDetections:[],sanitizedBody:null};if(!c.enabled)return e;let h=(function(a){let b=[];for(let c of a.messages||a.input||[])if("string"==typeof c)b.push(c);else if("string"==typeof c.content)b.push(c.content);else if(Array.isArray(c.content))for(let a of c.content)"string"==typeof a?b.push(a):a.text&&b.push(a.text);if("string"==typeof a.system)b.push(a.system);else if(Array.isArray(a.system))for(let c of a.system)"string"==typeof c?b.push(c):c.text&&b.push(c.text);return b})(a).join("\n"),i=function(a){let b=[];for(let c of d){let d=a.match(c.pattern);d&&b.push({pattern:c.name,severity:c.severity,match:d[0].slice(0,50)})}return b}(h);if(i.length>0){e.detections=i;let a=i.filter(a=>"high"===a.severity),d=a.length>0?"warn":"info";if(b[d]&&b[d](`[SANITIZER] Prompt injection detected: ${i.map(a=>a.pattern).join(", ")}`),"block"===c.mode&&a.length>0)return e.blocked=!0,e}if(c.piiRedaction){let d=f(h,"redact"===c.mode);e.piiDetections=d.detections,d.detections.length>0&&(b.warn?.(`[SANITIZER] PII detected: ${d.detections.map(a=>`${a.type}(${a.count})`).join(", ")}`),"redact"===c.mode&&(e.sanitizedBody=function(a){let b=JSON.parse(JSON.stringify(a));for(let a of b.messages||b.input||[])if("string"==typeof a.content)a.content=f(a.content,!0).text;else if(Array.isArray(a.content))for(let b of a.content)if("string"==typeof b){let c=a.content.indexOf(b);a.content[c]=f(b,!0).text}else b.text&&(b.text=f(b.text,!0).text);return"string"==typeof b.system&&(b.system=f(b.system,!0).text),b}(a),e.modified=!0))}return e}},79335:(a,b,c)=>{let d;c.d(b,{ic:()=>g,ne:()=>i,tm:()=>h,xp:()=>f});let e=new Map;function f(a){if(!a)return null;let b="function"==typeof a.get?b=>a.get(b):b=>a[b];return b("idempotency-key")||b("x-request-id")||null}function g(a){if(!a)return null;let b=e.get(a);return b?Date.now()>=b.expiresAt?(e.delete(a),null):{response:b.response,status:b.status}:null}function h(a,b,c,f=5e3){a&&(!d&&(d=setInterval(()=>{let a=Date.now();for(let[b,c]of e)a>=c.expiresAt&&e.delete(b)},3e4)).unref&&d.unref(),e.set(a,{response:b,status:c,expiresAt:Date.now()+f}))}function i(){return{activeKeys:e.size,windowMs:5e3}}},82795:(a,b,c)=>{c.d(b,{c:()=>j});var d=c(95982),e=c(32113),f=c(79631),g=c(55120),h=c(60293),i=c(26695);function j(a,b,c=""){if(!c.includes("claude-cli")||!a.messages?.length)return null;let m=a.messages,n=a=>"string"==typeof a?a:Array.isArray(a)?a.filter(a=>"text"===a.type).map(a=>a.text).join(" "):"",o=!1,p=m[m.length-1];if(p?.role==="assistant"&&p.content?.[0]?.text==="{"&&(o=!0),o||"Warmup"===n(m[0]?.content)&&(o=!0),o||1!==m.length||m[0]?.role!=="user"||"count"===n(m[0]?.content)&&(o=!0),!o&&h.C8?.length){let a=m.filter(a=>"user"===a.role).map(a=>n(a.content)).join(" ");h.C8.some(b=>a.includes(b))&&(o=!0)}if(!o)return null;let q=(0,e.Tz)(a);return!1!==a.stream?function(a,b){let c=k(b),e=(0,f.Ws)(a);e.model=b;let h=l(c),j=[];for(let b of h){let c=(0,f.Y8)(g.h.OPENAI,a,b,e);if(c?.length>0)for(let b of c)j.push((0,i.v8)(b,a))}let m=(0,f.Y8)(g.h.OPENAI,a,null,e);if(m?.length>0)for(let b of m)j.push((0,i.v8)(b,a));return j.push("data: [DONE]\n\n"),{success:!0,response:new Response(j.join(""),{headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive","Access-Control-Allow-Origin":(0,d.i)()}})}}(q,b):function(a,b){let c=k(b);if(a===g.h.OPENAI)return{success:!0,response:new Response(JSON.stringify(c),{headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":(0,d.i)()}})};let e=(0,f.Ws)(a);e.model=b;let h=l(c),i=[];for(let b of h){let c=(0,f.Y8)(g.h.OPENAI,a,b,e);c?.length>0&&i.push(...c)}let j=(0,f.Y8)(g.h.OPENAI,a,null,e);return j?.length>0&&i.push(...j),{success:!0,response:new Response(JSON.stringify(function(a,b){if(!a||0===a.length)return k("unknown");let c=a[a.length-1];if(b===g.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":(0,d.i)()}})}}(q,b)}function k(a){let b=`chatcmpl-${Date.now()}`;return{id:b,object:"chat.completion",created:Math.floor(Date.now()/1e3),model:a,choices:[{index:0,message:{role:"assistant",content:"CLI Command Execution: Clear Terminal"},finish_reason:"stop"}],usage:{prompt_tokens:1,completion_tokens:1,total_tokens:2}}}function l(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}]}},89122:(a,b,c)=>{c.d(b,{q:()=>m});let d="u">typeof process&&process.versions?.node&&!0,e="u">typeof process&&process.env?.ENABLE_REQUEST_LOGS==="true",f=null,g=null,h=null;async function i(){if(d&&e&&!f)try{f=await Promise.resolve().then(c.t.bind(c,29021,23)),h=(g=await Promise.resolve().then(c.t.bind(c,33873,23))).join("u">typeof process&&process.cwd?process.cwd():".","logs")}catch{}}async function j(a,b,c){if(await i(),!f||!h)return null;try{await f.promises.mkdir(h,{recursive:!0});let d=function(a=new Date){let b=a=>String(a).padStart(2,"0"),c=a.getFullYear(),d=b(a.getMonth()+1),e=b(a.getDate()),f=b(a.getHours()),g=b(a.getMinutes()),h=b(a.getSeconds());return`${c}${d}${e}_${f}${g}${h}`}(),e=(c||"unknown").replace(/[/:]/g,"-"),i=`${a}_${b}_${e}_${d}`,j=g.join(h,i);return await f.promises.mkdir(j,{recursive:!0}),j}catch(a){return console.log("[LOG] Failed to create log session:",a.message),null}}function k(a,b,c){if(!f||!a)return;let d=g.join(a,b);f.promises.writeFile(d,JSON.stringify(c,null,2)).catch(a=>console.log(`[LOG] Failed to write ${b}:`,a.message))}function l(a){if(!a)return{};let b={...a},c=["authorization","x-api-key","cookie","token"];for(let a of Object.keys(b)){let d=a.toLowerCase();if(c.some(a=>d.includes(a))){let c=b[a];c&&c.length>20&&(b[a]=c.slice(0,10)+"..."+c.slice(-5))}}return b}async function m(a,b,c){if(!e)return{sessionPath:null,logClientRawRequest(){},logRawRequest(){},logOpenAIRequest(){},logTargetRequest(){},logProviderResponse(){},appendProviderChunk(){},appendOpenAIChunk(){},logConvertedResponse(){},appendConvertedChunk(){},logError(){}};let d=await j(a,b,c);return{get sessionPath(){return d},logClientRawRequest(a,b,c={}){k(d,"1_req_client.json",{timestamp:new Date().toISOString(),endpoint:a,headers:l(c),body:b})},logRawRequest(a,b={}){k(d,"2_req_source.json",{timestamp:new Date().toISOString(),headers:l(b),body:a})},logOpenAIRequest(a){k(d,"3_req_openai.json",{timestamp:new Date().toISOString(),body:a})},logTargetRequest(a,b,c){k(d,"4_req_target.json",{timestamp:new Date().toISOString(),url:a,headers:l(b),body:c})},logProviderResponse(a,b,c,e){k(d,"5_res_provider.json",{timestamp:new Date().toISOString(),status:a,statusText:b,headers:c?"function"==typeof c.entries?Object.fromEntries(c.entries()):c:{},body:e})},appendProviderChunk(a){if(!f||!d)return;let b=g.join(d,"5_res_provider.txt");f.promises.appendFile(b,a).catch(()=>{})},appendOpenAIChunk(a){if(!f||!d)return;let b=g.join(d,"6_res_openai.txt");f.promises.appendFile(b,a).catch(()=>{})},logConvertedResponse(a){k(d,"7_res_client.json",{timestamp:new Date().toISOString(),body:a})},appendConvertedChunk(a){if(!f||!d)return;let b=g.join(d,"7_res_client.txt");f.promises.appendFile(b,a).catch(()=>{})},logError(a,b=null){k(d,"6_error.json",{timestamp:new Date().toISOString(),error:a?.message||String(a),stack:a?.stack,requestBody:b})}}}},92937:(a,b,c)=>{c.d(b,{LG:()=>j,LM:()=>m,Zb:()=>i});let d=new Set(["prompt_tokens","completion_tokens","total_tokens","prompt_tokens_details","completion_tokens_details"]);function e(a){return!a||"object"!=typeof a||Array.isArray(a)?null:a}function f(a){return"string"==typeof a?a:void 0}function g(a){return"number"==typeof a&&Number.isFinite(a)?a:void 0}let h=/<think>([\s\S]*?)<\/think>/gi;function i(a){if(!a||"string"!=typeof a)return{content:a||"",thinking:null};let b=[],c=!1,d=a.replace(h,(a,d)=>{c=!0;let e=d.trim();return e&&b.push(e),""});return c?{content:d.trim(),thinking:b.length>0?b.join("\n\n"):null}:{content:a,thinking:null}}function j(a){var b;let c=e(a);if(!c)return a;let d={};return d.id=(b=c.id)&&"string"==typeof b?(b.startsWith("chatcmpl-"),b):`chatcmpl-${crypto.randomUUID().replace(/-/g,"").slice(0,29)}`,d.object=f(c.object)||"chat.completion",d.created=g(c.created)??Math.floor(Date.now()/1e3),d.model=f(c.model)||"unknown",Array.isArray(c.choices)?d.choices=c.choices.map((a,b)=>{var c,d;let f,g;return c=a,d=b,f=e(c),g={index:d,finish_reason:null},f?.index!==void 0&&(g.index=f.index),f?.finish_reason!==void 0&&(g.finish_reason=f.finish_reason),f?.message!==void 0&&(g.message=k(f.message)),f?.delta!==void 0&&(g.delta=k(f.delta)),f?.logprobs!==void 0&&(g.logprobs=f.logprobs),g}):d.choices=[],void 0!==c.usage&&(d.usage=l(c.usage)),c.system_fingerprint&&(d.system_fingerprint=c.system_fingerprint),d}function k(a){let b=e(a);if(!b)return a;let c={};if(b.role&&(c.role=b.role),void 0!==b.refusal&&(c.refusal=b.refusal),"string"==typeof b.content){let{content:a,thinking:d}=i(b.content);c.content=a,d&&!b.reasoning_content&&(c.reasoning_content=d)}else void 0!==b.content&&(c.content=b.content);return b.reasoning_content&&!c.reasoning_content&&(c.reasoning_content=b.reasoning_content),b.tool_calls&&(c.tool_calls=b.tool_calls),b.function_call&&(c.function_call=b.function_call),c}function l(a){let b=e(a);if(!b)return a;let c={};for(let a of d)void 0!==b[a]&&(c[a]=b[a]);let f=g(c.prompt_tokens)??0,h=g(c.completion_tokens)??0,i=g(c.total_tokens)??f+h;return c.prompt_tokens=f,c.completion_tokens=h,c.total_tokens=i,c}function m(a){let b=e(a);if(!b)return a;let c={};return void 0!==b.id&&(c.id=b.id),c.object=f(b.object)||"chat.completion.chunk",void 0!==b.created&&(c.created=b.created),void 0!==b.model&&(c.model=b.model),Array.isArray(b.choices)&&(c.choices=b.choices.map(a=>{let b={index:0},c=e(a);if(!c)return b;if(b.index=g(c.index)??0,void 0!==c.delta){let a=e(c.delta);if(a){let c={};void 0!==a.role&&(c.role=a.role),void 0!==a.content&&(c.content=a.content),void 0!==a.reasoning_content&&(c.reasoning_content=a.reasoning_content),void 0!==a.tool_calls&&(c.tool_calls=a.tool_calls),void 0!==a.function_call&&(c.function_call=a.function_call),b.delta=c}else b.delta=c.delta}return void 0!==c.finish_reason&&(b.finish_reason=c.finish_reason),void 0!==c.logprobs&&(b.logprobs=c.logprobs),b})),void 0!==b.usage&&(c.usage=l(b.usage)),b.system_fingerprint&&(c.system_fingerprint=b.system_fingerprint),c}}};
26
+ `;e.enqueue(h.encode(a))}catch{}}})}function e(a){return!!a&&"true"===("function"==typeof a.get?b=>a.get(b):b=>a[b])("x-omniroute-progress")}c.d(b,{Y:()=>d,Z:()=>e})},69590:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{w:()=>C});var e=c(95982),f=c(32113),g=c(79631),h=c(55120),i=c(26695),j=c(6327),k=c(50101),l=c(87068),m=c(89122),n=c(23969),o=c(71861),p=c(60293),q=c(82795),r=c(19704),s=c(37544),t=c(50498),u=c(8550),v=c(54745),w=c(92937),x=c(1308),y=c(9315),z=c(79335),A=c(65982),B=a([s]);async function C({body:a,modelInfo:b,credentials:c,log:d,onCredentialsRefreshed:B,onRequestSuccess:C,onDisconnect:D,clientRawRequest:E,connectionId:F,apiKeyInfo:G=null,userAgent:H,comboName:I}){let J,K,L,M,N,O,{provider:P,model:Q}=b,R=Date.now(),S=(0,z.xp)(E?.headers),T=(0,z.ic)(S);if(T)return d?.debug?.("IDEMPOTENCY",`Hit for key=${S?.slice(0,12)}...`),{success:!0,response:new Response(JSON.stringify(T.response),{status:T.status,headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":(0,e.i)(),"X-OmniRoute-Idempotent":"true"}})};await (0,x.rh)();let U=(0,f.Tz)(a),V=(E?.endpoint||"").toLowerCase().endsWith("/responses"),W=(0,q.c)(a,Q,H);if(W)return W;let X=n.PROVIDER_ID_TO_ALIAS[P]||P,Y=(0,n.ux)(X,Q)||(0,f.jJ)(P),Z=!0===a.stream;if((0,y.TZ)(a,E?.headers)){let b=(0,y.gR)(Q,a.messages,a.temperature,a.top_p),c=(0,y.Cb)(b);if(c)return d?.debug?.("CACHE",`Semantic cache HIT for ${Q}`),{success:!0,response:new Response(JSON.stringify(c),{headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":(0,e.i)(),"X-OmniRoute-Cache":"HIT"}})}}let $=await (0,m.q)(U,Y,Q);E&&$.logClientRawRequest(E.endpoint,E.body,E.headers),$.logRawRequest(a),d?.debug?.("FORMAT",`${U} → ${Y} | stream=${Z}`);let _=a;try{Y!==h.h.CLAUDE||["claude","anthropic"].includes(P?.toLowerCase?.())||(_={..._,_disableToolPrefix:!0}),Array.isArray(a.messages)&&(a.messages=a.messages.map(a=>{if(""===a.name){let{name:b,...c}=a;return c}return a})),Array.isArray(a.input)&&(a.input=a.input.map(a=>{if(""===a.name){let{name:b,...c}=a;return c}return a})),_=(0,g.GH)(U,Y,Q,_,Z,c,P,$)}catch(g){let a=Number(g?.statusCode),b=Number.isInteger(a)&&a>=400&&a<=599?a:p.gx.SERVER_ERROR,c=g?.message||"Invalid request",f="string"==typeof g?.errorType?g.errorType:null;if(d?.warn?.("TRANSLATE",`Request translation failed: ${c}`),f)return{success:!1,status:b,error:c,response:new Response(JSON.stringify({error:{message:c,type:f,code:f}}),{status:b,headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":(0,e.i)()}})};return(0,o.A1)(b,c)}let aa=_._toolNameMap;delete _._toolNameMap,delete _._disableToolPrefix,_.model=Q;let ab=(0,s.SB)(P);(0,r.uw)(Q,P,F,!0),(0,r.E5)({model:Q,provider:P,connectionId:F,status:"PENDING"}).catch(()=>{});let ac=_.messages?.length||_.contents?.length||_.request?.contents?.length||0;d?.debug?.("REQUEST",`${P.toUpperCase()} | ${Q} | ${ac} msgs`);let ad=(0,j.jd)({onDisconnect:D,log:d,provider:P,model:Q});try{let a=await (0,x.YO)(P,F,Q,()=>ab.execute({model:Q,body:_,stream:Z,credentials:c,signal:ad.signal,log:d}));J=a.response,K=a.url,L=a.headers,M=a.transformedBody,$.logTargetRequest(K,L,M),(0,x.Kr)(P,F,J.headers,J.status,Q)}catch(c){if((0,r.uw)(Q,P,F,!1),(0,r.E5)({model:Q,provider:P,connectionId:F,status:`FAILED ${"AbortError"===c.name?499:p.gx.BAD_GATEWAY}`}).catch(()=>{}),(0,r.gK)({method:"POST",path:E?.endpoint||"/v1/chat/completions",status:"AbortError"===c.name?499:p.gx.BAD_GATEWAY,model:Q,provider:P,connectionId:F,duration:Date.now()-R,requestBody:a,error:c.message,sourceFormat:U,targetFormat:Y,comboName:I,apiKeyId:G?.id||null,apiKeyName:G?.name||null,noLog:G?.noLog===!0}).catch(()=>{}),"AbortError"===c.name)return ad.handleError(c),(0,o.A1)(499,"Request aborted");let b=(0,o.lR)(c,P,Q,p.gx.BAD_GATEWAY);return console.log(`${i.lm.red}[ERROR] ${b}${i.lm.reset}`),(0,o.A1)(p.gx.BAD_GATEWAY,b)}if(J.status===p.gx.UNAUTHORIZED||J.status===p.gx.FORBIDDEN){let a=await (0,l.qZ)(()=>ab.refreshCredentials(c,d),3,d);if(a?.accessToken||a?.copilotToken){d?.info?.("TOKEN",`${P.toUpperCase()} | refreshed`),Object.assign(c,a),B&&a&&await B(a);try{let a=await ab.execute({model:Q,body:_,stream:Z,credentials:c,signal:ad.signal,log:d});a.response.ok&&(J=a.response,K=a.url)}catch(a){d?.warn?.("TOKEN",`${P.toUpperCase()} | retry after refresh failed`)}}else d?.warn?.("TOKEN",`${P.toUpperCase()} | refresh failed`)}if(!J.ok){(0,r.uw)(Q,P,F,!1);let{statusCode:b,message:c,retryAfterMs:e}=await (0,o.zL)(J,P);(0,r.E5)({model:Q,provider:P,connectionId:F,status:`FAILED ${b}`}).catch(()=>{}),(0,r.gK)({method:"POST",path:E?.endpoint||"/v1/chat/completions",status:b,model:Q,provider:P,connectionId:F,duration:Date.now()-R,requestBody:a,error:c,sourceFormat:U,targetFormat:Y,comboName:I,apiKeyId:G?.id||null,apiKeyName:G?.name||null,noLog:G?.noLog===!0}).catch(()=>{});let f=(0,o.lR)(Error(c),P,Q,b);if(console.log(`${i.lm.red}[ERROR] ${f}${i.lm.reset}`),e&&"antigravity"===P){let a=Math.ceil(e/1e3);d?.debug?.("RETRY",`Antigravity quota reset in ${a}s (${e}ms)`)}return $.logError(Error(c),M||_),(0,x.Kr)(P,F,J.headers,b,Q),(0,o.A1)(b,f,e)}if(!Z){let b;(0,r.uw)(Q,P,F,!1);let c=(J.headers.get("content-type")||"").toLowerCase(),f=await J.text();if(c.includes("text/event-stream")||/(^|\n)\s*(event|data):/m.test(f)){let a=Y===h.h.OPENAI_RESPONSES?(0,v.B)(f,Q):(0,v.F)(f,Q);if(!a)return(0,r.E5)({model:Q,provider:P,connectionId:F,status:`FAILED ${p.gx.BAD_GATEWAY}`}).catch(()=>{}),(0,o.A1)(p.gx.BAD_GATEWAY,"Invalid SSE response for non-streaming request");b=a}else try{b=f?JSON.parse(f):{}}catch{return(0,r.E5)({model:Q,provider:P,connectionId:F,status:`FAILED ${p.gx.BAD_GATEWAY}`}).catch(()=>{}),(0,o.A1)(p.gx.BAD_GATEWAY,"Invalid JSON response from provider")}C&&await C();let j=(0,u.M)(b,P);if((0,r.E5)({model:Q,provider:P,connectionId:F,tokens:j,status:"200 OK"}).catch(()=>{}),(0,r.gK)({method:"POST",path:E?.endpoint||"/v1/chat/completions",status:200,model:Q,provider:P,connectionId:F,duration:Date.now()-R,tokens:j,requestBody:a,responseBody:b,sourceFormat:U,targetFormat:Y,comboName:I,apiKeyId:G?.id||null,apiKeyName:G?.name||null,noLog:G?.noLog===!0}).catch(()=>{}),j&&"object"==typeof j){let a=`[${new Date().toLocaleTimeString("en-US",{hour12:!1,hour:"2-digit",minute:"2-digit"})}] 📊 [USAGE] ${P.toUpperCase()} | in=${j?.prompt_tokens||0} | out=${j?.completion_tokens||0}${F?` | account=${F.slice(0,8)}...`:""}`;console.log(`${i.lm.green}${a}${i.lm.reset}`),(0,r.sZ)({provider:P||"unknown",model:Q||"unknown",tokens:j,timestamp:new Date().toISOString(),connectionId:F||void 0,apiKeyId:G?.id||void 0,apiKeyName:G?.name||void 0}).catch(a=>{console.error("Failed to save usage stats:",a.message)})}let l=(0,g.nZ)(Y,U)?(0,t.l)(b,Y,U):b;if(U===h.h.OPENAI&&(l=(0,w.LG)(l)),l?.usage){let a=(0,k.O9)(l.usage);l.usage=(0,k.WL)(a,U)}else{let b=JSON.stringify(l?.choices?.[0]?.message?.content||"").length;if(b>0){let c=(0,k.OF)(a,b,U);l.usage=(0,k.WL)(c,U)}}if((0,y.TZ)(a,E?.headers)){let b=(0,y.gR)(Q,a.messages,a.temperature,a.top_p),c=j?.prompt_tokens+j?.completion_tokens||0;(0,y.yv)(b,Q,l,c),d?.debug?.("CACHE",`Stored response for ${Q} (${c} tokens)`)}return(0,z.tm)(S,l,200),{success:!0,response:new Response(JSON.stringify(l),{headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":(0,e.i)(),"X-OmniRoute-Cache":"MISS"}})}}C&&await C();let ae={"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive","Access-Control-Allow-Origin":(0,e.i)()},af=({status:b,usage:c})=>{(0,r.gK)({method:"POST",path:E?.endpoint||"/v1/chat/completions",status:b||200,model:Q,provider:P,connectionId:F,duration:Date.now()-R,tokens:c||{},requestBody:a,sourceFormat:U,targetFormat:Y,comboName:I,apiKeyId:G?.id||null,apiKeyName:G?.name||null,noLog:G?.noLog===!0}).catch(()=>{})},ag=H?.toLowerCase().includes("droid")||H?.toLowerCase().includes("codex-cli");if("codex"!==P||Y!==h.h.OPENAI_RESPONSES||U!==h.h.OPENAI||V||ag?(0,g.nZ)(Y,U)?(d?.debug?.("STREAM",`Translation mode: ${Y} → ${U}`),N=(0,i.i5)(Y,U,P,$,aa,Q,F,a,af,G)):(d?.debug?.("STREAM","Standard passthrough mode"),N=(0,i.l2)(P,$,Q,F,a,af,G)):(d?.debug?.("STREAM",`Codex translation mode: openai-responses → openai`),N=(0,i.i5)("openai-responses","openai",P,$,aa,Q,F,a,af,G)),(0,A.Z)(E?.headers)){let a=(0,A.Y)({signal:ad.signal});O=(0,j.Jb)(J,N,ad).pipeThrough(a),ae["X-OmniRoute-Progress"]="enabled"}else O=(0,j.Jb)(J,N,ad);return{success:!0,response:new Response(O,{headers:ae})}}s=(B.then?(await B)():B)[0],d()}catch(a){d(a)}})},77458:(a,b,c)=>{c.d(b,{Jh:()=>g});let d=[{name:"system_override",pattern:/\b(ignore|disregard|forget)\s+(all\s+)?(previous|prior|above|earlier)\s+(instructions?|prompts?|rules?|context)/i,severity:"high"},{name:"role_hijack",pattern:/\b(you\s+are\s+now|act\s+as\s+if|pretend\s+(to\s+be|you\s+are)|from\s+now\s+on\s+you\s+are)\b/i,severity:"medium"},{name:"system_prompt_leak",pattern:/\b(reveal|show|display|print|output|repeat)\s+(your\s+)?(system\s+prompt|instructions?|initial\s+prompt|hidden\s+prompt)/i,severity:"high"},{name:"delimiter_injection",pattern:/(\[SYSTEM\]|\[INST\]|<<SYS>>|<\|im_start\|>|<\|system\|>|<\|user\|>)/i,severity:"high"},{name:"jailbreak_dan",pattern:/\b(DAN|do\s+anything\s+now|jailbreak|developer\s+mode|enable\s+developer)\b/i,severity:"medium"},{name:"encoding_evasion",pattern:/\b(base64\s+decode|rot13|hex\s+decode|unicode\s+escape)\b.*\b(instruction|prompt|command)\b/i,severity:"medium"}],e=[{name:"email",pattern:/\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b/g,replacement:"[EMAIL_REDACTED]"},{name:"cpf",pattern:/\b\d{3}\.\d{3}\.\d{3}-\d{2}\b/g,replacement:"[CPF_REDACTED]"},{name:"cnpj",pattern:/\b\d{2}\.\d{3}\.\d{3}\/\d{4}-\d{2}\b/g,replacement:"[CNPJ_REDACTED]"},{name:"credit_card",pattern:/\b(?:\d{4}[-\s]?){3}\d{4}\b/g,replacement:"[CARD_REDACTED]"},{name:"phone_br",pattern:/\b\(?\d{2}\)?\s?\d{4,5}-?\d{4}\b/g,replacement:"[PHONE_REDACTED]"},{name:"ssn_us",pattern:/\b\d{3}-\d{2}-\d{4}\b/g,replacement:"[SSN_REDACTED]"}];function f(a,b=!1){let c=[],d=a;for(let f of e){let e=a.match(f.pattern);e&&e.length>0&&(c.push({type:f.name,count:e.length}),b&&(d=d.replace(f.pattern,f.replacement)))}return{text:d,detections:c}}function g(a,b=console){let c={enabled:"false"!==process.env.INPUT_SANITIZER_ENABLED,mode:process.env.INPUT_SANITIZER_MODE||"warn",piiRedaction:"true"===process.env.PII_REDACTION_ENABLED},e={blocked:!1,modified:!1,detections:[],piiDetections:[],sanitizedBody:null};if(!c.enabled)return e;let h=(function(a){let b=[];for(let c of a.messages||a.input||[])if("string"==typeof c)b.push(c);else if("string"==typeof c.content)b.push(c.content);else if(Array.isArray(c.content))for(let a of c.content)"string"==typeof a?b.push(a):a.text&&b.push(a.text);if("string"==typeof a.system)b.push(a.system);else if(Array.isArray(a.system))for(let c of a.system)"string"==typeof c?b.push(c):c.text&&b.push(c.text);return b})(a).join("\n"),i=function(a){let b=[];for(let c of d){let d=a.match(c.pattern);d&&b.push({pattern:c.name,severity:c.severity,match:d[0].slice(0,50)})}return b}(h);if(i.length>0){e.detections=i;let a=i.filter(a=>"high"===a.severity),d=a.length>0?"warn":"info";if(b[d]&&b[d](`[SANITIZER] Prompt injection detected: ${i.map(a=>a.pattern).join(", ")}`),"block"===c.mode&&a.length>0)return e.blocked=!0,e}if(c.piiRedaction){let d=f(h,"redact"===c.mode);e.piiDetections=d.detections,d.detections.length>0&&(b.warn?.(`[SANITIZER] PII detected: ${d.detections.map(a=>`${a.type}(${a.count})`).join(", ")}`),"redact"===c.mode&&(e.sanitizedBody=function(a){let b=JSON.parse(JSON.stringify(a));for(let a of b.messages||b.input||[])if("string"==typeof a.content)a.content=f(a.content,!0).text;else if(Array.isArray(a.content))for(let b of a.content)if("string"==typeof b){let c=a.content.indexOf(b);a.content[c]=f(b,!0).text}else b.text&&(b.text=f(b.text,!0).text);return"string"==typeof b.system&&(b.system=f(b.system,!0).text),b}(a),e.modified=!0))}return e}},79335:(a,b,c)=>{let d;c.d(b,{ic:()=>g,ne:()=>i,tm:()=>h,xp:()=>f});let e=new Map;function f(a){if(!a)return null;let b="function"==typeof a.get?b=>a.get(b):b=>a[b];return b("idempotency-key")||b("x-request-id")||null}function g(a){if(!a)return null;let b=e.get(a);return b?Date.now()>=b.expiresAt?(e.delete(a),null):{response:b.response,status:b.status}:null}function h(a,b,c,f=5e3){a&&(!d&&(d=setInterval(()=>{let a=Date.now();for(let[b,c]of e)a>=c.expiresAt&&e.delete(b)},3e4)).unref&&d.unref(),e.set(a,{response:b,status:c,expiresAt:Date.now()+f}))}function i(){return{activeKeys:e.size,windowMs:5e3}}},82795:(a,b,c)=>{c.d(b,{c:()=>j});var d=c(95982),e=c(32113),f=c(79631),g=c(55120),h=c(60293),i=c(26695);function j(a,b,c=""){if(!c.includes("claude-cli")||!a.messages?.length)return null;let m=a.messages,n=a=>"string"==typeof a?a:Array.isArray(a)?a.filter(a=>"text"===a.type).map(a=>a.text).join(" "):"",o=!1,p=m[m.length-1];if(p?.role==="assistant"&&p.content?.[0]?.text==="{"&&(o=!0),o||"Warmup"===n(m[0]?.content)&&(o=!0),o||1!==m.length||m[0]?.role!=="user"||"count"===n(m[0]?.content)&&(o=!0),!o&&h.C8?.length){let a=m.filter(a=>"user"===a.role).map(a=>n(a.content)).join(" ");h.C8.some(b=>a.includes(b))&&(o=!0)}if(!o)return null;let q=(0,e.Tz)(a);return!1!==a.stream?function(a,b){let c=k(b),e=(0,f.Ws)(a);e.model=b;let h=l(c),j=[];for(let b of h){let c=(0,f.Y8)(g.h.OPENAI,a,b,e);if(c?.length>0)for(let b of c)j.push((0,i.v8)(b,a))}let m=(0,f.Y8)(g.h.OPENAI,a,null,e);if(m?.length>0)for(let b of m)j.push((0,i.v8)(b,a));return j.push("data: [DONE]\n\n"),{success:!0,response:new Response(j.join(""),{headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive","Access-Control-Allow-Origin":(0,d.i)()}})}}(q,b):function(a,b){let c=k(b);if(a===g.h.OPENAI)return{success:!0,response:new Response(JSON.stringify(c),{headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":(0,d.i)()}})};let e=(0,f.Ws)(a);e.model=b;let h=l(c),i=[];for(let b of h){let c=(0,f.Y8)(g.h.OPENAI,a,b,e);c?.length>0&&i.push(...c)}let j=(0,f.Y8)(g.h.OPENAI,a,null,e);return j?.length>0&&i.push(...j),{success:!0,response:new Response(JSON.stringify(function(a,b){if(!a||0===a.length)return k("unknown");let c=a[a.length-1];if(b===g.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":(0,d.i)()}})}}(q,b)}function k(a){let b=`chatcmpl-${Date.now()}`;return{id:b,object:"chat.completion",created:Math.floor(Date.now()/1e3),model:a,choices:[{index:0,message:{role:"assistant",content:"CLI Command Execution: Clear Terminal"},finish_reason:"stop"}],usage:{prompt_tokens:1,completion_tokens:1,total_tokens:2}}}function l(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}]}},89122:(a,b,c)=>{c.d(b,{q:()=>m});let d="u">typeof process&&process.versions?.node&&!0,e="u">typeof process&&process.env?.ENABLE_REQUEST_LOGS==="true",f=null,g=null,h=null;async function i(){if(d&&e&&!f)try{f=await Promise.resolve().then(c.t.bind(c,29021,23)),h=(g=await Promise.resolve().then(c.t.bind(c,33873,23))).join("u">typeof process&&process.cwd?process.cwd():".","logs")}catch{}}async function j(a,b,c){if(await i(),!f||!h)return null;try{await f.promises.mkdir(h,{recursive:!0});let d=function(a=new Date){let b=a=>String(a).padStart(2,"0"),c=a.getFullYear(),d=b(a.getMonth()+1),e=b(a.getDate()),f=b(a.getHours()),g=b(a.getMinutes()),h=b(a.getSeconds());return`${c}${d}${e}_${f}${g}${h}`}(),e=(c||"unknown").replace(/[/:]/g,"-"),i=`${a}_${b}_${e}_${d}`,j=g.join(h,i);return await f.promises.mkdir(j,{recursive:!0}),j}catch(a){return console.log("[LOG] Failed to create log session:",a.message),null}}function k(a,b,c){if(!f||!a)return;let d=g.join(a,b);f.promises.writeFile(d,JSON.stringify(c,null,2)).catch(a=>console.log(`[LOG] Failed to write ${b}:`,a.message))}function l(a){if(!a)return{};let b={...a},c=["authorization","x-api-key","cookie","token"];for(let a of Object.keys(b)){let d=a.toLowerCase();if(c.some(a=>d.includes(a))){let c=b[a];c&&c.length>20&&(b[a]=c.slice(0,10)+"..."+c.slice(-5))}}return b}async function m(a,b,c){if(!e)return{sessionPath:null,logClientRawRequest(){},logRawRequest(){},logOpenAIRequest(){},logTargetRequest(){},logProviderResponse(){},appendProviderChunk(){},appendOpenAIChunk(){},logConvertedResponse(){},appendConvertedChunk(){},logError(){}};let d=await j(a,b,c);return{get sessionPath(){return d},logClientRawRequest(a,b,c={}){k(d,"1_req_client.json",{timestamp:new Date().toISOString(),endpoint:a,headers:l(c),body:b})},logRawRequest(a,b={}){k(d,"2_req_source.json",{timestamp:new Date().toISOString(),headers:l(b),body:a})},logOpenAIRequest(a){k(d,"3_req_openai.json",{timestamp:new Date().toISOString(),body:a})},logTargetRequest(a,b,c){k(d,"4_req_target.json",{timestamp:new Date().toISOString(),url:a,headers:l(b),body:c})},logProviderResponse(a,b,c,e){k(d,"5_res_provider.json",{timestamp:new Date().toISOString(),status:a,statusText:b,headers:c?"function"==typeof c.entries?Object.fromEntries(c.entries()):c:{},body:e})},appendProviderChunk(a){if(!f||!d)return;let b=g.join(d,"5_res_provider.txt");f.promises.appendFile(b,a).catch(()=>{})},appendOpenAIChunk(a){if(!f||!d)return;let b=g.join(d,"6_res_openai.txt");f.promises.appendFile(b,a).catch(()=>{})},logConvertedResponse(a){k(d,"7_res_client.json",{timestamp:new Date().toISOString(),body:a})},appendConvertedChunk(a){if(!f||!d)return;let b=g.join(d,"7_res_client.txt");f.promises.appendFile(b,a).catch(()=>{})},logError(a,b=null){k(d,"6_error.json",{timestamp:new Date().toISOString(),error:a?.message||String(a),stack:a?.stack,requestBody:b})}}}},92937:(a,b,c)=>{c.d(b,{LG:()=>j,LM:()=>m,Zb:()=>i});let d=new Set(["prompt_tokens","completion_tokens","total_tokens","prompt_tokens_details","completion_tokens_details"]);function e(a){return!a||"object"!=typeof a||Array.isArray(a)?null:a}function f(a){return"string"==typeof a?a:void 0}function g(a){return"number"==typeof a&&Number.isFinite(a)?a:void 0}let h=/<think>([\s\S]*?)<\/think>/gi;function i(a){if(!a||"string"!=typeof a)return{content:a||"",thinking:null};let b=[],c=!1,d=a.replace(h,(a,d)=>{c=!0;let e=d.trim();return e&&b.push(e),""});return c?{content:d.trim(),thinking:b.length>0?b.join("\n\n"):null}:{content:a,thinking:null}}function j(a){var b;let c=e(a);if(!c)return a;let d={};return d.id=(b=c.id)&&"string"==typeof b?(b.startsWith("chatcmpl-"),b):`chatcmpl-${crypto.randomUUID().replace(/-/g,"").slice(0,29)}`,d.object=f(c.object)||"chat.completion",d.created=g(c.created)??Math.floor(Date.now()/1e3),d.model=f(c.model)||"unknown",Array.isArray(c.choices)?d.choices=c.choices.map((a,b)=>{var c,d;let f,g;return c=a,d=b,f=e(c),g={index:d,finish_reason:null},f?.index!==void 0&&(g.index=f.index),f?.finish_reason!==void 0&&(g.finish_reason=f.finish_reason),f?.message!==void 0&&(g.message=k(f.message)),f?.delta!==void 0&&(g.delta=k(f.delta)),f?.logprobs!==void 0&&(g.logprobs=f.logprobs),g}):d.choices=[],void 0!==c.usage&&(d.usage=l(c.usage)),c.system_fingerprint&&(d.system_fingerprint=c.system_fingerprint),d}function k(a){let b=e(a);if(!b)return a;let c={};if(b.role&&(c.role=b.role),void 0!==b.refusal&&(c.refusal=b.refusal),"string"==typeof b.content){let{content:a,thinking:d}=i(b.content);c.content=a,d&&!b.reasoning_content&&(c.reasoning_content=d)}else void 0!==b.content&&(c.content=b.content);return b.reasoning_content&&!c.reasoning_content&&(c.reasoning_content=b.reasoning_content),b.tool_calls&&(c.tool_calls=b.tool_calls),b.function_call&&(c.function_call=b.function_call),c}function l(a){let b=e(a);if(!b)return a;let c={};for(let a of d)void 0!==b[a]&&(c[a]=b[a]);let f=g(c.prompt_tokens)??0,h=g(c.completion_tokens)??0,i=g(c.total_tokens)??f+h;return c.prompt_tokens=f,c.completion_tokens=h,c.total_tokens=i,c}function m(a){let b=e(a);if(!b)return a;let c={};return void 0!==b.id&&(c.id=b.id),c.object=f(b.object)||"chat.completion.chunk",void 0!==b.created&&(c.created=b.created),void 0!==b.model&&(c.model=b.model),Array.isArray(b.choices)&&(c.choices=b.choices.map(a=>{let b={index:0},c=e(a);if(!c)return b;if(b.index=g(c.index)??0,void 0!==c.delta){let a=e(c.delta);if(a){let c={};void 0!==a.role&&(c.role=a.role),void 0!==a.content&&(c.content=a.content),void 0!==a.reasoning_content&&(c.reasoning_content=a.reasoning_content),void 0!==a.tool_calls&&(c.tool_calls=a.tool_calls),void 0!==a.function_call&&(c.function_call=a.function_call),b.delta=c}else b.delta=c.delta}return void 0!==c.finish_reason&&(b.finish_reason=c.finish_reason),void 0!==c.logprobs&&(b.logprobs=c.logprobs),b})),void 0!==b.usage&&(c.usage=l(b.usage)),b.system_fingerprint&&(c.system_fingerprint=b.system_fingerprint),c}}};
@@ -1,4 +1,4 @@
1
- "use strict";exports.id=7544,exports.ids=[7544],exports.modules={14938:(a,b,c)=>{c.d(b,{c:()=>h});var d=c(55511),e=c.n(d),f=c(39859),g=c(60293);class h extends f.H{constructor(){super("antigravity",g.xq.antigravity)}buildUrl(a,b,c=0){let d=this.getBaseUrls(),e=d[c]||d[0];return`${e}/v1internal:${b?"streamGenerateContent?alt=sse":"generateContent"}`}buildHeaders(a,b=!0){return{"Content-Type":"application/json",Authorization:`Bearer ${a.accessToken}`,"User-Agent":this.config.headers?.["User-Agent"]||"antigravity/1.104.0 darwin/arm64","X-OmniRoute-Source":"omniroute",...b&&{Accept:"text/event-stream"}}}transformRequest(a,b,c,d){let f=b?.project,g=d?.projectId,h=f||g;if(!h)throw Error("Missing Google projectId for Antigravity account. Please reconnect OAuth so OmniRoute can fetch your real Cloud Code project (loadCodeAssist).");let i=(b.request?.contents?.map(a=>{let b=a.role;a.parts?.some(a=>a.functionResponse)&&(b="user");let c=a.parts?.filter(a=>!a.thought&&!a.thoughtSignature)||[];return{...a,role:b,parts:c}})||[]).filter(a=>!Array.isArray(a.parts)||a.parts.length>0),j={...b.request,...i.length>0&&{contents:i},sessionId:b.request?.sessionId||this.generateSessionId(),safetySettings:void 0,toolConfig:b.request?.tools?.length>0?{functionCallingConfig:{mode:"VALIDATED"}}:b.request?.toolConfig},k=a&&a.includes("/")?a.split("/").pop():a;return{...b,project:h,model:k,userAgent:"antigravity",requestType:"agent",requestId:`agent-${e().randomUUID()}`,request:j}}async refreshCredentials(a,b){if(!a.refreshToken)return null;try{let c=await fetch(g.NA.google.token,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams({grant_type:"refresh_token",refresh_token:a.refreshToken,client_id:this.config.clientId,client_secret:this.config.clientSecret})});if(!c.ok)return null;let d=await c.json();return b?.info?.("TOKEN","Antigravity refreshed"),{accessToken:d.access_token,refreshToken:d.refresh_token||a.refreshToken,expiresIn:d.expires_in,projectId:a.projectId}}catch(a){return b?.error?.("TOKEN",`Antigravity refresh error: ${a.message}`),null}}generateSessionId(){return`-${Math.floor(9e18*Math.random())}`}parseRetryHeaders(a){if(!a?.get)return null;let b=a.get("retry-after");if(b){let a=parseInt(b,10);if(!isNaN(a)&&a>0)return 1e3*a;let c=new Date(b);if(!isNaN(c.getTime())){let a=c.getTime()-Date.now();return a>0?a:null}}let c=a.get("x-ratelimit-reset-after");if(c){let a=parseInt(c,10);if(!isNaN(a)&&a>0)return 1e3*a}let d=a.get("x-ratelimit-reset");if(d){let a=1e3*parseInt(d,10)-Date.now();return a>0?a:null}return null}parseRetryFromErrorMessage(a){if(!a||"string"!=typeof a)return null;let b=a.match(/reset after (\d+h)?(\d+m)?(\d+s)?/i);if(!b)return null;let c=0;return b[1]&&(c+=3600*parseInt(b[1])*1e3),b[2]&&(c+=60*parseInt(b[2])*1e3),b[3]&&(c+=1e3*parseInt(b[3])),c>0?c:null}async execute({model:a,body:b,stream:c,credentials:d,signal:e,log:f}){let h=this.getFallbackCount(),i=null,j=0,k={};for(let l=0;l<h;l++){let m=this.buildUrl(a,c,l),n=this.buildHeaders(d,c),o=this.transformRequest(a,b,c,d);k[l]||(k[l]=0);try{let a=await fetch(m,{method:"POST",headers:n,body:JSON.stringify(o),signal:e});if(a.status===g.gx.RATE_LIMITED||a.status===g.gx.SERVICE_UNAVAILABLE){let b=this.parseRetryHeaders(a.headers);if(!b)try{let c=await a.clone().text(),d=JSON.parse(c),e=d?.error?.message||d?.message||"";b=this.parseRetryFromErrorMessage(e)}catch(a){}if(b&&b<=1e4){f?.debug?.("RETRY",`${a.status} with Retry-After: ${Math.ceil(b/1e3)}s, waiting...`),await new Promise(a=>setTimeout(a,b)),l--;continue}if(a.status===g.gx.RATE_LIMITED&&(!b||0===b)&&k[l]<3){k[l]++;let a=Math.min(1e3*2**k[l],1e4);f?.debug?.("RETRY",`429 auto retry ${k[l]}/3 after ${a/1e3}s`),await new Promise(b=>setTimeout(b,a)),l--;continue}if(f?.debug?.("RETRY",`${a.status}, Retry-After ${b?`too long (${Math.ceil(b/1e3)}s)`:"missing"}, trying fallback`),j=a.status,l+1<h)continue}if(this.shouldRetry(a.status,l)){f?.debug?.("RETRY",`${a.status} on ${m}, trying fallback ${l+1}`),j=a.status;continue}return{response:a,url:m,headers:n,transformedBody:o}}catch(a){if(i=a,l+1<h){f?.debug?.("RETRY",`Error on ${m}, trying fallback ${l+1}`);continue}throw a}}throw i||Error(`All ${h} URLs failed with status ${j}`)}}},18221:(a,b,c)=>{c.d(b,{L:()=>g});var d=c(39859),e=c(60293),f=c(87068);class g extends d.H{constructor(a){super(a,e.xq[a]||e.xq.openai)}buildUrl(a,b,c=0,d=null){if(this.provider?.startsWith?.("openai-compatible-")){let a=(d?.providerSpecificData?.baseUrl||"https://api.openai.com/v1").replace(/\/$/,""),b=this.provider.includes("responses")?"/responses":"/chat/completions";return`${a}${b}`}if(this.provider?.startsWith?.("anthropic-compatible-")){let a=(d?.providerSpecificData?.baseUrl||"https://api.anthropic.com/v1").replace(/\/$/,"");return`${a}/messages`}switch(this.provider){case"claude":case"glm":case"kimi-coding":case"minimax":case"minimax-cn":return`${this.config.baseUrl}?beta=true`;case"gemini":return`${this.config.baseUrl}/${a}:${b?"streamGenerateContent?alt=sse":"generateContent"}`;default:return this.config.baseUrl}}buildHeaders(a,b=!0){let c={"Content-Type":"application/json",...this.config.headers};switch(this.provider){case"gemini":a.apiKey?c["x-goog-api-key"]=a.apiKey:c.Authorization=`Bearer ${a.accessToken}`;break;case"claude":a.apiKey?c["x-api-key"]=a.apiKey:c.Authorization=`Bearer ${a.accessToken}`;break;case"glm":case"kimi-coding":case"minimax":case"minimax-cn":c["x-api-key"]=a.apiKey||a.accessToken;break;default:this.provider?.startsWith?.("anthropic-compatible-")?(a.apiKey?c["x-api-key"]=a.apiKey:a.accessToken&&(c.Authorization=`Bearer ${a.accessToken}`),c["anthropic-version"]||(c["anthropic-version"]="2023-06-01")):c.Authorization=`Bearer ${a.apiKey||a.accessToken}`}return b&&(c.Accept="text/event-stream"),c}transformRequest(a,b,c,d){if(this.provider?.startsWith?.("openai-compatible-")||this.provider?.startsWith?.("anthropic-compatible-")){let c=a.includes("/")?a.split("/").slice(1).join("/"):a;return{...b,model:c}}return b}async refreshCredentials(a,b){if(!a.refreshToken)return null;try{return await (0,f.iD)(this.provider,a,b)}catch(a){return b?.error?.("TOKEN",`${this.provider} refresh error: ${a.message}`),null}}}},24978:(a,b,c)=>{c.d(b,{V:()=>f});var d=c(39859),e=c(60293);class f extends d.H{constructor(){super("gemini-cli",e.xq["gemini-cli"])}buildUrl(a,b,c=0){return`${this.config.baseUrl}:${b?"streamGenerateContent?alt=sse":"generateContent"}`}buildHeaders(a,b=!0){return{"Content-Type":"application/json",Authorization:`Bearer ${a.accessToken}`,...b&&{Accept:"text/event-stream"}}}transformRequest(a,b,c,d){return!b.project&&d?.projectId&&(b.project=d.projectId),b}async refreshCredentials(a,b){if(!a.refreshToken)return null;try{let c=await fetch(e.NA.google.token,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams({grant_type:"refresh_token",refresh_token:a.refreshToken,client_id:this.config.clientId,client_secret:this.config.clientSecret})});if(!c.ok)return null;let d=await c.json();return b?.info?.("TOKEN","Gemini CLI refreshed"),{accessToken:d.access_token,refreshToken:d.refresh_token||a.refreshToken,expiresIn:d.expires_in,projectId:a.projectId}}catch(a){return b?.error?.("TOKEN",`Gemini CLI refresh error: ${a.message}`),null}}}},36589:(a,b,c)=>{c.d(b,{B:()=>j});var d=c(39859),e=c(60293),f=c(94755),g=c(87068);let h=new Uint32Array(256);for(let a=0;a<256;a++){let b=a;for(let a=0;a<8;a++)b=1&b?0xedb88320^b>>>1:b>>>1;h[a]=b>>>0}function i(a){let b=0xffffffff;for(let c=0;c<a.length;c++)b=h[(b^a[c])&255]^b>>>8;return(0xffffffff^b)>>>0}class j extends d.H{constructor(){super("kiro",e.xq.kiro)}buildHeaders(a,b=!0){let c={...this.config.headers,"Amz-Sdk-Request":"attempt=1; max=3","Amz-Sdk-Invocation-Id":(0,f.A)()};return a.accessToken&&(c.Authorization=`Bearer ${a.accessToken}`),c}transformRequest(a,b,c,d){return b}async execute({model:a,body:b,stream:c,credentials:d,signal:e,log:f}){let g=this.buildUrl(a,c,0),h=this.buildHeaders(d,c),i=this.transformRequest(a,b,c,d),j=await fetch(g,{method:"POST",headers:h,body:JSON.stringify(i),signal:e});return j.ok?{response:this.transformEventStreamToSSE(j,a),url:g,headers:h,transformedBody:i}:{response:j,url:g,headers:h,transformedBody:i}}transformEventStreamToSSE(a,b){let c=new Uint8Array(0),d=0,e=`chatcmpl-${Date.now()}`,f=Math.floor(Date.now()/1e3),g={endDetected:!1,finishEmitted:!1,hasToolCalls:!1,toolCallIndex:0,seenToolIds:new Map},h=new TransformStream({async transform(a,h){let j=new Uint8Array(c.length+a.length);j.set(c),j.set(a,c.length),c=j;let k=0;for(;c.length>=16&&k<1e3;){k++;let a=new DataView(c.buffer,c.byteOffset).getUint32(0,!1);if(a<16||a>c.length||c.length<a)break;let j=c.slice(0,a);c=c.slice(a);let l=function(a){try{let b=new DataView(a.buffer,a.byteOffset);b.getUint32(0,!1);let c=b.getUint32(4,!1),d=b.getUint32(8,!1),e=i(a.slice(0,8));if(d!==e)return console.warn(`[Kiro] Prelude CRC mismatch: expected ${d}, got ${e} — skipping corrupted frame`),null;let f=b.getUint32(a.length-4,!1),g=i(a.slice(0,a.length-4));if(f!==g)return console.warn(`[Kiro] Message CRC mismatch: expected ${f}, got ${g} — skipping corrupted frame`),null;let h={},j=12,k=12+c;for(;j<k&&j<a.length;){let b=a[j];if(++j+b>a.length)break;let c=new TextDecoder().decode(a.slice(j,j+b)),d=a[j+=b];if(j++,7===d){let b=a[j]<<8|a[j+1];if((j+=2)+b>a.length)break;let d=new TextDecoder().decode(a.slice(j,j+b));j+=b,h[c]=d}else break}let l=12+c,m=a.length-4,n=null;if(m>l){let b=new TextDecoder().decode(a.slice(l,m));if(!b||!b.trim())return{headers:h,payload:null};try{n=JSON.parse(b)}catch(c){let a=c instanceof Error?c:Error(String(c));console.warn(`[Kiro] Failed to parse payload: ${a.message} | payload: ${b.substring(0,100)}`),n={raw:b}}}return{headers:h,payload:n}}catch(b){let a=b instanceof Error?b:Error(String(b));return console.warn(`[Kiro] Frame parse error: ${a.message}`),null}}(j);if(!l)continue;let m=l.headers[":event-type"]||"";if(g.totalContentLength||(g.totalContentLength=0),g.contextUsagePercentage||(g.contextUsagePercentage=0),"assistantResponseEvent"===m){let a="string"==typeof l.payload?.content?l.payload.content:"";if(!a)continue;g.totalContentLength+=a.length;let c={id:e,object:"chat.completion.chunk",created:f,model:b,choices:[{index:0,delta:0===d?{role:"assistant",content:a}:{content:a},finish_reason:null}]};d++,h.enqueue(new TextEncoder().encode(`data: ${JSON.stringify(c)}
1
+ "use strict";exports.id=7544,exports.ids=[7544],exports.modules={14938:(a,b,c)=>{c.d(b,{c:()=>h});var d=c(55511),e=c.n(d),f=c(39859),g=c(60293);class h extends f.H{constructor(){super("antigravity",g.xq.antigravity)}buildUrl(a,b,c=0){let d=this.getBaseUrls(),e=d[c]||d[0];return`${e}/v1internal:${b?"streamGenerateContent?alt=sse":"generateContent"}`}buildHeaders(a,b=!0){return{"Content-Type":"application/json",Authorization:`Bearer ${a.accessToken}`,"User-Agent":this.config.headers?.["User-Agent"]||"antigravity/1.104.0 darwin/arm64","X-OmniRoute-Source":"omniroute",...b&&{Accept:"text/event-stream"}}}transformRequest(a,b,c,d){let f=b?.project,g=d?.projectId,h="1"===process.env.OMNIROUTE_ALLOW_BODY_PROJECT_OVERRIDE&&f?f:g||f;if(!h)throw Error("Missing Google projectId for Antigravity account. Please reconnect OAuth so OmniRoute can fetch your real Cloud Code project (loadCodeAssist).");let i=(b.request?.contents?.map(a=>{let b=a.role;a.parts?.some(a=>a.functionResponse)&&(b="user");let c=a.parts?.filter(a=>!a.thought&&!a.thoughtSignature)||[];return{...a,role:b,parts:c}})||[]).filter(a=>!Array.isArray(a.parts)||a.parts.length>0),j={...b.request,...i.length>0&&{contents:i},sessionId:b.request?.sessionId||this.generateSessionId(),safetySettings:void 0,toolConfig:b.request?.tools?.length>0?{functionCallingConfig:{mode:"VALIDATED"}}:b.request?.toolConfig},k=a&&a.includes("/")?a.split("/").pop():a;return{...b,project:h,model:k,userAgent:"antigravity",requestType:"agent",requestId:`agent-${e().randomUUID()}`,request:j}}async refreshCredentials(a,b){if(!a.refreshToken)return null;try{let c=await fetch(g.NA.google.token,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams({grant_type:"refresh_token",refresh_token:a.refreshToken,client_id:this.config.clientId,client_secret:this.config.clientSecret})});if(!c.ok)return null;let d=await c.json();return b?.info?.("TOKEN","Antigravity refreshed"),{accessToken:d.access_token,refreshToken:d.refresh_token||a.refreshToken,expiresIn:d.expires_in,projectId:a.projectId}}catch(a){return b?.error?.("TOKEN",`Antigravity refresh error: ${a.message}`),null}}generateSessionId(){return`-${Math.floor(9e18*Math.random())}`}parseRetryHeaders(a){if(!a?.get)return null;let b=a.get("retry-after");if(b){let a=parseInt(b,10);if(!isNaN(a)&&a>0)return 1e3*a;let c=new Date(b);if(!isNaN(c.getTime())){let a=c.getTime()-Date.now();return a>0?a:null}}let c=a.get("x-ratelimit-reset-after");if(c){let a=parseInt(c,10);if(!isNaN(a)&&a>0)return 1e3*a}let d=a.get("x-ratelimit-reset");if(d){let a=1e3*parseInt(d,10)-Date.now();return a>0?a:null}return null}parseRetryFromErrorMessage(a){if(!a||"string"!=typeof a)return null;let b=a.match(/reset after (\d+h)?(\d+m)?(\d+s)?/i);if(!b)return null;let c=0;return b[1]&&(c+=3600*parseInt(b[1])*1e3),b[2]&&(c+=60*parseInt(b[2])*1e3),b[3]&&(c+=1e3*parseInt(b[3])),c>0?c:null}async execute({model:a,body:b,stream:c,credentials:d,signal:e,log:f}){let h=this.getFallbackCount(),i=null,j=0,k={};for(let l=0;l<h;l++){let m=this.buildUrl(a,c,l),n=this.buildHeaders(d,c),o=this.transformRequest(a,b,c,d);k[l]||(k[l]=0);try{let a=await fetch(m,{method:"POST",headers:n,body:JSON.stringify(o),signal:e});if(a.status===g.gx.RATE_LIMITED||a.status===g.gx.SERVICE_UNAVAILABLE){let b=this.parseRetryHeaders(a.headers);if(!b)try{let c=await a.clone().text(),d=JSON.parse(c),e=d?.error?.message||d?.message||"";b=this.parseRetryFromErrorMessage(e)}catch(a){}if(b&&b<=1e4){f?.debug?.("RETRY",`${a.status} with Retry-After: ${Math.ceil(b/1e3)}s, waiting...`),await new Promise(a=>setTimeout(a,b)),l--;continue}if(a.status===g.gx.RATE_LIMITED&&(!b||0===b)&&k[l]<3){k[l]++;let a=Math.min(1e3*2**k[l],1e4);f?.debug?.("RETRY",`429 auto retry ${k[l]}/3 after ${a/1e3}s`),await new Promise(b=>setTimeout(b,a)),l--;continue}if(f?.debug?.("RETRY",`${a.status}, Retry-After ${b?`too long (${Math.ceil(b/1e3)}s)`:"missing"}, trying fallback`),j=a.status,l+1<h)continue}if(this.shouldRetry(a.status,l)){f?.debug?.("RETRY",`${a.status} on ${m}, trying fallback ${l+1}`),j=a.status;continue}return{response:a,url:m,headers:n,transformedBody:o}}catch(a){if(i=a,l+1<h){f?.debug?.("RETRY",`Error on ${m}, trying fallback ${l+1}`);continue}throw a}}throw i||Error(`All ${h} URLs failed with status ${j}`)}}},18221:(a,b,c)=>{c.d(b,{L:()=>g});var d=c(39859),e=c(60293),f=c(87068);class g extends d.H{constructor(a){super(a,e.xq[a]||e.xq.openai)}buildUrl(a,b,c=0,d=null){if(this.provider?.startsWith?.("openai-compatible-")){let a=(d?.providerSpecificData?.baseUrl||"https://api.openai.com/v1").replace(/\/$/,""),b=this.provider.includes("responses")?"/responses":"/chat/completions";return`${a}${b}`}if(this.provider?.startsWith?.("anthropic-compatible-")){let a=(d?.providerSpecificData?.baseUrl||"https://api.anthropic.com/v1").replace(/\/$/,"");return`${a}/messages`}switch(this.provider){case"claude":case"glm":case"kimi-coding":case"minimax":case"minimax-cn":return`${this.config.baseUrl}?beta=true`;case"gemini":return`${this.config.baseUrl}/${a}:${b?"streamGenerateContent?alt=sse":"generateContent"}`;default:return this.config.baseUrl}}buildHeaders(a,b=!0){let c={"Content-Type":"application/json",...this.config.headers};switch(this.provider){case"gemini":a.apiKey?c["x-goog-api-key"]=a.apiKey:c.Authorization=`Bearer ${a.accessToken}`;break;case"claude":a.apiKey?c["x-api-key"]=a.apiKey:c.Authorization=`Bearer ${a.accessToken}`;break;case"glm":case"kimi-coding":case"minimax":case"minimax-cn":c["x-api-key"]=a.apiKey||a.accessToken;break;default:this.provider?.startsWith?.("anthropic-compatible-")?(a.apiKey?c["x-api-key"]=a.apiKey:a.accessToken&&(c.Authorization=`Bearer ${a.accessToken}`),c["anthropic-version"]||(c["anthropic-version"]="2023-06-01")):c.Authorization=`Bearer ${a.apiKey||a.accessToken}`}return b&&(c.Accept="text/event-stream"),c}transformRequest(a,b,c,d){if(this.provider?.startsWith?.("openai-compatible-")||this.provider?.startsWith?.("anthropic-compatible-")){let c=a.includes("/")?a.split("/").slice(1).join("/"):a;return{...b,model:c}}return b}async refreshCredentials(a,b){if(!a.refreshToken)return null;try{return await (0,f.iD)(this.provider,a,b)}catch(a){return b?.error?.("TOKEN",`${this.provider} refresh error: ${a.message}`),null}}}},24978:(a,b,c)=>{c.d(b,{V:()=>f});var d=c(39859),e=c(60293);class f extends d.H{constructor(){super("gemini-cli",e.xq["gemini-cli"])}buildUrl(a,b,c=0){return`${this.config.baseUrl}:${b?"streamGenerateContent?alt=sse":"generateContent"}`}buildHeaders(a,b=!0){return{"Content-Type":"application/json",Authorization:`Bearer ${a.accessToken}`,...b&&{Accept:"text/event-stream"}}}transformRequest(a,b,c,d){return"1"===process.env.OMNIROUTE_ALLOW_BODY_PROJECT_OVERRIDE&&b?.project||d?.projectId&&(b.project=d.projectId),b}async refreshCredentials(a,b){if(!a.refreshToken)return null;try{let c=await fetch(e.NA.google.token,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams({grant_type:"refresh_token",refresh_token:a.refreshToken,client_id:this.config.clientId,client_secret:this.config.clientSecret})});if(!c.ok)return null;let d=await c.json();return b?.info?.("TOKEN","Gemini CLI refreshed"),{accessToken:d.access_token,refreshToken:d.refresh_token||a.refreshToken,expiresIn:d.expires_in,projectId:a.projectId}}catch(a){return b?.error?.("TOKEN",`Gemini CLI refresh error: ${a.message}`),null}}}},36589:(a,b,c)=>{c.d(b,{B:()=>j});var d=c(39859),e=c(60293),f=c(94755),g=c(87068);let h=new Uint32Array(256);for(let a=0;a<256;a++){let b=a;for(let a=0;a<8;a++)b=1&b?0xedb88320^b>>>1:b>>>1;h[a]=b>>>0}function i(a){let b=0xffffffff;for(let c=0;c<a.length;c++)b=h[(b^a[c])&255]^b>>>8;return(0xffffffff^b)>>>0}class j extends d.H{constructor(){super("kiro",e.xq.kiro)}buildHeaders(a,b=!0){let c={...this.config.headers,"Amz-Sdk-Request":"attempt=1; max=3","Amz-Sdk-Invocation-Id":(0,f.A)()};return a.accessToken&&(c.Authorization=`Bearer ${a.accessToken}`),c}transformRequest(a,b,c,d){return b}async execute({model:a,body:b,stream:c,credentials:d,signal:e,log:f}){let g=this.buildUrl(a,c,0),h=this.buildHeaders(d,c),i=this.transformRequest(a,b,c,d),j=await fetch(g,{method:"POST",headers:h,body:JSON.stringify(i),signal:e});return j.ok?{response:this.transformEventStreamToSSE(j,a),url:g,headers:h,transformedBody:i}:{response:j,url:g,headers:h,transformedBody:i}}transformEventStreamToSSE(a,b){let c=new Uint8Array(0),d=0,e=`chatcmpl-${Date.now()}`,f=Math.floor(Date.now()/1e3),g={endDetected:!1,finishEmitted:!1,hasToolCalls:!1,toolCallIndex:0,seenToolIds:new Map},h=new TransformStream({async transform(a,h){let j=new Uint8Array(c.length+a.length);j.set(c),j.set(a,c.length),c=j;let k=0;for(;c.length>=16&&k<1e3;){k++;let a=new DataView(c.buffer,c.byteOffset).getUint32(0,!1);if(a<16||a>c.length||c.length<a)break;let j=c.slice(0,a);c=c.slice(a);let l=function(a){try{let b=new DataView(a.buffer,a.byteOffset);b.getUint32(0,!1);let c=b.getUint32(4,!1),d=b.getUint32(8,!1),e=i(a.slice(0,8));if(d!==e)return console.warn(`[Kiro] Prelude CRC mismatch: expected ${d}, got ${e} — skipping corrupted frame`),null;let f=b.getUint32(a.length-4,!1),g=i(a.slice(0,a.length-4));if(f!==g)return console.warn(`[Kiro] Message CRC mismatch: expected ${f}, got ${g} — skipping corrupted frame`),null;let h={},j=12,k=12+c;for(;j<k&&j<a.length;){let b=a[j];if(++j+b>a.length)break;let c=new TextDecoder().decode(a.slice(j,j+b)),d=a[j+=b];if(j++,7===d){let b=a[j]<<8|a[j+1];if((j+=2)+b>a.length)break;let d=new TextDecoder().decode(a.slice(j,j+b));j+=b,h[c]=d}else break}let l=12+c,m=a.length-4,n=null;if(m>l){let b=new TextDecoder().decode(a.slice(l,m));if(!b||!b.trim())return{headers:h,payload:null};try{n=JSON.parse(b)}catch(c){let a=c instanceof Error?c:Error(String(c));console.warn(`[Kiro] Failed to parse payload: ${a.message} | payload: ${b.substring(0,100)}`),n={raw:b}}}return{headers:h,payload:n}}catch(b){let a=b instanceof Error?b:Error(String(b));return console.warn(`[Kiro] Frame parse error: ${a.message}`),null}}(j);if(!l)continue;let m=l.headers[":event-type"]||"";if(g.totalContentLength||(g.totalContentLength=0),g.contextUsagePercentage||(g.contextUsagePercentage=0),"assistantResponseEvent"===m){let a="string"==typeof l.payload?.content?l.payload.content:"";if(!a)continue;g.totalContentLength+=a.length;let c={id:e,object:"chat.completion.chunk",created:f,model:b,choices:[{index:0,delta:0===d?{role:"assistant",content:a}:{content:a},finish_reason:null}]};d++,h.enqueue(new TextEncoder().encode(`data: ${JSON.stringify(c)}
2
2
 
3
3
  `))}if("codeEvent"===m&&l.payload?.content){let a={id:e,object:"chat.completion.chunk",created:f,model:b,choices:[{index:0,delta:{content:l.payload.content},finish_reason:null}]};d++,h.enqueue(new TextEncoder().encode(`data: ${JSON.stringify(a)}
4
4