vansrouter 0.91.87 → 0.91.89

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 (722) hide show
  1. package/app/.next-cli-build/BUILD_ID +1 -1
  2. package/app/.next-cli-build/app-path-routes-manifest.json +10 -10
  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 +4 -4
  6. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js +1 -1
  7. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js.nft.json +1 -1
  8. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
  9. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js +1 -1
  10. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js.nft.json +1 -1
  11. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page_client-reference-manifest.js +1 -1
  12. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js +2 -2
  13. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json +1 -1
  14. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  15. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js +1 -1
  16. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js.nft.json +1 -1
  17. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  18. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js +1 -1
  19. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js.nft.json +1 -1
  20. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
  21. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js +1 -1
  22. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json +1 -1
  23. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  24. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js +19 -19
  25. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js.nft.json +1 -1
  26. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js +1 -1
  27. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js +2 -2
  28. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js.nft.json +1 -1
  29. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page_client-reference-manifest.js +1 -1
  30. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js +2 -2
  31. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js.nft.json +1 -1
  32. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page_client-reference-manifest.js +1 -1
  33. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js +1 -1
  34. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js.nft.json +1 -1
  35. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page_client-reference-manifest.js +1 -1
  36. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js +1 -1
  37. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js.nft.json +1 -1
  38. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
  39. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js +1 -1
  40. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
  41. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  42. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js +1 -1
  43. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js.nft.json +1 -1
  44. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  45. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js +3 -3
  46. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json +1 -1
  47. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  48. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js +1 -1
  49. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js.nft.json +1 -1
  50. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  51. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js +1 -1
  52. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js.nft.json +1 -1
  53. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  54. package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-fitness/page.js +1 -1
  55. package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-fitness/page.js.nft.json +1 -1
  56. package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-fitness/page_client-reference-manifest.js +1 -1
  57. package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page.js +1 -1
  58. package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page.js.nft.json +1 -1
  59. package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
  60. package/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page.js +1 -1
  61. package/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page.js.nft.json +1 -1
  62. package/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page_client-reference-manifest.js +1 -1
  63. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js +2 -2
  64. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js.nft.json +1 -1
  65. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
  66. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page.js +1 -1
  67. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page.js.nft.json +1 -1
  68. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page_client-reference-manifest.js +1 -1
  69. package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page.js +2 -2
  70. package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page.js.nft.json +1 -1
  71. package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page_client-reference-manifest.js +1 -1
  72. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js +1 -1
  73. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js.nft.json +1 -1
  74. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  75. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js +1 -1
  76. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js.nft.json +1 -1
  77. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  78. package/app/.next-cli-build/server/app/_global-error/page.js.nft.json +1 -1
  79. package/app/.next-cli-build/server/app/_global-error/page_client-reference-manifest.js +1 -1
  80. package/app/.next-cli-build/server/app/_global-error.html +1 -1
  81. package/app/.next-cli-build/server/app/_global-error.rsc +2 -2
  82. package/app/.next-cli-build/server/app/_global-error.segments/_full.segment.rsc +2 -2
  83. package/app/.next-cli-build/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  84. package/app/.next-cli-build/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  85. package/app/.next-cli-build/server/app/_global-error.segments/_head.segment.rsc +1 -1
  86. package/app/.next-cli-build/server/app/_global-error.segments/_index.segment.rsc +1 -1
  87. package/app/.next-cli-build/server/app/_global-error.segments/_tree.segment.rsc +2 -2
  88. package/app/.next-cli-build/server/app/_not-found/page.js +1 -1
  89. package/app/.next-cli-build/server/app/_not-found/page.js.nft.json +1 -1
  90. package/app/.next-cli-build/server/app/_not-found/page_client-reference-manifest.js +1 -1
  91. package/app/.next-cli-build/server/app/_not-found.html +1 -1
  92. package/app/.next-cli-build/server/app/_not-found.rsc +4 -4
  93. package/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +4 -4
  94. package/app/.next-cli-build/server/app/_not-found.segments/_head.segment.rsc +1 -1
  95. package/app/.next-cli-build/server/app/_not-found.segments/_index.segment.rsc +4 -4
  96. package/app/.next-cli-build/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  97. package/app/.next-cli-build/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  98. package/app/.next-cli-build/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  99. package/app/.next-cli-build/server/app/api/auth/check/route.js.nft.json +1 -1
  100. package/app/.next-cli-build/server/app/api/auth/login/route.js.nft.json +1 -1
  101. package/app/.next-cli-build/server/app/api/auth/logout/route.js.nft.json +1 -1
  102. package/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js.nft.json +1 -1
  103. package/app/.next-cli-build/server/app/api/auth/oidc/start/route.js.nft.json +1 -1
  104. package/app/.next-cli-build/server/app/api/auth/oidc/test/route.js.nft.json +1 -1
  105. package/app/.next-cli-build/server/app/api/auth/reset-password/route.js.nft.json +1 -1
  106. package/app/.next-cli-build/server/app/api/auth/status/route.js.nft.json +1 -1
  107. package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js +5 -5
  108. package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js.nft.json +1 -1
  109. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js.nft.json +1 -1
  110. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js.nft.json +1 -1
  111. package/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js +2 -2
  112. package/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js.nft.json +1 -1
  113. package/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js +2 -2
  114. package/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js.nft.json +1 -1
  115. package/app/.next-cli-build/server/app/api/cli-tools/codewhale-settings/route.js +2 -2
  116. package/app/.next-cli-build/server/app/api/cli-tools/codewhale-settings/route.js.nft.json +1 -1
  117. package/app/.next-cli-build/server/app/api/cli-tools/codex-profiles/route.js.nft.json +1 -1
  118. package/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js.nft.json +1 -1
  119. package/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js +2 -2
  120. package/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js.nft.json +1 -1
  121. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js.nft.json +1 -1
  122. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js +2 -2
  123. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js.nft.json +1 -1
  124. package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js +1 -1
  125. package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js.nft.json +1 -1
  126. package/app/.next-cli-build/server/app/api/cli-tools/crush-settings/route.js +1 -1
  127. package/app/.next-cli-build/server/app/api/cli-tools/crush-settings/route.js.nft.json +1 -1
  128. package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js +3 -3
  129. package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js.nft.json +1 -1
  130. package/app/.next-cli-build/server/app/api/cli-tools/devin-settings/route.js.nft.json +1 -1
  131. package/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js +1 -1
  132. package/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js.nft.json +1 -1
  133. package/app/.next-cli-build/server/app/api/cli-tools/forge-settings/route.js +2 -2
  134. package/app/.next-cli-build/server/app/api/cli-tools/forge-settings/route.js.nft.json +1 -1
  135. package/app/.next-cli-build/server/app/api/cli-tools/grok-build-settings/route.js +2 -2
  136. package/app/.next-cli-build/server/app/api/cli-tools/grok-build-settings/route.js.nft.json +1 -1
  137. package/app/.next-cli-build/server/app/api/cli-tools/hermes-profiles/route.js.nft.json +1 -1
  138. package/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js +1 -1
  139. package/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js.nft.json +1 -1
  140. package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js +2 -2
  141. package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js.nft.json +1 -1
  142. package/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js +2 -2
  143. package/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js.nft.json +1 -1
  144. package/app/.next-cli-build/server/app/api/cli-tools/omp-settings/route.js +3 -3
  145. package/app/.next-cli-build/server/app/api/cli-tools/omp-settings/route.js.nft.json +1 -1
  146. package/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js +2 -2
  147. package/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js.nft.json +1 -1
  148. package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js +2 -2
  149. package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js.nft.json +1 -1
  150. package/app/.next-cli-build/server/app/api/cli-tools/pi-settings/route.js +2 -2
  151. package/app/.next-cli-build/server/app/api/cli-tools/pi-settings/route.js.nft.json +1 -1
  152. package/app/.next-cli-build/server/app/api/cli-tools/smelt-settings/route.js +1 -1
  153. package/app/.next-cli-build/server/app/api/cli-tools/smelt-settings/route.js.nft.json +1 -1
  154. package/app/.next-cli-build/server/app/api/combos/[id]/route.js +1 -1
  155. package/app/.next-cli-build/server/app/api/combos/[id]/route.js.nft.json +1 -1
  156. package/app/.next-cli-build/server/app/api/combos/presets/route.js +1 -1
  157. package/app/.next-cli-build/server/app/api/combos/presets/route.js.nft.json +1 -1
  158. package/app/.next-cli-build/server/app/api/combos/route.js +1 -1
  159. package/app/.next-cli-build/server/app/api/combos/route.js.nft.json +1 -1
  160. package/app/.next-cli-build/server/app/api/headroom/extras/route.js.nft.json +1 -1
  161. package/app/.next-cli-build/server/app/api/headroom/proxy/[...path]/route.js.nft.json +1 -1
  162. package/app/.next-cli-build/server/app/api/headroom/restart/route.js.nft.json +1 -1
  163. package/app/.next-cli-build/server/app/api/headroom/start/route.js.nft.json +1 -1
  164. package/app/.next-cli-build/server/app/api/headroom/status/route.js.nft.json +1 -1
  165. package/app/.next-cli-build/server/app/api/headroom/stop/route.js.nft.json +1 -1
  166. package/app/.next-cli-build/server/app/api/health/route.js.nft.json +1 -1
  167. package/app/.next-cli-build/server/app/api/init/route.js.nft.json +1 -1
  168. package/app/.next-cli-build/server/app/api/keys/[id]/route.js.nft.json +1 -1
  169. package/app/.next-cli-build/server/app/api/keys/route.js.nft.json +1 -1
  170. package/app/.next-cli-build/server/app/api/locale/route.js.nft.json +1 -1
  171. package/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js.nft.json +1 -1
  172. package/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js.nft.json +1 -1
  173. package/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js.nft.json +1 -1
  174. package/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js +1 -1
  175. package/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js.nft.json +1 -1
  176. package/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js.nft.json +1 -1
  177. package/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js.nft.json +1 -1
  178. package/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js +1 -1
  179. package/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js.nft.json +1 -1
  180. package/app/.next-cli-build/server/app/api/models/alias/route.js.nft.json +1 -1
  181. package/app/.next-cli-build/server/app/api/models/availability/route.js.nft.json +1 -1
  182. package/app/.next-cli-build/server/app/api/models/catalog-sync/route.js +1 -1
  183. package/app/.next-cli-build/server/app/api/models/catalog-sync/route.js.nft.json +1 -1
  184. package/app/.next-cli-build/server/app/api/models/custom/route.js +1 -1
  185. package/app/.next-cli-build/server/app/api/models/custom/route.js.nft.json +1 -1
  186. package/app/.next-cli-build/server/app/api/models/disabled/route.js.nft.json +1 -1
  187. package/app/.next-cli-build/server/app/api/models/route.js +1 -1
  188. package/app/.next-cli-build/server/app/api/models/route.js.nft.json +1 -1
  189. package/app/.next-cli-build/server/app/api/models/test/route.js +1 -1
  190. package/app/.next-cli-build/server/app/api/models/test/route.js.nft.json +1 -1
  191. package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js +1 -1
  192. package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -1
  193. package/app/.next-cli-build/server/app/api/oauth/codex/bulk-import/route.js +1 -1
  194. package/app/.next-cli-build/server/app/api/oauth/codex/bulk-import/route.js.nft.json +1 -1
  195. package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js +1 -1
  196. package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js.nft.json +1 -1
  197. package/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js.nft.json +1 -1
  198. package/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js +1 -1
  199. package/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js.nft.json +1 -1
  200. package/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js.nft.json +1 -1
  201. package/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/route.js.nft.json +1 -1
  202. package/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js.nft.json +1 -1
  203. package/app/.next-cli-build/server/app/api/oauth/kiro/api-key/route.js +1 -1
  204. package/app/.next-cli-build/server/app/api/oauth/kiro/api-key/route.js.nft.json +1 -1
  205. package/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route.js.nft.json +1 -1
  206. package/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js +1 -1
  207. package/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js.nft.json +1 -1
  208. package/app/.next-cli-build/server/app/api/oauth/kiro/import-cli-proxy/route.js.nft.json +1 -1
  209. package/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js +1 -1
  210. package/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js.nft.json +1 -1
  211. package/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js +1 -1
  212. package/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js.nft.json +1 -1
  213. package/app/.next-cli-build/server/app/api/oauth/zed/auto-import/route.js.nft.json +1 -1
  214. package/app/.next-cli-build/server/app/api/oauth/zed/import/route.js +1 -1
  215. package/app/.next-cli-build/server/app/api/oauth/zed/import/route.js.nft.json +1 -1
  216. package/app/.next-cli-build/server/app/api/pricing/route.js.nft.json +1 -1
  217. package/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js.nft.json +1 -1
  218. package/app/.next-cli-build/server/app/api/provider-nodes/route.js +1 -1
  219. package/app/.next-cli-build/server/app/api/provider-nodes/route.js.nft.json +1 -1
  220. package/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js +2 -2
  221. package/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js.nft.json +1 -1
  222. package/app/.next-cli-build/server/app/api/providers/[id]/gcp-projects/route.js +1 -1
  223. package/app/.next-cli-build/server/app/api/providers/[id]/gcp-projects/route.js.nft.json +1 -1
  224. package/app/.next-cli-build/server/app/api/providers/[id]/models/route.js +1 -1
  225. package/app/.next-cli-build/server/app/api/providers/[id]/models/route.js.nft.json +1 -1
  226. package/app/.next-cli-build/server/app/api/providers/[id]/overrides/route.js +1 -1
  227. package/app/.next-cli-build/server/app/api/providers/[id]/overrides/route.js.nft.json +1 -1
  228. package/app/.next-cli-build/server/app/api/providers/[id]/route.js +1 -1
  229. package/app/.next-cli-build/server/app/api/providers/[id]/route.js.nft.json +1 -1
  230. package/app/.next-cli-build/server/app/api/providers/[id]/test/route.js +1 -1
  231. package/app/.next-cli-build/server/app/api/providers/[id]/test/route.js.nft.json +1 -1
  232. package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js +1 -1
  233. package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js.nft.json +1 -1
  234. package/app/.next-cli-build/server/app/api/providers/bulk/route.js +1 -1
  235. package/app/.next-cli-build/server/app/api/providers/bulk/route.js.nft.json +1 -1
  236. package/app/.next-cli-build/server/app/api/providers/circuit-breakers/[name]/reset/route.js.nft.json +1 -1
  237. package/app/.next-cli-build/server/app/api/providers/circuit-breakers/route.js.nft.json +1 -1
  238. package/app/.next-cli-build/server/app/api/providers/client/route.js +1 -1
  239. package/app/.next-cli-build/server/app/api/providers/client/route.js.nft.json +1 -1
  240. package/app/.next-cli-build/server/app/api/providers/kilo/free-models/route.js.nft.json +1 -1
  241. package/app/.next-cli-build/server/app/api/providers/route.js +1 -1
  242. package/app/.next-cli-build/server/app/api/providers/route.js.nft.json +1 -1
  243. package/app/.next-cli-build/server/app/api/providers/suggested-models/route.js +2 -2
  244. package/app/.next-cli-build/server/app/api/providers/suggested-models/route.js.nft.json +1 -1
  245. package/app/.next-cli-build/server/app/api/providers/test-batch/route.js +1 -1
  246. package/app/.next-cli-build/server/app/api/providers/test-batch/route.js.nft.json +1 -1
  247. package/app/.next-cli-build/server/app/api/providers/validate/route.js +1 -1
  248. package/app/.next-cli-build/server/app/api/providers/validate/route.js.nft.json +1 -1
  249. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/fitness/clear/route.js.nft.json +1 -1
  250. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js.nft.json +1 -1
  251. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js +1 -1
  252. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js.nft.json +1 -1
  253. package/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js +2 -2
  254. package/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js.nft.json +1 -1
  255. package/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js +2 -2
  256. package/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js.nft.json +1 -1
  257. package/app/.next-cli-build/server/app/api/proxy-pools/fitness/clear-all/route.js.nft.json +1 -1
  258. package/app/.next-cli-build/server/app/api/proxy-pools/fitness/route.js.nft.json +1 -1
  259. package/app/.next-cli-build/server/app/api/proxy-pools/netlify-deploy/route.js.nft.json +1 -1
  260. package/app/.next-cli-build/server/app/api/proxy-pools/route.js.nft.json +1 -1
  261. package/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js +2 -2
  262. package/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js.nft.json +1 -1
  263. package/app/.next-cli-build/server/app/api/pxpipe/health/route.js.nft.json +1 -1
  264. package/app/.next-cli-build/server/app/api/pxpipe/install/route.js.nft.json +1 -1
  265. package/app/.next-cli-build/server/app/api/pxpipe/logs/route.js.nft.json +1 -1
  266. package/app/.next-cli-build/server/app/api/pxpipe/restart/route.js.nft.json +1 -1
  267. package/app/.next-cli-build/server/app/api/pxpipe/start/route.js.nft.json +1 -1
  268. package/app/.next-cli-build/server/app/api/pxpipe/stats/route.js.nft.json +1 -1
  269. package/app/.next-cli-build/server/app/api/pxpipe/status/route.js.nft.json +1 -1
  270. package/app/.next-cli-build/server/app/api/pxpipe/stop/route.js.nft.json +1 -1
  271. package/app/.next-cli-build/server/app/api/ready/route.js +1 -1
  272. package/app/.next-cli-build/server/app/api/ready/route.js.nft.json +1 -1
  273. package/app/.next-cli-build/server/app/api/settings/database/route.js.nft.json +1 -1
  274. package/app/.next-cli-build/server/app/api/settings/proxy-test/route.js +1 -1
  275. package/app/.next-cli-build/server/app/api/settings/proxy-test/route.js.nft.json +1 -1
  276. package/app/.next-cli-build/server/app/api/settings/require-login/route.js.nft.json +1 -1
  277. package/app/.next-cli-build/server/app/api/settings/route.js +1 -1
  278. package/app/.next-cli-build/server/app/api/settings/route.js.nft.json +1 -1
  279. package/app/.next-cli-build/server/app/api/shutdown/route.js.nft.json +1 -1
  280. package/app/.next-cli-build/server/app/api/tags/route.js.nft.json +1 -1
  281. package/app/.next-cli-build/server/app/api/translator/console-logs/route.js +1 -1
  282. package/app/.next-cli-build/server/app/api/translator/console-logs/route.js.nft.json +1 -1
  283. package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js +1 -1
  284. package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js.nft.json +1 -1
  285. package/app/.next-cli-build/server/app/api/translator/load/route.js.nft.json +1 -1
  286. package/app/.next-cli-build/server/app/api/translator/save/route.js.nft.json +1 -1
  287. package/app/.next-cli-build/server/app/api/translator/send/route.js +1 -1
  288. package/app/.next-cli-build/server/app/api/translator/send/route.js.nft.json +1 -1
  289. package/app/.next-cli-build/server/app/api/translator/translate/route.js +1 -1
  290. package/app/.next-cli-build/server/app/api/translator/translate/route.js.nft.json +1 -1
  291. package/app/.next-cli-build/server/app/api/tunnel/disable/route.js.nft.json +1 -1
  292. package/app/.next-cli-build/server/app/api/tunnel/enable/route.js.nft.json +1 -1
  293. package/app/.next-cli-build/server/app/api/tunnel/status/route.js.nft.json +1 -1
  294. package/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js.nft.json +1 -1
  295. package/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js.nft.json +1 -1
  296. package/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js.nft.json +1 -1
  297. package/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js +2 -2
  298. package/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js.nft.json +1 -1
  299. package/app/.next-cli-build/server/app/api/usage/[connectionId]/claude-reset/route.js +1 -1
  300. package/app/.next-cli-build/server/app/api/usage/[connectionId]/claude-reset/route.js.nft.json +1 -1
  301. package/app/.next-cli-build/server/app/api/usage/[connectionId]/codex-reset-credits/route.js +1 -1
  302. package/app/.next-cli-build/server/app/api/usage/[connectionId]/codex-reset-credits/route.js.nft.json +1 -1
  303. package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js +1 -1
  304. package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
  305. package/app/.next-cli-build/server/app/api/usage/chart/route.js.nft.json +1 -1
  306. package/app/.next-cli-build/server/app/api/usage/history/route.js.nft.json +1 -1
  307. package/app/.next-cli-build/server/app/api/usage/logs/route.js.nft.json +1 -1
  308. package/app/.next-cli-build/server/app/api/usage/providers/route.js +1 -1
  309. package/app/.next-cli-build/server/app/api/usage/providers/route.js.nft.json +1 -1
  310. package/app/.next-cli-build/server/app/api/usage/request-details/[id]/route.js.nft.json +1 -1
  311. package/app/.next-cli-build/server/app/api/usage/request-details/route.js.nft.json +1 -1
  312. package/app/.next-cli-build/server/app/api/usage/request-logs/route.js.nft.json +1 -1
  313. package/app/.next-cli-build/server/app/api/usage/stats/route.js.nft.json +1 -1
  314. package/app/.next-cli-build/server/app/api/usage/stream/route.js.nft.json +1 -1
  315. package/app/.next-cli-build/server/app/api/v1/api/chat/route.js +1 -1
  316. package/app/.next-cli-build/server/app/api/v1/api/chat/route.js.nft.json +1 -1
  317. package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js +1 -1
  318. package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js.nft.json +1 -1
  319. package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js +7 -1
  320. package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js.nft.json +1 -1
  321. package/app/.next-cli-build/server/app/api/v1/audio/voices/route.js +1 -1
  322. package/app/.next-cli-build/server/app/api/v1/audio/voices/route.js.nft.json +1 -1
  323. package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js +1 -1
  324. package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
  325. package/app/.next-cli-build/server/app/api/v1/embeddings/route.js +1 -1
  326. package/app/.next-cli-build/server/app/api/v1/embeddings/route.js.nft.json +1 -1
  327. package/app/.next-cli-build/server/app/api/v1/images/generations/route.js +2 -2
  328. package/app/.next-cli-build/server/app/api/v1/images/generations/route.js.nft.json +1 -1
  329. package/app/.next-cli-build/server/app/api/v1/messages/count_tokens/route.js.nft.json +1 -1
  330. package/app/.next-cli-build/server/app/api/v1/messages/route.js +1 -1
  331. package/app/.next-cli-build/server/app/api/v1/messages/route.js.nft.json +1 -1
  332. package/app/.next-cli-build/server/app/api/v1/models/[kind]/route.js +1 -1
  333. package/app/.next-cli-build/server/app/api/v1/models/[kind]/route.js.nft.json +1 -1
  334. package/app/.next-cli-build/server/app/api/v1/models/info/route.js +1 -1
  335. package/app/.next-cli-build/server/app/api/v1/models/info/route.js.nft.json +1 -1
  336. package/app/.next-cli-build/server/app/api/v1/models/route.js +1 -1
  337. package/app/.next-cli-build/server/app/api/v1/models/route.js.nft.json +1 -1
  338. package/app/.next-cli-build/server/app/api/v1/responses/compact/route.js +1 -1
  339. package/app/.next-cli-build/server/app/api/v1/responses/compact/route.js.nft.json +1 -1
  340. package/app/.next-cli-build/server/app/api/v1/responses/route.js +1 -1
  341. package/app/.next-cli-build/server/app/api/v1/responses/route.js.nft.json +1 -1
  342. package/app/.next-cli-build/server/app/api/v1/route.js +1 -1
  343. package/app/.next-cli-build/server/app/api/v1/route.js.nft.json +1 -1
  344. package/app/.next-cli-build/server/app/api/v1/search/route.js +1 -1
  345. package/app/.next-cli-build/server/app/api/v1/search/route.js.nft.json +1 -1
  346. package/app/.next-cli-build/server/app/api/v1/videos/[id]/route.js +1 -1
  347. package/app/.next-cli-build/server/app/api/v1/videos/[id]/route.js.nft.json +1 -1
  348. package/app/.next-cli-build/server/app/api/v1/videos/edits/route.js +1 -1
  349. package/app/.next-cli-build/server/app/api/v1/videos/edits/route.js.nft.json +1 -1
  350. package/app/.next-cli-build/server/app/api/v1/videos/extensions/route.js +1 -1
  351. package/app/.next-cli-build/server/app/api/v1/videos/extensions/route.js.nft.json +1 -1
  352. package/app/.next-cli-build/server/app/api/v1/videos/generations/route.js +1 -1
  353. package/app/.next-cli-build/server/app/api/v1/videos/generations/route.js.nft.json +1 -1
  354. package/app/.next-cli-build/server/app/api/v1/web/fetch/route.js +1 -1
  355. package/app/.next-cli-build/server/app/api/v1/web/fetch/route.js.nft.json +1 -1
  356. package/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js +1 -1
  357. package/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
  358. package/app/.next-cli-build/server/app/api/v1beta/models/route.js +1 -1
  359. package/app/.next-cli-build/server/app/api/v1beta/models/route.js.nft.json +1 -1
  360. package/app/.next-cli-build/server/app/api/version/route.js +1 -1
  361. package/app/.next-cli-build/server/app/api/version/route.js.nft.json +1 -1
  362. package/app/.next-cli-build/server/app/api/version/shutdown/route.js +1 -1
  363. package/app/.next-cli-build/server/app/api/version/shutdown/route.js.nft.json +1 -1
  364. package/app/.next-cli-build/server/app/api/version/update/route.js +1 -1
  365. package/app/.next-cli-build/server/app/api/version/update/route.js.nft.json +1 -1
  366. package/app/.next-cli-build/server/app/callback/page.js +1 -1
  367. package/app/.next-cli-build/server/app/callback/page.js.nft.json +1 -1
  368. package/app/.next-cli-build/server/app/callback/page_client-reference-manifest.js +1 -1
  369. package/app/.next-cli-build/server/app/callback.html +1 -1
  370. package/app/.next-cli-build/server/app/callback.rsc +4 -4
  371. package/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +4 -4
  372. package/app/.next-cli-build/server/app/callback.segments/_head.segment.rsc +1 -1
  373. package/app/.next-cli-build/server/app/callback.segments/_index.segment.rsc +4 -4
  374. package/app/.next-cli-build/server/app/callback.segments/_tree.segment.rsc +2 -2
  375. package/app/.next-cli-build/server/app/callback.segments/callback/__PAGE__.segment.rsc +1 -1
  376. package/app/.next-cli-build/server/app/callback.segments/callback.segment.rsc +1 -1
  377. package/app/.next-cli-build/server/app/dashboard/basic-chat.html +1 -1
  378. package/app/.next-cli-build/server/app/dashboard/basic-chat.rsc +6 -6
  379. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +2 -2
  380. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat.segment.rsc +1 -1
  381. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  382. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  383. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_full.segment.rsc +6 -6
  384. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_head.segment.rsc +1 -1
  385. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_index.segment.rsc +4 -4
  386. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +2 -2
  387. package/app/.next-cli-build/server/app/dashboard/cli-tools.html +1 -1
  388. package/app/.next-cli-build/server/app/dashboard/cli-tools.rsc +6 -6
  389. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +2 -2
  390. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools.segment.rsc +1 -1
  391. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  392. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  393. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_full.segment.rsc +6 -6
  394. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_head.segment.rsc +1 -1
  395. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_index.segment.rsc +4 -4
  396. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +2 -2
  397. package/app/.next-cli-build/server/app/dashboard/combos.html +1 -1
  398. package/app/.next-cli-build/server/app/dashboard/combos.rsc +6 -6
  399. package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +2 -2
  400. package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos.segment.rsc +1 -1
  401. package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  402. package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  403. package/app/.next-cli-build/server/app/dashboard/combos.segments/_full.segment.rsc +6 -6
  404. package/app/.next-cli-build/server/app/dashboard/combos.segments/_head.segment.rsc +1 -1
  405. package/app/.next-cli-build/server/app/dashboard/combos.segments/_index.segment.rsc +4 -4
  406. package/app/.next-cli-build/server/app/dashboard/combos.segments/_tree.segment.rsc +2 -2
  407. package/app/.next-cli-build/server/app/dashboard/endpoint.html +1 -1
  408. package/app/.next-cli-build/server/app/dashboard/endpoint.rsc +6 -6
  409. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +2 -2
  410. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint.segment.rsc +1 -1
  411. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  412. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  413. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_full.segment.rsc +6 -6
  414. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_head.segment.rsc +1 -1
  415. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_index.segment.rsc +4 -4
  416. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_tree.segment.rsc +2 -2
  417. package/app/.next-cli-build/server/app/dashboard/media-providers/web.html +1 -1
  418. package/app/.next-cli-build/server/app/dashboard/media-providers/web.rsc +6 -6
  419. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web/__PAGE__.segment.rsc +2 -2
  420. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web.segment.rsc +1 -1
  421. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers.segment.rsc +1 -1
  422. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  423. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  424. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_full.segment.rsc +6 -6
  425. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_head.segment.rsc +1 -1
  426. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_index.segment.rsc +4 -4
  427. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_tree.segment.rsc +2 -2
  428. package/app/.next-cli-build/server/app/dashboard/mitm.html +1 -1
  429. package/app/.next-cli-build/server/app/dashboard/mitm.rsc +6 -6
  430. package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +2 -2
  431. package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm.segment.rsc +1 -1
  432. package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  433. package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  434. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_full.segment.rsc +6 -6
  435. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_head.segment.rsc +1 -1
  436. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_index.segment.rsc +4 -4
  437. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_tree.segment.rsc +2 -2
  438. package/app/.next-cli-build/server/app/dashboard/profile.html +1 -1
  439. package/app/.next-cli-build/server/app/dashboard/profile.rsc +6 -6
  440. package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +2 -2
  441. package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile.segment.rsc +1 -1
  442. package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  443. package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  444. package/app/.next-cli-build/server/app/dashboard/profile.segments/_full.segment.rsc +6 -6
  445. package/app/.next-cli-build/server/app/dashboard/profile.segments/_head.segment.rsc +1 -1
  446. package/app/.next-cli-build/server/app/dashboard/profile.segments/_index.segment.rsc +4 -4
  447. package/app/.next-cli-build/server/app/dashboard/profile.segments/_tree.segment.rsc +2 -2
  448. package/app/.next-cli-build/server/app/dashboard/providers/new.html +1 -1
  449. package/app/.next-cli-build/server/app/dashboard/providers/new.rsc +6 -6
  450. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +2 -2
  451. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new.segment.rsc +1 -1
  452. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
  453. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  454. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  455. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_full.segment.rsc +6 -6
  456. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_head.segment.rsc +1 -1
  457. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_index.segment.rsc +4 -4
  458. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_tree.segment.rsc +2 -2
  459. package/app/.next-cli-build/server/app/dashboard/providers.html +1 -1
  460. package/app/.next-cli-build/server/app/dashboard/providers.rsc +6 -6
  461. package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +2 -2
  462. package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
  463. package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  464. package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  465. package/app/.next-cli-build/server/app/dashboard/providers.segments/_full.segment.rsc +6 -6
  466. package/app/.next-cli-build/server/app/dashboard/providers.segments/_head.segment.rsc +1 -1
  467. package/app/.next-cli-build/server/app/dashboard/providers.segments/_index.segment.rsc +4 -4
  468. package/app/.next-cli-build/server/app/dashboard/providers.segments/_tree.segment.rsc +2 -2
  469. package/app/.next-cli-build/server/app/dashboard/proxy-fitness.html +1 -1
  470. package/app/.next-cli-build/server/app/dashboard/proxy-fitness.rsc +6 -6
  471. package/app/.next-cli-build/server/app/dashboard/proxy-fitness.segments/!KGRhc2hib2FyZCk/dashboard/proxy-fitness/__PAGE__.segment.rsc +2 -2
  472. package/app/.next-cli-build/server/app/dashboard/proxy-fitness.segments/!KGRhc2hib2FyZCk/dashboard/proxy-fitness.segment.rsc +1 -1
  473. package/app/.next-cli-build/server/app/dashboard/proxy-fitness.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  474. package/app/.next-cli-build/server/app/dashboard/proxy-fitness.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  475. package/app/.next-cli-build/server/app/dashboard/proxy-fitness.segments/_full.segment.rsc +6 -6
  476. package/app/.next-cli-build/server/app/dashboard/proxy-fitness.segments/_head.segment.rsc +1 -1
  477. package/app/.next-cli-build/server/app/dashboard/proxy-fitness.segments/_index.segment.rsc +4 -4
  478. package/app/.next-cli-build/server/app/dashboard/proxy-fitness.segments/_tree.segment.rsc +2 -2
  479. package/app/.next-cli-build/server/app/dashboard/proxy-pools.html +1 -1
  480. package/app/.next-cli-build/server/app/dashboard/proxy-pools.rsc +6 -6
  481. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +2 -2
  482. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools.segment.rsc +1 -1
  483. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  484. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  485. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +6 -6
  486. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_head.segment.rsc +1 -1
  487. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_index.segment.rsc +4 -4
  488. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +2 -2
  489. package/app/.next-cli-build/server/app/dashboard/pxpipe.html +1 -1
  490. package/app/.next-cli-build/server/app/dashboard/pxpipe.rsc +6 -6
  491. package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard/pxpipe/__PAGE__.segment.rsc +2 -2
  492. package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard/pxpipe.segment.rsc +1 -1
  493. package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  494. package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  495. package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_full.segment.rsc +6 -6
  496. package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_head.segment.rsc +1 -1
  497. package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_index.segment.rsc +4 -4
  498. package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_tree.segment.rsc +2 -2
  499. package/app/.next-cli-build/server/app/dashboard/quota.html +1 -1
  500. package/app/.next-cli-build/server/app/dashboard/quota.rsc +9 -9
  501. package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +4 -4
  502. package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota.segment.rsc +1 -1
  503. package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  504. package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  505. package/app/.next-cli-build/server/app/dashboard/quota.segments/_full.segment.rsc +9 -9
  506. package/app/.next-cli-build/server/app/dashboard/quota.segments/_head.segment.rsc +1 -1
  507. package/app/.next-cli-build/server/app/dashboard/quota.segments/_index.segment.rsc +4 -4
  508. package/app/.next-cli-build/server/app/dashboard/quota.segments/_tree.segment.rsc +2 -2
  509. package/app/.next-cli-build/server/app/dashboard/settings/pricing/page.js +1 -1
  510. package/app/.next-cli-build/server/app/dashboard/settings/pricing/page.js.nft.json +1 -1
  511. package/app/.next-cli-build/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  512. package/app/.next-cli-build/server/app/dashboard/settings/pricing.html +1 -1
  513. package/app/.next-cli-build/server/app/dashboard/settings/pricing.rsc +4 -4
  514. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +4 -4
  515. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_head.segment.rsc +1 -1
  516. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_index.segment.rsc +4 -4
  517. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +2 -2
  518. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +1 -1
  519. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing.segment.rsc +1 -1
  520. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings.segment.rsc +1 -1
  521. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard.segment.rsc +1 -1
  522. package/app/.next-cli-build/server/app/dashboard/skills.html +1 -1
  523. package/app/.next-cli-build/server/app/dashboard/skills.rsc +6 -6
  524. package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills/__PAGE__.segment.rsc +2 -2
  525. package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills.segment.rsc +1 -1
  526. package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  527. package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  528. package/app/.next-cli-build/server/app/dashboard/skills.segments/_full.segment.rsc +6 -6
  529. package/app/.next-cli-build/server/app/dashboard/skills.segments/_head.segment.rsc +1 -1
  530. package/app/.next-cli-build/server/app/dashboard/skills.segments/_index.segment.rsc +4 -4
  531. package/app/.next-cli-build/server/app/dashboard/skills.segments/_tree.segment.rsc +2 -2
  532. package/app/.next-cli-build/server/app/dashboard/token-saver.html +1 -1
  533. package/app/.next-cli-build/server/app/dashboard/token-saver.rsc +6 -6
  534. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver/__PAGE__.segment.rsc +2 -2
  535. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver.segment.rsc +1 -1
  536. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  537. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  538. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_full.segment.rsc +6 -6
  539. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_head.segment.rsc +1 -1
  540. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_index.segment.rsc +4 -4
  541. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_tree.segment.rsc +2 -2
  542. package/app/.next-cli-build/server/app/dashboard/translator.html +1 -1
  543. package/app/.next-cli-build/server/app/dashboard/translator.rsc +6 -6
  544. package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +2 -2
  545. package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator.segment.rsc +1 -1
  546. package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  547. package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  548. package/app/.next-cli-build/server/app/dashboard/translator.segments/_full.segment.rsc +6 -6
  549. package/app/.next-cli-build/server/app/dashboard/translator.segments/_head.segment.rsc +1 -1
  550. package/app/.next-cli-build/server/app/dashboard/translator.segments/_index.segment.rsc +4 -4
  551. package/app/.next-cli-build/server/app/dashboard/translator.segments/_tree.segment.rsc +2 -2
  552. package/app/.next-cli-build/server/app/dashboard/usage.html +1 -1
  553. package/app/.next-cli-build/server/app/dashboard/usage.rsc +6 -6
  554. package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +2 -2
  555. package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage.segment.rsc +1 -1
  556. package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  557. package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  558. package/app/.next-cli-build/server/app/dashboard/usage.segments/_full.segment.rsc +6 -6
  559. package/app/.next-cli-build/server/app/dashboard/usage.segments/_head.segment.rsc +1 -1
  560. package/app/.next-cli-build/server/app/dashboard/usage.segments/_index.segment.rsc +4 -4
  561. package/app/.next-cli-build/server/app/dashboard/usage.segments/_tree.segment.rsc +2 -2
  562. package/app/.next-cli-build/server/app/dashboard.html +1 -1
  563. package/app/.next-cli-build/server/app/dashboard.rsc +6 -6
  564. package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +2 -2
  565. package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  566. package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  567. package/app/.next-cli-build/server/app/dashboard.segments/_full.segment.rsc +6 -6
  568. package/app/.next-cli-build/server/app/dashboard.segments/_head.segment.rsc +1 -1
  569. package/app/.next-cli-build/server/app/dashboard.segments/_index.segment.rsc +4 -4
  570. package/app/.next-cli-build/server/app/dashboard.segments/_tree.segment.rsc +2 -2
  571. package/app/.next-cli-build/server/app/favicon.ico/route.js.nft.json +1 -1
  572. package/app/.next-cli-build/server/app/landing/page.js +1 -1
  573. package/app/.next-cli-build/server/app/landing/page.js.nft.json +1 -1
  574. package/app/.next-cli-build/server/app/landing/page_client-reference-manifest.js +1 -1
  575. package/app/.next-cli-build/server/app/landing.html +1 -1
  576. package/app/.next-cli-build/server/app/landing.rsc +4 -4
  577. package/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +4 -4
  578. package/app/.next-cli-build/server/app/landing.segments/_head.segment.rsc +1 -1
  579. package/app/.next-cli-build/server/app/landing.segments/_index.segment.rsc +4 -4
  580. package/app/.next-cli-build/server/app/landing.segments/_tree.segment.rsc +2 -2
  581. package/app/.next-cli-build/server/app/landing.segments/landing/__PAGE__.segment.rsc +1 -1
  582. package/app/.next-cli-build/server/app/landing.segments/landing.segment.rsc +1 -1
  583. package/app/.next-cli-build/server/app/login/page.js +1 -1
  584. package/app/.next-cli-build/server/app/login/page.js.nft.json +1 -1
  585. package/app/.next-cli-build/server/app/login/page_client-reference-manifest.js +1 -1
  586. package/app/.next-cli-build/server/app/login.html +1 -1
  587. package/app/.next-cli-build/server/app/login.rsc +5 -5
  588. package/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +5 -5
  589. package/app/.next-cli-build/server/app/login.segments/_head.segment.rsc +1 -1
  590. package/app/.next-cli-build/server/app/login.segments/_index.segment.rsc +4 -4
  591. package/app/.next-cli-build/server/app/login.segments/_tree.segment.rsc +2 -2
  592. package/app/.next-cli-build/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
  593. package/app/.next-cli-build/server/app/login.segments/login.segment.rsc +1 -1
  594. package/app/.next-cli-build/server/app/manifest.webmanifest/route.js.nft.json +1 -1
  595. package/app/.next-cli-build/server/app/masuk/page.js +1 -1
  596. package/app/.next-cli-build/server/app/masuk/page.js.nft.json +1 -1
  597. package/app/.next-cli-build/server/app/masuk/page_client-reference-manifest.js +1 -1
  598. package/app/.next-cli-build/server/app-paths-manifest.json +10 -10
  599. package/app/.next-cli-build/server/chunks/1253.js +1 -1
  600. package/app/.next-cli-build/server/chunks/1685.js +4 -4
  601. package/app/.next-cli-build/server/chunks/1693.js +14 -14
  602. package/app/.next-cli-build/server/chunks/2098.js +1 -1
  603. package/app/.next-cli-build/server/chunks/224.js +1 -1
  604. package/app/.next-cli-build/server/chunks/2247.js +1 -1
  605. package/app/.next-cli-build/server/chunks/228.js +1 -1
  606. package/app/.next-cli-build/server/chunks/2365.js +1 -1
  607. package/app/.next-cli-build/server/chunks/2557.js +9 -9
  608. package/app/.next-cli-build/server/chunks/2741.js +5 -5
  609. package/app/.next-cli-build/server/chunks/2994.js +1 -1
  610. package/app/.next-cli-build/server/chunks/3059.js +1 -1
  611. package/app/.next-cli-build/server/chunks/3129.js +9 -0
  612. package/app/.next-cli-build/server/chunks/3519.js +1 -1
  613. package/app/.next-cli-build/server/chunks/{4574.js → 3548.js} +4 -12
  614. package/app/.next-cli-build/server/chunks/3738.js +1 -1
  615. package/app/.next-cli-build/server/chunks/3909.js +7 -0
  616. package/app/.next-cli-build/server/chunks/4105.js +1 -1
  617. package/app/.next-cli-build/server/chunks/4121.js +1 -1
  618. package/app/.next-cli-build/server/chunks/4387.js +1 -1
  619. package/app/.next-cli-build/server/chunks/4784.js +1 -0
  620. package/app/.next-cli-build/server/chunks/5376.js +1 -1
  621. package/app/.next-cli-build/server/chunks/5661.js +2 -0
  622. package/app/.next-cli-build/server/chunks/6127.js +1 -0
  623. package/app/.next-cli-build/server/chunks/6385.js +1 -1
  624. package/app/.next-cli-build/server/chunks/6635.js +120 -0
  625. package/app/.next-cli-build/server/chunks/6723.js +1 -1
  626. package/app/.next-cli-build/server/chunks/6797.js +1 -0
  627. package/app/.next-cli-build/server/chunks/7010.js +1 -1
  628. package/app/.next-cli-build/server/chunks/7074.js +1 -1
  629. package/app/.next-cli-build/server/chunks/7104.js +1 -1
  630. package/app/.next-cli-build/server/chunks/7173.js +1 -0
  631. package/app/.next-cli-build/server/chunks/7601.js +1 -0
  632. package/app/.next-cli-build/server/chunks/7622.js +1 -0
  633. package/app/.next-cli-build/server/chunks/77.js +1 -0
  634. package/app/.next-cli-build/server/chunks/7863.js +1 -1
  635. package/app/.next-cli-build/server/chunks/7950.js +1 -1
  636. package/app/.next-cli-build/server/chunks/8413.js +1 -1
  637. package/app/.next-cli-build/server/chunks/8695.js +1 -0
  638. package/app/.next-cli-build/server/chunks/9152.js +1 -0
  639. package/app/.next-cli-build/server/chunks/9462.js +3 -3
  640. package/app/.next-cli-build/server/chunks/9536.js +1 -1
  641. package/app/.next-cli-build/server/chunks/9813.js +1 -1
  642. package/app/.next-cli-build/server/chunks/9974.js +1 -1
  643. package/app/.next-cli-build/server/instrumentation.js +1 -1
  644. package/app/.next-cli-build/server/middleware-build-manifest.js +1 -1
  645. package/app/.next-cli-build/server/middleware-react-loadable-manifest.js +1 -1
  646. package/app/.next-cli-build/server/middleware.js +6 -6
  647. package/app/.next-cli-build/server/pages/404.html +1 -1
  648. package/app/.next-cli-build/server/pages/500.html +1 -1
  649. package/app/.next-cli-build/server/server-reference-manifest.js +1 -1
  650. package/app/.next-cli-build/server/server-reference-manifest.json +1 -1
  651. package/app/.next-cli-build/static/chunks/4385-cbf2781a85164825.js +1 -0
  652. package/app/.next-cli-build/static/chunks/{5882-1249cbe42852fd96.js → 5882-bb73715e79a1edc7.js} +15 -15
  653. package/app/.next-cli-build/static/chunks/7811.44f1e90e48ee2405.js +7 -0
  654. package/app/.next-cli-build/static/chunks/{9131-d37a1bf502688d4e.js → 9131-5c48f6b07c55928d.js} +2 -2
  655. package/app/.next-cli-build/static/chunks/{8667.b22b7da66acd945f.js → 9752.f8753c75713960c0.js} +1 -1
  656. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/combos/page-695c6386c328069c.js +1 -0
  657. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/[id]/{page-7a18b45a954e3c68.js → page-6fb9dbec413202a9.js} +24 -24
  658. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/[id]/{page-a6d3f510934cc6a5.js → page-b15161b2f2dbe57a.js} +4 -4
  659. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/quota/page-350e9dd8ec551006.js +1 -0
  660. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/token-saver/page-f3837ee992c42414.js +1 -0
  661. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/translator/page-c7d23dc2ea52f500.js +1 -0
  662. package/app/.next-cli-build/static/chunks/webpack-a0ce735078312e9a.js +1 -0
  663. package/app/.next-cli-build/static/css/e277fef3d96cd619.css +1 -0
  664. package/app/package.json +3 -3
  665. package/app/public/i18n/literals/fa.json +1 -1
  666. package/app/public/i18n/literals/id.json +1366 -170
  667. package/app/public/i18n/literals/km.json +1398 -0
  668. package/app/public/i18n/literals/pt-BR.json +1 -1
  669. package/app/public/i18n/literals/th.json +1 -1
  670. package/app/public/i18n/literals/zh-CN.json +1 -1
  671. package/app/public/providers/nace.png +0 -0
  672. package/app/public/providers/sensenova.png +0 -0
  673. package/app/src/app/(dashboard)/dashboard/cli-tools/components/GenericCliToolCard.js +69 -11
  674. package/app/src/app/(dashboard)/dashboard/combos/page.js +71 -19
  675. package/app/src/app/(dashboard)/dashboard/endpoint/EndpointPageClient.js +1 -1
  676. package/app/src/app/(dashboard)/dashboard/media-providers/[kind]/[id]/components/SttExampleCard.js +2 -5
  677. package/app/src/app/(dashboard)/dashboard/media-providers/[kind]/[id]/components/TtsExampleCard.js +94 -11
  678. package/app/src/app/(dashboard)/dashboard/media-providers/[kind]/[id]/components/exampleShared.js +2 -0
  679. package/app/src/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js +6 -1
  680. package/app/src/app/(dashboard)/dashboard/token-saver/TokenSaverClient.js +18 -0
  681. package/app/src/app/(dashboard)/dashboard/token-saver/TokenSaverSettings.js +37 -0
  682. package/app/src/app/(dashboard)/dashboard/translator/page.js +9 -2
  683. package/app/src/app/(dashboard)/dashboard/usage/components/ProviderLimits/QuotaTable.js +4 -2
  684. package/app/src/app/(dashboard)/dashboard/usage/components/ProviderLimits/utils.js +16 -1
  685. package/app/src/app/api/cli-tools/pi-settings/route.js +32 -14
  686. package/app/src/app/api/providers/[id]/test/testUtils.js +40 -1
  687. package/app/src/app/api/providers/validate/route.js +1 -0
  688. package/app/src/lib/db/driver.js +27 -0
  689. package/app/src/lib/db/helpers/nullBytes.js +28 -0
  690. package/app/src/lib/db/repos/settingsRepo.js +3 -0
  691. package/app/src/mitm/server.js +24 -24
  692. package/app/src/shared/constants/monaco.js +7 -0
  693. package/app/src/shared/constants/ttsProviders.js +16 -0
  694. package/app/src/shared/utils/bulkAdd.js +3 -0
  695. package/app/src/shared/utils/modelSearchFilter.js +2 -0
  696. package/app/src/sse/handlers/chat.js +2 -0
  697. package/app/src/sse/handlers/imageGeneration.js +12 -0
  698. package/app/src/sse/handlers/stt.js +31 -4
  699. package/app/src/sse/handlers/tts.js +9 -2
  700. package/package.json +1 -1
  701. package/app/.next-cli-build/server/chunks/1691.js +0 -1
  702. package/app/.next-cli-build/server/chunks/2445.js +0 -1
  703. package/app/.next-cli-build/server/chunks/2764.js +0 -1
  704. package/app/.next-cli-build/server/chunks/3280.js +0 -7
  705. package/app/.next-cli-build/server/chunks/3398.js +0 -120
  706. package/app/.next-cli-build/server/chunks/3650.js +0 -1
  707. package/app/.next-cli-build/server/chunks/3712.js +0 -1
  708. package/app/.next-cli-build/server/chunks/3750.js +0 -1
  709. package/app/.next-cli-build/server/chunks/5302.js +0 -1
  710. package/app/.next-cli-build/server/chunks/634.js +0 -1
  711. package/app/.next-cli-build/server/chunks/8729.js +0 -2
  712. package/app/.next-cli-build/server/chunks/9984.js +0 -1
  713. package/app/.next-cli-build/static/chunks/4385-03007e8e097ad6f8.js +0 -1
  714. package/app/.next-cli-build/static/chunks/7811.b41ad2c055232420.js +0 -7
  715. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/combos/page-db17236a5b2183ab.js +0 -1
  716. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/quota/page-85770718a5ce696c.js +0 -1
  717. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/token-saver/page-700aef5520cd0812.js +0 -1
  718. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/translator/page-7fa12dc3d0d68dca.js +0 -1
  719. package/app/.next-cli-build/static/chunks/webpack-619acf270537f5d4.js +0 -1
  720. package/app/.next-cli-build/static/css/918f11e454be0692.css +0 -1
  721. /package/app/.next-cli-build/static/{-8-NstHfD1iTKOGgb6O6F → LbAvi6x-snQC6rsQ9_c6d}/_buildManifest.js +0 -0
  722. /package/app/.next-cli-build/static/{-8-NstHfD1iTKOGgb6O6F → LbAvi6x-snQC6rsQ9_c6d}/_ssgManifest.js +0 -0
@@ -6,7 +6,7 @@ ${b}`);else if(Array.isArray(a.content)){if(a.content.some(a=>a.text===b))return
6
6
 
7
7
  ${b}`:b;return}if(Array.isArray(a.system)){if(a.system.some(a=>a.text===b))return;a.system.push({type:"text",text:b});return}a.system=b}function k(a,b){let c=a.request&&"object"==typeof a.request?a.request:a,d=Object.prototype.hasOwnProperty.call(c,"system_instruction")?"system_instruction":"systemInstruction",e=c[d];if(e&&Array.isArray(e.parts)){if(e.parts.some(a=>a.text===b))return;e.parts.push({text:b});return}c[d]={parts:[{text:b}]}}function l(a,b){let c=a?.conversationState?.currentMessage?.userInputMessage;!c||"string"==typeof c.content&&c.content.includes(b)||(c.content="string"==typeof c.content&&c.content?`${b}
8
8
 
9
- ${c.content}`:b)}},14018:(a,b,c)=>{c.d(b,{N:()=>t});var d=c(69152),e=c(2568),f=c(42681),g=c(39621),h=c(77380),i=c(73329),j=c(15261),k=c(39362),l=c(92398),m=c(98757),n=c(50996),o=c(92913),p=c(23648),q=c(97781),r=c(75580),s=c(15204);async function t({providerResponse:a,provider:b,model:c,sourceFormat:u,targetFormat:v,body:w,stream:x,translatedBody:y,finalBody:z,requestStartTime:A,connectionId:B,apiKey:C,apiKeyInfo:D,apiKeyName:E,clientModelId:F,clientRawRequest:G,onRequestSuccess:H,reqLogger:I,toolNameMap:J,trackDone:K,appendLog:L,pxpipe:M,comboName:N}){let O;if(K(),(a.headers.get("content-type")||"").includes("text/event-stream")){let b=await a.text(),d=(0,n.Fe)(b,c,(0,s.Qv)(w?.tools));if(!d)return L({status:`FAILED ${l.gx.BAD_GATEWAY}`}),(0,j.A1)(l.gx.BAD_GATEWAY,"Invalid SSE response for non-streaming request");O=d}else try{O=await a.json()}catch(a){return L({status:`FAILED ${l.gx.BAD_GATEWAY}`}),console.error(`[ChatCore] Failed to parse JSON from ${b}:`,a.message),(0,j.A1)(l.gx.BAD_GATEWAY,`Invalid JSON response from ${b}`)}I.logProviderResponse(a.status,a.statusText,a.headers,O),H&&Promise.resolve().then(H).catch(a=>{console.error("[ChatCore] onRequestSuccess failed:",a?.message||a)});{let{body:a,error:c}=(0,m.K)(O,b);if(c)return L({status:`FAILED ${l.gx.BAD_GATEWAY}`}),(0,j.A1)(l.gx.BAD_GATEWAY,c.message);O=a}O=(0,q.kR)(O,J);let P=(0,o.MK)(O);L({tokens:P,status:"200 OK"}),(0,o.qr)({provider:b,model:c,tokens:P,connectionId:B,apiKey:C,apiKeyInfo:D,endpoint:G?.endpoint,comboName:N});let Q=(0,e.nZ)(v,u)?function(a,b,c,e=null){if(b===c)return a;let h=function(a,b){if(b===d.h.OPENAI)return a;if(b===d.h.GEMINI||b===d.h.ANTIGRAVITY||b===d.h.GEMINI_CLI||b===d.h.VERTEX){let b=a.response||a;if(!b?.candidates?.[0])return a;let c=b.candidates[0],d=c.content,e=b.usageMetadata||a.usageMetadata,f="",g="",h=[];if(d?.parts)for(let a of d.parts){!0===a.thought&&a.text?g+=a.text:void 0!==a.text&&(f+=a.text),a.functionCall&&h.push({id:`call_${a.functionCall.name}_${Date.now()}_${h.length}`,type:"function",function:{name:a.functionCall.name,arguments:JSON.stringify(a.functionCall.args||{})}});let b=a.inlineData||a.inline_data;if(b?.data){let a=b.mimeType||b.mime_type||"image/png";f+=`
9
+ ${c.content}`:b)}},14018:(a,b,c)=>{c.d(b,{N:()=>t});var d=c(69152),e=c(2568),f=c(42681),g=c(39621),h=c(77380),i=c(73329),j=c(15261),k=c(39362),l=c(92398),m=c(98757),n=c(50996),o=c(92913),p=c(23648),q=c(97781),r=c(75580),s=c(15204);async function t({providerResponse:a,provider:b,model:c,sourceFormat:u,targetFormat:v,body:w,stream:x,translatedBody:y,finalBody:z,requestStartTime:A,connectionId:B,apiKey:C,apiKeyInfo:D,apiKeyName:E,clientModelId:F,clientRawRequest:G,onRequestSuccess:H,reqLogger:I,toolNameMap:J,trackDone:K,appendLog:L,pxpipe:M,comboName:N}){let O;if(K(),(a.headers.get("content-type")||"").includes("text/event-stream")){let b=await a.text(),d=(0,n.Fe)(b,c,(0,s.Qv)(w?.tools));if(!d)return L({status:`FAILED ${l.gx.BAD_GATEWAY}`}),(0,j.A1)(l.gx.BAD_GATEWAY,"Invalid SSE response for non-streaming request");if(d.error){let a=Number(d.error.status),b=Number.isInteger(a)&&a>=400&&a<=599?a:l.gx.BAD_GATEWAY;return L({status:`FAILED ${b}`}),(0,j.A1)(b,d.error.message||"Upstream SSE stream failed")}O=d}else try{O=await a.json()}catch(a){return L({status:`FAILED ${l.gx.BAD_GATEWAY}`}),console.error(`[ChatCore] Failed to parse JSON from ${b}:`,a.message),(0,j.A1)(l.gx.BAD_GATEWAY,`Invalid JSON response from ${b}`)}I.logProviderResponse(a.status,a.statusText,a.headers,O),H&&Promise.resolve().then(H).catch(a=>{console.error("[ChatCore] onRequestSuccess failed:",a?.message||a)});{let{body:a,error:c}=(0,m.K)(O,b);if(c)return L({status:`FAILED ${l.gx.BAD_GATEWAY}`}),(0,j.A1)(l.gx.BAD_GATEWAY,c.message);O=a}O=(0,q.kR)(O,J);let P=(0,o.MK)(O);L({tokens:P,status:"200 OK"}),(0,o.qr)({provider:b,model:c,tokens:P,connectionId:B,apiKey:C,apiKeyInfo:D,endpoint:G?.endpoint,comboName:N});let Q=(0,e.nZ)(v,u)?function(a,b,c,e=null){if(b===c)return a;let h=function(a,b){if(b===d.h.OPENAI)return a;if(b===d.h.GEMINI||b===d.h.ANTIGRAVITY||b===d.h.GEMINI_CLI||b===d.h.VERTEX){let b=a.response||a;if(!b?.candidates?.[0])return a;let c=b.candidates[0],d=c.content,e=b.usageMetadata||a.usageMetadata,f="",g="",h=[];if(d?.parts)for(let a of d.parts){!0===a.thought&&a.text?g+=a.text:void 0!==a.text&&(f+=a.text),a.functionCall&&h.push({id:`call_${a.functionCall.name}_${Date.now()}_${h.length}`,type:"function",function:{name:a.functionCall.name,arguments:JSON.stringify(a.functionCall.args||{})}});let b=a.inlineData||a.inline_data;if(b?.data){let a=b.mimeType||b.mime_type||"image/png";f+=`
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,g._)(a):a}(a,b);return c===d.h.CLAUDE?(0,f.F)(h,e||h?.model):h}(O,v,u,c):O,R=u===d.h.CLAUDE&&v!==d.h.CLAUDE,S=R?(0,q.kR)(Q,J):Q;if(!R){if(/kimi-k2\./i.test(c||"")&&Array.isArray(Q?.choices))for(let a of Q.choices){let b=a?.message;if(!b||"assistant"!==b.role)continue;let{message:c,hasTools:d}=(0,h.vH)(b);d&&(a.message=c)}if(Q?.choices?.[0]){let a=Q.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(Q.object||(Q.object="chat.completion"),Q.created||(Q.created=Math.floor(Date.now()/1e3)),delete Q.prompt_filter_results,Q?.choices)for(let a of Q.choices)delete a.content_filter_results;Q?.usage&&(Q.usage=(0,i.WL)((0,i.O9)(Q.usage),u));let a=!!(w?.reasoning_effort||w?.thinking?.type||w?.reasoning||w?.config?.thinking?.thinkingBudget||w?.reasoning_config);if(Q?.choices&&!a)for(let a of Q.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)}}I.logConvertedResponse(S);let T=Date.now()-A,U=S?.choices?.[0]?.message?.content||(Array.isArray(S?.content)?S.content.find(a=>"text"===a.type)?.text||"":null)||"",V=S?.choices?.[0]?.message?.reasoning_content||(Array.isArray(S?.content)?S.content.find(a=>"thinking"===a.type)?.thinking:null)||null,W=S?.choices?.[0]?.finish_reason||S?.stop_reason||"unknown";return(0,p.ox)((0,o.$R)({provider:b,model:c,connectionId:B,apiKey:C,apiKeyName:E,latency:{ttft:T,total:T},tokens:P||{prompt_tokens:0,completion_tokens:0},request:(0,o.Fo)(w,x),providerRequest:z||y||null,providerResponse:O||null,response:{content:U,thinking:V,finish_reason:W},pxpipe:M,status:"success"},{endpoint:G?.endpoint||null})).catch(a=>{console.error("[RequestDetail] Failed to save:",a.message)}),F&&S&&"object"==typeof S&&!Array.isArray(S)&&(S.model=F),{success:!0,response:new Response(JSON.stringify((0,r.HR)(S,J)),{headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*",...(0,k.d)(a.headers)}})}}},17399:(a,b,c)=>{c.d(b,{getRuntimeLogsDir:()=>i});var d=c(48161),e=c.n(d),f=c(76760),g=c.n(f);let h="9router";function i(a={}){return g().join(function({env:a=process.env,platform:b=process.platform,home:c=e().homedir(),pathImpl:d=g()}={}){let f="string"==typeof a.DATA_DIR?a.DATA_DIR.trim():"";return f&&!("win32"===b&&/^\//.test(f))?d.resolve(f):"win32"===b?d.join(a.APPDATA||d.join(c,"AppData","Roaming"),h):d.join(c,`.${h}`)}(a),"logs")}},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
 
@@ -14,15 +14,15 @@ ${b}`:b}function i(a,b,c){try{if(!a||!c||"object"!=typeof a)return;if(function(a
14
14
 
15
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}
16
16
 
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,b=40){let c=[];for(let d=a.length-1;d>=0&&c.length<b;d--){let e=a[d];if(e?.role==="assistant"&&Array.isArray(e.tool_calls))for(let a=e.tool_calls.length-1;a>=0&&(c.unshift(function(a){let b=a?.function?.name||a?.name||"",c=function(a){try{let b=JSON.parse(a);return JSON.stringify(function a(b){if(null===b||"object"!=typeof b)return b;if(Array.isArray(b))return b.map(a);let c={};for(let d of Object.keys(b).sort())c[d]=a(b[d]);return c}(b))}catch{return a||""}}(a?.function?.arguments||a?.arguments||"");return`${b}::${c}`}(e.tool_calls[a])),!(c.length>=b));a--);}return c}(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,c=Math.min(6,Math.floor(b/2));for(let d=c;d>=2;d--)for(let c=0;c<=b-2*d;c++){let e=a.slice(c,c+d).join("|"),f=0,g=0;for(;g<=b-d;)a.slice(g,g+d).join("|")===e?(f++,g+=d):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,b=20){let c=[];for(let d=a.length-1;d>=0&&c.length<b;d--){let b=a[d];if(b?.role==="assistant"){let a=b?"string"==typeof b.content?b.content:Array.isArray(b.content)?b.content.filter(a=>a&&"string"==typeof a.text).map(a=>a.text).join(" "):"":"";a.length>=12&&c.unshift(a)}}return c}(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)if(!(a.length>4096))for(let b of new Set(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:()=>U});var e=c(217),f=c(54729),g=c(2568),h=c(69152),i=c(42966),j=c(45479),k=c(78963),l=c(76276),m=c(86954),n=c(52554),o=c(8817),p=c(13946),q=c(15261),r=c(5505),s=c(6371),t=c(39362),u=c(92398),v=c(83571),w=c(23648),x=c(63548),y=c(44027),z=c(92913),A=c(50996),B=c(14018),C=c(60137),D=c(92201),E=c(94054),F=c(61210),G=c(75580),H=c(34496),I=c(63192),J=c(56764),K=c(20526),L=c(8789),M=c(72152),N=c(69188),O=c(99974),P=c(81297),Q=c(80117),R=c(15204),S=c(83474),T=a([x]);x=(T.then?(await T)():T)[0];let V=new Set(["kimchi","nvidia"]);async function U({body:a,modelInfo:b,credentials:c,log:d,onCredentialsRefreshed:T,onRequestSuccess:W,onDisconnect:X,clientRawRequest:Y,connectionId:Z,userAgent:$,apiKey:_,apiKeyInfo:aa=null,apiKeyName:ab=null,ccFilterNaming:ac,rtkEnabled:ad,clientBodyBytes:ae,headroomEnabled:af,headroomUrl:ag,headroomCompressUserMessages:ah,headroomTimeoutMs:ai=3e3,cavemanEnabled:aj,cavemanLevel:ak,ponytailEnabled:al,ponytailLevel:am,pxpipeEnabled:an=!1,pxpipeMinChars:ao=1e3,pxpipeTimeoutMs:ap=1e4,pxpipeTransform:aq="png",onPxpipeEvent:ar=null,sourceFormatOverride:as,providerThinking:at,clientSignal:au,loopGuardEnabled:av=!0,systemPrompt:aw=null,clientModelId:ax=null,resolveProxyConfig:ay=null,providerOverrides:az=null}){var aA;let aB,aC,aD,aE,aF,aG,{provider:aH,model:aI,accountCount:aJ=0}=b,aK=Date.now(),aL=as||(0,f.Tz)(a),aM=(0,v.c)(a,aI,$,ac);if(aM)return aM;let aN=o.Xg[aH]||aH,aO=(0,o.ux)(aN,aI),aP=(0,f.oF)(aH,aL),aQ=(0,o.ez)(aN,aI),aR=aO?(0,f.oF)(aH,aO):null,aS=!aQ||aQ.includes(aL)?aP:aR,aT=aS?.format||aO||(0,f.jJ)(aH,c);aS&&c&&(c.runtimeTransport=aS);let aU=(0,o.cY)(aN,aI),aV=(0,o.kt)(aN,aI);if(at?.mode&&"auto"!==at.mode){let b=(0,O.getCapabilitiesForModel)(aH,aI);if(b?.reasoning){let c=at.mode;"on"!==c||a.thinking||a.reasoning_effort?"off"!==c||a.thinking||a.reasoning_effort?a.reasoning_effort||(a={...a,reasoning_effort:c}):"opencode"===aH?a={...a,reasoning_effort:"none"}:!1!==b.thinkingCanDisable&&(a={...a,thinking:{type:"disabled"}}):a="opencode"===aH?{...a,reasoning_effort:"medium"}:{...a,thinking:{type:"enabled",budget_tokens:1e4}}}}let aW=Y?.headers?.[u.SA]?.toLowerCase()!=="off",aX="cursor"===aH?(0,M.BI)(a,aW&&ad,ae):null,aY=!0===a.stream||aL===h.h.ANTIGRAVITY||aL===h.h.GEMINI||aL===h.h.GEMINI_CLI,aZ=p.xq[aH]?.forceStream===!0,a$=!!aZ||!1!==a.stream,a_="nvidia"===aH&&/kimi-k2\.[67]/i.test(aI||"")&&!0===a$,a0=!a_&&a$;a_&&d?.debug?.("STREAMCOERCE",`${aH}/${aI} | stream=true → false (upstream)`);let a1=(0,o.OA)(aN,aI);("imageGen"===a1||/image|imagen|image-generation/i.test(aI))&&("antigravity"===aH||"gemini-cli"===aH)&&(a$=!1);let a2=(0,E.J)(Y?.headers||{},a);"deepseek-tui"===a2&&!0!==a.stream&&(a$=!1);let a3=Y?.headers?.accept||"",a4=a3.includes("application/json"),a5=a3.includes("text/event-stream");!a4||a5||!0===a.stream||aZ||(a$=!1);let a6=await (0,m.q7)(aL,aT,aI);Y&&a6.logClientRawRequest(Y.endpoint,Y.body,Y.headers),a6.logRawRequest(a),d?.debug?.("FORMAT",`${aL} → ${aT} | stream=${a$}`);let a7=(0,E.J)(Y?.headers||{},a),a8=(0,E.Q)(a7,aH);if(c&&(c.rawHeaders=Y?.headers||{}),!a8){let b=(0,O.getCapabilitiesForModel)(aH,aI);(0,P.X)(a,aL,b)&&d?.debug?.("MODALITY",`stripped unsupported media for ${aH}/${aI}`);try{let b=await (0,Q.C)(a,aL,aT,{signal:void 0});b>0&&d?.debug?.("MODALITY",`prefetched ${b} remote image(s) for ${aT}`)}catch(a){d?.warn?.("MODALITY",`image prefetch failed: ${a.message}`)}}if(a8)d?.debug?.("PASSTHROUGH",`${a7} → ${aH} | native lossless`),aB={...a,model:(0,n.kD)(aV)},"claude"===a7&&(0,i.ui)(aB,(0,n.kD)(aV));else{if(!(aB=(0,g.GH)(aL,aT,aV,a,a0,c,aH,a6,aU,Z,a7)))return(0,w.uw)(aI,aH,Z,!1,!0),(0,q.A1)(u.gx.BAD_REQUEST,`Failed to translate request for ${aL} → ${aT}`);aC=aB._toolNameMap,delete aB._toolNameMap,aB.model=(0,n.kD)(aV)}if(a_&&(aB.stream=!1),Array.isArray(aB.tools)){let{tools:a,stripped:b}=(0,F.F)(aB.tools,{clientTool:a7,model:aI});b.length>0&&(aB.tools=a,d?.debug?.("TOOLDEDUP",`stripped ${b.length}: ${b.slice(0,3).join(", ")}${b.length>3?"...":""}`))}let a9=a8?aL:aT;if(d?.line){let b=`${aH}/${aI}`.slice(0,20),e=Y?.body?.model||`${aH}/${aI}`,f=aB.messages?.length||aB.input?.length||aB.contents?.length||a.messages?.length||a.input?.length||0,g=aB.tools?.length||a.tools?.length||0,h=a8?`FMT: ${aL} (passthrough)`:`FMT: ${aL}→${aT}`,i="grok-cli"!==aH||(0,y.Au)(aI)?d.fmtThink?.((0,n.sS)(aB)):null,j=c?.connectionName||c?.connectionId?.slice(0,8)||"-",k=[`POST ${e} → ${aH}/${aI}`,h,a$?"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)(aN,aI)&&aB.messages&&(aB.messages=aB.messages.filter(a=>"tool"!==a.role),delete aB.tools),(0,R.dV)(aH,a9,aB.tools,p.xq)&&(aB.tools=(0,R.C5)(aB.tools));let ba=aX||(0,M.BI)(aB,aW&&ad,ae),bb=(0,M.fT)(ba);bb&&console.log(bb);let bc={},bd=await (0,N.SI)(aB,{enabled:aW&&af,url:ag,model:aV,format:a9,compressUserMessages:ah,timeoutMs:ai,diagnostics:bc}),be=(0,N.Nv)(bd),bf=(0,N.O2)(bc);if(be?(d?.info?.("HEADROOM",`${be}${bf?` | ${bf}`:""}`),(0,N.cB)(bd,bc)&&d?.warn?.("HEADROOM",`reported token delta, but outbound JSON shrank <5%; provider may bill near-original payload | ${bf}`)):aW&&af&&d?.warn?.("HEADROOM",`skipped: ${bc.reason||"compression unavailable"}${bc.endpoint?` (${bc.endpoint})`:""}`),aw&&((0,K.J)(aB,a9,aw),d?.debug?.("SYSPROMPT",`default injected | ${a9}`)),aW&&aj&&ak&&((0,I.p)(aB,a9,ak),d?.debug?.("CAVEMAN",`${ak} | ${a9}`)),aW&&al&&am&&((0,J.U)(aB,a9,am),d?.debug?.("PONYTAIL",`${am} | ${a9}`)),V.has(aH)&&((0,L.o5)(aB,a9,(aA=aB.tools,Array.isArray(aA)?aA.map(a=>a?.function?.name||a?.name).filter(a=>"string"==typeof a&&a.trim()):[])),d?.debug?.("TOOLPROTO",`${aH}/${aI} | ${a9}`)),av&&function(a,b,c,d,e){let f=(0,H.k)(a);if(!f.detected)return;(0,L.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,b=40){let c=[];for(let d=a.length-1;d>=0&&c.length<b;d--){let e=a[d];if(e?.role==="assistant"&&Array.isArray(e.tool_calls))for(let a=e.tool_calls.length-1;a>=0&&(c.unshift(function(a){let b=a?.function?.name||a?.name||"",c=function(a){try{let b=JSON.parse(a);return JSON.stringify(function a(b){if(null===b||"object"!=typeof b)return b;if(Array.isArray(b))return b.map(a);let c={};for(let d of Object.keys(b).sort())c[d]=a(b[d]);return c}(b))}catch{return a||""}}(a?.function?.arguments||a?.arguments||"");return`${b}::${c}`}(e.tool_calls[a])),!(c.length>=b));a--);}return c}(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,c=Math.min(6,Math.floor(b/2));for(let d=c;d>=2;d--)for(let c=0;c<=b-2*d;c++){let e=a.slice(c,c+d).join("|"),f=0,g=0;for(;g<=b-d;)a.slice(g,g+d).join("|")===e?(f++,g+=d):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,b=20){let c=[];for(let d=a.length-1;d>=0&&c.length<b;d--){let b=a[d];if(b?.role==="assistant"){let a=b?"string"==typeof b.content?b.content:Array.isArray(b.content)?b.content.filter(a=>a&&"string"==typeof a.text).map(a=>a.text).join(" "):"":"";a.length>=12&&c.unshift(a)}}return c}(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)if(!(a.length>4096))for(let b of new Set(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:()=>V});var e=c(217),f=c(54729),g=c(2568),h=c(69152),i=c(42966),j=c(45479),k=c(78963),l=c(76276),m=c(86954),n=c(52554),o=c(8817),p=c(13946),q=c(15261),r=c(5505),s=c(6371),t=c(39362),u=c(92398),v=c(83571),w=c(23648),x=c(63548),y=c(44027),z=c(92913),A=c(50996),B=c(14018),C=c(60137),D=c(92201),E=c(94054),F=c(61210),G=c(75580),H=c(34496),I=c(63192),J=c(56764),K=c(20526),L=c(8789),M=c(81668),N=c(72152),O=c(69188),P=c(99974),Q=c(81297),R=c(80117),S=c(15204),T=c(83474),U=a([x]);x=(U.then?(await U)():U)[0];let W=new Set(["kimchi","nvidia"]);async function V({body:a,modelInfo:b,credentials:c,log:d,onCredentialsRefreshed:U,onRequestSuccess:X,onDisconnect:Y,clientRawRequest:Z,connectionId:$,userAgent:_,apiKey:aa,apiKeyInfo:ab=null,apiKeyName:ac=null,ccFilterNaming:ad,rtkEnabled:ae,clientBodyBytes:af,headroomEnabled:ag,headroomUrl:ah,headroomCompressUserMessages:ai,headroomTimeoutMs:aj=3e3,cavemanEnabled:ak,cavemanLevel:al,ponytailEnabled:am,ponytailLevel:an,customPromptEnabled:ao,customPrompt:ap,pxpipeEnabled:aq=!1,pxpipeMinChars:ar=1e3,pxpipeTimeoutMs:as=1e4,pxpipeTransform:at="png",onPxpipeEvent:au=null,sourceFormatOverride:av,providerThinking:aw,clientSignal:ax,loopGuardEnabled:ay=!0,systemPrompt:az=null,clientModelId:aA=null,resolveProxyConfig:aB=null,providerOverrides:aC=null}){var aD;let aE,aF,aG,aH,aI,aJ,{provider:aK,model:aL,accountCount:aM=0}=b,aN=Date.now(),aO=av||(0,f.Tz)(a),aP=(0,v.c)(a,aL,_,ad);if(aP)return aP;let aQ=o.Xg[aK]||aK,aR=(0,o.ux)(aQ,aL),aS=(0,f.oF)(aK,aO),aT=(0,o.ez)(aQ,aL),aU=aR?(0,f.oF)(aK,aR):null,aV=!aT||aT.includes(aO)?aS:aU,aW=aV?.format||aR||(0,f.jJ)(aK,c);aV&&c&&(c.runtimeTransport=aV);let aX=(0,o.cY)(aQ,aL);if(aw?.mode&&"auto"!==aw.mode){let b=(0,P.getCapabilitiesForModel)(aK,aL);if(b?.reasoning){let c=aw.mode;"on"!==c||a.thinking||a.reasoning_effort?"off"!==c||a.thinking||a.reasoning_effort?a.reasoning_effort||(a={...a,reasoning_effort:c}):"opencode"===aK?a={...a,reasoning_effort:"none"}:!1!==b.thinkingCanDisable&&(a={...a,thinking:{type:"disabled"}}):a="opencode"===aK?{...a,reasoning_effort:"medium"}:{...a,thinking:{type:"enabled",budget_tokens:1e4}}}}let aY=(0,o.kt)(aQ,aL,a),aZ=Z?.headers?.[u.SA]?.toLowerCase()!=="off",a$="cursor"===aK?(0,N.BI)(a,aZ&&ae,af):null,a_=!0===a.stream||aO===h.h.ANTIGRAVITY||aO===h.h.GEMINI||aO===h.h.GEMINI_CLI,a0=p.xq[aK]?.forceStream===!0,a1=!!a0||!1!==a.stream,a2="nvidia"===aK&&/kimi-k2\.[67]/i.test(aL||"")&&!0===a1,a3=!a2&&a1;a2&&d?.debug?.("STREAMCOERCE",`${aK}/${aL} | stream=true → false (upstream)`);let a4=(0,o.OA)(aQ,aL);("imageGen"===a4||/image|imagen|image-generation/i.test(aL))&&("antigravity"===aK||"gemini-cli"===aK)&&(a1=!1);let a5=(0,E.J)(Z?.headers||{},a);"deepseek-tui"===a5&&!0!==a.stream&&(a1=!1);let a6=Z?.headers?.accept||"",a7=a6.includes("application/json"),a8=a6.includes("text/event-stream");!a7||a8||!0===a.stream||a0||(a1=!1);let a9=await (0,m.q7)(aO,aW,aL);Z&&a9.logClientRawRequest(Z.endpoint,Z.body,Z.headers),a9.logRawRequest(a),d?.debug?.("FORMAT",`${aO} → ${aW} | stream=${a1}`);let ba=(0,E.J)(Z?.headers||{},a),bb=(0,E.Q)(ba,aK);if(c&&(c.rawHeaders=Z?.headers||{}),!bb){let b=(0,P.getCapabilitiesForModel)(aK,aL);(0,Q.X)(a,aO,b)&&d?.debug?.("MODALITY",`stripped unsupported media for ${aK}/${aL}`);try{let b=await (0,R.C)(a,aO,aW,{signal:void 0});b>0&&d?.debug?.("MODALITY",`prefetched ${b} remote image(s) for ${aW}`)}catch(a){d?.warn?.("MODALITY",`image prefetch failed: ${a.message}`)}}if(bb)d?.debug?.("PASSTHROUGH",`${ba} → ${aK} | native lossless`),aE={...a,model:(0,n.kD)(aY)},"claude"===ba&&(0,i.ui)(aE,(0,n.kD)(aY));else{if(!(aE=(0,g.GH)(aO,aW,aY,a,a3,c,aK,a9,aX,$,ba)))return(0,w.uw)(aL,aK,$,!1,!0),(0,q.A1)(u.gx.BAD_REQUEST,`Failed to translate request for ${aO} → ${aW}`);aF=aE._toolNameMap,delete aE._toolNameMap,aE.model=(0,n.kD)(aY)}if(a2&&(aE.stream=!1),Array.isArray(aE.tools)){let{tools:a,stripped:b}=(0,F.F)(aE.tools,{clientTool:ba,model:aL});b.length>0&&(aE.tools=a,d?.debug?.("TOOLDEDUP",`stripped ${b.length}: ${b.slice(0,3).join(", ")}${b.length>3?"...":""}`))}let bc=bb?aO:aW;if(d?.line){let b=`${aK}/${aL}`.slice(0,20),e=Z?.body?.model||`${aK}/${aL}`,f=aE.messages?.length||aE.input?.length||aE.contents?.length||a.messages?.length||a.input?.length||0,g=aE.tools?.length||a.tools?.length||0,h=bb?`FMT: ${aO} (passthrough)`:`FMT: ${aO}→${aW}`,i="grok-cli"!==aK||(0,y.Au)(aL)?d.fmtThink?.((0,n.sS)(aE)):null,j=c?.connectionName||c?.connectionId?.slice(0,8)||"-",k=[`POST ${e} → ${aK}/${aL}`,h,a1?"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)(aQ,aL)&&aE.messages&&(aE.messages=aE.messages.filter(a=>"tool"!==a.role),delete aE.tools),(0,S.dV)(aK,bc,aE.tools,p.xq)&&(aE.tools=(0,S.C5)(aE.tools));let bd=a$||(0,N.BI)(aE,aZ&&ae,af),be=(0,N.fT)(bd);be&&console.log(be);let bf={},bg=await (0,O.SI)(aE,{enabled:aZ&&ag,url:ah,model:aY,format:bc,compressUserMessages:ai,timeoutMs:aj,diagnostics:bf}),bh=(0,O.Nv)(bg),bi=(0,O.O2)(bf);if(bh?(d?.info?.("HEADROOM",`${bh}${bi?` | ${bi}`:""}`),(0,O.cB)(bg,bf)&&d?.warn?.("HEADROOM",`reported token delta, but outbound JSON shrank <5%; provider may bill near-original payload | ${bi}`)):aZ&&ag&&d?.warn?.("HEADROOM",`skipped: ${bf.reason||"compression unavailable"}${bf.endpoint?` (${bf.endpoint})`:""}`),az&&((0,K.J)(aE,bc,az),d?.debug?.("SYSPROMPT",`default injected | ${bc}`)),aZ&&ak&&al&&((0,I.p)(aE,bc,al),d?.debug?.("CAVEMAN",`${al} | ${bc}`)),aZ&&am&&an&&((0,J.U)(aE,bc,an),d?.debug?.("PONYTAIL",`${an} | ${bc}`)),W.has(aK)&&((0,L.o5)(aE,bc,(aD=aE.tools,Array.isArray(aD)?aD.map(a=>a?.function?.name||a?.name).filter(a=>"string"==typeof a&&a.trim()):[])),d?.debug?.("TOOLPROTO",`${aK}/${aL} | ${bc}`)),ay&&function(a,b,c,d,e){let f=(0,H.k)(a);if(!f.detected)return;(0,L.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=`
18
18
 
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`)}(aB,a9,aH,aI,d),/(?:^|[/_-])kimi(?:[/_-]|$)|(?:^|[/_-])kimi-k2\.(?:6|7)(?:\b|[-_/])/i.test(`${aH}/${aI}`)&&((0,L.sH)(aB,a9),d?.debug?.("TERMINATION",`${aH}/${aI} | ${a9}`)),at?.mode&&"auto"!==at.mode){let a=(0,O.getCapabilitiesForModel)(aH,aI);if(a?.reasoning){let b=at.mode;"off"===b?(aB.reasoning_effort="none","opencode"!==aH&&!1!==a.thinkingCanDisable&&(aB.thinking={type:"disabled"}),d?.debug?.("THINKING",`${aH}/${aI} | disabled`)):"on"===b?("opencode"===aH?aB.reasoning_effort="medium":aB.thinking={type:"enabled",budget_tokens:1e4},d?.debug?.("THINKING","opencode"===aH?`${aH}/${aI} | effort=medium`:`${aH}/${aI} | enabled (10k budget)`)):(aB.reasoning_effort=b,d?.debug?.("THINKING",`${aH}/${aI} | effort=${b}`))}}let bg=null;if(an){let a=await (0,e.H)(aB,{enabled:!0,format:a9,model:aV,minChars:ao,timeoutMs:ap,transform:aq});bg=a.summary,a.body&&(aB=a.body);let b=(0,e._)(bg);b?d?.info?.("PXPIPE",b):d?.debug?.("PXPIPE",`skipped: ${bg.reason}${bg.detail?` (${bg.detail})`:""}`);try{ar?.({provider:aH,model:aI,...bg})}catch{}}a8&&("claude"===a7||aT===h.h.CLAUDE)&&(0,i._W)(aB);let bh=(0,x.SB)(aH);(0,w.uw)(aI,aH,Z,!0),(0,w.E5)({model:aI,provider:aH,connectionId:Z,status:"PENDING"}).catch(()=>{});let bi=aB.messages?.length||aB.input?.length||aB.contents?.length||aB.request?.contents?.length||0;d?.debug?.("REQUEST",`${aH.toUpperCase()} | ${aI} | ${bi} msgs`);let bj=(0,k.jd)({onDisconnect:a=>{(0,w.uw)(aI,aH,Z,!1),X&&X(a)},onError:()=>(0,w.uw)(aI,aH,Z,!1),log:d,provider:aH,model:aI});au&&(au.aborted?bj.abort():au.addEventListener("abort",()=>bj.abort(),{once:!0}));let bk=(a={})=>({connectionProxyEnabled:a?.connectionProxyEnabled===!0,connectionProxyUrl:a?.connectionProxyUrl||"",connectionNoProxy:a?.connectionNoProxy||"",vercelRelayUrl:a?.vercelRelayUrl||"",strictProxy:a?.strictProxy===!0||"freebuff"===aH,proxyPoolId:a?.proxyPoolId||a?.connectionProxyPoolId||null}),bl=`${aH}::${aI}`,bm=bk(c?.providerSpecificData||{});if("freebuff"===aH&&c?.providerSpecificData?.noFitPool===!0){let a=Error(`Freebuff has no healthy proxy pool for ${aI}; all assigned pools are cooling down after limited-IP errors.`);return a.status=503,a.poolScoped={poolId:null,scope:bl,reason:"no_fit_pool"},(0,w.uw)(aI,aH,Z,!1,!0),(0,q.A1)(503,a.message)}if("freebuff"===aH&&!bm.vercelRelayUrl&&!(bm.connectionProxyEnabled&&bm.connectionProxyUrl)){let a=Error(`Freebuff requires a configured proxy pool for ${aI}; direct egress is disabled to prevent limited-IP rate limits.`);return a.status=503,(0,w.uw)(aI,aH,Z,!1,!0),(0,q.A1)(503,a.message)}if(bm.vercelRelayUrl){let a=c?.connectionName||c?.connectionId||"unknown",b=bm.proxyPoolId||"none";d?.info?.("PROXY",`${aH.toUpperCase()} | ${aI} | conn=${a} | pool=${b} | vercel-relay=${bm.vercelRelayUrl}`)}else if(bm.connectionProxyEnabled&&bm.connectionProxyUrl){let a=bm.connectionProxyUrl;try{let b=new URL(bm.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",`${aH.toUpperCase()} | ${aI} | conn=${e} | pool=${b} | url=${a}`)}if(bm.connectionProxyEnabled&&bm.connectionNoProxy){let a=c?.connectionName||c?.connectionId||"unknown";d?.debug?.("PROXY",`${aH.toUpperCase()} | ${aI} | conn=${a} | no_proxy=${bm.connectionNoProxy}`)}let bn=null,bo=async(a=0)=>{let b;try{b=await bh.execute({model:aI,body:aB,stream:a0,credentials:c,signal:bj.signal,log:d,proxyOptions:bm,accountCount:aJ})}catch(b){if(b?.poolScoped&&"function"==typeof ay&&a<2){let e=b.poolScoped.poolId||bm.proxyPoolId;await (0,S.on)(e,b.poolScoped.scope||bl,b.resetsAtMs,b.poolScoped.reason||"pool-scoped");try{let b=await ay(c,[e]);if(b?.proxyPoolId)return c.providerSpecificData={...c.providerSpecificData||{},...b},bm=bk(c.providerSpecificData),bo(a+1)}catch(a){d?.warn?.("PROXY",`${aH.toUpperCase()} | pool re-resolve failed: ${a.message}`)}}throw b}if(!b.response.ok){let e=await (0,q.zL)(b.response,bh);if(e.poolScoped&&"function"==typeof ay&&a<2){let b=e.poolScoped.poolId||bm.proxyPoolId;await (0,S.on)(b,e.poolScoped.scope||bl,e.resetsAtMs,e.poolScoped.reason||"pool-scoped");try{let d=await ay(c,[b]);if(d?.proxyPoolId)return c.providerSpecificData={...c.providerSpecificData||{},...d},bm=bk(c.providerSpecificData),bo(a+1)}catch(a){d?.warn?.("PROXY",`${aH.toUpperCase()} | pool re-resolve failed: ${a.message}`)}}bn=e}return b},bp=aT;try{let a=await bo();aD=a.response,aE=a.url,aF=a.headers,aG=a.transformedBody,bp=a.responseFormat||aT;let b=(0,G.g4)(aB);b?.size&&(aC=new Map([...aC||[],...b])),a6.logTargetRequest(aE,aF,aG)}catch(c){if((0,w.uw)(aI,aH,Z,!1,!0),(0,w.E5)({model:aI,provider:aH,connectionId:Z,status:`FAILED ${"AbortError"===c.name?499:u.gx.BAD_GATEWAY}`}).catch(()=>{}),(0,w.ox)((0,z.$R)({provider:aH,model:aI,connectionId:Z,apiKey:_,apiKeyName:ab,latency:{ttft:0,total:Date.now()-aK},tokens:{prompt_tokens:0,completion_tokens:0},request:(0,z.Fo)(a,a0),providerRequest:aB||null,response:{error:c.message||String(c),status:"AbortError"===c.name?499:502,thinking:null},pxpipe:bg,status:"error"})).catch(()=>{}),"AbortError"===c.name)return bj.handleError(c),(0,q.A1)(499,"Request aborted");let b=(0,q.lR)(c,aH,aI,u.gx.BAD_GATEWAY);return console.log(`${j.lm.red}[ERROR] ${b}${j.lm.reset}`),(0,q.A1)(u.gx.BAD_GATEWAY,b,c?.resetsAtMs||void 0)}if(!bh.noAuth&&(aD.status===u.gx.UNAUTHORIZED||aD.status===u.gx.FORBIDDEN))try{let a=await (0,l.qZ)(async()=>{let a=await bh.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",`${aH.toUpperCase()} | refreshed`),Object.assign(c,a),T)try{await T(a)}catch(a){d?.warn?.("TOKEN",`onCredentialsRefreshed failed: ${a.message}`)}try{let a=await bh.execute({model:aI,body:aB,stream:a0,credentials:c,signal:bj.signal,log:d,proxyOptions:bm,accountCount:aJ});a.response.ok&&(aD=a.response,aE=a.url,bp=a.responseFormat||aT)}catch{d?.warn?.("TOKEN",`${aH.toUpperCase()} | retry after refresh failed`)}}else d?.warn?.("TOKEN",`${aH.toUpperCase()} | refresh failed`)}catch(a){d?.warn?.("TOKEN",`${aH.toUpperCase()} | refresh threw: ${a.message}`)}if(!aD.ok){(0,w.uw)(aI,aH,Z,!1,!0);let{statusCode:b,message:c,resetsAtMs:d}=bn||await (0,q.zL)(aD,bh);(0,w.E5)({model:aI,provider:aH,connectionId:Z,status:`FAILED ${b}`}).catch(()=>{}),(0,w.ox)((0,z.$R)({provider:aH,model:aI,connectionId:Z,apiKey:_,apiKeyName:ab,latency:{ttft:0,total:Date.now()-aK},tokens:{prompt_tokens:0,completion_tokens:0},request:(0,z.Fo)(a,a0),providerRequest:aG||aB||null,response:{error:c,status:b,thinking:null},pxpipe:bg,status:"error"})).catch(()=>{});let e=(0,q.lR)(Error(c),aH,aI,b);console.log(`${j.lm.red}[ERROR] ${e}${j.lm.reset}`),a6.logError(Error(c),aG||aB);let{isContentFilter:f}=(0,r.hk)(b,c);return(0,s.b)({class:(0,s.f)({status:b,message:c,isPolicyError:f}),provider:aH,model:aI,message:c,status:b,connectionId:Z}),(0,q.A1)(b,e,d,f,(0,t.d)(aD.headers))}let bq={provider:aH,model:aI,body:a,stream:a$,translatedBody:aB,finalBody:aG,requestStartTime:aK,connectionId:Z,apiKey:_,apiKeyInfo:aa,apiKeyName:ab,clientRawRequest:Y,onRequestSuccess:W,clientModelId:ax,pxpipe:bg},br=a=>(0,w.E5)({model:aI,provider:aH,connectionId:Z,...a}).catch(()=>{}),bs=()=>(0,w.uw)(aI,aH,Z,!1);if(a_&&aY){let a=await (0,B.N)({...bq,stream:a0,providerResponse:aD,sourceFormat:aL,targetFormat:aT,reqLogger:a6,toolNameMap:aC,trackDone:bs,appendLog:br});if(!a.success)return a;let b=await a.response.json(),c=(0,D.y)(b);return bj.handleComplete(),{success:!0,response:c}}if(!aY&&(aZ||bp===h.h.OPENAI_RESPONSES)){let a=await (0,A.I9)({...bq,providerResponse:aD,sourceFormat:aL,targetFormat:bp,toolNameMap:aC,trackDone:bs,appendLog:br});if(a)return bj.handleComplete(),a}if(!a$){let a=await (0,B.N)({...bq,providerResponse:aD,sourceFormat:aL,targetFormat:bp||aT,reqLogger:a6,toolNameMap:aC,trackDone:bs,appendLog:br});if("clinepass"===aH&&!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 bh.execute({model:aI,body:aB,stream:!1,credentials:c,signal:bj.signal,log:d,proxyOptions:bm});b?.response?.ok&&(aD=b.response,a=await (0,B.N)({...bq,providerResponse:aD,sourceFormat:aL,targetFormat:bp||aT,reqLogger:a6,toolNameMap:aC,trackDone:bs,appendLog:br}))}catch(a){d?.warn?.("RETRY",`clinepass retry failed: ${a.message}`)}}return bj.handleComplete(),a}let{onStreamComplete:bt,streamDetailId:bu}=(0,C.$)({...bq});return(0,C.M)({...bq,providerResponse:aD,sourceFormat:aL,targetFormat:bp||aT,userAgent:$,reqLogger:a6,toolNameMap:aC,streamController:bj,onStreamComplete:bt,streamDetailId:bu,pxpipe:bg,credentials:c})}d()}catch(a){d(a)}})},39362:(a,b,c)=>{c.d(b,{d:()=>e});let d=new Set(["retry-after","x-should-retry"]);function e(a){let b={};return"function"!=typeof a?.forEach||a.forEach((a,c)=>{let e=c.toLowerCase();(d.has(e)||e.startsWith("anthropic-ratelimit-"))&&(b[e]=a)}),b}},42681:(a,b,c)=>{c.d(b,{F:()=>h});var d=c(69152),e=c(88761),f=c(79780),g=c(69455);function h(a,b=null){if(!a?.choices?.[0])return a;let c=a.choices[0],i=c.message||{},j=[],k=(0,f.V)(i)||i.provider_specific_fields?.reasoning_content||"";for(let a of(k&&j.push({type:g.R4.THINKING,thinking:k}),"string"==typeof i.content&&i.content.length>0&&j.push({type:g.R4.TEXT,text:i.content}),i.tool_calls||[])){let b=a.function||{};j.push({type:g.R4.TOOL_USE,id:a.id||`toolu_${Date.now()}_${j.length}`,name:b.name||a.name||"",input:function(a){if(!a)return{};if("object"==typeof a)return a;try{return JSON.parse(a)}catch{return{}}}(b.arguments||a.arguments)})}0===j.length&&j.push({type:g.R4.TEXT,text:""});let l=a.usage||{},m={input_tokens:l.prompt_tokens??l.input_tokens??0,output_tokens:l.completion_tokens??l.output_tokens??0};return l.prompt_tokens_details?.cached_tokens&&(m.cache_read_input_tokens=l.prompt_tokens_details.cached_tokens),l.completion_tokens_details?.reasoning_tokens&&(m.output_tokens+=l.completion_tokens_details.reasoning_tokens),{id:`msg_${String(a.id||"").replace(/^chatcmpl-/,"")||Date.now()}`,type:g.Du.MESSAGE,role:g.z7.ASSISTANT,model:b||a.model||g.rP,content:j,stop_reason:(0,e.Q)(c.finish_reason,d.h.CLAUDE),stop_sequence:null,usage:m}}},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,credentials:A=null}=a,B="",C=null,D=w?.tools?(0,k.Qv)(w.tools):null,E=new TextDecoder("utf-8",{fatal:!1}),F=b===n?{...(0,d.Ws)(q),provider:r,toolNameMap:t,model:u,targetFormat:c}:null;F&&(F.sessionId=A?._clientSessionId||null);let G=0,H="",I="",J=null,K=0,L=0,M={},N=/kimi-k2\./i.test(u||""),O=null,P=!1,Q=null,R=!1,S=!1,T=!1,U=!1,V=null,W=()=>{if(V&&(clearTimeout(V),V=null),U)return;U=!0;let a=b===o,d=a?C:F?.usage;!(0,g.Gh)(d)&&G>0?(d=(0,g.OF)(w,G,a?e.h.OPENAI:q),a?C=d:F.usage=d):(0,g.sb)(d,G)&&(d=(0,g.NT)(d,G),a?C=d:F.usage=d),(0,g.Gh)(d)?(0,g.IF)(a?r:F?.provider||c,d,u,v,y):(0,f.E5)({model:u,provider:r,connectionId:v,tokens:null,status:"200 OK"}).catch(()=>{}),x&&x({content:H,thinking:I},d,J)},X=a=>{for(let b of(0,d.Y8)(c,q,null,F)||[]){if(null==b)continue;let c=(0,h.v8)(b,q);s?.appendConvertedChunk?.(c),a.enqueue(m.encode(c)),L++}W()};return new TransformStream({transform(a,f){J||(J=Date.now());let p=E.decode(a,{stream:!0});B+=p,s?.appendProviderChunk?.(p);let r=B.split("\n");for(let a of(B=r.pop()||"",r)){let p=a.trim();if(j.T&&p&&(K++,p.startsWith("event:"))){let a=p.slice(6).trim();M[a]=(M[a]||0)+1}if(b===n&&c===e.h.OPENAI_RESPONSES&&p.startsWith("event:")&&(Q=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(D&&D.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,D);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&&(G+=m.length,H+=m),n&&"string"==typeof n&&(G+=n.length,I+=n),Array.isArray(l?.tool_calls))for(let a of l.tool_calls)"string"==typeof a?.function?.name&&(G+=a.function.name.length),"string"==typeof a?.function?.arguments&&(G+=a.function.arguments.length);let o=(0,g.f5)(a);o&&(C=(0,g._L)(C,o)),d=(0,i.nu)(Q,a);let q=a.choices?.[0]?.finish_reason;if(q&&!(0,g.Gh)(a.usage)){let d=(0,g.OF)(w,G,e.h.OPENAI);a.usage=(0,g.WL)(d,e.h.OPENAI),b=`data: ${JSON.stringify(a)}
20
- `,C=d,c=!0}else if(q&&(0,g.sb)(a.usage,G)){let d=(0,g.NT)(a.usage,G);a.usage=(0,g.WL)(d,e.h.OPENAI),b=`data: ${JSON.stringify(a)}
21
- `,C=d,c=!0}else if(q&&C){let d=(0,g.O9)(C);a.usage=(0,g.WL)(d,e.h.OPENAI),b=`data: ${JSON.stringify(a)}
22
- `,c=!0}else(f||j)&&(b=`data: ${JSON.stringify(a)}
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&&W();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)(Q,r):null;if(t&&(0,i.nu)(x,r)&&(R=!0),r&&r.done&&c!==e.h.OLLAMA){if(c===e.h.OPENAI&&q===e.h.OPENAI_RESPONSES&&F.completionPending&&!F.completedSent&&X(f),v&&!R){let a=(0,i.u9)();s?.appendConvertedChunk?.(a),f.enqueue(m.encode(a)),R=!0,L++}if(v&&!T){let a="data: [DONE]\n\n";s?.appendConvertedChunk?.(a),f.enqueue(m.encode(a))}T=!0,v&&(S=!0);continue}if(r.delta?.text&&(G+=r.delta.text.length,H+=r.delta.text),r.delta?.thinking&&(G+=r.delta.thinking.length,I+=r.delta.thinking),"string"==typeof r.delta?.partial_json&&(G+=r.delta.partial_json.length),r.choices?.[0]?.delta?.content&&(G+=r.choices[0].delta.content.length,H+=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&&(G+=a.function.name.length),"string"==typeof a?.function?.arguments&&(G+=a.function.arguments.length);if(N&&z&&r.choices?.[0]?.delta?.content){let a=r.choices[0].delta.content,{message:b,hasTools:c}=z({role:"assistant",content:a});c&&(O=b.tool_calls,r.choices[0].delta.content=b.content||void 0,r.choices[0].delta.content||delete r.choices[0].delta.content,G-=a.length,H=H.slice(0,H.length-a.length),b.content&&(G+=b.content.length,H+=b.content))}if(r.choices?.[0]?.delta?.reasoning_content&&(G+=r.choices[0].delta.reasoning_content.length,I+=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&&(G+=a.text.length,!0===a.thought?I+=a.text:H+=a.text);let y=(0,g.f5)(r);if(y&&(F.usage=(0,g._L)(F.usage,y)),v&&x){let a=(0,h.v8)({event:x,data:r},q);s?.appendConvertedChunk?.(a),f.enqueue(m.encode(a)),Q=null,L++,R&&W();continue}Q=null;let A=(0,d.Y8)(c,q,r,F);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(O&&b&&q===e.h.OPENAI){l(f,O,F,u,q,s)&&(L++,P=!0);continue}if(!(0,h.c2)(a,q))continue;if(F.finishReason&&b&&!(0,g.Gh)(a.usage)&&G>0){let b=(0,g.OF)(w,G,q);a.usage=(0,g.WL)(b,q),F.usage=b}else if(F.finishReason&&b&&(0,g.sb)(a.usage,G)){let b=(0,g.NT)(a.usage,G);a.usage=(0,g.WL)(b,q),F.usage=b}else if(F.finishReason&&b&&F.usage){let b=(0,g.O9)(F.usage);a.usage=(0,g.WL)(b,q)}let c=(0,h.v8)(a,q);s?.appendConvertedChunk?.(c),f.enqueue(m.encode(c)),L++}c===e.h.OPENAI&&q===e.h.OPENAI_RESPONSES&&F?.completionPending&&!F?.completedSent&&!V&&(V=setTimeout(()=>{if(V=null,!F?.completedSent)try{X(f)}catch{}},3e3))}},flush(a){let k=Object.entries(M).map(([a,b])=>`${a}=${b}`).join(",")||"none";(0,j.s)("SSE",`flush | provider=${r} | model=${u} | recvLines=${K} | emitted=${L} | events=[${k}]`),(0,f.uw)(u,r,v,!1);try{let f=E.decode();if(f&&(B+=f),b===o){if(B){let b=B;B.startsWith("data:")&&!B.startsWith("data: ")&&(b="data: "+B.slice(5)),s?.appendConvertedChunk?.(b),a.enqueue(m.encode(b))}let b="antigravity"===r||"gemini"===r||"vertex"===r;if(!T&&!b){let b="data: [DONE]\n\n";s?.appendConvertedChunk?.(b),a.enqueue(m.encode(b))}W();return}if(B.trim()){let b=(0,h.tV)(B.trim(),c),f=b?.done&&c!==e.h.OLLAMA;if(b&&!f){let f=(0,g.f5)(b);f&&(F.usage=(0,g._L)(F.usage,f));let i=(0,d.Y8)(c,q,b,F);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,F);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(!P&&N&&z){let{hasTools:b,message:c}=z({role:"assistant",content:H});b&&l(a,c.tool_calls,F,u,q,s)&&(L++,P=!0)}let k=c===e.h.OPENAI_RESPONSES&&q===e.h.OPENAI_RESPONSES;if(k&&!R){let b=(0,i.u9)();s?.appendConvertedChunk?.(b),a.enqueue(m.encode(b)),R=!0}if(k&&!S&&!T){let b="data: [DONE]\n\n";s?.appendConvertedChunk?.(b),a.enqueue(m.encode(b)),S=!0,T=!0}W()}catch(a){console.log("Error in flush:",a),W()}}})}function q(a,b,c=null,d=null,e=null,f=null,g=null,h=null,i=null,j=null,k=null,l=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,credentials:l})}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]
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`)}(aE,bc,aK,aL,d),/(?:^|[/_-])kimi(?:[/_-]|$)|(?:^|[/_-])kimi-k2\.(?:6|7)(?:\b|[-_/])/i.test(`${aK}/${aL}`)&&((0,L.sH)(aE,bc),d?.debug?.("TERMINATION",`${aK}/${aL} | ${bc}`)),aw?.mode&&"auto"!==aw.mode){let a=(0,P.getCapabilitiesForModel)(aK,aL);if(a?.reasoning){let b=aw.mode;"off"===b?(aE.reasoning_effort="none","opencode"!==aK&&!1!==a.thinkingCanDisable&&(aE.thinking={type:"disabled"}),d?.debug?.("THINKING",`${aK}/${aL} | disabled`)):"on"===b?("opencode"===aK?aE.reasoning_effort="medium":aE.thinking={type:"enabled",budget_tokens:1e4},d?.debug?.("THINKING","opencode"===aK?`${aK}/${aL} | effort=medium`:`${aK}/${aL} | enabled (10k budget)`)):(aE.reasoning_effort=b,d?.debug?.("THINKING",`${aK}/${aL} | effort=${b}`))}}ao&&(0,M.F)(aE,bc,ap)&&d?.debug?.("CUSTOMPROMPT",`${ap.trim().length}c | ${bc}`);let bj=null;if(aq){let a=await (0,e.H)(aE,{enabled:!0,format:bc,model:aY,minChars:ar,timeoutMs:as,transform:at});bj=a.summary,a.body&&(aE=a.body);let b=(0,e._)(bj);b?d?.info?.("PXPIPE",b):d?.debug?.("PXPIPE",`skipped: ${bj.reason}${bj.detail?` (${bj.detail})`:""}`);try{au?.({provider:aK,model:aL,...bj})}catch{}}bb&&("claude"===ba||aW===h.h.CLAUDE)&&(0,i._W)(aE);let bk=(0,x.SB)(aK);(0,w.uw)(aL,aK,$,!0),(0,w.E5)({model:aL,provider:aK,connectionId:$,status:"PENDING"}).catch(()=>{});let bl=aE.messages?.length||aE.input?.length||aE.contents?.length||aE.request?.contents?.length||0;d?.debug?.("REQUEST",`${aK.toUpperCase()} | ${aL} | ${bl} msgs`);let bm=(0,k.jd)({onDisconnect:a=>{(0,w.uw)(aL,aK,$,!1),Y&&Y(a)},onError:()=>(0,w.uw)(aL,aK,$,!1),log:d,provider:aK,model:aL});ax&&(ax.aborted?bm.abort():ax.addEventListener("abort",()=>bm.abort(),{once:!0}));let bn=(a={})=>({connectionProxyEnabled:a?.connectionProxyEnabled===!0,connectionProxyUrl:a?.connectionProxyUrl||"",connectionNoProxy:a?.connectionNoProxy||"",vercelRelayUrl:a?.vercelRelayUrl||"",strictProxy:a?.strictProxy===!0||"freebuff"===aK,proxyPoolId:a?.proxyPoolId||a?.connectionProxyPoolId||null}),bo=`${aK}::${aL}`,bp=bn(c?.providerSpecificData||{});if("freebuff"===aK&&c?.providerSpecificData?.noFitPool===!0){let a=Error(`Freebuff has no healthy proxy pool for ${aL}; all assigned pools are cooling down after limited-IP errors.`);return a.status=503,a.poolScoped={poolId:null,scope:bo,reason:"no_fit_pool"},(0,w.uw)(aL,aK,$,!1,!0),(0,q.A1)(503,a.message)}if("freebuff"===aK&&!bp.vercelRelayUrl&&!(bp.connectionProxyEnabled&&bp.connectionProxyUrl)){let a=Error(`Freebuff requires a configured proxy pool for ${aL}; direct egress is disabled to prevent limited-IP rate limits.`);return a.status=503,(0,w.uw)(aL,aK,$,!1,!0),(0,q.A1)(503,a.message)}if(bp.vercelRelayUrl){let a=c?.connectionName||c?.connectionId||"unknown",b=bp.proxyPoolId||"none";d?.info?.("PROXY",`${aK.toUpperCase()} | ${aL} | conn=${a} | pool=${b} | vercel-relay=${bp.vercelRelayUrl}`)}else if(bp.connectionProxyEnabled&&bp.connectionProxyUrl){let a=bp.connectionProxyUrl;try{let b=new URL(bp.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",`${aK.toUpperCase()} | ${aL} | conn=${e} | pool=${b} | url=${a}`)}if(bp.connectionProxyEnabled&&bp.connectionNoProxy){let a=c?.connectionName||c?.connectionId||"unknown";d?.debug?.("PROXY",`${aK.toUpperCase()} | ${aL} | conn=${a} | no_proxy=${bp.connectionNoProxy}`)}let bq=null,br=async(a=0)=>{let b;try{b=await bk.execute({model:aL,body:aE,stream:a3,credentials:c,signal:bm.signal,log:d,proxyOptions:bp,accountCount:aM})}catch(b){if(b?.poolScoped&&"function"==typeof aB&&a<2){let e=b.poolScoped.poolId||bp.proxyPoolId;await (0,T.on)(e,b.poolScoped.scope||bo,b.resetsAtMs,b.poolScoped.reason||"pool-scoped");try{let b=await aB(c,[e]);if(b?.proxyPoolId)return c.providerSpecificData={...c.providerSpecificData||{},...b},bp=bn(c.providerSpecificData),br(a+1)}catch(a){d?.warn?.("PROXY",`${aK.toUpperCase()} | pool re-resolve failed: ${a.message}`)}}throw b}if(!b.response.ok){let e=await (0,q.zL)(b.response,bk);if(e.poolScoped&&"function"==typeof aB&&a<2){let b=e.poolScoped.poolId||bp.proxyPoolId;await (0,T.on)(b,e.poolScoped.scope||bo,e.resetsAtMs,e.poolScoped.reason||"pool-scoped");try{let d=await aB(c,[b]);if(d?.proxyPoolId)return c.providerSpecificData={...c.providerSpecificData||{},...d},bp=bn(c.providerSpecificData),br(a+1)}catch(a){d?.warn?.("PROXY",`${aK.toUpperCase()} | pool re-resolve failed: ${a.message}`)}}bq=e}return b},bs=aW;try{let a=await br();aG=a.response,aH=a.url,aI=a.headers,aJ=a.transformedBody,bs=a.responseFormat||aW;let b=(0,G.g4)(aE);b?.size&&(aF=new Map([...aF||[],...b])),a9.logTargetRequest(aH,aI,aJ)}catch(c){if((0,w.uw)(aL,aK,$,!1,!0),(0,w.E5)({model:aL,provider:aK,connectionId:$,status:`FAILED ${"AbortError"===c.name?499:u.gx.BAD_GATEWAY}`}).catch(()=>{}),(0,w.ox)((0,z.$R)({provider:aK,model:aL,connectionId:$,apiKey:aa,apiKeyName:ac,latency:{ttft:0,total:Date.now()-aN},tokens:{prompt_tokens:0,completion_tokens:0},request:(0,z.Fo)(a,a3),providerRequest:aE||null,response:{error:c.message||String(c),status:"AbortError"===c.name?499:502,thinking:null},pxpipe:bj,status:"error"})).catch(()=>{}),"AbortError"===c.name)return bm.handleError(c),(0,q.A1)(499,"Request aborted");let b=(0,q.lR)(c,aK,aL,u.gx.BAD_GATEWAY);return console.log(`${j.lm.red}[ERROR] ${b}${j.lm.reset}`),(0,q.A1)(u.gx.BAD_GATEWAY,b,c?.resetsAtMs||void 0)}if(!bk.noAuth&&(aG.status===u.gx.UNAUTHORIZED||aG.status===u.gx.FORBIDDEN))try{let a=await (0,l.qZ)(async()=>{let a=await bk.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",`${aK.toUpperCase()} | refreshed`),Object.assign(c,a),U)try{await U(a)}catch(a){d?.warn?.("TOKEN",`onCredentialsRefreshed failed: ${a.message}`)}try{let a=await bk.execute({model:aL,body:aE,stream:a3,credentials:c,signal:bm.signal,log:d,proxyOptions:bp,accountCount:aM});a.response.ok&&(aG=a.response,aH=a.url,bs=a.responseFormat||aW)}catch{d?.warn?.("TOKEN",`${aK.toUpperCase()} | retry after refresh failed`)}}else d?.warn?.("TOKEN",`${aK.toUpperCase()} | refresh failed`)}catch(a){d?.warn?.("TOKEN",`${aK.toUpperCase()} | refresh threw: ${a.message}`)}if(!aG.ok){(0,w.uw)(aL,aK,$,!1,!0);let{statusCode:b,message:c,resetsAtMs:d}=bq||await (0,q.zL)(aG,bk);(0,w.E5)({model:aL,provider:aK,connectionId:$,status:`FAILED ${b}`}).catch(()=>{}),(0,w.ox)((0,z.$R)({provider:aK,model:aL,connectionId:$,apiKey:aa,apiKeyName:ac,latency:{ttft:0,total:Date.now()-aN},tokens:{prompt_tokens:0,completion_tokens:0},request:(0,z.Fo)(a,a3),providerRequest:aJ||aE||null,response:{error:c,status:b,thinking:null},pxpipe:bj,status:"error"})).catch(()=>{});let e=(0,q.lR)(Error(c),aK,aL,b);console.log(`${j.lm.red}[ERROR] ${e}${j.lm.reset}`),a9.logError(Error(c),aJ||aE);let{isContentFilter:f}=(0,r.hk)(b,c);return(0,s.b)({class:(0,s.f)({status:b,message:c,isPolicyError:f}),provider:aK,model:aL,message:c,status:b,connectionId:$}),(0,q.A1)(b,e,d,f,(0,t.d)(aG.headers))}let bt={provider:aK,model:aL,body:a,stream:a1,translatedBody:aE,finalBody:aJ,requestStartTime:aN,connectionId:$,apiKey:aa,apiKeyInfo:ab,apiKeyName:ac,clientRawRequest:Z,onRequestSuccess:X,clientModelId:aA,pxpipe:bj},bu=a=>(0,w.E5)({model:aL,provider:aK,connectionId:$,...a}).catch(()=>{}),bv=()=>(0,w.uw)(aL,aK,$,!1);if(a2&&a_){let a=await (0,B.N)({...bt,stream:a3,providerResponse:aG,sourceFormat:aO,targetFormat:aW,reqLogger:a9,toolNameMap:aF,trackDone:bv,appendLog:bu});if(!a.success)return a;let b=await a.response.json(),c=(0,D.y)(b);return bm.handleComplete(),{success:!0,response:c}}if(!a_&&(a0||bs===h.h.OPENAI_RESPONSES)){let a=await (0,A.I9)({...bt,providerResponse:aG,sourceFormat:aO,targetFormat:bs,toolNameMap:aF,trackDone:bv,appendLog:bu});if(a)return bm.handleComplete(),a}if(!a1){let a=await (0,B.N)({...bt,providerResponse:aG,sourceFormat:aO,targetFormat:bs||aW,reqLogger:a9,toolNameMap:aF,trackDone:bv,appendLog:bu});if("clinepass"===aK&&!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 bk.execute({model:aL,body:aE,stream:!1,credentials:c,signal:bm.signal,log:d,proxyOptions:bp});b?.response?.ok&&(aG=b.response,a=await (0,B.N)({...bt,providerResponse:aG,sourceFormat:aO,targetFormat:bs||aW,reqLogger:a9,toolNameMap:aF,trackDone:bv,appendLog:bu}))}catch(a){d?.warn?.("RETRY",`clinepass retry failed: ${a.message}`)}}return bm.handleComplete(),a}let{onStreamComplete:bw,streamDetailId:bx}=(0,C.$)({...bt});return(0,C.M)({...bt,providerResponse:aG,sourceFormat:aO,targetFormat:bs||aW,userAgent:_,reqLogger:a9,toolNameMap:aF,streamController:bm,onStreamComplete:bw,streamDetailId:bx,pxpipe:bj,credentials:c})}d()}catch(a){d(a)}})},39362:(a,b,c)=>{c.d(b,{d:()=>e});let d=new Set(["retry-after","x-should-retry"]);function e(a){let b={};return"function"!=typeof a?.forEach||a.forEach((a,c)=>{let e=c.toLowerCase();(d.has(e)||e.startsWith("anthropic-ratelimit-"))&&(b[e]=a)}),b}},42681:(a,b,c)=>{c.d(b,{F:()=>h});var d=c(69152),e=c(88761),f=c(79780),g=c(69455);function h(a,b=null){if(!a?.choices?.[0])return a;let c=a.choices[0],i=c.message||{},j=[],k=(0,f.V)(i)||i.provider_specific_fields?.reasoning_content||"";for(let a of(k&&j.push({type:g.R4.THINKING,thinking:k}),"string"==typeof i.content&&i.content.length>0&&j.push({type:g.R4.TEXT,text:i.content}),i.tool_calls||[])){let b=a.function||{};j.push({type:g.R4.TOOL_USE,id:a.id||`toolu_${Date.now()}_${j.length}`,name:b.name||a.name||"",input:function(a){if(!a)return{};if("object"==typeof a)return a;try{return JSON.parse(a)}catch{return{}}}(b.arguments||a.arguments)})}0===j.length&&j.push({type:g.R4.TEXT,text:""});let l=a.usage||{},m={input_tokens:l.prompt_tokens??l.input_tokens??0,output_tokens:l.completion_tokens??l.output_tokens??0};return l.prompt_tokens_details?.cached_tokens&&(m.cache_read_input_tokens=l.prompt_tokens_details.cached_tokens),l.completion_tokens_details?.reasoning_tokens&&(m.output_tokens+=l.completion_tokens_details.reasoning_tokens),{id:`msg_${String(a.id||"").replace(/^chatcmpl-/,"")||Date.now()}`,type:g.Du.MESSAGE,role:g.z7.ASSISTANT,model:b||a.model||g.rP,content:j,stop_reason:(0,e.Q)(c.finish_reason,d.h.CLAUDE),stop_sequence:null,usage:m}}},45479:(a,b,c)=>{c.d(b,{i5:()=>r,l2:()=>s,lm:()=>g.lm,v8:()=>h.v8});var d=c(2568),e=c(69152),f=c(23648),g=c(73329),h=c(30794),i=c(75580),j=c(46646),k=c(25440),l=c(15204);function m(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(n.encode(k)),!0}c(2933);let n=new TextEncoder,o="translate",p="passthrough";function q(a={}){let{mode:b=o,targetFormat:c,sourceFormat:r,provider:s=null,reqLogger:t=null,toolNameMap:u=null,model:v=null,connectionId:w=null,body:x=null,onStreamComplete:y=null,apiKey:z=null,normalizeKimiToolCalls:A=null,credentials:B=null}=a,C="",D=null,E=x?.tools?(0,l.Qv)(x.tools):null,F=new Map,G=new TextDecoder("utf-8",{fatal:!1}),H=b===o?{...(0,d.Ws)(r),provider:s,toolNameMap:u,model:v,targetFormat:c}:null;H&&(H.sessionId=B?._clientSessionId||null);let I=0,J="",K="",L=null,M=0,N=0,O={},P=/kimi-k2\./i.test(v||""),Q=null,R=!1,S=null,T=!1,U=!1,V=!1,W=!1,X=null,Y=()=>{if(X&&(clearTimeout(X),X=null),W)return;W=!0;let a=b===p,d=a?D:H?.usage;!(0,g.Gh)(d)&&I>0?(d=(0,g.OF)(x,I,a?e.h.OPENAI:r),a?D=d:H.usage=d):(0,g.sb)(d,I)&&(d=(0,g.NT)(d,I),a?D=d:H.usage=d),(0,g.Gh)(d)?(0,g.IF)(a?s:H?.provider||c,d,v,w,z):(0,f.E5)({model:v,provider:s,connectionId:w,tokens:null,status:"200 OK"}).catch(()=>{}),y&&y({content:J,thinking:K},d,L)},Z=a=>{for(let b of(0,d.Y8)(c,r,null,H)||[]){if(null==b)continue;let c=(0,h.v8)(b,r);t?.appendConvertedChunk?.(c),a.enqueue(n.encode(c)),N++}Y()};return new TransformStream({transform(a,f){L||(L=Date.now());let q=G.decode(a,{stream:!0});C+=q,t?.appendProviderChunk?.(q);let s=C.split("\n");for(let a of(C=s.pop()||"",s)){let q=a.trim();if(k.T&&q&&(M++,q.startsWith("event:"))){let a=q.slice(6).trim();O[a]=(O[a]||0)+1}if(b===o&&c===e.h.OPENAI_RESPONSES&&q.startsWith("event:")&&(S=q.slice(6).trim()),b===p){let b,c=!1,d=!1;if("data: [DONE]"===q||"data:[DONE]"===q)continue;if(q.startsWith("data:"))try{let a=JSON.parse(q.slice(5).trim()),f=(0,h.A4)(a),k=(0,h.RW)(a,F),m=!1;if(u?.size){let b=(0,i.HR)(a,u);b!==a&&(a=b,m=!0)}let n=!1;if(void 0!==a.choices&&(a.object||(a.object="chat.completion.chunk",n=!0),a.created||(a.created=Math.floor(Date.now()/1e3),n=!0)),void 0!==a.prompt_filter_results&&(delete a.prompt_filter_results,n=!0),a?.choices)for(let b of a.choices)void 0!==b.content_filter_results&&(delete b.content_filter_results,n=!0);if(E&&E.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,l.vh)(b.function.name,E);a!==b.function.name&&(b.function.name=a,n=!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,n=!0),b.delta?.function_call){let a=b.delta.function_call;a.name&&""!==a.name||a.arguments&&""!==a.arguments||(delete b.delta.function_call,n=!0)}}if(!(0,h.c2)(a,e.h.OPENAI))continue;let o=a.choices?.[0]?.delta,p=o?.content,r=o?.reasoning_content;if(p&&"string"==typeof p&&(I+=p.length,J+=p),r&&"string"==typeof r&&(I+=r.length,K+=r),Array.isArray(o?.tool_calls))for(let a of o.tool_calls)"string"==typeof a?.function?.name&&(I+=a.function.name.length),"string"==typeof a?.function?.arguments&&(I+=a.function.arguments.length);let s=(0,g.f5)(a);s&&(D=(0,g._L)(D,s)),d=(0,j.nu)(S,a);let t=a.choices?.[0]?.finish_reason;if(t&&!(0,g.Gh)(a.usage)){let d=(0,g.OF)(x,I,e.h.OPENAI);a.usage=(0,g.WL)(d,e.h.OPENAI),b=`data: ${JSON.stringify(a)}
20
+ `,D=d,c=!0}else if(t&&(0,g.sb)(a.usage,I)){let d=(0,g.NT)(a.usage,I);a.usage=(0,g.WL)(d,e.h.OPENAI),b=`data: ${JSON.stringify(a)}
21
+ `,D=d,c=!0}else if(t&&D){let d=(0,g.O9)(D);a.usage=(0,g.WL)(d,e.h.OPENAI),b=`data: ${JSON.stringify(a)}
22
+ `,c=!0}else(f||n||k||m)&&(b=`data: ${JSON.stringify(a)}
23
+ `,c=!0)}catch{continue}c||(b=a.startsWith("data:")&&!a.startsWith("data: ")?"data: "+a.slice(5)+"\n":a+"\n"),t?.appendConvertedChunk?.(b),f.enqueue(n.encode(b)),d&&Y();continue}if(!q)continue;let s=(0,h.tV)(q,c);if(!s)continue;let w=c===e.h.OPENAI_RESPONSES,y=w&&r===e.h.OPENAI_RESPONSES,z=w?(0,j.yx)(S,s):null;if(w&&(0,j.nu)(z,s)&&(T=!0),s&&s.done&&c!==e.h.OLLAMA){if(c===e.h.OPENAI&&r===e.h.OPENAI_RESPONSES&&H.completionPending&&!H.completedSent&&Z(f),y&&!T){let a=(0,j.u9)();t?.appendConvertedChunk?.(a),f.enqueue(n.encode(a)),T=!0,N++}if(y&&!V){let a="data: [DONE]\n\n";t?.appendConvertedChunk?.(a),f.enqueue(n.encode(a))}V=!0,y&&(U=!0);continue}if(s.delta?.text&&(I+=s.delta.text.length,J+=s.delta.text),s.delta?.thinking&&(I+=s.delta.thinking.length,K+=s.delta.thinking),"string"==typeof s.delta?.partial_json&&(I+=s.delta.partial_json.length),s.choices?.[0]?.delta?.content&&(I+=s.choices[0].delta.content.length,J+=s.choices[0].delta.content),Array.isArray(s.choices?.[0]?.delta?.tool_calls))for(let a of s.choices[0].delta.tool_calls)"string"==typeof a?.function?.name&&(I+=a.function.name.length),"string"==typeof a?.function?.arguments&&(I+=a.function.arguments.length);if(P&&A&&s.choices?.[0]?.delta?.content){let a=s.choices[0].delta.content,{message:b,hasTools:c}=A({role:"assistant",content:a});c&&(Q=b.tool_calls,s.choices[0].delta.content=b.content||void 0,s.choices[0].delta.content||delete s.choices[0].delta.content,I-=a.length,J=J.slice(0,J.length-a.length),b.content&&(I+=b.content.length,J+=b.content))}if(s.choices?.[0]?.delta?.reasoning_content&&(I+=s.choices[0].delta.reasoning_content.length,K+=s.choices[0].delta.reasoning_content),s.candidates?.[0]?.content?.parts)for(let a of s.candidates[0].content.parts)a.text&&"string"==typeof a.text&&(I+=a.text.length,!0===a.thought?K+=a.text:J+=a.text);let B=(0,g.f5)(s);if(B&&(H.usage=(0,g._L)(H.usage,B)),y&&z){let a=(0,h.v8)({event:z,data:s},r);t?.appendConvertedChunk?.(a),f.enqueue(n.encode(a)),S=null,N++,T&&Y();continue}S=null;let C=(0,d.Y8)(c,r,s,H);if(C?._openaiIntermediate)for(let a of C._openaiIntermediate){let b=(0,h.v8)(a,e.h.OPENAI);t?.appendOpenAIChunk?.(b)}if(C?.length>0)for(let a of C){if(null==a)continue;let b="message_delta"===a.type||a.choices?.[0]?.finish_reason;if(Q&&b&&r===e.h.OPENAI){m(f,Q,H,v,r,t)&&(N++,R=!0);continue}if(!(0,h.c2)(a,r))continue;if(H.finishReason&&b&&!(0,g.Gh)(a.usage)&&I>0){let b=(0,g.OF)(x,I,r);a.usage=(0,g.WL)(b,r),H.usage=b}else if(H.finishReason&&b&&(0,g.sb)(a.usage,I)){let b=(0,g.NT)(a.usage,I);a.usage=(0,g.WL)(b,r),H.usage=b}else if(H.finishReason&&b&&H.usage){let b=(0,g.O9)(H.usage);a.usage=(0,g.WL)(b,r)}let c=(0,h.v8)(a,r);t?.appendConvertedChunk?.(c),f.enqueue(n.encode(c)),N++}c===e.h.OPENAI&&r===e.h.OPENAI_RESPONSES&&H?.completionPending&&!H?.completedSent&&!X&&(X=setTimeout(()=>{if(X=null,!H?.completedSent)try{Z(f)}catch{}},3e3))}},flush(a){let i=Object.entries(O).map(([a,b])=>`${a}=${b}`).join(",")||"none";(0,k.s)("SSE",`flush | provider=${s} | model=${v} | recvLines=${M} | emitted=${N} | events=[${i}]`),(0,f.uw)(v,s,w,!1);try{let f=G.decode();if(f&&(C+=f),b===p){if(C){let b=C;C.startsWith("data:")&&!C.startsWith("data: ")&&(b="data: "+C.slice(5)),t?.appendConvertedChunk?.(b),a.enqueue(n.encode(b))}let b="antigravity"===s||"gemini"===s||"vertex"===s;if(!V&&!b){let b="data: [DONE]\n\n";t?.appendConvertedChunk?.(b),a.enqueue(n.encode(b))}Y();return}if(C.trim()){let b=(0,h.tV)(C.trim(),c),f=b?.done&&c!==e.h.OLLAMA;if(b&&!f){let f=(0,g.f5)(b);f&&(H.usage=(0,g._L)(H.usage,f));let i=(0,d.Y8)(c,r,b,H);if(i?._openaiIntermediate)for(let a of i._openaiIntermediate){let b=(0,h.v8)(a,e.h.OPENAI);t?.appendOpenAIChunk?.(b)}if(i?.length>0)for(let b of i){if(null==b)continue;let c=(0,h.v8)(b,r);t?.appendConvertedChunk?.(c),a.enqueue(n.encode(c))}}}let i=(0,d.Y8)(c,r,null,H);if(i?._openaiIntermediate)for(let a of i._openaiIntermediate){let b=(0,h.v8)(a,e.h.OPENAI);t?.appendOpenAIChunk?.(b)}if(i?.length>0)for(let b of i){if(null==b)continue;let c=(0,h.v8)(b,r);t?.appendConvertedChunk?.(c),a.enqueue(n.encode(c))}if(!R&&P&&A){let{hasTools:b,message:c}=A({role:"assistant",content:J});b&&m(a,c.tool_calls,H,v,r,t)&&(N++,R=!0)}let k=c===e.h.OPENAI_RESPONSES&&r===e.h.OPENAI_RESPONSES;if(k&&!T){let b=(0,j.u9)();t?.appendConvertedChunk?.(b),a.enqueue(n.encode(b)),T=!0}if(k&&!U&&!V){let b="data: [DONE]\n\n";t?.appendConvertedChunk?.(b),a.enqueue(n.encode(b)),U=!0,V=!0}Y()}catch(a){console.log("Error in flush:",a),Y()}}})}function r(a,b,c=null,d=null,e=null,f=null,g=null,h=null,i=null,j=null,k=null,l=null){return q({mode:o,targetFormat:a,sourceFormat:b,provider:c,reqLogger:d,toolNameMap:e,model:f,connectionId:g,body:h,onStreamComplete:i,apiKey:j,normalizeKimiToolCalls:k,credentials:l})}function s(a=null,b=null,c=null,d=null,e=null,f=null,g=null,h=null,i=null){return q({mode:p,provider:a,reqLogger:b,toolNameMap:i,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]
24
24
 
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:()=>t,Fe:()=>s});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(42681),n=c(97781),o=c(75580),p=c(23648);let q=a=>j.xq[a]?.format===i.h.OPENAI_RESPONSES;function r(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 s(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 t({providerResponse:a,sourceFormat:b,provider:c,model:d,body:e,stream:j,translatedBody:u,finalBody:v,requestStartTime:w,connectionId:x,apiKey:y,apiKeyName:z,clientRawRequest:A,onRequestSuccess:B,trackDone:C,appendLog:D,comboName:E,toolNameMap:F}){let G=a.headers.get("content-type")||"";if(!(G.includes("text/event-stream")||""===G&&q(c)))return null;C();let H={provider:c,model:d,connectionId:x,apiKey:y,apiKeyName:z,request:(0,k.Fo)(e,j),providerRequest:v||u||null};if(q(c)||b===i.h.OPENAI_RESPONSES)try{let e,g=await f(a.body);B&&await B();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);D({tokens:j,status:"200 OK"}),(0,k.qr)({provider:c,model:d,tokens:j,connectionId:x,apiKey:y,endpoint:A?.endpoint,comboName:E});let{msgItem:l,textContent:q}=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=r(b[a]);if(c.length>0)return{msgItem:b[a],textContent:c}}let c=b[b.length-1];return{msgItem:c,textContent:r(c)}}(g.output),s=Date.now()-w;if((0,p.ox)((0,k.$R)({...H,latency:{ttft:s,total:s},tokens:j,response:{content:q,thinking:null,finish_reason:g.status||"unknown"},status:"success"},{endpoint:A?.endpoint||null})).catch(()=>{}),b===i.h.OPENAI_RESPONSES)return{success:!0,response:new Response(JSON.stringify((0,o.HR)(g,F)),{headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}})};let t=j.prompt_tokens,u=j.completion_tokens,v=(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||{})}})),z=v.length>0;if(b===i.h.ANTIGRAVITY||b===i.h.GEMINI||b===i.h.GEMINI_CLI)e={response:{candidates:[{content:{role:"model",parts:[{text:q||""}]},finishReason:"STOP",index:0}],usageMetadata:{promptTokenCount:t,candidatesTokenCount:u,totalTokenCount:t+u},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:q||(z?null:"")},finish_reason:z?"tool_calls":"stop"}],usage:{prompt_tokens:t,completion_tokens:u}};z&&(a.choices[0].message.tool_calls=v);let b=(0,m.F)(a,d);e=(0,n.kR)(b,F)}else{let a={role:"assistant",content:q||(z?null:"")};z&&(a.tool_calls=v);let b="completed"===g.status||"done"===g.status,c=z?"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:t,completion_tokens:u,total_tokens:t+u}}}return{success:!0,response:new Response(JSON.stringify((0,o.HR)(e,F)),{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=s(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){let a=Number(j.error.status),b=Number.isInteger(a)&&a>=400&&a<=599?a:h.gx.BAD_GATEWAY;return(0,g.A1)(b,j.error.message||"Upstream SSE stream failed")}B&&await B();let q=j.usage||{};D({tokens:q,status:"200 OK"}),(0,k.qr)({provider:c,model:d,tokens:q,connectionId:x,apiKey:y,endpoint:A?.endpoint});let r=Date.now()-w;if((0,p.ox)((0,k.$R)({...H,latency:{ttft:r,total:r},tokens:q,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:A?.endpoint||null})).catch(()=>{}),j?.choices)for(let a of j.choices)a?.message?.reasoning_content&&a.message.content&&delete a.message.reasoning_content;let t=j;if(b===i.h.CLAUDE){let a=(0,m.F)(j,d);t=(0,n.kR)(a,F)}return{success:!0,response:new Response(JSON.stringify((0,o.HR)(t,F)),{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,{$:()=>t,M:()=>s});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(30794),m=c(92913),n=c(23648),o=c(2933),p=c(39362);async function q(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 r={[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 s({providerResponse:a,provider:b,model:c,sourceFormat:t,targetFormat:u,userAgent:v,body:w,stream:x,translatedBody:y,finalBody:z,requestStartTime:A,connectionId:B,apiKey:C,apiKeyInfo:D,apiKeyName:E,clientModelId:F,clientRawRequest:G,onRequestSuccess:H,reqLogger:I,toolNameMap:J,streamController:K,onStreamComplete:L,streamDetailId:M,pxpipe:N,credentials:O}){let P;H&&Promise.resolve().then(H).catch(a=>{console.error("[ChatCore] onRequestSuccess failed:",a?.message||a)});let Q=(a.headers.get("content-type")||"").toLowerCase();!Q||Q.includes("text/event-stream")||Q.includes("application/json")||console.warn("[STREAM] "+b+" | "+c+" | unexpected Content-Type: "+Q);try{P=await q(a.body)}catch(a){return{success:!1,status:502,errorCode:"STREAM_EARLY_EOF",error:a?.message||String(a)}}if(P.empty)return{success:!1,status:502,errorCode:"STREAM_EARLY_EOF",error:"Upstream closed stream before any useful content"};let R=function({provider:a,sourceFormat:b,targetFormat:c,userAgent:h,reqLogger:j,toolNameMap:k,model:l,connectionId:m,body:n,onStreamComplete:o,apiKey:p,credentials:q}){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=r[b]||d.h.OPENAI;return(0,f.i5)(d.h.OPENAI_RESPONSES,c,a,j,k,l,m,n,o,p,u?g.vH:null,q)}return(0,e.nZ)(c,b)?(0,f.i5)(c,b,a,j,k,l,m,n,o,p,u?g.vH:null,q):(0,f.l2)(a,j,l,m,n,o,p,u?g.vH:null)}({provider:b,sourceFormat:t,targetFormat:u,userAgent:v,reqLogger:I,toolNameMap:J,model:c,connectionId:B,body:w,onStreamComplete:L,apiKey:C,credentials:O}),S=t===d.h.OPENAI_RESPONSES&&u===d.h.OPENAI_RESPONSES?k.Hr:a=>(0,l.mb)(j.gx.GATEWAY_TIMEOUT,a,t),T=i.xq[b]?.stallTimeoutMs||j.xM,U=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(()=>{})}})}(P),{status:a.status,statusText:a.statusText,headers:a.headers}),V=(0,h.Jb)(U,R,K,S,T);return(0,n.ox)((0,m.$R)({provider:b,model:c,connectionId:B,apiKey:C,apiKeyName:E,latency:{ttft:0,total:Date.now()-A},tokens:{prompt_tokens:0,completion_tokens:0},request:(0,m.Fo)(w,x),providerRequest:z||y||null,providerResponse:"[Streaming - raw response not captured]",response:{content:"[Streaming in progress...]",thinking:null,type:"streaming"},pxpipe:N,status:"success"},{id:M})).catch(a=>{console.error("[RequestDetail] Failed to save streaming request:",a.message)}),{success:!0,response:new Response(V,{headers:{...o.RK,...(0,p.d)(a.headers)}})}}function t({provider:a,model:b,connectionId:c,apiKey:d,apiKeyInfo:e,apiKeyName:f,requestStartTime:g,body:h,stream:i,finalBody:j,translatedBody:k,clientRawRequest:l,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,n.ox)((0,m.$R)({provider:a,model:b,connectionId:c,apiKey:d,apiKeyName:f,latency:t,tokens:r||{prompt_tokens:0,completion_tokens:0},request:(0,m.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,m.qr)({provider:a,model:b,tokens:r,connectionId:c,apiKey:d,apiKeyInfo:e,endpoint:l?.endpoint,label:"STREAM USAGE"})},streamDetailId:p}}},61210:(a,b,c)=>{c.d(b,{F:()=>h});var d=c(50058);let e=[{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 f(a){return a?.name||a?.function?.name||""}function g(a,b){return"string"==typeof b?a===b:b instanceof RegExp&&b.test(a)}function h(a,b={}){if(!Array.isArray(a)||0===a.length)return{tools:a,stripped:[]};let c=a.map(f),i=new Set,j=new Set;if("claude"===b.clientTool){for(let a of e)if(c.some(b=>a.triggers.some(a=>g(b,a))))for(let b of c)a.strip.some(a=>g(b,a))&&i.add(b)}if((0,d.wR)(b.model)){let b=new Set;for(let c=0;c<a.length;c++){let d=f(a[c]);d&&(b.has(d)?j.add(c):b.add(d))}}return 0===i.size&&0===j.size?{tools:a,stripped:[]}:{tools:a.filter((a,b)=>!j.has(b)&&!i.has(f(a))),stripped:Array.from(j).map(b=>f(a[b])).concat(Array.from(i))}}},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){return!!a?.tokens_saved&&!(a.tokens_saved<=0)&&["bodyBytes","messageBytes"].every(a=>{let d=b?.before?.[a]||0,e=b?.after?.[a]||0;return d>0&&e>0&&e>=d*(1-c)})}},72152:(a,b,c)=>{c.d(b,{BI:()=>G,fT:()=>J});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:()=>t,Fe:()=>s});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(42681),n=c(97781),o=c(75580),p=c(23648);let q=a=>j.xq[a]?.format===i.h.OPENAI_RESPONSES;function r(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 s(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 t({providerResponse:a,sourceFormat:b,provider:c,model:d,body:e,stream:j,translatedBody:u,finalBody:v,requestStartTime:w,connectionId:x,apiKey:y,apiKeyName:z,clientRawRequest:A,onRequestSuccess:B,trackDone:C,appendLog:D,comboName:E,toolNameMap:F}){let G=a.headers.get("content-type")||"";if(!(G.includes("text/event-stream")||""===G&&q(c)))return null;C();let H={provider:c,model:d,connectionId:x,apiKey:y,apiKeyName:z,request:(0,k.Fo)(e,j),providerRequest:v||u||null};if(q(c)||b===i.h.OPENAI_RESPONSES)try{let e,g=await f(a.body);B&&await B();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);D({tokens:j,status:"200 OK"}),(0,k.qr)({provider:c,model:d,tokens:j,connectionId:x,apiKey:y,endpoint:A?.endpoint,comboName:E});let{msgItem:l,textContent:q}=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=r(b[a]);if(c.length>0)return{msgItem:b[a],textContent:c}}let c=b[b.length-1];return{msgItem:c,textContent:r(c)}}(g.output),s=Date.now()-w;if((0,p.ox)((0,k.$R)({...H,latency:{ttft:s,total:s},tokens:j,response:{content:q,thinking:null,finish_reason:g.status||"unknown"},status:"success"},{endpoint:A?.endpoint||null})).catch(()=>{}),b===i.h.OPENAI_RESPONSES)return{success:!0,response:new Response(JSON.stringify((0,o.HR)(g,F)),{headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}})};let t=j.prompt_tokens,u=j.completion_tokens,v=(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||{})}})),z=v.length>0;if(b===i.h.ANTIGRAVITY||b===i.h.GEMINI||b===i.h.GEMINI_CLI)e={response:{candidates:[{content:{role:"model",parts:[{text:q||""}]},finishReason:"STOP",index:0}],usageMetadata:{promptTokenCount:t,candidatesTokenCount:u,totalTokenCount:t+u},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:q||(z?null:"")},finish_reason:z?"tool_calls":"stop"}],usage:{prompt_tokens:t,completion_tokens:u}};z&&(a.choices[0].message.tool_calls=v);let b=(0,m.F)(a,d);e=(0,n.kR)(b,F)}else{let a={role:"assistant",content:q||(z?null:"")};z&&(a.tool_calls=v);let b="completed"===g.status||"done"===g.status,c=z?"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:t,completion_tokens:u,total_tokens:t+u}}}return{success:!0,response:new Response(JSON.stringify((0,o.HR)(e,F)),{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=s(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){let a=Number(j.error.status),b=Number.isInteger(a)&&a>=400&&a<=599?a:h.gx.BAD_GATEWAY;return(0,g.A1)(b,j.error.message||"Upstream SSE stream failed")}B&&await B();let q=j.usage||{};D({tokens:q,status:"200 OK"}),(0,k.qr)({provider:c,model:d,tokens:q,connectionId:x,apiKey:y,endpoint:A?.endpoint});let r=Date.now()-w;if((0,p.ox)((0,k.$R)({...H,latency:{ttft:r,total:r},tokens:q,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:A?.endpoint||null})).catch(()=>{}),j?.choices)for(let a of j.choices)a?.message?.reasoning_content&&a.message.content&&delete a.message.reasoning_content;let t=j;if(b===i.h.CLAUDE){let a=(0,m.F)(j,d);t=(0,n.kR)(a,F)}return{success:!0,response:new Response(JSON.stringify((0,o.HR)(t,F)),{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,{$:()=>t,M:()=>s});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(30794),m=c(92913),n=c(23648),o=c(2933),p=c(39362);async function q(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 r={[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 s({providerResponse:a,provider:b,model:c,sourceFormat:t,targetFormat:u,userAgent:v,body:w,stream:x,translatedBody:y,finalBody:z,requestStartTime:A,connectionId:B,apiKey:C,apiKeyInfo:D,apiKeyName:E,clientModelId:F,clientRawRequest:G,onRequestSuccess:H,reqLogger:I,toolNameMap:J,streamController:K,onStreamComplete:L,streamDetailId:M,pxpipe:N,credentials:O}){let P;H&&Promise.resolve().then(H).catch(a=>{console.error("[ChatCore] onRequestSuccess failed:",a?.message||a)});let Q=(a.headers.get("content-type")||"").toLowerCase();!Q||Q.includes("text/event-stream")||Q.includes("application/json")||console.warn("[STREAM] "+b+" | "+c+" | unexpected Content-Type: "+Q);try{P=await q(a.body)}catch(a){return{success:!1,status:502,errorCode:"STREAM_EARLY_EOF",error:a?.message||String(a)}}if(P.empty)return{success:!1,status:502,errorCode:"STREAM_EARLY_EOF",error:"Upstream closed stream before any useful content"};let R=function({provider:a,sourceFormat:b,targetFormat:c,userAgent:h,reqLogger:j,toolNameMap:k,model:l,connectionId:m,body:n,onStreamComplete:o,apiKey:p,credentials:q}){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=r[b]||d.h.OPENAI;return(0,f.i5)(d.h.OPENAI_RESPONSES,c,a,j,k,l,m,n,o,p,u?g.vH:null,q)}return(0,e.nZ)(c,b)?(0,f.i5)(c,b,a,j,k,l,m,n,o,p,u?g.vH:null,q):(0,f.l2)(a,j,l,m,n,o,p,u?g.vH:null,k)}({provider:b,sourceFormat:t,targetFormat:u,userAgent:v,reqLogger:I,toolNameMap:J,model:c,connectionId:B,body:w,onStreamComplete:L,apiKey:C,credentials:O}),S=t===d.h.OPENAI_RESPONSES&&u===d.h.OPENAI_RESPONSES?k.Hr:a=>(0,l.mb)(j.gx.GATEWAY_TIMEOUT,a,t),T=i.xq[b]?.stallTimeoutMs||j.xM,U=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(()=>{})}})}(P),{status:a.status,statusText:a.statusText,headers:a.headers}),V=(0,h.Jb)(U,R,K,S,T);return(0,n.ox)((0,m.$R)({provider:b,model:c,connectionId:B,apiKey:C,apiKeyName:E,latency:{ttft:0,total:Date.now()-A},tokens:{prompt_tokens:0,completion_tokens:0},request:(0,m.Fo)(w,x),providerRequest:z||y||null,providerResponse:"[Streaming - raw response not captured]",response:{content:"[Streaming in progress...]",thinking:null,type:"streaming"},pxpipe:N,status:"success"},{id:M})).catch(a=>{console.error("[RequestDetail] Failed to save streaming request:",a.message)}),{success:!0,response:new Response(V,{headers:{...o.RK,...(0,p.d)(a.headers)}})}}function t({provider:a,model:b,connectionId:c,apiKey:d,apiKeyInfo:e,apiKeyName:f,requestStartTime:g,body:h,stream:i,finalBody:j,translatedBody:k,clientRawRequest:l,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,n.ox)((0,m.$R)({provider:a,model:b,connectionId:c,apiKey:d,apiKeyName:f,latency:t,tokens:r||{prompt_tokens:0,completion_tokens:0},request:(0,m.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,m.qr)({provider:a,model:b,tokens:r,connectionId:c,apiKey:d,apiKeyInfo:e,endpoint:l?.endpoint,label:"STREAM USAGE"})},streamDetailId:p}}},61210:(a,b,c)=>{c.d(b,{F:()=>h});var d=c(50058);let e=[{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 f(a){return a?.name||a?.function?.name||""}function g(a,b){return"string"==typeof b?a===b:b instanceof RegExp&&b.test(a)}function h(a,b={}){if(!Array.isArray(a)||0===a.length)return{tools:a,stripped:[]};let c=a.map(f),i=new Set,j=new Set;if("claude"===b.clientTool){for(let a of e)if(c.some(b=>a.triggers.some(a=>g(b,a))))for(let b of c)a.strip.some(a=>g(b,a))&&i.add(b)}if((0,d.wR)(b.model)){let b=new Set;for(let c=0;c<a.length;c++){let d=f(a[c]);d&&(b.has(d)?j.add(c):b.add(d))}}return 0===i.size&&0===j.size?{tools:a,stripped:[]}:{tools:a.filter((a,b)=>!j.has(b)&&!i.has(f(a))),stripped:Array.from(j).map(b=>f(a[b])).concat(Array.from(i))}}},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){return!!a?.tokens_saved&&!(a.tokens_saved<=0)&&["bodyBytes","messageBytes"].every(a=>{let d=b?.before?.[a]||0,e=b?.after?.[a]||0;return d>0&&e>0&&e>=d*(1-c)})}},72152:(a,b,c)=>{c.d(b,{BI:()=>G,fT:()=>J});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(`
26
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}
27
27
  `),g>0){for(let a of(k+=`+ Staged: ${g} files
28
28
  `,d.slice(0,10)))k+=` ${a}
@@ -66,7 +66,7 @@ ${e.length} files in ${g.length} dirs:
66
66
  `,b.slice(0,10)))h+=` ${c}
67
67
  `;b.length>10&&(h+=` +${b.length-10}
68
68
  `),h+="\n"}return g.length>20&&(h+=`+${g.length-20} more dirs
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("/")))}let F=parseInt(process.env.NINEROUTER_RTK_MAX_BYTES||"",10)||524288;function G(a,b,c){if(void 0===b&&(b=!1),!b||!a||(Number.isFinite(c)?c:function(a){let b=Array.isArray(a?.messages)?a.messages:Array.isArray(a?.input)?a.input:null;if(!b)return H(a);let c=0;for(let a of b)c+=32+H(a);return c}(a))>F)return null;if(a.conversationState){var d=a;let b={bytesBefore:0,bytesAfter:0,hits:[]};try{let a=d.conversationState,c=[...Array.isArray(a?.history)?a.history:[]];for(let d of(a?.currentMessage&&c.push(a.currentMessage),c)){let a=d?.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=I(a.text,b,"kiro-tool-result"))}}}catch(a){return console.warn("[RTK] compressKiroFormat error:",a.message),null}return b}let e=Array.isArray(a.messages)?a.messages:Array.isArray(a.input)?a.input:null;if(!e)return null;let f={bytesBefore:0,bytesAfter:0,hits:[]};try{for(let a=0;a<e.length;a++){let b=e[a];if(b){if("function_call_output"===b.type){if("string"==typeof b.output)b.output=I(b.output,f,"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=I(c.text,f,"openai-responses-array"))}continue}if("tool"===b.role&&"string"==typeof b.content){b.content=I(b.content,f,"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=I(c.text,f,"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=I(c.content,f,"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=I(b.text,f,"claude-array"))}}}}}}}catch(a){return console.warn("[RTK] compressMessages error:",a.message),null}return f}function H(a){if("string"==typeof a)return a.length;if(!a||"object"!=typeof a)return 0;let b=0;for(let c in a)b+=H(a[c]);return b}function I(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 J(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="upstream connection lost",n=Date.now(),o="STREAM",p=()=>{i&&(clearTimeout(i),i=null)},q=()=>{p(),i=setTimeout(()=>{i=null,m="stream stall timeout",(0,e.s)(o,`STALL TIMEOUT ${h}ms | chunks=${j} | bytes=${k} | sinceLast=${Date.now()-l}ms`),c.handleError?.(Error("stream stall timeout")),c.abort?.()},h)},r={signal:c.signal,startTime:c.startTime,isConnected:()=>c.isConnected(),handleComplete:()=>{(0,e.s)(o,`complete | chunks=${j} | bytes=${k} | dur=${Date.now()-n}ms`),p(),c.handleComplete()},handleError:a=>{(0,e.s)(o,`error: ${a?.message} | chunks=${j} | bytes=${k} | dur=${Date.now()-n}ms`),p(),c.handleError(a)},handleDisconnect:a=>{(0,e.s)(o,`disconnect: ${a} | chunks=${j} | bytes=${k} | dur=${Date.now()-n}ms`),p(),c.handleDisconnect(a)},abort:()=>{p(),c.abort()}};q(),(0,e.s)(o,`pipe start | stallTimeout=${h}ms`);let s=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)(o,`chunk #${j} | size=${c}B | gap=${f}ms | total=${k}B`),q(),b.enqueue(a)},flush(){(0,e.s)(o,`upstream EOF | chunks=${j} | bytes=${k} | dur=${Date.now()-n}ms`),p()}});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(s).pipeThrough(b),writable:{getWriter:()=>({abort:()=>Promise.resolve()})}},r,f?()=>f(m):null)}},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,d.h.COMMANDCODE]);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)),g=await Promise.resolve().then(c.t.bind(c,33873,23));let{getRuntimeLogsDir:a}=await Promise.resolve().then(c.bind(c,17399));h=a()}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)}
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("/")))}let F=parseInt(process.env.NINEROUTER_RTK_MAX_BYTES||"",10)||524288;function G(a,b,c){if(void 0===b&&(b=!1),!b||!a||(Number.isFinite(c)?c:function(a){let b=Array.isArray(a?.messages)?a.messages:Array.isArray(a?.input)?a.input:null;if(!b)return H(a);let c=0;for(let a of b)c+=32+H(a);return c}(a))>F)return null;if(a.conversationState){var d=a;let b={bytesBefore:0,bytesAfter:0,hits:[]};try{let a=d.conversationState,c=[...Array.isArray(a?.history)?a.history:[]];for(let d of(a?.currentMessage&&c.push(a.currentMessage),c)){let a=d?.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=I(a.text,b,"kiro-tool-result"))}}}catch(a){return console.warn("[RTK] compressKiroFormat error:",a.message),null}return b}let e=Array.isArray(a.messages)?a.messages:Array.isArray(a.input)?a.input:null;if(!e)return null;let f={bytesBefore:0,bytesAfter:0,hits:[]};try{for(let a=0;a<e.length;a++){let b=e[a];if(b){if("function_call_output"===b.type){if("string"==typeof b.output)b.output=I(b.output,f,"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=I(c.text,f,"openai-responses-array"))}continue}if("tool"===b.role&&"string"==typeof b.content){b.content=I(b.content,f,"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=I(c.text,f,"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=I(c.content,f,"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=I(b.text,f,"claude-array"))}}}}}}}catch(a){return console.warn("[RTK] compressMessages error:",a.message),null}return f}function H(a){if("string"==typeof a)return a.length;if(!a||"object"!=typeof a)return 0;let b=0;for(let c in a)b+=H(a[c]);return b}function I(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 J(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="upstream connection lost",n=Date.now(),o="STREAM",p=()=>{i&&(clearTimeout(i),i=null)},q=()=>{p(),i=setTimeout(()=>{i=null,m="stream stall timeout",(0,e.s)(o,`STALL TIMEOUT ${h}ms | chunks=${j} | bytes=${k} | sinceLast=${Date.now()-l}ms`),c.handleError?.(Error("stream stall timeout")),c.abort?.()},h)},r={signal:c.signal,startTime:c.startTime,isConnected:()=>c.isConnected(),handleComplete:()=>{(0,e.s)(o,`complete | chunks=${j} | bytes=${k} | dur=${Date.now()-n}ms`),p(),c.handleComplete()},handleError:a=>{(0,e.s)(o,`error: ${a?.message} | chunks=${j} | bytes=${k} | dur=${Date.now()-n}ms`),p(),c.handleError(a)},handleDisconnect:a=>{(0,e.s)(o,`disconnect: ${a} | chunks=${j} | bytes=${k} | dur=${Date.now()-n}ms`),p(),c.handleDisconnect(a)},abort:()=>{p(),c.abort()}};q(),(0,e.s)(o,`pipe start | stallTimeout=${h}ms`);let s=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)(o,`chunk #${j} | size=${c}B | gap=${f}ms | total=${k}B`),q(),b.enqueue(a)},flush(){(0,e.s)(o,`upstream EOF | chunks=${j} | bytes=${k} | dur=${Date.now()-n}ms`),p()}});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(s).pipeThrough(b),writable:{getWriter:()=>({abort:()=>Promise.resolve()})}},r,f?()=>f(m):null)}},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,d.h.COMMANDCODE]);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}},81668:(a,b,c)=>{c.d(b,{F:()=>e});var d=c(20526);function e(a,b,c){return"string"==typeof c&&!!c.trim()&&((0,d.J)(a,b,c),!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)),g=await Promise.resolve().then(c.t.bind(c,33873,23));let{getRuntimeLogsDir:a}=await Promise.resolve().then(c.bind(c,17399));h=a()}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)}
70
70
 
71
71
  data: [DONE]
72
72