vansrouter 0.91.21 → 0.91.22

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 (626) hide show
  1. package/app/.next-cli-build/BUILD_ID +1 -1
  2. package/app/.next-cli-build/app-path-routes-manifest.json +17 -17
  3. package/app/.next-cli-build/build-manifest.json +3 -3
  4. package/app/.next-cli-build/prerender-manifest.json +3 -3
  5. package/app/.next-cli-build/react-loadable-manifest.json +6 -6
  6. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js.nft.json +1 -1
  7. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
  8. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js.nft.json +1 -1
  9. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page_client-reference-manifest.js +1 -1
  10. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json +1 -1
  11. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  12. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js.nft.json +1 -1
  13. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  14. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js.nft.json +1 -1
  15. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
  16. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json +1 -1
  17. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  18. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js.nft.json +1 -1
  19. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js +1 -1
  20. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js.nft.json +1 -1
  21. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page_client-reference-manifest.js +1 -1
  22. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js.nft.json +1 -1
  23. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page_client-reference-manifest.js +1 -1
  24. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js.nft.json +1 -1
  25. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page_client-reference-manifest.js +1 -1
  26. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js.nft.json +1 -1
  27. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
  28. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
  29. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  30. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js.nft.json +1 -1
  31. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  32. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json +1 -1
  33. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  34. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js.nft.json +1 -1
  35. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  36. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js.nft.json +1 -1
  37. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  38. package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-fitness/page.js.nft.json +1 -1
  39. package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-fitness/page_client-reference-manifest.js +1 -1
  40. package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page.js.nft.json +1 -1
  41. package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
  42. package/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page.js.nft.json +1 -1
  43. package/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page_client-reference-manifest.js +1 -1
  44. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js.nft.json +1 -1
  45. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
  46. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page.js.nft.json +1 -1
  47. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page_client-reference-manifest.js +1 -1
  48. package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page.js.nft.json +1 -1
  49. package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page_client-reference-manifest.js +1 -1
  50. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js.nft.json +1 -1
  51. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  52. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js.nft.json +1 -1
  53. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  54. package/app/.next-cli-build/server/app/_global-error/page.js.nft.json +1 -1
  55. package/app/.next-cli-build/server/app/_global-error/page_client-reference-manifest.js +1 -1
  56. package/app/.next-cli-build/server/app/_global-error.html +1 -1
  57. package/app/.next-cli-build/server/app/_global-error.rsc +1 -1
  58. package/app/.next-cli-build/server/app/_global-error.segments/_full.segment.rsc +1 -1
  59. package/app/.next-cli-build/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  60. package/app/.next-cli-build/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  61. package/app/.next-cli-build/server/app/_global-error.segments/_head.segment.rsc +1 -1
  62. package/app/.next-cli-build/server/app/_global-error.segments/_index.segment.rsc +1 -1
  63. package/app/.next-cli-build/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  64. package/app/.next-cli-build/server/app/_not-found/page.js.nft.json +1 -1
  65. package/app/.next-cli-build/server/app/_not-found/page_client-reference-manifest.js +1 -1
  66. package/app/.next-cli-build/server/app/_not-found.html +1 -1
  67. package/app/.next-cli-build/server/app/_not-found.rsc +3 -3
  68. package/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +3 -3
  69. package/app/.next-cli-build/server/app/_not-found.segments/_head.segment.rsc +1 -1
  70. package/app/.next-cli-build/server/app/_not-found.segments/_index.segment.rsc +3 -3
  71. package/app/.next-cli-build/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  72. package/app/.next-cli-build/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  73. package/app/.next-cli-build/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  74. package/app/.next-cli-build/server/app/api/auth/check/route.js.nft.json +1 -1
  75. package/app/.next-cli-build/server/app/api/auth/login/route.js.nft.json +1 -1
  76. package/app/.next-cli-build/server/app/api/auth/logout/route.js +1 -1
  77. package/app/.next-cli-build/server/app/api/auth/logout/route.js.nft.json +1 -1
  78. package/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js +1 -1
  79. package/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js.nft.json +1 -1
  80. package/app/.next-cli-build/server/app/api/auth/oidc/start/route.js +1 -1
  81. package/app/.next-cli-build/server/app/api/auth/oidc/start/route.js.nft.json +1 -1
  82. package/app/.next-cli-build/server/app/api/auth/oidc/test/route.js +1 -1
  83. package/app/.next-cli-build/server/app/api/auth/oidc/test/route.js.nft.json +1 -1
  84. package/app/.next-cli-build/server/app/api/auth/reset-password/route.js.nft.json +1 -1
  85. package/app/.next-cli-build/server/app/api/auth/status/route.js +1 -1
  86. package/app/.next-cli-build/server/app/api/auth/status/route.js.nft.json +1 -1
  87. package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js +5 -5
  88. package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js.nft.json +1 -1
  89. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js +1 -1
  90. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js.nft.json +1 -1
  91. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js.nft.json +1 -1
  92. package/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js +2 -2
  93. package/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js.nft.json +1 -1
  94. package/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js +2 -2
  95. package/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js.nft.json +1 -1
  96. package/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js +1 -1
  97. package/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js.nft.json +1 -1
  98. package/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js +1 -1
  99. package/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js.nft.json +1 -1
  100. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js +2 -2
  101. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js.nft.json +1 -1
  102. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js +2 -2
  103. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js.nft.json +1 -1
  104. package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js +1 -1
  105. package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js.nft.json +1 -1
  106. package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js +1 -1
  107. package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js.nft.json +1 -1
  108. package/app/.next-cli-build/server/app/api/cli-tools/devin-settings/route.js +2 -2
  109. package/app/.next-cli-build/server/app/api/cli-tools/devin-settings/route.js.nft.json +1 -1
  110. package/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js +1 -1
  111. package/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js.nft.json +1 -1
  112. package/app/.next-cli-build/server/app/api/cli-tools/grok-build-settings/route.js +1 -1
  113. package/app/.next-cli-build/server/app/api/cli-tools/grok-build-settings/route.js.nft.json +1 -1
  114. package/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js +2 -2
  115. package/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js.nft.json +1 -1
  116. package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js +1 -1
  117. package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js.nft.json +1 -1
  118. package/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js +2 -2
  119. package/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js.nft.json +1 -1
  120. package/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js +2 -2
  121. package/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js.nft.json +1 -1
  122. package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js +1 -1
  123. package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js.nft.json +1 -1
  124. package/app/.next-cli-build/server/app/api/combos/[id]/route.js +1 -1
  125. package/app/.next-cli-build/server/app/api/combos/[id]/route.js.nft.json +1 -1
  126. package/app/.next-cli-build/server/app/api/combos/route.js +1 -1
  127. package/app/.next-cli-build/server/app/api/combos/route.js.nft.json +1 -1
  128. package/app/.next-cli-build/server/app/api/headroom/extras/route.js.nft.json +1 -1
  129. package/app/.next-cli-build/server/app/api/headroom/proxy/[...path]/route.js.nft.json +1 -1
  130. package/app/.next-cli-build/server/app/api/headroom/restart/route.js.nft.json +1 -1
  131. package/app/.next-cli-build/server/app/api/headroom/start/route.js.nft.json +1 -1
  132. package/app/.next-cli-build/server/app/api/headroom/status/route.js.nft.json +1 -1
  133. package/app/.next-cli-build/server/app/api/headroom/stop/route.js.nft.json +1 -1
  134. package/app/.next-cli-build/server/app/api/health/route.js.nft.json +1 -1
  135. package/app/.next-cli-build/server/app/api/init/route.js.nft.json +1 -1
  136. package/app/.next-cli-build/server/app/api/keys/[id]/route.js.nft.json +1 -1
  137. package/app/.next-cli-build/server/app/api/keys/route.js.nft.json +1 -1
  138. package/app/.next-cli-build/server/app/api/locale/route.js.nft.json +1 -1
  139. package/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js.nft.json +1 -1
  140. package/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js.nft.json +1 -1
  141. package/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js.nft.json +1 -1
  142. package/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js.nft.json +1 -1
  143. package/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js.nft.json +1 -1
  144. package/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js.nft.json +1 -1
  145. package/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js +1 -1
  146. package/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js.nft.json +1 -1
  147. package/app/.next-cli-build/server/app/api/models/alias/route.js.nft.json +1 -1
  148. package/app/.next-cli-build/server/app/api/models/availability/route.js.nft.json +1 -1
  149. package/app/.next-cli-build/server/app/api/models/catalog-sync/route.js.nft.json +1 -1
  150. package/app/.next-cli-build/server/app/api/models/custom/route.js.nft.json +1 -1
  151. package/app/.next-cli-build/server/app/api/models/disabled/route.js.nft.json +1 -1
  152. package/app/.next-cli-build/server/app/api/models/route.js +1 -1
  153. package/app/.next-cli-build/server/app/api/models/route.js.nft.json +1 -1
  154. package/app/.next-cli-build/server/app/api/models/test/route.js.nft.json +1 -1
  155. package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js +1 -1
  156. package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -1
  157. package/app/.next-cli-build/server/app/api/oauth/codex/bulk-import/route.js +1 -1
  158. package/app/.next-cli-build/server/app/api/oauth/codex/bulk-import/route.js.nft.json +1 -1
  159. package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js +1 -1
  160. package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js.nft.json +1 -1
  161. package/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js.nft.json +1 -1
  162. package/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js.nft.json +1 -1
  163. package/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js.nft.json +1 -1
  164. package/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/route.js.nft.json +1 -1
  165. package/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js.nft.json +1 -1
  166. package/app/.next-cli-build/server/app/api/oauth/kiro/api-key/route.js.nft.json +1 -1
  167. package/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route.js.nft.json +1 -1
  168. package/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js.nft.json +1 -1
  169. package/app/.next-cli-build/server/app/api/oauth/kiro/import-cli-proxy/route.js.nft.json +1 -1
  170. package/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js.nft.json +1 -1
  171. package/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js.nft.json +1 -1
  172. package/app/.next-cli-build/server/app/api/pricing/route.js.nft.json +1 -1
  173. package/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js.nft.json +1 -1
  174. package/app/.next-cli-build/server/app/api/provider-nodes/route.js.nft.json +1 -1
  175. package/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js.nft.json +1 -1
  176. package/app/.next-cli-build/server/app/api/providers/[id]/gcp-projects/route.js.nft.json +1 -1
  177. package/app/.next-cli-build/server/app/api/providers/[id]/models/route.js +1 -1
  178. package/app/.next-cli-build/server/app/api/providers/[id]/models/route.js.nft.json +1 -1
  179. package/app/.next-cli-build/server/app/api/providers/[id]/route.js.nft.json +1 -1
  180. package/app/.next-cli-build/server/app/api/providers/[id]/test/route.js +1 -1
  181. package/app/.next-cli-build/server/app/api/providers/[id]/test/route.js.nft.json +1 -1
  182. package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js.nft.json +1 -1
  183. package/app/.next-cli-build/server/app/api/providers/bulk/route.js +1 -1
  184. package/app/.next-cli-build/server/app/api/providers/bulk/route.js.nft.json +1 -1
  185. package/app/.next-cli-build/server/app/api/providers/circuit-breakers/[name]/reset/route.js.nft.json +1 -1
  186. package/app/.next-cli-build/server/app/api/providers/circuit-breakers/route.js.nft.json +1 -1
  187. package/app/.next-cli-build/server/app/api/providers/client/route.js +1 -1
  188. package/app/.next-cli-build/server/app/api/providers/client/route.js.nft.json +1 -1
  189. package/app/.next-cli-build/server/app/api/providers/kilo/free-models/route.js.nft.json +1 -1
  190. package/app/.next-cli-build/server/app/api/providers/route.js +1 -1
  191. package/app/.next-cli-build/server/app/api/providers/route.js.nft.json +1 -1
  192. package/app/.next-cli-build/server/app/api/providers/suggested-models/route.js.nft.json +1 -1
  193. package/app/.next-cli-build/server/app/api/providers/test-batch/route.js +1 -1
  194. package/app/.next-cli-build/server/app/api/providers/test-batch/route.js.nft.json +1 -1
  195. package/app/.next-cli-build/server/app/api/providers/validate/route.js +1 -1
  196. package/app/.next-cli-build/server/app/api/providers/validate/route.js.nft.json +1 -1
  197. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/fitness/clear/route.js +1 -1
  198. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/fitness/clear/route.js.nft.json +1 -1
  199. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js +1 -1
  200. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js.nft.json +1 -1
  201. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js +1 -1
  202. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js.nft.json +1 -1
  203. package/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js +1 -1
  204. package/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js.nft.json +1 -1
  205. package/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js +1 -1
  206. package/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js.nft.json +1 -1
  207. package/app/.next-cli-build/server/app/api/proxy-pools/fitness/clear-all/route.js +1 -1
  208. package/app/.next-cli-build/server/app/api/proxy-pools/fitness/clear-all/route.js.nft.json +1 -1
  209. package/app/.next-cli-build/server/app/api/proxy-pools/fitness/route.js +1 -1
  210. package/app/.next-cli-build/server/app/api/proxy-pools/fitness/route.js.nft.json +1 -1
  211. package/app/.next-cli-build/server/app/api/proxy-pools/route.js +1 -1
  212. package/app/.next-cli-build/server/app/api/proxy-pools/route.js.nft.json +1 -1
  213. package/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js +1 -1
  214. package/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js.nft.json +1 -1
  215. package/app/.next-cli-build/server/app/api/pxpipe/health/route.js.nft.json +1 -1
  216. package/app/.next-cli-build/server/app/api/pxpipe/install/route.js.nft.json +1 -1
  217. package/app/.next-cli-build/server/app/api/pxpipe/logs/route.js.nft.json +1 -1
  218. package/app/.next-cli-build/server/app/api/pxpipe/restart/route.js.nft.json +1 -1
  219. package/app/.next-cli-build/server/app/api/pxpipe/start/route.js.nft.json +1 -1
  220. package/app/.next-cli-build/server/app/api/pxpipe/stats/route.js.nft.json +1 -1
  221. package/app/.next-cli-build/server/app/api/pxpipe/status/route.js.nft.json +1 -1
  222. package/app/.next-cli-build/server/app/api/pxpipe/stop/route.js.nft.json +1 -1
  223. package/app/.next-cli-build/server/app/api/settings/database/route.js +1 -1
  224. package/app/.next-cli-build/server/app/api/settings/database/route.js.nft.json +1 -1
  225. package/app/.next-cli-build/server/app/api/settings/proxy-test/route.js.nft.json +1 -1
  226. package/app/.next-cli-build/server/app/api/settings/require-login/route.js.nft.json +1 -1
  227. package/app/.next-cli-build/server/app/api/settings/route.js +1 -1
  228. package/app/.next-cli-build/server/app/api/settings/route.js.nft.json +1 -1
  229. package/app/.next-cli-build/server/app/api/shutdown/route.js.nft.json +1 -1
  230. package/app/.next-cli-build/server/app/api/tags/route.js.nft.json +1 -1
  231. package/app/.next-cli-build/server/app/api/translator/console-logs/route.js.nft.json +1 -1
  232. package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js.nft.json +1 -1
  233. package/app/.next-cli-build/server/app/api/translator/load/route.js.nft.json +1 -1
  234. package/app/.next-cli-build/server/app/api/translator/save/route.js.nft.json +1 -1
  235. package/app/.next-cli-build/server/app/api/translator/send/route.js +1 -1
  236. package/app/.next-cli-build/server/app/api/translator/send/route.js.nft.json +1 -1
  237. package/app/.next-cli-build/server/app/api/translator/translate/route.js +1 -1
  238. package/app/.next-cli-build/server/app/api/translator/translate/route.js.nft.json +1 -1
  239. package/app/.next-cli-build/server/app/api/tunnel/disable/route.js.nft.json +1 -1
  240. package/app/.next-cli-build/server/app/api/tunnel/enable/route.js.nft.json +1 -1
  241. package/app/.next-cli-build/server/app/api/tunnel/status/route.js.nft.json +1 -1
  242. package/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js.nft.json +1 -1
  243. package/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js.nft.json +1 -1
  244. package/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js.nft.json +1 -1
  245. package/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js +2 -2
  246. package/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js.nft.json +1 -1
  247. package/app/.next-cli-build/server/app/api/usage/[connectionId]/codex-reset-credits/route.js +1 -1
  248. package/app/.next-cli-build/server/app/api/usage/[connectionId]/codex-reset-credits/route.js.nft.json +1 -1
  249. package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js +1 -1
  250. package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
  251. package/app/.next-cli-build/server/app/api/usage/chart/route.js.nft.json +1 -1
  252. package/app/.next-cli-build/server/app/api/usage/history/route.js.nft.json +1 -1
  253. package/app/.next-cli-build/server/app/api/usage/logs/route.js.nft.json +1 -1
  254. package/app/.next-cli-build/server/app/api/usage/providers/route.js.nft.json +1 -1
  255. package/app/.next-cli-build/server/app/api/usage/request-details/[id]/route.js.nft.json +1 -1
  256. package/app/.next-cli-build/server/app/api/usage/request-details/route.js.nft.json +1 -1
  257. package/app/.next-cli-build/server/app/api/usage/request-logs/route.js.nft.json +1 -1
  258. package/app/.next-cli-build/server/app/api/usage/stats/route.js.nft.json +1 -1
  259. package/app/.next-cli-build/server/app/api/usage/stream/route.js.nft.json +1 -1
  260. package/app/.next-cli-build/server/app/api/v1/api/chat/route.js +1 -1
  261. package/app/.next-cli-build/server/app/api/v1/api/chat/route.js.nft.json +1 -1
  262. package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js +1 -1
  263. package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js.nft.json +1 -1
  264. package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js +1 -1
  265. package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js.nft.json +1 -1
  266. package/app/.next-cli-build/server/app/api/v1/audio/voices/route.js.nft.json +1 -1
  267. package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js +1 -1
  268. package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
  269. package/app/.next-cli-build/server/app/api/v1/embeddings/route.js +1 -1
  270. package/app/.next-cli-build/server/app/api/v1/embeddings/route.js.nft.json +1 -1
  271. package/app/.next-cli-build/server/app/api/v1/images/generations/route.js +2 -2
  272. package/app/.next-cli-build/server/app/api/v1/images/generations/route.js.nft.json +1 -1
  273. package/app/.next-cli-build/server/app/api/v1/messages/count_tokens/route.js.nft.json +1 -1
  274. package/app/.next-cli-build/server/app/api/v1/messages/route.js +1 -1
  275. package/app/.next-cli-build/server/app/api/v1/messages/route.js.nft.json +1 -1
  276. package/app/.next-cli-build/server/app/api/v1/models/[kind]/route.js +1 -1
  277. package/app/.next-cli-build/server/app/api/v1/models/[kind]/route.js.nft.json +1 -1
  278. package/app/.next-cli-build/server/app/api/v1/models/info/route.js.nft.json +1 -1
  279. package/app/.next-cli-build/server/app/api/v1/models/route.js +1 -1
  280. package/app/.next-cli-build/server/app/api/v1/models/route.js.nft.json +1 -1
  281. package/app/.next-cli-build/server/app/api/v1/responses/compact/route.js +1 -1
  282. package/app/.next-cli-build/server/app/api/v1/responses/compact/route.js.nft.json +1 -1
  283. package/app/.next-cli-build/server/app/api/v1/responses/route.js +1 -1
  284. package/app/.next-cli-build/server/app/api/v1/responses/route.js.nft.json +1 -1
  285. package/app/.next-cli-build/server/app/api/v1/route.js +1 -1
  286. package/app/.next-cli-build/server/app/api/v1/route.js.nft.json +1 -1
  287. package/app/.next-cli-build/server/app/api/v1/search/route.js +1 -1
  288. package/app/.next-cli-build/server/app/api/v1/search/route.js.nft.json +1 -1
  289. package/app/.next-cli-build/server/app/api/v1/videos/[id]/route.js +1 -1
  290. package/app/.next-cli-build/server/app/api/v1/videos/[id]/route.js.nft.json +1 -1
  291. package/app/.next-cli-build/server/app/api/v1/videos/edits/route.js +1 -1
  292. package/app/.next-cli-build/server/app/api/v1/videos/edits/route.js.nft.json +1 -1
  293. package/app/.next-cli-build/server/app/api/v1/videos/extensions/route.js +1 -1
  294. package/app/.next-cli-build/server/app/api/v1/videos/extensions/route.js.nft.json +1 -1
  295. package/app/.next-cli-build/server/app/api/v1/videos/generations/route.js +1 -1
  296. package/app/.next-cli-build/server/app/api/v1/videos/generations/route.js.nft.json +1 -1
  297. package/app/.next-cli-build/server/app/api/v1/web/fetch/route.js +1 -1
  298. package/app/.next-cli-build/server/app/api/v1/web/fetch/route.js.nft.json +1 -1
  299. package/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js +1 -1
  300. package/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
  301. package/app/.next-cli-build/server/app/api/v1beta/models/route.js.nft.json +1 -1
  302. package/app/.next-cli-build/server/app/api/version/route.js +1 -1
  303. package/app/.next-cli-build/server/app/api/version/route.js.nft.json +1 -1
  304. package/app/.next-cli-build/server/app/api/version/shutdown/route.js.nft.json +1 -1
  305. package/app/.next-cli-build/server/app/api/version/update/route.js.nft.json +1 -1
  306. package/app/.next-cli-build/server/app/callback/page.js.nft.json +1 -1
  307. package/app/.next-cli-build/server/app/callback/page_client-reference-manifest.js +1 -1
  308. package/app/.next-cli-build/server/app/callback.html +1 -1
  309. package/app/.next-cli-build/server/app/callback.rsc +3 -3
  310. package/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +3 -3
  311. package/app/.next-cli-build/server/app/callback.segments/_head.segment.rsc +1 -1
  312. package/app/.next-cli-build/server/app/callback.segments/_index.segment.rsc +3 -3
  313. package/app/.next-cli-build/server/app/callback.segments/_tree.segment.rsc +1 -1
  314. package/app/.next-cli-build/server/app/callback.segments/callback/__PAGE__.segment.rsc +1 -1
  315. package/app/.next-cli-build/server/app/callback.segments/callback.segment.rsc +1 -1
  316. package/app/.next-cli-build/server/app/dashboard/basic-chat.html +1 -1
  317. package/app/.next-cli-build/server/app/dashboard/basic-chat.rsc +5 -5
  318. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +2 -2
  319. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat.segment.rsc +1 -1
  320. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  321. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  322. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_full.segment.rsc +5 -5
  323. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_head.segment.rsc +1 -1
  324. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_index.segment.rsc +3 -3
  325. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +1 -1
  326. package/app/.next-cli-build/server/app/dashboard/cli-tools.html +1 -1
  327. package/app/.next-cli-build/server/app/dashboard/cli-tools.rsc +6 -6
  328. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +2 -2
  329. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools.segment.rsc +1 -1
  330. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  331. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  332. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_full.segment.rsc +6 -6
  333. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_head.segment.rsc +1 -1
  334. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_index.segment.rsc +3 -3
  335. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +1 -1
  336. package/app/.next-cli-build/server/app/dashboard/combos.html +1 -1
  337. package/app/.next-cli-build/server/app/dashboard/combos.rsc +5 -5
  338. package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +2 -2
  339. package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos.segment.rsc +1 -1
  340. package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  341. package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  342. package/app/.next-cli-build/server/app/dashboard/combos.segments/_full.segment.rsc +5 -5
  343. package/app/.next-cli-build/server/app/dashboard/combos.segments/_head.segment.rsc +1 -1
  344. package/app/.next-cli-build/server/app/dashboard/combos.segments/_index.segment.rsc +3 -3
  345. package/app/.next-cli-build/server/app/dashboard/combos.segments/_tree.segment.rsc +1 -1
  346. package/app/.next-cli-build/server/app/dashboard/endpoint.html +1 -1
  347. package/app/.next-cli-build/server/app/dashboard/endpoint.rsc +6 -6
  348. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +2 -2
  349. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint.segment.rsc +1 -1
  350. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  351. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  352. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_full.segment.rsc +6 -6
  353. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_head.segment.rsc +1 -1
  354. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_index.segment.rsc +3 -3
  355. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_tree.segment.rsc +1 -1
  356. package/app/.next-cli-build/server/app/dashboard/media-providers/web.html +1 -1
  357. package/app/.next-cli-build/server/app/dashboard/media-providers/web.rsc +5 -5
  358. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web/__PAGE__.segment.rsc +2 -2
  359. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web.segment.rsc +1 -1
  360. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers.segment.rsc +1 -1
  361. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  362. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  363. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_full.segment.rsc +5 -5
  364. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_head.segment.rsc +1 -1
  365. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_index.segment.rsc +3 -3
  366. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_tree.segment.rsc +1 -1
  367. package/app/.next-cli-build/server/app/dashboard/mitm.html +1 -1
  368. package/app/.next-cli-build/server/app/dashboard/mitm.rsc +5 -5
  369. package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +2 -2
  370. package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm.segment.rsc +1 -1
  371. package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  372. package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  373. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_full.segment.rsc +5 -5
  374. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_head.segment.rsc +1 -1
  375. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_index.segment.rsc +3 -3
  376. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_tree.segment.rsc +1 -1
  377. package/app/.next-cli-build/server/app/dashboard/profile.html +1 -1
  378. package/app/.next-cli-build/server/app/dashboard/profile.rsc +5 -5
  379. package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +2 -2
  380. package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile.segment.rsc +1 -1
  381. package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  382. package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  383. package/app/.next-cli-build/server/app/dashboard/profile.segments/_full.segment.rsc +5 -5
  384. package/app/.next-cli-build/server/app/dashboard/profile.segments/_head.segment.rsc +1 -1
  385. package/app/.next-cli-build/server/app/dashboard/profile.segments/_index.segment.rsc +3 -3
  386. package/app/.next-cli-build/server/app/dashboard/profile.segments/_tree.segment.rsc +1 -1
  387. package/app/.next-cli-build/server/app/dashboard/providers/new.html +1 -1
  388. package/app/.next-cli-build/server/app/dashboard/providers/new.rsc +5 -5
  389. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +2 -2
  390. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new.segment.rsc +1 -1
  391. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
  392. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  393. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  394. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_full.segment.rsc +5 -5
  395. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_head.segment.rsc +1 -1
  396. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_index.segment.rsc +3 -3
  397. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_tree.segment.rsc +1 -1
  398. package/app/.next-cli-build/server/app/dashboard/providers.html +1 -1
  399. package/app/.next-cli-build/server/app/dashboard/providers.rsc +5 -5
  400. package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +2 -2
  401. package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
  402. package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  403. package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  404. package/app/.next-cli-build/server/app/dashboard/providers.segments/_full.segment.rsc +5 -5
  405. package/app/.next-cli-build/server/app/dashboard/providers.segments/_head.segment.rsc +1 -1
  406. package/app/.next-cli-build/server/app/dashboard/providers.segments/_index.segment.rsc +3 -3
  407. package/app/.next-cli-build/server/app/dashboard/providers.segments/_tree.segment.rsc +1 -1
  408. package/app/.next-cli-build/server/app/dashboard/proxy-fitness.html +1 -1
  409. package/app/.next-cli-build/server/app/dashboard/proxy-fitness.rsc +5 -5
  410. package/app/.next-cli-build/server/app/dashboard/proxy-fitness.segments/!KGRhc2hib2FyZCk/dashboard/proxy-fitness/__PAGE__.segment.rsc +2 -2
  411. package/app/.next-cli-build/server/app/dashboard/proxy-fitness.segments/!KGRhc2hib2FyZCk/dashboard/proxy-fitness.segment.rsc +1 -1
  412. package/app/.next-cli-build/server/app/dashboard/proxy-fitness.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  413. package/app/.next-cli-build/server/app/dashboard/proxy-fitness.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  414. package/app/.next-cli-build/server/app/dashboard/proxy-fitness.segments/_full.segment.rsc +5 -5
  415. package/app/.next-cli-build/server/app/dashboard/proxy-fitness.segments/_head.segment.rsc +1 -1
  416. package/app/.next-cli-build/server/app/dashboard/proxy-fitness.segments/_index.segment.rsc +3 -3
  417. package/app/.next-cli-build/server/app/dashboard/proxy-fitness.segments/_tree.segment.rsc +1 -1
  418. package/app/.next-cli-build/server/app/dashboard/proxy-pools.html +1 -1
  419. package/app/.next-cli-build/server/app/dashboard/proxy-pools.rsc +5 -5
  420. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +2 -2
  421. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools.segment.rsc +1 -1
  422. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  423. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  424. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +5 -5
  425. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_head.segment.rsc +1 -1
  426. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_index.segment.rsc +3 -3
  427. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +1 -1
  428. package/app/.next-cli-build/server/app/dashboard/pxpipe.html +1 -1
  429. package/app/.next-cli-build/server/app/dashboard/pxpipe.rsc +5 -5
  430. package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard/pxpipe/__PAGE__.segment.rsc +2 -2
  431. package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard/pxpipe.segment.rsc +1 -1
  432. package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  433. package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  434. package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_full.segment.rsc +5 -5
  435. package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_head.segment.rsc +1 -1
  436. package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_index.segment.rsc +3 -3
  437. package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_tree.segment.rsc +1 -1
  438. package/app/.next-cli-build/server/app/dashboard/quota.html +2 -2
  439. package/app/.next-cli-build/server/app/dashboard/quota.rsc +6 -6
  440. package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +3 -3
  441. package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota.segment.rsc +1 -1
  442. package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  443. package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  444. package/app/.next-cli-build/server/app/dashboard/quota.segments/_full.segment.rsc +6 -6
  445. package/app/.next-cli-build/server/app/dashboard/quota.segments/_head.segment.rsc +1 -1
  446. package/app/.next-cli-build/server/app/dashboard/quota.segments/_index.segment.rsc +3 -3
  447. package/app/.next-cli-build/server/app/dashboard/quota.segments/_tree.segment.rsc +1 -1
  448. package/app/.next-cli-build/server/app/dashboard/settings/pricing/page.js.nft.json +1 -1
  449. package/app/.next-cli-build/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  450. package/app/.next-cli-build/server/app/dashboard/settings/pricing.html +1 -1
  451. package/app/.next-cli-build/server/app/dashboard/settings/pricing.rsc +3 -3
  452. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +3 -3
  453. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_head.segment.rsc +1 -1
  454. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_index.segment.rsc +3 -3
  455. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +1 -1
  456. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +1 -1
  457. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing.segment.rsc +1 -1
  458. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings.segment.rsc +1 -1
  459. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard.segment.rsc +1 -1
  460. package/app/.next-cli-build/server/app/dashboard/skills.html +1 -1
  461. package/app/.next-cli-build/server/app/dashboard/skills.rsc +5 -5
  462. package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills/__PAGE__.segment.rsc +2 -2
  463. package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills.segment.rsc +1 -1
  464. package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  465. package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  466. package/app/.next-cli-build/server/app/dashboard/skills.segments/_full.segment.rsc +5 -5
  467. package/app/.next-cli-build/server/app/dashboard/skills.segments/_head.segment.rsc +1 -1
  468. package/app/.next-cli-build/server/app/dashboard/skills.segments/_index.segment.rsc +3 -3
  469. package/app/.next-cli-build/server/app/dashboard/skills.segments/_tree.segment.rsc +1 -1
  470. package/app/.next-cli-build/server/app/dashboard/token-saver.html +1 -1
  471. package/app/.next-cli-build/server/app/dashboard/token-saver.rsc +5 -5
  472. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver/__PAGE__.segment.rsc +2 -2
  473. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver.segment.rsc +1 -1
  474. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  475. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  476. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_full.segment.rsc +5 -5
  477. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_head.segment.rsc +1 -1
  478. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_index.segment.rsc +3 -3
  479. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_tree.segment.rsc +1 -1
  480. package/app/.next-cli-build/server/app/dashboard/translator.html +1 -1
  481. package/app/.next-cli-build/server/app/dashboard/translator.rsc +5 -5
  482. package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +2 -2
  483. package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator.segment.rsc +1 -1
  484. package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  485. package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  486. package/app/.next-cli-build/server/app/dashboard/translator.segments/_full.segment.rsc +5 -5
  487. package/app/.next-cli-build/server/app/dashboard/translator.segments/_head.segment.rsc +1 -1
  488. package/app/.next-cli-build/server/app/dashboard/translator.segments/_index.segment.rsc +3 -3
  489. package/app/.next-cli-build/server/app/dashboard/translator.segments/_tree.segment.rsc +1 -1
  490. package/app/.next-cli-build/server/app/dashboard/usage.html +1 -1
  491. package/app/.next-cli-build/server/app/dashboard/usage.rsc +5 -5
  492. package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +2 -2
  493. package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage.segment.rsc +1 -1
  494. package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  495. package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  496. package/app/.next-cli-build/server/app/dashboard/usage.segments/_full.segment.rsc +5 -5
  497. package/app/.next-cli-build/server/app/dashboard/usage.segments/_head.segment.rsc +1 -1
  498. package/app/.next-cli-build/server/app/dashboard/usage.segments/_index.segment.rsc +3 -3
  499. package/app/.next-cli-build/server/app/dashboard/usage.segments/_tree.segment.rsc +1 -1
  500. package/app/.next-cli-build/server/app/dashboard.html +1 -1
  501. package/app/.next-cli-build/server/app/dashboard.rsc +5 -5
  502. package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +2 -2
  503. package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  504. package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  505. package/app/.next-cli-build/server/app/dashboard.segments/_full.segment.rsc +5 -5
  506. package/app/.next-cli-build/server/app/dashboard.segments/_head.segment.rsc +1 -1
  507. package/app/.next-cli-build/server/app/dashboard.segments/_index.segment.rsc +3 -3
  508. package/app/.next-cli-build/server/app/dashboard.segments/_tree.segment.rsc +1 -1
  509. package/app/.next-cli-build/server/app/favicon.ico/route.js.nft.json +1 -1
  510. package/app/.next-cli-build/server/app/landing/page.js.nft.json +1 -1
  511. package/app/.next-cli-build/server/app/landing/page_client-reference-manifest.js +1 -1
  512. package/app/.next-cli-build/server/app/landing.html +1 -1
  513. package/app/.next-cli-build/server/app/landing.rsc +3 -3
  514. package/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +3 -3
  515. package/app/.next-cli-build/server/app/landing.segments/_head.segment.rsc +1 -1
  516. package/app/.next-cli-build/server/app/landing.segments/_index.segment.rsc +3 -3
  517. package/app/.next-cli-build/server/app/landing.segments/_tree.segment.rsc +1 -1
  518. package/app/.next-cli-build/server/app/landing.segments/landing/__PAGE__.segment.rsc +1 -1
  519. package/app/.next-cli-build/server/app/landing.segments/landing.segment.rsc +1 -1
  520. package/app/.next-cli-build/server/app/login/page.js.nft.json +1 -1
  521. package/app/.next-cli-build/server/app/login/page_client-reference-manifest.js +1 -1
  522. package/app/.next-cli-build/server/app/login.html +1 -1
  523. package/app/.next-cli-build/server/app/login.rsc +4 -4
  524. package/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +4 -4
  525. package/app/.next-cli-build/server/app/login.segments/_head.segment.rsc +1 -1
  526. package/app/.next-cli-build/server/app/login.segments/_index.segment.rsc +3 -3
  527. package/app/.next-cli-build/server/app/login.segments/_tree.segment.rsc +1 -1
  528. package/app/.next-cli-build/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
  529. package/app/.next-cli-build/server/app/login.segments/login.segment.rsc +1 -1
  530. package/app/.next-cli-build/server/app/manifest.webmanifest/route.js.nft.json +1 -1
  531. package/app/.next-cli-build/server/app/masuk/page.js +1 -1
  532. package/app/.next-cli-build/server/app/masuk/page.js.nft.json +1 -1
  533. package/app/.next-cli-build/server/app/masuk/page_client-reference-manifest.js +1 -1
  534. package/app/.next-cli-build/server/app-paths-manifest.json +17 -17
  535. package/app/.next-cli-build/server/chunks/1685.js +2 -2
  536. package/app/.next-cli-build/server/chunks/1688.js +2 -2
  537. package/app/.next-cli-build/server/chunks/2411.js +1 -1
  538. package/app/.next-cli-build/server/chunks/2445.js +1 -1
  539. package/app/.next-cli-build/server/chunks/2549.js +1 -0
  540. package/app/.next-cli-build/server/chunks/2557.js +4 -10
  541. package/app/.next-cli-build/server/chunks/2764.js +1 -1
  542. package/app/.next-cli-build/server/chunks/2927.js +2 -2
  543. package/app/.next-cli-build/server/chunks/3040.js +2 -2
  544. package/app/.next-cli-build/server/chunks/32.js +2 -2
  545. package/app/.next-cli-build/server/chunks/3405.js +1 -1
  546. package/app/.next-cli-build/server/chunks/3519.js +1 -1
  547. package/app/.next-cli-build/server/chunks/3736.js +1 -1
  548. package/app/.next-cli-build/server/chunks/3787.js +1 -1
  549. package/app/.next-cli-build/server/chunks/4004.js +1 -1
  550. package/app/.next-cli-build/server/chunks/4029.js +2 -2
  551. package/app/.next-cli-build/server/chunks/4105.js +1 -1
  552. package/app/.next-cli-build/server/chunks/4502.js +13 -13
  553. package/app/.next-cli-build/server/chunks/4539.js +2 -2
  554. package/app/.next-cli-build/server/chunks/4574.js +44 -44
  555. package/app/.next-cli-build/server/chunks/4836.js +1 -1
  556. package/app/.next-cli-build/server/chunks/5006.js +1 -1
  557. package/app/.next-cli-build/server/chunks/5009.js +1 -1
  558. package/app/.next-cli-build/server/chunks/5050.js +1 -1
  559. package/app/.next-cli-build/server/chunks/5198.js +1 -1
  560. package/app/.next-cli-build/server/chunks/5302.js +1 -1
  561. package/app/.next-cli-build/server/chunks/5538.js +1 -0
  562. package/app/.next-cli-build/server/chunks/5598.js +1 -1
  563. package/app/.next-cli-build/server/chunks/6165.js +1 -1
  564. package/app/.next-cli-build/server/chunks/622.js +1 -0
  565. package/app/.next-cli-build/server/chunks/635.js +1 -0
  566. package/app/.next-cli-build/server/chunks/6385.js +1 -1
  567. package/app/.next-cli-build/server/chunks/6723.js +1 -1
  568. package/app/.next-cli-build/server/chunks/7006.js +2 -2
  569. package/app/.next-cli-build/server/chunks/7104.js +1 -1
  570. package/app/.next-cli-build/server/chunks/7425.js +1 -1
  571. package/app/.next-cli-build/server/chunks/7693.js +2 -2
  572. package/app/.next-cli-build/server/chunks/7938.js +2 -2
  573. package/app/.next-cli-build/server/chunks/7950.js +1 -1
  574. package/app/.next-cli-build/server/chunks/8691.js +2 -2
  575. package/app/.next-cli-build/server/chunks/8695.js +1 -1
  576. package/app/.next-cli-build/server/chunks/8772.js +1 -0
  577. package/app/.next-cli-build/server/chunks/912.js +1 -1
  578. package/app/.next-cli-build/server/chunks/9770.js +1 -0
  579. package/app/.next-cli-build/server/chunks/9784.js +1 -1
  580. package/app/.next-cli-build/server/chunks/9808.js +7 -0
  581. package/app/.next-cli-build/server/chunks/9974.js +1 -1
  582. package/app/.next-cli-build/server/chunks/9984.js +1 -1
  583. package/app/.next-cli-build/server/middleware-build-manifest.js +1 -1
  584. package/app/.next-cli-build/server/middleware-react-loadable-manifest.js +1 -1
  585. package/app/.next-cli-build/server/middleware.js +3 -3
  586. package/app/.next-cli-build/server/pages/404.html +1 -1
  587. package/app/.next-cli-build/server/pages/500.html +1 -1
  588. package/app/.next-cli-build/server/server-reference-manifest.js +1 -1
  589. package/app/.next-cli-build/server/server-reference-manifest.json +1 -1
  590. package/app/.next-cli-build/static/chunks/1049.aa4f733370082c0d.js +7 -0
  591. package/app/.next-cli-build/static/chunks/{2940-b6dd0c5879412cea.js → 2940-0706a20a7c56dae1.js} +1 -1
  592. package/app/.next-cli-build/static/chunks/4385-8a145d343c888113.js +1 -0
  593. package/app/.next-cli-build/static/chunks/4964.6c8742ba86d45244.js +7 -0
  594. package/app/.next-cli-build/static/chunks/{5331.049b1512362de1f4.js → 5331.6cd97e3af09b08eb.js} +1 -1
  595. package/app/.next-cli-build/static/chunks/5479-0397a316e918cfaf.js +1 -0
  596. package/app/.next-cli-build/static/chunks/{9131-f4afa0414d45c1d1.js → 9131-e475ca6f20af6320.js} +1 -1
  597. package/app/.next-cli-build/static/chunks/{webpack-81a7adaed327dd6b.js → webpack-092d669f441fbd84.js} +1 -1
  598. package/app/custom-server.js +37 -37
  599. package/app/package.json +1 -3
  600. package/app/src/lib/db/adapters/betterSqliteAdapter.js +12 -4
  601. package/app/src/lib/db/adapters/nodeSqliteAdapter.js +12 -3
  602. package/app/src/lib/db/adapters/sqljsAdapter.js +13 -6
  603. package/app/src/lib/db/migrate.js +299 -299
  604. package/app/src/shared/services/quotaAutoPing.js +313 -313
  605. package/hooks/sqliteRuntime.js +188 -188
  606. package/package.json +1 -1
  607. package/src/cli/api/client.js +556 -556
  608. package/src/cli/commands/xaiVideo.js +300 -300
  609. package/src/cli/menus/combos.js +0 -103
  610. package/src/cli/menus/providers.js +868 -858
  611. package/src/cli/menus/settings.js +204 -204
  612. package/src/cli/utils/modelSelector.js +189 -51
  613. package/app/.next-cli-build/server/chunks/2732.js +0 -1
  614. package/app/.next-cli-build/server/chunks/3539.js +0 -1
  615. package/app/.next-cli-build/server/chunks/4816.js +0 -1
  616. package/app/.next-cli-build/server/chunks/6793.js +0 -1
  617. package/app/.next-cli-build/server/chunks/6931.js +0 -1
  618. package/app/.next-cli-build/server/chunks/9162.js +0 -1
  619. package/app/.next-cli-build/server/chunks/9614.js +0 -7
  620. package/app/.next-cli-build/server/chunks/9787.js +0 -1
  621. package/app/.next-cli-build/static/chunks/1049.adc9916d5a6b95f8.js +0 -7
  622. package/app/.next-cli-build/static/chunks/4385-ce7b55264de51d47.js +0 -1
  623. package/app/.next-cli-build/static/chunks/5479-20746781c1de7eb2.js +0 -1
  624. package/app/.next-cli-build/static/chunks/9078.ea6aeb4af0c25e5d.js +0 -7
  625. /package/app/.next-cli-build/static/{yvUSImiXUeMIOPHHzKVq_ → 4VmP0yWnLncSA5CQqLYsu}/_buildManifest.js +0 -0
  626. /package/app/.next-cli-build/static/{yvUSImiXUeMIOPHHzKVq_ → 4VmP0yWnLncSA5CQqLYsu}/_ssgManifest.js +0 -0
@@ -10,17 +10,11 @@ ${c.content}`:b)}},14018:(a,b,c)=>{c.d(b,{DT:()=>q,NE:()=>r});var d=c(69152),e=c
10
10
  ![image](data:${a};base64,${b.data})
11
11
  `}}let i={role:"assistant"};f&&(i.content=f),g&&(i.reasoning_content=g),h.length>0&&(i.tool_calls=h),i.content||i.tool_calls||(i.content="");let j=(c.finishReason||"stop").toLowerCase();"stop"===j&&h.length>0&&(j="tool_calls");let k={id:`chatcmpl-${b.responseId||Date.now()}`,object:"chat.completion",created:Math.floor(new Date(b.createTime||Date.now()).getTime()/1e3),model:b.modelVersion||"gemini",choices:[{index:0,message:i,finish_reason:j}]};return e&&(k.usage={prompt_tokens:(e.promptTokenCount||0)+(e.thoughtsTokenCount||0),completion_tokens:e.candidatesTokenCount||0,total_tokens:e.totalTokenCount||0},e.thoughtsTokenCount>0&&(k.usage.completion_tokens_details={reasoning_tokens:e.thoughtsTokenCount})),k}if(b===d.h.CLAUDE){if(a.choices||a.content&&!Array.isArray(a.content))return a;let b="",c="",d=[];for(let e of a.content||[])"text"===e.type?b+=(e.text??"").replace(/^\s*```\s*json\s*\n?/i,"").replace(/\n?\s*```\s*$/i,""):"thinking"===e.type?c+=e.thinking||"":"tool_use"===e.type&&d.push({id:e.id,type:"function",function:{name:e.name,arguments:JSON.stringify(e.input||{})}});let e={role:"assistant"};b&&(e.content=b),c&&(e.reasoning_content=c),d.length>0&&(e.tool_calls=d),e.content||e.tool_calls||(e.content="");let f=a.stop_reason||"stop";"end_turn"===f&&(f="stop"),"tool_use"===f&&(f="tool_calls");let g={id:`chatcmpl-${a.id||Date.now()}`,object:"chat.completion",created:Math.floor(Date.now()/1e3),model:a.model||"claude",choices:[{index:0,message:e,finish_reason:f}]};return a.usage&&(g.usage={prompt_tokens:a.usage.prompt_tokens||a.usage.input_tokens||0,completion_tokens:a.usage.completion_tokens||a.usage.output_tokens||0,total_tokens:a.usage.total_tokens||(a.usage.prompt_tokens||a.usage.input_tokens||0)+(a.usage.completion_tokens||a.usage.output_tokens||0)},a.usage.completion_tokens_details&&(g.usage.completion_tokens_details=a.usage.completion_tokens_details)),g}return b===d.h.OLLAMA?(0,f._)(a):a}(M,t,s):M,P=!1,Q=O;if(s===d.h.CLAUDE&&t!==d.h.CLAUDE){let a=q(O,c);Q=(0,o.kR)(a,H),P=!0}if(!P){if(/kimi-k2\./i.test(c||"")&&Array.isArray(O?.choices))for(let a of O.choices){let b=a?.message;if(!b||"assistant"!==b.role)continue;let{message:c,hasTools:d}=(0,g.vH)(b);d&&(a.message=c)}if(O?.choices?.[0]){let a=O.choices[0],b=a.message;Array.isArray(b?.tool_calls)&&b.tool_calls.length>0&&"tool_calls"!==a.finish_reason&&(a.finish_reason="tool_calls")}if(O.object||(O.object="chat.completion"),O.created||(O.created=Math.floor(Date.now()/1e3)),delete O.prompt_filter_results,O?.choices)for(let a of O.choices)delete a.content_filter_results;O?.usage&&(O.usage=(0,h.WL)((0,h.O9)(O.usage),s));let a=!!(u?.reasoning_effort||u?.thinking?.type||u?.reasoning||u?.config?.thinking?.thinkingBudget||u?.reasoning_config);if(O?.choices&&!a)for(let a of O.choices){let b=a?.message;b&&(b.reasoning_content&&b.content&&delete b.reasoning_content,b.provider_specific_fields?.reasoning_content&&b.content&&delete b.provider_specific_fields.reasoning_content,b.provider_specific_fields?.reasoning&&b.content&&delete b.provider_specific_fields.reasoning)}}G.logConvertedResponse(Q);let R=Date.now()-y,S=Q?.choices?.[0]?.message?.content||(Array.isArray(Q?.content)?Q.content.find(a=>"text"===a.type)?.text||"":null)||"",T=Q?.choices?.[0]?.message?.reasoning_content||(Array.isArray(Q?.content)?Q.content.find(a=>"thinking"===a.type)?.thinking:null)||null,U=Q?.choices?.[0]?.finish_reason||Q?.stop_reason||"unknown";return(0,n.ox)((0,m.$R)({provider:b,model:c,connectionId:z,apiKey:A,apiKeyName:C,latency:{ttft:R,total:R},tokens:N||{prompt_tokens:0,completion_tokens:0},request:(0,m.Fo)(u,v),providerRequest:x||w||null,providerResponse:M||null,response:{content:S,thinking:T,finish_reason:U},pxpipe:K,status:"success"},{endpoint:E?.endpoint||null})).catch(a=>{console.error("[RequestDetail] Failed to save:",a.message)}),D&&Q&&"object"==typeof Q&&!Array.isArray(Q)&&(Q.model=D),{success:!0,response:new Response(JSON.stringify(Q),{headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}})}}},20526:(a,b,c)=>{c.d(b,{J:()=>i});var d=c(69152),e=c(19602),f=c(54215);function g(a,b){return!!a&&"string"==typeof a&&(a===b||a.split("\n\n").includes(b))}function h(a,b){return a?g(a,b)?a:`${a}
12
12
 
13
- ${b}`:b}function i(a,b,c){try{if(!a||!c||"object"!=typeof a)return;if(function(a){if(!a||"object"!=typeof a||"string"!=typeof a.systemPrompt)return!1;let b=a.conversationState;return!!b&&"object"==typeof b&&(Array.isArray(b.history)||!!(b.currentMessage&&"object"==typeof b.currentMessage))}(a)||b===d.h.KIRO)return void function(a,b){try{let c="string"==typeof a.systemPrompt?a.systemPrompt:"",d=a.conversationState,e=d&&Array.isArray(d.history)?d.history.find(a=>a&&a.userInputMessage)?.userInputMessage??null:null;if(!e&&d?.currentMessage?.userInputMessage&&(e=d.currentMessage.userInputMessage),e&&"string"==typeof e.content&&c&&!g(c,b)){let a=e.content;(a===c||a.startsWith(c)&&!a.startsWith(`${c}
14
-
15
- `))&&(c="")}if(c&&g(c,b))return;let f=c?`${c}
16
-
17
- ${b}`:b,h=null;try{let a=Array.isArray(d?.history)?d.history:null;if(a){for(let b of a)if(b?.userInputMessage){h=b.userInputMessage;break}}!h&&d?.currentMessage?.userInputMessage&&(h=d.currentMessage.userInputMessage)}catch(a){}let i=!1;try{a.systemPrompt=f,i=!0}catch(a){}try{if(h){let a="string"==typeof h.content?h.content:"";if(""===c){if(!a.startsWith(b)&&!a.startsWith(f))try{h.content=a?`${f}
18
-
19
- ${a}`:f}catch(a){}}else if(a.startsWith(c)&&!a.startsWith(f))try{h.content=`${f}${a.slice(c.length)}`}catch(a){}}}catch(a){}if(i&&h){let b=!1;try{let a=h.content;b="string"!=typeof a||a.startsWith(f)||!a.startsWith(c)}catch(a){}if(!b)try{a.systemPrompt=c}catch(a){}}}catch(a){}}(a,c);if(b===d.h.CLAUDE)return void function(a,b){try{let c=a.system;if("string"==typeof c){if(g(c,b))return;try{a.system=c?`${c}
13
+ ${b}`:b}function i(a,b,c){try{if(!a||!c||"object"!=typeof a)return;if(function(a){if(!a||"object"!=typeof a)return!1;let b=a.conversationState;return!!b&&"object"==typeof b&&(Array.isArray(b.history)&&b.history.some(a=>a&&(a.userInputMessage||a.assistantResponseMessage))||!!(b.currentMessage&&b.currentMessage.userInputMessage))}(a)||b===d.h.KIRO)return void function(a,b){try{let c=a.conversationState,d=null,e=Array.isArray(c?.history)?c.history:null;if(e){for(let a of e)if(a?.userInputMessage){d=a.userInputMessage;break}}if(!d&&c?.currentMessage?.userInputMessage&&(d=c.currentMessage.userInputMessage),!d)return;let f="string"==typeof d.content?d.content:"",g=h(f,b);if(g===f)return;try{d.content=g}catch(a){}}catch(a){}}(a,c);if(b===d.h.CLAUDE)return void function(a,b){try{let c=a.system;if("string"==typeof c){if(g(c,b))return;try{a.system=c?`${c}
20
14
 
21
15
  ${b}`:b}catch(a){}return}if(Array.isArray(c)){try{if(c.some(a=>a&&a.text===b))return}catch(a){}let a={type:e.R4.TEXT,text:b},d=-1;try{for(let a=c.length-1;a>=0;a--)if(c[a]?.cache_control){d=a;break}}catch(a){}try{d>=0?c.splice(d,0,a):c.push(a)}catch(a){}return}try{a.system=b}catch(a){}}catch(a){}}(a,c);if(b===d.h.GEMINI||b===d.h.GEMINI_CLI||b===d.h.VERTEX||b===d.h.ANTIGRAVITY)return void function(a,b){try{let c,d=a;try{a.request&&"object"==typeof a.request&&(d=a.request)}catch(a){}let e=!1;try{e=Object.prototype.hasOwnProperty.call(d,"system_instruction")}catch(a){}let f=e?"system_instruction":"systemInstruction";try{c=d[f]}catch(a){}if(c&&Array.isArray(c.parts)){try{if(c.parts.some(a=>a&&a.text===b))return}catch(a){}try{c.parts.push({text:b})}catch(a){}return}try{d[f]={parts:[{text:b}]}}catch(a){}}catch(a){}}(a,c);if("string"==typeof a.instructions)return void function(a,b){try{let c=a.instructions;if("string"!=typeof c||g(c,b))return;try{a.instructions=c?`${c}
22
16
 
23
- ${b}`:b}catch(a){}}catch(a){}}(a,c);if(Array.isArray(a.messages))return void function(a,b){try{let c=a.messages;if(!Array.isArray(c)||function(a,b){try{for(let c of a){if(!c||c.role!==f.z.SYSTEM&&c.role!==f.z.DEVELOPER)continue;let a=c.content;if("string"==typeof a&&g(a,b)||Array.isArray(a)&&a.some(a=>a&&"string"==typeof a.text&&g(a.text,b)))return!0}}catch(a){}return!1}(c,b))return;let d=-1;try{d=c.findIndex(a=>a&&(a.role===f.z.SYSTEM||a.role===f.z.DEVELOPER))}catch(a){return}if(d>=0)return void function(a,b){try{if(!a||"object"!=typeof a)return;let c=a.content;if("string"==typeof c){let d=h(c,b);if(d!==c)try{a.content=d}catch(a){}return}if(Array.isArray(c)){try{if(c.some(a=>a&&a.text===b))return}catch(a){}try{c.push({type:e.x4.TEXT,text:b})}catch(a){}return}try{a.content=b}catch(a){}}catch(a){}}(c[d],b);try{c.unshift({role:f.z.SYSTEM,content:b})}catch(a){}}catch(a){}}(a,c);Array.isArray(a.input)&&function(a,b){try{let c=a.input;if(!Array.isArray(c)||function(a,b){try{for(let c of a){if(!c||c.type!==e.Du.MESSAGE||c.role!==f.z.SYSTEM&&c.role!==f.z.DEVELOPER)continue;let a=c.content;if("string"==typeof a&&g(a,b)||Array.isArray(a)&&a.some(a=>a&&"string"==typeof a.text&&g(a.text,b)))return!0}}catch(a){}return!1}(c,b))return;let d=-1;try{d=c.findIndex(a=>a&&a.type===e.Du.MESSAGE&&(a.role===f.z.SYSTEM||a.role===f.z.DEVELOPER))}catch(a){return}if(d>=0)return void function(a,b){try{if(!a||"object"!=typeof a)return;let c=a.content;if("string"==typeof c){let d=h(c,b);if(d!==c)try{a.content=d}catch(a){}return}if(Array.isArray(c)){try{if(c.some(a=>a&&a.text===b))return}catch(a){}try{c.push({type:e.Du.INPUT_TEXT,text:b})}catch(a){}return}try{a.content=[{type:e.Du.INPUT_TEXT,text:b}]}catch(a){}}catch(a){}}(c[d],b);try{c.unshift({type:e.Du.MESSAGE,role:f.z.SYSTEM,content:[{type:e.Du.INPUT_TEXT,text:b}]})}catch(a){}}catch(a){}}(a,c)}catch(a){}}},23648:(a,b,c)=>{c.d(b,{BY:()=>d.BY,E5:()=>d.E5,M2:()=>d.M2,Rw:()=>d.Rw,SL:()=>d.SL,Zx:()=>d.Zx,_V:()=>d._V,j$:()=>d.j$,ox:()=>d.ox,rg:()=>d.rg,sZ:()=>d.sZ,uw:()=>d.uw});var d=c(38599)},34496:(a,b,c)=>{function d(a){return String(a||"").toLowerCase().replace(/\s+/g," ").replace(/[.!?…]+$/g,"").trim()}function e(a){let b=a?.messages;if(!Array.isArray(b)||0===b.length)return{detected:!1,hint:null};let c=function(a){let b=[];for(let c of a)if(c?.role==="assistant"&&Array.isArray(c.tool_calls))for(let a of c.tool_calls)b.push(function(a){let b=a?.function?.name||a?.name||"",c=function(a){try{let b=JSON.parse(a);return JSON.stringify(b,Object.keys(b).sort())}catch{return a||""}}(a?.function?.arguments||a?.arguments||"");return`${b}::${c}`}(a));return b}(b);if(c.length>=3){if(function(a){let b=new Map;for(let c of a)if(b.set(c,(b.get(c)||0)+1),b.get(c)>=3)return c;return null}(c))return{detected:!0,hint:"You have called the same tool with identical arguments multiple times with no new progress. STOP repeating. Summarize findings from existing results or change your strategy."};if(function(a){let b=a.length;for(let c=Math.floor(b/2);c>=2;c--)for(let d=0;d<=b-2*c;d++){let e=a.slice(d,d+c).join("|"),f=0,g=0;for(;g<=b-c;)a.slice(g,g+c).join("|")===e?(f++,g+=c):g++;if(f>=2)return e}return null}(c))return{detected:!0,hint:"You have repeated the same sequence of tool calls multiple times. This is a loop. STOP this pattern immediately. Summarize what you have already found or take a completely different approach."}}let e=function(a){let b=function(a){let b=[];for(let c of a)if(c?.role==="assistant"){let a=c?"string"==typeof c.content?c.content:Array.isArray(c.content)?c.content.filter(a=>a&&"string"==typeof a.text).map(a=>a.text).join(" "):"":"";a.length>=12&&b.push(a)}return b}(a);if(b.length<3)return{detected:!1,hint:null};let c=new Map;for(let a of b){let b=d(a);if(b.length<12)continue;let e=(c.get(b)||0)+1;if(c.set(b,e),e>=3)return{detected:!0,hint:"You have repeated the same response multiple times without making progress. This is a text loop — you are NOT moving forward. STOP repeating yourself. Either call a tool to act, or give your final answer now with the information you already have."}}let e=new Map;for(let a of b)for(let b of String(a||"").split(/[\n.!?…]+/).map(a=>d(a)).filter(a=>a.length>=12)){let a=(e.get(b)||0)+1;if(e.set(b,a),a>=3)return{detected:!0,hint:"You keep repeating the same planning statement without acting on it. STOP planning in circles. Either execute a tool call NOW, or provide your final answer with current knowledge. Do not restate your plan again."}}return{detected:!1,hint:null}}(b);return e.detected?e:{detected:!1,hint:null}}c.d(b,{k:()=>e})},36110:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{wk:()=>Q});var e=c(217),f=c(54729),g=c(2568),h=c(69152),i=c(42966),j=c(45479),k=c(78963),l=c(91392),m=c(86954),n=c(52554),o=c(85577),p=c(13946),q=c(15261),r=c(92398),s=c(83571),t=c(23648),u=c(63548),v=c(44027),w=c(92913),x=c(50996),y=c(14018),z=c(60137),A=c(92201),B=c(94054),C=c(61210),D=c(34496),E=c(63192),F=c(56764),G=c(20526),H=c(8789),I=c(72152),J=c(69188),K=c(99974),L=c(81297),M=c(80117),N=c(15204),O=c(83474),P=a([u]);u=(P.then?(await P)():P)[0];let R=new Set(["kimchi","nvidia"]);async function Q({body:a,modelInfo:b,credentials:c,log:d,onCredentialsRefreshed:P,onRequestSuccess:S,onDisconnect:T,clientRawRequest:U,connectionId:V,userAgent:W,apiKey:X,apiKeyInfo:Y=null,apiKeyName:Z=null,ccFilterNaming:$,rtkEnabled:_,headroomEnabled:aa,headroomUrl:ab,headroomCompressUserMessages:ac,headroomTimeoutMs:ad=3e3,cavemanEnabled:ae,cavemanLevel:af,ponytailEnabled:ag,ponytailLevel:ah,pxpipeEnabled:ai=!1,pxpipeMinChars:aj=1e3,pxpipeTimeoutMs:ak=1e4,pxpipeTransform:al="png",onPxpipeEvent:am=null,sourceFormatOverride:an,providerThinking:ao,clientSignal:ap,loopGuardEnabled:aq=!0,systemPrompt:ar=null,clientModelId:as=null,resolveProxyConfig:at=null}){var au;let av,aw,ax,ay,az,aA,{provider:aB,model:aC,accountCount:aD=0}=b,aE=Date.now(),aF=an||(0,f.Tz)(a),aG=(0,s.c)(a,aC,W,$);if(aG)return aG;let aH=o.Xg[aB]||aB,aI=(0,o.ux)(aH,aC),aJ=(0,f.oF)(aB,aF),aK=(0,o.ez)(aH,aC),aL=!aK||aK.includes(aF)?aJ:null,aM=aL?.format||aI||(0,f.jJ)(aB,c);aL&&c&&(c.runtimeTransport=aL);let aN=(0,o.cY)(aH,aC),aO=(0,o.kt)(aH,aC);if(ao?.mode&&"auto"!==ao.mode){let b=(0,K.getCapabilitiesForModel)(aB,aC);if(b?.reasoning){let c=ao.mode;"on"!==c||a.thinking?"off"!==c||a.thinking?a.reasoning_effort||(a={...a,reasoning_effort:c}):!1!==b.thinkingCanDisable&&(a={...a,thinking:{type:"disabled"}}):a={...a,thinking:{type:"enabled",budget_tokens:1e4}}}}let aP=!0===a.stream||aF===h.h.ANTIGRAVITY||aF===h.h.GEMINI||aF===h.h.GEMINI_CLI,aQ=p.xq[aB]?.forceStream===!0,aR=!!aQ||!1!==a.stream,aS="nvidia"===aB&&/kimi-k2\.[67]/i.test(aC||"")&&!0===aR,aT=!aS&&aR;aS&&d?.debug?.("STREAMCOERCE",`${aB}/${aC} | stream=true → false (upstream)`);let aU=(0,o.OA)(aH,aC);("imageGen"===aU||/image|imagen|image-generation/i.test(aC))&&("antigravity"===aB||"gemini-cli"===aB)&&(aR=!1);let aV=(0,B.J)(U?.headers||{},a);"deepseek-tui"===aV&&!0!==a.stream&&(aR=!1);let aW=U?.headers?.accept||"",aX=aW.includes("application/json"),aY=aW.includes("text/event-stream");!aX||aY||!0===a.stream||aQ||(aR=!1);let aZ=await (0,m.q)(aF,aM,aC);U&&aZ.logClientRawRequest(U.endpoint,U.body,U.headers),aZ.logRawRequest(a),d?.debug?.("FORMAT",`${aF} → ${aM} | stream=${aR}`);let a$=(0,B.J)(U?.headers||{},a),a_=(0,B.Q)(a$,aB);if(c&&(c.rawHeaders=U?.headers||{}),!a_){let b=(0,K.getCapabilitiesForModel)(aB,aC);(0,L.X)(a,aF,b)&&d?.debug?.("MODALITY",`stripped unsupported media for ${aB}/${aC}`);try{let b=await (0,M.C)(a,aF,aM,{signal:void 0});b>0&&d?.debug?.("MODALITY",`prefetched ${b} remote image(s) for ${aM}`)}catch(a){d?.warn?.("MODALITY",`image prefetch failed: ${a.message}`)}}if(a_)d?.debug?.("PASSTHROUGH",`${a$} → ${aB} | native lossless`),av={...a,model:aO},"claude"===a$&&(0,i.ui)(av,aO);else{if(!(av=(0,g.GH)(aF,aM,aO,a,aT,c,aB,aZ,aN,V,a$)))return(0,t.uw)(aC,aB,V,!1,!0),(0,q.A1)(r.gx.BAD_REQUEST,`Failed to translate request for ${aF} → ${aM}`);aw=av._toolNameMap,delete av._toolNameMap,av.model=aO}if(aS&&(av.stream=!1),"claude"===a$&&Array.isArray(av.tools)){let{tools:a,stripped:b}=(0,C.F)(av.tools);b.length>0&&(av.tools=a,d?.debug?.("TOOLDEDUP",`stripped ${b.length}: ${b.slice(0,3).join(", ")}${b.length>3?"...":""}`))}let a0=a_?aF:aM;if(d?.line){let b=`${aB}/${aC}`.slice(0,20),e=U?.body?.model||`${aB}/${aC}`,f=av.messages?.length||av.input?.length||av.contents?.length||a.messages?.length||a.input?.length||0,g=av.tools?.length||a.tools?.length||0,h=a_?`FMT: ${aF} (passthrough)`:`FMT: ${aF}→${aM}`,i="grok-cli"!==aB||(0,v.Au)(aC)?d.fmtThink?.((0,n.sS)(av)):null,j=c?.connectionName||c?.connectionId?.slice(0,8)||"-",k=[`POST ${e} → ${aB}/${aC}`,h,aR?"STREAM":"JSON",`${f} MSG`];g&&k.push(`${g} TOOL`),i&&k.push(`THINK:${i}`),k.push(`ACC:${j}`),d.line(b,"▶",k.join(" \xb7 "))}"tts"===(0,o.OA)(aH,aC)&&av.messages&&(av.messages=av.messages.filter(a=>"tool"!==a.role),delete av.tools),a0===h.h.CLAUDE&&Array.isArray(av.tools)&&(av.tools=(0,N.C5)(av.tools));let a1=U?.headers?.[r.SA]?.toLowerCase()!=="off",a2=(0,I.BI)(av,a1&&_),a3=(0,I.fT)(a2);a3&&console.log(a3);let a4={},a5=await (0,J.SI)(av,{enabled:a1&&aa,url:ab,model:aO,format:a0,compressUserMessages:ac,timeoutMs:ad,diagnostics:a4}),a6=(0,J.Nv)(a5),a7=(0,J.O2)(a4);if(a6?(d?.info?.("HEADROOM",`${a6}${a7?` | ${a7}`:""}`),(0,J.cB)(a5,a4)&&d?.warn?.("HEADROOM",`reported token delta, but outbound JSON shrank <5%; provider may bill near-original payload | ${a7}`)):a1&&aa&&d?.warn?.("HEADROOM",`skipped: ${a4.reason||"compression unavailable"}${a4.endpoint?` (${a4.endpoint})`:""}`),ar&&((0,G.J)(av,a0,ar),d?.debug?.("SYSPROMPT",`default injected | ${a0}`)),a1&&ae&&af&&((0,E.p)(av,a0,af),d?.debug?.("CAVEMAN",`${af} | ${a0}`)),a1&&ag&&ah&&((0,F.U)(av,a0,ah),d?.debug?.("PONYTAIL",`${ah} | ${a0}`)),R.has(aB)&&((0,H.o5)(av,a0,(au=av.tools,Array.isArray(au)?au.map(a=>a?.function?.name||a?.name).filter(a=>"string"==typeof a&&a.trim()):[])),d?.debug?.("TOOLPROTO",`${aB}/${aC} | ${a0}`)),aq&&function(a,b,c,d,e){let f=(0,D.k)(a);if(!f.detected)return;(0,H.sH)(a,b);let g=a?.messages;if(Array.isArray(g)){let a=null;for(let b=g.length-1;b>=0;b--){let c=g[b];if(c&&("user"===c.role||"tool"===c.role)||c&&"assistant"===c.role&&b===g.length-1){a=c;break}}if(a){let b=`
17
+ ${b}`:b}catch(a){}}catch(a){}}(a,c);if(Array.isArray(a.messages))return void function(a,b){try{let c=a.messages;if(!Array.isArray(c)||function(a,b){try{for(let c of a){if(!c||c.role!==f.z.SYSTEM&&c.role!==f.z.DEVELOPER)continue;let a=c.content;if("string"==typeof a&&g(a,b)||Array.isArray(a)&&a.some(a=>a&&"string"==typeof a.text&&g(a.text,b)))return!0}}catch(a){}return!1}(c,b))return;let d=-1;try{d=c.findIndex(a=>a&&(a.role===f.z.SYSTEM||a.role===f.z.DEVELOPER))}catch(a){return}if(d>=0)return void function(a,b){try{if(!a||"object"!=typeof a)return;let c=a.content;if("string"==typeof c){let d=h(c,b);if(d!==c)try{a.content=d}catch(a){}return}if(Array.isArray(c)){try{if(c.some(a=>a&&a.text===b))return}catch(a){}try{c.push({type:e.x4.TEXT,text:b})}catch(a){}return}try{a.content=b}catch(a){}}catch(a){}}(c[d],b);try{c.unshift({role:f.z.SYSTEM,content:b})}catch(a){}}catch(a){}}(a,c);Array.isArray(a.input)&&function(a,b){try{let c=a.input;if(!Array.isArray(c)||function(a,b){try{for(let c of a){if(!c||c.type!==e.Du.MESSAGE||c.role!==f.z.SYSTEM&&c.role!==f.z.DEVELOPER)continue;let a=c.content;if("string"==typeof a&&g(a,b)||Array.isArray(a)&&a.some(a=>a&&"string"==typeof a.text&&g(a.text,b)))return!0}}catch(a){}return!1}(c,b))return;let d=-1;try{d=c.findIndex(a=>a&&a.type===e.Du.MESSAGE&&(a.role===f.z.SYSTEM||a.role===f.z.DEVELOPER))}catch(a){return}if(d>=0)return void function(a,b){try{if(!a||"object"!=typeof a)return;let c=a.content;if("string"==typeof c){let d=h(c,b);if(d!==c)try{a.content=d}catch(a){}return}if(Array.isArray(c)){try{if(c.some(a=>a&&a.text===b))return}catch(a){}try{c.push({type:e.Du.INPUT_TEXT,text:b})}catch(a){}return}try{a.content=[{type:e.Du.INPUT_TEXT,text:b}]}catch(a){}}catch(a){}}(c[d],b);try{c.unshift({type:e.Du.MESSAGE,role:f.z.SYSTEM,content:[{type:e.Du.INPUT_TEXT,text:b}]})}catch(a){}}catch(a){}}(a,c)}catch(a){}}},23648:(a,b,c)=>{c.d(b,{BY:()=>d.BY,E5:()=>d.E5,M2:()=>d.M2,Rw:()=>d.Rw,SL:()=>d.SL,Zx:()=>d.Zx,_V:()=>d._V,j$:()=>d.j$,ox:()=>d.ox,rg:()=>d.rg,sZ:()=>d.sZ,uw:()=>d.uw});var d=c(38599)},34496:(a,b,c)=>{function d(a){return String(a||"").toLowerCase().replace(/\s+/g," ").replace(/[.!?…]+$/g,"").trim()}function e(a){let b=a?.messages;if(!Array.isArray(b)||0===b.length)return{detected:!1,hint:null};let c=function(a){let b=[];for(let c of a)if(c?.role==="assistant"&&Array.isArray(c.tool_calls))for(let a of c.tool_calls)b.push(function(a){let b=a?.function?.name||a?.name||"",c=function(a){try{let b=JSON.parse(a);return JSON.stringify(b,Object.keys(b).sort())}catch{return a||""}}(a?.function?.arguments||a?.arguments||"");return`${b}::${c}`}(a));return b}(b);if(c.length>=3){if(function(a){let b=new Map;for(let c of a)if(b.set(c,(b.get(c)||0)+1),b.get(c)>=3)return c;return null}(c))return{detected:!0,hint:"You have called the same tool with identical arguments multiple times with no new progress. STOP repeating. Summarize findings from existing results or change your strategy."};if(function(a){let b=a.length;for(let c=Math.floor(b/2);c>=2;c--)for(let d=0;d<=b-2*c;d++){let e=a.slice(d,d+c).join("|"),f=0,g=0;for(;g<=b-c;)a.slice(g,g+c).join("|")===e?(f++,g+=c):g++;if(f>=2)return e}return null}(c))return{detected:!0,hint:"You have repeated the same sequence of tool calls multiple times. This is a loop. STOP this pattern immediately. Summarize what you have already found or take a completely different approach."}}let e=function(a){let b=function(a){let b=[];for(let c of a)if(c?.role==="assistant"){let a=c?"string"==typeof c.content?c.content:Array.isArray(c.content)?c.content.filter(a=>a&&"string"==typeof a.text).map(a=>a.text).join(" "):"":"";a.length>=12&&b.push(a)}return b}(a);if(b.length<3)return{detected:!1,hint:null};let c=new Map;for(let a of b){let b=d(a);if(b.length<12)continue;let e=(c.get(b)||0)+1;if(c.set(b,e),e>=3)return{detected:!0,hint:"You have repeated the same response multiple times without making progress. This is a text loop — you are NOT moving forward. STOP repeating yourself. Either call a tool to act, or give your final answer now with the information you already have."}}let e=new Map;for(let a of b)for(let b of String(a||"").split(/[\n.!?…]+/).map(a=>d(a)).filter(a=>a.length>=12)){let a=(e.get(b)||0)+1;if(e.set(b,a),a>=3)return{detected:!0,hint:"You keep repeating the same planning statement without acting on it. STOP planning in circles. Either execute a tool call NOW, or provide your final answer with current knowledge. Do not restate your plan again."}}return{detected:!1,hint:null}}(b);return e.detected?e:{detected:!1,hint:null}}c.d(b,{k:()=>e})},36110:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{wk:()=>Q});var e=c(217),f=c(54729),g=c(2568),h=c(69152),i=c(42966),j=c(45479),k=c(78963),l=c(91392),m=c(86954),n=c(52554),o=c(85577),p=c(13946),q=c(15261),r=c(92398),s=c(83571),t=c(23648),u=c(63548),v=c(44027),w=c(92913),x=c(50996),y=c(14018),z=c(60137),A=c(92201),B=c(94054),C=c(61210),D=c(34496),E=c(63192),F=c(56764),G=c(20526),H=c(8789),I=c(72152),J=c(69188),K=c(99974),L=c(81297),M=c(80117),N=c(15204),O=c(83474),P=a([u]);u=(P.then?(await P)():P)[0];let R=new Set(["kimchi","nvidia"]);async function Q({body:a,modelInfo:b,credentials:c,log:d,onCredentialsRefreshed:P,onRequestSuccess:S,onDisconnect:T,clientRawRequest:U,connectionId:V,userAgent:W,apiKey:X,apiKeyInfo:Y=null,apiKeyName:Z=null,ccFilterNaming:$,rtkEnabled:_,headroomEnabled:aa,headroomUrl:ab,headroomCompressUserMessages:ac,headroomTimeoutMs:ad=3e3,cavemanEnabled:ae,cavemanLevel:af,ponytailEnabled:ag,ponytailLevel:ah,pxpipeEnabled:ai=!1,pxpipeMinChars:aj=1e3,pxpipeTimeoutMs:ak=1e4,pxpipeTransform:al="png",onPxpipeEvent:am=null,sourceFormatOverride:an,providerThinking:ao,clientSignal:ap,loopGuardEnabled:aq=!0,systemPrompt:ar=null,clientModelId:as=null,resolveProxyConfig:at=null}){var au;let av,aw,ax,ay,az,aA,{provider:aB,model:aC,accountCount:aD=0}=b,aE=Date.now(),aF=an||(0,f.Tz)(a),aG=(0,s.c)(a,aC,W,$);if(aG)return aG;let aH=o.Xg[aB]||aB,aI=(0,o.ux)(aH,aC),aJ=(0,f.oF)(aB,aF),aK=(0,o.ez)(aH,aC),aL=!aK||aK.includes(aF)?aJ:null,aM=aL?.format||aI||(0,f.jJ)(aB,c);aL&&c&&(c.runtimeTransport=aL);let aN=(0,o.cY)(aH,aC),aO=(0,o.kt)(aH,aC);if(ao?.mode&&"auto"!==ao.mode){let b=(0,K.getCapabilitiesForModel)(aB,aC);if(b?.reasoning){let c=ao.mode;"on"!==c||a.thinking?"off"!==c||a.thinking?a.reasoning_effort||(a={...a,reasoning_effort:c}):!1!==b.thinkingCanDisable&&(a={...a,thinking:{type:"disabled"}}):a={...a,thinking:{type:"enabled",budget_tokens:1e4}}}}let aP=!0===a.stream||aF===h.h.ANTIGRAVITY||aF===h.h.GEMINI||aF===h.h.GEMINI_CLI,aQ=p.xq[aB]?.forceStream===!0,aR=!!aQ||!1!==a.stream,aS="nvidia"===aB&&/kimi-k2\.[67]/i.test(aC||"")&&!0===aR,aT=!aS&&aR;aS&&d?.debug?.("STREAMCOERCE",`${aB}/${aC} | stream=true → false (upstream)`);let aU=(0,o.OA)(aH,aC);("imageGen"===aU||/image|imagen|image-generation/i.test(aC))&&("antigravity"===aB||"gemini-cli"===aB)&&(aR=!1);let aV=(0,B.J)(U?.headers||{},a);"deepseek-tui"===aV&&!0!==a.stream&&(aR=!1);let aW=U?.headers?.accept||"",aX=aW.includes("application/json"),aY=aW.includes("text/event-stream");!aX||aY||!0===a.stream||aQ||(aR=!1);let aZ=await (0,m.q7)(aF,aM,aC);U&&aZ.logClientRawRequest(U.endpoint,U.body,U.headers),aZ.logRawRequest(a),d?.debug?.("FORMAT",`${aF} → ${aM} | stream=${aR}`);let a$=(0,B.J)(U?.headers||{},a),a_=(0,B.Q)(a$,aB);if(c&&(c.rawHeaders=U?.headers||{}),!a_){let b=(0,K.getCapabilitiesForModel)(aB,aC);(0,L.X)(a,aF,b)&&d?.debug?.("MODALITY",`stripped unsupported media for ${aB}/${aC}`);try{let b=await (0,M.C)(a,aF,aM,{signal:void 0});b>0&&d?.debug?.("MODALITY",`prefetched ${b} remote image(s) for ${aM}`)}catch(a){d?.warn?.("MODALITY",`image prefetch failed: ${a.message}`)}}if(a_)d?.debug?.("PASSTHROUGH",`${a$} → ${aB} | native lossless`),av={...a,model:aO},"claude"===a$&&(0,i.ui)(av,aO);else{if(!(av=(0,g.GH)(aF,aM,aO,a,aT,c,aB,aZ,aN,V,a$)))return(0,t.uw)(aC,aB,V,!1,!0),(0,q.A1)(r.gx.BAD_REQUEST,`Failed to translate request for ${aF} → ${aM}`);aw=av._toolNameMap,delete av._toolNameMap,av.model=aO}if(aS&&(av.stream=!1),"claude"===a$&&Array.isArray(av.tools)){let{tools:a,stripped:b}=(0,C.F)(av.tools);b.length>0&&(av.tools=a,d?.debug?.("TOOLDEDUP",`stripped ${b.length}: ${b.slice(0,3).join(", ")}${b.length>3?"...":""}`))}let a0=a_?aF:aM;if(d?.line){let b=`${aB}/${aC}`.slice(0,20),e=U?.body?.model||`${aB}/${aC}`,f=av.messages?.length||av.input?.length||av.contents?.length||a.messages?.length||a.input?.length||0,g=av.tools?.length||a.tools?.length||0,h=a_?`FMT: ${aF} (passthrough)`:`FMT: ${aF}→${aM}`,i="grok-cli"!==aB||(0,v.Au)(aC)?d.fmtThink?.((0,n.sS)(av)):null,j=c?.connectionName||c?.connectionId?.slice(0,8)||"-",k=[`POST ${e} → ${aB}/${aC}`,h,aR?"STREAM":"JSON",`${f} MSG`];g&&k.push(`${g} TOOL`),i&&k.push(`THINK:${i}`),k.push(`ACC:${j}`),d.line(b,"▶",k.join(" \xb7 "))}"tts"===(0,o.OA)(aH,aC)&&av.messages&&(av.messages=av.messages.filter(a=>"tool"!==a.role),delete av.tools),(0,N.dV)(aB,a0,av.tools,p.xq)&&(av.tools=(0,N.C5)(av.tools));let a1=U?.headers?.[r.SA]?.toLowerCase()!=="off",a2=(0,I.BI)(av,a1&&_),a3=(0,I.fT)(a2);a3&&console.log(a3);let a4={},a5=await (0,J.SI)(av,{enabled:a1&&aa,url:ab,model:aO,format:a0,compressUserMessages:ac,timeoutMs:ad,diagnostics:a4}),a6=(0,J.Nv)(a5),a7=(0,J.O2)(a4);if(a6?(d?.info?.("HEADROOM",`${a6}${a7?` | ${a7}`:""}`),(0,J.cB)(a5,a4)&&d?.warn?.("HEADROOM",`reported token delta, but outbound JSON shrank <5%; provider may bill near-original payload | ${a7}`)):a1&&aa&&d?.warn?.("HEADROOM",`skipped: ${a4.reason||"compression unavailable"}${a4.endpoint?` (${a4.endpoint})`:""}`),ar&&((0,G.J)(av,a0,ar),d?.debug?.("SYSPROMPT",`default injected | ${a0}`)),a1&&ae&&af&&((0,E.p)(av,a0,af),d?.debug?.("CAVEMAN",`${af} | ${a0}`)),a1&&ag&&ah&&((0,F.U)(av,a0,ah),d?.debug?.("PONYTAIL",`${ah} | ${a0}`)),R.has(aB)&&((0,H.o5)(av,a0,(au=av.tools,Array.isArray(au)?au.map(a=>a?.function?.name||a?.name).filter(a=>"string"==typeof a&&a.trim()):[])),d?.debug?.("TOOLPROTO",`${aB}/${aC} | ${a0}`)),aq&&function(a,b,c,d,e){let f=(0,D.k)(a);if(!f.detected)return;(0,H.sH)(a,b);let g=a?.messages;if(Array.isArray(g)){let a=null;for(let b=g.length-1;b>=0;b--){let c=g[b];if(c&&("user"===c.role||"tool"===c.role)||c&&"assistant"===c.role&&b===g.length-1){a=c;break}}if(a){let b=`
24
18
 
25
19
  [ROUTER NOTE: ${f.hint}]`;"string"==typeof a.content?a.content.includes("[ROUTER NOTE:")||(a.content+=b):Array.isArray(a.content)?a.content.some(a=>a.text&&a.text.includes("[ROUTER NOTE:"))||a.content.push({type:"text",text:b}):a.content=b.trimStart()}}e?.warn?.("LOOPGUARD",`${c}/${d} | loop detected, hint injected`)}(av,a0,aB,aC,d),/(?:^|[/_-])kimi(?:[/_-]|$)|(?:^|[/_-])kimi-k2\.(?:6|7)(?:\b|[-_/])/i.test(`${aB}/${aC}`)&&((0,H.sH)(av,a0),d?.debug?.("TERMINATION",`${aB}/${aC} | ${a0}`)),ao?.mode&&"auto"!==ao.mode){let a=(0,K.getCapabilitiesForModel)(aB,aC);if(a?.reasoning){let b=ao.mode;"off"===b?(av.reasoning_effort="none",!1!==a.thinkingCanDisable&&(av.thinking={type:"disabled"}),d?.debug?.("THINKING",`${aB}/${aC} | disabled`)):"on"===b?(av.thinking={type:"enabled",budget_tokens:1e4},d?.debug?.("THINKING",`${aB}/${aC} | enabled (10k budget)`)):(av.reasoning_effort=b,d?.debug?.("THINKING",`${aB}/${aC} | effort=${b}`))}}let a8=null;if(ai){let a=await (0,e.H)(av,{enabled:!0,format:a0,model:aO,minChars:aj,timeoutMs:ak,transform:al});a8=a.summary,a.body&&(av=a.body);let b=(0,e._)(a8);b?d?.info?.("PXPIPE",b):d?.debug?.("PXPIPE",`skipped: ${a8.reason}${a8.detail?` (${a8.detail})`:""}`);try{am?.({provider:aB,model:aC,...a8})}catch{}}a_&&("claude"===a$||aM===h.h.CLAUDE)&&(0,i._W)(av);let a9=(0,u.SB)(aB);(0,t.uw)(aC,aB,V,!0),(0,t.E5)({model:aC,provider:aB,connectionId:V,status:"PENDING"}).catch(()=>{});let ba=av.messages?.length||av.input?.length||av.contents?.length||av.request?.contents?.length||0;d?.debug?.("REQUEST",`${aB.toUpperCase()} | ${aC} | ${ba} msgs`);let bb=(0,k.jd)({onDisconnect:a=>{(0,t.uw)(aC,aB,V,!1),T&&T(a)},onError:()=>(0,t.uw)(aC,aB,V,!1),log:d,provider:aB,model:aC});ap&&(ap.aborted?bb.abort():ap.addEventListener("abort",()=>bb.abort(),{once:!0}));let bc=(a={})=>({connectionProxyEnabled:a?.connectionProxyEnabled===!0,connectionProxyUrl:a?.connectionProxyUrl||"",connectionNoProxy:a?.connectionNoProxy||"",vercelRelayUrl:a?.vercelRelayUrl||"",strictProxy:a?.strictProxy===!0||"freebuff"===aB,proxyPoolId:a?.proxyPoolId||a?.connectionProxyPoolId||null}),bd=`${aB}::${aC}`,be=bc(c?.providerSpecificData||{});if("freebuff"===aB&&c?.providerSpecificData?.noFitPool===!0){let a=Error(`Freebuff has no healthy proxy pool for ${aC}; all assigned pools are cooling down after limited-IP errors.`);return a.status=503,a.poolScoped={poolId:null,scope:bd,reason:"no_fit_pool"},(0,t.uw)(aC,aB,V,!1,!0),(0,q.A1)(503,a.message)}if("freebuff"===aB&&!be.vercelRelayUrl&&!(be.connectionProxyEnabled&&be.connectionProxyUrl)){let a=Error(`Freebuff requires a configured proxy pool for ${aC}; direct egress is disabled to prevent limited-IP rate limits.`);return a.status=503,(0,t.uw)(aC,aB,V,!1,!0),(0,q.A1)(503,a.message)}if(be.vercelRelayUrl){let a=c?.connectionName||c?.connectionId||"unknown",b=be.proxyPoolId||"none";d?.info?.("PROXY",`${aB.toUpperCase()} | ${aC} | conn=${a} | pool=${b} | vercel-relay=${be.vercelRelayUrl}`)}else if(be.connectionProxyEnabled&&be.connectionProxyUrl){let a=be.connectionProxyUrl;try{let b=new URL(be.connectionProxyUrl),c=b.hostname||"",d=b.port?`:${b.port}`:"",e=b.protocol||"http:";a=`${e}//${c}${d}`}catch{}let b=c?.providerSpecificData?.connectionProxyPoolId||"none",e=c?.connectionName||c?.connectionId||"unknown";d?.info?.("PROXY",`${aB.toUpperCase()} | ${aC} | conn=${e} | pool=${b} | url=${a}`)}if(be.connectionProxyEnabled&&be.connectionNoProxy){let a=c?.connectionName||c?.connectionId||"unknown";d?.debug?.("PROXY",`${aB.toUpperCase()} | ${aC} | conn=${a} | no_proxy=${be.connectionNoProxy}`)}let bf=null,bg=async(a=0)=>{let b;try{b=await a9.execute({model:aC,body:av,stream:aT,credentials:c,signal:bb.signal,log:d,proxyOptions:be,accountCount:aD})}catch(b){if(b?.poolScoped&&"function"==typeof at&&a<2){let e=b.poolScoped.poolId||be.proxyPoolId;await (0,O.on)(e,b.poolScoped.scope||bd,b.resetsAtMs,b.poolScoped.reason||"pool-scoped");try{let b=await at(c,[e]);if(b?.proxyPoolId)return c.providerSpecificData={...c.providerSpecificData||{},...b},be=bc(c.providerSpecificData),bg(a+1)}catch(a){d?.warn?.("PROXY",`${aB.toUpperCase()} | pool re-resolve failed: ${a.message}`)}}throw b}if(!b.response.ok){let e=await (0,q.zL)(b.response,a9);if(e.poolScoped&&"function"==typeof at&&a<2){let b=e.poolScoped.poolId||be.proxyPoolId;await (0,O.on)(b,e.poolScoped.scope||bd,e.resetsAtMs,e.poolScoped.reason||"pool-scoped");try{let d=await at(c,[b]);if(d?.proxyPoolId)return c.providerSpecificData={...c.providerSpecificData||{},...d},be=bc(c.providerSpecificData),bg(a+1)}catch(a){d?.warn?.("PROXY",`${aB.toUpperCase()} | pool re-resolve failed: ${a.message}`)}}bf=e}return b},bh=aM;try{let a=await bg();ax=a.response,ay=a.url,az=a.headers,aA=a.transformedBody,bh=a.responseFormat||aM,aZ.logTargetRequest(ay,az,aA)}catch(c){if((0,t.uw)(aC,aB,V,!1,!0),(0,t.E5)({model:aC,provider:aB,connectionId:V,status:`FAILED ${"AbortError"===c.name?499:r.gx.BAD_GATEWAY}`}).catch(()=>{}),(0,t.ox)((0,w.$R)({provider:aB,model:aC,connectionId:V,apiKey:X,apiKeyName:Z,latency:{ttft:0,total:Date.now()-aE},tokens:{prompt_tokens:0,completion_tokens:0},request:(0,w.Fo)(a,aT),providerRequest:av||null,response:{error:c.message||String(c),status:"AbortError"===c.name?499:502,thinking:null},pxpipe:a8,status:"error"})).catch(()=>{}),"AbortError"===c.name)return bb.handleError(c),(0,q.A1)(499,"Request aborted");let b=(0,q.lR)(c,aB,aC,r.gx.BAD_GATEWAY);return console.log(`${j.lm.red}[ERROR] ${b}${j.lm.reset}`),(0,q.A1)(r.gx.BAD_GATEWAY,b,c?.resetsAtMs||void 0)}if(!a9.noAuth&&(ax.status===r.gx.UNAUTHORIZED||ax.status===r.gx.FORBIDDEN))try{let a=await (0,l.qZ)(async()=>{let a=await a9.refreshCredentials(c,d);return a?.refreshToken&&a.refreshToken!==c.refreshToken&&(a.accessToken&&(c.accessToken=a.accessToken),c.refreshToken=a.refreshToken),a},3,d);if(a?.accessToken||a?.copilotToken){if(d?.info?.("TOKEN",`${aB.toUpperCase()} | refreshed`),Object.assign(c,a),P)try{await P(a)}catch(a){d?.warn?.("TOKEN",`onCredentialsRefreshed failed: ${a.message}`)}try{let a=await a9.execute({model:aC,body:av,stream:aT,credentials:c,signal:bb.signal,log:d,proxyOptions:be,accountCount:aD});a.response.ok&&(ax=a.response,ay=a.url,bh=a.responseFormat||aM)}catch{d?.warn?.("TOKEN",`${aB.toUpperCase()} | retry after refresh failed`)}}else d?.warn?.("TOKEN",`${aB.toUpperCase()} | refresh failed`)}catch(a){d?.warn?.("TOKEN",`${aB.toUpperCase()} | refresh threw: ${a.message}`)}if(!ax.ok){(0,t.uw)(aC,aB,V,!1,!0);let{statusCode:b,message:c,resetsAtMs:d}=bf||await (0,q.zL)(ax,a9);(0,t.E5)({model:aC,provider:aB,connectionId:V,status:`FAILED ${b}`}).catch(()=>{}),(0,t.ox)((0,w.$R)({provider:aB,model:aC,connectionId:V,apiKey:X,apiKeyName:Z,latency:{ttft:0,total:Date.now()-aE},tokens:{prompt_tokens:0,completion_tokens:0},request:(0,w.Fo)(a,aT),providerRequest:aA||av||null,response:{error:c,status:b,thinking:null},pxpipe:a8,status:"error"})).catch(()=>{});let e=(0,q.lR)(Error(c),aB,aC,b);return console.log(`${j.lm.red}[ERROR] ${e}${j.lm.reset}`),aZ.logError(Error(c),aA||av),(0,q.A1)(b,e,d)}let bi={provider:aB,model:aC,body:a,stream:aR,translatedBody:av,finalBody:aA,requestStartTime:aE,connectionId:V,apiKey:X,apiKeyInfo:Y,apiKeyName:Z,clientRawRequest:U,onRequestSuccess:S,clientModelId:as,pxpipe:a8},bj=a=>(0,t.E5)({model:aC,provider:aB,connectionId:V,...a}).catch(()=>{}),bk=()=>(0,t.uw)(aC,aB,V,!1);if(aS&&aP){let a=await (0,y.NE)({...bi,stream:aT,providerResponse:ax,sourceFormat:aF,targetFormat:aM,reqLogger:aZ,toolNameMap:aw,trackDone:bk,appendLog:bj});if(!a.success)return a;let b=await a.response.json(),c=(0,A.y)(b);return bb.handleComplete(),{success:!0,response:c}}if(!aP&&aQ){let a=await (0,x.I9)({...bi,providerResponse:ax,sourceFormat:aF,toolNameMap:aw,trackDone:bk,appendLog:bj});if(a)return bb.handleComplete(),a}if(!aR){let a=await (0,y.NE)({...bi,providerResponse:ax,sourceFormat:aF,targetFormat:bh||aM,reqLogger:aZ,toolNameMap:aw,trackDone:bk,appendLog:bj});if("clinepass"===aB&&!a?.success&&/empty/i.test(a?.error||"")){d?.warn?.("RETRY","clinepass returned empty content, retrying once after 2s"),await new Promise(a=>setTimeout(a,2e3));try{let b=await a9.execute({model:aC,body:av,stream:!1,credentials:c,signal:bb.signal,log:d,proxyOptions:be});b?.response?.ok&&(ax=b.response,a=await (0,y.NE)({...bi,providerResponse:ax,sourceFormat:aF,targetFormat:bh||aM,reqLogger:aZ,toolNameMap:aw,trackDone:bk,appendLog:bj}))}catch(a){d?.warn?.("RETRY",`clinepass retry failed: ${a.message}`)}}return bb.handleComplete(),a}let{onStreamComplete:bl,streamDetailId:bm}=(0,z.$)({...bi});return(0,z.M)({...bi,providerResponse:ax,sourceFormat:aF,targetFormat:bh||aM,userAgent:W,reqLogger:aZ,toolNameMap:aw,streamController:bb,onStreamComplete:bl,streamDetailId:bm,pxpipe:a8})}d()}catch(a){d(a)}})},45479:(a,b,c)=>{c.d(b,{i5:()=>q,l2:()=>r,lm:()=>g.lm,v8:()=>h.v8});var d=c(2568),e=c(69152),f=c(23648),g=c(73329),h=c(30794),i=c(46646),j=c(25440),k=c(15204);function l(a,b,c,d,f,g){var i;if(!b||0===b.length||f!==e.h.OPENAI)return!1;let j=(i=c?.messageId,{id:i?.startsWith("chatcmpl-")?i:`chatcmpl-${i||Date.now()}`,object:"chat.completion.chunk",created:Math.floor(Date.now()/1e3),model:d||null,choices:[{index:0,delta:{tool_calls:b},finish_reason:"tool_calls"}]}),k=(0,h.v8)(j,e.h.OPENAI);return g?.appendConvertedChunk?.(k),a.enqueue(m.encode(k)),!0}c(2933);let m=new TextEncoder,n="translate",o="passthrough";function p(a={}){let{mode:b=n,targetFormat:c,sourceFormat:q,provider:r=null,reqLogger:s=null,toolNameMap:t=null,model:u=null,connectionId:v=null,body:w=null,onStreamComplete:x=null,apiKey:y=null,normalizeKimiToolCalls:z=null}=a,A="",B=null,C=w?.tools?(0,k.Qv)(w.tools):null,D=new TextDecoder("utf-8",{fatal:!1}),E=b===n?{...(0,d.Ws)(q),provider:r,toolNameMap:t,model:u}:null,F=0,G="",H="",I=null,J=0,K=0,L={},M=/kimi-k2\./i.test(u||""),N=null,O=!1,P=null,Q=!1,R=!1,S=!1,T=!1,U=()=>{if(T)return;T=!0;let a=b===o,d=a?B:E?.usage;!(0,g.Gh)(d)&&F>0?(d=(0,g.OF)(w,F,a?e.h.OPENAI:q),a?B=d:E.usage=d):(0,g.sb)(d,F)&&(d=(0,g.NT)(d,F),a?B=d:E.usage=d),(0,g.Gh)(d)?(0,g.IF)(a?r:E?.provider||c,d,u,v,y):(0,f.E5)({model:u,provider:r,connectionId:v,tokens:null,status:"200 OK"}).catch(()=>{}),x&&x({content:G,thinking:H},d,I)};return new TransformStream({transform(a,f){I||(I=Date.now());let p=D.decode(a,{stream:!0});A+=p,s?.appendProviderChunk?.(p);let r=A.split("\n");for(let a of(A=r.pop()||"",r)){let p=a.trim();if(j.T&&p&&(J++,p.startsWith("event:"))){let a=p.slice(6).trim();L[a]=(L[a]||0)+1}if(b===n&&c===e.h.OPENAI_RESPONSES&&p.startsWith("event:")&&(P=p.slice(6).trim()),b===o){let b,c=!1,d=!1;if("data: [DONE]"===p||"data:[DONE]"===p)continue;if(p.startsWith("data:"))try{let a=JSON.parse(p.slice(5).trim()),f=(0,h.A4)(a),j=!1;if(void 0!==a.choices&&(a.object||(a.object="chat.completion.chunk",j=!0),a.created||(a.created=Math.floor(Date.now()/1e3),j=!0)),void 0!==a.prompt_filter_results&&(delete a.prompt_filter_results,j=!0),a?.choices)for(let b of a.choices)void 0!==b.content_filter_results&&(delete b.content_filter_results,j=!0);if(C&&C.length>0&&Array.isArray(a.choices))for(let b of a.choices){let a=b?.delta;if(Array.isArray(a?.tool_calls)){for(let b of a.tool_calls)if(b.function?.name){let a=(0,k.vh)(b.function.name,C);a!==b.function.name&&(b.function.name=a,j=!0)}}}if(a?.choices){for(let b of a.choices)if(b.delta?.tool_calls&&Array.isArray(b.delta.tool_calls)&&0===b.delta.tool_calls.length&&(delete b.delta.tool_calls,j=!0),b.delta?.function_call){let a=b.delta.function_call;a.name&&""!==a.name||a.arguments&&""!==a.arguments||(delete b.delta.function_call,j=!0)}}if(!(0,h.c2)(a,e.h.OPENAI))continue;let l=a.choices?.[0]?.delta,m=l?.content,n=l?.reasoning_content;if(m&&"string"==typeof m&&(F+=m.length,G+=m),n&&"string"==typeof n&&(F+=n.length,H+=n),Array.isArray(l?.tool_calls))for(let a of l.tool_calls)"string"==typeof a?.function?.name&&(F+=a.function.name.length),"string"==typeof a?.function?.arguments&&(F+=a.function.arguments.length);let o=(0,g.f5)(a);o&&(B=(0,g._L)(B,o)),d=(0,i.nu)(P,a);let q=a.choices?.[0]?.finish_reason;if(q&&!(0,g.Gh)(a.usage)){let d=(0,g.OF)(w,F,e.h.OPENAI);a.usage=(0,g.WL)(d,e.h.OPENAI),b=`data: ${JSON.stringify(a)}
26
20
  `,B=d,c=!0}else if(q&&(0,g.sb)(a.usage,F)){let d=(0,g.NT)(a.usage,F);a.usage=(0,g.WL)(d,e.h.OPENAI),b=`data: ${JSON.stringify(a)}
@@ -28,7 +22,7 @@ ${b}`:b}catch(a){}}catch(a){}}(a,c);if(Array.isArray(a.messages))return void fun
28
22
  `,c=!0}else(f||j)&&(b=`data: ${JSON.stringify(a)}
29
23
  `,c=!0)}catch{continue}c||(b=a.startsWith("data:")&&!a.startsWith("data: ")?"data: "+a.slice(5)+"\n":a+"\n"),s?.appendConvertedChunk?.(b),f.enqueue(m.encode(b)),d&&U();continue}if(!p)continue;let r=(0,h.tV)(p,c);if(!r)continue;let t=c===e.h.OPENAI_RESPONSES,v=t&&q===e.h.OPENAI_RESPONSES,x=t?(0,i.yx)(P,r):null;if(t&&(0,i.nu)(x,r)&&(Q=!0),r&&r.done&&c!==e.h.OLLAMA){if(v&&!Q){let a=(0,i.u9)();s?.appendConvertedChunk?.(a),f.enqueue(m.encode(a)),Q=!0,K++}if(v&&!S){let a="data: [DONE]\n\n";s?.appendConvertedChunk?.(a),f.enqueue(m.encode(a))}S=!0,v&&(R=!0);continue}if(r.delta?.text&&(F+=r.delta.text.length,G+=r.delta.text),r.delta?.thinking&&(F+=r.delta.thinking.length,H+=r.delta.thinking),"string"==typeof r.delta?.partial_json&&(F+=r.delta.partial_json.length),r.choices?.[0]?.delta?.content&&(F+=r.choices[0].delta.content.length,G+=r.choices[0].delta.content),Array.isArray(r.choices?.[0]?.delta?.tool_calls))for(let a of r.choices[0].delta.tool_calls)"string"==typeof a?.function?.name&&(F+=a.function.name.length),"string"==typeof a?.function?.arguments&&(F+=a.function.arguments.length);if(M&&z&&r.choices?.[0]?.delta?.content){let a=r.choices[0].delta.content,{message:b,hasTools:c}=z({role:"assistant",content:a});c&&(N=b.tool_calls,r.choices[0].delta.content=b.content||void 0,r.choices[0].delta.content||delete r.choices[0].delta.content,F-=a.length,G=G.slice(0,G.length-a.length),b.content&&(F+=b.content.length,G+=b.content))}if(r.choices?.[0]?.delta?.reasoning_content&&(F+=r.choices[0].delta.reasoning_content.length,H+=r.choices[0].delta.reasoning_content),r.candidates?.[0]?.content?.parts)for(let a of r.candidates[0].content.parts)a.text&&"string"==typeof a.text&&(F+=a.text.length,!0===a.thought?H+=a.text:G+=a.text);let y=(0,g.f5)(r);if(y&&(E.usage=(0,g._L)(E.usage,y)),v&&x){let a=(0,h.v8)({event:x,data:r},q);s?.appendConvertedChunk?.(a),f.enqueue(m.encode(a)),P=null,K++,Q&&U();continue}P=null;let A=(0,d.Y8)(c,q,r,E);if(A?._openaiIntermediate)for(let a of A._openaiIntermediate){let b=(0,h.v8)(a,e.h.OPENAI);s?.appendOpenAIChunk?.(b)}if(A?.length>0)for(let a of A){if(null==a)continue;let b="message_delta"===a.type||a.choices?.[0]?.finish_reason;if(N&&b&&q===e.h.OPENAI){l(f,N,E,u,q,s)&&(K++,O=!0);continue}if(!(0,h.c2)(a,q))continue;if(E.finishReason&&b&&!(0,g.Gh)(a.usage)&&F>0){let b=(0,g.OF)(w,F,q);a.usage=(0,g.WL)(b,q),E.usage=b}else if(E.finishReason&&b&&(0,g.sb)(a.usage,F)){let b=(0,g.NT)(a.usage,F);a.usage=(0,g.WL)(b,q),E.usage=b}else if(E.finishReason&&b&&E.usage){let b=(0,g.O9)(E.usage);a.usage=(0,g.WL)(b,q)}let c=(0,h.v8)(a,q);s?.appendConvertedChunk?.(c),f.enqueue(m.encode(c)),K++}}},flush(a){let k=Object.entries(L).map(([a,b])=>`${a}=${b}`).join(",")||"none";(0,j.s)("SSE",`flush | provider=${r} | model=${u} | recvLines=${J} | emitted=${K} | events=[${k}]`),(0,f.uw)(u,r,v,!1);try{let f=D.decode();if(f&&(A+=f),b===o){if(A){let b=A;A.startsWith("data:")&&!A.startsWith("data: ")&&(b="data: "+A.slice(5)),s?.appendConvertedChunk?.(b),a.enqueue(m.encode(b))}let b="antigravity"===r||"gemini"===r||"vertex"===r;if(!S&&!b){let b="data: [DONE]\n\n";s?.appendConvertedChunk?.(b),a.enqueue(m.encode(b))}U();return}if(A.trim()){let b=(0,h.tV)(A.trim(),c),f=b?.done&&c!==e.h.OLLAMA;if(b&&!f){let f=(0,g.f5)(b);f&&(E.usage=(0,g._L)(E.usage,f));let i=(0,d.Y8)(c,q,b,E);if(i?._openaiIntermediate)for(let a of i._openaiIntermediate){let b=(0,h.v8)(a,e.h.OPENAI);s?.appendOpenAIChunk?.(b)}if(i?.length>0)for(let b of i){if(null==b)continue;let c=(0,h.v8)(b,q);s?.appendConvertedChunk?.(c),a.enqueue(m.encode(c))}}}let j=(0,d.Y8)(c,q,null,E);if(j?._openaiIntermediate)for(let a of j._openaiIntermediate){let b=(0,h.v8)(a,e.h.OPENAI);s?.appendOpenAIChunk?.(b)}if(j?.length>0)for(let b of j){if(null==b)continue;let c=(0,h.v8)(b,q);s?.appendConvertedChunk?.(c),a.enqueue(m.encode(c))}if(!O&&M&&z){let{hasTools:b,message:c}=z({role:"assistant",content:G});b&&l(a,c.tool_calls,E,u,q,s)&&(K++,O=!0)}let k=c===e.h.OPENAI_RESPONSES&&q===e.h.OPENAI_RESPONSES;if(k&&!Q){let b=(0,i.u9)();s?.appendConvertedChunk?.(b),a.enqueue(m.encode(b)),Q=!0}if(k&&!R&&!S){let b="data: [DONE]\n\n";s?.appendConvertedChunk?.(b),a.enqueue(m.encode(b)),R=!0,S=!0}U()}catch(a){console.log("Error in flush:",a),U()}}})}function q(a,b,c=null,d=null,e=null,f=null,g=null,h=null,i=null,j=null,k=null){return p({mode:n,targetFormat:a,sourceFormat:b,provider:c,reqLogger:d,toolNameMap:e,model:f,connectionId:g,body:h,onStreamComplete:i,apiKey:j,normalizeKimiToolCalls:k})}function r(a=null,b=null,c=null,d=null,e=null,f=null,g=null,h=null){return p({mode:o,provider:a,reqLogger:b,model:c,connectionId:d,body:e,onStreamComplete:f,apiKey:g,normalizeKimiToolCalls:h})}},46646:(a,b,c)=>{c.d(b,{Hr:()=>j,nu:()=>h,u9:()=>k,yx:()=>g});var d=c(69152),e=c(30794);let f=new Set(["response.completed","response.done","response.failed","error"]);function g(a,b){return a||(b&&"string"==typeof b.type?b.type:null)}function h(a,b){let c=g(a,b);if(f.has(c))return!0;let d=b?.response?.status;return"completed"===d||"failed"===d}let i=new TextEncoder;function j(){return i.encode(`${k()}data: [DONE]
30
24
 
31
- `)}function k(){return(0,e.v8)({event:"response.failed",data:{type:"response.failed",response:{id:`resp_${Date.now()}`,status:"failed",error:{type:"stream_error",code:"stream_disconnected",message:"stream closed before response.completed"}}}},d.h.OPENAI_RESPONSES)}},50996:(a,b,c)=>{function d(a,b){let c;if(!a.trim())return;let d=a.match(/^event:\s*(.+)$/m),e=a.match(/^data:\s*(.+)$/m);if(!d||!e)return;let f=d[1].trim(),g=e[1].trim();if("[DONE]"!==g){try{c=JSON.parse(g)}catch{return}if("response.created"===f)b.responseId=c.response?.id||b.responseId,b.created=c.response?.created_at||b.created;else if("response.output_item.done"===f)b.items.set(c.output_index??0,c.item);else if("response.completed"===f||"response.done"===f){if(b.status="completed",c.response?.usage){let a=c.response.usage;b.usage.input_tokens=a.input_tokens??a.prompt_tokens??0,b.usage.output_tokens=a.output_tokens??a.completion_tokens??0,b.usage.total_tokens=a.total_tokens??b.usage.input_tokens+b.usage.output_tokens,a.input_tokens_details&&(b.usage.input_tokens_details=a.input_tokens_details),a.output_tokens_details&&(b.usage.output_tokens_details=a.output_tokens_details)}}else"response.failed"===f&&(b.status="failed")}}c.d(b,{I9:()=>s,Fe:()=>r});let e={input_tokens:0,output_tokens:0,total_tokens:0};async function f(a){if(!a||"function"!=typeof a.getReader)return{id:`resp_${Date.now()}`,object:"response",created_at:Math.floor(Date.now()/1e3),status:"failed",output:[],usage:{...e}};let b=new TextDecoder,c="",f={responseId:"",created:Math.floor(Date.now()/1e3),status:"in_progress",usage:{...e},items:new Map};for await(let e of a){let a=(c+=b.decode(e,{stream:!0})).split("\n\n");for(let b of(c=a.pop()||"",a))d(b,f)}(c+=b.decode()).trim()&&d(c,f);let g=[],h=f.items.size>0?Math.max(...f.items.keys()):-1;for(let a=0;a<=h;a++)g.push(f.items.get(a)||{type:"message",content:[],role:"assistant"});return{id:f.responseId||`resp_${Date.now()}_${Math.random().toString(36).slice(2,8)}`,object:"response",created_at:f.created,status:f.status||"completed",output:g,usage:f.usage}}var g=c(15261),h=c(92398),i=c(69152),j=c(13946),k=c(92913),l=c(15204),m=c(14018),n=c(97781),o=c(23648);let p=a=>j.xq[a]?.format===i.h.OPENAI_RESPONSES;function q(a){if(!a?.content||!Array.isArray(a.content))return"";let b=a.content.find(a=>"output_text"===a.type);if("string"==typeof b?.text)return b.text;let c=a.content.find(a=>"string"==typeof a.text);return"string"==typeof c?.text?c.text:""}function r(a,b,c=null){let d=[],e=null;for(let b of String(a||"").split("\n")){let a=b.trim();if(!a.startsWith("data:"))continue;let c=a.slice(5).trim();if(c&&"[DONE]"!==c)try{let a=JSON.parse(c);a?.error?e=a.error:d.push(a)}catch{}}if(e)return{error:e};if(0===d.length)return null;let f=d[0],g=[],h=[],i=new Map,j="stop",k=null;for(let a of d){let b=a?.choices?.[0],c=b?.delta||{};if("string"==typeof c.content&&c.content.length>0&&g.push(c.content),"string"==typeof c.reasoning_content&&c.reasoning_content.length>0&&h.push(c.reasoning_content),b?.finish_reason&&(j=b.finish_reason),a?.usage&&"object"==typeof a.usage&&(k=a.usage),!b&&a.response){let b=a.response,c=b.candidates?.[0];if(c){for(let a of c.content?.parts||[])void 0!==a.text&&a.text&&g.push(a.text),a.thought&&a.text&&h.push(a.text);c.finishReason&&(j=c.finishReason.toLowerCase())}let d=b.usageMetadata||a.usageMetadata;if(d&&!k){let a=d.promptTokenCount||0,b=d.candidatesTokenCount||0;k={prompt_tokens:a,completion_tokens:b,total_tokens:d.totalTokenCount||a+b,completion_tokens_details:{reasoning_tokens:d.thoughtsTokenCount||0}}}}if(Array.isArray(c.tool_calls))for(let a of c.tool_calls){let b=a.index??0;i.has(b)||i.set(b,{id:a.id||"",type:"function",function:{name:"",arguments:""}});let c=i.get(b);a.id&&(c.id=a.id),a.function?.name&&(c.function.name+=a.function.name),a.function?.arguments&&(c.function.arguments+=a.function.arguments)}}let m={role:"assistant",content:g.join("")||(i.size>0?null:"")};if(h.length>0&&(m.reasoning_content=h.join("")),i.size>0){let a=[...i.entries()].sort((a,b)=>a[0]-b[0]).map(([,a])=>a);if(c&&c.length>0)for(let b of a)b.function?.name&&(b.function.name=(0,l.vh)(b.function.name,c));m.tool_calls=a}let n={id:f.id||`chatcmpl-${Date.now()}`,object:"chat.completion",created:f.created||Math.floor(Date.now()/1e3),model:f.model||b||"unknown",choices:[{index:0,message:m,finish_reason:j}]};return k&&(n.usage=k),n}async function s({providerResponse:a,sourceFormat:b,provider:c,model:d,body:e,stream:j,translatedBody:t,finalBody:u,requestStartTime:v,connectionId:w,apiKey:x,apiKeyName:y,clientRawRequest:z,onRequestSuccess:A,trackDone:B,appendLog:C,comboName:D,toolNameMap:E}){let F=a.headers.get("content-type")||"";if(!(F.includes("text/event-stream")||""===F&&p(c)))return null;B();let G={provider:c,model:d,connectionId:w,apiKey:x,apiKeyName:y,request:(0,k.Fo)(e,j),providerRequest:u||t||null};if(p(c)||b===i.h.OPENAI_RESPONSES)try{let e,g=await f(a.body);A&&await A();let h=g.usage||{},j=function(a={}){return{prompt_tokens:a.input_tokens??a.prompt_tokens??0,completion_tokens:a.output_tokens??a.completion_tokens??0,total_tokens:a.total_tokens??(a.input_tokens??a.prompt_tokens??0)+(a.output_tokens??a.completion_tokens??0)}}(h);C({tokens:j,status:"200 OK"}),(0,k.qr)({provider:c,model:d,tokens:j,connectionId:w,apiKey:x,endpoint:z?.endpoint,comboName:D});let{msgItem:l,textContent:p}=function(a){if(!Array.isArray(a))return{msgItem:null,textContent:null};let b=a.filter(a=>a?.type==="message");if(0===b.length)return{msgItem:null,textContent:null};for(let a=b.length-1;a>=0;a--){let c=q(b[a]);if(c.length>0)return{msgItem:b[a],textContent:c}}let c=b[b.length-1];return{msgItem:c,textContent:q(c)}}(g.output),r=Date.now()-v;if((0,o.ox)((0,k.$R)({...G,latency:{ttft:r,total:r},tokens:j,response:{content:p,thinking:null,finish_reason:g.status||"unknown"},status:"success"},{endpoint:z?.endpoint||null})).catch(()=>{}),b===i.h.OPENAI_RESPONSES)return{success:!0,response:new Response(JSON.stringify(g),{headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}})};let s=j.prompt_tokens,t=j.completion_tokens,u=(g.output||[]).filter(a=>"function_call"===a.type).map((a,b)=>({id:a.call_id||`call_${a.name}_${Date.now()}_${b}`,type:"function",function:{name:a.name,arguments:"string"==typeof a.arguments?a.arguments:JSON.stringify(a.arguments||{})}})),y=u.length>0;if(b===i.h.ANTIGRAVITY||b===i.h.GEMINI||b===i.h.GEMINI_CLI)e={response:{candidates:[{content:{role:"model",parts:[{text:p||""}]},finishReason:"STOP",index:0}],usageMetadata:{promptTokenCount:s,candidatesTokenCount:t,totalTokenCount:s+t},modelVersion:d,responseId:g.id||`resp_${Date.now()}`}};else if(b===i.h.CLAUDE){let a={id:g.id||`chatcmpl-${Date.now()}`,model:g.model||d,choices:[{index:0,message:{role:"assistant",content:p||(y?null:"")},finish_reason:y?"tool_calls":"stop"}],usage:{prompt_tokens:s,completion_tokens:t}};y&&(a.choices[0].message.tool_calls=u);let b=(0,m.DT)(a,d);e=(0,n.kR)(b,E)}else{let a={role:"assistant",content:p||(y?null:"")};y&&(a.tool_calls=u);let b="completed"===g.status||"done"===g.status,c=y?"tool_calls":b?"stop":g.status||"stop";e={id:g.id||`chatcmpl-${Date.now()}`,object:"chat.completion",created:g.created_at||Math.floor(Date.now()/1e3),model:g.model||d,choices:[{index:0,message:a,finish_reason:c}],usage:{prompt_tokens:s,completion_tokens:t,total_tokens:s+t}}}return{success:!0,response:new Response(JSON.stringify(e),{headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}})}}catch(a){return console.error("[ChatCore] Responses API SSE→JSON failed:",a),(0,g.A1)(h.gx.BAD_GATEWAY,"Failed to convert streaming response to JSON")}try{let f=await a.text(),j=r(f,d,(0,l.Qv)(e?.tools));if(!j)return(0,g.A1)(h.gx.BAD_GATEWAY,"Invalid SSE response for non-streaming request");if(j.error)return(0,g.A1)(h.gx.BAD_GATEWAY,j.error.message||"Upstream SSE stream failed");A&&await A();let p=j.usage||{};C({tokens:p,status:"200 OK"}),(0,k.qr)({provider:c,model:d,tokens:p,connectionId:w,apiKey:x,endpoint:z?.endpoint});let q=Date.now()-v;if((0,o.ox)((0,k.$R)({...G,latency:{ttft:q,total:q},tokens:p,response:{content:j.choices?.[0]?.message?.content||null,thinking:j.choices?.[0]?.message?.reasoning_content||null,finish_reason:j.choices?.[0]?.finish_reason||"unknown"},status:"success"},{endpoint:z?.endpoint||null})).catch(()=>{}),j?.choices)for(let a of j.choices)a?.message?.reasoning_content&&a.message.content&&delete a.message.reasoning_content;let s=j;if(b===i.h.CLAUDE){let a=(0,m.DT)(j,d);s=(0,n.kR)(a,E)}return{success:!0,response:new Response(JSON.stringify(s),{headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}})}}catch(a){return console.error("[ChatCore] Chat Completions SSE→JSON failed:",a),(0,g.A1)(h.gx.BAD_GATEWAY,"Failed to convert streaming response to JSON")}}},56764:(a,b,c)=>{c.d(b,{U:()=>l});var d=c(20526);let e="You are a lazy senior developer. Lazy means efficient, not careless. The best code is the code never written. Before writing code, stop at the first rung that holds: 1. Does this need to exist at all? Speculative need = skip it, say so in one line (YAGNI). 2. Stdlib does it? Use it. 3. Native platform feature covers it? Use it (native input over a picker lib, CSS over JS, DB constraint over app code). 4. Already-installed dependency solves it? Use it. Never add a new dependency for what a few lines can do. 5. Can it be one line? One line. 6. Only then: the minimum code that works.",f="No unrequested abstractions (no interface with one implementation, no factory for one product, no config for a value that never changes). No boilerplate or scaffolding 'for later'. Deletion over addition. Boring over clever. Fewest files possible; shortest working diff wins. Two stdlib options the same size? Take the one correct on edge cases — lazy means less code, not the flimsier algorithm. Mark deliberate simplifications with a `ponytail:` comment naming the ceiling and upgrade path (e.g. `// ponytail: global lock, per-account locks if throughput matters`).",g="Never simplify away: input validation at trust boundaries, error handling that prevents data loss, security, accessibility, or anything explicitly requested. If the user insists on the full version, build it without re-arguing.",h="now is 2026, Be skeptical: never claim 'fixed', 'working', or 'correct' without concrete proof (test output, diff, reproducible verification). If a test passes, verify it tests what you think it tests. Check for side effects. Never fabricate reports ('all tests pass' without running them). Distinguish pre-existing bugs from ones you caused — run tests BEFORE and AFTER, diff the results. Report honestly: if broken and can't fix, say so. If skipped, explain why. If caveats, state them. Verify before declaring done — run relevant tests AFTER changes, show actual output.",i="Code first. Then at most three short lines: what was skipped and when to add it. Pattern: [code] then skipped: [X], add when [Y]. If the explanation is longer than the code, delete the explanation.",j="ACTIVE EVERY RESPONSE. No drift back to over-building. Still active if unsure.",k={lite:[e,"Level: lite. Build what's asked, but name the lazier alternative in one line — the user picks.",f,i,g,h,j].join(" "),full:[e,"Level: full. The ladder is enforced — stdlib and native first, shortest diff, shortest explanation. Ship the lazy version and question unrequested scope in the same response.",f,i,g,h,j].join(" "),ultra:[e,"Level: ultra. YAGNI extremist. Deletion before addition. Ship the one-liner and challenge the rest of the requirement in the same breath. No feature until a profiler or a real requirement demands it.",f,i,g,h,j].join(" ")};function l(a,b,c){(0,d.J)(a,b,k[c])}},60137:(a,b,c)=>{c.d(b,{$:()=>r,M:()=>q});var d=c(69152),e=c(2568),f=c(45479),g=c(77380),h=c(78963),i=c(13946),j=c(92398),k=c(46646),l=c(92913),m=c(23648),n=c(2933);async function o(a){if(!a||"function"!=typeof a.getReader)return{empty:!0};let b=a.getReader();try{let{done:a,value:c}=await b.read();if(a)return{empty:!0};return{empty:!1,firstChunk:c,reader:b}}catch(a){throw b.cancel?.().catch(()=>{}),a}}let p={[d.h.OPENAI_RESPONSES]:d.h.OPENAI_RESPONSES,[d.h.CLAUDE]:d.h.CLAUDE,[d.h.ANTIGRAVITY]:d.h.ANTIGRAVITY,[d.h.GEMINI]:d.h.ANTIGRAVITY,[d.h.GEMINI_CLI]:d.h.ANTIGRAVITY};async function q({providerResponse:a,provider:b,model:c,sourceFormat:r,targetFormat:s,userAgent:t,body:u,stream:v,translatedBody:w,finalBody:x,requestStartTime:y,connectionId:z,apiKey:A,apiKeyInfo:B,apiKeyName:C,clientModelId:D,clientRawRequest:E,onRequestSuccess:F,reqLogger:G,toolNameMap:H,streamController:I,onStreamComplete:J,streamDetailId:K,pxpipe:L}){let M;F&&Promise.resolve().then(F).catch(a=>{console.error("[ChatCore] onRequestSuccess failed:",a?.message||a)});let N=(a.headers.get("content-type")||"").toLowerCase();!N||N.includes("text/event-stream")||N.includes("application/json")||console.warn("[STREAM] "+b+" | "+c+" | unexpected Content-Type: "+N);try{M=await o(a.body)}catch(a){return{success:!1,status:502,errorCode:"STREAM_EARLY_EOF",error:a?.message||String(a)}}if(M.empty)return{success:!1,status:502,errorCode:"STREAM_EARLY_EOF",error:"Upstream closed stream before any useful content"};let O=function({provider:a,sourceFormat:b,targetFormat:c,userAgent:h,reqLogger:j,toolNameMap:k,model:l,connectionId:m,body:n,onStreamComplete:o,apiKey:q,responseModel:r}){let s=h?.toLowerCase().includes("droid")||h?.toLowerCase().includes("codex-cli"),t=i.xq[a]?.format===d.h.OPENAI_RESPONSES&&c===d.h.OPENAI_RESPONSES&&!s,u=/kimi-k2\./i.test(l||"");if(t){let c=p[b]||d.h.OPENAI;return(0,f.i5)(d.h.OPENAI_RESPONSES,c,a,j,k,l,m,n,o,q,u?g.vH:null,r)}return(0,e.nZ)(c,b)?(0,f.i5)(c,b,a,j,k,l,m,n,o,q,u?g.vH:null,r):(0,f.l2)(a,j,l,m,n,o,q,u?g.vH:null,r)}({provider:b,sourceFormat:r,targetFormat:s,userAgent:t,reqLogger:G,toolNameMap:H,model:c,connectionId:z,body:u,onStreamComplete:J,apiKey:A,responseModel:D}),P=r===d.h.OPENAI_RESPONSES&&s===d.h.OPENAI_RESPONSES?k.Hr:null,Q=i.xq[b]?.stallTimeoutMs||j.xM,R=new Response(function({firstChunk:a,reader:b}){let c=!1;return new ReadableStream({async pull(d){if(!c){d.enqueue(a),c=!0;return}try{let{done:a,value:c}=await b.read();a?(d.close(),b.releaseLock?.()):d.enqueue(c)}catch(a){d.error(a),b.cancel?.().catch(()=>{})}},cancel(a){b.cancel?.(a).catch(()=>{})}})}(M),{status:a.status,statusText:a.statusText,headers:a.headers}),S=(0,h.Jb)(R,O,I,P,Q);return(0,m.ox)((0,l.$R)({provider:b,model:c,connectionId:z,apiKey:A,apiKeyName:C,latency:{ttft:0,total:Date.now()-y},tokens:{prompt_tokens:0,completion_tokens:0},request:(0,l.Fo)(u,v),providerRequest:x||w||null,providerResponse:"[Streaming - raw response not captured]",response:{content:"[Streaming in progress...]",thinking:null,type:"streaming"},pxpipe:L,status:"success"},{id:K})).catch(a=>{console.error("[RequestDetail] Failed to save streaming request:",a.message)}),{success:!0,response:new Response(S,{headers:n.RK})}}function r({provider:a,model:b,connectionId:c,apiKey:d,apiKeyInfo:e,apiKeyName:f,requestStartTime:g,body:h,stream:i,finalBody:j,translatedBody:k,clientRawRequest:n,pxpipe:o}){let p=`${Date.now()}-${Math.random().toString(36).slice(2,11)}`;return{onStreamComplete:(q,r,s)=>{let t={ttft:s?s-g:Date.now()-g,total:Date.now()-g},u=q?.content||"[Empty streaming response]",v=q?.thinking||null;(0,m.ox)((0,l.$R)({provider:a,model:b,connectionId:c,apiKey:d,apiKeyName:f,latency:t,tokens:r||{prompt_tokens:0,completion_tokens:0},request:(0,l.Fo)(h,i),providerRequest:j||k||null,providerResponse:u,response:{content:u,thinking:v,type:"streaming"},pxpipe:o,status:"success"},{id:p})).catch(a=>{console.error("[RequestDetail] Failed to update streaming content:",a.message)}),(0,l.qr)({provider:a,model:b,tokens:r,connectionId:c,apiKey:d,apiKeyInfo:e,endpoint:n?.endpoint,label:"STREAM USAGE"})},streamDetailId:p}}},61210:(a,b,c)=>{c.d(b,{F:()=>g});let d=[{triggers:["mcp__exa__web_search_exa","mcp__exa__web_fetch_exa"],strip:["WebSearch","WebFetch","mcp__workspace__web_fetch"]},{triggers:["mcp__tavily__tavily_search","mcp__tavily__tavily_extract"],strip:["WebSearch","WebFetch","mcp__workspace__web_fetch"]},{triggers:[/^mcp__browsermcp__/],strip:[/^mcp__Claude_in_Chrome__/]}];function e(a){return a?.name||a?.function?.name||""}function f(a,b){return"string"==typeof b?a===b:b instanceof RegExp&&b.test(a)}function g(a){if(!Array.isArray(a)||0===a.length)return{tools:a,stripped:[]};let b=a.map(e),c=new Set;for(let a of d)if(b.some(b=>a.triggers.some(a=>f(b,a))))for(let d of b)a.strip.some(a=>f(d,a))&&c.add(d);return 0===c.size?{tools:a,stripped:[]}:{tools:a.filter(a=>!c.has(e(a))),stripped:Array.from(c)}}},63192:(a,b,c)=>{c.d(b,{p:()=>n});var d=c(20526);let e="Code blocks, file paths, commands, errors, URLs: keep exact. Security warnings, irreversible action confirmations, multi-step ordered sequences: write normal. Resume terse style after.",f='Not: "Sure! I\'d be happy to help you with that. The issue you\'re experiencing is likely caused by..." Yes: "Bug in auth middleware. Token expiry check use `<` not `<=`. Fix:"',g="Auto-Clarity: drop caveman for security warnings, irreversible actions, multi-step sequences where fragment ambiguity risks misread, or when user repeats a question. Resume after the clear part.",h="ACTIVE EVERY RESPONSE. No revert after many turns. No filler drift. Still active if unsure.",i="No invented abbreviations. Standard well-known tech acronyms (DB, API, HTTP, URL, JSON, ID, OS, CPU) OK. Names of code symbols, function names, API names, error strings: keep verbatim.",j="Preserve the user's dominant language. User wrote Vietnamese, reply Vietnamese. User wrote English, reply English. Wenyan/classical-Chinese levels override this language-preservation rule. Code identifiers, error strings, file paths, commands: keep in their original form regardless of language.",k='No self-reference. Do not name or announce the style (no "caveman mode", no "me caveman think", no "compressed mode active"). Just respond.',l='No decorative emoji. No narrating tool calls ("I will now search", "I used X to find Y"). No status phrases ("Sure!", "Of course!", "I\'d be happy to"). No causal arrow shorthand ("A -> B -> fails"). State the thing, the action, the reason. Then next step.',m={lite:["Respond tersely. Keep grammar and full sentences but drop filler, hedging and pleasantries (just/really/basically/sure/of course/I'd be happy to). Pattern: state the thing, the action, the reason. Then next step.",f,e,g,h,i,j,k,l].join(" "),full:["Respond like terse caveman. All technical substance stay exact, only fluff die. Drop: articles (a/an/the), filler (just/really/basically/actually/simply), pleasantries, hedging. Fragments OK. Short synonyms (big not extensive, fix not implement a solution for). Pattern: [thing] [action] [reason]. [next step].",f,e,g,h,i,j,k,l].join(" "),ultra:["Respond ultra-terse. Maximum compression. Telegraphic. Strip conjunctions. One word when one word enough. Pattern: [thing] [action] [reason]. [next step].",f,e,g,h,i,j,k,l].join(" "),"wenyan-lite":["Respond semi-classical. Drop filler/hedging but keep grammar structure, classical register. Use classical Chinese sentence patterns where natural. Keep English for technical terms.",f,e,g,h,i,j,k,l].join(" "),wenyan:["Respond classical Chinese (文言文). Maximum classical terseness. 80-90% character reduction. Classical sentence patterns, verbs precede objects, subjects often omitted, classical particles (之/乃/為/其). Keep English for code, commands, function names, API names, error strings.",f,e,g,h,i,j,k,l].join(" "),"wenyan-ultra":["Respond extreme classical compression (文言文 ultra). Maximum compression, ultra terse. Same classical rules as wenyan-full but even more compressed. One classical particle per clause.",f,e,g,h,i,j,k,l].join(" ")};function n(a,b,c){(0,d.J)(a,b,m[c])}},69188:(a,b,c)=>{c.d(b,{Nv:()=>m,O2:()=>n,SI:()=>l,cB:()=>o});var d=c(48117),e=c(40657),f=c(59463);function g(a){try{return new TextEncoder().encode(JSON.stringify(a)||"").length}catch{return 0}}function h(a){let b=function(a){if(Array.isArray(a?.messages))return a.messages;if(Array.isArray(a?.input))return a.input;let b=j(a);return b?b.messages:null}(a);return{bodyBytes:g(a),messageBytes:b?g(b):0}}function i(a,b){a&&!a.reason&&(a.reason=b)}function j(a){let b=a?.conversationState;if(!b||"object"!=typeof b)return null;let c=[],d=[],e=(a,b,e,f={})=>{"string"==typeof b&&(c.push({role:a,content:b,...f}),d.push(e))},f=a=>{let b=a?.userInputMessage;if(b){e("system",b.systemInstruction,{object:b,key:"systemInstruction"}),e("user",b.content,{object:b,key:"content"});let a=b.userInputMessageContext?.toolResults;if(Array.isArray(a))for(let b of a){let a=b?.content;if(Array.isArray(a))for(let c of a)e("tool",c?.text,{object:c,key:"text"},b?.toolUseId?{tool_call_id:b.toolUseId}:{})}return}let c=a?.assistantResponseMessage;if(c){let a=(a=>{if(!Array.isArray(a)||0===a.length)return;let b=a.map(a=>({id:a?.toolUseId,type:"function",function:{name:a?.name||"",arguments:JSON.stringify(a?.input||{})}})).filter(a=>a.id||a.function.name);return b.length>0?b:void 0})(c.toolUses);e("assistant",c.content,{object:c,key:"content"},a?{tool_calls:a}:{})}};if(Array.isArray(b.history))for(let a of b.history)f(a);return b.currentMessage&&f(b.currentMessage),c.length>0?{messages:c,targets:d}:null}async function k(a,b,c,d,e,f){let g,h=function(a){try{let b=new URL(a);return b.pathname=`${b.pathname.replace(/\/$/,"")}/v1/compress`,b.hash="",b.toString()}catch{let[b,c=""]=String(a).replace(/#.*$/,"").split("?",2),d=`${b.replace(/\/$/,"")}/v1/compress`;return c?`${d}?${c}`:d}}(a);f.endpoint=function(a){try{let b=new URL(a);return b.username="",b.password="",b.search="",b.hash="",b.toString()}catch{return String(a).replace(/\/\/[^/@\s]+@/,"//").replace(/[?#].*$/,"")}}(h);let j={messages:b,model:c};e&&(j.config={compress_user_messages:!0});try{g=await fetch(h,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(j),signal:AbortSignal.timeout(d)})}catch(d){var k;let a,b,c;return i(f,`request failed: ${(k=d,a=k?.cause,b=a?.code||k?.code,c=String(a?.message||k?.message||String(k)).replace(/\/\/[^/@\s]+@/g,"//").replace(/(https?:\/\/[^\s?#]+)[?#][^\s)]*/g,"$1"),b?`${b}: ${c}`:c)}`),null}if(!g.ok)return i(f,`proxy returned HTTP ${g.status}`),null;let l=await g.json();return Array.isArray(l?.messages)?l:(i(f,"proxy response missing messages[]"),null)}async function l(a,{enabled:b,url:c,model:g,format:m,compressUserMessages:n,timeoutMs:o=3e3,diagnostics:p=null}={}){var q;if(o="number"==typeof(q=o)&&Number.isFinite(q)&&q>0?q:3e3,!b)return i(p,"disabled"),null;if(!c)return i(p,"missing proxy URL"),null;if(!a)return i(p,"missing request body"),null;try{if(p&&(p.before=h(a)),"claude"===m){let b=(0,d.t)(g,a,!1);if(!Array.isArray(b?.messages))return i(p,"Claude request did not translate to messages[]"),null;let f=await k(c,b.messages,g,o,n,p||{});if(!f)return null;let j=(0,e.p)(g,{...b,messages:f.messages},!1);return Array.isArray(j?.messages)&&(a.messages=j.messages),j?.system!==void 0&&(a.system=j.system),p&&(p.after=h(a)),f}if("openai-responses"===m){if(Array.isArray(a?.input)&&a.input.some(a=>!(!a||"object"!=typeof a||Array.isArray(a))&&"string"==typeof a.type&&"message"!==a.type))return i(p,"skipped: openai-responses tool/reasoning input is not safe to compress"),null;let b=(0,f.Z)(g,a,!1);if(!Array.isArray(b?.messages))return i(p,"openai-responses request did not translate to messages[]"),null;let d=await k(c,b.messages,g,o,n,p||{});if(!d)return null;let e=(0,f.h)(g,{...b,input:void 0,messages:d.messages},!1);return Array.isArray(e?.input)&&(a.input=e.input),p&&(p.after=h(a)),d}if("kiro"===m){let b=j(a);if(!b)return i(p,"Kiro request did not project to messages[]"),null;let d=await k(c,b.messages,g,o,n,p||{});if(!d||!function(a,b,c){if(!Array.isArray(b)||b.length!==a.messages.length)return i(c,"proxy response did not match Kiro message count"),!1;let d=[];for(let e=0;e<a.messages.length;e++){let f=a.messages[e],g=b[e];if(!g||g.role!==f.role)return i(c,"proxy response did not preserve Kiro message order"),!1;let h=function(a){let b=a?.content;if("string"==typeof b)return b;if(!Array.isArray(b))return null;let c=[];for(let a of b)"string"==typeof a?c.push(a):"string"==typeof a?.text&&c.push(a.text);return c.length>0?c.join("\n"):null}(g);if(null===h)return i(c,"proxy response missing Kiro text content"),!1;d.push({target:a.targets[e],text:h})}for(let a of d)a.target.object[a.target.key]=a.text;return!0}(b,d.messages,p))return null;return p&&(p.after=h(a)),d}let b=Array.isArray(a.messages)?"messages":Array.isArray(a.input)?"input":null;if(!b)return i(p,`unsupported ${m||"unknown"} request shape`),null;let l=await k(c,a[b],g,o,n,p||{});if(!l)return null;return a[b]=l.messages,p&&(p.after=h(a)),l}catch(a){return i(p,`unexpected error: ${a?.message||String(a)}`),null}}function m(a){if(!a)return null;let b=a.tokens_before||0,c=a.tokens_after||0,d=a.tokens_saved||0,e=b>0?(d/b*100).toFixed(1):"0";return`reported token delta=${d} before=${b}${c?` after=${c}`:""} (${e}%)`.trim()}function n(a){let b=a?.before,c=a?.after;return b&&c?`body=${b.bodyBytes}B→${c.bodyBytes}B messages=${b.messageBytes}B→${c.messageBytes}B`:""}function o(a,b,c=.05){if(!a?.tokens_saved||a.tokens_saved<=0)return!1;let d=b?.before?.bodyBytes||0,e=b?.after?.bodyBytes||0;return!(d<=0)&&!(e<=0)&&e>=d*(1-c)}},72152:(a,b,c)=>{c.d(b,{BI:()=>F,fT:()=>H});let d=new Set(["node_modules",".git","target","__pycache__",".next","dist","build",".cache",".turbo",".vercel",".pytest_cache",".mypy_cache",".tox",".venv","venv","env","coverage",".nyc_output",".DS_Store","Thumbs.db",".idea",".vscode",".vs","*.egg-info",".eggs"]);function e(a,b=500){let c=[],d="",f=0,g=0,h=!1,i=0,j=0,k=!1;for(let e of a.split("\n")){if(e.startsWith("diff --git")){j>0&&(c.push(` ... (${j} lines truncated)`),k=!0,j=0),d&&(f>0||g>0)&&c.push(` +${f} -${g}`);let a=e.split(" b/");d=a.length>1?a.slice(1).join(" b/"):"unknown",c.push(`
25
+ `)}function k(){return(0,e.v8)({event:"response.failed",data:{type:"response.failed",response:{id:`resp_${Date.now()}`,status:"failed",error:{type:"stream_error",code:"stream_disconnected",message:"stream closed before response.completed"}}}},d.h.OPENAI_RESPONSES)}},50996:(a,b,c)=>{function d(a,b){let c;if(!a.trim())return;let d=a.match(/^event:\s*(.+)$/m),e=a.match(/^data:\s*(.+)$/m);if(!d||!e)return;let f=d[1].trim(),g=e[1].trim();if("[DONE]"!==g){try{c=JSON.parse(g)}catch{return}if("response.created"===f)b.responseId=c.response?.id||b.responseId,b.created=c.response?.created_at||b.created;else if("response.output_item.done"===f)b.items.set(c.output_index??0,c.item);else if("response.completed"===f||"response.done"===f){if(b.status="completed",c.response?.usage){let a=c.response.usage;b.usage.input_tokens=a.input_tokens??a.prompt_tokens??0,b.usage.output_tokens=a.output_tokens??a.completion_tokens??0,b.usage.total_tokens=a.total_tokens??b.usage.input_tokens+b.usage.output_tokens,a.input_tokens_details&&(b.usage.input_tokens_details=a.input_tokens_details),a.output_tokens_details&&(b.usage.output_tokens_details=a.output_tokens_details)}}else"response.failed"===f&&(b.status="failed")}}c.d(b,{I9:()=>s,Fe:()=>r});let e={input_tokens:0,output_tokens:0,total_tokens:0};async function f(a){if(!a||"function"!=typeof a.getReader)return{id:`resp_${Date.now()}`,object:"response",created_at:Math.floor(Date.now()/1e3),status:"failed",output:[],usage:{...e}};let b=new TextDecoder,c="",f={responseId:"",created:Math.floor(Date.now()/1e3),status:"in_progress",usage:{...e},items:new Map};for await(let e of a){let a=(c+=b.decode(e,{stream:!0})).split("\n\n");for(let b of(c=a.pop()||"",a))d(b,f)}(c+=b.decode()).trim()&&d(c,f);let g=[],h=f.items.size>0?Math.max(...f.items.keys()):-1;for(let a=0;a<=h;a++)g.push(f.items.get(a)||{type:"message",content:[],role:"assistant"});return{id:f.responseId||`resp_${Date.now()}_${Math.random().toString(36).slice(2,8)}`,object:"response",created_at:f.created,status:f.status||"completed",output:g,usage:f.usage}}var g=c(15261),h=c(92398),i=c(69152),j=c(13946),k=c(92913),l=c(15204),m=c(14018),n=c(97781),o=c(23648);let p=a=>j.xq[a]?.format===i.h.OPENAI_RESPONSES;function q(a){if(!a?.content||!Array.isArray(a.content))return"";let b=a.content.find(a=>"output_text"===a.type);if("string"==typeof b?.text)return b.text;let c=a.content.find(a=>"string"==typeof a.text);return"string"==typeof c?.text?c.text:""}function r(a,b,c=null){let d=[],e=null;for(let b of String(a||"").split("\n")){let a=b.trim();if(!a.startsWith("data:"))continue;let c=a.slice(5).trim();if(c&&"[DONE]"!==c)try{let a=JSON.parse(c);a?.error?e=a.error:d.push(a)}catch{}}if(e)return{error:e};if(0===d.length)return null;let f=d[0],g=[],h=[],i=new Map,j="stop",k=null;for(let a of d){let b=a?.choices?.[0],c=b?.delta||{};if("string"==typeof c.content&&c.content.length>0&&g.push(c.content),"string"==typeof c.reasoning_content&&c.reasoning_content.length>0&&h.push(c.reasoning_content),b?.finish_reason&&(j=b.finish_reason),a?.usage&&"object"==typeof a.usage&&(k=a.usage),!b&&a.response){let b=a.response,c=b.candidates?.[0];if(c){for(let a of c.content?.parts||[])void 0!==a.text&&a.text&&g.push(a.text),a.thought&&a.text&&h.push(a.text);c.finishReason&&(j=c.finishReason.toLowerCase())}let d=b.usageMetadata||a.usageMetadata;if(d&&!k){let a=d.promptTokenCount||0,b=d.candidatesTokenCount||0;k={prompt_tokens:a,completion_tokens:b,total_tokens:d.totalTokenCount||a+b,completion_tokens_details:{reasoning_tokens:d.thoughtsTokenCount||0}}}}if(Array.isArray(c.tool_calls))for(let a of c.tool_calls){let b=a.index??0;i.has(b)||i.set(b,{id:a.id||"",type:"function",function:{name:"",arguments:""}});let c=i.get(b);a.id&&(c.id=a.id),a.function?.name&&(c.function.name+=a.function.name),a.function?.arguments&&(c.function.arguments+=a.function.arguments)}}let m={role:"assistant",content:g.join("")||(i.size>0?null:"")};if(h.length>0&&(m.reasoning_content=h.join("")),i.size>0){let a=[...i.entries()].sort((a,b)=>a[0]-b[0]).map(([,a])=>a);if(c&&c.length>0)for(let b of a)b.function?.name&&(b.function.name=(0,l.vh)(b.function.name,c));m.tool_calls=a}let n={id:f.id||`chatcmpl-${Date.now()}`,object:"chat.completion",created:f.created||Math.floor(Date.now()/1e3),model:f.model||b||"unknown",choices:[{index:0,message:m,finish_reason:j}]};return k&&(n.usage=k),n}async function s({providerResponse:a,sourceFormat:b,provider:c,model:d,body:e,stream:j,translatedBody:t,finalBody:u,requestStartTime:v,connectionId:w,apiKey:x,apiKeyName:y,clientRawRequest:z,onRequestSuccess:A,trackDone:B,appendLog:C,comboName:D,toolNameMap:E}){let F=a.headers.get("content-type")||"";if(!(F.includes("text/event-stream")||""===F&&p(c)))return null;B();let G={provider:c,model:d,connectionId:w,apiKey:x,apiKeyName:y,request:(0,k.Fo)(e,j),providerRequest:u||t||null};if(p(c)||b===i.h.OPENAI_RESPONSES)try{let e,g=await f(a.body);A&&await A();let h=g.usage||{},j=function(a={}){return{prompt_tokens:a.input_tokens??a.prompt_tokens??0,completion_tokens:a.output_tokens??a.completion_tokens??0,total_tokens:a.total_tokens??(a.input_tokens??a.prompt_tokens??0)+(a.output_tokens??a.completion_tokens??0)}}(h);C({tokens:j,status:"200 OK"}),(0,k.qr)({provider:c,model:d,tokens:j,connectionId:w,apiKey:x,endpoint:z?.endpoint,comboName:D});let{msgItem:l,textContent:p}=function(a){if(!Array.isArray(a))return{msgItem:null,textContent:null};let b=a.filter(a=>a?.type==="message");if(0===b.length)return{msgItem:null,textContent:null};for(let a=b.length-1;a>=0;a--){let c=q(b[a]);if(c.length>0)return{msgItem:b[a],textContent:c}}let c=b[b.length-1];return{msgItem:c,textContent:q(c)}}(g.output),r=Date.now()-v;if((0,o.ox)((0,k.$R)({...G,latency:{ttft:r,total:r},tokens:j,response:{content:p,thinking:null,finish_reason:g.status||"unknown"},status:"success"},{endpoint:z?.endpoint||null})).catch(()=>{}),b===i.h.OPENAI_RESPONSES)return{success:!0,response:new Response(JSON.stringify(g),{headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}})};let s=j.prompt_tokens,t=j.completion_tokens,u=(g.output||[]).filter(a=>"function_call"===a.type).map((a,b)=>({id:a.call_id||`call_${a.name}_${Date.now()}_${b}`,type:"function",function:{name:a.name,arguments:"string"==typeof a.arguments?a.arguments:JSON.stringify(a.arguments||{})}})),y=u.length>0;if(b===i.h.ANTIGRAVITY||b===i.h.GEMINI||b===i.h.GEMINI_CLI)e={response:{candidates:[{content:{role:"model",parts:[{text:p||""}]},finishReason:"STOP",index:0}],usageMetadata:{promptTokenCount:s,candidatesTokenCount:t,totalTokenCount:s+t},modelVersion:d,responseId:g.id||`resp_${Date.now()}`}};else if(b===i.h.CLAUDE){let a={id:g.id||`chatcmpl-${Date.now()}`,model:g.model||d,choices:[{index:0,message:{role:"assistant",content:p||(y?null:"")},finish_reason:y?"tool_calls":"stop"}],usage:{prompt_tokens:s,completion_tokens:t}};y&&(a.choices[0].message.tool_calls=u);let b=(0,m.DT)(a,d);e=(0,n.kR)(b,E)}else{let a={role:"assistant",content:p||(y?null:"")};y&&(a.tool_calls=u);let b="completed"===g.status||"done"===g.status,c=y?"tool_calls":b?"stop":g.status||"stop";e={id:g.id||`chatcmpl-${Date.now()}`,object:"chat.completion",created:g.created_at||Math.floor(Date.now()/1e3),model:g.model||d,choices:[{index:0,message:a,finish_reason:c}],usage:{prompt_tokens:s,completion_tokens:t,total_tokens:s+t}}}return{success:!0,response:new Response(JSON.stringify(e),{headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}})}}catch(a){return console.error("[ChatCore] Responses API SSE→JSON failed:",a),(0,g.A1)(h.gx.BAD_GATEWAY,"Failed to convert streaming response to JSON")}try{let f=await a.text(),j=r(f,d,(0,l.Qv)(e?.tools));if(!j)return(0,g.A1)(h.gx.BAD_GATEWAY,"Invalid SSE response for non-streaming request");if(j.error)return(0,g.A1)(h.gx.BAD_GATEWAY,j.error.message||"Upstream SSE stream failed");A&&await A();let p=j.usage||{};C({tokens:p,status:"200 OK"}),(0,k.qr)({provider:c,model:d,tokens:p,connectionId:w,apiKey:x,endpoint:z?.endpoint});let q=Date.now()-v;if((0,o.ox)((0,k.$R)({...G,latency:{ttft:q,total:q},tokens:p,response:{content:j.choices?.[0]?.message?.content||null,thinking:j.choices?.[0]?.message?.reasoning_content||null,finish_reason:j.choices?.[0]?.finish_reason||"unknown"},status:"success"},{endpoint:z?.endpoint||null})).catch(()=>{}),j?.choices)for(let a of j.choices)a?.message?.reasoning_content&&a.message.content&&delete a.message.reasoning_content;let s=j;if(b===i.h.CLAUDE){let a=(0,m.DT)(j,d);s=(0,n.kR)(a,E)}return{success:!0,response:new Response(JSON.stringify(s),{headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}})}}catch(a){return console.error("[ChatCore] Chat Completions SSE→JSON failed:",a),(0,g.A1)(h.gx.BAD_GATEWAY,"Failed to convert streaming response to JSON")}}},56764:(a,b,c)=>{c.d(b,{U:()=>l});var d=c(20526);let e="You are a lazy senior developer. Lazy means efficient, not careless. The best code is the code never written. Before writing code, stop at the first rung that holds: 1. Does this need to exist at all? Speculative need = skip it, say so in one line (YAGNI). 2. Stdlib does it? Use it. 3. Native platform feature covers it? Use it (native input over a picker lib, CSS over JS, DB constraint over app code). 4. Already-installed dependency solves it? Use it. Never add a new dependency for what a few lines can do. 5. Can it be one line? One line. 6. Only then: the minimum code that works.",f="No unrequested abstractions (no interface with one implementation, no factory for one product, no config for a value that never changes). No boilerplate or scaffolding 'for later'. Deletion over addition. Boring over clever. Fewest files possible; shortest working diff wins. Two stdlib options the same size? Take the one correct on edge cases — lazy means less code, not the flimsier algorithm. Mark deliberate simplifications with a `ponytail:` comment naming the ceiling and upgrade path (e.g. `// ponytail: global lock, per-account locks if throughput matters`).",g="Never simplify away: input validation at trust boundaries, error handling that prevents data loss, security, accessibility, or anything explicitly requested. If the user insists on the full version, build it without re-arguing.",h="now is 2026, Be skeptical: never claim 'fixed', 'working', or 'correct' without concrete proof (test output, diff, reproducible verification). If a test passes, verify it tests what you think it tests. Check for side effects. Never fabricate reports ('all tests pass' without running them). Distinguish pre-existing bugs from ones you caused — run tests BEFORE and AFTER, diff the results. Report honestly: if broken and can't fix, say so. If skipped, explain why. If caveats, state them. Verify before declaring done — run relevant tests AFTER changes, show actual output.",i="Code first. Then at most three short lines: what was skipped and when to add it. Pattern: [code] then skipped: [X], add when [Y]. If the explanation is longer than the code, delete the explanation.",j="ACTIVE EVERY RESPONSE. No drift back to over-building. Still active if unsure.",k={lite:[e,"Level: lite. Build what's asked, but name the lazier alternative in one line — the user picks.",f,i,g,h,j].join(" "),full:[e,"Level: full. The ladder is enforced — stdlib and native first, shortest diff, shortest explanation. Ship the lazy version and question unrequested scope in the same response.",f,i,g,h,j].join(" "),ultra:[e,"Level: ultra. YAGNI extremist. Deletion before addition. Ship the one-liner and challenge the rest of the requirement in the same breath. No feature until a profiler or a real requirement demands it.",f,i,g,h,j].join(" ")};function l(a,b,c){(0,d.J)(a,b,k[c])}},60137:(a,b,c)=>{c.d(b,{$:()=>r,M:()=>q});var d=c(69152),e=c(2568),f=c(45479),g=c(77380),h=c(78963),i=c(13946),j=c(92398),k=c(46646),l=c(92913),m=c(23648),n=c(2933);async function o(a,b=25e3){let c;if(!a||"function"!=typeof a.getReader)return{empty:!0};let d=a.getReader(),e=d.read();try{let a=new Promise((a,d)=>{c=setTimeout(()=>d(Error("PEEK_TIMEOUT")),b)}),{done:f,value:g}=await Promise.race([e,a]);if(f)return{empty:!0};return{empty:!1,firstChunk:g,reader:d}}catch(a){if(a?.message==="PEEK_TIMEOUT")return{empty:!1,unpeeked:!0,pendingRead:e,reader:d};throw d.cancel?.().catch(()=>{}),a}finally{clearTimeout(c)}}let p={[d.h.OPENAI_RESPONSES]:d.h.OPENAI_RESPONSES,[d.h.CLAUDE]:d.h.CLAUDE,[d.h.ANTIGRAVITY]:d.h.ANTIGRAVITY,[d.h.GEMINI]:d.h.ANTIGRAVITY,[d.h.GEMINI_CLI]:d.h.ANTIGRAVITY};async function q({providerResponse:a,provider:b,model:c,sourceFormat:r,targetFormat:s,userAgent:t,body:u,stream:v,translatedBody:w,finalBody:x,requestStartTime:y,connectionId:z,apiKey:A,apiKeyInfo:B,apiKeyName:C,clientModelId:D,clientRawRequest:E,onRequestSuccess:F,reqLogger:G,toolNameMap:H,streamController:I,onStreamComplete:J,streamDetailId:K,pxpipe:L}){let M;F&&Promise.resolve().then(F).catch(a=>{console.error("[ChatCore] onRequestSuccess failed:",a?.message||a)});let N=(a.headers.get("content-type")||"").toLowerCase();!N||N.includes("text/event-stream")||N.includes("application/json")||console.warn("[STREAM] "+b+" | "+c+" | unexpected Content-Type: "+N);try{M=await o(a.body)}catch(a){return{success:!1,status:502,errorCode:"STREAM_EARLY_EOF",error:a?.message||String(a)}}if(M.empty)return{success:!1,status:502,errorCode:"STREAM_EARLY_EOF",error:"Upstream closed stream before any useful content"};let O=function({provider:a,sourceFormat:b,targetFormat:c,userAgent:h,reqLogger:j,toolNameMap:k,model:l,connectionId:m,body:n,onStreamComplete:o,apiKey:q,responseModel:r}){let s=h?.toLowerCase().includes("droid")||h?.toLowerCase().includes("codex-cli"),t=i.xq[a]?.format===d.h.OPENAI_RESPONSES&&c===d.h.OPENAI_RESPONSES&&!s,u=/kimi-k2\./i.test(l||"");if(t){let c=p[b]||d.h.OPENAI;return(0,f.i5)(d.h.OPENAI_RESPONSES,c,a,j,k,l,m,n,o,q,u?g.vH:null,r)}return(0,e.nZ)(c,b)?(0,f.i5)(c,b,a,j,k,l,m,n,o,q,u?g.vH:null,r):(0,f.l2)(a,j,l,m,n,o,q,u?g.vH:null,r)}({provider:b,sourceFormat:r,targetFormat:s,userAgent:t,reqLogger:G,toolNameMap:H,model:c,connectionId:z,body:u,onStreamComplete:J,apiKey:A,responseModel:D}),P=r===d.h.OPENAI_RESPONSES&&s===d.h.OPENAI_RESPONSES?k.Hr:null,Q=i.xq[b]?.stallTimeoutMs||j.xM,R=new Response(function({firstChunk:a,unpeeked:b,pendingRead:c,reader:d}){let e=b,f=c;return new ReadableStream({async pull(b){if(!e){b.enqueue(a),e=!0;return}try{let{done:a,value:c}=await (f||d.read());f=null,a?(b.close(),d.releaseLock?.()):b.enqueue(c)}catch(a){b.error(a),d.cancel?.().catch(()=>{})}},cancel(a){d.cancel?.(a).catch(()=>{})}})}(M),{status:a.status,statusText:a.statusText,headers:a.headers}),S=(0,h.Jb)(R,O,I,P,Q);return(0,m.ox)((0,l.$R)({provider:b,model:c,connectionId:z,apiKey:A,apiKeyName:C,latency:{ttft:0,total:Date.now()-y},tokens:{prompt_tokens:0,completion_tokens:0},request:(0,l.Fo)(u,v),providerRequest:x||w||null,providerResponse:"[Streaming - raw response not captured]",response:{content:"[Streaming in progress...]",thinking:null,type:"streaming"},pxpipe:L,status:"success"},{id:K})).catch(a=>{console.error("[RequestDetail] Failed to save streaming request:",a.message)}),{success:!0,response:new Response(S,{headers:n.RK})}}function r({provider:a,model:b,connectionId:c,apiKey:d,apiKeyInfo:e,apiKeyName:f,requestStartTime:g,body:h,stream:i,finalBody:j,translatedBody:k,clientRawRequest:n,pxpipe:o}){let p=`${Date.now()}-${Math.random().toString(36).slice(2,11)}`;return{onStreamComplete:(q,r,s)=>{let t={ttft:s?s-g:Date.now()-g,total:Date.now()-g},u=q?.content||"[Empty streaming response]",v=q?.thinking||null;(0,m.ox)((0,l.$R)({provider:a,model:b,connectionId:c,apiKey:d,apiKeyName:f,latency:t,tokens:r||{prompt_tokens:0,completion_tokens:0},request:(0,l.Fo)(h,i),providerRequest:j||k||null,providerResponse:u,response:{content:u,thinking:v,type:"streaming"},pxpipe:o,status:"success"},{id:p})).catch(a=>{console.error("[RequestDetail] Failed to update streaming content:",a.message)}),(0,l.qr)({provider:a,model:b,tokens:r,connectionId:c,apiKey:d,apiKeyInfo:e,endpoint:n?.endpoint,label:"STREAM USAGE"})},streamDetailId:p}}},61210:(a,b,c)=>{c.d(b,{F:()=>g});let d=[{triggers:["mcp__exa__web_search_exa","mcp__exa__web_fetch_exa"],strip:["WebSearch","WebFetch","mcp__workspace__web_fetch"]},{triggers:["mcp__tavily__tavily_search","mcp__tavily__tavily_extract"],strip:["WebSearch","WebFetch","mcp__workspace__web_fetch"]},{triggers:[/^mcp__browsermcp__/],strip:[/^mcp__Claude_in_Chrome__/]}];function e(a){return a?.name||a?.function?.name||""}function f(a,b){return"string"==typeof b?a===b:b instanceof RegExp&&b.test(a)}function g(a){if(!Array.isArray(a)||0===a.length)return{tools:a,stripped:[]};let b=a.map(e),c=new Set;for(let a of d)if(b.some(b=>a.triggers.some(a=>f(b,a))))for(let d of b)a.strip.some(a=>f(d,a))&&c.add(d);return 0===c.size?{tools:a,stripped:[]}:{tools:a.filter(a=>!c.has(e(a))),stripped:Array.from(c)}}},63192:(a,b,c)=>{c.d(b,{p:()=>n});var d=c(20526);let e="Code blocks, file paths, commands, errors, URLs: keep exact. Security warnings, irreversible action confirmations, multi-step ordered sequences: write normal. Resume terse style after.",f='Not: "Sure! I\'d be happy to help you with that. The issue you\'re experiencing is likely caused by..." Yes: "Bug in auth middleware. Token expiry check use `<` not `<=`. Fix:"',g="Auto-Clarity: drop caveman for security warnings, irreversible actions, multi-step sequences where fragment ambiguity risks misread, or when user repeats a question. Resume after the clear part.",h="ACTIVE EVERY RESPONSE. No revert after many turns. No filler drift. Still active if unsure.",i="No invented abbreviations. Standard well-known tech acronyms (DB, API, HTTP, URL, JSON, ID, OS, CPU) OK. Names of code symbols, function names, API names, error strings: keep verbatim.",j="Preserve the user's dominant language. User wrote Vietnamese, reply Vietnamese. User wrote English, reply English. Wenyan/classical-Chinese levels override this language-preservation rule. Code identifiers, error strings, file paths, commands: keep in their original form regardless of language.",k='No self-reference. Do not name or announce the style (no "caveman mode", no "me caveman think", no "compressed mode active"). Just respond.',l='No decorative emoji. No narrating tool calls ("I will now search", "I used X to find Y"). No status phrases ("Sure!", "Of course!", "I\'d be happy to"). No causal arrow shorthand ("A -> B -> fails"). State the thing, the action, the reason. Then next step.',m={lite:["Respond tersely. Keep grammar and full sentences but drop filler, hedging and pleasantries (just/really/basically/sure/of course/I'd be happy to). Pattern: state the thing, the action, the reason. Then next step.",f,e,g,h,i,j,k,l].join(" "),full:["Respond like terse caveman. All technical substance stay exact, only fluff die. Drop: articles (a/an/the), filler (just/really/basically/actually/simply), pleasantries, hedging. Fragments OK. Short synonyms (big not extensive, fix not implement a solution for). Pattern: [thing] [action] [reason]. [next step].",f,e,g,h,i,j,k,l].join(" "),ultra:["Respond ultra-terse. Maximum compression. Telegraphic. Strip conjunctions. One word when one word enough. Pattern: [thing] [action] [reason]. [next step].",f,e,g,h,i,j,k,l].join(" "),"wenyan-lite":["Respond semi-classical. Drop filler/hedging but keep grammar structure, classical register. Use classical Chinese sentence patterns where natural. Keep English for technical terms.",f,e,g,h,i,j,k,l].join(" "),wenyan:["Respond classical Chinese (文言文). Maximum classical terseness. 80-90% character reduction. Classical sentence patterns, verbs precede objects, subjects often omitted, classical particles (之/乃/為/其). Keep English for code, commands, function names, API names, error strings.",f,e,g,h,i,j,k,l].join(" "),"wenyan-ultra":["Respond extreme classical compression (文言文 ultra). Maximum compression, ultra terse. Same classical rules as wenyan-full but even more compressed. One classical particle per clause.",f,e,g,h,i,j,k,l].join(" ")};function n(a,b,c){(0,d.J)(a,b,m[c])}},69188:(a,b,c)=>{c.d(b,{Nv:()=>m,O2:()=>n,SI:()=>l,cB:()=>o});var d=c(48117),e=c(40657),f=c(59463);function g(a){try{return new TextEncoder().encode(JSON.stringify(a)||"").length}catch{return 0}}function h(a){let b=function(a){if(Array.isArray(a?.messages))return a.messages;if(Array.isArray(a?.input))return a.input;let b=j(a);return b?b.messages:null}(a);return{bodyBytes:g(a),messageBytes:b?g(b):0}}function i(a,b){a&&!a.reason&&(a.reason=b)}function j(a){let b=a?.conversationState;if(!b||"object"!=typeof b)return null;let c=[],d=[],e=(a,b,e,f={})=>{"string"==typeof b&&(c.push({role:a,content:b,...f}),d.push(e))},f=a=>{let b=a?.userInputMessage;if(b){e("system",b.systemInstruction,{object:b,key:"systemInstruction"}),e("user",b.content,{object:b,key:"content"});let a=b.userInputMessageContext?.toolResults;if(Array.isArray(a))for(let b of a){let a=b?.content;if(Array.isArray(a))for(let c of a)e("tool",c?.text,{object:c,key:"text"},b?.toolUseId?{tool_call_id:b.toolUseId}:{})}return}let c=a?.assistantResponseMessage;if(c){let a=(a=>{if(!Array.isArray(a)||0===a.length)return;let b=a.map(a=>({id:a?.toolUseId,type:"function",function:{name:a?.name||"",arguments:JSON.stringify(a?.input||{})}})).filter(a=>a.id||a.function.name);return b.length>0?b:void 0})(c.toolUses);e("assistant",c.content,{object:c,key:"content"},a?{tool_calls:a}:{})}};if(Array.isArray(b.history))for(let a of b.history)f(a);return b.currentMessage&&f(b.currentMessage),c.length>0?{messages:c,targets:d}:null}async function k(a,b,c,d,e,f){let g,h=function(a){try{let b=new URL(a);return b.pathname=`${b.pathname.replace(/\/$/,"")}/v1/compress`,b.hash="",b.toString()}catch{let[b,c=""]=String(a).replace(/#.*$/,"").split("?",2),d=`${b.replace(/\/$/,"")}/v1/compress`;return c?`${d}?${c}`:d}}(a);f.endpoint=function(a){try{let b=new URL(a);return b.username="",b.password="",b.search="",b.hash="",b.toString()}catch{return String(a).replace(/\/\/[^/@\s]+@/,"//").replace(/[?#].*$/,"")}}(h);let j={messages:b,model:c};e&&(j.config={compress_user_messages:!0});try{g=await fetch(h,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(j),signal:AbortSignal.timeout(d)})}catch(d){var k;let a,b,c;return i(f,`request failed: ${(k=d,a=k?.cause,b=a?.code||k?.code,c=String(a?.message||k?.message||String(k)).replace(/\/\/[^/@\s]+@/g,"//").replace(/(https?:\/\/[^\s?#]+)[?#][^\s)]*/g,"$1"),b?`${b}: ${c}`:c)}`),null}if(!g.ok)return i(f,`proxy returned HTTP ${g.status}`),null;let l=await g.json();return Array.isArray(l?.messages)?l:(i(f,"proxy response missing messages[]"),null)}async function l(a,{enabled:b,url:c,model:g,format:m,compressUserMessages:n,timeoutMs:o=3e3,diagnostics:p=null}={}){var q;if(o="number"==typeof(q=o)&&Number.isFinite(q)&&q>0?q:3e3,!b)return i(p,"disabled"),null;if(!c)return i(p,"missing proxy URL"),null;if(!a)return i(p,"missing request body"),null;try{if(p&&(p.before=h(a)),"claude"===m){let b=(0,d.t)(g,a,!1);if(!Array.isArray(b?.messages))return i(p,"Claude request did not translate to messages[]"),null;let f=await k(c,b.messages,g,o,n,p||{});if(!f)return null;let j=(0,e.p)(g,{...b,messages:f.messages},!1);return Array.isArray(j?.messages)&&(a.messages=j.messages),j?.system!==void 0&&(a.system=j.system),p&&(p.after=h(a)),f}if("openai-responses"===m){if(Array.isArray(a?.input)&&a.input.some(a=>!(!a||"object"!=typeof a||Array.isArray(a))&&"string"==typeof a.type&&"message"!==a.type))return i(p,"skipped: openai-responses tool/reasoning input is not safe to compress"),null;let b=(0,f.Z)(g,a,!1);if(!Array.isArray(b?.messages))return i(p,"openai-responses request did not translate to messages[]"),null;let d=await k(c,b.messages,g,o,n,p||{});if(!d)return null;let e=(0,f.h)(g,{...b,input:void 0,messages:d.messages},!1);return Array.isArray(e?.input)&&(a.input=e.input),p&&(p.after=h(a)),d}if("kiro"===m){let b=j(a);if(!b)return i(p,"Kiro request did not project to messages[]"),null;let d=await k(c,b.messages,g,o,n,p||{});if(!d||!function(a,b,c){if(!Array.isArray(b)||b.length!==a.messages.length)return i(c,"proxy response did not match Kiro message count"),!1;let d=[];for(let e=0;e<a.messages.length;e++){let f=a.messages[e],g=b[e];if(!g||g.role!==f.role)return i(c,"proxy response did not preserve Kiro message order"),!1;let h=function(a){let b=a?.content;if("string"==typeof b)return b;if(!Array.isArray(b))return null;let c=[];for(let a of b)"string"==typeof a?c.push(a):"string"==typeof a?.text&&c.push(a.text);return c.length>0?c.join("\n"):null}(g);if(null===h)return i(c,"proxy response missing Kiro text content"),!1;d.push({target:a.targets[e],text:h})}for(let a of d)a.target.object[a.target.key]=a.text;return!0}(b,d.messages,p))return null;return p&&(p.after=h(a)),d}let b=Array.isArray(a.messages)?"messages":Array.isArray(a.input)?"input":null;if(!b)return i(p,`unsupported ${m||"unknown"} request shape`),null;let l=await k(c,a[b],g,o,n,p||{});if(!l)return null;return a[b]=l.messages,p&&(p.after=h(a)),l}catch(a){return i(p,`unexpected error: ${a?.message||String(a)}`),null}}function m(a){if(!a)return null;let b=a.tokens_before||0,c=a.tokens_after||0,d=a.tokens_saved||0,e=b>0?(d/b*100).toFixed(1):"0";return`reported token delta=${d} before=${b}${c?` after=${c}`:""} (${e}%)`.trim()}function n(a){let b=a?.before,c=a?.after;return b&&c?`body=${b.bodyBytes}B→${c.bodyBytes}B messages=${b.messageBytes}B→${c.messageBytes}B`:""}function o(a,b,c=.05){if(!a?.tokens_saved||a.tokens_saved<=0)return!1;let d=b?.before?.bodyBytes||0,e=b?.after?.bodyBytes||0;return!(d<=0)&&!(e<=0)&&e>=d*(1-c)}},72152:(a,b,c)=>{c.d(b,{BI:()=>F,fT:()=>H});let d=new Set(["node_modules",".git","target","__pycache__",".next","dist","build",".cache",".turbo",".vercel",".pytest_cache",".mypy_cache",".tox",".venv","venv","env","coverage",".nyc_output",".DS_Store","Thumbs.db",".idea",".vscode",".vs","*.egg-info",".eggs"]);function e(a,b=500){let c=[],d="",f=0,g=0,h=!1,i=0,j=0,k=!1;for(let e of a.split("\n")){if(e.startsWith("diff --git")){j>0&&(c.push(` ... (${j} lines truncated)`),k=!0,j=0),d&&(f>0||g>0)&&c.push(` +${f} -${g}`);let a=e.split(" b/");d=a.length>1?a.slice(1).join(" b/"):"unknown",c.push(`
32
26
  ${d}`),f=0,g=0,h=!1,i=0}else e.startsWith("@@")?(j>0&&(c.push(` ... (${j} lines truncated)`),k=!0,j=0),h=!0,i=0,c.push(` ${e}`)):h&&(e.startsWith("+")&&!e.startsWith("+++")?(f+=1,i<100?(c.push(` ${e}`),i+=1):j+=1):e.startsWith("-")&&!e.startsWith("---")?(g+=1,i<100?(c.push(` ${e}`),i+=1):j+=1):i<100&&!e.startsWith("\\")&&i>0&&(c.push(` ${e}`),i+=1));if(c.length>=b){c.push("\n... (more changes truncated)"),k=!0;break}}return j>0&&(c.push(` ... (${j} lines truncated)`),k=!0),d&&(f>0||g>0)&&c.push(` +${f} -${g}`),k&&c.push("[full diff: rtk git diff --no-compact]"),c.join("\n")}function f(a){let b=a.split("\n");if(0===b.length||1===b.length&&!b[0].trim())return"Clean working tree";let c="",d=[],e=[],f=[],g=0,h=0,i=0,j=0;for(let a of b){if(!a.trim())continue;let b=a.match(/^On branch (\S+)/);if(b){c=b[1];continue}if(a.startsWith("##")){c=a.replace(/^##\s*/,"");continue}if(a.length>=3&&/^[ MADRCU?!][ MADRCU?!] /.test(a)){let b=a[0],c=a[1],k=a.slice(3);if("??"===a.slice(0,2)){i++,f.push(k);continue}"MADRC".includes(b)?(g++,d.push(k)):"U"===b&&j++,("M"===c||"D"===c)&&(h++,e.push(k));continue}let k=a.match(/^\s*(modified|new file|deleted|renamed|both modified):\s+(.+)$/);if(k){let a=k[1],b=k[2].trim();"both modified"===a?j++:"modified"===a||"deleted"===a?(h++,e.push(b)):("new file"===a||"renamed"===a)&&(g++,d.push(b));continue}}let k="";if(c&&(k+=`* ${c}
33
27
  `),g>0){for(let a of(k+=`+ Staged: ${g} files
34
28
  `,d.slice(0,10)))k+=` ${a}
@@ -72,7 +66,7 @@ ${e.length} files in ${g.length} dirs:
72
66
  `,b.slice(0,10)))h+=` ${c}
73
67
  `;b.length>10&&(h+=` +${b.length-10}
74
68
  `),h+="\n"}return g.length>20&&(h+=`+${g.length-20} more dirs
75
- `),h.replace(/\n+$/,"")}s.filterName="search-list";let t=/^Result of search in '[^']*' \(total (\d+) files?\):/,u=/^diff --git /m,v=/^@@ /m,w=/^On branch |^nothing to commit|^Changes (not |to be )|^Untracked files:/m,x=/^[*|/\\ ]*commit [0-9a-f]{7,40}$/m,y=/^[ MADRCU?!][ MADRCU?!] \S/m,z=/^(npm (warn|error|ERR!)|yarn (warn|error)|\s*Compiling\s+\S+|\s*Downloading\s+\S+|added \d+ package|\[ERROR\]|BUILD (SUCCESS|FAILED)|\s*Finished\s+|Successfully (installed|built)|ERROR:)/im,A=/[├└]──|│ /,B=/^[-dlbcps][rwx-]{9}/m,C=/^total \d+$/m;function D(a){let b=a.indexOf(":");if(-1===b)return!1;let c=a.indexOf(":",b+1);if(-1===c)return!1;let d=a.slice(b+1,c);return/^\d+$/.test(d)}function E(a){let b=a.trim();return 0!==b.length&&(!!/^[A-Za-z]:[\\/]/.test(b)||!b.includes(":")&&(b.startsWith(".")||b.startsWith("/")||b.includes("/")))}function F(a,b){if(void 0===b&&(b=!1),!b||!a)return null;if(a.conversationState){var c=a;let b={bytesBefore:0,bytesAfter:0,hits:[]};try{let a=c.conversationState,d=[...Array.isArray(a?.history)?a.history:[]];for(let c of(a?.currentMessage&&d.push(a.currentMessage),d)){let a=c?.userInputMessage?.userInputMessageContext?.toolResults;if(Array.isArray(a)){for(let c of a)if("error"!==c.status&&Array.isArray(c.content))for(let a of c.content)a&&"string"==typeof a.text&&(a.text=G(a.text,b,"kiro-tool-result"))}}}catch(a){return console.warn("[RTK] compressKiroFormat error:",a.message),null}return b}let d=Array.isArray(a.messages)?a.messages:Array.isArray(a.input)?a.input:null;if(!d)return null;let e={bytesBefore:0,bytesAfter:0,hits:[]};try{for(let a=0;a<d.length;a++){let b=d[a];if(b){if("function_call_output"===b.type){if("string"==typeof b.output)b.output=G(b.output,e,"openai-responses-string");else if(Array.isArray(b.output))for(let a=0;a<b.output.length;a++){let c=b.output[a];c&&"input_text"===c.type&&"string"==typeof c.text&&(c.text=G(c.text,e,"openai-responses-array"))}continue}if("tool"===b.role&&"string"==typeof b.content){b.content=G(b.content,e,"openai-tool");continue}if(Array.isArray(b.content)){if("tool"===b.role){for(let a=0;a<b.content.length;a++){let c=b.content[a];c&&"text"===c.type&&"string"==typeof c.text&&(c.text=G(c.text,e,"openai-tool-array"))}continue}for(let a=0;a<b.content.length;a++){let c=b.content[a];if(c&&"tool_result"===c.type&&!0!==c.is_error){if("string"==typeof c.content)c.content=G(c.content,e,"claude-string");else if(Array.isArray(c.content))for(let a=0;a<c.content.length;a++){let b=c.content[a];b&&"text"===b.type&&"string"==typeof b.text&&(b.text=G(b.text,e,"claude-array"))}}}}}}}catch(a){return console.warn("[RTK] compressMessages error:",a.message),null}return e}function G(a,b,c){let d=a.length;if(b.bytesBefore+=d,d<500||d>0xa00000)return b.bytesAfter+=d,a;let h=function(a){var b,c;let d,h,m=a.length>1024?a.slice(0,1024):a;if(x.test(m))return g;if(u.test(m)||v.test(m))return e;if(w.test(m))return f;if(z.test(m))return i;if(!((d=m.split("\n").filter(a=>a.trim())).length<3)&&d.filter(a=>y.test(a)).length/d.length>=.6)return f;let F=m.split("\n"),G=F.filter(a=>a.trim().length>0);return G.slice(0,5).some(D)?j:G.length>=3&&G.every(E)?k:A.test(m)?o:C.test(m)||(b=m,h=new RegExp((c=B).source,c.flags.includes("g")?c.flags:c.flags+"g"),(b.match(h)||[]).length>=3)?n:t.test(m)?s:F.length>=250&&function(a){let b=0,c=0;for(let d of a.slice(0,100))0!==d.length&&(c++,r.test(d)&&b++);return!(c<5)&&b/c>=.7}(F)?q:G.length>=5?l:a.split("\n").length>=250?p:null}(a);if(!h)return b.bytesAfter+=d,a;let m=function(a,b){if("function"!=typeof a)return b;try{let c=a(b);if("string"!=typeof c)return b;return c}catch(d){let c=a.filterName||a.name||"anonymous";return console.warn(`[rtk] warning: filter '${c}' panicked — passing through raw output: ${d?.message||d}`),b}}(h,a);return!m||0===m.length||m.length>=d?(b.bytesAfter+=d,a):(b.bytesAfter+=m.length,b.hits.push({shape:c,filter:h.filterName||h.name,saved:d-m.length}),m)}function H(a){if(!a||!a.hits||0===a.hits.length)return null;let b=a.bytesBefore-a.bytesAfter,c=a.bytesBefore>0?(b/a.bytesBefore*100).toFixed(1):"0",d=Array.from(new Set(a.hits.map(a=>a.filter))).join(",");return`[RTK] saved ${b}B / ${a.bytesBefore}B (${c}%) via [${d}] hits=${a.hits.length}`}},77380:(a,b,c)=>{c.d(b,{vH:()=>f});let d="functions.";function e(a){let b=a.indexOf(d);return -1===b?{prefix:a,tail:""}:{prefix:a.slice(0,b).trim(),tail:a.slice(b)}}function f(a){let b=a?.content,c="string"==typeof b?b:"";if(Array.isArray(a?.tool_calls)&&a.tool_calls.length>0)return{message:{...a},hasTools:!0,originalContent:c};let f=function(a){if(!("string"==typeof a&&0!==a.length&&a.includes(d)))return[];let{tail:b}=e(a);if(!b)return[];let c=[],f=b,g=0;for(;f.length>0&&c.length<64&&f.startsWith(d);){let a=(f=f.slice(d.length)).indexOf(d),b=function(a,b){let c;if("string"!=typeof a||0===a.length)return null;let d=a.indexOf("{");if(-1===d)return null;let e=a.slice(0,d).trim(),f=a.slice(d),g=e.match(/^([a-zA-Z0-9_\-/.]+)(?::([a-zA-Z0-9_\-]+))?$/);if(!g)return null;let h=g[1],i=g[2];try{c=function(a){let b=0,c=!1,d=!1,e=-1;for(let f=0;f<a.length;f++){let g=a[f];if(c){if(d){d=!1;continue}if("\\"===g){d=!0;continue}'"'===g&&(c=!1);continue}if('"'===g){c=!0;continue}if("{"===g){1==++b&&(e=-1);continue}if("}"===g){if(0==--b){e=f+1;break}continue}}if(-1===e)throw Error("unbalanced JSON object");return JSON.parse(a.slice(0,e))}(f)}catch{return null}return{id:i?`functions.${h}:${i}`:`functions.${h}:${b}`,type:"function",function:{name:h,arguments:JSON.stringify(c)}}}(-1===a?f:f.slice(0,a),g);if(!b||(c.push(b),g++,-1===a))break;f=f.slice(a)}return c}(c);if(0===f.length)return{message:{...a},hasTools:!1,originalContent:c};let{prefix:g}=e(c);return{message:{...a,content:g,tool_calls:f},hasTools:!0,originalContent:c}}},78963:(a,b,c)=>{c.d(b,{Jb:()=>g,jd:()=>f});var d=c(92398),e=c(25440);function f({onDisconnect:a,onError:b,log:c,provider:d,model:g}={}){let h=new AbortController,i=Date.now(),j=!1,k=a=>{let b=Date.now()-i,c=d?.toUpperCase()||"UNKNOWN";console.log(`[${new Date().toLocaleTimeString("en-US",{hour12:!1,hour:"2-digit",minute:"2-digit",second:"2-digit"})}] 🌊 [STREAM] ${c} | ${g||"unknown"} | ${b}ms | ${a}`)};return{signal:h.signal,startTime:i,isConnected:()=>!j,handleDisconnect:(b="client_closed")=>{j||(j=!0,(0,e.s)("CTRL",`${d}/${g} | disconnect=${b} | dur=${Date.now()-i}ms`),h.abort(),a?.({reason:b,duration:Date.now()-i}))},handleComplete:()=>{j||(j=!0,k("complete"))},handleError:a=>{if(!j){if(j=!0,"AbortError"===a.name)return void k("aborted");k(`error: ${a.message}`),b?.(a)}},abort:()=>h.abort()}}function g(a,b,c,f=null,h=d.xM){let i=null,j=0,k=0,l=Date.now(),m=Date.now(),n="STREAM",o=()=>{i&&(clearTimeout(i),i=null)},p=()=>{o(),i=setTimeout(()=>{i=null,(0,e.s)(n,`STALL TIMEOUT ${h}ms | chunks=${j} | bytes=${k} | sinceLast=${Date.now()-l}ms`),c.handleError?.(Error("stream stall timeout")),c.abort?.()},h)},q={signal:c.signal,startTime:c.startTime,isConnected:()=>c.isConnected(),handleComplete:()=>{(0,e.s)(n,`complete | chunks=${j} | bytes=${k} | dur=${Date.now()-m}ms`),o(),c.handleComplete()},handleError:a=>{(0,e.s)(n,`error: ${a?.message} | chunks=${j} | bytes=${k} | dur=${Date.now()-m}ms`),o(),c.handleError(a)},handleDisconnect:a=>{(0,e.s)(n,`disconnect: ${a} | chunks=${j} | bytes=${k} | dur=${Date.now()-m}ms`),o(),c.handleDisconnect(a)},abort:()=>{o(),c.abort()}};p(),(0,e.s)(n,`pipe start | stallTimeout=${h}ms`);let r=new TransformStream({transform(a,b){j++;let c=a?.byteLength||a?.length||0;k+=c;let d=Date.now(),f=d-l;l=d,e.T&&(j<=5||j%20==0||f>5e3)&&(0,e.s)(n,`chunk #${j} | size=${c}B | gap=${f}ms | total=${k}B`),p(),b.enqueue(a)},flush(){(0,e.s)(n,`upstream EOF | chunks=${j} | bytes=${k} | dur=${Date.now()-m}ms`),o()}});return function(a,b,c=null){let d=a.readable.getReader(),e=a.writable.getWriter(),f=!1,g=a=>{if(!f&&c){f=!0;try{let b=c();b&&a.enqueue(b)}catch{}}};return new ReadableStream({async pull(a){if(!b.isConnected()){g(a),a.close();return}try{let{done:c,value:e}=await d.read();if(c){b.handleComplete(),a.close();return}a.enqueue(e)}catch(l){let f=b.isConnected(),h=l?.message||"";h.includes("already closed")||h.includes("Invalid state")||b.handleError(l),d.cancel().catch(()=>{}),e.abort().catch(()=>{});let i=l?.message||"",j=l?.code||l?.cause?.code||"",k="AbortError"===l.name||i.includes("aborted")||i.includes("socket hang up")||i.includes("ECONNRESET")||i.includes("ETIMEDOUT")||i.includes("EPIPE")||"ECONNRESET"===j||"ETIMEDOUT"===j||"EPIPE"===j||"UND_ERR_SOCKET"===j;try{!f||k||c?(g(a),a.close()):a.error(l)}catch(a){}}},cancel(a){b.handleDisconnect(a||"cancelled"),d.cancel(),e.abort()}})}({readable:a.body.pipeThrough(r).pipeThrough(b),writable:{getWriter:()=>({abort:()=>Promise.resolve()})}},q,f)}},80117:(a,b,c)=>{c.d(b,{C:()=>h});var d=c(69152),e=c(99067);let f=new Set([d.h.GEMINI,d.h.GEMINI_CLI,d.h.VERTEX,d.h.ANTIGRAVITY,d.h.OLLAMA,d.h.KIRO]);function g(a){return"string"==typeof a&&(a.startsWith("http://")||a.startsWith("https://"))}async function h(a,b,c,i={}){if(!a||!f.has(c))return 0;let j=function(a,b){let c=[],e=a=>{for(let b of a||[])if(Array.isArray(b.content)){for(let a of b.content)if(a?.type==="image_url"){let b="string"==typeof a.image_url?a.image_url:a.image_url?.url;g(b)&&c.push({get:()=>b,set:b=>{"string"==typeof a.image_url?a.image_url=b:a.image_url.url=b}})}}},f=a=>{for(let b of a||[])for(let a of b.parts||[]){let b=a?.fileData?.fileUri;g(b)&&c.push({get:()=>b,part:a})}};switch(b){case d.h.OPENAI:case d.h.OLLAMA:case d.h.KIRO:case d.h.CURSOR:case d.h.COMMANDCODE:e(a.messages);break;case d.h.CLAUDE:for(let b of a.messages||[])if(Array.isArray(b.content))for(let a of b.content)a?.type==="image"&&a.source?.type==="url"&&g(a.source.url)&&c.push({get:()=>a.source.url,claudeBlock:a});break;case d.h.GEMINI:case d.h.GEMINI_CLI:case d.h.VERTEX:f(a.contents);break;case d.h.ANTIGRAVITY:f(a?.request?.contents);break;default:e(a.messages)}return c}(a,b);return j.length?(await Promise.all(j.map(async a=>{let b=a.get();if((0,e.W$)(b))return 0;let c=await (0,e.ni)(b,i);return c?(a.set?a.set(c.url):a.part?(delete a.part.fileData,a.part.inlineData={mimeType:c.mimeType,data:c.url.split(",")[1]}):a.claudeBlock&&(a.claudeBlock.source={type:"base64",media_type:c.mimeType,data:c.url.split(",")[1]}),1):0}))).reduce((a,b)=>a+b,0):0}},81297:(a,b,c)=>{c.d(b,{X:()=>m});var d=c(69152);let e={vision:"[image omitted: model has no vision support]",audioInput:"[audio omitted: model has no audio support]",pdf:"[file omitted: model has no document support]"},f={vision:"[Previous image omitted from context.]",audioInput:"[Previous audio omitted from context.]",pdf:"[Previous file omitted from context.]"},g=(a,b)=>(b?e:f)[a];function h(a){let b=a?.type;return"image_url"===b||"image"===b?"vision":"input_audio"===b||"audio_url"===b?"audioInput":"file"===b?"pdf":null}function i(a){let b=a?.type;return"image"===b?"vision":"document"===b?"pdf":null}function j(a,b,c,d,e){let f=[];for(let e of a){let a=b(e);if(a&&!1===c[a]){d.add(a);continue}f.push(e)}for(let a of d)f.push({type:"text",text:g(a,e)});return f}function k(a,b){if(!Array.isArray(a.messages))return;let c=a.messages.length-1;a.messages.forEach((a,d)=>{if(!1===b.vision)for(let b of(delete a.images,["experimental_attachments","attachments"]))Array.isArray(a[b])&&(a[b]=a[b].filter(a=>!(a?.contentType||a?.mediaType||"").startsWith("image/")&&!("string"==typeof a?.url&&a.url.startsWith("data:image/"))));if(!Array.isArray(a.content))return;let e=new Set;a.content=j(a.content,h,b,e,d===c)})}function l(a,b){if(!Array.isArray(a))return;let c=a.length-1;a.forEach((a,d)=>{if(!Array.isArray(a.parts))return;let e=new Set;for(let f of(a.parts=a.parts.filter(a=>{var c;let d="string"!=typeof(c=a?.inlineData?.mimeType||a?.fileData?.mimeType)?null:c.startsWith("image/")?"vision":c.startsWith("audio/")?"audioInput":"application/pdf"===c?"pdf":null;return!d||!1!==b[d]||(e.add(d),!1)}),e))a.parts.push({text:g(f,d===c)})})}function m(a,b,c){if(!a||!c||!1!==c.vision&&!1!==c.audioInput&&!1!==c.pdf)return!1;switch(b){case d.h.OPENAI:case d.h.OLLAMA:case d.h.KIRO:case d.h.CURSOR:case d.h.COMMANDCODE:k(a,c);break;case d.h.CLAUDE:!function(a,b){if(!Array.isArray(a.messages))return;let c=a.messages.length-1;a.messages.forEach((a,d)=>{if(!Array.isArray(a.content))return;let e=new Set;a.content=j(a.content,i,b,e,d===c)})}(a,c);break;case d.h.OPENAI_RESPONSES:case d.h.OPENAI_RESPONSE:case d.h.CODEX:!function(a,b){if(!Array.isArray(a.input))return;let c=a.input.length-1;a.input.forEach((a,d)=>{if(!Array.isArray(a.content))return;let e=new Set;for(let f of(a.content=a.content.filter(a=>{let c=a?.type==="input_image"?"vision":a?.type==="input_file"?"pdf":null;return!c||!1!==b[c]||(e.add(c),!1)}),e))a.content.push({type:"input_text",text:g(f,d===c)})})}(a,c);break;case d.h.GEMINI:case d.h.GEMINI_CLI:case d.h.VERTEX:l(a.contents,c);break;case d.h.ANTIGRAVITY:l(a?.request?.contents,c);break;default:k(a,c)}return!0}},83571:(a,b,c)=>{c.d(b,{c:()=>i});var d=c(54729),e=c(2568),f=c(69152),g=c(92398),h=c(45479);function i(a,b,c="",e=!1){if(!c.includes("claude-cli")||!a.messages?.length)return null;let f=a.messages,h=a=>"string"==typeof a?a:Array.isArray(a)?a.filter(a=>"text"===a.type).map(a=>a.text).join(" "):"",j=!1,m=!1,n=f[f.length-1];if(n?.role==="assistant"&&n.content?.[0]?.text==="{"&&(j=!0),j||"Warmup"===h(f[0]?.content)&&(j=!0),j||1!==f.length||f[0]?.role!=="user"||"count"===h(f[0]?.content)&&(j=!0),!j&&g.C8?.length){let a=f.filter(a=>"user"===a.role).map(a=>h(a.content)).join(" ");g.C8.some(b=>a.includes(b))&&(j=!0)}if(!j&&e){let b=f.find(a=>"system"===a.role),c=h(b?.content),d=Array.isArray(a.system)?a.system.filter(a=>"text"===a.type).map(a=>a.text).join(" "):"string"==typeof a.system?a.system:"";(c||d).includes("isNewTopic")&&(j=!0,m=!0)}if(!j)return null;let o=(0,d.Tz)(a),p=!1!==a.stream;if(m){let a=f.find(a=>"user"===a.role),c=JSON.stringify({isNewTopic:!0,title:h(a?.content).trim().split(/\s+/).slice(0,3).join(" ")});return p?l(o,b,c):k(o,b,c)}return p?l(o,b):k(o,b)}function j(a,b="CLI Command Execution: Clear Terminal"){return{id:`chatcmpl-${Date.now()}`,object:"chat.completion",created:Math.floor(Date.now()/1e3),model:a,choices:[{index:0,message:{role:"assistant",content:b},finish_reason:"stop"}],usage:{prompt_tokens:1,completion_tokens:1,total_tokens:2}}}function k(a,b,c){let d=j(b,c);if(a===f.h.OPENAI)return{success:!0,response:new Response(JSON.stringify(d),{headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}})};let g=(0,e.Ws)(a);g.model=b;let h=m(d),i=[];for(let b of h){let c=(0,e.Y8)(f.h.OPENAI,a,b,g);c?.length>0&&i.push(...c)}let k=(0,e.Y8)(f.h.OPENAI,a,null,g);return k?.length>0&&i.push(...k),{success:!0,response:new Response(JSON.stringify(function(a,b){if(!a||0===a.length)return j("unknown");let c=a[a.length-1];if(b===f.h.CLAUDE&&a.find(a=>"message_stop"===a.type)){a.find(a=>"content_block_delta"===a.type);let b=a.find(a=>"message_delta"===a.type),d=a.find(a=>"message_start"===a.type);if(d?.message){c=d.message;let a=d.message.usage,e=b?.usage;(a||e)&&(c.usage={...a||{},...e||{},...a?.cache_read_input_tokens!==void 0?{cache_read_input_tokens:a.cache_read_input_tokens}:{},...a?.cache_creation_input_tokens!==void 0?{cache_creation_input_tokens:a.cache_creation_input_tokens}:{},...a?.input_tokens!==void 0?{input_tokens:a.input_tokens}:{}})}}return c}(i,a)),{headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}})}}function l(a,b,c){let d=j(b,c),g=(0,e.Ws)(a);g.model=b;let i=m(d),k=[];for(let b of i){let c=(0,e.Y8)(f.h.OPENAI,a,b,g);if(c?.length>0)for(let b of c)k.push((0,h.v8)(b,a))}let l=(0,e.Y8)(f.h.OPENAI,a,null,g);if(l?.length>0)for(let b of l)k.push((0,h.v8)(b,a));return k.push("data: [DONE]\n\n"),{success:!0,response:new Response(k.join(""),{headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive","Access-Control-Allow-Origin":"*"}})}}function m(a){let{id:b,created:c,model:d,choices:e}=a;return[{id:b,object:"chat.completion.chunk",created:c,model:d,choices:[{index:0,delta:{role:"assistant",content:e[0].message.content},finish_reason:null}]},{id:b,object:"chat.completion.chunk",created:c,model:d,choices:[{index:0,delta:{},finish_reason:"stop"}],usage:a.usage}]}},86954:(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(!d||!e||(await i(),!f||!h))return null;try{f.existsSync(h)||f.mkdirSync(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()),i=String(a.getMilliseconds()).padStart(3,"0");return`${c}${d}${e}_${f}${g}${h}_${i}`}(),e=(c||"unknown").replace(/[/:]/g,"-"),i=`${a}_${b}_${e}_${d}`,j=g.join(h,i);return f.mkdirSync(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)try{let d=g.join(a,b);f.writeFileSync(d,JSON.stringify(c,null,2))}catch(a){console.log(`[LOG] Failed to write ${b}:`,a.message)}}function l(a){return a?{...a}:{}}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)try{let b=g.join(d,"5_res_provider.txt");f.appendFileSync(b,a)}catch(a){}},appendOpenAIChunk(a){if(f&&d)try{let b=g.join(d,"6_res_openai.txt");f.appendFileSync(b,a)}catch(a){}},logConvertedResponse(a){k(d,"7_res_client.json",{timestamp:new Date().toISOString(),body:a})},appendConvertedChunk(a){if(f&&d)try{let b=g.join(d,"7_res_client.txt");f.appendFileSync(b,a)}catch(a){}},logError(a,b=null){k(d,"6_error.json",{timestamp:new Date().toISOString(),error:a?.message||String(a),stack:a?.stack,requestBody:b})}}}},92201:(a,b,c)=>{c.d(b,{y:()=>f});var d=c(2933);let e=new TextEncoder;function f(a){let b=a?.choices?.[0],c=b?.message;if(!c)return new Response(new ReadableStream({start(b){b.enqueue(e.encode(`data: ${JSON.stringify(a)}
69
+ `),h.replace(/\n+$/,"")}s.filterName="search-list";let t=/^Result of search in '[^']*' \(total (\d+) files?\):/,u=/^diff --git /m,v=/^@@ /m,w=/^On branch |^nothing to commit|^Changes (not |to be )|^Untracked files:/m,x=/^[*|/\\ ]*commit [0-9a-f]{7,40}$/m,y=/^[ MADRCU?!][ MADRCU?!] \S/m,z=/^(npm (warn|error|ERR!)|yarn (warn|error)|\s*Compiling\s+\S+|\s*Downloading\s+\S+|added \d+ package|\[ERROR\]|BUILD (SUCCESS|FAILED)|\s*Finished\s+|Successfully (installed|built)|ERROR:)/im,A=/[├└]──|│ /,B=/^[-dlbcps][rwx-]{9}/m,C=/^total \d+$/m;function D(a){let b=a.indexOf(":");if(-1===b)return!1;let c=a.indexOf(":",b+1);if(-1===c)return!1;let d=a.slice(b+1,c);return/^\d+$/.test(d)}function E(a){let b=a.trim();return 0!==b.length&&(!!/^[A-Za-z]:[\\/]/.test(b)||!b.includes(":")&&(b.startsWith(".")||b.startsWith("/")||b.includes("/")))}function F(a,b){if(void 0===b&&(b=!1),!b||!a)return null;if(a.conversationState){var c=a;let b={bytesBefore:0,bytesAfter:0,hits:[]};try{let a=c.conversationState,d=[...Array.isArray(a?.history)?a.history:[]];for(let c of(a?.currentMessage&&d.push(a.currentMessage),d)){let a=c?.userInputMessage?.userInputMessageContext?.toolResults;if(Array.isArray(a)){for(let c of a)if("error"!==c.status&&Array.isArray(c.content))for(let a of c.content)a&&"string"==typeof a.text&&(a.text=G(a.text,b,"kiro-tool-result"))}}}catch(a){return console.warn("[RTK] compressKiroFormat error:",a.message),null}return b}let d=Array.isArray(a.messages)?a.messages:Array.isArray(a.input)?a.input:null;if(!d)return null;let e={bytesBefore:0,bytesAfter:0,hits:[]};try{for(let a=0;a<d.length;a++){let b=d[a];if(b){if("function_call_output"===b.type){if("string"==typeof b.output)b.output=G(b.output,e,"openai-responses-string");else if(Array.isArray(b.output))for(let a=0;a<b.output.length;a++){let c=b.output[a];c&&"input_text"===c.type&&"string"==typeof c.text&&(c.text=G(c.text,e,"openai-responses-array"))}continue}if("tool"===b.role&&"string"==typeof b.content){b.content=G(b.content,e,"openai-tool");continue}if(Array.isArray(b.content)){if("tool"===b.role){for(let a=0;a<b.content.length;a++){let c=b.content[a];c&&"text"===c.type&&"string"==typeof c.text&&(c.text=G(c.text,e,"openai-tool-array"))}continue}for(let a=0;a<b.content.length;a++){let c=b.content[a];if(c&&"tool_result"===c.type&&!0!==c.is_error){if("string"==typeof c.content)c.content=G(c.content,e,"claude-string");else if(Array.isArray(c.content))for(let a=0;a<c.content.length;a++){let b=c.content[a];b&&"text"===b.type&&"string"==typeof b.text&&(b.text=G(b.text,e,"claude-array"))}}}}}}}catch(a){return console.warn("[RTK] compressMessages error:",a.message),null}return e}function G(a,b,c){let d=a.length;if(b.bytesBefore+=d,d<500||d>0xa00000)return b.bytesAfter+=d,a;let h=function(a){var b,c;let d,h,m=a.length>1024?a.slice(0,1024):a;if(x.test(m))return g;if(u.test(m)||v.test(m))return e;if(w.test(m))return f;if(z.test(m))return i;if(!((d=m.split("\n").filter(a=>a.trim())).length<3)&&d.filter(a=>y.test(a)).length/d.length>=.6)return f;let F=m.split("\n"),G=F.filter(a=>a.trim().length>0);return G.slice(0,5).some(D)?j:G.length>=3&&G.every(E)?k:A.test(m)?o:C.test(m)||(b=m,h=new RegExp((c=B).source,c.flags.includes("g")?c.flags:c.flags+"g"),(b.match(h)||[]).length>=3)?n:t.test(m)?s:F.length>=250&&function(a){let b=0,c=0;for(let d of a.slice(0,100))0!==d.length&&(c++,r.test(d)&&b++);return!(c<5)&&b/c>=.7}(F)?q:G.length>=5?l:a.split("\n").length>=250?p:null}(a);if(!h)return b.bytesAfter+=d,a;let m=function(a,b){if("function"!=typeof a)return b;try{let c=a(b);if("string"!=typeof c)return b;return c}catch(d){let c=a.filterName||a.name||"anonymous";return console.warn(`[rtk] warning: filter '${c}' panicked — passing through raw output: ${d?.message||d}`),b}}(h,a);return!m||0===m.length||m.length>=d?(b.bytesAfter+=d,a):(b.bytesAfter+=m.length,b.hits.push({shape:c,filter:h.filterName||h.name,saved:d-m.length}),m)}function H(a){if(!a||!a.hits||0===a.hits.length)return null;let b=a.bytesBefore-a.bytesAfter,c=a.bytesBefore>0?(b/a.bytesBefore*100).toFixed(1):"0",d=Array.from(new Set(a.hits.map(a=>a.filter))).join(",");return`[RTK] saved ${b}B / ${a.bytesBefore}B (${c}%) via [${d}] hits=${a.hits.length}`}},77380:(a,b,c)=>{c.d(b,{vH:()=>f});let d="functions.";function e(a){let b=a.indexOf(d);return -1===b?{prefix:a,tail:""}:{prefix:a.slice(0,b).trim(),tail:a.slice(b)}}function f(a){let b=a?.content,c="string"==typeof b?b:"";if(Array.isArray(a?.tool_calls)&&a.tool_calls.length>0)return{message:{...a},hasTools:!0,originalContent:c};let f=function(a){if(!("string"==typeof a&&0!==a.length&&a.includes(d)))return[];let{tail:b}=e(a);if(!b)return[];let c=[],f=b,g=0;for(;f.length>0&&c.length<64&&f.startsWith(d);){let a=(f=f.slice(d.length)).indexOf(d),b=function(a,b){let c;if("string"!=typeof a||0===a.length)return null;let d=a.indexOf("{");if(-1===d)return null;let e=a.slice(0,d).trim(),f=a.slice(d),g=e.match(/^([a-zA-Z0-9_\-/.]+)(?::([a-zA-Z0-9_\-]+))?$/);if(!g)return null;let h=g[1],i=g[2];try{c=function(a){let b=0,c=!1,d=!1,e=-1;for(let f=0;f<a.length;f++){let g=a[f];if(c){if(d){d=!1;continue}if("\\"===g){d=!0;continue}'"'===g&&(c=!1);continue}if('"'===g){c=!0;continue}if("{"===g){1==++b&&(e=-1);continue}if("}"===g){if(0==--b){e=f+1;break}continue}}if(-1===e)throw Error("unbalanced JSON object");return JSON.parse(a.slice(0,e))}(f)}catch{return null}return{id:i?`functions.${h}:${i}`:`functions.${h}:${b}`,type:"function",function:{name:h,arguments:JSON.stringify(c)}}}(-1===a?f:f.slice(0,a),g);if(!b||(c.push(b),g++,-1===a))break;f=f.slice(a)}return c}(c);if(0===f.length)return{message:{...a},hasTools:!1,originalContent:c};let{prefix:g}=e(c);return{message:{...a,content:g,tool_calls:f},hasTools:!0,originalContent:c}}},78963:(a,b,c)=>{c.d(b,{Jb:()=>g,jd:()=>f});var d=c(92398),e=c(25440);function f({onDisconnect:a,onError:b,log:c,provider:d,model:g}={}){let h=new AbortController,i=Date.now(),j=!1,k=a=>{let b=Date.now()-i,c=d?.toUpperCase()||"UNKNOWN";console.log(`[${new Date().toLocaleTimeString("en-US",{hour12:!1,hour:"2-digit",minute:"2-digit",second:"2-digit"})}] 🌊 [STREAM] ${c} | ${g||"unknown"} | ${b}ms | ${a}`)};return{signal:h.signal,startTime:i,isConnected:()=>!j,handleDisconnect:(b="client_closed")=>{j||(j=!0,(0,e.s)("CTRL",`${d}/${g} | disconnect=${b} | dur=${Date.now()-i}ms`),h.abort(),a?.({reason:b,duration:Date.now()-i}))},handleComplete:()=>{j||(j=!0,k("complete"))},handleError:a=>{if(!j){if(j=!0,"AbortError"===a.name)return void k("aborted");k(`error: ${a.message}`),b?.(a)}},abort:()=>h.abort()}}function g(a,b,c,f=null,h=d.xM){let i=null,j=0,k=0,l=Date.now(),m=Date.now(),n="STREAM",o=()=>{i&&(clearTimeout(i),i=null)},p=()=>{o(),i=setTimeout(()=>{i=null,(0,e.s)(n,`STALL TIMEOUT ${h}ms | chunks=${j} | bytes=${k} | sinceLast=${Date.now()-l}ms`),c.handleError?.(Error("stream stall timeout")),c.abort?.()},h)},q={signal:c.signal,startTime:c.startTime,isConnected:()=>c.isConnected(),handleComplete:()=>{(0,e.s)(n,`complete | chunks=${j} | bytes=${k} | dur=${Date.now()-m}ms`),o(),c.handleComplete()},handleError:a=>{(0,e.s)(n,`error: ${a?.message} | chunks=${j} | bytes=${k} | dur=${Date.now()-m}ms`),o(),c.handleError(a)},handleDisconnect:a=>{(0,e.s)(n,`disconnect: ${a} | chunks=${j} | bytes=${k} | dur=${Date.now()-m}ms`),o(),c.handleDisconnect(a)},abort:()=>{o(),c.abort()}};p(),(0,e.s)(n,`pipe start | stallTimeout=${h}ms`);let r=new TransformStream({transform(a,b){j++;let c=a?.byteLength||a?.length||0;k+=c;let d=Date.now(),f=d-l;l=d,e.T&&(j<=5||j%20==0||f>5e3)&&(0,e.s)(n,`chunk #${j} | size=${c}B | gap=${f}ms | total=${k}B`),p(),b.enqueue(a)},flush(){(0,e.s)(n,`upstream EOF | chunks=${j} | bytes=${k} | dur=${Date.now()-m}ms`),o()}});return function(a,b,c=null){let d=a.readable.getReader(),e=a.writable.getWriter(),f=!1,g=a=>{if(!f&&c){f=!0;try{let b=c();b&&a.enqueue(b)}catch{}}},h=new TextEncoder().encode(": keep-alive\n\n"),i=Date.now(),j=null;return new ReadableStream({start(a){j=setInterval(()=>{if(!b.isConnected())return void clearInterval(j);if(Date.now()-i>=15e3)try{a.enqueue(h),i=Date.now()}catch{clearInterval(j)}},15e3)},async pull(a){if(!b.isConnected()){j&&clearInterval(j),g(a),a.close();return}try{let{done:c,value:e}=await d.read();if(c){j&&clearInterval(j),b.handleComplete(),a.close();return}i=Date.now(),a.enqueue(e)}catch(m){j&&clearInterval(j);let f=b.isConnected(),h=m?.message||"";h.includes("already closed")||h.includes("Invalid state")||b.handleError(m),d.cancel().catch(()=>{}),e.abort().catch(()=>{});let i=m?.message||"",k=m?.code||m?.cause?.code||"",l="AbortError"===m.name||i.includes("aborted")||i.includes("socket hang up")||i.includes("ECONNRESET")||i.includes("ETIMEDOUT")||i.includes("EPIPE")||"ECONNRESET"===k||"ETIMEDOUT"===k||"EPIPE"===k||"UND_ERR_SOCKET"===k;try{!f||l||c?(g(a),a.close()):a.error(m)}catch(a){}}},cancel(a){j&&clearInterval(j),b.handleDisconnect(a||"cancelled"),d.cancel(),e.abort()}})}({readable:a.body.pipeThrough(r).pipeThrough(b),writable:{getWriter:()=>({abort:()=>Promise.resolve()})}},q,f)}},80117:(a,b,c)=>{c.d(b,{C:()=>h});var d=c(69152),e=c(99067);let f=new Set([d.h.GEMINI,d.h.GEMINI_CLI,d.h.VERTEX,d.h.ANTIGRAVITY,d.h.OLLAMA,d.h.KIRO]);function g(a){return"string"==typeof a&&(a.startsWith("http://")||a.startsWith("https://"))}async function h(a,b,c,i={}){if(!a||!f.has(c))return 0;let j=function(a,b){let c=[],e=a=>{for(let b of a||[])if(Array.isArray(b.content)){for(let a of b.content)if(a?.type==="image_url"){let b="string"==typeof a.image_url?a.image_url:a.image_url?.url;g(b)&&c.push({get:()=>b,set:b=>{"string"==typeof a.image_url?a.image_url=b:a.image_url.url=b}})}}},f=a=>{for(let b of a||[])for(let a of b.parts||[]){let b=a?.fileData?.fileUri;g(b)&&c.push({get:()=>b,part:a})}};switch(b){case d.h.OPENAI:case d.h.OLLAMA:case d.h.KIRO:case d.h.CURSOR:case d.h.COMMANDCODE:e(a.messages);break;case d.h.CLAUDE:for(let b of a.messages||[])if(Array.isArray(b.content))for(let a of b.content)a?.type==="image"&&a.source?.type==="url"&&g(a.source.url)&&c.push({get:()=>a.source.url,claudeBlock:a});break;case d.h.GEMINI:case d.h.GEMINI_CLI:case d.h.VERTEX:f(a.contents);break;case d.h.ANTIGRAVITY:f(a?.request?.contents);break;default:e(a.messages)}return c}(a,b);return j.length?(await Promise.all(j.map(async a=>{let b=a.get();if((0,e.W$)(b))return 0;let c=await (0,e.ni)(b,i);return c?(a.set?a.set(c.url):a.part?(delete a.part.fileData,a.part.inlineData={mimeType:c.mimeType,data:c.url.split(",")[1]}):a.claudeBlock&&(a.claudeBlock.source={type:"base64",media_type:c.mimeType,data:c.url.split(",")[1]}),1):0}))).reduce((a,b)=>a+b,0):0}},81297:(a,b,c)=>{c.d(b,{X:()=>m});var d=c(69152);let e={vision:"[image omitted: model has no vision support]",audioInput:"[audio omitted: model has no audio support]",pdf:"[file omitted: model has no document support]"},f={vision:"[Previous image omitted from context.]",audioInput:"[Previous audio omitted from context.]",pdf:"[Previous file omitted from context.]"},g=(a,b)=>(b?e:f)[a];function h(a){let b=a?.type;return"image_url"===b||"image"===b?"vision":"input_audio"===b||"audio_url"===b?"audioInput":"file"===b?"pdf":null}function i(a){let b=a?.type;return"image"===b?"vision":"document"===b?"pdf":null}function j(a,b,c,d,e){let f=[];for(let e of a){let a=b(e);if(a&&!1===c[a]){d.add(a);continue}f.push(e)}for(let a of d)f.push({type:"text",text:g(a,e)});return f}function k(a,b){if(!Array.isArray(a.messages))return;let c=a.messages.length-1;a.messages.forEach((a,d)=>{if(!1===b.vision)for(let b of(delete a.images,["experimental_attachments","attachments"]))Array.isArray(a[b])&&(a[b]=a[b].filter(a=>!(a?.contentType||a?.mediaType||"").startsWith("image/")&&!("string"==typeof a?.url&&a.url.startsWith("data:image/"))));if(!Array.isArray(a.content))return;let e=new Set;a.content=j(a.content,h,b,e,d===c)})}function l(a,b){if(!Array.isArray(a))return;let c=a.length-1;a.forEach((a,d)=>{if(!Array.isArray(a.parts))return;let e=new Set;for(let f of(a.parts=a.parts.filter(a=>{var c;let d="string"!=typeof(c=a?.inlineData?.mimeType||a?.fileData?.mimeType)?null:c.startsWith("image/")?"vision":c.startsWith("audio/")?"audioInput":"application/pdf"===c?"pdf":null;return!d||!1!==b[d]||(e.add(d),!1)}),e))a.parts.push({text:g(f,d===c)})})}function m(a,b,c){if(!a||!c||!1!==c.vision&&!1!==c.audioInput&&!1!==c.pdf)return!1;switch(b){case d.h.OPENAI:case d.h.OLLAMA:case d.h.KIRO:case d.h.CURSOR:case d.h.COMMANDCODE:k(a,c);break;case d.h.CLAUDE:!function(a,b){if(!Array.isArray(a.messages))return;let c=a.messages.length-1;a.messages.forEach((a,d)=>{if(!Array.isArray(a.content))return;let e=new Set;a.content=j(a.content,i,b,e,d===c)})}(a,c);break;case d.h.OPENAI_RESPONSES:case d.h.OPENAI_RESPONSE:case d.h.CODEX:!function(a,b){if(!Array.isArray(a.input))return;let c=a.input.length-1;a.input.forEach((a,d)=>{if(!Array.isArray(a.content))return;let e=new Set;for(let f of(a.content=a.content.filter(a=>{let c=a?.type==="input_image"?"vision":a?.type==="input_file"?"pdf":null;return!c||!1!==b[c]||(e.add(c),!1)}),e))a.content.push({type:"input_text",text:g(f,d===c)})})}(a,c);break;case d.h.GEMINI:case d.h.GEMINI_CLI:case d.h.VERTEX:l(a.contents,c);break;case d.h.ANTIGRAVITY:l(a?.request?.contents,c);break;default:k(a,c)}return!0}},83571:(a,b,c)=>{c.d(b,{c:()=>i});var d=c(54729),e=c(2568),f=c(69152),g=c(92398),h=c(45479);function i(a,b,c="",e=!1){if(!c.includes("claude-cli")||!a.messages?.length)return null;let f=a.messages,h=a=>"string"==typeof a?a:Array.isArray(a)?a.filter(a=>"text"===a.type).map(a=>a.text).join(" "):"",j=!1,m=!1,n=f[f.length-1];if(n?.role==="assistant"&&n.content?.[0]?.text==="{"&&(j=!0),j||"Warmup"===h(f[0]?.content)&&(j=!0),j||1!==f.length||f[0]?.role!=="user"||"count"===h(f[0]?.content)&&(j=!0),!j&&g.C8?.length){let a=f.filter(a=>"user"===a.role).map(a=>h(a.content)).join(" ");g.C8.some(b=>a.includes(b))&&(j=!0)}if(!j&&e){let b=f.find(a=>"system"===a.role),c=h(b?.content),d=Array.isArray(a.system)?a.system.filter(a=>"text"===a.type).map(a=>a.text).join(" "):"string"==typeof a.system?a.system:"";(c||d).includes("isNewTopic")&&(j=!0,m=!0)}if(!j)return null;let o=(0,d.Tz)(a),p=!1!==a.stream;if(m){let a=f.find(a=>"user"===a.role),c=JSON.stringify({isNewTopic:!0,title:h(a?.content).trim().split(/\s+/).slice(0,3).join(" ")});return p?l(o,b,c):k(o,b,c)}return p?l(o,b):k(o,b)}function j(a,b="CLI Command Execution: Clear Terminal"){return{id:`chatcmpl-${Date.now()}`,object:"chat.completion",created:Math.floor(Date.now()/1e3),model:a,choices:[{index:0,message:{role:"assistant",content:b},finish_reason:"stop"}],usage:{prompt_tokens:1,completion_tokens:1,total_tokens:2}}}function k(a,b,c){let d=j(b,c);if(a===f.h.OPENAI)return{success:!0,response:new Response(JSON.stringify(d),{headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}})};let g=(0,e.Ws)(a);g.model=b;let h=m(d),i=[];for(let b of h){let c=(0,e.Y8)(f.h.OPENAI,a,b,g);c?.length>0&&i.push(...c)}let k=(0,e.Y8)(f.h.OPENAI,a,null,g);return k?.length>0&&i.push(...k),{success:!0,response:new Response(JSON.stringify(function(a,b){if(!a||0===a.length)return j("unknown");let c=a[a.length-1];if(b===f.h.CLAUDE&&a.find(a=>"message_stop"===a.type)){a.find(a=>"content_block_delta"===a.type);let b=a.find(a=>"message_delta"===a.type),d=a.find(a=>"message_start"===a.type);if(d?.message){c=d.message;let a=d.message.usage,e=b?.usage;(a||e)&&(c.usage={...a||{},...e||{},...a?.cache_read_input_tokens!==void 0?{cache_read_input_tokens:a.cache_read_input_tokens}:{},...a?.cache_creation_input_tokens!==void 0?{cache_creation_input_tokens:a.cache_creation_input_tokens}:{},...a?.input_tokens!==void 0?{input_tokens:a.input_tokens}:{}})}}return c}(i,a)),{headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}})}}function l(a,b,c){let d=j(b,c),g=(0,e.Ws)(a);g.model=b;let i=m(d),k=[];for(let b of i){let c=(0,e.Y8)(f.h.OPENAI,a,b,g);if(c?.length>0)for(let b of c)k.push((0,h.v8)(b,a))}let l=(0,e.Y8)(f.h.OPENAI,a,null,g);if(l?.length>0)for(let b of l)k.push((0,h.v8)(b,a));return k.push("data: [DONE]\n\n"),{success:!0,response:new Response(k.join(""),{headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive","Access-Control-Allow-Origin":"*"}})}}function m(a){let{id:b,created:c,model:d,choices:e}=a;return[{id:b,object:"chat.completion.chunk",created:c,model:d,choices:[{index:0,delta:{role:"assistant",content:e[0].message.content},finish_reason:null}]},{id:b,object:"chat.completion.chunk",created:c,model:d,choices:[{index:0,delta:{},finish_reason:"stop"}],usage:a.usage}]}},86954:(a,b,c)=>{c.d(b,{q7:()=>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(!d||!e||(await i(),!f||!h))return null;try{f.existsSync(h)||f.mkdirSync(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()),i=String(a.getMilliseconds()).padStart(3,"0");return`${c}${d}${e}_${f}${g}${h}_${i}`}(),e=(c||"unknown").replace(/[/:]/g,"-"),i=`${a}_${b}_${e}_${d}`,j=g.join(h,i);return f.mkdirSync(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)try{let d=g.join(a,b);f.writeFileSync(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="function"==typeof a.entries?a.entries():Object.entries(a),c={};for(let[a,d]of b)c[a]=/authorization|api[-_]?key|cookie|token|secret/i.test(a)?"[REDACTED]":d;return c}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:l(c),body:e})},appendProviderChunk(a){if(f&&d)try{let b=g.join(d,"5_res_provider.txt");f.appendFileSync(b,a)}catch(a){}},appendOpenAIChunk(a){if(f&&d)try{let b=g.join(d,"6_res_openai.txt");f.appendFileSync(b,a)}catch(a){}},logConvertedResponse(a){k(d,"7_res_client.json",{timestamp:new Date().toISOString(),body:a})},appendConvertedChunk(a){if(f&&d)try{let b=g.join(d,"7_res_client.txt");f.appendFileSync(b,a)}catch(a){}},logError(a,b=null){k(d,"6_error.json",{timestamp:new Date().toISOString(),error:a?.message||String(a),stack:a?.stack,requestBody:b})}}}},92201:(a,b,c)=>{c.d(b,{y:()=>f});var d=c(2933);let e=new TextEncoder;function f(a){let b=a?.choices?.[0],c=b?.message;if(!c)return new Response(new ReadableStream({start(b){b.enqueue(e.encode(`data: ${JSON.stringify(a)}
76
70
 
77
71
  data: [DONE]
78
72
 
@@ -1 +1 @@
1
- exports.id=2764,exports.ids=[1253,2764,5577],exports.modules={13674:()=>{},13946:(a,b,c)=>{"use strict";c.d(b,{Ak:()=>e,Yg:()=>h,sr:()=>d.sr,uT:()=>i,xq:()=>d.xq});var d=c(17863);function e(a){return(a?.providerSpecificData?.baseUrl?.trim()||"http://localhost:11434").replace(/\/$/,"")}let f=d.xq["xiaomi-tokenplan"]?.regions||{},g=d.xq["xiaomi-tokenplan"]?.defaultRegion;function h(a){return f[a?.providerSpecificData?.region]||f[g]}function i(a){return d.vq[a]||[]}},39006:a=>{"use strict";a.exports={rE:"0.91.21"}},41073:(a,b,c)=>{"use strict";c.d(b,{g:()=>m,l:()=>l});var d=c(79646),e=c(33873),f=c.n(e),g=c(29021),h=c.n(g),i=c(21820),j=c.n(i),k=c(79603);async function l(){!function(){try{let a=f().join("win32"===process.platform?f().join(process.env.APPDATA||"","9router"):f().join(j().homedir(),".9router"),"mitm",".mitm.pid");if(!h().existsSync(a))return;let b=parseInt(h().readFileSync(a,"utf8").trim(),10);if(!b)return;if("win32"===process.platform)try{(0,d.execSync)(`taskkill /F /T /PID ${b}`,{stdio:"ignore",windowsHide:!0,timeout:3e3})}catch{try{(0,d.execSync)(`powershell -NonInteractive -WindowStyle Hidden -Command "Stop-Process -Id ${b} -Force"`,{stdio:"ignore",windowsHide:!0,timeout:3e3})}catch{}}else try{(0,d.execSync)(`sudo -n kill -9 ${b} 2>/dev/null`,{stdio:"ignore",timeout:3e3})}catch{try{process.kill(b,"SIGKILL")}catch{}}try{h().unlinkSync(a)}catch{}}catch{}}();let a=function(){let a=[];if("win32"===process.platform){try{(0,d.execSync)('powershell -NonInteractive -WindowStyle Hidden -Command "Get-WmiObject Win32_Process -Filter \'Name=\\"node.exe\\"\' | Select-Object ProcessId,CommandLine | ConvertTo-Csv -NoTypeInformation"',{encoding:"utf8",windowsHide:!0,timeout:5e3}).split("\n").slice(1).filter(a=>a.trim()).forEach(b=>{let c=b.toLowerCase();if(c.includes("9router")||c.includes("next-server")||c.includes("\\bin\\app\\")||c.includes("/bin/app/")||c.includes("cli.js")){let c=b.match(/^"(\d+)"/);c&&c[1]&&c[1]!==process.pid.toString()&&a.push(c[1])}})}catch{}for(let b of["cloudflared","tray_windows_release"])try{let c=`powershell -NonInteractive -WindowStyle Hidden -Command "Get-Process ${b} -ErrorAction SilentlyContinue | Select-Object -ExpandProperty Id"`;(0,d.execSync)(c,{encoding:"utf8",windowsHide:!0,timeout:5e3}).split("\n").forEach(b=>{let c=b.trim();c&&!isNaN(c)&&a.push(c)})}catch{}}else try{(0,d.execSync)("ps aux 2>/dev/null",{encoding:"utf8",timeout:5e3}).split("\n").forEach(b=>{if(b.includes("9router")||b.includes("next-server")||b.includes("cloudflared")||b.includes("/bin/app/")||b.includes("tray_darwin")||b.includes("tray_linux")){let c=b.trim().split(/\s+/)[1];c&&!isNaN(c)&&c!==process.pid.toString()&&a.push(c)}})}catch{}return a}(),b=process.platform;a.forEach(a=>{try{"win32"===b?(0,d.execSync)(`taskkill /F /PID ${a} 2>nul`,{stdio:"ignore",shell:!0,windowsHide:!0,timeout:3e3}):(0,d.execSync)(`kill -9 ${a} 2>/dev/null`,{stdio:"ignore",timeout:3e3})}catch{}}),a.length>0&&await new Promise(a=>setTimeout(a,1500))}function m(a=k.h0.npmPackageName){let b=function(a){try{if(!a||!h().existsSync(a))return a;let b=f().join(process.env.DATA_DIR?process.env.DATA_DIR:"win32"===process.platform?f().join(process.env.APPDATA||f().join(j().homedir(),"AppData","Roaming"),"9router"):f().join(j().homedir(),".9router"),"runtime","updater"),c=f().join(b,"updater.js");if(h().existsSync(c))try{if(h().statSync(a).size===h().statSync(c).size)return c}catch{}return h().mkdirSync(b,{recursive:!0}),h().copyFileSync(a,c),c}catch{return a}}(function(){if(process.env.UPDATER_SCRIPT_PATH&&h().existsSync(process.env.UPDATER_SCRIPT_PATH))return process.env.UPDATER_SCRIPT_PATH;let a=f().join(process.cwd(),"src","lib","updater","updater.js");if(h().existsSync(a))return a;let b=f().join(process.cwd(),"..","src","lib","updater","updater.js");return h().existsSync(b)?b:a}()),c="1"===process.env.TRAY_MODE,e={cmd:"win32"===process.platform?"npx.cmd":"npx",args:[k.h0.npmPackageName]},g=c?[...e.args,"--tray","--skip-update"]:[...e.args,"--skip-update"];(0,d.spawn)(process.execPath,[b],{detached:!0,stdio:"ignore",windowsHide:!0,env:{...process.env,UPDATER_PKG_NAME:a,UPDATER_PORT:String(k.h0.statusPort),UPDATER_TAIL_LINES:String(k.h0.statusLogTailLines),UPDATER_RETRIES:String(k.h0.installRetries),UPDATER_RETRY_DELAY_MS:String(k.h0.installRetryDelayMs),UPDATER_LINGER_MS:String(k.h0.lingerAfterDoneMs),UPDATER_WAIT_MIN_MS:String(k.h0.waitForExitMinMs),UPDATER_WAIT_MAX_MS:String(k.h0.waitForExitMaxMs),UPDATER_WAIT_CHECK_MS:String(k.h0.waitForExitCheckMs),UPDATER_APP_PORT:String(k.h0.appPort),UPDATER_RELAUNCH:"1",UPDATER_RELAUNCH_CMD:e.cmd,UPDATER_RELAUNCH_ARGS:JSON.stringify(g)}}).unref(),setTimeout(()=>process.exit(0),k.h0.exitDelayMs)}},67259:(a,b,c)=>{"use strict";c.d(b,{CP:()=>f,Xg:()=>d.Xg,eh:()=>e,vq:()=>d.PROVIDER_MODELS});var d=c(85577);Object.entries(c(91253).AI_PROVIDERS).filter(([,a])=>a.passthroughModels).map(([a])=>a);let e=Object.entries(d.PROVIDER_MODELS).flatMap(([a,b])=>b.map(b=>({provider:a,model:b.id,name:b.name}))),f=(a,b=null)=>a?.kind||a?.type||b},79603:(a,b,c)=>{"use strict";c.d(b,{UY:()=>h,eh:()=>f.eh,fg:()=>e.fg,h0:()=>g,oc:()=>i});var d=c(39006),e=c(91253),f=c(67259);d.rE;let g={npmPackageName:"vansrouter",installCmd:"npm i -g vansrouter",installCmdLatest:"npm i -g vansrouter@latest --prefer-online",shutdownCountdownSec:3,exitDelayMs:500,statusPort:20129,statusPollIntervalMs:1e3,statusLogTailLines:8,installRetries:3,installRetryDelayMs:5e3,lingerAfterDoneMs:3e4,waitForExitMinMs:5e3,waitForExitMaxMs:2e4,waitForExitCheckMs:500,appPort:20128},h={maxLines:200,pollIntervalMs:1e3},i={tickIntervalMs:6e4,pingLeadMs:5e3,refreshAheadMs:3e5,failureCooldownMs:9e5,providers:{claude:{settingsKey:"claudeAutoPing",quotaKey:"session (5h)",pingModel:"claude-haiku-4-5-20251001",pingText:"hi",pingMaxTokens:1},codex:{settingsKey:"codexAutoPing",quotaKey:"session",pingWhenResetAtSlides:!0,resetAtDriftMs:3e4,minPingIntervalMs:6e5,skipWhenBlockingQuotaExhausted:!0,pingModel:"gpt-5.5",pingText:"hi",pingInstructions:"Reply with OK.",pingReasoningEffort:"none"}}}},85577:(a,b,c)=>{"use strict";c.d(b,{Xg:()=>s,PROVIDER_MODELS:()=>f.vq,fZ:()=>j,cY:()=>t,ez:()=>n,ux:()=>m,OA:()=>o,kt:()=>p,SM:()=>i,Tq:()=>q});var d=c(13946),e=c(97425),f=c(17863),g=c(57959);let h="-review";function i(a){return f.vq[a]||[]}function j(a){let b=f.vq[a];return b?.[0]?.id||null}let k=new Set(["kr","kiro"]);function l(a,b,c){if(!a)return;let d=a.find(a=>a.id===b);if(d)return d;if(!k.has(c))return;let e=(0,g.Kq)(b);if(e!==b)return a.find(a=>a.id===e)}function m(a,b){let c=f.vq[a];return c?(0,g.gr)(l(c,b,a)):null}function n(a,b){let c=f.vq[a];return c?(0,g.ec)(l(c,b,a)):null}function o(a,b){let c=f.vq[a];if(!c)return null;let d=l(c,b,a);return d?.kind||d?.type||null}function p(a,b){let c=l(f.vq[a],b,a);return c?.upstreamModelId?c.upstreamModelId:c?.id?c.id:"cx"===a&&"string"==typeof b&&b.endsWith(h)?b.slice(0,-h.length):b}function q(a){return(p("ag",a)||a).replace(/-tiered\([^)]*\)$/,"-tiered")}let r=Object.fromEntries(e.default.filter(a=>a.alias&&a.alias!==a.id).map(a=>[a.id,a.alias])),s=Object.fromEntries(Object.keys(d.xq).map(a=>[a,r[a]||a]));function t(a,b){return(0,g.g5)(l(f.vq[a],b,a))}},91253:(a,b,c)=>{"use strict";c.d(b,{AI_PROVIDERS:()=>s,js:()=>w,DI:()=>n,fg:()=>k,Pd:()=>o,IS:()=>h,nJ:()=>i,zN:()=>j,JH:()=>m,jO:()=>y,wb:()=>x,br:()=>l,wG:()=>v,zt:()=>t,gb:()=>q,gC:()=>r,mq:()=>p,rs:()=>u});var d=c(97425);let e=a=>"RISK_NOTICE"===a.deprecationNotice?{...a,deprecationNotice:"⚠️ Risk Notice: This provider uses a subscription/OAuth session not officially licensed for proxy/router use. Account may be restricted or banned. Use at your own risk."}:a;Object.fromEntries(d.default.filter(a=>a.display).map(a=>[a.id,e(a.display)]));let f=["serviceKinds","ttsConfig","sttConfig","embeddingConfig","imageConfig","imageToTextConfig","videoConfig","musicConfig","searchViaChat","searchConfig","fetchConfig","modelsFetcher","mediaPriority","hiddenKinds","credentialFallback"],g=a=>Object.fromEntries(d.default.filter(b=>b.category===a).map(a=>[a.id,function(a){let b={};for(let c of(a.media&&Object.assign(b,a.media),f))void 0!==a[c]&&(b[c]=a[c]);return{...e(a.display||{}),id:a.id,alias:a.uiAlias||a.alias,...a.aliases?{aliases:a.aliases}:{},...a.hidden?{hidden:!0}:{},...b,...void 0!==a.priority?{priority:a.priority}:{},...a.hasFree?{hasFree:!0}:{},...a.thinkingConfig?{thinkingConfig:a.thinkingConfig}:{},...a.regions?{regions:a.regions,defaultRegion:a.defaultRegion}:{},...a.hasProviderSpecificData?{hasProviderSpecificData:!0}:{},...a.noAuth?{noAuth:!0}:{},...a.passthroughModels?{passthroughModels:!0}:{},...a.hasOAuth?{hasOAuth:!0}:{},...a.authModes?{authModes:a.authModes}:{},...a.authType?{authType:a.authType}:{},...a.authHint?{authHint:a.authHint}:{}}}(a)])),h=g("free"),i=g("freeTier"),j=g("oauth"),k=g("apikey"),l=g("webCookie"),m="openai-compatible-",n="anthropic-compatible-",o="custom-embedding-";function p(a){return"string"==typeof a&&a.startsWith(m)}function q(a){return"string"==typeof a&&a.startsWith(n)}function r(a){return"string"==typeof a&&a.startsWith(o)}let s={...h,...i,...j,...k,...l};function t(a){for(let b of Object.values(s))if(b.alias===a||b.id===a||b.aliases?.includes(a))return b;return null}function u(a){let b=t(a);return b?.id||a}function v(a){let b=s[a];return b?.alias||a}let w=Object.values(s).reduce((a,b)=>{for(let c of(a[b.alias]=b.id,b.aliases||[]))a[c]=b.id;return a},{});Object.values(s).reduce((a,b)=>(a[b.id]=b.alias,a),{});let x=d.default.filter(a=>a.features?.usage).map(a=>a.id),y=d.default.filter(a=>a.features?.usageApikey).map(a=>a.id)},95522:()=>{}};
1
+ exports.id=2764,exports.ids=[1253,2764,5577],exports.modules={13674:()=>{},13946:(a,b,c)=>{"use strict";c.d(b,{Ak:()=>e,Yg:()=>h,sr:()=>d.sr,uT:()=>i,xq:()=>d.xq});var d=c(17863);function e(a){return(a?.providerSpecificData?.baseUrl?.trim()||"http://localhost:11434").replace(/\/$/,"")}let f=d.xq["xiaomi-tokenplan"]?.regions||{},g=d.xq["xiaomi-tokenplan"]?.defaultRegion;function h(a){return f[a?.providerSpecificData?.region]||f[g]}function i(a){return d.vq[a]||[]}},39006:a=>{"use strict";a.exports={rE:"0.91.22"}},41073:(a,b,c)=>{"use strict";c.d(b,{g:()=>m,l:()=>l});var d=c(79646),e=c(33873),f=c.n(e),g=c(29021),h=c.n(g),i=c(21820),j=c.n(i),k=c(79603);async function l(){!function(){try{let a=f().join("win32"===process.platform?f().join(process.env.APPDATA||"","9router"):f().join(j().homedir(),".9router"),"mitm",".mitm.pid");if(!h().existsSync(a))return;let b=parseInt(h().readFileSync(a,"utf8").trim(),10);if(!b)return;if("win32"===process.platform)try{(0,d.execSync)(`taskkill /F /T /PID ${b}`,{stdio:"ignore",windowsHide:!0,timeout:3e3})}catch{try{(0,d.execSync)(`powershell -NonInteractive -WindowStyle Hidden -Command "Stop-Process -Id ${b} -Force"`,{stdio:"ignore",windowsHide:!0,timeout:3e3})}catch{}}else try{(0,d.execSync)(`sudo -n kill -9 ${b} 2>/dev/null`,{stdio:"ignore",timeout:3e3})}catch{try{process.kill(b,"SIGKILL")}catch{}}try{h().unlinkSync(a)}catch{}}catch{}}();let a=function(){let a=[];if("win32"===process.platform){try{(0,d.execSync)('powershell -NonInteractive -WindowStyle Hidden -Command "Get-WmiObject Win32_Process -Filter \'Name=\\"node.exe\\"\' | Select-Object ProcessId,CommandLine | ConvertTo-Csv -NoTypeInformation"',{encoding:"utf8",windowsHide:!0,timeout:5e3}).split("\n").slice(1).filter(a=>a.trim()).forEach(b=>{let c=b.toLowerCase();if(c.includes("9router")||c.includes("next-server")||c.includes("\\bin\\app\\")||c.includes("/bin/app/")||c.includes("cli.js")){let c=b.match(/^"(\d+)"/);c&&c[1]&&c[1]!==process.pid.toString()&&a.push(c[1])}})}catch{}for(let b of["cloudflared","tray_windows_release"])try{let c=`powershell -NonInteractive -WindowStyle Hidden -Command "Get-Process ${b} -ErrorAction SilentlyContinue | Select-Object -ExpandProperty Id"`;(0,d.execSync)(c,{encoding:"utf8",windowsHide:!0,timeout:5e3}).split("\n").forEach(b=>{let c=b.trim();c&&!isNaN(c)&&a.push(c)})}catch{}}else try{(0,d.execSync)("ps aux 2>/dev/null",{encoding:"utf8",timeout:5e3}).split("\n").forEach(b=>{if(b.includes("9router")||b.includes("next-server")||b.includes("cloudflared")||b.includes("/bin/app/")||b.includes("tray_darwin")||b.includes("tray_linux")){let c=b.trim().split(/\s+/)[1];c&&!isNaN(c)&&c!==process.pid.toString()&&a.push(c)}})}catch{}return a}(),b=process.platform;a.forEach(a=>{try{"win32"===b?(0,d.execSync)(`taskkill /F /PID ${a} 2>nul`,{stdio:"ignore",shell:!0,windowsHide:!0,timeout:3e3}):(0,d.execSync)(`kill -9 ${a} 2>/dev/null`,{stdio:"ignore",timeout:3e3})}catch{}}),a.length>0&&await new Promise(a=>setTimeout(a,1500))}function m(a=k.h0.npmPackageName){let b=function(a){try{if(!a||!h().existsSync(a))return a;let b=f().join(process.env.DATA_DIR?process.env.DATA_DIR:"win32"===process.platform?f().join(process.env.APPDATA||f().join(j().homedir(),"AppData","Roaming"),"9router"):f().join(j().homedir(),".9router"),"runtime","updater"),c=f().join(b,"updater.js");if(h().existsSync(c))try{if(h().statSync(a).size===h().statSync(c).size)return c}catch{}return h().mkdirSync(b,{recursive:!0}),h().copyFileSync(a,c),c}catch{return a}}(function(){if(process.env.UPDATER_SCRIPT_PATH&&h().existsSync(process.env.UPDATER_SCRIPT_PATH))return process.env.UPDATER_SCRIPT_PATH;let a=f().join(process.cwd(),"src","lib","updater","updater.js");if(h().existsSync(a))return a;let b=f().join(process.cwd(),"..","src","lib","updater","updater.js");return h().existsSync(b)?b:a}()),c="1"===process.env.TRAY_MODE,e={cmd:"win32"===process.platform?"npx.cmd":"npx",args:[k.h0.npmPackageName]},g=c?[...e.args,"--tray","--skip-update"]:[...e.args,"--skip-update"];(0,d.spawn)(process.execPath,[b],{detached:!0,stdio:"ignore",windowsHide:!0,env:{...process.env,UPDATER_PKG_NAME:a,UPDATER_PORT:String(k.h0.statusPort),UPDATER_TAIL_LINES:String(k.h0.statusLogTailLines),UPDATER_RETRIES:String(k.h0.installRetries),UPDATER_RETRY_DELAY_MS:String(k.h0.installRetryDelayMs),UPDATER_LINGER_MS:String(k.h0.lingerAfterDoneMs),UPDATER_WAIT_MIN_MS:String(k.h0.waitForExitMinMs),UPDATER_WAIT_MAX_MS:String(k.h0.waitForExitMaxMs),UPDATER_WAIT_CHECK_MS:String(k.h0.waitForExitCheckMs),UPDATER_APP_PORT:String(k.h0.appPort),UPDATER_RELAUNCH:"1",UPDATER_RELAUNCH_CMD:e.cmd,UPDATER_RELAUNCH_ARGS:JSON.stringify(g)}}).unref(),setTimeout(()=>process.exit(0),k.h0.exitDelayMs)}},67259:(a,b,c)=>{"use strict";c.d(b,{CP:()=>f,Xg:()=>d.Xg,eh:()=>e,vq:()=>d.PROVIDER_MODELS});var d=c(85577);Object.entries(c(91253).AI_PROVIDERS).filter(([,a])=>a.passthroughModels).map(([a])=>a);let e=Object.entries(d.PROVIDER_MODELS).flatMap(([a,b])=>b.map(b=>({provider:a,model:b.id,name:b.name}))),f=(a,b=null)=>a?.kind||a?.type||b},79603:(a,b,c)=>{"use strict";c.d(b,{UY:()=>h,eh:()=>f.eh,fg:()=>e.fg,h0:()=>g,oc:()=>i});var d=c(39006),e=c(91253),f=c(67259);d.rE;let g={npmPackageName:"vansrouter",installCmd:"npm i -g vansrouter",installCmdLatest:"npm i -g vansrouter@latest --prefer-online",shutdownCountdownSec:3,exitDelayMs:500,statusPort:20129,statusPollIntervalMs:1e3,statusLogTailLines:8,installRetries:3,installRetryDelayMs:5e3,lingerAfterDoneMs:3e4,waitForExitMinMs:5e3,waitForExitMaxMs:2e4,waitForExitCheckMs:500,appPort:20128},h={maxLines:200,pollIntervalMs:1e3},i={tickIntervalMs:6e4,pingLeadMs:5e3,refreshAheadMs:3e5,failureCooldownMs:9e5,providers:{claude:{settingsKey:"claudeAutoPing",quotaKey:"session (5h)",pingModel:"claude-haiku-4-5-20251001",pingText:"hi",pingMaxTokens:1},codex:{settingsKey:"codexAutoPing",quotaKey:"session",pingWhenResetAtSlides:!0,resetAtDriftMs:3e4,minPingIntervalMs:6e5,skipWhenBlockingQuotaExhausted:!0,pingModel:"gpt-5.5",pingText:"hi",pingInstructions:"Reply with OK.",pingReasoningEffort:"none"}}}},85577:(a,b,c)=>{"use strict";c.d(b,{Xg:()=>s,PROVIDER_MODELS:()=>f.vq,fZ:()=>j,cY:()=>t,ez:()=>n,ux:()=>m,OA:()=>o,kt:()=>p,SM:()=>i,Tq:()=>q});var d=c(13946),e=c(97425),f=c(17863),g=c(57959);let h="-review";function i(a){return f.vq[a]||[]}function j(a){let b=f.vq[a];return b?.[0]?.id||null}let k=new Set(["kr","kiro"]);function l(a,b,c){if(!a)return;let d=a.find(a=>a.id===b);if(d)return d;if(!k.has(c))return;let e=(0,g.Kq)(b);if(e!==b)return a.find(a=>a.id===e)}function m(a,b){let c=f.vq[a];return c?(0,g.gr)(l(c,b,a)):null}function n(a,b){let c=f.vq[a];return c?(0,g.ec)(l(c,b,a)):null}function o(a,b){let c=f.vq[a];if(!c)return null;let d=l(c,b,a);return d?.kind||d?.type||null}function p(a,b){let c=l(f.vq[a],b,a);return c?.upstreamModelId?c.upstreamModelId:c?.id?c.id:"cx"===a&&"string"==typeof b&&b.endsWith(h)?b.slice(0,-h.length):b}function q(a){return(p("ag",a)||a).replace(/-tiered\([^)]*\)$/,"-tiered")}let r=Object.fromEntries(e.default.filter(a=>a.alias&&a.alias!==a.id).map(a=>[a.id,a.alias])),s=Object.fromEntries(Object.keys(d.xq).map(a=>[a,r[a]||a]));function t(a,b){return(0,g.g5)(l(f.vq[a],b,a))}},91253:(a,b,c)=>{"use strict";c.d(b,{AI_PROVIDERS:()=>s,js:()=>w,DI:()=>n,fg:()=>k,Pd:()=>o,IS:()=>h,nJ:()=>i,zN:()=>j,JH:()=>m,jO:()=>y,wb:()=>x,br:()=>l,wG:()=>v,zt:()=>t,gb:()=>q,gC:()=>r,mq:()=>p,rs:()=>u});var d=c(97425);let e=a=>"RISK_NOTICE"===a.deprecationNotice?{...a,deprecationNotice:"⚠️ Risk Notice: This provider uses a subscription/OAuth session not officially licensed for proxy/router use. Account may be restricted or banned. Use at your own risk."}:a;Object.fromEntries(d.default.filter(a=>a.display).map(a=>[a.id,e(a.display)]));let f=["serviceKinds","ttsConfig","sttConfig","embeddingConfig","imageConfig","imageToTextConfig","videoConfig","musicConfig","searchViaChat","searchConfig","fetchConfig","modelsFetcher","mediaPriority","hiddenKinds","credentialFallback"],g=a=>Object.fromEntries(d.default.filter(b=>b.category===a).map(a=>[a.id,function(a){let b={};for(let c of(a.media&&Object.assign(b,a.media),f))void 0!==a[c]&&(b[c]=a[c]);return{...e(a.display||{}),id:a.id,alias:a.uiAlias||a.alias,...a.aliases?{aliases:a.aliases}:{},...a.hidden?{hidden:!0}:{},...b,...void 0!==a.priority?{priority:a.priority}:{},...a.hasFree?{hasFree:!0}:{},...a.thinkingConfig?{thinkingConfig:a.thinkingConfig}:{},...a.regions?{regions:a.regions,defaultRegion:a.defaultRegion}:{},...a.hasProviderSpecificData?{hasProviderSpecificData:!0}:{},...a.noAuth?{noAuth:!0}:{},...a.passthroughModels?{passthroughModels:!0}:{},...a.hasOAuth?{hasOAuth:!0}:{},...a.authModes?{authModes:a.authModes}:{},...a.authType?{authType:a.authType}:{},...a.authHint?{authHint:a.authHint}:{}}}(a)])),h=g("free"),i=g("freeTier"),j=g("oauth"),k=g("apikey"),l=g("webCookie"),m="openai-compatible-",n="anthropic-compatible-",o="custom-embedding-";function p(a){return"string"==typeof a&&a.startsWith(m)}function q(a){return"string"==typeof a&&a.startsWith(n)}function r(a){return"string"==typeof a&&a.startsWith(o)}let s={...h,...i,...j,...k,...l};function t(a){for(let b of Object.values(s))if(b.alias===a||b.id===a||b.aliases?.includes(a))return b;return null}function u(a){let b=t(a);return b?.id||a}function v(a){let b=s[a];return b?.alias||a}let w=Object.values(s).reduce((a,b)=>{for(let c of(a[b.alias]=b.id,b.aliases||[]))a[c]=b.id;return a},{});Object.values(s).reduce((a,b)=>(a[b.id]=b.alias,a),{});let x=d.default.filter(a=>a.features?.usage).map(a=>a.id),y=d.default.filter(a=>a.features?.usageApikey).map(a=>a.id)},95522:()=>{}};
@@ -1,6 +1,6 @@
1
- "use strict";exports.id=2927,exports.ids=[2927],exports.modules={12927:(a,b,c)=>{c.d(b,{runMigrationOnce:()=>x});var d=c(73024),e=c.n(d),f=c(76760),g=c.n(f),h=c(55250),i=c(26985);let j=[{version:1,name:"initial",up(a){for(let[b,c]of Object.entries(i.CG))for(let d of(a.exec((0,i.zE)(b,c)),c.indexes||[]))a.exec(d)}},{version:2,name:"fix-empty-allowed-lists",up(a){let b=a.all("PRAGMA table_info(apiKeys)"),c=Array.isArray(b)?b.map(a=>a.name):[];c.includes("allowedProviders")&&a.exec("UPDATE apiKeys SET allowedProviders = NULL WHERE allowedProviders = '[]'"),c.includes("allowedCombos")&&a.exec("UPDATE apiKeys SET allowedCombos = NULL WHERE allowedCombos = '[]'"),c.includes("allowedKinds")&&a.exec("UPDATE apiKeys SET allowedKinds = NULL WHERE allowedKinds = '[]'")}},{version:3,name:"add-allowed-lists-columns",up(a){let b=a.all("PRAGMA table_info(apiKeys)"),c=Array.isArray(b)?b.map(a=>a.name):[];c.includes("allowedProviders")||a.exec("ALTER TABLE apiKeys ADD COLUMN allowedProviders TEXT"),c.includes("allowedCombos")||a.exec("ALTER TABLE apiKeys ADD COLUMN allowedCombos TEXT"),c.includes("allowedKinds")||a.exec("ALTER TABLE apiKeys ADD COLUMN allowedKinds TEXT")}},{version:4,name:"add-request-details-apikey",up(a){let b=new Set(a.all("PRAGMA table_info(requestDetails)").map(a=>a.name));b.has("apiKey")||a.exec("ALTER TABLE requestDetails ADD COLUMN apiKey TEXT"),b.has("apiKeyName")||a.exec("ALTER TABLE requestDetails ADD COLUMN apiKeyName TEXT")}},{version:7,name:"add-combo-context-length",up(a){a.all("PRAGMA table_info(combos)").some(a=>"context_length"===a.name)||a.exec("ALTER TABLE combos ADD COLUMN context_length INTEGER")}},{version:8,name:"add-proxy-pool-fitness",up(a){let b=i.CG.proxyPoolFitness;for(let c of(a.exec((0,i.zE)("proxyPoolFitness",b)),b.indexes||[]))a.exec(c)}}].sort((a,b)=>a.version-b.version);function k(a,b,c=null){let d=a.get("SELECT value FROM _meta WHERE key = ?",[b]);return d?d.value:c}function l(a,b,c){a.run("INSERT INTO _meta(key, value) VALUES(?, ?) ON CONFLICT(key) DO UPDATE SET value = excluded.value",[b,String(c)])}let m=null;function n(){if(m)return m;try{let a=g().join(process.cwd(),"package.json");m=JSON.parse(e().readFileSync(a,"utf-8")).version||"0.0.0"}catch{m="0.0.0"}return m}let o=["requestDetails"];function p(a){(0,h.Jh)();let b=n(),c=`${a}-${b}-${function(a=new Date){let b=a=>String(a).padStart(2,"0");return`${a.getFullYear()}${b(a.getMonth()+1)}${b(a.getDate())}-${b(a.getHours())}${b(a.getMinutes())}${b(a.getSeconds())}`}()}`,d=g().join(h.KQ,c);return e().mkdirSync(d,{recursive:!0}),d}function q(){if(e().existsSync(h.KQ))for(let a of e().readdirSync(h.KQ,{withFileTypes:!0}).filter(a=>a.isDirectory()).map(a=>({name:a.name,full:g().join(h.KQ,a.name),mtime:e().statSync(g().join(h.KQ,a.name)).mtimeMs})).sort((a,b)=>b.mtime-a.mtime).slice(3))try{e().rmSync(a.full,{recursive:!0,force:!0})}catch{}}var r=c(54076);let s=g().join(h.HG,".migrated-from-json"),t=new WeakSet;class u extends Error{constructor(a,b){super(a),this.name="MigrationAborted",this.droppedRows=b}}function v(a,b,c,d,e){let f=[];for(let a of c)try{d(a)}catch(b){f.push({...e(a),reason:b.message})}let g=a.get(`SELECT COUNT(*) as c FROM ${b}`)?.c??0;if(g!==c.length)throw console.warn(`[DB][migrate] ${b} row-count mismatch: expected ${c.length}, got ${g}. Dropped:`,f),new u(`${b} row-count mismatch: expected ${c.length}, got ${g}`,f)}function w(a){if(!e().existsSync(a))return null;try{return JSON.parse(e().readFileSync(a,"utf-8"))}catch{return null}}async function x(a){if(t.has(a))return;let b=function(a){try{let b=a.get("SELECT COUNT(*) as c FROM _meta");return!b||0===b.c}catch{return!0}}(a);q(),a.exec((0,i.zE)("_meta",i.CG._meta));let c=parseInt(k(a,"backupSchemaVersion","0"),10)||0;if(!b&&c<i.f$)try{let b=p(`schema-${c}-to-${i.f$}`);!function(a,b,c="data.sqlite"){let d=g().join(b,c);try{e().rmSync(d,{force:!0})}catch{}let f=d.replace(/'/g,"''");a.exec(`ATTACH DATABASE '${f}' AS bak`);try{let b=new Set(o),c=a.all("SELECT name, sql FROM main.sqlite_master WHERE type='table' AND name NOT LIKE 'sqlite_%'").filter(a=>!b.has(a.name));a.transaction(()=>{for(let b of c){let c=b.sql.replace(/CREATE TABLE\s+/i,"CREATE TABLE bak.");a.exec(c),a.exec(`INSERT INTO bak.${b.name} SELECT * FROM main.${b.name}`)}})}finally{try{a.exec("DETACH DATABASE bak")}catch{}}}(a,b),q(),console.log(`[DB][migrate] pre-schema backup ${c} → ${i.f$}: ${b}`)}catch(a){console.warn(`[DB][migrate] pre-schema backup failed (continuing): ${a.message}`)}!function(a){a.exec((0,i.zE)("_meta",i.CG._meta));let b=parseInt(k(a,"schemaVersion","0"),10)||0;if(b>=(j.length?j[j.length-1].version:0))return;let c=j.filter(a=>a.version>b);for(let b of c)a.transaction(()=>{b.up(a),l(a,"schemaVersion",b.version)}),b.version,console.log(`[DB][migrate] applied #${b.version} ${b.name}`);c.length}(a);for(let[b,c]of Object.entries(i.CG)){a.exec((0,i.zE)(b,c));let d=new Set(a.all(`PRAGMA table_info(${b})`).map(a=>a.name));for(let[e,f]of Object.entries(c.columns))if(!d.has(e)){let c=f.replace(/PRIMARY KEY( AUTOINCREMENT)?/i,"").replace(/UNIQUE/i,"").trim();try{a.exec(`ALTER TABLE ${b} ADD COLUMN ${e} ${c}`),console.log(`[DB][sync] +column ${b}.${e}`)}catch(a){console.warn(`[DB][sync] add column ${b}.${e} failed: ${a.message}`)}}for(let b of c.indexes||[])try{a.exec(b)}catch{}}l(a,"backupSchemaVersion",i.f$);let d=e().existsSync(s),f=w(h.Or.main),m=w(h.Or.usage),x=w(h.Or.disabled),y=w(h.Or.details);if(b&&(f||m||x||y)&&!d){let b=Date.now(),c=p("migrate-from-json");for(let a of Object.values(h.Or))!function(a,b,c=null){if(!e().existsSync(a))return;let d=c||g().basename(a),f=g().join(b,d);e().copyFileSync(a,f)}(a,c);try{a.transaction(()=>{if(f&&"object"==typeof f){for(let[b,c]of(f.settings&&a.run("INSERT INTO settings(id, data) VALUES(1, ?) ON CONFLICT(id) DO UPDATE SET data = excluded.data",[(0,r.s)(f.settings)]),v(a,"providerConnections",f.providerConnections||[],b=>{let{id:c,provider:d,authType:e,name:f,email:g,priority:h,isActive:i,createdAt:j,updatedAt:k,...l}=b;a.run("INSERT OR REPLACE INTO providerConnections(id, provider, authType, name, email, priority, isActive, data, createdAt, updatedAt) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?)",[c,d,e||"oauth",f||null,g||null,h||null,+(!1!==i),(0,r.s)(l),j||new Date().toISOString(),k||new Date().toISOString()])},a=>({id:a.id??null,provider:a.provider??null,name:a.name??null})),v(a,"providerNodes",f.providerNodes||[],b=>{let{id:c,type:d,name:e,createdAt:f,updatedAt:g,...h}=b;a.run("INSERT OR REPLACE INTO providerNodes(id, type, name, data, createdAt, updatedAt) VALUES(?, ?, ?, ?, ?, ?)",[c,d||null,e||null,(0,r.s)(h),f||new Date().toISOString(),g||new Date().toISOString()])},a=>({id:a.id??null,type:a.type??null,name:a.name??null})),v(a,"proxyPools",f.proxyPools||[],b=>{let{id:c,isActive:d,testStatus:e,createdAt:f,updatedAt:g,...h}=b;a.run("INSERT OR REPLACE INTO proxyPools(id, isActive, testStatus, data, createdAt, updatedAt) VALUES(?, ?, ?, ?, ?, ?)",[c,+(!1!==d),e||"unknown",(0,r.s)(h),f||new Date().toISOString(),g||new Date().toISOString()])},a=>({id:a.id??null})),v(a,"apiKeys",f.apiKeys||[],b=>{a.run("INSERT OR REPLACE INTO apiKeys(id, key, name, machineId, isActive, createdAt) VALUES(?, ?, ?, ?, ?, ?)",[b.id,b.key,b.name||null,b.machineId||null,+(!1!==b.isActive),b.createdAt||new Date().toISOString()])},a=>({id:a.id??null,name:a.name??null})),v(a,"combos",f.combos||[],b=>{a.run("INSERT OR REPLACE INTO combos(id, name, kind, models, context_length, createdAt, updatedAt) VALUES(?, ?, ?, ?, ?, ?, ?)",[b.id,b.name,b.kind||null,(0,r.s)(b.models||[]),b.context_length??null,b.createdAt||new Date().toISOString(),b.updatedAt||new Date().toISOString()])},a=>({id:a.id??null,name:a.name??null})),Object.entries(f.modelAliases||{})))a.run("INSERT OR REPLACE INTO kv(scope, key, value) VALUES('modelAliases', ?, ?)",[b,(0,r.s)(c)]);for(let b of f.customModels||[]){let c=`${b.providerAlias}|${b.id}|${b.type||"llm"}`;a.run("INSERT OR REPLACE INTO kv(scope, key, value) VALUES('customModels', ?, ?)",[c,(0,r.s)(b)])}for(let[b,c]of Object.entries(f.mitmAlias||{}))a.run("INSERT OR REPLACE INTO kv(scope, key, value) VALUES('mitmAlias', ?, ?)",[b,(0,r.s)(c||{})]);for(let[b,c]of Object.entries(f.pricing||{}))a.run("INSERT OR REPLACE INTO kv(scope, key, value) VALUES('pricing', ?, ?)",[b,(0,r.s)(c||{})])}if(m&&"object"==typeof m){for(let b of m.history||[]){let c=b.tokens||{};a.run("INSERT INTO usageHistory(timestamp, provider, model, connectionId, apiKey, endpoint, promptTokens, completionTokens, cost, status, tokens, meta) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)",[b.timestamp||new Date().toISOString(),b.provider||null,b.model||null,b.connectionId||null,b.apiKey||null,b.endpoint||null,c.prompt_tokens||c.input_tokens||0,c.completion_tokens||c.output_tokens||0,b.cost||0,b.status||"ok",(0,r.s)(c),(0,r.s)({})])}for(let[b,c]of Object.entries(m.dailySummary||{}))a.run("INSERT OR REPLACE INTO usageDaily(dateKey, data) VALUES(?, ?)",[b,(0,r.s)(c)]);"number"==typeof m.totalRequestsLifetime&&l(a,"totalRequestsLifetime",m.totalRequestsLifetime)}if(x&&"object"==typeof x.disabled)for(let[b,c]of Object.entries(x.disabled))a.run("INSERT OR REPLACE INTO kv(scope, key, value) VALUES('disabledModels', ?, ?)",[b,(0,r.s)(c||[])]);if(y&&Array.isArray(y.records))for(let b of y.records)a.run("INSERT OR REPLACE INTO requestDetails(id, timestamp, provider, model, connectionId, status, data) VALUES(?, ?, ?, ?, ?, ?, ?)",[b.id,b.timestamp||new Date().toISOString(),b.provider||null,b.model||null,b.connectionId||null,b.status||null,(0,r.s)(b)]);l(a,"appVersion",n()),l(a,"backupSchemaVersion",i.f$),l(a,"migratedAt",new Date().toISOString())})}catch(b){if(t.delete(a),b instanceof u)return void console.error(`[DB][migrate] aborted: ${b.message} | legacy JSON kept | backup: ${c}`);throw b}try{e().writeFileSync(s,new Date().toISOString())}catch{}t.add(a),q(),console.log(`[DB][migrate] JSON → SQLite in ${Date.now()-b}ms | legacy JSON kept at DATA_DIR | backup: ${c}`);return}let z=n();k(a,"appVersion",null)!==z&&l(a,"appVersion",z),t.add(a)}},26985:(a,b,c)=>{c.d(b,{CG:()=>f,f$:()=>d,oG:()=>e,zE:()=>g});let d=8,e=`
1
+ "use strict";exports.id=2927,exports.ids=[2927],exports.modules={12927:(a,b,c)=>{c.d(b,{runMigrationOnce:()=>x});var d=c(73024),e=c.n(d),f=c(76760),g=c.n(f),h=c(55250),i=c(26985);let j=[{version:1,name:"initial",up(a){for(let[b,c]of Object.entries(i.CG))for(let d of(a.exec((0,i.zE)(b,c)),c.indexes||[]))a.exec(d)}},{version:2,name:"fix-empty-allowed-lists",up(a){let b=a.all("PRAGMA table_info(apiKeys)"),c=Array.isArray(b)?b.map(a=>a.name):[];c.includes("allowedProviders")&&a.exec("UPDATE apiKeys SET allowedProviders = NULL WHERE allowedProviders = '[]'"),c.includes("allowedCombos")&&a.exec("UPDATE apiKeys SET allowedCombos = NULL WHERE allowedCombos = '[]'"),c.includes("allowedKinds")&&a.exec("UPDATE apiKeys SET allowedKinds = NULL WHERE allowedKinds = '[]'")}},{version:3,name:"add-allowed-lists-columns",up(a){let b=a.all("PRAGMA table_info(apiKeys)"),c=Array.isArray(b)?b.map(a=>a.name):[];c.includes("allowedProviders")||a.exec("ALTER TABLE apiKeys ADD COLUMN allowedProviders TEXT"),c.includes("allowedCombos")||a.exec("ALTER TABLE apiKeys ADD COLUMN allowedCombos TEXT"),c.includes("allowedKinds")||a.exec("ALTER TABLE apiKeys ADD COLUMN allowedKinds TEXT")}},{version:4,name:"add-request-details-apikey",up(a){let b=new Set(a.all("PRAGMA table_info(requestDetails)").map(a=>a.name));b.has("apiKey")||a.exec("ALTER TABLE requestDetails ADD COLUMN apiKey TEXT"),b.has("apiKeyName")||a.exec("ALTER TABLE requestDetails ADD COLUMN apiKeyName TEXT")}},{version:7,name:"add-combo-context-length",up(a){a.all("PRAGMA table_info(combos)").some(a=>"context_length"===a.name)||a.exec("ALTER TABLE combos ADD COLUMN context_length INTEGER")}},{version:8,name:"add-proxy-pool-fitness",up(a){let b=i.CG.proxyPoolFitness;for(let c of(a.exec((0,i.zE)("proxyPoolFitness",b)),b.indexes||[]))a.exec(c)}}].sort((a,b)=>a.version-b.version);function k(a,b,c=null){let d=a.get("SELECT value FROM _meta WHERE key = ?",[b]);return d?d.value:c}function l(a,b,c){a.run("INSERT INTO _meta(key, value) VALUES(?, ?) ON CONFLICT(key) DO UPDATE SET value = excluded.value",[b,String(c)])}let m=null;function n(){if(m)return m;try{let a=g().join(process.cwd(),"package.json");m=JSON.parse(e().readFileSync(a,"utf-8")).version||"0.0.0"}catch{m="0.0.0"}return m}let o=["requestDetails"];function p(a){(0,h.Jh)();let b=n(),c=`${a}-${b}-${function(a=new Date){let b=a=>String(a).padStart(2,"0");return`${a.getFullYear()}${b(a.getMonth()+1)}${b(a.getDate())}-${b(a.getHours())}${b(a.getMinutes())}${b(a.getSeconds())}`}()}`,d=g().join(h.KQ,c);return e().mkdirSync(d,{recursive:!0}),d}function q(){if(e().existsSync(h.KQ))for(let a of e().readdirSync(h.KQ,{withFileTypes:!0}).filter(a=>a.isDirectory()).map(a=>({name:a.name,full:g().join(h.KQ,a.name),mtime:e().statSync(g().join(h.KQ,a.name)).mtimeMs})).sort((a,b)=>b.mtime-a.mtime).slice(1))try{e().rmSync(a.full,{recursive:!0,force:!0})}catch{}}var r=c(54076);let s=g().join(h.HG,".migrated-from-json"),t=new WeakSet;class u extends Error{constructor(a,b){super(a),this.name="MigrationAborted",this.droppedRows=b}}function v(a,b,c,d,e){let f=[];for(let a of c)try{d(a)}catch(b){f.push({...e(a),reason:b.message})}let g=a.get(`SELECT COUNT(*) as c FROM ${b}`)?.c??0;if(g!==c.length)throw console.warn(`[DB][migrate] ${b} row-count mismatch: expected ${c.length}, got ${g}. Dropped:`,f),new u(`${b} row-count mismatch: expected ${c.length}, got ${g}`,f)}function w(a){if(!e().existsSync(a))return null;try{return JSON.parse(e().readFileSync(a,"utf-8"))}catch{return null}}async function x(a){if(t.has(a))return;let b=function(a){try{let b=a.get("SELECT COUNT(*) as c FROM _meta");return!b||0===b.c}catch{return!0}}(a);q(),a.exec((0,i.zE)("_meta",i.CG._meta));let c=parseInt(k(a,"backupSchemaVersion","0"),10)||0;if(!b&&c<i.f$)try{let b=p(`schema-${c}-to-${i.f$}`);!function(a,b,c="data.sqlite"){let d=g().join(b,c);try{e().rmSync(d,{force:!0})}catch{}let f=d.replace(/'/g,"''");a.exec(`ATTACH DATABASE '${f}' AS bak`);try{let b=new Set(o),c=a.all("SELECT name, sql FROM main.sqlite_master WHERE type='table' AND name NOT LIKE 'sqlite_%'").filter(a=>!b.has(a.name));a.transaction(()=>{for(let b of c){let c=b.sql.replace(/CREATE TABLE\s+/i,"CREATE TABLE bak.");a.exec(c),a.exec(`INSERT INTO bak.${b.name} SELECT * FROM main.${b.name}`)}})}finally{try{a.exec("DETACH DATABASE bak")}catch{}}}(a,b),q(),console.log(`[DB][migrate] pre-schema backup ${c} → ${i.f$}: ${b}`)}catch(a){console.warn(`[DB][migrate] pre-schema backup failed (continuing): ${a.message}`)}!function(a){a.exec((0,i.zE)("_meta",i.CG._meta));let b=parseInt(k(a,"schemaVersion","0"),10)||0;if(b>=(j.length?j[j.length-1].version:0))return;let c=j.filter(a=>a.version>b);for(let b of c)a.transaction(()=>{b.up(a),l(a,"schemaVersion",b.version)}),b.version,console.log(`[DB][migrate] applied #${b.version} ${b.name}`);c.length}(a);for(let[b,c]of Object.entries(i.CG)){a.exec((0,i.zE)(b,c));let d=new Set(a.all(`PRAGMA table_info(${b})`).map(a=>a.name));for(let[e,f]of Object.entries(c.columns))if(!d.has(e)){let c=f.replace(/PRIMARY KEY( AUTOINCREMENT)?/i,"").replace(/UNIQUE/i,"").trim();try{a.exec(`ALTER TABLE ${b} ADD COLUMN ${e} ${c}`),console.log(`[DB][sync] +column ${b}.${e}`)}catch(a){console.warn(`[DB][sync] add column ${b}.${e} failed: ${a.message}`)}}for(let b of c.indexes||[])try{a.exec(b)}catch{}}l(a,"backupSchemaVersion",i.f$);let d=e().existsSync(s),f=w(h.Or.main),m=w(h.Or.usage),x=w(h.Or.disabled),y=w(h.Or.details);if(b&&(f||m||x||y)&&!d){let b=Date.now(),c=p("migrate-from-json");for(let a of Object.values(h.Or))!function(a,b,c=null){if(!e().existsSync(a))return;let d=c||g().basename(a),f=g().join(b,d);e().copyFileSync(a,f)}(a,c);try{a.transaction(()=>{if(f&&"object"==typeof f){for(let[b,c]of(f.settings&&a.run("INSERT INTO settings(id, data) VALUES(1, ?) ON CONFLICT(id) DO UPDATE SET data = excluded.data",[(0,r.s)(f.settings)]),v(a,"providerConnections",f.providerConnections||[],b=>{let{id:c,provider:d,authType:e,name:f,email:g,priority:h,isActive:i,createdAt:j,updatedAt:k,...l}=b;a.run("INSERT OR REPLACE INTO providerConnections(id, provider, authType, name, email, priority, isActive, data, createdAt, updatedAt) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?)",[c,d,e||"oauth",f||null,g||null,h||null,+(!1!==i),(0,r.s)(l),j||new Date().toISOString(),k||new Date().toISOString()])},a=>({id:a.id??null,provider:a.provider??null,name:a.name??null})),v(a,"providerNodes",f.providerNodes||[],b=>{let{id:c,type:d,name:e,createdAt:f,updatedAt:g,...h}=b;a.run("INSERT OR REPLACE INTO providerNodes(id, type, name, data, createdAt, updatedAt) VALUES(?, ?, ?, ?, ?, ?)",[c,d||null,e||null,(0,r.s)(h),f||new Date().toISOString(),g||new Date().toISOString()])},a=>({id:a.id??null,type:a.type??null,name:a.name??null})),v(a,"proxyPools",f.proxyPools||[],b=>{let{id:c,isActive:d,testStatus:e,createdAt:f,updatedAt:g,...h}=b;a.run("INSERT OR REPLACE INTO proxyPools(id, isActive, testStatus, data, createdAt, updatedAt) VALUES(?, ?, ?, ?, ?, ?)",[c,+(!1!==d),e||"unknown",(0,r.s)(h),f||new Date().toISOString(),g||new Date().toISOString()])},a=>({id:a.id??null})),v(a,"apiKeys",f.apiKeys||[],b=>{a.run("INSERT OR REPLACE INTO apiKeys(id, key, name, machineId, isActive, createdAt) VALUES(?, ?, ?, ?, ?, ?)",[b.id,b.key,b.name||null,b.machineId||null,+(!1!==b.isActive),b.createdAt||new Date().toISOString()])},a=>({id:a.id??null,name:a.name??null})),v(a,"combos",f.combos||[],b=>{a.run("INSERT OR REPLACE INTO combos(id, name, kind, models, context_length, createdAt, updatedAt) VALUES(?, ?, ?, ?, ?, ?, ?)",[b.id,b.name,b.kind||null,(0,r.s)(b.models||[]),b.context_length??null,b.createdAt||new Date().toISOString(),b.updatedAt||new Date().toISOString()])},a=>({id:a.id??null,name:a.name??null})),Object.entries(f.modelAliases||{})))a.run("INSERT OR REPLACE INTO kv(scope, key, value) VALUES('modelAliases', ?, ?)",[b,(0,r.s)(c)]);for(let b of f.customModels||[]){let c=`${b.providerAlias}|${b.id}|${b.type||"llm"}`;a.run("INSERT OR REPLACE INTO kv(scope, key, value) VALUES('customModels', ?, ?)",[c,(0,r.s)(b)])}for(let[b,c]of Object.entries(f.mitmAlias||{}))a.run("INSERT OR REPLACE INTO kv(scope, key, value) VALUES('mitmAlias', ?, ?)",[b,(0,r.s)(c||{})]);for(let[b,c]of Object.entries(f.pricing||{}))a.run("INSERT OR REPLACE INTO kv(scope, key, value) VALUES('pricing', ?, ?)",[b,(0,r.s)(c||{})])}if(m&&"object"==typeof m){for(let b of m.history||[]){let c=b.tokens||{};a.run("INSERT INTO usageHistory(timestamp, provider, model, connectionId, apiKey, endpoint, promptTokens, completionTokens, cost, status, tokens, meta) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)",[b.timestamp||new Date().toISOString(),b.provider||null,b.model||null,b.connectionId||null,b.apiKey||null,b.endpoint||null,c.prompt_tokens||c.input_tokens||0,c.completion_tokens||c.output_tokens||0,b.cost||0,b.status||"ok",(0,r.s)(c),(0,r.s)({})])}for(let[b,c]of Object.entries(m.dailySummary||{}))a.run("INSERT OR REPLACE INTO usageDaily(dateKey, data) VALUES(?, ?)",[b,(0,r.s)(c)]);"number"==typeof m.totalRequestsLifetime&&l(a,"totalRequestsLifetime",m.totalRequestsLifetime)}if(x&&"object"==typeof x.disabled)for(let[b,c]of Object.entries(x.disabled))a.run("INSERT OR REPLACE INTO kv(scope, key, value) VALUES('disabledModels', ?, ?)",[b,(0,r.s)(c||[])]);if(y&&Array.isArray(y.records))for(let b of y.records)a.run("INSERT OR REPLACE INTO requestDetails(id, timestamp, provider, model, connectionId, status, data) VALUES(?, ?, ?, ?, ?, ?, ?)",[b.id,b.timestamp||new Date().toISOString(),b.provider||null,b.model||null,b.connectionId||null,b.status||null,(0,r.s)(b)]);l(a,"appVersion",n()),l(a,"backupSchemaVersion",i.f$),l(a,"migratedAt",new Date().toISOString())})}catch(b){if(t.delete(a),b instanceof u)return void console.error(`[DB][migrate] aborted: ${b.message} | legacy JSON kept | backup: ${c}`);throw b}try{e().writeFileSync(s,new Date().toISOString())}catch{}t.add(a),q(),console.log(`[DB][migrate] JSON → SQLite in ${Date.now()-b}ms | legacy JSON kept at DATA_DIR | backup: ${c}`);return}let z=n();k(a,"appVersion",null)!==z&&l(a,"appVersion",z),t.add(a)}},26985:(a,b,c)=>{c.d(b,{CG:()=>f,f$:()=>d,oG:()=>e,zE:()=>g});let d=8,e=`
2
2
  PRAGMA journal_mode = WAL;
3
- PRAGMA synchronous = NORMAL;
3
+ PRAGMA synchronous = ${process.env.SQLITE_SYNCHRONOUS||"NORMAL"};
4
4
  PRAGMA temp_store = MEMORY;
5
5
  PRAGMA mmap_size = 30000000;
6
6
  PRAGMA cache_size = -64000;
@@ -1,6 +1,6 @@
1
- "use strict";exports.id=3040,exports.ids=[3040],exports.modules={23040:(a,b,c)=>{c.d(b,{createBetterSqliteAdapter:()=>g});var d=c(87550),e=c.n(d),f=c(78785);function g(a){let b=new(e())(a);b.exec(f.oG);let c=new Map;function d(a){let d=c.get(a);return d||(d=b.prepare(a),c.set(a,d)),d}let g=setInterval(()=>{try{b.pragma("wal_checkpoint(TRUNCATE)")}catch{}},6e4);function h(){try{b.pragma("wal_checkpoint(TRUNCATE)")}catch{}try{c.clear()}catch{}try{b.close()}catch{}}"function"==typeof g.unref&&g.unref();let i=()=>h();return process.once("beforeExit",i),process.once("SIGINT",()=>{i(),process.exit(0)}),process.once("SIGTERM",()=>{i(),process.exit(0)}),{driver:"better-sqlite3",run:(a,b=[])=>d(a).run(...b),get:(a,b=[])=>d(a).get(...b),all:(a,b=[])=>d(a).all(...b),exec:a=>b.exec(a),transaction:a=>b.transaction(a)(),checkpoint(){try{b.pragma("wal_checkpoint(TRUNCATE)")}catch{}},close(){clearInterval(g),h()},raw:b}}},78785:(a,b,c)=>{c.d(b,{CG:()=>f,f$:()=>d,oG:()=>e,zE:()=>g});let d=8,e=`
1
+ "use strict";exports.id=3040,exports.ids=[3040],exports.modules={23040:(a,b,c)=>{c.d(b,{createBetterSqliteAdapter:()=>g});var d=c(87550),e=c.n(d),f=c(78785);function g(a){let b=new(e())(a);b.exec(f.oG);let c=new Map;function d(a){let d=c.get(a);return d||(d=b.prepare(a),c.set(a,d)),d}let g=setInterval(()=>{try{b.pragma("wal_checkpoint(TRUNCATE)")}catch{}},6e4);"function"==typeof g.unref&&g.unref();let h=()=>l(),i=()=>{h(),process.exit(0)},j=()=>{h(),process.exit(0)},k=!1;function l(){if(!k){k=!0,process.removeListener("beforeExit",h),process.removeListener("SIGINT",i),process.removeListener("SIGTERM",j);try{b.pragma("wal_checkpoint(TRUNCATE)")}catch{}try{c.clear()}catch{}try{b.close()}catch{}}}return process.once("beforeExit",h),process.once("SIGINT",i),process.once("SIGTERM",j),{driver:"better-sqlite3",run:(a,b=[])=>d(a).run(...b),get:(a,b=[])=>d(a).get(...b),all:(a,b=[])=>d(a).all(...b),exec:a=>b.exec(a),transaction:a=>b.transaction(a)(),checkpoint(){try{b.pragma("wal_checkpoint(TRUNCATE)")}catch{}},close(){clearInterval(g),l()},raw:b}}},78785:(a,b,c)=>{c.d(b,{CG:()=>f,f$:()=>d,oG:()=>e,zE:()=>g});let d=8,e=`
2
2
  PRAGMA journal_mode = WAL;
3
- PRAGMA synchronous = NORMAL;
3
+ PRAGMA synchronous = ${process.env.SQLITE_SYNCHRONOUS||"NORMAL"};
4
4
  PRAGMA temp_store = MEMORY;
5
5
  PRAGMA mmap_size = 30000000;
6
6
  PRAGMA cache_size = -64000;