switchboard-router 0.9.48 → 0.9.50

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 (354) hide show
  1. package/app/.next/static/chunks/{1321-73cba51ca6694ffa.js → 1321-61ccd342dfe1b2b3.js} +1 -1
  2. package/app/.next-cli-build/BUILD_ID +1 -1
  3. package/app/.next-cli-build/app-path-routes-manifest.json +13 -13
  4. package/app/.next-cli-build/build-manifest.json +2 -2
  5. package/app/.next-cli-build/prerender-manifest.json +3 -3
  6. package/app/.next-cli-build/server/app/(dashboard)/dashboard/agent-library/page.js.nft.json +1 -1
  7. package/app/.next-cli-build/server/app/(dashboard)/dashboard/agent-library/page_client-reference-manifest.js +1 -1
  8. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js.nft.json +1 -1
  9. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.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.nft.json +1 -1
  13. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  14. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js.nft.json +1 -1
  15. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  16. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/routing/page.js.nft.json +1 -1
  17. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/routing/page_client-reference-manifest.js +1 -1
  18. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js.nft.json +1 -1
  19. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
  20. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json +1 -1
  21. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  22. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js.nft.json +1 -1
  23. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js +1 -1
  24. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js.nft.json +1 -1
  25. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page_client-reference-manifest.js +1 -1
  26. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js.nft.json +1 -1
  27. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page_client-reference-manifest.js +1 -1
  28. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/page.js.nft.json +1 -1
  29. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/page_client-reference-manifest.js +1 -1
  30. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js.nft.json +1 -1
  31. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page_client-reference-manifest.js +1 -1
  32. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js.nft.json +1 -1
  33. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
  34. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
  35. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  36. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js.nft.json +1 -1
  37. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  38. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json +1 -1
  39. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  40. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js.nft.json +1 -1
  41. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  42. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js.nft.json +1 -1
  43. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  44. package/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page.js.nft.json +1 -1
  45. package/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page_client-reference-manifest.js +1 -1
  46. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js.nft.json +1 -1
  47. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
  48. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/[id]/page.js.nft.json +1 -1
  49. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/[id]/page_client-reference-manifest.js +1 -1
  50. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page.js.nft.json +1 -1
  51. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page_client-reference-manifest.js +1 -1
  52. package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page.js.nft.json +1 -1
  53. package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page_client-reference-manifest.js +1 -1
  54. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js.nft.json +1 -1
  55. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  56. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js.nft.json +1 -1
  57. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  58. package/app/.next-cli-build/server/app/_global-error/page.js.nft.json +1 -1
  59. package/app/.next-cli-build/server/app/_global-error/page_client-reference-manifest.js +1 -1
  60. package/app/.next-cli-build/server/app/_global-error.html +1 -1
  61. package/app/.next-cli-build/server/app/_global-error.rsc +1 -1
  62. package/app/.next-cli-build/server/app/_global-error.segments/_full.segment.rsc +1 -1
  63. package/app/.next-cli-build/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  64. package/app/.next-cli-build/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  65. package/app/.next-cli-build/server/app/_not-found/page.js.nft.json +1 -1
  66. package/app/.next-cli-build/server/app/_not-found/page_client-reference-manifest.js +1 -1
  67. package/app/.next-cli-build/server/app/_not-found.html +1 -1
  68. package/app/.next-cli-build/server/app/_not-found.rsc +3 -3
  69. package/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +3 -3
  70. package/app/.next-cli-build/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +3 -3
  71. package/app/.next-cli-build/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  72. package/app/.next-cli-build/server/app/api/agent-library/catalog/route.js.nft.json +1 -1
  73. package/app/.next-cli-build/server/app/api/agent-library/doctor/route.js.nft.json +1 -1
  74. package/app/.next-cli-build/server/app/api/agent-library/export/route.js.nft.json +1 -1
  75. package/app/.next-cli-build/server/app/api/agent-library/mcp/route.js.nft.json +1 -1
  76. package/app/.next-cli-build/server/app/api/agent-library/route.js.nft.json +1 -1
  77. package/app/.next-cli-build/server/app/api/agent-library/skills/route.js.nft.json +1 -1
  78. package/app/.next-cli-build/server/app/api/agent-library/sync/route.js.nft.json +1 -1
  79. package/app/.next-cli-build/server/app/api/agent-library/updates/route.js.nft.json +1 -1
  80. package/app/.next-cli-build/server/app/api/auth/login/route.js.nft.json +1 -1
  81. package/app/.next-cli-build/server/app/api/auth/logout/route.js.nft.json +1 -1
  82. package/app/.next-cli-build/server/app/api/auth/status/route.js.nft.json +1 -1
  83. package/app/.next-cli-build/server/app/api/cli-tools/aider-settings/route.js +2 -2
  84. package/app/.next-cli-build/server/app/api/cli-tools/aider-settings/route.js.nft.json +1 -1
  85. package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js +5 -5
  86. package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js.nft.json +1 -1
  87. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js +1 -1
  88. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js.nft.json +1 -1
  89. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js.nft.json +1 -1
  90. package/app/.next-cli-build/server/app/api/cli-tools/claude-full-catalog/route.js.nft.json +1 -1
  91. package/app/.next-cli-build/server/app/api/cli-tools/claude-picker-labels/route.js.nft.json +1 -1
  92. package/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js.nft.json +1 -1
  93. package/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js +2 -2
  94. package/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js.nft.json +1 -1
  95. package/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js +2 -2
  96. package/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js.nft.json +1 -1
  97. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js +2 -2
  98. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js.nft.json +1 -1
  99. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js +1 -1
  100. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js.nft.json +1 -1
  101. package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js +1 -1
  102. package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js.nft.json +1 -1
  103. package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js +1 -1
  104. package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js.nft.json +1 -1
  105. package/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js +2 -2
  106. package/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js.nft.json +1 -1
  107. package/app/.next-cli-build/server/app/api/cli-tools/gemini-cli-settings/route.js +3 -3
  108. package/app/.next-cli-build/server/app/api/cli-tools/gemini-cli-settings/route.js.nft.json +1 -1
  109. package/app/.next-cli-build/server/app/api/cli-tools/grok-settings/route.js +3 -3
  110. package/app/.next-cli-build/server/app/api/cli-tools/grok-settings/route.js.nft.json +1 -1
  111. package/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js +2 -2
  112. package/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js.nft.json +1 -1
  113. package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js +2 -2
  114. package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js.nft.json +1 -1
  115. package/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js +2 -2
  116. package/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js.nft.json +1 -1
  117. package/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js +2 -2
  118. package/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js.nft.json +1 -1
  119. package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js +2 -2
  120. package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js.nft.json +1 -1
  121. package/app/.next-cli-build/server/app/api/cli-tools/pi-settings/route.js +1 -1
  122. package/app/.next-cli-build/server/app/api/cli-tools/pi-settings/route.js.nft.json +1 -1
  123. package/app/.next-cli-build/server/app/api/cli-tools/picker-labels/route.js.nft.json +1 -1
  124. package/app/.next-cli-build/server/app/api/combos/[id]/route.js +1 -1
  125. package/app/.next-cli-build/server/app/api/combos/[id]/route.js.nft.json +1 -1
  126. package/app/.next-cli-build/server/app/api/combos/route.js +1 -1
  127. package/app/.next-cli-build/server/app/api/combos/route.js.nft.json +1 -1
  128. package/app/.next-cli-build/server/app/api/headroom/extras/route.js.nft.json +1 -1
  129. package/app/.next-cli-build/server/app/api/headroom/proxy/[...path]/route.js.nft.json +1 -1
  130. package/app/.next-cli-build/server/app/api/headroom/restart/route.js.nft.json +1 -1
  131. package/app/.next-cli-build/server/app/api/headroom/start/route.js.nft.json +1 -1
  132. package/app/.next-cli-build/server/app/api/headroom/status/route.js.nft.json +1 -1
  133. package/app/.next-cli-build/server/app/api/headroom/stop/route.js.nft.json +1 -1
  134. package/app/.next-cli-build/server/app/api/health/route.js.nft.json +1 -1
  135. package/app/.next-cli-build/server/app/api/keys/[id]/route.js.nft.json +1 -1
  136. package/app/.next-cli-build/server/app/api/keys/route.js.nft.json +1 -1
  137. package/app/.next-cli-build/server/app/api/locale/route.js.nft.json +1 -1
  138. package/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js.nft.json +1 -1
  139. package/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js.nft.json +1 -1
  140. package/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js.nft.json +1 -1
  141. package/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js.nft.json +1 -1
  142. package/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js.nft.json +1 -1
  143. package/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js.nft.json +1 -1
  144. package/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js.nft.json +1 -1
  145. package/app/.next-cli-build/server/app/api/mgmt/v1/combos/[id]/route.js +1 -1
  146. package/app/.next-cli-build/server/app/api/mgmt/v1/combos/[id]/route.js.nft.json +1 -1
  147. package/app/.next-cli-build/server/app/api/mgmt/v1/combos/[id]/strategy/route.js +1 -1
  148. package/app/.next-cli-build/server/app/api/mgmt/v1/combos/[id]/strategy/route.js.nft.json +1 -1
  149. package/app/.next-cli-build/server/app/api/mgmt/v1/combos/route.js +1 -1
  150. package/app/.next-cli-build/server/app/api/mgmt/v1/combos/route.js.nft.json +1 -1
  151. package/app/.next-cli-build/server/app/api/mgmt/v1/health/route.js.nft.json +1 -1
  152. package/app/.next-cli-build/server/app/api/mgmt/v1/metrics/route.js.nft.json +1 -1
  153. package/app/.next-cli-build/server/app/api/mgmt/v1/providers/route.js.nft.json +1 -1
  154. package/app/.next-cli-build/server/app/api/mgmt/v1/routing/route.js.nft.json +1 -1
  155. package/app/.next-cli-build/server/app/api/mgmt/v1/usage/route.js.nft.json +1 -1
  156. package/app/.next-cli-build/server/app/api/mgmt/v1/version/route.js.nft.json +1 -1
  157. package/app/.next-cli-build/server/app/api/models/alias/route.js.nft.json +1 -1
  158. package/app/.next-cli-build/server/app/api/models/availability/route.js.nft.json +1 -1
  159. package/app/.next-cli-build/server/app/api/models/custom/route.js.nft.json +1 -1
  160. package/app/.next-cli-build/server/app/api/models/disabled/route.js.nft.json +1 -1
  161. package/app/.next-cli-build/server/app/api/models/routable/route.js.nft.json +1 -1
  162. package/app/.next-cli-build/server/app/api/models/route.js.nft.json +1 -1
  163. package/app/.next-cli-build/server/app/api/models/test/route.js.nft.json +1 -1
  164. package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js +1 -1
  165. package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -1
  166. package/app/.next-cli-build/server/app/api/oauth/codex/bulk-import/route.js +1 -1
  167. package/app/.next-cli-build/server/app/api/oauth/codex/bulk-import/route.js.nft.json +1 -1
  168. package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js +1 -1
  169. package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js.nft.json +1 -1
  170. package/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js.nft.json +1 -1
  171. package/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js.nft.json +1 -1
  172. package/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js.nft.json +1 -1
  173. package/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js.nft.json +1 -1
  174. package/app/.next-cli-build/server/app/api/oauth/kiro/api-key/route.js.nft.json +1 -1
  175. package/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route.js.nft.json +1 -1
  176. package/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js.nft.json +1 -1
  177. package/app/.next-cli-build/server/app/api/oauth/kiro/import-cli-proxy/route.js.nft.json +1 -1
  178. package/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js.nft.json +1 -1
  179. package/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js.nft.json +1 -1
  180. package/app/.next-cli-build/server/app/api/pricing/defaults/route.js.nft.json +1 -1
  181. package/app/.next-cli-build/server/app/api/pricing/route.js.nft.json +1 -1
  182. package/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js.nft.json +1 -1
  183. package/app/.next-cli-build/server/app/api/provider-nodes/route.js.nft.json +1 -1
  184. package/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js.nft.json +1 -1
  185. package/app/.next-cli-build/server/app/api/providers/[id]/model-probes/batch/route.js.nft.json +1 -1
  186. package/app/.next-cli-build/server/app/api/providers/[id]/model-probes/cache/route.js.nft.json +1 -1
  187. package/app/.next-cli-build/server/app/api/providers/[id]/model-probes/prepare/route.js.nft.json +1 -1
  188. package/app/.next-cli-build/server/app/api/providers/[id]/model-probes/remove-unavailable/route.js.nft.json +1 -1
  189. package/app/.next-cli-build/server/app/api/providers/[id]/model-probes/route.js.nft.json +1 -1
  190. package/app/.next-cli-build/server/app/api/providers/[id]/model-probes/verify/cancel/route.js.nft.json +1 -1
  191. package/app/.next-cli-build/server/app/api/providers/[id]/model-probes/verify/start/route.js.nft.json +1 -1
  192. package/app/.next-cli-build/server/app/api/providers/[id]/model-probes/verify/status/route.js.nft.json +1 -1
  193. package/app/.next-cli-build/server/app/api/providers/[id]/models/route.js.nft.json +1 -1
  194. package/app/.next-cli-build/server/app/api/providers/[id]/route.js.nft.json +1 -1
  195. package/app/.next-cli-build/server/app/api/providers/[id]/test/route.js.nft.json +1 -1
  196. package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js.nft.json +1 -1
  197. package/app/.next-cli-build/server/app/api/providers/client/route.js +1 -1
  198. package/app/.next-cli-build/server/app/api/providers/client/route.js.nft.json +1 -1
  199. package/app/.next-cli-build/server/app/api/providers/kilo/free-models/route.js.nft.json +1 -1
  200. package/app/.next-cli-build/server/app/api/providers/route.js.nft.json +1 -1
  201. package/app/.next-cli-build/server/app/api/providers/suggested-models/route.js.nft.json +1 -1
  202. package/app/.next-cli-build/server/app/api/providers/test-batch/route.js.nft.json +1 -1
  203. package/app/.next-cli-build/server/app/api/providers/validate/route.js.nft.json +1 -1
  204. package/app/.next-cli-build/server/app/api/pxpipe/health/route.js.nft.json +1 -1
  205. package/app/.next-cli-build/server/app/api/pxpipe/install/route.js.nft.json +1 -1
  206. package/app/.next-cli-build/server/app/api/pxpipe/logs/route.js.nft.json +1 -1
  207. package/app/.next-cli-build/server/app/api/pxpipe/restart/route.js.nft.json +1 -1
  208. package/app/.next-cli-build/server/app/api/pxpipe/start/route.js.nft.json +1 -1
  209. package/app/.next-cli-build/server/app/api/pxpipe/stats/route.js.nft.json +1 -1
  210. package/app/.next-cli-build/server/app/api/pxpipe/status/route.js.nft.json +1 -1
  211. package/app/.next-cli-build/server/app/api/pxpipe/stop/route.js.nft.json +1 -1
  212. package/app/.next-cli-build/server/app/api/routing/feedback/route.js +1 -1
  213. package/app/.next-cli-build/server/app/api/routing/feedback/route.js.nft.json +1 -1
  214. package/app/.next-cli-build/server/app/api/routing/insights/route.js.nft.json +1 -1
  215. package/app/.next-cli-build/server/app/api/routing/learn/route.js.nft.json +1 -1
  216. package/app/.next-cli-build/server/app/api/routing/stats/route.js.nft.json +1 -1
  217. package/app/.next-cli-build/server/app/api/routing/versions/promote/route.js.nft.json +1 -1
  218. package/app/.next-cli-build/server/app/api/routing/versions/rollback/route.js.nft.json +1 -1
  219. package/app/.next-cli-build/server/app/api/settings/database/route.js.nft.json +1 -1
  220. package/app/.next-cli-build/server/app/api/settings/proxy-test/route.js.nft.json +1 -1
  221. package/app/.next-cli-build/server/app/api/settings/route.js +1 -1
  222. package/app/.next-cli-build/server/app/api/settings/route.js.nft.json +1 -1
  223. package/app/.next-cli-build/server/app/api/shutdown/route.js.nft.json +1 -1
  224. package/app/.next-cli-build/server/app/api/skills/[id]/route.js.nft.json +1 -1
  225. package/app/.next-cli-build/server/app/api/tags/route.js.nft.json +1 -1
  226. package/app/.next-cli-build/server/app/api/token-saver/vault-stats/route.js.nft.json +1 -1
  227. package/app/.next-cli-build/server/app/api/translator/console-logs/route.js.nft.json +1 -1
  228. package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js.nft.json +1 -1
  229. package/app/.next-cli-build/server/app/api/translator/load/route.js.nft.json +1 -1
  230. package/app/.next-cli-build/server/app/api/translator/save/route.js.nft.json +1 -1
  231. package/app/.next-cli-build/server/app/api/translator/send/route.js +1 -1
  232. package/app/.next-cli-build/server/app/api/translator/send/route.js.nft.json +1 -1
  233. package/app/.next-cli-build/server/app/api/translator/translate/route.js +1 -1
  234. package/app/.next-cli-build/server/app/api/translator/translate/route.js.nft.json +1 -1
  235. package/app/.next-cli-build/server/app/api/usage/[connectionId]/codex-reset-credits/route.js +1 -1
  236. package/app/.next-cli-build/server/app/api/usage/[connectionId]/codex-reset-credits/route.js.nft.json +1 -1
  237. package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js +1 -1
  238. package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
  239. package/app/.next-cli-build/server/app/api/usage/chart/route.js.nft.json +1 -1
  240. package/app/.next-cli-build/server/app/api/usage/history/route.js.nft.json +1 -1
  241. package/app/.next-cli-build/server/app/api/usage/logs/route.js.nft.json +1 -1
  242. package/app/.next-cli-build/server/app/api/usage/providers/route.js.nft.json +1 -1
  243. package/app/.next-cli-build/server/app/api/usage/request-details/[id]/route.js.nft.json +1 -1
  244. package/app/.next-cli-build/server/app/api/usage/request-details/route.js.nft.json +1 -1
  245. package/app/.next-cli-build/server/app/api/usage/request-logs/route.js.nft.json +1 -1
  246. package/app/.next-cli-build/server/app/api/usage/stats/route.js.nft.json +1 -1
  247. package/app/.next-cli-build/server/app/api/usage/stream/route.js.nft.json +1 -1
  248. package/app/.next-cli-build/server/app/api/v1/api/chat/route.js +1 -1
  249. package/app/.next-cli-build/server/app/api/v1/api/chat/route.js.nft.json +1 -1
  250. package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js +1 -1
  251. package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js.nft.json +1 -1
  252. package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js.nft.json +1 -1
  253. package/app/.next-cli-build/server/app/api/v1/audio/voices/route.js.nft.json +1 -1
  254. package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js +1 -1
  255. package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
  256. package/app/.next-cli-build/server/app/api/v1/embeddings/route.js +1 -1
  257. package/app/.next-cli-build/server/app/api/v1/embeddings/route.js.nft.json +1 -1
  258. package/app/.next-cli-build/server/app/api/v1/images/generations/route.js +1 -1
  259. package/app/.next-cli-build/server/app/api/v1/images/generations/route.js.nft.json +1 -1
  260. package/app/.next-cli-build/server/app/api/v1/messages/count_tokens/route.js +1 -1
  261. package/app/.next-cli-build/server/app/api/v1/messages/count_tokens/route.js.nft.json +1 -1
  262. package/app/.next-cli-build/server/app/api/v1/messages/route.js +1 -1
  263. package/app/.next-cli-build/server/app/api/v1/messages/route.js.nft.json +1 -1
  264. package/app/.next-cli-build/server/app/api/v1/models/[kind]/route.js.nft.json +1 -1
  265. package/app/.next-cli-build/server/app/api/v1/models/info/route.js.nft.json +1 -1
  266. package/app/.next-cli-build/server/app/api/v1/models/route.js.nft.json +1 -1
  267. package/app/.next-cli-build/server/app/api/v1/responses/compact/route.js +1 -1
  268. package/app/.next-cli-build/server/app/api/v1/responses/compact/route.js.nft.json +1 -1
  269. package/app/.next-cli-build/server/app/api/v1/responses/route.js +1 -1
  270. package/app/.next-cli-build/server/app/api/v1/responses/route.js.nft.json +1 -1
  271. package/app/.next-cli-build/server/app/api/v1/route.js.nft.json +1 -1
  272. package/app/.next-cli-build/server/app/api/v1/search/route.js +1 -1
  273. package/app/.next-cli-build/server/app/api/v1/search/route.js.nft.json +1 -1
  274. package/app/.next-cli-build/server/app/api/v1/videos/[id]/route.js.nft.json +1 -1
  275. package/app/.next-cli-build/server/app/api/v1/videos/edits/route.js.nft.json +1 -1
  276. package/app/.next-cli-build/server/app/api/v1/videos/extensions/route.js.nft.json +1 -1
  277. package/app/.next-cli-build/server/app/api/v1/videos/generations/route.js.nft.json +1 -1
  278. package/app/.next-cli-build/server/app/api/v1/web/fetch/route.js +1 -1
  279. package/app/.next-cli-build/server/app/api/v1/web/fetch/route.js.nft.json +1 -1
  280. package/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js +1 -1
  281. package/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
  282. package/app/.next-cli-build/server/app/api/v1beta/models/route.js.nft.json +1 -1
  283. package/app/.next-cli-build/server/app/api/version/route.js +1 -1
  284. package/app/.next-cli-build/server/app/api/version/route.js.nft.json +1 -1
  285. package/app/.next-cli-build/server/app/api/version/shutdown/route.js.nft.json +1 -1
  286. package/app/.next-cli-build/server/app/api/version/update/route.js.nft.json +1 -1
  287. package/app/.next-cli-build/server/app/callback/page.js.nft.json +1 -1
  288. package/app/.next-cli-build/server/app/callback/page_client-reference-manifest.js +1 -1
  289. package/app/.next-cli-build/server/app/callback.html +1 -1
  290. package/app/.next-cli-build/server/app/callback.rsc +3 -3
  291. package/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +3 -3
  292. package/app/.next-cli-build/server/app/callback.segments/_tree.segment.rsc +1 -1
  293. package/app/.next-cli-build/server/app/callback.segments/callback/__PAGE__.segment.rsc +3 -3
  294. package/app/.next-cli-build/server/app/dashboard/settings/pricing/page.js.nft.json +1 -1
  295. package/app/.next-cli-build/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  296. package/app/.next-cli-build/server/app/dashboard/settings/pricing.html +1 -1
  297. package/app/.next-cli-build/server/app/dashboard/settings/pricing.rsc +3 -3
  298. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +3 -3
  299. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +1 -1
  300. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +3 -3
  301. package/app/.next-cli-build/server/app/favicon.ico/route.js.nft.json +1 -1
  302. package/app/.next-cli-build/server/app/index.html +1 -1
  303. package/app/.next-cli-build/server/app/index.rsc +3 -3
  304. package/app/.next-cli-build/server/app/index.segments/__PAGE__.segment.rsc +3 -3
  305. package/app/.next-cli-build/server/app/index.segments/_full.segment.rsc +3 -3
  306. package/app/.next-cli-build/server/app/index.segments/_tree.segment.rsc +1 -1
  307. package/app/.next-cli-build/server/app/landing/page.js.nft.json +1 -1
  308. package/app/.next-cli-build/server/app/landing/page_client-reference-manifest.js +1 -1
  309. package/app/.next-cli-build/server/app/landing.html +1 -1
  310. package/app/.next-cli-build/server/app/landing.rsc +3 -3
  311. package/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +3 -3
  312. package/app/.next-cli-build/server/app/landing.segments/_tree.segment.rsc +1 -1
  313. package/app/.next-cli-build/server/app/landing.segments/landing/__PAGE__.segment.rsc +3 -3
  314. package/app/.next-cli-build/server/app/login/page.js.nft.json +1 -1
  315. package/app/.next-cli-build/server/app/login/page_client-reference-manifest.js +1 -1
  316. package/app/.next-cli-build/server/app/login.html +1 -1
  317. package/app/.next-cli-build/server/app/login.rsc +4 -4
  318. package/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +4 -4
  319. package/app/.next-cli-build/server/app/login.segments/_tree.segment.rsc +1 -1
  320. package/app/.next-cli-build/server/app/login.segments/login/__PAGE__.segment.rsc +4 -4
  321. package/app/.next-cli-build/server/app/manifest.webmanifest/route.js.nft.json +1 -1
  322. package/app/.next-cli-build/server/app/page.js.nft.json +1 -1
  323. package/app/.next-cli-build/server/app/page_client-reference-manifest.js +1 -1
  324. package/app/.next-cli-build/server/app-paths-manifest.json +13 -13
  325. package/app/.next-cli-build/server/chunks/1350.js +1 -1
  326. package/app/.next-cli-build/server/chunks/2847.js +1 -1
  327. package/app/.next-cli-build/server/chunks/369.js +2 -2
  328. package/app/.next-cli-build/server/chunks/{7880.js → 3694.js} +2 -2
  329. package/app/.next-cli-build/server/chunks/4301.js +1 -0
  330. package/app/.next-cli-build/server/chunks/7201.js +1 -1
  331. package/app/.next-cli-build/server/chunks/7828.js +1 -1
  332. package/app/.next-cli-build/server/chunks/869.js +1 -1
  333. package/app/.next-cli-build/server/chunks/9091.js +1 -1
  334. package/app/.next-cli-build/server/chunks/9261.js +1 -1
  335. package/app/.next-cli-build/server/chunks/9264.js +2 -2
  336. package/app/.next-cli-build/server/middleware-build-manifest.js +1 -1
  337. package/app/.next-cli-build/server/pages/404.html +1 -1
  338. package/app/.next-cli-build/server/pages/500.html +1 -1
  339. package/app/.next-cli-build/server/server-reference-manifest.js +1 -1
  340. package/app/.next-cli-build/server/server-reference-manifest.json +1 -1
  341. package/app/.next-cli-build/static/chunks/{1321-73cba51ca6694ffa.js → 1321-61ccd342dfe1b2b3.js} +1 -1
  342. package/app/open-sse/identity/tls/bin/darwin/arm64/switchboard-claude-tls +0 -0
  343. package/app/open-sse/identity/tls/bin/darwin/x64/switchboard-claude-tls +0 -0
  344. package/app/open-sse/identity/tls/bin/linux/arm64/switchboard-claude-tls +0 -0
  345. package/app/open-sse/identity/tls/bin/linux/x64/switchboard-claude-tls +0 -0
  346. package/app/open-sse/identity/tls/bin/win32/arm64/switchboard-claude-tls.exe +0 -0
  347. package/app/open-sse/identity/tls/bin/win32/x64/switchboard-claude-tls.exe +0 -0
  348. package/app/package.json +1 -1
  349. package/package.json +1 -1
  350. package/app/.next-cli-build/server/chunks/1837.js +0 -1
  351. /package/app/.next/static/{MSigI0uI9w5TrE5x-BeGU → RWZSAZYop1Tcl3vT3frIa}/_buildManifest.js +0 -0
  352. /package/app/.next/static/{MSigI0uI9w5TrE5x-BeGU → RWZSAZYop1Tcl3vT3frIa}/_ssgManifest.js +0 -0
  353. /package/app/.next-cli-build/static/{MSigI0uI9w5TrE5x-BeGU → RWZSAZYop1Tcl3vT3frIa}/_buildManifest.js +0 -0
  354. /package/app/.next-cli-build/static/{MSigI0uI9w5TrE5x-BeGU → RWZSAZYop1Tcl3vT3frIa}/_ssgManifest.js +0 -0
@@ -66,8 +66,8 @@ ${b}`:b;return}let c=Array.isArray(a.messages)?a.messages:null;if(!c)return;let
66
66
 
67
67
  ${h}`:Array.isArray(g.content)?g.content.push({type:"input_text",text:h}):g.content=h}else c.unshift({role:"system",content:b})}(a,c)}}},18367:(a,b,c)=>{c.d(b,{Z:()=>e});var d=c(60290);function e({body:a,reexecute:b,signal:c,firstChunkTimeoutMs:f=d.Z1,log:g,maxRetries:h=1}){let i=a.getReader(),j=!1,k=!1,l=!1,m=null,n=null,o=()=>{m&&(clearTimeout(m),m=null)},p=a=>{try{a.error(Error("stream first-chunk timeout"))}catch{}},q=()=>n?.();c?.addEventListener?.("abort",q);let r=()=>{o(),c?.removeEventListener?.("abort",q)};return new ReadableStream({async pull(a){if(l){r(),a.close();return}if(c?.aborted)return(r(),j)?p(a):void a.close();try{for(;;){let b=!j&&f>0?new Promise(a=>{m=setTimeout(()=>a({timeout:!0}),f)}):null,d=c?new Promise(a=>{n=()=>a({aborted:!0}),c.aborted&&n()}):null,e=i.read().catch(a=>({error:a})),g=await Promise.race([e,b,d].filter(Boolean));if(n=null,o(),g.aborted||l){if(r(),i.cancel().catch(()=>{}),j&&!l)return p(a);a.close();return}if(g.error)throw g.error;if(g.timeout){if(i.cancel().catch(()=>{}),await s(a,"first-chunk timeout"))continue;return r(),p(a)}if(g.done){if(!j&&await s(a,"empty EOF"))continue;if(r(),!j)return p(a);a.close();return}j=!0,a.enqueue(g.value);return}}catch(b){r();try{a.error(b)}catch{}}},cancel(){l=!0,r(),i?.cancel().catch(()=>{})}});async function s(a,d){if(h<=0||k||l||c?.aborted)return!1;k=!0,g?.warn?.("STREAM",`zero-byte ${d} | retrying once`);let e=await b();return l||c?.aborted?(await e?.cancel?.().catch(()=>{}),r(),a.close(),!1):!!e&&(i=e.getReader(),j=!1,!0)}}},27226:(a,b,c)=>{c.d(b,{Jz:()=>f,Qf:()=>l,lP:()=>k});var d=c(35570);let e={claude:["claude","anthropic"],"gemini-cli":["gemini-cli"],antigravity:["antigravity"],codex:["codex"]};function f(a={},b={}){let c=a["user-agent"]||"";return"antigravity"===b.userAgent?"antigravity":/^GitHubCopilotChat\/\d+\.\d+\.\d+/i.test(c)&&a["editor-version"]&&a["editor-plugin-version"]?"github-copilot":/claude-(?:cli|code)\/\d+\.\d+\.\d+/i.test(c)?"claude":/^GeminiCLI\/\d+\.\d+\.\d+/i.test(c)?"gemini-cli":/^(?:codex_cli_rs|codex-cli)\/\d+\.\d+\.\d+/i.test(c)?"codex":/^Cline\/\d+\.\d+\.\d+/i.test(c)&&"extension"===a["x-client-type"]?"cline":/^QwenCode\/\d+\.\d+\.\d+/i.test(c)?"qwen":c.includes("deepseek-tui")?"deepseek-tui":null}let g={claude:"claude-cli",codex:"codex-cli","gemini-cli":"gemini-cli",antigravity:"antigravity",cline:"cline",qwen:"qwen","github-copilot":"copilot"},h=/^claude-(?:cli|code)\/(\d+\.\d+\.\d+)(?:\s|\(|$)/i,i=/_session_([a-f0-9-]+)$/;function j(a,b){let c=a?.[b]??a?.[b.toLowerCase()];return"string"==typeof c&&c.trim()?c:null}function k(a,b={},c={}){let e=g[a];if(!e||f(b,c)!==a)return!1;if("claude"!==a)return(0,d.I2)(e,b);if(!function(a={},b={}){if(!a||"object"!=typeof a)return!1;let c=j(a,"user-agent"),e=c?.match(h)?.[1],f=(0,d.zi)("claude-cli")?.version;return!!(e&&e===f&&j(a,"x-app")?.toLowerCase()==="cli"&&j(a,"anthropic-beta")&&j(a,"x-stainless-package-version")&&j(a,"x-stainless-runtime-version")&&j(a,"x-stainless-os")&&j(a,"x-stainless-arch")&&function(a){let b=a?.metadata?.user_id;if("string"!=typeof b||!b)return null;let c=b.match(i)?.[1];if(c)return c;if("{"!==b[0])return null;try{let a=JSON.parse(b)?.session_id;if("string"!=typeof a)return null;let c=a.trim();return c&&c.length<=256?c:null}catch{return null}}(b))}(b,c))return!1;let l=b["user-agent"]||b["User-Agent"];return(0,d.I2)(e,{...b,"user-agent":l.replace(/^claude-code\//i,"claude-cli/")})}function l(a,b){if(!a)return!1;let c=e[a];if(!c)return!1;let d=b.startsWith("anthropic-compatible")?"anthropic":b;return c.includes(d)}},28190:(a,b,c)=>{c.d(b,{F:()=>g});let d=[{triggers:["mcp__exa__web_search_exa","mcp__exa__web_fetch_exa"],strip:["WebSearch","WebFetch","mcp__workspace__web_fetch"]},{triggers:["mcp__tavily__tavily_search","mcp__tavily__tavily_extract"],strip:["WebSearch","WebFetch","mcp__workspace__web_fetch"]},{triggers:[/^mcp__browsermcp__/],strip:[/^mcp__Claude_in_Chrome__/]}];function e(a){return a?.name||a?.function?.name||""}function f(a,b){return"string"==typeof b?a===b:b instanceof RegExp&&b.test(a)}function g(a){if(!Array.isArray(a)||0===a.length)return{tools:a,stripped:[]};let b=a.map(e),c=new Set;for(let a of d)if(b.some(b=>a.triggers.some(a=>f(b,a))))for(let d of b)a.strip.some(a=>f(d,a))&&c.add(d);return 0===c.size?{tools:a,stripped:[]}:{tools:a.filter(a=>!c.has(e(a))),stripped:Array.from(c)}}},29461:(a,b,c)=>{c.d(b,{$R:()=>k,Fo:()=>i,MK:()=>j,YZ:()=>l});var d=c(12407),e=c(71413),f=c(6755),g=c(67677);let h=["temperature","top_p","top_k","max_tokens","max_completion_tokens","thinking","reasoning","enable_thinking","presence_penalty","frequency_penalty","seed","stop","tools","tool_choice","response_format","prediction","store","metadata","n","logprobs","top_logprobs","logit_bias","user","parallel_tool_calls"];function i(a,b){let c={messages:a.messages||[],model:a.model,stream:b};for(let b of h)void 0!==a[b]&&(c[b]=a[b]);return c}function j(a){return a&&"object"==typeof a?a.usage?.input_tokens!==void 0?{prompt_tokens:a.usage.input_tokens||0,completion_tokens:a.usage.output_tokens||0,cache_read_input_tokens:a.usage.cache_read_input_tokens,cache_creation_input_tokens:a.usage.cache_creation_input_tokens}:a.usage?.prompt_tokens!==void 0?{prompt_tokens:a.usage.prompt_tokens||0,completion_tokens:a.usage.completion_tokens||0,cached_tokens:a.usage.prompt_tokens_details?.cached_tokens,reasoning_tokens:a.usage.completion_tokens_details?.reasoning_tokens}:a.usageMetadata?{prompt_tokens:a.usageMetadata.promptTokenCount||0,completion_tokens:a.usageMetadata.candidatesTokenCount||0,cached_tokens:a.usageMetadata.cachedContentTokenCount||0,reasoning_tokens:a.usageMetadata.thoughtsTokenCount||0}:null:null}function k(a,b={}){return{provider:a.provider||"unknown",model:a.model||"unknown",connectionId:a.connectionId||void 0,timestamp:new Date().toISOString(),latency:a.latency||{ttft:0,total:0},tokens:a.tokens||{prompt_tokens:0,completion_tokens:0},request:a.request,providerRequest:a.providerRequest||null,providerResponse:a.providerResponse||null,toolHistory:a.request?.toolHistoryDiagnostics?{stages:a.request.toolHistoryDiagnostics,dispatched:(0,e.O)(a.providerRequest)}:void 0,response:a.response||{},pxpipe:a.pxpipe||void 0,rtk:a.rtk||void 0,status:a.status||"success",...b}}function l(a){let b=function({provider:a,model:b,tokens:c,connectionId:e,clientKeyId:h,endpoint:i,requestId:j=null,label:k="USAGE"}){if(!c||"object"!=typeof c)return;let l=c.input_tokens??c.prompt_tokens??0,m=c.output_tokens??c.completion_tokens??0;if(0===l&&0===m)return;let n=new Date().toLocaleTimeString("en-US",{hour12:!1,hour:"2-digit",minute:"2-digit",second:"2-digit"}),o=e?` | account=${e.slice(0,8)}...`:"";console.log(`${f.lm.green}[${n}] 📊 [${k}] ${a.toUpperCase()} | in=${l} | out=${m}${o}${f.lm.reset}`);let p=(0,g._6)(c)||{prompt_tokens:c.prompt_tokens??c.input_tokens??0,completion_tokens:c.completion_tokens??c.output_tokens??0};return(0,d.sZ)({provider:a||"unknown",model:b||"unknown",tokens:p,timestamp:new Date().toISOString(),connectionId:e||void 0,clientKeyId:h||void 0,endpoint:i||null,requestId:j||null})}(a);if(a.clientKeyId)return b;b?.catch?.(a=>console.error("[USAGE] save failed:",a?.message||a))}},30369:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{SB:()=>f.getExecutor}),c(46052),c(4630),c(28730),c(60290),c(27335),c(19956),c(48664),c(17717),c(66451),c(49263),c(41029),c(18129);var e=c(36362);c(15575);var f=c(48400);c(89865),c(6755);var g=a([e,f]);[e,f]=g.then?(await g)():g,d()}catch(a){d(a)}})},34267:(a,b,c)=>{c.d(b,{gH:()=>f});var d=c(57642),e=c(60290);function f({body:a,reexecute:b,signal:c,log:g,stallTimeoutMs:h=e.xM,baseDelayMs:i=500,onExhausted:j}){let k=new TextEncoder,l=null,m=!1,n=null,o=null,p=()=>{let a=n;n=null,o&&(c?.removeEventListener?.("abort",o),o=null),a?.()};return new ReadableStream({async start(e){l=a.getReader();let f=!1,q=null,r=async a=>{let b;if(!m&&(await (b=e.desiredSize,m||c?.aborted||null==b||b>0?Promise.resolve():new Promise(a=>{n=a,c?.addEventListener&&(o=p,c.addEventListener("abort",o,{once:!0}))})),!(m||c?.aborted)))try{e.enqueue(k.encode(a))}catch{m=!0}},s=()=>{if(!m)try{e.close()}catch{}},t=()=>{p();try{l.cancel().catch(()=>{})}catch{}if(m)return;let a=Error("Request aborted");a.name="AbortError";try{e.error(a)}catch{}},u=async a=>{if(m)return;if(c?.aborted)return t();try{await Promise.resolve(j?.(a,{upstreamError:q?.error||null}))}catch{}let b=q?.kind==="error_object"?q.line:`data: ${JSON.stringify({error:{code:502,status:"EMPTY_RESPONSE",message:a}})}`;await r(`${b}
68
68
 
69
- `),s()};for(let a=0;;a++){let e=new TextDecoder,j="",k=null,n=!1,o="empty",p=Date.now(),v=!1,w=null,x=()=>{w&&(clearInterval(w),w=null)};h>0&&(w=setInterval(()=>{if(Date.now()-p>=h){v=!0;try{l.cancel().catch(()=>{})}catch{}}},Math.min(h,5e3)));try{for(;;){let a;if(m)return;if(c?.aborted)return t();try{a=await l.read()}catch{if(m)return;if(c?.aborted)return t();o=v?"stall":"read_error";break}if(m)return;if(c?.aborted)return t();if(v){o="stall";break}p=Date.now();let{done:b,value:g}=a;if(b)break;let h=(j+=e.decode(g,{stream:!0})).split("\n");for(let a of(j=h.pop(),h)){let b;if(k)continue;let c=a.trim();if(!c.startsWith("data:")){await r(a+"\n");continue}let e=c.slice(5).trim();if(!e||"[DONE]"===e){await r(a+"\n");continue}try{b=JSON.parse(e)}catch{await r(a+"\n");continue}let g=function(a,b){let c=a.response||a;if(!c||"object"!=typeof c)return{action:"forward"};let e=c.error||a.error;if(e)return b?{action:"forward",terminal:!0}:{action:"hold",kind:"error_object",reason:e.status||e.message||"error",error:e};if(!c.candidates?.length&&c.promptFeedback?.blockReason)return{action:"forward",terminal:!0};let f=c.candidates?.[0];if(!f)return{action:"forward"};let g=!1;for(let a of f.content?.parts||[])if(a.functionCall||a.inlineData?.data||a.inline_data?.data||!0!==a.thought&&"string"==typeof a.text&&a.text.trim().length>0){g=!0;break}let h=f.finishReason&&String(f.finishReason).toUpperCase();return h?d.zh.has(h)||h===d.a_.MAX_TOKENS||g||b?{action:"forward",meaningful:g,terminal:!0}:{action:"hold",kind:d.lW.has(h)?"error_finish":"stop",reason:h}:{action:"forward",meaningful:g}}(b,f);if(g.meaningful&&(f=!0),"hold"===g.action){q=k={kind:g.kind,reason:g.reason,error:g.error||null,line:a};continue}g.terminal&&(n=!0),await r(a+"\n")}}}finally{x()}if(f||n){let a=j+e.decode();!k&&a&&await r(a),s();return}let y=k?k.reason:o;if(g?.warn?.("STREAM",`ANTIGRAVITY | empty (${y}) | attempt ${a+1}/3`),a>=2)return u(`empty response from upstream (${y}) after ${a+1} attempts`);if(await function(a,b){return new Promise(c=>{let d,e=()=>{clearTimeout(d),c()};d=setTimeout(()=>{a?.removeEventListener?.("abort",e),c()},b),a?.addEventListener?.("abort",e,{once:!0})})}(c,i*2**a),m)return;if(c?.aborted)return t();try{let a=await b();if(m||c?.aborted){try{await a.cancel()}catch{}m||t();return}l=a.getReader()}catch(a){if(m)return;if(a?.name==="AbortError"||c?.aborted)return t();return u(a?.message||"retry request failed")}}},pull(){p()},cancel(a){m=!0,p();try{l?.cancel(a)?.catch?.(()=>{})}catch{}}})}},36362:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{w:()=>U});var e=c(17717),f=c(48664),g=c(94454),h=c(19956),i=c(43788),j=c(71413),k=c(6755),l=c(15575),m=c(41029),n=c(49263),o=c(18129),p=c(70718),q=c(46052),r=c(27335),s=c(4630),t=c(89865),u=c(60290),v=c(2735),w=c(12407),x=c(48400),y=c(29461),z=c(78255),A=c(15142),B=c(61229),C=c(34267),D=c(18367),E=c(27226),F=c(28190),G=c(10640),H=c(37208),I=c(16799),J=c(92),K=c(10089),L=c(91576),M=c(12197),N=c(54070),O=c(39232),P=c(90197),Q=c(43904),R=c(94501),S=c(96145),T=a([x]);x=(T.then?(await T)():T)[0];let V=new Set([h.h.GEMINI,h.h.GEMINI_CLI,h.h.ANTIGRAVITY,h.h.VERTEX]);async function U({body:a,modelInfo:b,credentials:c,log:d,onCredentialsRefreshed:T,onRequestSuccess:W,onDisconnect:X,onUpstreamEmptyExhausted:Y,clientRawRequest:Z,connectionId:$,userAgent:_,clientKeyId:aa,ccFilterNaming:ab,rtkEnabled:ac,vaultEnabled:ad,vaultThresholdKB:ae,vaultTtlHours:af,vaultConversationId:ag,headroomEnabled:ah,headroomUrl:ai,headroomCompressUserMessages:aj,cavemanEnabled:ak,cavemanLevel:al,ponytailEnabled:am,ponytailLevel:an,pxpipeEnabled:ao,pxpipeMinChars:ap,pxpipeTimeoutMs:aq,pxpipeTransform:ar,onPxpipeEvent:as,sourceFormatOverride:at,providerThinking:au,bypassNativePassthrough:av,vaultInternal:aw,abortSignal:ax}){let ay,az,aA,aB,aC,aD;if(ax?.aborted)return(0,t.A1)(499,"Request aborted");let{provider:aE,model:aF}=b,aG=Date.now(),aH=at||(0,e.Tz)(a),aI=[],aJ=(a,b,c=aH)=>{if(aH!==h.h.CLAUDE)return;if(c!==h.h.CLAUDE)return void aI.push({stage:a,format:c,notApplicable:!0});let d=(0,j.O)(b);d?aI.push({stage:a,format:c,...d}):aI.length&&aI.push({stage:a,format:c,messageCount:b?.messages?.length||0,toolCalls:0,toolResults:0})};aJ("inbound",a);let aK=(0,v.c)(a,aF,_,ab);if(aK)return aK;let aL=r.Xg[aE]||aE,aM=(0,r.ux)(aL,aF),aN=(0,r.ez)(aL,aF),aO=aM||(0,e.jJ)(aE,c),aP=(0,e.oF)(aE,aH,aN),aQ=aP||(0,e.oF)(aE,aO,aN),aR=aP?.format===aH;c&&(c.runtimeTransport=aQ||void 0);let aS=aR?aH:aQ?.format||aO,aT=(0,r.cY)(aL,aF),aU=(0,r.kt)(aL,aF);if(au?.mode&&"auto"!==au.mode){let b=au.mode;"on"!==b||a.thinking?"off"!==b||a.thinking?a.reasoning_effort||(a={...a,reasoning_effort:b}):a={...a,thinking:{type:"disabled"}}:(console.log("Injecting provider-level thinking config override: on"),a={...a,thinking:{type:"enabled",budget_tokens:1e4}})}let aV=Z?.headers?.accept||"",aW=aV.includes("application/json"),aX=aV.includes("text/event-stream"),aY=aH===h.h.ANTIGRAVITY||aH===h.h.GEMINI||aH===h.h.GEMINI_CLI,aZ=!0===a.stream||aY&&!(aW&&!aX),a$=s.xq[aE]?.forceStream===!0,a_=!!a$||!1!==a.stream,a0=(0,r.OA)(aL,aF);"imageGen"===a0&&("antigravity"===aE||"gemini-cli"===aE)&&(a_=!1);let a1=(0,E.Jz)(Z?.headers||{},a);"deepseek-tui"===a1&&!0!==a.stream&&(a_=!1),!aW||aX||!0===a.stream||a$||(a_=!1),a&&"object"==typeof a&&(a={...a,stream:a_});let a2=await (0,p.q7)(aH,aS,aF);Z&&a2.logClientRawRequest(Z.endpoint,Z.body,Z.headers),a2.logRawRequest(a),d?.debug?.("FORMAT",`${aH} → ${aS} | stream=${a_}`);let a3=(0,E.Jz)(Z?.headers||{},a);(0,E.lP)(a3,Z?.headers||{},a);let a4=!av&&(0,E.Qf)(a3,aE);if(c&&(c.rawHeaders=Z?.headers||{}),!a4){let b=(0,Q.nl)(aE,aF);(0,R.X)(a,aH,b)&&d?.debug?.("MODALITY",`stripped unsupported media for ${aE}/${aF}`);try{let b=await (0,S.C)(a,aH,aS,{signal:ax});b>0&&d?.debug?.("MODALITY",`prefetched ${b} remote image(s) for ${aS}`)}catch(a){d?.warn?.("MODALITY",`image prefetch failed: ${a.message}`)}}let a5=(0,G.Ay)(a);if(a5>0&&d?.debug?.("TOOLCLEAN",`pre-translation: stripped ${a5} orphaned tool result(s)`),a4)d?.debug?.("PASSTHROUGH",`${a3} → ${aE} | native lossless`),ay={...a,model:(0,g.kD)(aU)},"claude"===a3&&(0,i.ui)(ay,ay.model);else{if(!(ay=(0,f.GH)(aH,aS,aU,a,a_,c,aE,a2,aT,$,a3)))return(0,w.uw)(aF,aE,$,!1,!0),(0,t.A1)(u.gx.BAD_REQUEST,`Failed to translate request for ${aH} → ${aS}`);if(az=ay._toolNameMap,delete ay._toolNameMap,ay.model=(0,g.kD)(aU),("claude"===aE||aE?.startsWith("anthropic-compatible"))&&"object"==typeof ay){let a=c?.accessToken||c?.apiKey||null;if("string"==typeof a&&a.includes("sk-ant-oat"))try{let b=c?._clientSessionId||(0,L.oV)({headers:Z?.headers,body:ay,connectionId:$,scope:"claude"});ay=await (0,K.Dz)(ay,a,b,c?.connectionId||a,{})}catch{}}}if(aJ("normalized",ay,a4?aH:aS),"claude"===a3&&Array.isArray(ay.tools)){let{tools:a,stripped:b}=(0,F.F)(ay.tools);b.length>0&&(ay.tools=a,d?.debug?.("TOOLDEDUP",`stripped ${b.length}: ${b.slice(0,3).join(", ")}${b.length>3?"...":""}`))}let a6=a4?aH:aS;"tts"===(0,r.OA)(aL,aF)&&ay.messages&&(ay.messages=ay.messages.filter(a=>"tool"!==a.role),delete ay.tools);let a7=null;try{if(ad&&ag&&Array.isArray(ay?.tools)&&ay.tools.length>0&&(aH===h.h.OPENAI||aH===h.h.CLAUDE)){let a=1024*(0,M.u1)(ae??8),b=3600*Math.max(1,Number(af??24))*1e3;a7=await (0,M.f3)(ay,{conversationId:ag,thresholdBytes:a,ttlMs:b,log:d})}}catch(a){d?.warn?.("VAULT",`store failed (dropped): ${a?.message||a}`)}let a8=Z?.headers?.[u.SA]?.toLowerCase()!=="off";aJ("vault",ay,a6);let a9=(0,J.BI)(ay,a8&&ac),ba=(0,J.fT)(a9);if(ba&&console.log(ba),a7?.vaulted>0){let a=a7.bytesBefore-a7.bytesAfter;(0,N.DL)(a7.vaulted,a),d?.info?.("VAULT",`externalized ${a7.vaulted} tool result(s), saved ${a}B`)}aJ("rtk",ay,a6);let bb={},bc=await (0,O.SI)(ay,{enabled:a8&&ah,url:ai,model:aU,format:a6,compressUserMessages:aj,diagnostics:bb}),bd=(0,O.Nv)(bc),be=(0,O.O2)(bb);bd?(d?.info?.("HEADROOM",`${bd}${be?` | ${be}`:""}`),(0,O.cB)(bc,bb)&&d?.warn?.("HEADROOM",`reported token delta, but outbound JSON shrank <5%; provider may bill near-original payload | ${be}`)):a8&&ah&&d?.warn?.("HEADROOM",`skipped: ${bb.reason||"compression unavailable"}${bb.endpoint?` (${bb.endpoint})`:""}`),aJ("headroom",ay,a6);let bf=(0,G.Ay)(ay);bf>0&&d?.debug?.("TOOLCLEAN",`post-compression: stripped ${bf} orphaned tool result(s)`),aJ("post-strip",ay,a6),a8&&ak&&al&&((0,H.p)(ay,a6,al),d?.debug?.("CAVEMAN",`${al} | ${a6}`)),a8&&am&&an&&((0,I.U)(ay,a6,an),d?.debug?.("PONYTAIL",`${an} | ${a6}`));let bg=null;if(a8&&ao){let a=await (0,P.H)(ay,{enabled:!0,format:a6,model:aU,minChars:ap,timeoutMs:aq,transform:ar});bg=a.summary;let b=(0,P._)(bg);b?d?.info?.("PXPIPE",b):d?.debug?.("PXPIPE",`skipped: ${bg?.reason||"unknown"}`),a.body&&(ay=a.body);try{as&&as({provider:aE,model:aF,...bg})}catch{}}if(ay&&"object"==typeof ay)if(V.has(a6)){let{stream:a,request:b,...c}=ay;if(b&&"object"==typeof b){let{stream:a,...d}=b;ay={...c,request:d}}else ay=c}else ay.stream!==a_&&(ay={...ay,stream:a_});a4&&"claude"===a3&&(0,i._W)(ay);let bh=(0,x.getExecutor)(aE);(0,w.uw)(aF,aE,$,!0),aw||(0,w.E5)({model:aF,provider:aE,connectionId:$,status:"PENDING"}).catch(()=>{});let bi=ay.messages?.length||ay.input?.length||ay.contents?.length||ay.request?.contents?.length||0;d?.debug?.("REQUEST",`${aE.toUpperCase()} | ${aF} | ${bi} msgs`);let bj=(0,l.jd)({onDisconnect:a=>{(0,w.uw)(aF,aE,$,!1),X&&X(a)},onError:()=>(0,w.uw)(aF,aE,$,!1),log:d,provider:aE,model:aF});if(ax)if(ax.aborted)try{bj.abort()}catch{}else ax.addEventListener("abort",()=>{try{bj.abort()}catch{}},{once:!0});let bk=(0,q.$6)(c);if(bk.vercelRelayUrl){let a=c?.connectionName||c?.connectionId||"unknown",b=c?.providerSpecificData?.connectionProxyPoolId||"none";d?.info?.("PROXY",`${aE.toUpperCase()} | ${aF} | conn=${a} | pool=${b} | vercel-relay=${bk.vercelRelayUrl}`)}else if(bk.connectionProxyEnabled&&bk.connectionProxyUrl){let a=bk.connectionProxyUrl;try{let b=new URL(bk.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",`${aE.toUpperCase()} | ${aF} | conn=${e} | pool=${b} | url=${a}`)}if(bk.connectionProxyEnabled&&bk.connectionNoProxy){let a=c?.connectionName||c?.connectionId||"unknown";d?.debug?.("PROXY",`${aE.toUpperCase()} | ${aF} | conn=${a} | no_proxy=${bk.connectionNoProxy}`)}aJ("final",ay,a6);let bl=(0,y.Fo)(a,a_);aI.length&&(bl.toolHistoryDiagnostics=aI);let bm=()=>ax?.aborted||bj.signal?.aborted,bn=async()=>{try{await aA?.body?.cancel?.()}catch{}return(0,w.uw)(aF,aE,$,!1),a2?.close?.(),(0,t.A1)(499,"Request aborted")};try{if(bm())return bn();let a=await bh.execute({model:aF,body:structuredClone(ay),stream:a_,credentials:c,signal:bj.signal,log:d,proxyOptions:bk});aA=a.response,aB=a.url,aC=a.headers,aD=a.transformedBody,a2.logTargetRequest(aB,aC,aD)}catch(c){let a=bm()||c?.name==="AbortError";if((0,w.uw)(aF,aE,$,!1,!a),a2?.close?.(),(0,w.ox)((0,y.$R)({provider:aE,model:aF,connectionId:$,latency:{ttft:0,total:Date.now()-aG},tokens:{prompt_tokens:0,completion_tokens:0},request:bl,providerRequest:ay||null,response:{error:c?.message||(a?"Request aborted":String(c)),status:a?499:502,thinking:null},status:"error",pxpipe:bg||void 0,rtk:a9||void 0})).catch(()=>{}),a)return bj.handleError(new DOMException("Request aborted","AbortError")),(0,t.A1)(499,"Request aborted");let b=(0,t.lR)(c,aE,aF,u.gx.BAD_GATEWAY);return console.log(`${k.lm.red}[ERROR] ${b}${k.lm.reset}`),(0,t.A1)(u.gx.BAD_GATEWAY,b)}if(bm())return bn();let bo=null;if(!bh.noAuth&&(aA.status===u.gx.UNAUTHORIZED||aA.status===u.gx.FORBIDDEN))try{let a=await (0,m.qZ)(async()=>{bj.signal?.throwIfAborted();let a=await (0,o.MF)(aE,c,()=>bh.refreshCredentials(c,d,bk));return a||bj.signal?.throwIfAborted(),a?.refreshToken&&a.refreshToken!==c.refreshToken&&(a.accessToken&&(c.accessToken=a.accessToken),c.refreshToken=a.refreshToken),a},3,d,bj.signal);if(a?.accessToken||a?.copilotToken){if(d?.info?.("TOKEN",`${aE.toUpperCase()} | refreshed`),Object.assign(c,a),T)try{await T(a)}catch(a){d?.warn?.("TOKEN",`onCredentialsRefreshed failed: ${a.message}`)}if(bm())return bn();try{let a=await bh.execute({model:aF,body:structuredClone(ay),stream:a_,credentials:c,signal:bj.signal,log:d,proxyOptions:bk});try{await aA.body?.cancel?.()}catch{}aA=a.response,aB=a.url,aC=a.headers??aC,aD=a.transformedBody??aD,a2.logTargetRequest(aB,aC,aD)}catch{d?.warn?.("TOKEN",`${aE.toUpperCase()} | retry after refresh failed`)}}else if((0,m.jT)(a)){let b=a.code||"invalid_grant";if(bo=`OAuth refresh token expired or revoked (${b}): reconnect the ${aE} account in the Switchboard dashboard`,d?.warn?.("TOKEN",`${aE.toUpperCase()} | refresh token revoked, re-auth required (${b})`),T)try{await T({reauthRequired:!0,testStatus:n.RU,lastError:bo,lastErrorAt:new Date().toISOString()})}catch(a){d?.warn?.("TOKEN",`onCredentialsRefreshed failed: ${a.message}`)}}else d?.warn?.("TOKEN",`${aE.toUpperCase()} | refresh failed`)}catch(a){d?.warn?.("TOKEN",`${aE.toUpperCase()} | refresh threw: ${a.message}`)}if(bm())return bn();if(!aA.ok){(0,w.uw)(aF,aE,$,!1,!0),a2?.close?.();let{statusCode:a,message:b,resetsAtMs:c}=await (0,t.zL)(aA,bh),d=bo||b;(0,w.ox)((0,y.$R)({provider:aE,model:aF,connectionId:$,latency:{ttft:0,total:Date.now()-aG},tokens:{prompt_tokens:0,completion_tokens:0},request:bl,providerRequest:aD||ay||null,response:{error:d,status:a,thinking:null},status:"error",pxpipe:bg||void 0,rtk:a9||void 0})).catch(()=>{});let e=(0,t.lR)(Error(d),aE,aF,a);return console.log(`${k.lm.red}[ERROR] ${e}${k.lm.reset}`),a2.logError(Error(d),aD||ay),(0,t.A1)(a,e,c)}let bp=async()=>{bj.signal?.throwIfAborted();let a=await bh.execute({model:aF,body:structuredClone(ay),stream:a_,credentials:c,signal:bj.signal,log:d,proxyOptions:bk});if(bm()){try{await a.response.body?.cancel?.()}catch{}throw new DOMException("Request aborted","AbortError")}if(!a.response.ok){let{statusCode:b,message:c}=await (0,t.zL)(a.response,bh);throw Error(`[${b}] ${c}`)}if(!a.response.body)throw Error("upstream returned no body");return a.response.body},bq="antigravity"===aE||"gemini-cli"===aE||"gemini"===aE||"vertex"===aE;bq&&a_&&aA.body?aA=new Response((0,C.gH)({body:aA.body,reexecute:bp,signal:bj.signal,log:d,onExhausted:(a,{upstreamError:b}={})=>{if(!Y)return;let c=bh.parseRetryFromErrorMessage?.(b?.message||a);return Y((0,t.lR)(Error(a),aE,aF,u.gx.BAD_GATEWAY),c?Date.now()+c:void 0)}}),{status:aA.status,headers:aA.headers}):a_&&aA.body&&(aA=new Response((0,D.Z)({body:aA.body,reexecute:bp,signal:bj.signal,log:d,maxRetries:+("claude"!==aE)}),{status:aA.status,headers:aA.headers}));let br=`${Date.now()}-${Math.random().toString(36).slice(2,11)}`,bs={provider:aE,model:aF,body:a,stream:a_,requestConfig:bl,translatedBody:ay,finalBody:aD,requestStartTime:aG,connectionId:$,clientKeyId:aa,clientRawRequest:Z,onRequestSuccess:W,requestId:br,pxpipe:bg||void 0,streamSignal:bj.signal},bt=a=>{aw||(0,w.E5)({model:aF,provider:aE,connectionId:$,...a}).catch(()=>{})},bu=()=>(0,w.uw)(aF,aE,$,!1);if(!aZ&&a$){let a=await (0,z.I)({...bs,providerResponse:aA,sourceFormat:aH,targetFormat:aS,trackDone:bu,appendLog:bt});if(a)return bj.handleComplete(),a}if(!a_){let a=await (0,A.N)({...bs,providerResponse:aA,sourceFormat:aH,targetFormat:aS,reqLogger:a2,toolNameMap:az,trackDone:bu,appendLog:bt});return bj.handleComplete(),a}let{onStreamComplete:bv,onStreamFailure:bw,streamDetailId:bx}=(0,B.$)({...bs});return(0,B.M)({...bs,providerResponse:aA,sourceFormat:aH,targetFormat:aS,userAgent:_,reqLogger:a2,toolNameMap:az,streamController:bj,onStreamComplete:bv,onStreamFailure:bw,streamDetailId:bx,firstChunkTimeoutMs:bq?void 0:0})}d()}catch(a){d(a)}})},37208:(a,b,c)=>{c.d(b,{p:()=>n});var d=c(17429);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])}},39232:(a,b,c)=>{c.d(b,{Nv:()=>l,O2:()=>m,SI:()=>k,cB:()=>n});var d=c(37377),e=c(29229),f=c(97579);function g(a){try{return new TextEncoder().encode(JSON.stringify(a)||"").length}catch{return 0}}function h(a){let b=Array.isArray(a?.messages)?a.messages:Array.isArray(a?.input)?a.input:null,c=b?.filter(a=>a?.role==="tool"||a?.role==="function"||a?.tool_calls?.length||a?.content?.some?.(a=>a?.type==="tool_use"||a?.type==="tool_result"))||[];return{bodyBytes:g(a),messageBytes:b?g(b):0,toolSchemaBytes:g(a?.tools||[]),toolHistoryBytes:g(c)}}function i(a,b){a&&!a.reason&&(a.reason=b)}async function j(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 k(a,{enabled:b,url:c,model:g,format:l,compressUserMessages:m,timeoutMs:n=3e3,diagnostics:o=null}={}){if(!b)return i(o,"disabled"),null;if(!c)return i(o,"missing proxy URL"),null;if(!a)return i(o,"missing request body"),null;try{if(o&&(o.before=h(a)),"claude"===l){let b=Array.isArray(a.system)&&a.system[0]?.text?.startsWith?.("x-anthropic-billing-header:")?a.system[0]:null,f=(0,d.t)(g,a,!1);if(!Array.isArray(f?.messages))return i(o,"Claude request did not translate to messages[]"),null;let k=await j(c,f.messages,g,n,m,o||{});if(!k)return null;let l=(0,e.p)(g,{...f,messages:k.messages},!1);return Array.isArray(l?.messages)&&(a.messages=l.messages),l?.system!==void 0&&(a.system=b?[b,...Array.isArray(l.system)?l.system:[{type:"text",text:String(l.system)}]]:l.system),o&&(o.after=h(a)),k}if("openai-responses"===l){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(o,"skipped: openai-responses tool/reasoning input is not safe to compress"),null;let b=(0,f.Zj)(g,a,!1);if(!Array.isArray(b?.messages))return null;let d=await j(c,b.messages,g,n,m,o||{});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),o&&(o.after=h(a)),d}let b=Array.isArray(a.messages)?"messages":Array.isArray(a.input)?"input":null;if(!b)return i(o,`unsupported ${l||"unknown"} request shape`),null;let k=await j(c,a[b],g,n,m,o||{});if(!k)return null;return a[b]=k.messages,o&&(o.after=h(a)),k}catch(a){return i(o,`unexpected error: ${a?.message||String(a)}`),null}}function l(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 m(a){let b=a?.before,c=a?.after;if(!b||!c)return"";let d=b.bodyBytes>0?((b.bodyBytes-c.bodyBytes)/b.bodyBytes*100).toFixed(1):"0.0";return`body=${b.bodyBytes}B→${c.bodyBytes}B messages=${b.messageBytes}B→${c.messageBytes}B tools=${b.toolSchemaBytes||0}B→${c.toolSchemaBytes||0}B toolHistory=${b.toolHistoryBytes||0}B→${c.toolHistoryBytes||0}B effective=${d}%`}function n(a,b,c=.05){if(!a?.tokens_saved||a.tokens_saved<=0)return!1;let d=b?.before?.bodyBytes||0,e=b?.after?.bodyBytes||0;return!(d<=0)&&!(e<=0)&&e>=d*(1-c)}},49612:(a,b,c)=>{c.d(b,{g:()=>l,p:()=>m});var d=c(19956),e=c(98173),f=c(57642);function g(a){if(!a)return{};if("object"==typeof a)return a;try{return JSON.parse(a)}catch{return{}}}function h(a){return a?.choices?.[0]||{}}function i(a){return h(a).message||{}}function j(a){let b=i(a).tool_calls;return Array.isArray(b)?b:[]}function k(a){let b=a||{},c=b.prompt_tokens||b.input_tokens||0,d=b.completion_tokens||b.output_tokens||0,e={prompt_tokens:c,completion_tokens:d,total_tokens:b.total_tokens||c+d},f=b.prompt_tokens_details||{},g=b.input_tokens_details||{},h=f.cached_tokens||g.cached_tokens||b.cache_read_input_tokens||0,i=f.cache_creation_tokens||g.cache_creation_tokens||b.cache_creation_input_tokens||0;(h>0||i>0)&&(e.prompt_tokens_details={},h>0&&(e.prompt_tokens_details.cached_tokens=h),i>0&&(e.prompt_tokens_details.cache_creation_tokens=i));let j=b.completion_tokens_details||{},k=b.output_tokens_details||{},l=j.reasoning_tokens||k.reasoning_tokens||0;return l>0&&(e.completion_tokens_details={reasoning_tokens:l}),e}function l(a,b){let c,d=Array.isArray(a?.output)?a.output:[],e=d.filter(a=>a?.type==="reasoning").flatMap(a=>Array.isArray(a.summary)?a.summary:[]).map(a=>a?.text||"").join(""),f=d.filter(a=>a?.type==="message"),g=[...f].reverse().find(a=>(Array.isArray(a.content)?a.content:[]).some(a=>"string"==typeof a.text&&a.text.length>0))||f[f.length-1]||null,h=d.filter(a=>a?.type==="refusal").map(a=>a?.refusal||"").join(""),i=(Array.isArray(g?.content)?g.content:[]).map(a=>("output_text"===a.type||"refusal"===a.type||"string"==typeof a.text)&&(a.text||a.refusal)||"").join("")||h,j=d.filter(a=>a?.type==="function_call"||a?.type==="custom_tool_call").map((a,b)=>({id:a.call_id||`call_${a.name||"tool"}_${b}`,type:"function",function:{name:a.name||"",arguments:"string"==typeof a.arguments?a.arguments:JSON.stringify(a.arguments??a.input??{})}})),l=a?.usage||{},m={role:"assistant",content:i||(j.length>0?null:"")};if(e&&(m.reasoning_content=e),j.length>0&&(m.tool_calls=j),j.length>0)c="tool_calls";else if(h&&""===i.split(h).join("").trim())c="content_filter";else{let b=a?.status;c="completed"===b||"done"===b?"stop":"failed"===b?"error":"incomplete"===b?a?.incomplete_details?.reason==="content_filter"?"content_filter":"length":"stop"}return{id:a?.id||`chatcmpl-${Date.now()}`,object:"chat.completion",created:a?.created_at||Math.floor(Date.now()/1e3),model:a?.model||b||"unknown",choices:[{index:0,message:m,finish_reason:c}],usage:k(l)}}function m(a,b){switch(b){case d.h.CLAUDE:return function(a){let b,c,f,k,l,m;if(!a?.choices?.[0])return a;let n=h(a),o=i(a),p=[],q=o.reasoning_content||o.provider_specific_fields?.reasoning_content||"";for(let b of(q&&p.push({type:"thinking",thinking:q}),"string"==typeof o.content&&o.content.length>0&&p.push({type:"text",text:o.content}),j(a))){let a=b.function||{};p.push({type:"tool_use",id:b.id||`toolu_${Date.now()}_${p.length}`,name:a.name||b.name||"",input:g(a.arguments||b.arguments)})}0===p.length&&p.push({type:"text",text:""});let r=a.usage||{};return{id:String(a.id||`msg_${Date.now()}`).replace(/^chatcmpl-/,""),type:"message",role:"assistant",model:a.model||"unknown",content:p,stop_reason:(0,e.Q)(n.finish_reason,d.h.CLAUDE),stop_sequence:null,usage:(c={input_tokens:(b=r||{}).prompt_tokens||b.input_tokens||0,output_tokens:b.completion_tokens||b.output_tokens||0},f=b.prompt_tokens_details||{},k=b.input_tokens_details||{},l=f.cached_tokens||k.cached_tokens||b.cache_read_input_tokens||0,m=f.cache_creation_tokens||k.cache_creation_tokens||b.cache_creation_input_tokens||0,l>0&&(c.cache_read_input_tokens=l),m>0&&(c.cache_creation_input_tokens=m),c)}}(a);case d.h.GEMINI:case d.h.GEMINI_CLI:case d.h.ANTIGRAVITY:case d.h.VERTEX:return function(a){if(!a?.choices?.[0])return a;let b=i(a),c=k(a.usage||{}),d=[],e=b.reasoning_content||b.provider_specific_fields?.reasoning_content||"";for(let c of(e&&d.push({text:e,thought:!0}),"string"==typeof b.content&&b.content.length>0&&d.push({text:b.content}),j(a))){let a=c.function||{};d.push({functionCall:{name:a.name||c.name||"",args:g(a.arguments||c.arguments)}})}return 0===d.length&&d.push({text:""}),{response:{candidates:[{content:{role:"model",parts:d},finishReason:function(a){switch(a){case f.bC.LENGTH:return f.a_.MAX_TOKENS;case f.bC.CONTENT_FILTER:return f.a_.SAFETY;case f.bC.ERROR:return f.a_.MALFORMED_FUNCTION_CALL;default:return f.a_.STOP}}(h(a).finish_reason),index:0}],usageMetadata:{promptTokenCount:c.prompt_tokens,candidatesTokenCount:c.completion_tokens,totalTokenCount:c.total_tokens},modelVersion:a.model||"unknown",responseId:a.id||`resp_${Date.now()}`}}}(a);case d.h.OLLAMA:return function(a){if(!a?.choices?.[0])return a;let b=h(a),c=i(a),d={role:"assistant",content:"string"==typeof c.content?c.content:""};c.reasoning_content&&(d.thinking=c.reasoning_content);let e=j(a).map(a=>{let b=a.function||{};return{id:a.id,function:{name:b.name||a.name||"",arguments:g(b.arguments||a.arguments)}}});e.length>0&&(d.tool_calls=e);let f=a.usage||{};return{model:a.model||"unknown",created_at:a.created?new Date(1e3*a.created).toISOString():new Date().toISOString(),message:d,done:!0,done_reason:"tool_calls"===b.finish_reason?"stop":b.finish_reason||"stop",prompt_eval_count:f.prompt_tokens||f.input_tokens||0,eval_count:f.completion_tokens||f.output_tokens||0}}(a);case d.h.OPENAI_RESPONSES:case d.h.OPENAI_RESPONSE:return function(a){let b;if(!a?.choices?.[0])return a;let c=i(a),d=a.usage||{},e=[],f=0,g=c.reasoning_content||c.provider_specific_fields?.reasoning_content||"";g&&(e.push({type:"reasoning",id:`rs_${a.id||Date.now()}_${f}`,summary:[{type:"summary_text",text:g}]}),f++);let l="string"==typeof c.content?c.content:"";l&&(e.push({type:"message",id:`msg_${a.id||Date.now()}_${f}`,role:"assistant",content:[{type:"output_text",text:l,annotations:[],logprobs:[]}]}),f++);let m=j(a);if(m.length>0)for(let a of m){let b=a.function||{},c=a.id||`call_${b.name||"tool"}_${f}`;e.push({type:"function_call",id:`fc_${c}`,call_id:c,name:b.name||a.name||"",arguments:"string"==typeof b.arguments?b.arguments:JSON.stringify(b.arguments||{})}),f++}else l||g||e.push({type:"message",id:`msg_${a.id||Date.now()}_${f}`,role:"assistant",content:[{type:"output_text",text:"",annotations:[],logprobs:[]}]});let n=h(a).finish_reason||"stop",o="completed";"length"===n?(o="incomplete",b={reason:"max_output_tokens"}):"content_filter"===n?(o="incomplete",b={reason:"content_filter"}):"error"===n&&(o="failed");let p=k(d);return{id:a.id?`resp_${a.id}`:`resp_${Date.now()}`,object:"response",created_at:a.created||Math.floor(Date.now()/1e3),status:o,...b?{incomplete_details:b}:{},output:e,usage:{input_tokens:p.prompt_tokens,output_tokens:p.completion_tokens,total_tokens:p.total_tokens}}}(a);case d.h.KIRO:case d.h.CURSOR:case d.h.COMMANDCODE:default:return a}}},54070:(a,b,c)=>{c.d(b,{DL:()=>g,VS:()=>h,_s:()=>i});let d=global.__vaultStats??={entries:0,hits:0,bytesSaved:0};function e(a){try{let b=Number(a);if(!Number.isFinite(b)||b<0)return 0;return Math.trunc(b)}catch{return 0}}function f(a,b){try{let c=e(d[a])+e(b);d[a]=Number.isSafeInteger(c)?c:Number.MAX_SAFE_INTEGER}catch{}}function g(a,b){try{f("entries",a),f("bytesSaved",b)}catch{}}function h(a=1){try{f("hits",a)}catch{}}function i(){try{return{entries:e(d.entries),hits:e(d.hits),bytesSaved:e(d.bytesSaved)}}catch{return{entries:0,hits:0,bytesSaved:0}}}},61229:(a,b,c)=>{c.d(b,{$:()=>p,M:()=>o});var d=c(19956),e=c(48664),f=c(6755),g=c(15575),h=c(4630),i=c(60290),j=c(48330),k=c(29461),l=c(12407),m=c(4905);let n={[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 o({providerResponse:a,provider:b,model:c,sourceFormat:p,targetFormat:q,userAgent:r,body:s,stream:t,requestConfig:u,translatedBody:v,finalBody:w,requestStartTime:x,connectionId:y,clientKeyId:z,requestId:A,clientRawRequest:B,onRequestSuccess:C,reqLogger:D,toolNameMap:E,streamController:F,onStreamComplete:G,onStreamFailure:H,streamDetailId:I,pxpipe:J,firstChunkTimeoutMs:K=i.Z1,firstProgressTimeoutMs:L=i.Z1,progressStallTimeoutMs:M=i.xM}){let N=(a.headers.get("content-type")||"").toLowerCase();if((N.includes("application/x-ndjson")||N.includes("application/ndjson"))&&a.body){let b,c,d,e;a=new Response(a.body.pipeThrough((b=new TextDecoder,c=new TextEncoder,d="",new TransformStream({transform(a,e){let f=(d+=b.decode(a,{stream:!0})).split("\n");for(let a of(d=f.pop()||"",f)){let b=a.trim();if(b){if(b.startsWith("data:")||b.startsWith("event:")){e.enqueue(c.encode(a+"\n"));continue}try{JSON.parse(b),e.enqueue(c.encode(`data: ${b}
69
+ `),s()};for(let a=0;;a++){let e=new TextDecoder,j="",k=null,n=!1,o="empty",p=Date.now(),v=!1,w=null,x=()=>{w&&(clearInterval(w),w=null)};h>0&&(w=setInterval(()=>{if(Date.now()-p>=h){v=!0;try{l.cancel().catch(()=>{})}catch{}}},Math.min(h,5e3)));try{for(;;){let a;if(m)return;if(c?.aborted)return t();try{a=await l.read()}catch{if(m)return;if(c?.aborted)return t();o=v?"stall":"read_error";break}if(m)return;if(c?.aborted)return t();if(v){o="stall";break}p=Date.now();let{done:b,value:g}=a;if(b)break;let h=(j+=e.decode(g,{stream:!0})).split("\n");for(let a of(j=h.pop(),h)){let b;if(k)continue;let c=a.trim();if(!c.startsWith("data:")){await r(a+"\n");continue}let e=c.slice(5).trim();if(!e||"[DONE]"===e){await r(a+"\n");continue}try{b=JSON.parse(e)}catch{await r(a+"\n");continue}let g=function(a,b){let c=a.response||a;if(!c||"object"!=typeof c)return{action:"forward"};let e=c.error||a.error;if(e)return b?{action:"forward",terminal:!0}:{action:"hold",kind:"error_object",reason:e.status||e.message||"error",error:e};if(!c.candidates?.length&&c.promptFeedback?.blockReason)return{action:"forward",terminal:!0};let f=c.candidates?.[0];if(!f)return{action:"forward"};let g=!1;for(let a of f.content?.parts||[])if(a.functionCall||a.inlineData?.data||a.inline_data?.data||!0!==a.thought&&"string"==typeof a.text&&a.text.trim().length>0){g=!0;break}let h=f.finishReason&&String(f.finishReason).toUpperCase();return h?d.zh.has(h)||h===d.a_.MAX_TOKENS||g||b?{action:"forward",meaningful:g,terminal:!0}:{action:"hold",kind:d.lW.has(h)?"error_finish":"stop",reason:h}:{action:"forward",meaningful:g}}(b,f);if(g.meaningful&&(f=!0),"hold"===g.action){q=k={kind:g.kind,reason:g.reason,error:g.error||null,line:a};continue}g.terminal&&(n=!0),await r(a+"\n")}}}finally{x()}if(f||n){let a=j+e.decode();!k&&a&&await r(a),s();return}let y=k?k.reason:o;if(g?.warn?.("STREAM",`ANTIGRAVITY | empty (${y}) | attempt ${a+1}/3`),a>=2)return u(`empty response from upstream (${y}) after ${a+1} attempts`);if(await function(a,b){return new Promise(c=>{let d,e=()=>{clearTimeout(d),c()};d=setTimeout(()=>{a?.removeEventListener?.("abort",e),c()},b),a?.addEventListener?.("abort",e,{once:!0})})}(c,i*2**a),m)return;if(c?.aborted)return t();try{let a=await b();if(m||c?.aborted){try{await a.cancel()}catch{}m||t();return}l=a.getReader()}catch(a){if(m)return;if(a?.name==="AbortError"||c?.aborted)return t();return u(a?.message||"retry request failed")}}},pull(){p()},cancel(a){m=!0,p();try{l?.cancel(a)?.catch?.(()=>{})}catch{}}})}},36362:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{w:()=>V});var e=c(17717),f=c(48664),g=c(94454),h=c(19956),i=c(43788),j=c(5425),k=c(71413),l=c(6755),m=c(15575),n=c(41029),o=c(49263),p=c(18129),q=c(70718),r=c(46052),s=c(27335),t=c(4630),u=c(89865),v=c(60290),w=c(2735),x=c(12407),y=c(48400),z=c(29461),A=c(78255),B=c(15142),C=c(61229),D=c(34267),E=c(18367),F=c(27226),G=c(28190),H=c(10640),I=c(37208),J=c(16799),K=c(92),L=c(10089),M=c(91576),N=c(12197),O=c(54070),P=c(39232),Q=c(90197),R=c(43904),S=c(94501),T=c(96145),U=a([y]);y=(U.then?(await U)():U)[0];let W=new Set([h.h.GEMINI,h.h.GEMINI_CLI,h.h.ANTIGRAVITY,h.h.VERTEX]);async function V({body:a,modelInfo:b,credentials:c,log:d,onCredentialsRefreshed:U,onRequestSuccess:X,onDisconnect:Y,onUpstreamEmptyExhausted:Z,clientRawRequest:$,connectionId:_,userAgent:aa,clientKeyId:ab,ccFilterNaming:ac,rtkEnabled:ad,vaultEnabled:ae,vaultThresholdKB:af,vaultTtlHours:ag,vaultConversationId:ah,headroomEnabled:ai,headroomUrl:aj,headroomCompressUserMessages:ak,cavemanEnabled:al,cavemanLevel:am,ponytailEnabled:an,ponytailLevel:ao,pxpipeEnabled:ap,pxpipeMinChars:aq,pxpipeTimeoutMs:ar,pxpipeTransform:as,onPxpipeEvent:at,sourceFormatOverride:au,providerThinking:av,bypassNativePassthrough:aw,vaultInternal:ax,abortSignal:ay}){let az,aA,aB,aC,aD,aE;if(ay?.aborted)return(0,u.A1)(499,"Request aborted");let{provider:aF,model:aG}=b,aH=Date.now(),aI=au||(0,e.Tz)(a),aJ=[],aK=(a,b,c=aI)=>{if(aI!==h.h.CLAUDE)return;if(c!==h.h.CLAUDE)return void aJ.push({stage:a,format:c,notApplicable:!0});let d=(0,k.O)(b);d?aJ.push({stage:a,format:c,...d}):aJ.length&&aJ.push({stage:a,format:c,messageCount:b?.messages?.length||0,toolCalls:0,toolResults:0})};aK("inbound",a);let aL=(0,w.c)(a,aG,aa,ac);if(aL)return aL;let aM=s.Xg[aF]||aF,aN=(0,s.ux)(aM,aG),aO=(0,s.ez)(aM,aG),aP=aN||(0,e.jJ)(aF,c),aQ=(0,e.oF)(aF,aI,aO),aR=aQ||(0,e.oF)(aF,aP,aO),aS=aQ?.format===aI;c&&(c.runtimeTransport=aR||void 0);let aT=aS?aI:aR?.format||aP,aU=aI===h.h.CLAUDE&&(0,j.r)(a);if(aU&&aT!==h.h.CLAUDE)return(0,u.A1)(v.gx.BAD_REQUEST,"Claude provider-managed threads require a native Claude route; send full history to change providers.");if(aU&&"continue"===a.thread.type&&!(0,j.k)(a))return(0,u.A1)(v.gx.BAD_REQUEST,"Claude thread continuation requires a previous_message_id.");let aV=(0,s.cY)(aM,aG),aW=(0,s.kt)(aM,aG);if(!aU&&av?.mode&&"auto"!==av.mode){let b=av.mode;"on"!==b||a.thinking?"off"!==b||a.thinking?a.reasoning_effort||(a={...a,reasoning_effort:b}):a={...a,thinking:{type:"disabled"}}:(console.log("Injecting provider-level thinking config override: on"),a={...a,thinking:{type:"enabled",budget_tokens:1e4}})}let aX=$?.headers?.accept||"",aY=aX.includes("application/json"),aZ=aX.includes("text/event-stream"),a$=aI===h.h.ANTIGRAVITY||aI===h.h.GEMINI||aI===h.h.GEMINI_CLI,a_=!0===a.stream||a$&&!(aY&&!aZ),a0=t.xq[aF]?.forceStream===!0,a1=!!a0||!1!==a.stream,a2=(0,s.OA)(aM,aG);"imageGen"===a2&&("antigravity"===aF||"gemini-cli"===aF)&&(a1=!1);let a3=(0,F.Jz)($?.headers||{},a);"deepseek-tui"===a3&&!0!==a.stream&&(a1=!1),!aY||aZ||!0===a.stream||a0||(a1=!1),a&&"object"==typeof a&&(a={...a,stream:a1});let a4=await (0,q.q7)(aI,aT,aG);$&&a4.logClientRawRequest($.endpoint,$.body,$.headers),a4.logRawRequest(a),d?.debug?.("FORMAT",`${aI} → ${aT} | stream=${a1}`);let a5=(0,F.Jz)($?.headers||{},a);(0,F.lP)(a5,$?.headers||{},a);let a6=!aw&&((0,F.Qf)(a5,aF)||aU&&["claude","anthropic"].includes(aF));if(aU&&!a6)return(0,u.A1)(v.gx.BAD_REQUEST,"Claude provider-managed threads require a native Claude provider.");if(c&&(c.rawHeaders=$?.headers||{}),!a6){let b=(0,R.nl)(aF,aG);(0,S.X)(a,aI,b)&&d?.debug?.("MODALITY",`stripped unsupported media for ${aF}/${aG}`);try{let b=await (0,T.C)(a,aI,aT,{signal:ay});b>0&&d?.debug?.("MODALITY",`prefetched ${b} remote image(s) for ${aT}`)}catch(a){d?.warn?.("MODALITY",`image prefetch failed: ${a.message}`)}}let a7=(0,H.Ay)(a);if(a7>0&&d?.debug?.("TOOLCLEAN",`pre-translation: stripped ${a7} orphaned tool result(s)`),a6)d?.debug?.("PASSTHROUGH",`${a5} → ${aF} | native lossless`),az={...a,model:(0,g.kD)(aW)},("claude"===a5||aU)&&(0,i.ui)(az,az.model);else{if(!(az=(0,f.GH)(aI,aT,aW,a,a1,c,aF,a4,aV,_,a5)))return(0,x.uw)(aG,aF,_,!1,!0),(0,u.A1)(v.gx.BAD_REQUEST,`Failed to translate request for ${aI} → ${aT}`);if(aA=az._toolNameMap,delete az._toolNameMap,az.model=(0,g.kD)(aW),("claude"===aF||aF?.startsWith("anthropic-compatible"))&&"object"==typeof az){let a=c?.accessToken||c?.apiKey||null;if("string"==typeof a&&a.includes("sk-ant-oat"))try{let b=c?._clientSessionId||(0,M.oV)({headers:$?.headers,body:az,connectionId:_,scope:"claude"});az=await (0,L.Dz)(az,a,b,c?.connectionId||a,{})}catch{}}}if(aK("normalized",az,a6?aI:aT),!aU&&"claude"===a5&&Array.isArray(az.tools)){let{tools:a,stripped:b}=(0,G.F)(az.tools);b.length>0&&(az.tools=a,d?.debug?.("TOOLDEDUP",`stripped ${b.length}: ${b.slice(0,3).join(", ")}${b.length>3?"...":""}`))}let a8=a6?aI:aT;"tts"===(0,s.OA)(aM,aG)&&az.messages&&(az.messages=az.messages.filter(a=>"tool"!==a.role),delete az.tools);let a9=null;try{if(!aU&&ae&&ah&&Array.isArray(az?.tools)&&az.tools.length>0&&(aI===h.h.OPENAI||aI===h.h.CLAUDE)){let a=1024*(0,N.u1)(af??8),b=3600*Math.max(1,Number(ag??24))*1e3;a9=await (0,N.f3)(az,{conversationId:ah,thresholdBytes:a,ttlMs:b,log:d})}}catch(a){d?.warn?.("VAULT",`store failed (dropped): ${a?.message||a}`)}let ba=!aU&&$?.headers?.[v.SA]?.toLowerCase()!=="off";aK("vault",az,a8);let bb=(0,K.BI)(az,ba&&ad),bc=(0,K.fT)(bb);if(bc&&console.log(bc),a9?.vaulted>0){let a=a9.bytesBefore-a9.bytesAfter;(0,O.DL)(a9.vaulted,a),d?.info?.("VAULT",`externalized ${a9.vaulted} tool result(s), saved ${a}B`)}aK("rtk",az,a8);let bd={},be=await (0,P.SI)(az,{enabled:ba&&ai,url:aj,model:aW,format:a8,compressUserMessages:ak,diagnostics:bd}),bf=(0,P.Nv)(be),bg=(0,P.O2)(bd);bf?(d?.info?.("HEADROOM",`${bf}${bg?` | ${bg}`:""}`),(0,P.cB)(be,bd)&&d?.warn?.("HEADROOM",`reported token delta, but outbound JSON shrank <5%; provider may bill near-original payload | ${bg}`)):ba&&ai&&d?.warn?.("HEADROOM",`skipped: ${bd.reason||"compression unavailable"}${bd.endpoint?` (${bd.endpoint})`:""}`),aK("headroom",az,a8);let bh=(0,H.Ay)(az);bh>0&&d?.debug?.("TOOLCLEAN",`post-compression: stripped ${bh} orphaned tool result(s)`),aK("post-strip",az,a8),ba&&al&&am&&((0,I.p)(az,a8,am),d?.debug?.("CAVEMAN",`${am} | ${a8}`)),ba&&an&&ao&&((0,J.U)(az,a8,ao),d?.debug?.("PONYTAIL",`${ao} | ${a8}`));let bi=null;if(ba&&ap){let a=await (0,Q.H)(az,{enabled:!0,format:a8,model:aW,minChars:aq,timeoutMs:ar,transform:as});bi=a.summary;let b=(0,Q._)(bi);b?d?.info?.("PXPIPE",b):d?.debug?.("PXPIPE",`skipped: ${bi?.reason||"unknown"}`),a.body&&(az=a.body);try{at&&at({provider:aF,model:aG,...bi})}catch{}}if(az&&"object"==typeof az)if(W.has(a8)){let{stream:a,request:b,...c}=az;if(b&&"object"==typeof b){let{stream:a,...d}=b;az={...c,request:d}}else az=c}else az.stream!==a1&&(az={...az,stream:a1});!aU&&a6&&"claude"===a5&&(0,i._W)(az);let bj=(0,y.getExecutor)(aF);(0,x.uw)(aG,aF,_,!0),ax||(0,x.E5)({model:aG,provider:aF,connectionId:_,status:"PENDING"}).catch(()=>{});let bk=az.messages?.length||az.input?.length||az.contents?.length||az.request?.contents?.length||0;d?.debug?.("REQUEST",`${aF.toUpperCase()} | ${aG} | ${bk} msgs`);let bl=(0,m.jd)({onDisconnect:a=>{(0,x.uw)(aG,aF,_,!1),Y&&Y(a)},onError:()=>(0,x.uw)(aG,aF,_,!1),log:d,provider:aF,model:aG});if(ay)if(ay.aborted)try{bl.abort()}catch{}else ay.addEventListener("abort",()=>{try{bl.abort()}catch{}},{once:!0});let bm=(0,r.$6)(c);if(bm.vercelRelayUrl){let a=c?.connectionName||c?.connectionId||"unknown",b=c?.providerSpecificData?.connectionProxyPoolId||"none";d?.info?.("PROXY",`${aF.toUpperCase()} | ${aG} | 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",`${aF.toUpperCase()} | ${aG} | conn=${e} | pool=${b} | url=${a}`)}if(bm.connectionProxyEnabled&&bm.connectionNoProxy){let a=c?.connectionName||c?.connectionId||"unknown";d?.debug?.("PROXY",`${aF.toUpperCase()} | ${aG} | conn=${a} | no_proxy=${bm.connectionNoProxy}`)}aK("final",az,a8);let bn=(0,z.Fo)(a,a1);aJ.length&&(bn.toolHistoryDiagnostics=aJ);let bo=()=>ay?.aborted||bl.signal?.aborted,bp=async()=>{try{await aB?.body?.cancel?.()}catch{}return(0,x.uw)(aG,aF,_,!1),a4?.close?.(),(0,u.A1)(499,"Request aborted")};try{if(bo())return bp();let a=await bj.execute({model:aG,body:structuredClone(az),stream:a1,credentials:c,signal:bl.signal,log:d,proxyOptions:bm});aB=a.response,aC=a.url,aD=a.headers,aE=a.transformedBody,a4.logTargetRequest(aC,aD,aE)}catch(c){let a=bo()||c?.name==="AbortError";if((0,x.uw)(aG,aF,_,!1,!a),a4?.close?.(),(0,x.ox)((0,z.$R)({provider:aF,model:aG,connectionId:_,latency:{ttft:0,total:Date.now()-aH},tokens:{prompt_tokens:0,completion_tokens:0},request:bn,providerRequest:az||null,response:{error:c?.message||(a?"Request aborted":String(c)),status:a?499:502,thinking:null},status:"error",pxpipe:bi||void 0,rtk:bb||void 0})).catch(()=>{}),a)return bl.handleError(new DOMException("Request aborted","AbortError")),(0,u.A1)(499,"Request aborted");let b=(0,u.lR)(c,aF,aG,v.gx.BAD_GATEWAY);return console.log(`${l.lm.red}[ERROR] ${b}${l.lm.reset}`),(0,u.A1)(v.gx.BAD_GATEWAY,b)}if(bo())return bp();let bq=null;if(!bj.noAuth&&(aB.status===v.gx.UNAUTHORIZED||aB.status===v.gx.FORBIDDEN))try{let a=await (0,n.qZ)(async()=>{bl.signal?.throwIfAborted();let a=await (0,p.MF)(aF,c,()=>bj.refreshCredentials(c,d,bm));return a||bl.signal?.throwIfAborted(),a?.refreshToken&&a.refreshToken!==c.refreshToken&&(a.accessToken&&(c.accessToken=a.accessToken),c.refreshToken=a.refreshToken),a},3,d,bl.signal);if(a?.accessToken||a?.copilotToken){if(d?.info?.("TOKEN",`${aF.toUpperCase()} | refreshed`),Object.assign(c,a),U)try{await U(a)}catch(a){d?.warn?.("TOKEN",`onCredentialsRefreshed failed: ${a.message}`)}if(bo())return bp();try{let a=await bj.execute({model:aG,body:structuredClone(az),stream:a1,credentials:c,signal:bl.signal,log:d,proxyOptions:bm});try{await aB.body?.cancel?.()}catch{}aB=a.response,aC=a.url,aD=a.headers??aD,aE=a.transformedBody??aE,a4.logTargetRequest(aC,aD,aE)}catch{d?.warn?.("TOKEN",`${aF.toUpperCase()} | retry after refresh failed`)}}else if((0,n.jT)(a)){let b=a.code||"invalid_grant";if(bq=`OAuth refresh token expired or revoked (${b}): reconnect the ${aF} account in the Switchboard dashboard`,d?.warn?.("TOKEN",`${aF.toUpperCase()} | refresh token revoked, re-auth required (${b})`),U)try{await U({reauthRequired:!0,testStatus:o.RU,lastError:bq,lastErrorAt:new Date().toISOString()})}catch(a){d?.warn?.("TOKEN",`onCredentialsRefreshed failed: ${a.message}`)}}else d?.warn?.("TOKEN",`${aF.toUpperCase()} | refresh failed`)}catch(a){d?.warn?.("TOKEN",`${aF.toUpperCase()} | refresh threw: ${a.message}`)}if(bo())return bp();if(!aB.ok){(0,x.uw)(aG,aF,_,!1,!0),a4?.close?.();let{statusCode:a,message:b,resetsAtMs:c}=await (0,u.zL)(aB,bj),d=bq||b;(0,x.ox)((0,z.$R)({provider:aF,model:aG,connectionId:_,latency:{ttft:0,total:Date.now()-aH},tokens:{prompt_tokens:0,completion_tokens:0},request:bn,providerRequest:aE||az||null,response:{error:d,status:a,thinking:null},status:"error",pxpipe:bi||void 0,rtk:bb||void 0})).catch(()=>{});let e=(0,u.lR)(Error(d),aF,aG,a);return console.log(`${l.lm.red}[ERROR] ${e}${l.lm.reset}`),a4.logError(Error(d),aE||az),(0,u.A1)(a,e,c)}let br=async()=>{bl.signal?.throwIfAborted();let a=await bj.execute({model:aG,body:structuredClone(az),stream:a1,credentials:c,signal:bl.signal,log:d,proxyOptions:bm});if(bo()){try{await a.response.body?.cancel?.()}catch{}throw new DOMException("Request aborted","AbortError")}if(!a.response.ok){let{statusCode:b,message:c}=await (0,u.zL)(a.response,bj);throw Error(`[${b}] ${c}`)}if(!a.response.body)throw Error("upstream returned no body");return a.response.body},bs="antigravity"===aF||"gemini-cli"===aF||"gemini"===aF||"vertex"===aF;bs&&a1&&aB.body?aB=new Response((0,D.gH)({body:aB.body,reexecute:br,signal:bl.signal,log:d,onExhausted:(a,{upstreamError:b}={})=>{if(!Z)return;let c=bj.parseRetryFromErrorMessage?.(b?.message||a);return Z((0,u.lR)(Error(a),aF,aG,v.gx.BAD_GATEWAY),c?Date.now()+c:void 0)}}),{status:aB.status,headers:aB.headers}):a1&&aB.body&&(aB=new Response((0,E.Z)({body:aB.body,reexecute:br,signal:bl.signal,log:d,maxRetries:+("claude"!==aF)}),{status:aB.status,headers:aB.headers}));let bt=`${Date.now()}-${Math.random().toString(36).slice(2,11)}`,bu={provider:aF,model:aG,body:a,stream:a1,requestConfig:bn,translatedBody:az,finalBody:aE,requestStartTime:aH,connectionId:_,clientKeyId:ab,clientRawRequest:$,onRequestSuccess:X,requestId:bt,pxpipe:bi||void 0,streamSignal:bl.signal},bv=a=>{ax||(0,x.E5)({model:aG,provider:aF,connectionId:_,...a}).catch(()=>{})},bw=()=>(0,x.uw)(aG,aF,_,!1);if(!a_&&a0){let a=await (0,A.I)({...bu,providerResponse:aB,sourceFormat:aI,targetFormat:aT,trackDone:bw,appendLog:bv});if(a)return bl.handleComplete(),a}if(!a1){let a=await (0,B.N)({...bu,providerResponse:aB,sourceFormat:aI,targetFormat:aT,reqLogger:a4,toolNameMap:aA,trackDone:bw,appendLog:bv});return bl.handleComplete(),a}let{onStreamComplete:bx,onStreamFailure:by,streamDetailId:bz}=(0,C.$)({...bu});return(0,C.M)({...bu,providerResponse:aB,sourceFormat:aI,targetFormat:aT,userAgent:aa,reqLogger:a4,toolNameMap:aA,streamController:bl,onStreamComplete:bx,onStreamFailure:by,streamDetailId:bz,firstChunkTimeoutMs:bs?void 0:0})}d()}catch(a){d(a)}})},37208:(a,b,c)=>{c.d(b,{p:()=>n});var d=c(17429);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])}},39232:(a,b,c)=>{c.d(b,{Nv:()=>l,O2:()=>m,SI:()=>k,cB:()=>n});var d=c(37377),e=c(29229),f=c(97579);function g(a){try{return new TextEncoder().encode(JSON.stringify(a)||"").length}catch{return 0}}function h(a){let b=Array.isArray(a?.messages)?a.messages:Array.isArray(a?.input)?a.input:null,c=b?.filter(a=>a?.role==="tool"||a?.role==="function"||a?.tool_calls?.length||a?.content?.some?.(a=>a?.type==="tool_use"||a?.type==="tool_result"))||[];return{bodyBytes:g(a),messageBytes:b?g(b):0,toolSchemaBytes:g(a?.tools||[]),toolHistoryBytes:g(c)}}function i(a,b){a&&!a.reason&&(a.reason=b)}async function j(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 k(a,{enabled:b,url:c,model:g,format:l,compressUserMessages:m,timeoutMs:n=3e3,diagnostics:o=null}={}){if(!b)return i(o,"disabled"),null;if(!c)return i(o,"missing proxy URL"),null;if(!a)return i(o,"missing request body"),null;try{if(o&&(o.before=h(a)),"claude"===l){let b=Array.isArray(a.system)&&a.system[0]?.text?.startsWith?.("x-anthropic-billing-header:")?a.system[0]:null,f=(0,d.t)(g,a,!1);if(!Array.isArray(f?.messages))return i(o,"Claude request did not translate to messages[]"),null;let k=await j(c,f.messages,g,n,m,o||{});if(!k)return null;let l=(0,e.p)(g,{...f,messages:k.messages},!1);return Array.isArray(l?.messages)&&(a.messages=l.messages),l?.system!==void 0&&(a.system=b?[b,...Array.isArray(l.system)?l.system:[{type:"text",text:String(l.system)}]]:l.system),o&&(o.after=h(a)),k}if("openai-responses"===l){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(o,"skipped: openai-responses tool/reasoning input is not safe to compress"),null;let b=(0,f.Zj)(g,a,!1);if(!Array.isArray(b?.messages))return null;let d=await j(c,b.messages,g,n,m,o||{});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),o&&(o.after=h(a)),d}let b=Array.isArray(a.messages)?"messages":Array.isArray(a.input)?"input":null;if(!b)return i(o,`unsupported ${l||"unknown"} request shape`),null;let k=await j(c,a[b],g,n,m,o||{});if(!k)return null;return a[b]=k.messages,o&&(o.after=h(a)),k}catch(a){return i(o,`unexpected error: ${a?.message||String(a)}`),null}}function l(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 m(a){let b=a?.before,c=a?.after;if(!b||!c)return"";let d=b.bodyBytes>0?((b.bodyBytes-c.bodyBytes)/b.bodyBytes*100).toFixed(1):"0.0";return`body=${b.bodyBytes}B→${c.bodyBytes}B messages=${b.messageBytes}B→${c.messageBytes}B tools=${b.toolSchemaBytes||0}B→${c.toolSchemaBytes||0}B toolHistory=${b.toolHistoryBytes||0}B→${c.toolHistoryBytes||0}B effective=${d}%`}function n(a,b,c=.05){if(!a?.tokens_saved||a.tokens_saved<=0)return!1;let d=b?.before?.bodyBytes||0,e=b?.after?.bodyBytes||0;return!(d<=0)&&!(e<=0)&&e>=d*(1-c)}},49612:(a,b,c)=>{c.d(b,{g:()=>l,p:()=>m});var d=c(19956),e=c(98173),f=c(57642);function g(a){if(!a)return{};if("object"==typeof a)return a;try{return JSON.parse(a)}catch{return{}}}function h(a){return a?.choices?.[0]||{}}function i(a){return h(a).message||{}}function j(a){let b=i(a).tool_calls;return Array.isArray(b)?b:[]}function k(a){let b=a||{},c=b.prompt_tokens||b.input_tokens||0,d=b.completion_tokens||b.output_tokens||0,e={prompt_tokens:c,completion_tokens:d,total_tokens:b.total_tokens||c+d},f=b.prompt_tokens_details||{},g=b.input_tokens_details||{},h=f.cached_tokens||g.cached_tokens||b.cache_read_input_tokens||0,i=f.cache_creation_tokens||g.cache_creation_tokens||b.cache_creation_input_tokens||0;(h>0||i>0)&&(e.prompt_tokens_details={},h>0&&(e.prompt_tokens_details.cached_tokens=h),i>0&&(e.prompt_tokens_details.cache_creation_tokens=i));let j=b.completion_tokens_details||{},k=b.output_tokens_details||{},l=j.reasoning_tokens||k.reasoning_tokens||0;return l>0&&(e.completion_tokens_details={reasoning_tokens:l}),e}function l(a,b){let c,d=Array.isArray(a?.output)?a.output:[],e=d.filter(a=>a?.type==="reasoning").flatMap(a=>Array.isArray(a.summary)?a.summary:[]).map(a=>a?.text||"").join(""),f=d.filter(a=>a?.type==="message"),g=[...f].reverse().find(a=>(Array.isArray(a.content)?a.content:[]).some(a=>"string"==typeof a.text&&a.text.length>0))||f[f.length-1]||null,h=d.filter(a=>a?.type==="refusal").map(a=>a?.refusal||"").join(""),i=(Array.isArray(g?.content)?g.content:[]).map(a=>("output_text"===a.type||"refusal"===a.type||"string"==typeof a.text)&&(a.text||a.refusal)||"").join("")||h,j=d.filter(a=>a?.type==="function_call"||a?.type==="custom_tool_call").map((a,b)=>({id:a.call_id||`call_${a.name||"tool"}_${b}`,type:"function",function:{name:a.name||"",arguments:"string"==typeof a.arguments?a.arguments:JSON.stringify(a.arguments??a.input??{})}})),l=a?.usage||{},m={role:"assistant",content:i||(j.length>0?null:"")};if(e&&(m.reasoning_content=e),j.length>0&&(m.tool_calls=j),j.length>0)c="tool_calls";else if(h&&""===i.split(h).join("").trim())c="content_filter";else{let b=a?.status;c="completed"===b||"done"===b?"stop":"failed"===b?"error":"incomplete"===b?a?.incomplete_details?.reason==="content_filter"?"content_filter":"length":"stop"}return{id:a?.id||`chatcmpl-${Date.now()}`,object:"chat.completion",created:a?.created_at||Math.floor(Date.now()/1e3),model:a?.model||b||"unknown",choices:[{index:0,message:m,finish_reason:c}],usage:k(l)}}function m(a,b){switch(b){case d.h.CLAUDE:return function(a){let b,c,f,k,l,m;if(!a?.choices?.[0])return a;let n=h(a),o=i(a),p=[],q=o.reasoning_content||o.provider_specific_fields?.reasoning_content||"";for(let b of(q&&p.push({type:"thinking",thinking:q}),"string"==typeof o.content&&o.content.length>0&&p.push({type:"text",text:o.content}),j(a))){let a=b.function||{};p.push({type:"tool_use",id:b.id||`toolu_${Date.now()}_${p.length}`,name:a.name||b.name||"",input:g(a.arguments||b.arguments)})}0===p.length&&p.push({type:"text",text:""});let r=a.usage||{};return{id:String(a.id||`msg_${Date.now()}`).replace(/^chatcmpl-/,""),type:"message",role:"assistant",model:a.model||"unknown",content:p,stop_reason:(0,e.Q)(n.finish_reason,d.h.CLAUDE),stop_sequence:null,usage:(c={input_tokens:(b=r||{}).prompt_tokens||b.input_tokens||0,output_tokens:b.completion_tokens||b.output_tokens||0},f=b.prompt_tokens_details||{},k=b.input_tokens_details||{},l=f.cached_tokens||k.cached_tokens||b.cache_read_input_tokens||0,m=f.cache_creation_tokens||k.cache_creation_tokens||b.cache_creation_input_tokens||0,l>0&&(c.cache_read_input_tokens=l),m>0&&(c.cache_creation_input_tokens=m),c)}}(a);case d.h.GEMINI:case d.h.GEMINI_CLI:case d.h.ANTIGRAVITY:case d.h.VERTEX:return function(a){if(!a?.choices?.[0])return a;let b=i(a),c=k(a.usage||{}),d=[],e=b.reasoning_content||b.provider_specific_fields?.reasoning_content||"";for(let c of(e&&d.push({text:e,thought:!0}),"string"==typeof b.content&&b.content.length>0&&d.push({text:b.content}),j(a))){let a=c.function||{};d.push({functionCall:{name:a.name||c.name||"",args:g(a.arguments||c.arguments)}})}return 0===d.length&&d.push({text:""}),{response:{candidates:[{content:{role:"model",parts:d},finishReason:function(a){switch(a){case f.bC.LENGTH:return f.a_.MAX_TOKENS;case f.bC.CONTENT_FILTER:return f.a_.SAFETY;case f.bC.ERROR:return f.a_.MALFORMED_FUNCTION_CALL;default:return f.a_.STOP}}(h(a).finish_reason),index:0}],usageMetadata:{promptTokenCount:c.prompt_tokens,candidatesTokenCount:c.completion_tokens,totalTokenCount:c.total_tokens},modelVersion:a.model||"unknown",responseId:a.id||`resp_${Date.now()}`}}}(a);case d.h.OLLAMA:return function(a){if(!a?.choices?.[0])return a;let b=h(a),c=i(a),d={role:"assistant",content:"string"==typeof c.content?c.content:""};c.reasoning_content&&(d.thinking=c.reasoning_content);let e=j(a).map(a=>{let b=a.function||{};return{id:a.id,function:{name:b.name||a.name||"",arguments:g(b.arguments||a.arguments)}}});e.length>0&&(d.tool_calls=e);let f=a.usage||{};return{model:a.model||"unknown",created_at:a.created?new Date(1e3*a.created).toISOString():new Date().toISOString(),message:d,done:!0,done_reason:"tool_calls"===b.finish_reason?"stop":b.finish_reason||"stop",prompt_eval_count:f.prompt_tokens||f.input_tokens||0,eval_count:f.completion_tokens||f.output_tokens||0}}(a);case d.h.OPENAI_RESPONSES:case d.h.OPENAI_RESPONSE:return function(a){let b;if(!a?.choices?.[0])return a;let c=i(a),d=a.usage||{},e=[],f=0,g=c.reasoning_content||c.provider_specific_fields?.reasoning_content||"";g&&(e.push({type:"reasoning",id:`rs_${a.id||Date.now()}_${f}`,summary:[{type:"summary_text",text:g}]}),f++);let l="string"==typeof c.content?c.content:"";l&&(e.push({type:"message",id:`msg_${a.id||Date.now()}_${f}`,role:"assistant",content:[{type:"output_text",text:l,annotations:[],logprobs:[]}]}),f++);let m=j(a);if(m.length>0)for(let a of m){let b=a.function||{},c=a.id||`call_${b.name||"tool"}_${f}`;e.push({type:"function_call",id:`fc_${c}`,call_id:c,name:b.name||a.name||"",arguments:"string"==typeof b.arguments?b.arguments:JSON.stringify(b.arguments||{})}),f++}else l||g||e.push({type:"message",id:`msg_${a.id||Date.now()}_${f}`,role:"assistant",content:[{type:"output_text",text:"",annotations:[],logprobs:[]}]});let n=h(a).finish_reason||"stop",o="completed";"length"===n?(o="incomplete",b={reason:"max_output_tokens"}):"content_filter"===n?(o="incomplete",b={reason:"content_filter"}):"error"===n&&(o="failed");let p=k(d);return{id:a.id?`resp_${a.id}`:`resp_${Date.now()}`,object:"response",created_at:a.created||Math.floor(Date.now()/1e3),status:o,...b?{incomplete_details:b}:{},output:e,usage:{input_tokens:p.prompt_tokens,output_tokens:p.completion_tokens,total_tokens:p.total_tokens}}}(a);case d.h.KIRO:case d.h.CURSOR:case d.h.COMMANDCODE:default:return a}}},54070:(a,b,c)=>{c.d(b,{DL:()=>g,VS:()=>h,_s:()=>i});let d=global.__vaultStats??={entries:0,hits:0,bytesSaved:0};function e(a){try{let b=Number(a);if(!Number.isFinite(b)||b<0)return 0;return Math.trunc(b)}catch{return 0}}function f(a,b){try{let c=e(d[a])+e(b);d[a]=Number.isSafeInteger(c)?c:Number.MAX_SAFE_INTEGER}catch{}}function g(a,b){try{f("entries",a),f("bytesSaved",b)}catch{}}function h(a=1){try{f("hits",a)}catch{}}function i(){try{return{entries:e(d.entries),hits:e(d.hits),bytesSaved:e(d.bytesSaved)}}catch{return{entries:0,hits:0,bytesSaved:0}}}},61229:(a,b,c)=>{c.d(b,{$:()=>p,M:()=>o});var d=c(19956),e=c(48664),f=c(6755),g=c(15575),h=c(4630),i=c(60290),j=c(48330),k=c(29461),l=c(12407),m=c(4905);let n={[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 o({providerResponse:a,provider:b,model:c,sourceFormat:p,targetFormat:q,userAgent:r,body:s,stream:t,requestConfig:u,translatedBody:v,finalBody:w,requestStartTime:x,connectionId:y,clientKeyId:z,requestId:A,clientRawRequest:B,onRequestSuccess:C,reqLogger:D,toolNameMap:E,streamController:F,onStreamComplete:G,onStreamFailure:H,streamDetailId:I,pxpipe:J,firstChunkTimeoutMs:K=i.Z1,firstProgressTimeoutMs:L=i.Z1,progressStallTimeoutMs:M=i.xM}){let N=(a.headers.get("content-type")||"").toLowerCase();if((N.includes("application/x-ndjson")||N.includes("application/ndjson"))&&a.body){let b,c,d,e;a=new Response(a.body.pipeThrough((b=new TextDecoder,c=new TextEncoder,d="",new TransformStream({transform(a,e){let f=(d+=b.decode(a,{stream:!0})).split("\n");for(let a of(d=f.pop()||"",f)){let b=a.trim();if(b){if(b.startsWith("data:")||b.startsWith("event:")){e.enqueue(c.encode(a+"\n"));continue}try{JSON.parse(b),e.enqueue(c.encode(`data: ${b}
70
70
 
71
71
  `))}catch{}}}},flush(a){let b=d.trim();if(b)try{JSON.parse(b),a.enqueue(c.encode(`data: ${b}
72
72
 
73
- `))}catch{}}}))),{status:a.status,statusText:a.statusText,headers:((e=new Headers(a.headers)).set("content-type","text/event-stream"),e)})}else if(N&&!N.includes("text/event-stream")&&!N.includes("application/json")){let d=await a.text().catch(()=>""),e=d.match(/<title>([^<]+)<\/title>/i),f=(e?.[1]||"").replace(/<[^>]*>/g,"").replace(/[\r\n]+/g," ").trim().slice(0,160)||(d.length<200?d.replace(/<[^>]*>/g,"").trim().slice(0,160):`Upstream returned non-SSE response (${N})`),g=a.status>=400?a.status:502;return console.warn(`[STREAM] ${b} | ${c} | blocked pipe: ${f} [${g}]`),F?.handleError?.(Error(`upstream non-SSE: ${g}`)),{success:!1,response:new Response(JSON.stringify({error:{message:`[${g}]: ${f}`}}),{status:g,headers:{"Content-Type":"application/json"}})}}C&&Promise.resolve().then(C).catch(a=>{console.error("[ChatCore] onRequestSuccess failed:",a?.message||a)});let O=(0,l.ox)((0,k.$R)({provider:b,model:c,connectionId:y,latency:{ttft:0,total:Date.now()-x},tokens:{prompt_tokens:0,completion_tokens:0},request:u??(0,k.Fo)(s,t),providerRequest:w||v||null,providerResponse:"[Streaming - raw response not captured]",response:{content:"[Streaming in progress...]",thinking:null,type:"streaming"},status:"pending",pxpipe:J},{id:I})).catch(a=>console.error("[RequestDetail] Failed to save streaming request:",a.message)),P=!1,Q=async(...a)=>{a[0]?.completed!==void 0&&(P=!0),await O,await G?.(...a)},R="responses-websocket"!==a.headers.get("x-switchboard-transport"),S=p===d.h.CLAUDE&&q===d.h.CLAUDE,T=S?{firstProgressTimeoutMs:L,stallTimeoutMs:M}:null,U=function({provider:a,sourceFormat:b,targetFormat:c,userAgent:g,reqLogger:i,toolNameMap:j,model:k,connectionId:l,body:m,onStreamComplete:o,clientKeyId:p,terminateOnResponsesTerminal:q,onStreamProgress:r}){let s=g?.toLowerCase().includes("droid")||g?.toLowerCase().includes("codex-cli");if(h.xq[a]?.format===d.h.OPENAI_RESPONSES&&c===d.h.OPENAI_RESPONSES&&!s){let c=n[b]||d.h.OPENAI;return(0,f.i5)(d.h.OPENAI_RESPONSES,c,a,i,j,k,l,m,o,p,q)}return(0,e.nZ)(c,b)?(0,f.i5)(c,b,a,i,j,k,l,m,o,p):(0,f.l2)(a,i,j,k,l,m,o,p,r)}({provider:b,sourceFormat:p,targetFormat:q,userAgent:r,reqLogger:D,toolNameMap:E,model:c,connectionId:y,body:s,onStreamComplete:Q,clientKeyId:z,terminateOnResponsesTerminal:R,onStreamProgress:T?a=>T.record?.(a):void 0}),V=p===d.h.OPENAI_RESPONSES&&q===d.h.OPENAI_RESPONSES?j.Hr:S?j.LS:q===d.h.OPENAI?j.ah:null,W=h.xq[b]?.stallTimeoutMs||i.xM;return{success:!0,response:new Response((0,g.Jb)(a,U,F,V,W,K,a=>{P||Promise.resolve(O).then(()=>H?.(a)).catch(()=>{})},T),{headers:m.RK})}}function p({provider:a,model:b,connectionId:c,clientKeyId:d,requestStartTime:e,body:f,stream:g,requestConfig:h,finalBody:i,translatedBody:j,requestId:m,clientRawRequest:n,pxpipe:o}){let q=`${Date.now()}-${Math.random().toString(36).slice(2,11)}`,r=!1,s=async d=>{r||(r=!0,await (0,l.ox)((0,k.$R)({provider:a,model:b,connectionId:c,latency:{ttft:0,total:Date.now()-e},request:h??(0,k.Fo)(f,g),providerRequest:i||j||null,response:{error:d?.message||"stream interrupted",type:"streaming"},status:"error",pxpipe:o},{id:q})))};return{onStreamComplete:async(p,t,u)=>{if(p?.completed===!1)return s(Error(p.error||"stream incomplete"));if(r)return;r=!0;let v={ttft:u?u-e:Date.now()-e,total:Date.now()-e},w=p?.content||"[Empty streaming response]",x=p?.thinking||null;(0,l.ox)((0,k.$R)({provider:a,model:b,connectionId:c,latency:v,tokens:t||{prompt_tokens:0,completion_tokens:0},request:h??(0,k.Fo)(f,g),providerRequest:i||j||null,providerResponse:w,response:{content:w,thinking:x,type:"streaming"},status:"success",pxpipe:o},{id:q})).catch(a=>{console.error("[RequestDetail] Failed to update streaming content:",a.message)}),await (0,k.YZ)({provider:a,model:b,tokens:t,connectionId:c,clientKeyId:d,requestId:m,endpoint:n?.endpoint,label:"STREAM USAGE"})},onStreamFailure:s,streamDetailId:q}}},66573:(a,b,c)=>{c.d(b,{Hh:()=>g,ST:()=>h,Wg:()=>f});let d=new TextEncoder;function e(a){return Math.max(0,Math.floor(Number(a)||0))}function f(a,b){var c;if("string"!=typeof a)return"";let d=e(b);return a.length<=d?a:0===d?"":a.slice(0,(c=a.charCodeAt(d-1))>=55296&&c<=56319?d-1:d)}function g(a,b){var c;if("string"!=typeof a)return"";let d=e(b);if(a.length<=d)return a;if(0===d)return"";let f=a.length-d;return a.slice((c=a.charCodeAt(f))>=56320&&c<=57343?f+1:f)}function h(a,b){if("string"!=typeof a)return"";let c=e(b);if(0===c)return"";if(d.encode(a).length<=c)return a;let g=0,h=a.length;for(;g<h;){let b=g+Math.ceil((h-g)/2);d.encode(a.slice(0,b)).length<=c?g=b:h=b-1}return f(a,g)}},70718:(a,b,c)=>{c.d(b,{q7:()=>p});var d=c(28730);let e="u">typeof process&&process.versions?.node&&!0,f="u">typeof process&&process.env?.ENABLE_REQUEST_LOGS==="true",g=null,h=null,i=null;async function j(){if(e&&f&&!g)try{let a=await Promise.resolve().then(c.t.bind(c,29021,19)),b=await Promise.resolve().then(c.t.bind(c,33873,19));g=a.default||a,i=(h=b.default||b).join("u">typeof process&&process.cwd?process.cwd():".","logs")}catch{}}async function k(a,b,c){if(await j(),!g||!i)return null;try{g.existsSync(i)||g.mkdirSync(i,{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,"-"),f=`${a}_${b}_${e}_${d}`,j=h.join(i,f);return g.mkdirSync(j,{recursive:!0}),j}catch(a){return console.log("[LOG] Failed to create log session:",a.message),null}}let l=new Set(["prompt_cache_key","session_id","sessionid","conversation_id","conversationid","user_id","userid","request_id","requestid","x_session_id","x_amp_thread_id","x_client_request_id"]);function m(a,b,c){if(g&&a)try{let d=h.join(a,b);g.writeFileSync(d,JSON.stringify(function a(b){if(Array.isArray(b))return b.map(a);if(!b||"object"!=typeof b)return b;let c={};for(let[d,e]of Object.entries(b)){let b=d.toLowerCase().replaceAll("-","_");c[d]=l.has(b)?"[redacted]":a(e)}return c}(c),null,2))}catch(a){console.log(`[LOG] Failed to write ${b}:`,a.message)}}let n=["api-key","x-key"];function o(a){if(!a)return{};let b={...a};for(let a of Object.keys(b)){let c=a.toLowerCase();if(function(a){return d.fC.some(b=>a.includes(b))||n.some(b=>a.includes(b))}(c)){let e=b[a];d.qk.some(a=>c.includes(a))||c.includes("api-key")||c.includes("x-key")?b[a]="[redacted]":"string"==typeof e&&e.length>12?b[a]=e.slice(0,8)+"..."+e.slice(-4):null!=e&&(b[a]="[redacted]")}}return b}async function p(a,b,c){if(!f)return{sessionPath:null,logClientRawRequest(){},logRawRequest(){},logOpenAIRequest(){},logTargetRequest(){},logProviderResponse(){},appendProviderChunk(){},appendOpenAIChunk(){},logConvertedResponse(){},appendConvertedChunk(){},logError(){},close(){}};let d=await k(a,b,c),e={},i=!1;function j(a,b,c){if(g&&d&&!i)try{let f=e[a];f||(f=e[a]=g.createWriteStream(h.join(d,b),{flags:"a"})).on("error",()=>{}),f.write(c)}catch{}}return{get sessionPath(){return d},logClientRawRequest(a,b,c={}){m(d,"1_req_client.json",{timestamp:new Date().toISOString(),endpoint:a,headers:o(c),body:b})},logRawRequest(a,b={}){m(d,"2_req_source.json",{timestamp:new Date().toISOString(),headers:o(b),body:a})},logOpenAIRequest(a){m(d,"3_req_openai.json",{timestamp:new Date().toISOString(),body:a})},logTargetRequest(a,b,c){m(d,"4_req_target.json",{timestamp:new Date().toISOString(),url:"string"==typeof a&&a?a.replace(/([?&])(key|api_key|api-key)=[^&]*/gi,"$1$2=[redacted]"):a,headers:o(b),body:c})},logProviderResponse(a,b,c,e){m(d,"5_res_provider.json",{timestamp:new Date().toISOString(),status:a,statusText:b,headers:o(c&&"function"==typeof c.entries?Object.fromEntries(c.entries()):c),body:e})},appendProviderChunk(a){j("provider","5_res_provider.txt",a)},appendOpenAIChunk(a){j("openai","6_res_openai.txt",a)},logConvertedResponse(a){m(d,"7_res_client.json",{timestamp:new Date().toISOString(),body:a})},appendConvertedChunk(a){j("converted","7_res_client.txt",a)},logError(a,b=null){m(d,"6_error.json",{timestamp:new Date().toISOString(),error:a?.message||String(a),requestBody:b})},close:()=>{let a;return i=!0,a=Object.values(e),e={},Promise.all(a.map(a=>new Promise(b=>{try{a.end(b)}catch{b()}})))}}}},71413:(a,b,c)=>{c.d(b,{O:()=>d});function d(a){let b=a?.messages;if(!Array.isArray(b))return null;let c=new Set,d=new Set,e=0,f=0,g=0;for(let a of b)if(Array.isArray(a?.content))for(let b of(!a.content.length&&g++,a.content))"assistant"===a.role&&b?.type==="tool_use"&&(e++,b.id&&c.add(b.id)),"user"===a.role&&b?.type==="tool_result"&&(f++,b.tool_use_id&&d.add(b.tool_use_id));if(!e&&!f)return null;let h=0,i=0,j=0,k=[];for(let a=0;a<b.length;a++){if(b[a]?.role!=="assistant")continue;let c=a,e=new Set;do{for(let c of Array.isArray(b[a].content)?b[a].content:[])c?.type==="tool_use"&&c.id&&e.add(c.id);a++}while(b[a]?.role==="assistant");let f=a,g=new Set;for(let a=f;b[a]?.role==="user";a++)for(let c of Array.isArray(b[a].content)?b[a].content:[])c?.type==="tool_result"&&c.tool_use_id&&g.add(c.tool_use_id);let l=[...e].filter(a=>!g.has(a));l.length&&(h+=l.length,i+=l.filter(a=>d.has(a)).length,j++,k.length<10&&k.push({assistantIndex:c,callCount:e.size,missingCount:l.length,nextRole:["user","assistant","system","developer"].includes(b[f]?.role)?b[f].role:"other-or-end"})),a--}return{messageCount:b.length,toolCalls:e,toolResults:f,emptyMessages:g,missingResults:h,misplacedResults:i,orphanResults:[...d].filter(a=>!c.has(a)).length,invalidTurnCount:j,invalidTurns:k}}},78255:(a,b,c)=>{c.d(b,{I:()=>p});var d=c(94176),e=c(89865),f=c(60290),g=c(19956),h=c(4630),i=c(49612),j=c(83611),k=c(29461),l=c(12407);let m=a=>h.xq[a]?.format===g.h.OPENAI_RESPONSES;function n(a){a&&Promise.resolve().then(a).catch(a=>{console.error("[ChatCore] onRequestSuccess failed:",a?.message||a)})}function o(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:""}async function p({providerResponse:a,sourceFormat:b,provider:c,model:h,body:q,stream:r,requestConfig:s,translatedBody:t,finalBody:u,requestStartTime:v,connectionId:w,clientKeyId:x,requestId:y,clientRawRequest:z,onRequestSuccess:A,trackDone:B,appendLog:C,streamSignal:D}){let E=a.headers.get("content-type")||"";if(!(E.includes("text/event-stream")||""===E&&m(c)))return null;B();let F={provider:c,model:h,connectionId:w,request:s??(0,k.Fo)(q,r),providerRequest:u||t||null};if(m(c))try{let e=await (0,d.convertResponsesStreamToJson)(a.body,{signal:D});n(A);let f=e.usage||{};C({tokens:f,status:"200 OK"}),await (0,k.YZ)({provider:c,model:h,tokens:f,connectionId:w,clientKeyId:x,requestId:y,endpoint:z?.endpoint});let{msgItem:j,textContent:m}=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=o(b[a]);if(c.length>0)return{msgItem:b[a],textContent:c}}let c=b[b.length-1];return{msgItem:c,textContent:o(c)}}(e.output),p=Date.now()-v;if((0,l.ox)((0,k.$R)({...F,latency:{ttft:p,total:p},tokens:{prompt_tokens:f.input_tokens||0,completion_tokens:f.output_tokens||0},response:{content:m,thinking:null,finish_reason:e.status||"unknown"},status:"success"},{endpoint:z?.endpoint||null})).catch(()=>{}),b===g.h.OPENAI_RESPONSES)return{success:!0,response:new Response(JSON.stringify(e),{headers:{"Content-Type":"application/json"}})};let q=f.input_tokens||0,r=f.output_tokens||0,s=(e.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||{})}})),t=s.length>0,u="completed"===e.status||"done"===e.status,B=t?"tool_calls":u?"stop":"incomplete"===e.status?"length":e.status||"stop",E={id:e.id||`chatcmpl-${Date.now()}`,object:"chat.completion",created:e.created_at||Math.floor(Date.now()/1e3),model:e.model||h,choices:[{index:0,message:{role:"assistant",content:m||(t?null:""),...t?{tool_calls:s}:{}},finish_reason:B}],usage:{prompt_tokens:q,completion_tokens:r,total_tokens:q+r}},G=(0,i.p)(E,b);return{success:!0,response:new Response(JSON.stringify(G),{headers:{"Content-Type":"application/json"}})}}catch(a){return console.error("[ChatCore] Responses API SSE→JSON failed:",a),(0,e.A1)(f.gx.BAD_GATEWAY,"Failed to convert streaming response to JSON")}try{let g=await (0,d.iJ)(a.body,h,{signal:D});if(!g)return(0,e.A1)(f.gx.BAD_GATEWAY,"Invalid SSE response for non-streaming request");n(A);let m=g.usage||{};C({tokens:m,status:"200 OK"}),await (0,k.YZ)({provider:c,model:h,tokens:m,connectionId:w,clientKeyId:x,requestId:y,endpoint:z?.endpoint});let o=Date.now()-v;(0,l.ox)((0,k.$R)({...F,latency:{ttft:o,total:o},tokens:m,response:{content:g.choices?.[0]?.message?.content||null,thinking:g.choices?.[0]?.message?.reasoning_content||null,finish_reason:g.choices?.[0]?.finish_reason||"unknown"},status:"success"},{endpoint:z?.endpoint||null})).catch(()=>{});let p=!1;if(g?.choices)for(let a of g.choices){let b=a?.message;if(b?.content&&"string"==typeof b.content){let{content:a,reasoning:c}=(0,j.j)(b.content);c&&(b.reasoning_content=c,b.content=a,p=!0)}}if(!p&&g?.choices)for(let a of g.choices)a?.message?.reasoning_content&&a.message.content&&delete a.message.reasoning_content;let q=(0,i.p)(g,b);return{success:!0,response:new Response(JSON.stringify(q),{headers:{"Content-Type":"application/json"}})}}catch(a){return console.error("[ChatCore] Chat Completions SSE→JSON failed:",a),(0,e.A1)(f.gx.BAD_GATEWAY,"Failed to convert streaming response to JSON")}}},83611:(a,b,c)=>{c.d(b,{H:()=>h,j:()=>g});let d="<think>",e="</think>",f=RegExp(`${d}([\\s\\S]*?)${e}\\s*`);function g(a){if("string"!=typeof a)return{content:a,reasoning:null};let b=a.match(f);return b?{content:a.replace(RegExp(`${d}[\\s\\S]*?${e}\\s*`,"g"),"").trimStart(),reasoning:b[1].trim()}:{content:a,reasoning:null}}function h(){let a="",b=!1;return function(c){let f=null;if("string"!=typeof c)return{content:c,reasoning:f};if(b){let d=c.indexOf(e);d>=0?(a+=c.slice(0,d),f=a.trim(),a="",b=!1,c=c.slice(d+e.length).trimStart()):(a+=c,c="")}if(!b){let g=c.indexOf(d);if(g>=0){let h=c.slice(g+d.length),i=h.indexOf(e);i>=0?(f=(f?f+"\n":"")+h.slice(0,i).trim(),c=c.slice(0,g)+h.slice(i+e.length).trimStart()):(b=!0,a=h,c=c.slice(0,g))}}return{content:c,reasoning:f}}}},90197:(a,b,c)=>{c.d(b,{H:()=>h,_:()=>i});var d=c(19956);function e(a){try{return JSON.stringify(a)?.length||0}catch{return 0}}function f(a){return Math.round(a/4)}function g(a,b={}){return{body:null,summary:{applied:!1,reason:a,...b}}}async function h(a,{enabled:b,format:c,model:i,minChars:j,timeoutMs:k,transform:l}={}){if(!b)return g("disabled");if("function"!=typeof l)return g("not_installed");if(!a)return g("missing_body");if(c!==d.h.CLAUDE)return g("unsupported_format",{detail:c});let m=Date.now(),n=e(a),o=Number(j)>0?Number(j):25e3;if(n<o)return g("below_threshold",{originalChars:n,threshold:o});try{let b=new TextEncoder().encode(JSON.stringify(a)),c=Number(k)>0?Number(k):15e3,d=await Promise.race([l({body:b,model:i,options:{minCompressChars:o}}),new Promise(a=>setTimeout(()=>a(null),c))]);if(!d)return g("timeout",{originalChars:n,durationMs:Date.now()-m});if(!d.applied)return g(d.reason||"passthrough",{detail:d.detail,originalChars:n,durationMs:Date.now()-m});let h=JSON.parse(new TextDecoder().decode(d.body)),j=e(h),p=d.info||{},q=p.compressedChars||0,r=p.imageTokens||(p.imagePixels?Math.round(p.imagePixels/750):4761*(p.imageCount||0)),s={applied:!0,reason:"applied",originalChars:n,compressedBodyChars:j,imagedChars:q,imageCount:p.imageCount||0,imageBytes:p.imageBytes||0,tokensBeforeEst:p.baselineTokens||f(n),tokensAfterEst:f(Math.max(0,n-q))+r,durationMs:Date.now()-m,cacheOwnsControl:d.cache?.ownsCacheControl===!0};return s.tokensSavedEst=Math.max(0,s.tokensBeforeEst-s.tokensAfterEst),s.savedPct=s.tokensBeforeEst>0?+(s.tokensSavedEst/s.tokensBeforeEst*100).toFixed(2):0,{body:h,summary:s}}catch(a){return g("transform_error",{detail:a?.message||String(a),originalChars:n,durationMs:Date.now()-m})}}function i(a){return a&&a.applied?`imaged ${a.imagedChars}ch → ${a.imageCount} image(s) | est ${a.tokensBeforeEst}→${a.tokensAfterEst} tokens (-${a.savedPct}%) | ${a.durationMs}ms`:null}},94176:(a,b,c)=>{function d(a,b){let c;if(!a.trim())return;let d=a.match(/^event:\s*(.+)$/m),f=a.match(/^data:\s*(.+)$/m);if(!d||!f)return;let g=d[1].trim(),h=f[1].trim();if("[DONE]"!==h){try{c=JSON.parse(h)}catch{return}if("response.created"===g)b.responseId=c.response?.id||b.responseId,b.created=c.response?.created_at||b.created;else if("response.output_item.done"===g)b.items.set(c.output_index??0,c.item);else if("response.completed"===g||"response.done"===g)b.status="completed",e(b,c);else if("response.incomplete"===g)b.status="incomplete",e(b,c);else if("response.failed"===g)b.status="failed";else if("response.output_text.delta"===g){let a=c.output_index??0;"string"==typeof c.delta&&c.delta.length>0&&b.deltaText.set(a,(b.deltaText.get(a)||"")+c.delta)}else if("response.function_call_arguments.delta"===g){let a=c.output_index??0;"string"==typeof c.delta&&c.delta.length>0&&b.deltaArgs.set(a,(b.deltaArgs.get(a)||"")+c.delta)}}}function e(a,b){b.response?.usage&&(a.usage.input_tokens=b.response.usage.input_tokens||0,a.usage.output_tokens=b.response.usage.output_tokens||0,a.usage.total_tokens=b.response.usage.total_tokens||0)}c.d(b,{convertResponsesStreamToJson:()=>p,hB:()=>g,iJ:()=>o,tQ:()=>j});let f={input_tokens:0,output_tokens:0,total_tokens:0};function g(a){if(Number.isFinite(a)&&a>0)return a;let b=Number.parseInt(globalThis.process?.env?.STREAM_TO_JSON_MAX_BYTES||"",10);return Number.isFinite(b)&&b>0?b:0x1000000}class h extends Error{constructor(a){super(`SSE stream exceeded STREAM_TO_JSON_MAX_BYTES (${a} bytes)`),this.name="StreamToJsonMaxBytesError"}}function i(a){return a?"number"==typeof a.byteLength?a.byteLength:"number"==typeof a.length?a.length:0:0}function j(a,b){if(a>b)throw new h(b)}function k(){let a=Error("The operation was aborted.");return a.name="AbortError",a}function l(a,b){let c;if(!b)return a.read();if(b.aborted)return Promise.reject(k());let d=new Promise((d,e)=>{c=()=>{e(k());try{a.cancel(k()).catch(()=>{})}catch{}},b.addEventListener("abort",c,{once:!0})});return Promise.race([a.read(),d]).finally(()=>{b.removeEventListener?.("abort",c)})}function m(){return{contentParts:[],reasoningParts:[],toolCallMap:new Map,finishReason:"stop"}}function n(a,b){let c=a.trim();if(!c.startsWith("data:"))return;let d=c.slice(5).trim();if(d&&"[DONE]"!==d)try{!function(a,b){if(b.seenChunk||(b.first=a||{},b.seenChunk=!0),a?.usage&&"object"==typeof a.usage&&(b.usage=a.usage),Array.isArray(a?.choices))for(let c of a.choices){let a=function(a,b){let c=a.choiceMap.get(b);return c||(c=m(),a.choiceMap.set(b,c)),c}(b,c?.index??0),d=c?.delta||{};if("string"==typeof d.content&&d.content.length>0&&a.contentParts.push(d.content),"string"==typeof d.reasoning_content&&d.reasoning_content.length>0&&a.reasoningParts.push(d.reasoning_content),c?.finish_reason&&(a.finishReason=c.finish_reason),Array.isArray(d.tool_calls))for(let b of d.tool_calls){let c=b.index??0;a.toolCallMap.has(c)||a.toolCallMap.set(c,{id:b.id||"",type:"function",function:{name:"",arguments:""}});let d=a.toolCallMap.get(c);b.id&&(d.id=b.id),b.function?.name&&(d.function.name?d.function.name!==b.function.name&&(d.function.name+=b.function.name):d.function.name=b.function.name),b.function?.arguments&&(d.function.arguments+=b.function.arguments)}}}(JSON.parse(d),b)}catch{}}async function o(a,b,{maxBytes:c,signal:d}={}){if(!a||"function"!=typeof a.getReader)return null;let e=a.getReader(),f=new TextDecoder,h=g(c),k={fallbackModel:b,seenChunk:!1,first:null,choiceMap:new Map,usage:null},p="",q=0;try{for(;;){let{done:a,value:b}=await l(e,d);if(a)break;q+=i(b),j(q,h);let c=(p+=f.decode(b,{stream:!0})).split("\n");for(let a of(p=c.pop()||"",c))n(a,k)}let a=f.decode();a&&(p+=a),p&&n(p,k)}catch(a){try{await e.cancel(a)}catch{}throw a}finally{e.releaseLock()}if(!k.seenChunk)return null;let r=k.first||{};0===k.choiceMap.size&&k.choiceMap.set(0,m());let s=[...k.choiceMap.entries()].sort((a,b)=>a[0]-b[0]).map(([a,b])=>{let c={role:"assistant",content:b.contentParts.join("")||(b.toolCallMap.size>0?null:"")};return b.reasoningParts.length>0&&(c.reasoning_content=b.reasoningParts.join("")),b.toolCallMap.size>0&&(c.tool_calls=[...b.toolCallMap.entries()].sort((a,b)=>a[0]-b[0]).map(([,a])=>({...a,function:{name:a.function.name,arguments:a.function.arguments||"{}"}}))),{index:a,message:c,finish_reason:b.finishReason}}),t={id:r.id||`chatcmpl-${Date.now()}`,object:"chat.completion",created:r.created||Math.floor(Date.now()/1e3),model:r.model||k.fallbackModel||"unknown",choices:s};return k.usage&&(t.usage=k.usage),t}async function p(a,{maxBytes:b,signal:c}={}){if(!a||"function"!=typeof a.getReader)return{id:`resp_${Date.now()}`,object:"response",created_at:Math.floor(Date.now()/1e3),status:"failed",output:[],usage:{...f}};let e=a.getReader(),h=new TextDecoder,k=g(b),m="",n=0,o={responseId:"",created:Math.floor(Date.now()/1e3),status:"in_progress",usage:{...f},items:new Map,deltaText:new Map,deltaArgs:new Map};try{for(;;){let{done:a,value:b}=await l(e,c);if(a)break;n+=i(b),j(n,k);let f=(m+=h.decode(b,{stream:!0})).split(/\r?\n\r?\n/);for(let a of(m=f.pop()||"",f))d(a,o)}let a=h.decode();a&&(m+=a),m.trim()&&d(m,o)}catch(a){try{await e.cancel(a)}catch{}throw a}finally{e.releaseLock()}for(let[a,b]of o.deltaText)!o.items.has(a)&&b&&o.items.set(a,{id:`msg_${o.responseId||"synth"}_${a}`,type:"message",role:"assistant",content:[{type:"output_text",text:b}]});for(let[a,b]of o.deltaArgs)!o.items.has(a)&&b&&o.items.set(a,{id:`fc_synth_${a}`,type:"function_call",call_id:"",name:"",arguments:b});let q=[...o.items.entries()].sort((a,b)=>a[0]-b[0]).map(([,a])=>a);return{id:o.responseId||`resp_${Date.now()}_${Math.random().toString(36).slice(2,8)}`,object:"response",created_at:o.created,status:o.status||"completed",output:q,usage:o.usage}}},94501:(a,b,c)=>{c.d(b,{X:()=>m});var d=c(19956);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(!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}},96145:(a,b,c)=>{c.d(b,{C:()=>h});var d=c(19956),e=c(50186);let f=new Set([d.h.GEMINI,d.h.GEMINI_CLI,d.h.VERTEX,d.h.ANTIGRAVITY,d.h.OLLAMA,d.h.KIRO]);function g(a){return"string"==typeof a&&(a.startsWith("http://")||a.startsWith("https://"))}async function h(a,b,c,i={}){if(!a||!f.has(c))return 0;let j=function(a,b){let c=[],e=a=>{for(let b of a||[])if(Array.isArray(b.content)){for(let a of b.content)if(a?.type==="image_url"){let b="string"==typeof a.image_url?a.image_url:a.image_url?.url;g(b)&&c.push({get:()=>b,set:b=>{"string"==typeof a.image_url?a.image_url=b:a.image_url.url=b}})}}},f=a=>{for(let b of a||[])for(let a of b.parts||[]){let b=a?.fileData?.fileUri;g(b)&&c.push({get:()=>b,part:a})}},h=a=>{for(let b of a||[])if(Array.isArray(b?.content))for(let a of b.content)a?.type==="input_image"&&g("string"==typeof a.image_url?a.image_url:a.image_url?.url||a.file_id)&&c.push({get:()=>"string"==typeof a.image_url?a.image_url:a.image_url?.url||a.file_id,set:b=>{"string"==typeof a.image_url?a.image_url=b:a.image_url&&"object"==typeof a.image_url?a.image_url.url=b:a.image_url=b}})};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),Array.isArray(a.input)&&h(a.input);break;case d.h.OPENAI_RESPONSES:case d.h.OPENAI_RESPONSE:case d.h.CODEX:h(a.input);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),Array.isArray(a.input)&&h(a.input)}return c}(a,b);if(!j.length)return 0;let k=0;for(let a of j){let b=a.get();if((0,e.W$)(b))continue;let c=await (0,e.ni)(b,i);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]}),k++)}return k}}};
73
+ `))}catch{}}}))),{status:a.status,statusText:a.statusText,headers:((e=new Headers(a.headers)).set("content-type","text/event-stream"),e)})}else if(N&&!N.includes("text/event-stream")&&!N.includes("application/json")){let d=await a.text().catch(()=>""),e=d.match(/<title>([^<]+)<\/title>/i),f=(e?.[1]||"").replace(/<[^>]*>/g,"").replace(/[\r\n]+/g," ").trim().slice(0,160)||(d.length<200?d.replace(/<[^>]*>/g,"").trim().slice(0,160):`Upstream returned non-SSE response (${N})`),g=a.status>=400?a.status:502;return console.warn(`[STREAM] ${b} | ${c} | blocked pipe: ${f} [${g}]`),F?.handleError?.(Error(`upstream non-SSE: ${g}`)),{success:!1,response:new Response(JSON.stringify({error:{message:`[${g}]: ${f}`}}),{status:g,headers:{"Content-Type":"application/json"}})}}C&&Promise.resolve().then(C).catch(a=>{console.error("[ChatCore] onRequestSuccess failed:",a?.message||a)});let O=(0,l.ox)((0,k.$R)({provider:b,model:c,connectionId:y,latency:{ttft:0,total:Date.now()-x},tokens:{prompt_tokens:0,completion_tokens:0},request:u??(0,k.Fo)(s,t),providerRequest:w||v||null,providerResponse:"[Streaming - raw response not captured]",response:{content:"[Streaming in progress...]",thinking:null,type:"streaming"},status:"pending",pxpipe:J},{id:I})).catch(a=>console.error("[RequestDetail] Failed to save streaming request:",a.message)),P=!1,Q=async(...a)=>{a[0]?.completed!==void 0&&(P=!0),await O,await G?.(...a)},R="responses-websocket"!==a.headers.get("x-switchboard-transport"),S=p===d.h.CLAUDE&&q===d.h.CLAUDE,T=S?{firstProgressTimeoutMs:L,stallTimeoutMs:M}:null,U=function({provider:a,sourceFormat:b,targetFormat:c,userAgent:g,reqLogger:i,toolNameMap:j,model:k,connectionId:l,body:m,onStreamComplete:o,clientKeyId:p,terminateOnResponsesTerminal:q,onStreamProgress:r}){let s=g?.toLowerCase().includes("droid")||g?.toLowerCase().includes("codex-cli");if(h.xq[a]?.format===d.h.OPENAI_RESPONSES&&c===d.h.OPENAI_RESPONSES&&!s){let c=n[b]||d.h.OPENAI;return(0,f.i5)(d.h.OPENAI_RESPONSES,c,a,i,j,k,l,m,o,p,q)}return(0,e.nZ)(c,b)?(0,f.i5)(c,b,a,i,j,k,l,m,o,p):(0,f.l2)(a,i,j,k,l,m,o,p,r)}({provider:b,sourceFormat:p,targetFormat:q,userAgent:r,reqLogger:D,toolNameMap:E,model:c,connectionId:y,body:s,onStreamComplete:Q,clientKeyId:z,terminateOnResponsesTerminal:R,onStreamProgress:T?a=>T.record?.(a):void 0}),V=p===d.h.OPENAI_RESPONSES&&q===d.h.OPENAI_RESPONSES?j.Hr:S?j.LS:q===d.h.OPENAI?j.ah:null,W=h.xq[b]?.stallTimeoutMs||i.xM;return{success:!0,response:new Response((0,g.Jb)(a,U,F,V,W,K,a=>{P||Promise.resolve(O).then(()=>H?.(a)).catch(()=>{})},T),{headers:m.RK})}}function p({provider:a,model:b,connectionId:c,clientKeyId:d,requestStartTime:e,body:f,stream:g,requestConfig:h,finalBody:i,translatedBody:j,requestId:m,clientRawRequest:n,pxpipe:o}){let q=`${Date.now()}-${Math.random().toString(36).slice(2,11)}`,r=!1,s=async d=>{r||(r=!0,await (0,l.ox)((0,k.$R)({provider:a,model:b,connectionId:c,latency:{ttft:0,total:Date.now()-e},request:h??(0,k.Fo)(f,g),providerRequest:i||j||null,response:{error:d?.message||"stream interrupted",type:"streaming"},status:"error",pxpipe:o},{id:q})))};return{onStreamComplete:async(p,t,u)=>{if(p?.completed===!1)return s(Error(p.error||"stream incomplete"));if(r)return;r=!0;let v={ttft:u?u-e:Date.now()-e,total:Date.now()-e},w=p?.content||"[Empty streaming response]",x=p?.thinking||null;(0,l.ox)((0,k.$R)({provider:a,model:b,connectionId:c,latency:v,tokens:t||{prompt_tokens:0,completion_tokens:0},request:h??(0,k.Fo)(f,g),providerRequest:i||j||null,providerResponse:w,response:{content:w,thinking:x,type:"streaming"},status:"success",pxpipe:o},{id:q})).catch(a=>{console.error("[RequestDetail] Failed to update streaming content:",a.message)}),await (0,k.YZ)({provider:a,model:b,tokens:t,connectionId:c,clientKeyId:d,requestId:m,endpoint:n?.endpoint,label:"STREAM USAGE"})},onStreamFailure:s,streamDetailId:q}}},66573:(a,b,c)=>{c.d(b,{Hh:()=>g,ST:()=>h,Wg:()=>f});let d=new TextEncoder;function e(a){return Math.max(0,Math.floor(Number(a)||0))}function f(a,b){var c;if("string"!=typeof a)return"";let d=e(b);return a.length<=d?a:0===d?"":a.slice(0,(c=a.charCodeAt(d-1))>=55296&&c<=56319?d-1:d)}function g(a,b){var c;if("string"!=typeof a)return"";let d=e(b);if(a.length<=d)return a;if(0===d)return"";let f=a.length-d;return a.slice((c=a.charCodeAt(f))>=56320&&c<=57343?f+1:f)}function h(a,b){if("string"!=typeof a)return"";let c=e(b);if(0===c)return"";if(d.encode(a).length<=c)return a;let g=0,h=a.length;for(;g<h;){let b=g+Math.ceil((h-g)/2);d.encode(a.slice(0,b)).length<=c?g=b:h=b-1}return f(a,g)}},70718:(a,b,c)=>{c.d(b,{q7:()=>p});var d=c(28730);let e="u">typeof process&&process.versions?.node&&!0,f="u">typeof process&&process.env?.ENABLE_REQUEST_LOGS==="true",g=null,h=null,i=null;async function j(){if(e&&f&&!g)try{let a=await Promise.resolve().then(c.t.bind(c,29021,19)),b=await Promise.resolve().then(c.t.bind(c,33873,19));g=a.default||a,i=(h=b.default||b).join("u">typeof process&&process.cwd?process.cwd():".","logs")}catch{}}async function k(a,b,c){if(await j(),!g||!i)return null;try{g.existsSync(i)||g.mkdirSync(i,{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,"-"),f=`${a}_${b}_${e}_${d}`,j=h.join(i,f);return g.mkdirSync(j,{recursive:!0}),j}catch(a){return console.log("[LOG] Failed to create log session:",a.message),null}}let l=new Set(["prompt_cache_key","session_id","sessionid","conversation_id","conversationid","user_id","userid","request_id","requestid","x_session_id","x_amp_thread_id","x_client_request_id"]);function m(a,b,c){if(g&&a)try{let d=h.join(a,b);g.writeFileSync(d,JSON.stringify(function a(b){if(Array.isArray(b))return b.map(a);if(!b||"object"!=typeof b)return b;let c={};for(let[d,e]of Object.entries(b)){let b=d.toLowerCase().replaceAll("-","_");c[d]=l.has(b)?"[redacted]":a(e)}return c}(c),null,2))}catch(a){console.log(`[LOG] Failed to write ${b}:`,a.message)}}let n=["api-key","x-key"];function o(a){if(!a)return{};let b={...a};for(let a of Object.keys(b)){let c=a.toLowerCase();if(function(a){return d.fC.some(b=>a.includes(b))||n.some(b=>a.includes(b))}(c)){let e=b[a];d.qk.some(a=>c.includes(a))||c.includes("api-key")||c.includes("x-key")?b[a]="[redacted]":"string"==typeof e&&e.length>12?b[a]=e.slice(0,8)+"..."+e.slice(-4):null!=e&&(b[a]="[redacted]")}}return b}async function p(a,b,c){if(!f)return{sessionPath:null,logClientRawRequest(){},logRawRequest(){},logOpenAIRequest(){},logTargetRequest(){},logProviderResponse(){},appendProviderChunk(){},appendOpenAIChunk(){},logConvertedResponse(){},appendConvertedChunk(){},logError(){},close(){}};let d=await k(a,b,c),e={},i=!1;function j(a,b,c){if(g&&d&&!i)try{let f=e[a];f||(f=e[a]=g.createWriteStream(h.join(d,b),{flags:"a"})).on("error",()=>{}),f.write(c)}catch{}}return{get sessionPath(){return d},logClientRawRequest(a,b,c={}){m(d,"1_req_client.json",{timestamp:new Date().toISOString(),endpoint:a,headers:o(c),body:b})},logRawRequest(a,b={}){m(d,"2_req_source.json",{timestamp:new Date().toISOString(),headers:o(b),body:a})},logOpenAIRequest(a){m(d,"3_req_openai.json",{timestamp:new Date().toISOString(),body:a})},logTargetRequest(a,b,c){m(d,"4_req_target.json",{timestamp:new Date().toISOString(),url:"string"==typeof a&&a?a.replace(/([?&])(key|api_key|api-key)=[^&]*/gi,"$1$2=[redacted]"):a,headers:o(b),body:c})},logProviderResponse(a,b,c,e){m(d,"5_res_provider.json",{timestamp:new Date().toISOString(),status:a,statusText:b,headers:o(c&&"function"==typeof c.entries?Object.fromEntries(c.entries()):c),body:e})},appendProviderChunk(a){j("provider","5_res_provider.txt",a)},appendOpenAIChunk(a){j("openai","6_res_openai.txt",a)},logConvertedResponse(a){m(d,"7_res_client.json",{timestamp:new Date().toISOString(),body:a})},appendConvertedChunk(a){j("converted","7_res_client.txt",a)},logError(a,b=null){m(d,"6_error.json",{timestamp:new Date().toISOString(),error:a?.message||String(a),requestBody:b})},close:()=>{let a;return i=!0,a=Object.values(e),e={},Promise.all(a.map(a=>new Promise(b=>{try{a.end(b)}catch{b()}})))}}}},71413:(a,b,c)=>{c.d(b,{O:()=>e});var d=c(5425);function e(a){let b=a?.messages;if(!Array.isArray(b))return null;let c=new Set,e=new Set,f=0,g=0,h=0;for(let a of b)if(Array.isArray(a?.content))for(let b of(!a.content.length&&h++,a.content))"assistant"===a.role&&b?.type==="tool_use"&&(f++,b.id&&c.add(b.id)),"user"===a.role&&b?.type==="tool_result"&&(g++,b.tool_use_id&&e.add(b.tool_use_id));if(!f&&!g)return null;let i=0,j=0,k=0,l=[];for(let a=0;a<b.length;a++){if(b[a]?.role!=="assistant")continue;let c=a,d=new Set;do{for(let c of Array.isArray(b[a].content)?b[a].content:[])c?.type==="tool_use"&&c.id&&d.add(c.id);a++}while(b[a]?.role==="assistant");let f=a,g=new Set;for(let a=f;b[a]?.role==="user";a++)for(let c of Array.isArray(b[a].content)?b[a].content:[])c?.type==="tool_result"&&c.tool_use_id&&g.add(c.tool_use_id);let h=[...d].filter(a=>!g.has(a));h.length&&(i+=h.length,j+=h.filter(a=>e.has(a)).length,k++,l.length<10&&l.push({assistantIndex:c,callCount:d.size,missingCount:h.length,nextRole:["user","assistant","system","developer"].includes(b[f]?.role)?b[f].role:"other-or-end"})),a--}let m=[...e].filter(a=>!c.has(a)).length,n=(0,d.k)(a);return{...n?{threadContinuation:!0,externalContextResults:m}:{},messageCount:b.length,toolCalls:f,toolResults:g,emptyMessages:h,missingResults:i,misplacedResults:j,orphanResults:n?0:m,invalidTurnCount:k,invalidTurns:l}}},78255:(a,b,c)=>{c.d(b,{I:()=>p});var d=c(94176),e=c(89865),f=c(60290),g=c(19956),h=c(4630),i=c(49612),j=c(83611),k=c(29461),l=c(12407);let m=a=>h.xq[a]?.format===g.h.OPENAI_RESPONSES;function n(a){a&&Promise.resolve().then(a).catch(a=>{console.error("[ChatCore] onRequestSuccess failed:",a?.message||a)})}function o(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:""}async function p({providerResponse:a,sourceFormat:b,provider:c,model:h,body:q,stream:r,requestConfig:s,translatedBody:t,finalBody:u,requestStartTime:v,connectionId:w,clientKeyId:x,requestId:y,clientRawRequest:z,onRequestSuccess:A,trackDone:B,appendLog:C,streamSignal:D}){let E=a.headers.get("content-type")||"";if(!(E.includes("text/event-stream")||""===E&&m(c)))return null;B();let F={provider:c,model:h,connectionId:w,request:s??(0,k.Fo)(q,r),providerRequest:u||t||null};if(m(c))try{let e=await (0,d.convertResponsesStreamToJson)(a.body,{signal:D});n(A);let f=e.usage||{};C({tokens:f,status:"200 OK"}),await (0,k.YZ)({provider:c,model:h,tokens:f,connectionId:w,clientKeyId:x,requestId:y,endpoint:z?.endpoint});let{msgItem:j,textContent:m}=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=o(b[a]);if(c.length>0)return{msgItem:b[a],textContent:c}}let c=b[b.length-1];return{msgItem:c,textContent:o(c)}}(e.output),p=Date.now()-v;if((0,l.ox)((0,k.$R)({...F,latency:{ttft:p,total:p},tokens:{prompt_tokens:f.input_tokens||0,completion_tokens:f.output_tokens||0},response:{content:m,thinking:null,finish_reason:e.status||"unknown"},status:"success"},{endpoint:z?.endpoint||null})).catch(()=>{}),b===g.h.OPENAI_RESPONSES)return{success:!0,response:new Response(JSON.stringify(e),{headers:{"Content-Type":"application/json"}})};let q=f.input_tokens||0,r=f.output_tokens||0,s=(e.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||{})}})),t=s.length>0,u="completed"===e.status||"done"===e.status,B=t?"tool_calls":u?"stop":"incomplete"===e.status?"length":e.status||"stop",E={id:e.id||`chatcmpl-${Date.now()}`,object:"chat.completion",created:e.created_at||Math.floor(Date.now()/1e3),model:e.model||h,choices:[{index:0,message:{role:"assistant",content:m||(t?null:""),...t?{tool_calls:s}:{}},finish_reason:B}],usage:{prompt_tokens:q,completion_tokens:r,total_tokens:q+r}},G=(0,i.p)(E,b);return{success:!0,response:new Response(JSON.stringify(G),{headers:{"Content-Type":"application/json"}})}}catch(a){return console.error("[ChatCore] Responses API SSE→JSON failed:",a),(0,e.A1)(f.gx.BAD_GATEWAY,"Failed to convert streaming response to JSON")}try{let g=await (0,d.iJ)(a.body,h,{signal:D});if(!g)return(0,e.A1)(f.gx.BAD_GATEWAY,"Invalid SSE response for non-streaming request");n(A);let m=g.usage||{};C({tokens:m,status:"200 OK"}),await (0,k.YZ)({provider:c,model:h,tokens:m,connectionId:w,clientKeyId:x,requestId:y,endpoint:z?.endpoint});let o=Date.now()-v;(0,l.ox)((0,k.$R)({...F,latency:{ttft:o,total:o},tokens:m,response:{content:g.choices?.[0]?.message?.content||null,thinking:g.choices?.[0]?.message?.reasoning_content||null,finish_reason:g.choices?.[0]?.finish_reason||"unknown"},status:"success"},{endpoint:z?.endpoint||null})).catch(()=>{});let p=!1;if(g?.choices)for(let a of g.choices){let b=a?.message;if(b?.content&&"string"==typeof b.content){let{content:a,reasoning:c}=(0,j.j)(b.content);c&&(b.reasoning_content=c,b.content=a,p=!0)}}if(!p&&g?.choices)for(let a of g.choices)a?.message?.reasoning_content&&a.message.content&&delete a.message.reasoning_content;let q=(0,i.p)(g,b);return{success:!0,response:new Response(JSON.stringify(q),{headers:{"Content-Type":"application/json"}})}}catch(a){return console.error("[ChatCore] Chat Completions SSE→JSON failed:",a),(0,e.A1)(f.gx.BAD_GATEWAY,"Failed to convert streaming response to JSON")}}},83611:(a,b,c)=>{c.d(b,{H:()=>h,j:()=>g});let d="<think>",e="</think>",f=RegExp(`${d}([\\s\\S]*?)${e}\\s*`);function g(a){if("string"!=typeof a)return{content:a,reasoning:null};let b=a.match(f);return b?{content:a.replace(RegExp(`${d}[\\s\\S]*?${e}\\s*`,"g"),"").trimStart(),reasoning:b[1].trim()}:{content:a,reasoning:null}}function h(){let a="",b=!1;return function(c){let f=null;if("string"!=typeof c)return{content:c,reasoning:f};if(b){let d=c.indexOf(e);d>=0?(a+=c.slice(0,d),f=a.trim(),a="",b=!1,c=c.slice(d+e.length).trimStart()):(a+=c,c="")}if(!b){let g=c.indexOf(d);if(g>=0){let h=c.slice(g+d.length),i=h.indexOf(e);i>=0?(f=(f?f+"\n":"")+h.slice(0,i).trim(),c=c.slice(0,g)+h.slice(i+e.length).trimStart()):(b=!0,a=h,c=c.slice(0,g))}}return{content:c,reasoning:f}}}},90197:(a,b,c)=>{c.d(b,{H:()=>h,_:()=>i});var d=c(19956);function e(a){try{return JSON.stringify(a)?.length||0}catch{return 0}}function f(a){return Math.round(a/4)}function g(a,b={}){return{body:null,summary:{applied:!1,reason:a,...b}}}async function h(a,{enabled:b,format:c,model:i,minChars:j,timeoutMs:k,transform:l}={}){if(!b)return g("disabled");if("function"!=typeof l)return g("not_installed");if(!a)return g("missing_body");if(c!==d.h.CLAUDE)return g("unsupported_format",{detail:c});let m=Date.now(),n=e(a),o=Number(j)>0?Number(j):25e3;if(n<o)return g("below_threshold",{originalChars:n,threshold:o});try{let b=new TextEncoder().encode(JSON.stringify(a)),c=Number(k)>0?Number(k):15e3,d=await Promise.race([l({body:b,model:i,options:{minCompressChars:o}}),new Promise(a=>setTimeout(()=>a(null),c))]);if(!d)return g("timeout",{originalChars:n,durationMs:Date.now()-m});if(!d.applied)return g(d.reason||"passthrough",{detail:d.detail,originalChars:n,durationMs:Date.now()-m});let h=JSON.parse(new TextDecoder().decode(d.body)),j=e(h),p=d.info||{},q=p.compressedChars||0,r=p.imageTokens||(p.imagePixels?Math.round(p.imagePixels/750):4761*(p.imageCount||0)),s={applied:!0,reason:"applied",originalChars:n,compressedBodyChars:j,imagedChars:q,imageCount:p.imageCount||0,imageBytes:p.imageBytes||0,tokensBeforeEst:p.baselineTokens||f(n),tokensAfterEst:f(Math.max(0,n-q))+r,durationMs:Date.now()-m,cacheOwnsControl:d.cache?.ownsCacheControl===!0};return s.tokensSavedEst=Math.max(0,s.tokensBeforeEst-s.tokensAfterEst),s.savedPct=s.tokensBeforeEst>0?+(s.tokensSavedEst/s.tokensBeforeEst*100).toFixed(2):0,{body:h,summary:s}}catch(a){return g("transform_error",{detail:a?.message||String(a),originalChars:n,durationMs:Date.now()-m})}}function i(a){return a&&a.applied?`imaged ${a.imagedChars}ch → ${a.imageCount} image(s) | est ${a.tokensBeforeEst}→${a.tokensAfterEst} tokens (-${a.savedPct}%) | ${a.durationMs}ms`:null}},94176:(a,b,c)=>{function d(a,b){let c;if(!a.trim())return;let d=a.match(/^event:\s*(.+)$/m),f=a.match(/^data:\s*(.+)$/m);if(!d||!f)return;let g=d[1].trim(),h=f[1].trim();if("[DONE]"!==h){try{c=JSON.parse(h)}catch{return}if("response.created"===g)b.responseId=c.response?.id||b.responseId,b.created=c.response?.created_at||b.created;else if("response.output_item.done"===g)b.items.set(c.output_index??0,c.item);else if("response.completed"===g||"response.done"===g)b.status="completed",e(b,c);else if("response.incomplete"===g)b.status="incomplete",e(b,c);else if("response.failed"===g)b.status="failed";else if("response.output_text.delta"===g){let a=c.output_index??0;"string"==typeof c.delta&&c.delta.length>0&&b.deltaText.set(a,(b.deltaText.get(a)||"")+c.delta)}else if("response.function_call_arguments.delta"===g){let a=c.output_index??0;"string"==typeof c.delta&&c.delta.length>0&&b.deltaArgs.set(a,(b.deltaArgs.get(a)||"")+c.delta)}}}function e(a,b){b.response?.usage&&(a.usage.input_tokens=b.response.usage.input_tokens||0,a.usage.output_tokens=b.response.usage.output_tokens||0,a.usage.total_tokens=b.response.usage.total_tokens||0)}c.d(b,{convertResponsesStreamToJson:()=>p,hB:()=>g,iJ:()=>o,tQ:()=>j});let f={input_tokens:0,output_tokens:0,total_tokens:0};function g(a){if(Number.isFinite(a)&&a>0)return a;let b=Number.parseInt(globalThis.process?.env?.STREAM_TO_JSON_MAX_BYTES||"",10);return Number.isFinite(b)&&b>0?b:0x1000000}class h extends Error{constructor(a){super(`SSE stream exceeded STREAM_TO_JSON_MAX_BYTES (${a} bytes)`),this.name="StreamToJsonMaxBytesError"}}function i(a){return a?"number"==typeof a.byteLength?a.byteLength:"number"==typeof a.length?a.length:0:0}function j(a,b){if(a>b)throw new h(b)}function k(){let a=Error("The operation was aborted.");return a.name="AbortError",a}function l(a,b){let c;if(!b)return a.read();if(b.aborted)return Promise.reject(k());let d=new Promise((d,e)=>{c=()=>{e(k());try{a.cancel(k()).catch(()=>{})}catch{}},b.addEventListener("abort",c,{once:!0})});return Promise.race([a.read(),d]).finally(()=>{b.removeEventListener?.("abort",c)})}function m(){return{contentParts:[],reasoningParts:[],toolCallMap:new Map,finishReason:"stop"}}function n(a,b){let c=a.trim();if(!c.startsWith("data:"))return;let d=c.slice(5).trim();if(d&&"[DONE]"!==d)try{!function(a,b){if(b.seenChunk||(b.first=a||{},b.seenChunk=!0),a?.usage&&"object"==typeof a.usage&&(b.usage=a.usage),Array.isArray(a?.choices))for(let c of a.choices){let a=function(a,b){let c=a.choiceMap.get(b);return c||(c=m(),a.choiceMap.set(b,c)),c}(b,c?.index??0),d=c?.delta||{};if("string"==typeof d.content&&d.content.length>0&&a.contentParts.push(d.content),"string"==typeof d.reasoning_content&&d.reasoning_content.length>0&&a.reasoningParts.push(d.reasoning_content),c?.finish_reason&&(a.finishReason=c.finish_reason),Array.isArray(d.tool_calls))for(let b of d.tool_calls){let c=b.index??0;a.toolCallMap.has(c)||a.toolCallMap.set(c,{id:b.id||"",type:"function",function:{name:"",arguments:""}});let d=a.toolCallMap.get(c);b.id&&(d.id=b.id),b.function?.name&&(d.function.name?d.function.name!==b.function.name&&(d.function.name+=b.function.name):d.function.name=b.function.name),b.function?.arguments&&(d.function.arguments+=b.function.arguments)}}}(JSON.parse(d),b)}catch{}}async function o(a,b,{maxBytes:c,signal:d}={}){if(!a||"function"!=typeof a.getReader)return null;let e=a.getReader(),f=new TextDecoder,h=g(c),k={fallbackModel:b,seenChunk:!1,first:null,choiceMap:new Map,usage:null},p="",q=0;try{for(;;){let{done:a,value:b}=await l(e,d);if(a)break;q+=i(b),j(q,h);let c=(p+=f.decode(b,{stream:!0})).split("\n");for(let a of(p=c.pop()||"",c))n(a,k)}let a=f.decode();a&&(p+=a),p&&n(p,k)}catch(a){try{await e.cancel(a)}catch{}throw a}finally{e.releaseLock()}if(!k.seenChunk)return null;let r=k.first||{};0===k.choiceMap.size&&k.choiceMap.set(0,m());let s=[...k.choiceMap.entries()].sort((a,b)=>a[0]-b[0]).map(([a,b])=>{let c={role:"assistant",content:b.contentParts.join("")||(b.toolCallMap.size>0?null:"")};return b.reasoningParts.length>0&&(c.reasoning_content=b.reasoningParts.join("")),b.toolCallMap.size>0&&(c.tool_calls=[...b.toolCallMap.entries()].sort((a,b)=>a[0]-b[0]).map(([,a])=>({...a,function:{name:a.function.name,arguments:a.function.arguments||"{}"}}))),{index:a,message:c,finish_reason:b.finishReason}}),t={id:r.id||`chatcmpl-${Date.now()}`,object:"chat.completion",created:r.created||Math.floor(Date.now()/1e3),model:r.model||k.fallbackModel||"unknown",choices:s};return k.usage&&(t.usage=k.usage),t}async function p(a,{maxBytes:b,signal:c}={}){if(!a||"function"!=typeof a.getReader)return{id:`resp_${Date.now()}`,object:"response",created_at:Math.floor(Date.now()/1e3),status:"failed",output:[],usage:{...f}};let e=a.getReader(),h=new TextDecoder,k=g(b),m="",n=0,o={responseId:"",created:Math.floor(Date.now()/1e3),status:"in_progress",usage:{...f},items:new Map,deltaText:new Map,deltaArgs:new Map};try{for(;;){let{done:a,value:b}=await l(e,c);if(a)break;n+=i(b),j(n,k);let f=(m+=h.decode(b,{stream:!0})).split(/\r?\n\r?\n/);for(let a of(m=f.pop()||"",f))d(a,o)}let a=h.decode();a&&(m+=a),m.trim()&&d(m,o)}catch(a){try{await e.cancel(a)}catch{}throw a}finally{e.releaseLock()}for(let[a,b]of o.deltaText)!o.items.has(a)&&b&&o.items.set(a,{id:`msg_${o.responseId||"synth"}_${a}`,type:"message",role:"assistant",content:[{type:"output_text",text:b}]});for(let[a,b]of o.deltaArgs)!o.items.has(a)&&b&&o.items.set(a,{id:`fc_synth_${a}`,type:"function_call",call_id:"",name:"",arguments:b});let q=[...o.items.entries()].sort((a,b)=>a[0]-b[0]).map(([,a])=>a);return{id:o.responseId||`resp_${Date.now()}_${Math.random().toString(36).slice(2,8)}`,object:"response",created_at:o.created,status:o.status||"completed",output:q,usage:o.usage}}},94501:(a,b,c)=>{c.d(b,{X:()=>m});var d=c(19956);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(!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}},96145:(a,b,c)=>{c.d(b,{C:()=>h});var d=c(19956),e=c(50186);let f=new Set([d.h.GEMINI,d.h.GEMINI_CLI,d.h.VERTEX,d.h.ANTIGRAVITY,d.h.OLLAMA,d.h.KIRO]);function g(a){return"string"==typeof a&&(a.startsWith("http://")||a.startsWith("https://"))}async function h(a,b,c,i={}){if(!a||!f.has(c))return 0;let j=function(a,b){let c=[],e=a=>{for(let b of a||[])if(Array.isArray(b.content)){for(let a of b.content)if(a?.type==="image_url"){let b="string"==typeof a.image_url?a.image_url:a.image_url?.url;g(b)&&c.push({get:()=>b,set:b=>{"string"==typeof a.image_url?a.image_url=b:a.image_url.url=b}})}}},f=a=>{for(let b of a||[])for(let a of b.parts||[]){let b=a?.fileData?.fileUri;g(b)&&c.push({get:()=>b,part:a})}},h=a=>{for(let b of a||[])if(Array.isArray(b?.content))for(let a of b.content)a?.type==="input_image"&&g("string"==typeof a.image_url?a.image_url:a.image_url?.url||a.file_id)&&c.push({get:()=>"string"==typeof a.image_url?a.image_url:a.image_url?.url||a.file_id,set:b=>{"string"==typeof a.image_url?a.image_url=b:a.image_url&&"object"==typeof a.image_url?a.image_url.url=b:a.image_url=b}})};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),Array.isArray(a.input)&&h(a.input);break;case d.h.OPENAI_RESPONSES:case d.h.OPENAI_RESPONSE:case d.h.CODEX:h(a.input);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),Array.isArray(a.input)&&h(a.input)}return c}(a,b);if(!j.length)return 0;let k=0;for(let a of j){let b=a.get();if((0,e.W$)(b))continue;let c=await (0,e.ni)(b,i);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]}),k++)}return k}}};
@@ -1,2 +1,2 @@
1
- "use strict";exports.id=7880,exports.ids=[7880],exports.modules={1354:(a,b,c)=>{async function d(a,b,c={}){var f;let g,h,i,j;if(!a?.ok)return{ok:!1,reason:"http_error"};let k=(a.headers?.get?.("content-type")||"").toLowerCase();if(!(k.includes("text/event-stream")||k.includes("ndjson"))||!a.body)try{let b=await a.clone().json(),c=o(b),d=c?.prompt_tokens??null,e=c?.completion_tokens??null;if(!(n(b)||"number"==typeof e&&e>0)){try{await a.body?.cancel?.()}catch{}return{ok:!1,reason:"empty_json"}}return{ok:!0,result:a,preInspect:{hasCompletion:!0,tokensIn:d,tokensOut:e,data:b}}}catch{return{ok:!0,result:a,preInspect:{hasCompletion:!1,tokensIn:null,tokensOut:null}}}let l=await e(a.body,2e4,{abortSignal:c.abortSignal||null});return l.accepted?{ok:!0,result:new Response((g=(f=l).prefixChunks||[],h=0,i=f.reader,j=!!f.ended||!i,new ReadableStream({async pull(a){try{if(h<g.length)return void a.enqueue(g[h++]);if(j||!i)return void a.close();let{done:b,value:c}=await i.read();if(b)return void a.close();c&&a.enqueue(c)}catch(b){try{a.error(b)}catch{}}},async cancel(a){if(i)try{await i.cancel(a)}catch{}}})),{status:a.status,statusText:a.statusText,headers:a.headers}),preInspect:{hasCompletion:!!l.sawCompletion,tokensIn:l.tokensIn,tokensOut:l.tokensOut}}:(b?.warn?.("AUTO",`empty stream after probe (${l.reason||"no_content"})`),{ok:!1,reason:l.reason||"empty_stream"})}async function e(a,b=2e4,c={}){if(!a||"function"!=typeof a.getReader)return{accepted:!1,hasContent:!1,reason:"no_body",prefixChunks:[],reader:null};let d=c.abortSignal||null,f=a.getReader(),g=new TextDecoder,h=[],i=null,k=null,n=!1,o="",p=Number.isFinite(b)&&b>0?b:2e4,q=Date.now()+p,r=null,s=null,t=()=>{null!=r&&(clearTimeout(r),r=null)},u=()=>{if(s&&d){try{d.removeEventListener("abort",s)}catch{}s=null}},v=async a=>{t(),u();try{await f.cancel(a||"empty_stream")}catch{}return{accepted:!1,hasContent:!1,reason:a,prefixChunks:h,reader:null,tokensIn:i,tokensOut:k,sawCompletion:!1}},w=a=>(t(),u(),{accepted:!0,hasContent:!0,prefixChunks:h,reader:a?null:f,ended:!!a,tokensIn:i,tokensOut:k,sawCompletion:n});try{for(;;){if(d?.aborted)return v("client_aborted");let a=q-Date.now();if(a<=0)return v("probe_idle_timeout");let b=f.read().then(a=>({kind:"read",r:a})),c=new Promise(b=>{r=setTimeout(()=>b({kind:"timeout"}),a)}),e=d?new Promise(a=>{s=()=>a({kind:"aborted"}),d.aborted?s():d.addEventListener("abort",s,{once:!0})}):null,x=await Promise.race([b,c,e].filter(Boolean));if(t(),"aborted"!==x.kind&&u(),"timeout"===x.kind)return v("probe_idle_timeout");if("aborted"===x.kind)return v("client_aborted");let{done:y,value:z}=x.r;if(y)return t(),u(),{accepted:!1,hasContent:!1,reason:"empty_stream_end",prefixChunks:h,reader:null,ended:!0,tokensIn:i,tokensOut:k,sawCompletion:!1};if(z?.byteLength){q=Date.now()+p,h.push(z);let a=g.decode(z,{stream:!0}),b=o.slice(-64)+a;o=(o+a).slice(-512),l(b)&&(n=!0);let c=m(b);if(c&&(i=c.prompt_tokens??i,(k=c.completion_tokens??k)>0&&(n=!0)),function(a){let b=String(a||"");if(!b.trim())return!0;let c=!1;for(let a of b.split(/\r?\n/)){let b=a.trim();if(b){if((c=!0,!(b.startsWith(":")||/^event:\s*(ping|heartbeat)\s*$/i.test(b)))&&!(b.startsWith("id:")||b.startsWith("retry:"))){if(b.startsWith("data:")){let a=b.slice(5).trim();if(!a||"[DONE]"===a)continue;try{let b=JSON.parse(a);if(b&&("ping"===b.type||"heartbeat"===b.type))continue}catch{}}return!1}}}return c||!b.trim()}(a)||function(a){for(let b of String(a||"").split(/\r?\n/)){let a=b.trim();if(!a.startsWith("data:"))continue;let c=a.slice(5).trim();if(c&&"[DONE]"!==c)try{if(j(JSON.parse(c)))return!0}catch{}}return!1}(b))continue;return w(!1)}z&&h.push(z)}}catch(a){t(),u();try{await f.cancel(a?.message||"probe_error")}catch{}return{accepted:!1,hasContent:!1,reason:"probe_error",prefixChunks:h,reader:null,tokensIn:i,tokensOut:k,sawCompletion:!1}}}async function f(a){if(!a)return{text:"",httpError:"router_http_0",status:0};let b=a.status??0;if(!a.ok){try{await a.text()}catch{}return{text:"",httpError:`router_http_${b}`,status:b}}let c=(a.headers?.get?.("content-type")||"").toLowerCase();try{if(c.includes("text/event-stream")||c.includes("ndjson")){let c=await a.text();return{text:i(c),status:b}}let d=await a.text();try{return{text:g(JSON.parse(d)),status:b}}catch{if(d.includes("data:"))return{text:i(d),status:b};return{text:d,status:b}}}catch{return{text:"",status:b}}}function g(a){if(!a||"object"!=typeof a)return"";let b=a?.choices?.[0];if(b?.message?.content){let a=b.message.content;if("string"==typeof a)return a;if(Array.isArray(a))return a.map(a=>a?.text||a?.content||"").join("")}if("string"==typeof b?.text)return b.text;if(Array.isArray(a?.content))return a.content.map(a=>a?.text||"").join("");if("string"==typeof a?.content)return a.content;let c=a?.candidates?.[0]?.content?.parts;if(Array.isArray(c))return c.map(a=>a?.text||"").join("");if(Array.isArray(a?.output)){let b=[];for(let c of a.output)if(c?.type==="message"&&Array.isArray(c.content))for(let a of c.content)a?.type==="output_text"&&a.text?b.push(a.text):"string"==typeof a?.text&&b.push(a.text);if(b.length)return b.join("")}return""}function h(a){return i(a)}function i(a){let b=[];for(let c of String(a||"").split("\n")){let a=c.trim();if(!a.startsWith("data:"))continue;let d=a.slice(5).trim();if(d&&"[DONE]"!==d)try{let a=JSON.parse(d),c=a?.choices?.[0]?.delta?.content;"string"==typeof c&&b.push(c);let e=a?.choices?.[0]?.message?.content;"string"==typeof e&&b.push(e),a?.type==="content_block_delta"&&a?.delta?.text&&b.push(a.delta.text),a?.delta?.type==="text_delta"&&a?.delta?.text&&b.push(a.delta.text);let f=a?.candidates?.[0]?.content?.parts;if(Array.isArray(f))for(let a of f)"string"==typeof a?.text&&b.push(a.text)}catch{}}return b.join("")}function j(a){return!!a&&"object"==typeof a&&!!(a.error||"error"===a.type||a.choices?.[0]?.error)}function k(a){return l(a)}function l(a){if(!a||a.length<4)return!1;for(let b of String(a).split(/\r?\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);if(j(a))continue;let b=a?.choices?.[0]?.delta;if("string"==typeof b?.content&&b.content.length>0||Array.isArray(b?.tool_calls)&&b.tool_calls.length>0||b?.function_call&&(b.function_call.name||b.function_call.arguments))return!0;let d=a?.choices?.[0]?.message;if("string"==typeof d?.content&&d.content.length>0||Array.isArray(d?.tool_calls)&&d.tool_calls.length>0||a?.type==="response.output_text.delta"||a?.type==="response.function_call_arguments.delta"||"string"==typeof a?.delta&&a.delta.length>0&&a.type?.includes("output")||a?.type==="content_block_delta"&&(a?.delta?.type==="text_delta"&&a?.delta?.text||a?.delta?.type==="input_json_delta"||"string"==typeof a?.delta?.partial_json||"string"==typeof a?.delta?.text&&a.delta.text&&"thinking_delta"!==a.delta.type)||a?.type==="content_block_start"&&(a?.content_block?.type==="tool_use"||a?.content_block?.type==="text"&&"string"==typeof a.content_block.text&&a.content_block.text.length>0))return!0;let e=a?.candidates?.[0]?.content?.parts;if(Array.isArray(e)){for(let a of e)if(a?.functionCall||"string"==typeof a?.text&&a.text.length>0&&!0!==a.thought)return!0}}catch{}}return!1}function m(a){return!a||a.length<8?null:function(a){let b=null;for(let c of String(a||"").split("\n")){let a=c.trim();if(!a.startsWith("data:"))continue;let d=a.slice(5).trim();if(d&&"[DONE]"!==d)try{let a=JSON.parse(d),c=o(a);c&&(b=c),a?.usage&&(b={prompt_tokens:a.usage.input_tokens??b?.prompt_tokens??0,completion_tokens:a.usage.output_tokens??b?.completion_tokens??0}),a?.message?.usage&&(b={prompt_tokens:a.message.usage.input_tokens??0,completion_tokens:a.message.usage.output_tokens??0})}catch{}}return b}(a.length>8e3?a.slice(-8e3):a)}function n(a){if(!a||"object"!=typeof a)return!1;if(g(a).length>0)return!0;let b=a?.choices?.[0],c=b?.message;if(Array.isArray(c?.tool_calls)&&c.tool_calls.length>0||c?.function_call&&(c.function_call.name||c.function_call.arguments)||Array.isArray(a?.content)&&a.content.some(a=>a?.type==="tool_use"||a?.type==="function")||Array.isArray(a?.output)&&a.output.some(a=>a?.type==="function_call"||a?.type==="tool_call"||a?.type==="custom_tool_call"))return!0;let d=a?.candidates?.[0]?.content?.parts;return!!(Array.isArray(d)&&d.some(a=>a?.functionCall))}function o(a){return a&&"object"==typeof a?a.usage?.prompt_tokens!=null||a.usage?.completion_tokens!=null?{prompt_tokens:a.usage.prompt_tokens??0,completion_tokens:a.usage.completion_tokens??0}:a.usage?.input_tokens!=null||a.usage?.output_tokens!=null?{prompt_tokens:a.usage.input_tokens??0,completion_tokens:a.usage.output_tokens??0}:a.usageMetadata?{prompt_tokens:a.usageMetadata.promptTokenCount??0,completion_tokens:a.usageMetadata.candidatesTokenCount??0}:null:null}c.d(b,{Ah:()=>m,Ki:()=>k,NT:()=>h,R5:()=>n,dO:()=>f,f5:()=>o,wx:()=>d})},3072:(a,b,c)=>{c.d(b,{Pr:()=>A,UP:()=>x,Vu:()=>y,t8:()=>w,vt:()=>E,xP:()=>t});var d=c(49263),e=c(89865),f=c(60290),g=c(43904),h=c(48644),i=c(17717),j=c(19956),k=c(48664),l=c(45894),m=c(4905),n=c(1354),o=c(5770);let p=new Set(["vision","pdf","audioInput","videoInput"]),q="[Called tools: ",r="[Tool result: ";function s(a){return a.filter(a=>a).map(a=>{if("tool"===a.role||"function"===a.role)return{role:"assistant",content:`${r}${(0,h.kU)(a.content)||String(a.content??"")}]`};if("assistant"===a.role&&Array.isArray(a.tool_calls)){let{tool_calls:b,...c}=a,d=b.map(a=>a?.function?.name||a?.name||"tool").join(", "),e=(0,h.kU)(c.content)||("string"==typeof c.content?c.content:"");return{...c,content:`${e}${e?"\n":""}${q}${d}]`}}if(Array.isArray(a.content)){let b=a.content.some(a=>"tool_use"===a.type),c=a.content.some(a=>"tool_result"===a.type);if(b||c){let b=[],c=[],d=[];for(let e of a.content)"text"===e.type&&e.text&&b.push(e.text),"tool_use"===e.type&&c.push(e.name||"tool"),"tool_result"===e.type&&d.push((0,h.kU)(e.content)||String(e.content??""));let{...e}=a,f=b.join("\n");return c.length>0&&(f=`${f}${f?"\n":""}${q}${c.join(", ")}]`),d.length>0&&(f=`${f}${f?"\n":""}${r}${d.join("\n")}]`),{...e,content:f}}}return a})}function t(a,b){if(!b||0===b.size||!Array.isArray(a)||a.length<=1)return a;let c=[...b].filter(a=>p.has(a)),d=[...b].filter(a=>!p.has(a)),e=a.map((a,b)=>{let e,f,h,i;return{m:a,i:b,t:(f=(e="string"==typeof a?a.indexOf("/"):-1)>0?a.slice(0,e):"",h=e>0?a.slice(e+1):a,i=(0,g.nl)(f,h),c.every(a=>!0===i[a])?+!d.every(a=>!0===i[a]):2)}}).sort((a,b)=>a.t-b.t||a.i-b.i).map(a=>a.m);return e.every((b,c)=>b===a[c])?a:e}let u=new Map;function v(a){if(!Array.isArray(a)||0===a.length)return[];let b=a=>"assistant"===a||"model"===a,c=a.length-1;for(;c>=0&&!b(a[c]?.role);)c--;return a.slice(c+1)}function w(a){let b=new Set;if(!a||"object"!=typeof a)return b;let c=a=>{"string"==typeof a&&(a.startsWith("image/")?b.add("vision"):"application/pdf"===a?b.add("pdf"):a.startsWith("audio/")?b.add("audioInput"):a.startsWith("video/")&&b.add("videoInput"))},d=a=>{if(!a||"object"!=typeof a)return;let d=a.type;if(("image_url"===d||"image"===d||"input_image"===d)&&b.add("vision"),("input_audio"===d||"audio_url"===d||"audio"===d)&&b.add("audioInput"),("input_video"===d||"video_url"===d||"video"===d)&&b.add("videoInput"),"file"===d||"document"===d||"input_file"===d){let d=null;a.input_audio?.format?d=`audio/${a.input_audio.format}`:a.file?.file_data?d=String(a.file.file_data).match(/^data:([^;,]+)/)?.[1]:a.source?.media_type?d=a.source.media_type:a.source?.data&&(d=String(a.source.data).match(/^data:([^;,]+)/)?.[1]),d?c(d):b.add("pdf")}c(a.inlineData?.mimeType||a.fileData?.mimeType)},e=a=>{if(Array.isArray(a))for(let b of a)d(b)},f=a=>{if(!a||"object"!=typeof a)return;Array.isArray(a.images)&&a.images.length>0&&b.add("vision");let d=a.experimental_attachments||a.attachments;if(Array.isArray(d))for(let a of d){if(!a)continue;let d=a.contentType||a.mediaType||"string"==typeof a.url&&a.url.match(/^data:([^;,]+)/)?.[1];d?c(d):(a.url||a.data)&&b.add("vision")}(a.image_url||a.image)&&b.add("vision"),(a.audio_url||a.audio)&&b.add("audioInput"),e(a.content),"string"==typeof a.content&&(a.content.includes("data:image/")?b.add("vision"):a.content.includes("data:audio/")?b.add("audioInput"):a.content.includes("data:application/pdf")&&b.add("pdf"))};for(let b of v(a.messages))f(b);for(let b of v(a.input))e(b.content);for(let b of v(a.contents||a.request?.contents))e(b.parts);return Array.isArray(a.tools)&&a.tools.some(a=>a?.type==="web_search"||a?.type==="web_search_preview")&&b.add("search"),b}function x(a){a?u.delete(a):u.clear()}function y(a,b){if(a.includes("/"))return null;let c=(Array.isArray(b)?b:b?.combos||[]).find(b=>b.name===a);return c&&c.models&&c.models.length>0?c.models:null}function z(){return new Response(JSON.stringify({error:{message:"Request aborted"}}),{status:499,headers:{"Content-Type":"application/json"}})}async function A({body:a,models:b,handleSingleModel:c,log:g,comboName:h,comboStrategy:i,comboStickyLimit:j=1,autoSwitch:k=!0,providerStrategy:l="off",providerOrder:m=[],providerLatencyMs:p={},providerUsage:q={},providerQuota:r={},providerLatencyGuardMs:s,abortSignal:v=null,clientAbortSignal:x=null,signal:y=null,childComboDepth:B=0,autoDepth:C=0}){let D=v||x||y||null;if(D?.aborted)return z();if(B+C>f.wg)return g.warn("COMBO",`Combo nesting limit (combo ${B} + auto ${C})`),(0,e.yj)(f.gx.BAD_REQUEST,`Combo nesting too deep (>${f.wg})`);let E=function(a,b,c,d=1){let e;if(!a||a.length<=1||"round-robin"!==c)return a;let f=b||"__default__",g=Number.isFinite(e=Number.parseInt(d,10))&&e>0?e:1,h=u.get(f),i="number"==typeof h?{index:h,consecutiveUseCount:0}:h||{index:0,consecutiveUseCount:0},j=i.index%a.length,k=function(a,b){let c=[...a];for(let a=0;a<b;a++){let a=c.shift();c.push(a)}return c}(a,j),l=i.consecutiveUseCount+1;return l>=g?u.set(f,{index:(j+1)%a.length,consecutiveUseCount:0}):u.set(f,{index:j,consecutiveUseCount:l}),k}(b,h,i,j),F=k||"off"!==l?w(a):null;if(k&&F?.size>0){let a=t(E,F);a[0]!==E[0]&&g.info("COMBO",`auto-switch for [${[...F].join(",")}] → ${a[0]}`),E=a}if("off"!==l)try{let a=(0,o.vL)(E,{strategy:l,providerOrder:m,providerLatencyMs:p,providerUsage:q,providerQuota:r,guardMs:s??o.Qm,rotationKey:h});E=F?.size>0?t(a,F):a}catch{}let G=null,H=null,I=null;for(let b=0;b<E.length;b++){let e=E[b];g.info("COMBO",`Trying model ${b+1}/${E.length}: ${e}`);try{let b="function"==typeof structuredClone?structuredClone(a):JSON.parse(JSON.stringify(a)),f=await c(b,e,{signal:D||void 0,comboDepth:B,autoDepth:C});if(D?.aborted)return z();if(f.ok){let a=await (0,n.wx)(f,g,{abortSignal:D});if(D?.aborted)return z();if(a.ok)return g.info("COMBO",`Model ${e} succeeded`),a.result;G=a.reason||"empty_2xx",g.warn("COMBO",`Model ${e} returned empty/incomplete 2xx (${a.reason}), falling back`);continue}let h=f.statusText||"",i=null;try{let a=await f.clone().json();h=a?.error?.message||a?.error||a?.message||h,i=a?.retryAfter||null}catch{}if(i&&(!H||new Date(i)<new Date(H))&&(H=i),"string"!=typeof h)try{h=JSON.stringify(h)}catch{h=String(h)}let j=404===f.status,{shouldFallback:k,cooldownMs:l}=(0,d.hk)(f.status,h);if(!(j||k))return g.warn("COMBO",`Model ${e} failed (no fallback)`,{status:f.status}),f;if(l&&l>0&&(503===f.status||502===f.status||504===f.status)){let b=Math.min(l,1e3);if(g.info("COMBO",`Model ${e} transient ${f.status}, waiting ${b}ms then retrying`),await function(a,b){return new Promise(!b||a<=0?b=>setTimeout(b,a):c=>{let d=null,e=()=>{d&&clearTimeout(d),b.removeEventListener("abort",e),c()};d=setTimeout(e,a),b.aborted?e():b.addEventListener("abort",e,{once:!0})})}(b,D),D?.aborted)return z();try{let d="function"==typeof structuredClone?structuredClone(a):JSON.parse(JSON.stringify(a)),f=await c(d,e,{signal:D||void 0,comboDepth:B,autoDepth:C});if(D?.aborted)return z();if(f.ok){let a=await (0,n.wx)(f,g,{abortSignal:D});if(D?.aborted)return z();if(a.ok)return g.info("COMBO",`Model ${e} succeeded on retry after ${b}ms cooldown`),a.result}G=`retry_${f.status}_${f.statusText||""}`,I||(I=f.status),g.warn("COMBO",`Model ${e} retry also failed (${f.status}), moving on`);continue}catch(a){G=a.message||String(a),I||(I=503),g.warn("COMBO",`Model ${e} retry threw error`,{error:G});continue}}G=h||String(f.status),I||(I=f.status),g.warn("COMBO",`Model ${e} failed, trying next`,{status:f.status})}catch(a){if(D?.aborted)return z();G=a.message||String(a),I||(I=500),g.warn("COMBO",`Model ${e} threw error, trying next`,{error:G})}}let J=G&&G.toLowerCase().includes("no credentials")?503:I||503,K=G||"All combo models unavailable";if(H){let a=(0,d.Qo)(H);return g.warn("COMBO",`All models failed | ${K} (${a})`),(0,e.wO)(J,K,H,a)}return g.warn("COMBO",`All models failed | ${K}`),new Response(JSON.stringify({error:{message:K}}),{status:J,headers:{"Content-Type":"application/json"}})}function B(a){if(!a||"object"!=typeof a)return"";let b=a.choices?.[0];if(b){let a=b.message??b.delta??{},c=(0,h.kU)(a.content);if(c.trim())return c;if("string"==typeof b.text&&b.text.trim())return b.text}let c=(0,h.kU)(a.content);if(c.trim())return c;let d=a.candidates?.[0]?.content?.parts;if(Array.isArray(d)){let a=d.map(a=>a?.text||"").join("");if(a.trim())return a}let e=a.response?.candidates?.[0]?.content?.parts;if(Array.isArray(e)){let a=e.map(a=>a?.text||"").join("");if(a.trim())return a}if(Array.isArray(a.output)){let b=a.output.flatMap(a=>Array.isArray(a.content)?a.content.map(a=>a?.text||""):[]).join("");if(b.trim())return b}return""}async function C(a,b,c){var d;let e,f;if(!a?.ok||b?.stream!==!0||(a.headers?.get?.("content-type")||"").toLowerCase().includes("text/event-stream"))return a;try{let b="function"==typeof a.clone?a.clone():a;e=await b.json()}catch{return a}let g=(d=e,(f=function(a){try{return(0,i.Tz)(a)||j.h.OPENAI}catch{return j.h.OPENAI}}(b))!==j.h.OPENAI?f:d?.type==="message"||Array.isArray(d?.content)?j.h.CLAUDE:d?.object==="response"||Array.isArray(d?.output)&&b?.input?j.h.OPENAI_RESPONSES:Array.isArray(d?.candidates)||Array.isArray(d?.response?.candidates)?b?.userAgent===j.h.ANTIGRAVITY?j.h.ANTIGRAVITY:j.h.GEMINI:f),h=function(a,b,c){let d=`chatcmpl-${Date.now()}`,e=c||b?.model||"combo",f=Math.floor(Date.now()/1e3);if(Array.isArray(a?.choices)&&a.choices.length>0)return{...a,id:a.id||d,object:a.object||"chat.completion",created:a.created||f,model:a.model||e,choices:a.choices.map((a,b)=>({...a,index:a.index??b,message:{role:a.message?.role||"assistant",...a.message||{}}}))};let g=function(a){if(!a||"object"!=typeof a)return"";let b=a.choices?.[0]?.message?.reasoning_content;if("string"==typeof b)return b;let c=Array.isArray(a.content)?a.content.filter(a=>a?.type==="thinking").map(a=>a.thinking||"").join(""):"";if(c)return c;let d=a.candidates?.[0]?.content?.parts||a.response?.candidates?.[0]?.content?.parts;return Array.isArray(d)?d.filter(a=>a?.thought===!0).map(a=>a.text||"").join(""):""}(a);return{id:a?.id||d,object:"chat.completion",created:a?.created||f,model:a?.model||e,choices:[{index:0,message:{role:"assistant",content:B(a),...g?{reasoning_content:g}:{}},finish_reason:a?.stop_reason||"stop"}],...a?.usage?{usage:a.usage}:{}}}(e,b,c),n=(0,k.Ws)(g),o=[];for(let a of function(a){let b=a.choices?.[0]||{},c=b.message||{},d={role:c.role||"assistant"};for(let a of["content","reasoning_content","tool_calls","function_call"])void 0!==c[a]&&(d[a]=c[a]);let e={id:a.id,object:"chat.completion.chunk",created:a.created,model:a.model};return[{...e,choices:[{index:b.index??0,delta:d,finish_reason:null}]},{...e,choices:[{index:b.index??0,delta:{},finish_reason:b.finish_reason||(c.tool_calls?"tool_calls":"stop")}],...a.usage?{usage:a.usage}:{}}]}(h))for(let b of(0,k.Y8)(j.h.OPENAI,g,a,n)||[])null!=b&&o.push((0,l.v8)(b,g));for(let a of(0,k.Y8)(j.h.OPENAI,g,null,n)||[])null!=a&&o.push((0,l.v8)(a,g));return(g===j.h.OPENAI||g===j.h.OPENAI_RESPONSES)&&o.push(m.$U),new Response(o.join(""),{status:a.status,headers:m.RK})}let D={minPanel:2,stragglerGraceMs:8e3,panelHardTimeoutMs:9e4};async function E({body:a,models:b,handleSingleModel:c,log:d,comboName:g,judgeModel:h,tuning:i,abortSignal:j=null,clientAbortSignal:k=null,signal:l=null,childComboDepth:m=0,autoDepth:n=0}){var o;let p,q,r=j||k||l||null;if(r?.aborted)return z();let t=Array.isArray(b)?b.filter(Boolean):[];if(0===t.length)return new Response(JSON.stringify({error:{message:"Fusion combo has no models"}}),{status:400,headers:{"Content-Type":"application/json"}});if(m+n>f.wg)return d.warn("FUSION",`Combo nesting limit (combo ${m} + auto ${n})`),(0,e.yj)(f.gx.BAD_REQUEST,`Combo nesting too deep (>${f.wg})`);if(1===t.length)try{let b=await c(a,t[0],{signal:r||void 0,comboDepth:m,autoDepth:n});return C(b,a,t[0])}catch(a){if(r?.aborted)return z();throw a}let u={...D,...i||{}},v=Math.min(Math.max(2,u.minPanel),t.length),w=h&&h.trim()?h.trim():t[0];d.info("FUSION",`Combo "${g}" | panel=${t.length} [${t.join(", ")}] | judge=${w} | quorum=${v}`);let{tools:x,tool_choice:y,...A}=a,F={...A,stream:!1};Array.isArray(F.messages)?F.messages=s(F.messages):Array.isArray(F.input)&&(F.input=s(F.input));let G=Date.now(),H=t.map(()=>new AbortController),I=H.map(a=>(function(...a){let b=a.filter(a=>a&&"object"==typeof a);if(0===b.length)return;if(1===b.length)return b[0];if("function"==typeof AbortSignal.any)return AbortSignal.any(b);let c=new AbortController,d=a=>{try{c.abort(a?.target?.reason)}catch{}};for(let a of b){if(a.aborted){d({target:a});break}a.addEventListener("abort",d,{once:!0})}return c.signal})(r,a.signal)),J=t.map((a,b)=>{var d,e,f;return d=c("function"==typeof structuredClone?structuredClone(F):JSON.parse(JSON.stringify(F)),a,{isPanel:!0,signal:I[b],comboDepth:m,autoDepth:n}),e=u.panelHardTimeoutMs,f=H[b],new Promise(a=>{let b=setTimeout(()=>{try{f?.abort?.(Error("fusion panel hard timeout"))}catch{}a({__timeout:!0})},e);Promise.resolve(d).then(c=>{clearTimeout(b),a(c)}).catch(c=>{clearTimeout(b),c?.name==="AbortError"||f?.signal?.aborted?a({__timeout:!0,__aborted:!0}):a({__error:c})})})}),K=await function(a,{minPanel:b,stragglerGraceMs:c,panelHardTimeoutMs:d,abortControllers:e=[],abortSignal:f=null}){return new Promise(g=>{let h=Array(a.length),i=0,j=0,k=!1,l=null,m=null,n=()=>o(),o=()=>{if(!k){for(let a of(k=!0,m&&clearTimeout(m),l&&clearTimeout(l),f?.removeEventListener?.("abort",n),e))if(a&&!a.signal.aborted)try{a.abort(Error("fusion panel collection finished"))}catch{}g(h)}};if(m=setTimeout(o,d),f){if(f.aborted)return void o();f.addEventListener("abort",n,{once:!0})}a.forEach((d,e)=>{Promise.resolve(d).then(a=>{h[e]=a}).catch(a=>{h[e]={__error:a}}).finally(()=>{if(i++,h[e]&&h[e].ok&&j++,i===a.length)return o();j>=b&&!l&&(l=setTimeout(o,c))})})})}(J,{...u,minPanel:v,abortControllers:H,abortSignal:r});if(d.info("FUSION",`fan-out collected in ${Date.now()-G}ms`),r?.aborted)return z();let L=[];for(let a=0;a<K.length;a++){let b=K[a],c=t[a];if(!b){d.warn("FUSION",`Panel ${c} dropped (straggler/timeout)`);continue}if(b.__timeout){d.warn("FUSION",`Panel ${c} timed out`);continue}if(b.__error){d.warn("FUSION",`Panel ${c} threw`,{error:b.__error?.message||String(b.__error)});continue}if(!b.ok){d.warn("FUSION",`Panel ${c} failed`,{status:b.status});continue}try{let a=await b.clone().json(),e=B(a);e?(L.push({model:c,text:e,json:a,response:b}),d.info("FUSION",`Panel ${c} ok (${e.length} chars)`)):d.warn("FUSION",`Panel ${c} returned empty content`)}catch(a){d.warn("FUSION",`Panel ${c} unparseable`,{error:a.message||String(a)})}}if(0===L.length)return d.warn("FUSION","All panel models failed"),new Response(JSON.stringify({error:{message:"All fusion panel models failed"}}),{status:503,headers:{"Content-Type":"application/json"}});if(1===L.length)return d.info("FUSION",`Only ${L[0].model} succeeded — returning buffered answer (no re-dispatch)`),C(L[0].response,a,L[0].model);let M=(p=L.map((a,b)=>`[Source ${b+1}]
2
- ${a.text}`).join("\n\n"),o=[`You are the JUDGE in a model-fusion panel. ${L.length} expert models independently answered the user's most recent request. Their responses are below, anonymized by source.`,"\nDo NOT mention that multiple models were used, and do NOT refer to the sources. Produce ONE authoritative final answer addressed directly to the user.\n\nFirst, internally analyze the panel along these dimensions: consensus (points most sources agree on — treat as higher-confidence), contradictions (where they disagree — resolve with your own judgment), partial coverage, unique insights only one source surfaced, and blind spots every source missed. Then write the best possible final answer grounded in that analysis — more complete and correct than any single response, with no filler.\n\n=== PANEL RESPONSES ===",p,"=== END PANEL RESPONSES ===\n\nNow write the final answer to the user's original request."].join("\n"),q={...a},Array.isArray(a.messages)?q.messages=[...a.messages,{role:"user",content:o}]:Array.isArray(a.input)?q.input=[...a.input,{type:"message",role:"user",content:[{type:"input_text",text:o}]}]:Array.isArray(a.contents)?q.contents=[...a.contents,{role:"user",parts:[{text:o}]}]:q.messages=[{role:"user",content:o}],q);d.info("FUSION",`Judging ${L.length} answers with ${w}`);try{let b=await c(M,w,{signal:r||void 0,comboDepth:m,autoDepth:n});if(!b?.ok){let c=L.reduce((a,b)=>a.text.length>=b.text.length?a:b);return d.warn("FUSION",`Judge ${w} failed (${b?.status}), falling back to best panel answer`),C(c.response,a,c.model)}return C(b,a,w)}catch(c){if(r?.aborted)return z();let b=L.reduce((a,b)=>a.text.length>=b.text.length?a:b);return d.warn("FUSION",`Judge ${w} threw, falling back to best panel answer`,{error:c?.message||String(c)}),C(b.response,a,b.model)}}},43429:(a,b,c)=>{c.d(b,{Y:()=>e});let d=["user-agent","anthropic-beta","anthropic-version","anthropic-dangerous-direct-browser-access","x-app","x-stainless-helper-method","x-stainless-retry-count","x-stainless-runtime-version","x-stainless-package-version","x-stainless-runtime","x-stainless-lang","x-stainless-arch","x-stainless-os","x-stainless-timeout","x-claude-code-session-id","package-version","runtime-version","os","arch"];function e(a){if(!a||"object"!=typeof a)return null;let b={};for(let c of d)void 0!==a[c]&&null!==a[c]&&(b[c]=a[c]);return Object.keys(b).length>0?b:null}},89865:(a,b,c)=>{c.d(b,{A1:()=>h,lR:()=>j,wO:()=>i,yj:()=>f,zL:()=>g});var d=c(87252);async function e(a,b){let c=a?.body?.getReader?.();if(!c)try{return(await a.text()).slice(0,b)}catch{return""}let d=new TextDecoder,e="",f=0;try{for(;f<b;){let{done:a,value:g}=await c.read();if(a)break;let h=g instanceof Uint8Array?g:new Uint8Array(g),i=b-f;if(e+=d.decode(h.subarray(0,i),{stream:h.byteLength<=i}),f+=Math.min(h.byteLength,i),h.byteLength>i){try{await c.cancel("upstream error body limit")}catch{}break}}return e+d.decode()}catch{return e}finally{try{c.releaseLock?.()}catch{}}}function f(a,b){let c;return new Response(JSON.stringify((c=d.LY[a]||(a>=500?{type:"server_error",code:"internal_server_error"}:{type:"invalid_request_error",code:""}),{error:{message:b||d.O[a]||"An error occurred",type:c.type,code:c.code}})),{status:a,headers:{"Content-Type":"application/json"}})}async function g(a,b=null){let c=await e(a,65536);if(b&&"function"==typeof b.parseError)try{let e=b.parseError(a,c);if(e&&"object"==typeof e){let b=e.message||d.O[a.status]||`Upstream error: ${a.status}`;return{statusCode:e.status||a.status,message:b,resetsAtMs:e.resetsAtMs}}}catch{}let f="";try{let a=JSON.parse(c);f="string"==typeof a?.error?.message?a.error.message:"string"==typeof a?.message?a.message:"string"==typeof a?.error_description?a.error_description:"string"==typeof a?.error?a.error:""}catch{f=c}let h=("string"==typeof f?f:"")||d.O[a.status]||`Upstream error: ${a.status}`;return{statusCode:a.status,message:h}}function h(a,b,c){return{success:!1,status:a,error:b,resetsAtMs:c,response:f(a,b)}}function i(a,b,c,d){let e=Math.max(Math.ceil((new Date(c).getTime()-Date.now())/1e3),1);return new Response(JSON.stringify({error:{message:`${b} (${d})`}}),{status:a,headers:{"Content-Type":"application/json","Retry-After":String(e)}})}function j(a,b,c,d){let e=d||a.code||"FETCH_FAILED",f=a.message||"Unknown error",g=a.cause?.code,h=a.cause?.message,i=g||h?` (cause: ${[g,h].filter(Boolean).join(": ")})`:"";return`[${e}]: ${f}${i}`}}};
1
+ "use strict";exports.id=3694,exports.ids=[3694],exports.modules={1354:(a,b,c)=>{async function d(a,b,c={}){var f;let g,h,i,j;if(!a?.ok)return{ok:!1,reason:"http_error"};let k=(a.headers?.get?.("content-type")||"").toLowerCase();if(!(k.includes("text/event-stream")||k.includes("ndjson"))||!a.body)try{let b=await a.clone().json(),c=o(b),d=c?.prompt_tokens??null,e=c?.completion_tokens??null;if(!(n(b)||"number"==typeof e&&e>0)){try{await a.body?.cancel?.()}catch{}return{ok:!1,reason:"empty_json"}}return{ok:!0,result:a,preInspect:{hasCompletion:!0,tokensIn:d,tokensOut:e,data:b}}}catch{return{ok:!0,result:a,preInspect:{hasCompletion:!1,tokensIn:null,tokensOut:null}}}let l=await e(a.body,2e4,{abortSignal:c.abortSignal||null});return l.accepted?{ok:!0,result:new Response((g=(f=l).prefixChunks||[],h=0,i=f.reader,j=!!f.ended||!i,new ReadableStream({async pull(a){try{if(h<g.length)return void a.enqueue(g[h++]);if(j||!i)return void a.close();let{done:b,value:c}=await i.read();if(b)return void a.close();c&&a.enqueue(c)}catch(b){try{a.error(b)}catch{}}},async cancel(a){if(i)try{await i.cancel(a)}catch{}}})),{status:a.status,statusText:a.statusText,headers:a.headers}),preInspect:{hasCompletion:!!l.sawCompletion,tokensIn:l.tokensIn,tokensOut:l.tokensOut}}:(b?.warn?.("AUTO",`empty stream after probe (${l.reason||"no_content"})`),{ok:!1,reason:l.reason||"empty_stream"})}async function e(a,b=2e4,c={}){if(!a||"function"!=typeof a.getReader)return{accepted:!1,hasContent:!1,reason:"no_body",prefixChunks:[],reader:null};let d=c.abortSignal||null,f=a.getReader(),g=new TextDecoder,h=[],i=null,k=null,n=!1,o="",p=Number.isFinite(b)&&b>0?b:2e4,q=Date.now()+p,r=null,s=null,t=()=>{null!=r&&(clearTimeout(r),r=null)},u=()=>{if(s&&d){try{d.removeEventListener("abort",s)}catch{}s=null}},v=async a=>{t(),u();try{await f.cancel(a||"empty_stream")}catch{}return{accepted:!1,hasContent:!1,reason:a,prefixChunks:h,reader:null,tokensIn:i,tokensOut:k,sawCompletion:!1}},w=a=>(t(),u(),{accepted:!0,hasContent:!0,prefixChunks:h,reader:a?null:f,ended:!!a,tokensIn:i,tokensOut:k,sawCompletion:n});try{for(;;){if(d?.aborted)return v("client_aborted");let a=q-Date.now();if(a<=0)return v("probe_idle_timeout");let b=f.read().then(a=>({kind:"read",r:a})),c=new Promise(b=>{r=setTimeout(()=>b({kind:"timeout"}),a)}),e=d?new Promise(a=>{s=()=>a({kind:"aborted"}),d.aborted?s():d.addEventListener("abort",s,{once:!0})}):null,x=await Promise.race([b,c,e].filter(Boolean));if(t(),"aborted"!==x.kind&&u(),"timeout"===x.kind)return v("probe_idle_timeout");if("aborted"===x.kind)return v("client_aborted");let{done:y,value:z}=x.r;if(y)return t(),u(),{accepted:!1,hasContent:!1,reason:"empty_stream_end",prefixChunks:h,reader:null,ended:!0,tokensIn:i,tokensOut:k,sawCompletion:!1};if(z?.byteLength){q=Date.now()+p,h.push(z);let a=g.decode(z,{stream:!0}),b=o.slice(-64)+a;o=(o+a).slice(-512),l(b)&&(n=!0);let c=m(b);if(c&&(i=c.prompt_tokens??i,(k=c.completion_tokens??k)>0&&(n=!0)),function(a){let b=String(a||"");if(!b.trim())return!0;let c=!1;for(let a of b.split(/\r?\n/)){let b=a.trim();if(b){if((c=!0,!(b.startsWith(":")||/^event:\s*(ping|heartbeat)\s*$/i.test(b)))&&!(b.startsWith("id:")||b.startsWith("retry:"))){if(b.startsWith("data:")){let a=b.slice(5).trim();if(!a||"[DONE]"===a)continue;try{let b=JSON.parse(a);if(b&&("ping"===b.type||"heartbeat"===b.type))continue}catch{}}return!1}}}return c||!b.trim()}(a)||function(a){for(let b of String(a||"").split(/\r?\n/)){let a=b.trim();if(!a.startsWith("data:"))continue;let c=a.slice(5).trim();if(c&&"[DONE]"!==c)try{if(j(JSON.parse(c)))return!0}catch{}}return!1}(b))continue;return w(!1)}z&&h.push(z)}}catch(a){t(),u();try{await f.cancel(a?.message||"probe_error")}catch{}return{accepted:!1,hasContent:!1,reason:"probe_error",prefixChunks:h,reader:null,tokensIn:i,tokensOut:k,sawCompletion:!1}}}async function f(a){if(!a)return{text:"",httpError:"router_http_0",status:0};let b=a.status??0;if(!a.ok){try{await a.text()}catch{}return{text:"",httpError:`router_http_${b}`,status:b}}let c=(a.headers?.get?.("content-type")||"").toLowerCase();try{if(c.includes("text/event-stream")||c.includes("ndjson")){let c=await a.text();return{text:i(c),status:b}}let d=await a.text();try{return{text:g(JSON.parse(d)),status:b}}catch{if(d.includes("data:"))return{text:i(d),status:b};return{text:d,status:b}}}catch{return{text:"",status:b}}}function g(a){if(!a||"object"!=typeof a)return"";let b=a?.choices?.[0];if(b?.message?.content){let a=b.message.content;if("string"==typeof a)return a;if(Array.isArray(a))return a.map(a=>a?.text||a?.content||"").join("")}if("string"==typeof b?.text)return b.text;if(Array.isArray(a?.content))return a.content.map(a=>a?.text||"").join("");if("string"==typeof a?.content)return a.content;let c=a?.candidates?.[0]?.content?.parts;if(Array.isArray(c))return c.map(a=>a?.text||"").join("");if(Array.isArray(a?.output)){let b=[];for(let c of a.output)if(c?.type==="message"&&Array.isArray(c.content))for(let a of c.content)a?.type==="output_text"&&a.text?b.push(a.text):"string"==typeof a?.text&&b.push(a.text);if(b.length)return b.join("")}return""}function h(a){return i(a)}function i(a){let b=[];for(let c of String(a||"").split("\n")){let a=c.trim();if(!a.startsWith("data:"))continue;let d=a.slice(5).trim();if(d&&"[DONE]"!==d)try{let a=JSON.parse(d),c=a?.choices?.[0]?.delta?.content;"string"==typeof c&&b.push(c);let e=a?.choices?.[0]?.message?.content;"string"==typeof e&&b.push(e),a?.type==="content_block_delta"&&a?.delta?.text&&b.push(a.delta.text),a?.delta?.type==="text_delta"&&a?.delta?.text&&b.push(a.delta.text);let f=a?.candidates?.[0]?.content?.parts;if(Array.isArray(f))for(let a of f)"string"==typeof a?.text&&b.push(a.text)}catch{}}return b.join("")}function j(a){return!!a&&"object"==typeof a&&!!(a.error||"error"===a.type||a.choices?.[0]?.error)}function k(a){return l(a)}function l(a){if(!a||a.length<4)return!1;for(let b of String(a).split(/\r?\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);if(j(a))continue;let b=a?.choices?.[0]?.delta;if("string"==typeof b?.content&&b.content.length>0||Array.isArray(b?.tool_calls)&&b.tool_calls.length>0||b?.function_call&&(b.function_call.name||b.function_call.arguments))return!0;let d=a?.choices?.[0]?.message;if("string"==typeof d?.content&&d.content.length>0||Array.isArray(d?.tool_calls)&&d.tool_calls.length>0||a?.type==="response.output_text.delta"||a?.type==="response.function_call_arguments.delta"||"string"==typeof a?.delta&&a.delta.length>0&&a.type?.includes("output")||a?.type==="content_block_delta"&&(a?.delta?.type==="text_delta"&&a?.delta?.text||a?.delta?.type==="input_json_delta"||"string"==typeof a?.delta?.partial_json||"string"==typeof a?.delta?.text&&a.delta.text&&"thinking_delta"!==a.delta.type)||a?.type==="content_block_start"&&(a?.content_block?.type==="tool_use"||a?.content_block?.type==="text"&&"string"==typeof a.content_block.text&&a.content_block.text.length>0))return!0;let e=a?.candidates?.[0]?.content?.parts;if(Array.isArray(e)){for(let a of e)if(a?.functionCall||"string"==typeof a?.text&&a.text.length>0&&!0!==a.thought)return!0}}catch{}}return!1}function m(a){return!a||a.length<8?null:function(a){let b=null;for(let c of String(a||"").split("\n")){let a=c.trim();if(!a.startsWith("data:"))continue;let d=a.slice(5).trim();if(d&&"[DONE]"!==d)try{let a=JSON.parse(d),c=o(a);c&&(b=c),a?.usage&&(b={prompt_tokens:a.usage.input_tokens??b?.prompt_tokens??0,completion_tokens:a.usage.output_tokens??b?.completion_tokens??0}),a?.message?.usage&&(b={prompt_tokens:a.message.usage.input_tokens??0,completion_tokens:a.message.usage.output_tokens??0})}catch{}}return b}(a.length>8e3?a.slice(-8e3):a)}function n(a){if(!a||"object"!=typeof a)return!1;if(g(a).length>0)return!0;let b=a?.choices?.[0],c=b?.message;if(Array.isArray(c?.tool_calls)&&c.tool_calls.length>0||c?.function_call&&(c.function_call.name||c.function_call.arguments)||Array.isArray(a?.content)&&a.content.some(a=>a?.type==="tool_use"||a?.type==="function")||Array.isArray(a?.output)&&a.output.some(a=>a?.type==="function_call"||a?.type==="tool_call"||a?.type==="custom_tool_call"))return!0;let d=a?.candidates?.[0]?.content?.parts;return!!(Array.isArray(d)&&d.some(a=>a?.functionCall))}function o(a){return a&&"object"==typeof a?a.usage?.prompt_tokens!=null||a.usage?.completion_tokens!=null?{prompt_tokens:a.usage.prompt_tokens??0,completion_tokens:a.usage.completion_tokens??0}:a.usage?.input_tokens!=null||a.usage?.output_tokens!=null?{prompt_tokens:a.usage.input_tokens??0,completion_tokens:a.usage.output_tokens??0}:a.usageMetadata?{prompt_tokens:a.usageMetadata.promptTokenCount??0,completion_tokens:a.usageMetadata.candidatesTokenCount??0}:null:null}c.d(b,{Ah:()=>m,Ki:()=>k,NT:()=>h,R5:()=>n,dO:()=>f,f5:()=>o,wx:()=>d})},3072:(a,b,c)=>{c.d(b,{Pr:()=>A,UP:()=>x,Vu:()=>y,t8:()=>w,vt:()=>E,xP:()=>t});var d=c(49263),e=c(89865),f=c(60290),g=c(43904),h=c(48644),i=c(17717),j=c(19956),k=c(48664),l=c(45894),m=c(4905),n=c(1354),o=c(5770);let p=new Set(["vision","pdf","audioInput","videoInput"]),q="[Called tools: ",r="[Tool result: ";function s(a){return a.filter(a=>a).map(a=>{if("tool"===a.role||"function"===a.role)return{role:"assistant",content:`${r}${(0,h.kU)(a.content)||String(a.content??"")}]`};if("assistant"===a.role&&Array.isArray(a.tool_calls)){let{tool_calls:b,...c}=a,d=b.map(a=>a?.function?.name||a?.name||"tool").join(", "),e=(0,h.kU)(c.content)||("string"==typeof c.content?c.content:"");return{...c,content:`${e}${e?"\n":""}${q}${d}]`}}if(Array.isArray(a.content)){let b=a.content.some(a=>"tool_use"===a.type),c=a.content.some(a=>"tool_result"===a.type);if(b||c){let b=[],c=[],d=[];for(let e of a.content)"text"===e.type&&e.text&&b.push(e.text),"tool_use"===e.type&&c.push(e.name||"tool"),"tool_result"===e.type&&d.push((0,h.kU)(e.content)||String(e.content??""));let{...e}=a,f=b.join("\n");return c.length>0&&(f=`${f}${f?"\n":""}${q}${c.join(", ")}]`),d.length>0&&(f=`${f}${f?"\n":""}${r}${d.join("\n")}]`),{...e,content:f}}}return a})}function t(a,b){if(!b||0===b.size||!Array.isArray(a)||a.length<=1)return a;let c=[...b].filter(a=>p.has(a)),d=[...b].filter(a=>!p.has(a)),e=a.map((a,b)=>{let e,f,h,i;return{m:a,i:b,t:(f=(e="string"==typeof a?a.indexOf("/"):-1)>0?a.slice(0,e):"",h=e>0?a.slice(e+1):a,i=(0,g.nl)(f,h),c.every(a=>!0===i[a])?+!d.every(a=>!0===i[a]):2)}}).sort((a,b)=>a.t-b.t||a.i-b.i).map(a=>a.m);return e.every((b,c)=>b===a[c])?a:e}let u=new Map;function v(a){if(!Array.isArray(a)||0===a.length)return[];let b=a=>"assistant"===a||"model"===a,c=a.length-1;for(;c>=0&&!b(a[c]?.role);)c--;return a.slice(c+1)}function w(a){let b=new Set;if(!a||"object"!=typeof a)return b;let c=a=>{"string"==typeof a&&(a.startsWith("image/")?b.add("vision"):"application/pdf"===a?b.add("pdf"):a.startsWith("audio/")?b.add("audioInput"):a.startsWith("video/")&&b.add("videoInput"))},d=a=>{if(!a||"object"!=typeof a)return;let d=a.type;if(("image_url"===d||"image"===d||"input_image"===d)&&b.add("vision"),("input_audio"===d||"audio_url"===d||"audio"===d)&&b.add("audioInput"),("input_video"===d||"video_url"===d||"video"===d)&&b.add("videoInput"),"file"===d||"document"===d||"input_file"===d){let d=null;a.input_audio?.format?d=`audio/${a.input_audio.format}`:a.file?.file_data?d=String(a.file.file_data).match(/^data:([^;,]+)/)?.[1]:a.source?.media_type?d=a.source.media_type:a.source?.data&&(d=String(a.source.data).match(/^data:([^;,]+)/)?.[1]),d?c(d):b.add("pdf")}c(a.inlineData?.mimeType||a.fileData?.mimeType)},e=a=>{if(Array.isArray(a))for(let b of a)d(b)},f=a=>{if(!a||"object"!=typeof a)return;Array.isArray(a.images)&&a.images.length>0&&b.add("vision");let d=a.experimental_attachments||a.attachments;if(Array.isArray(d))for(let a of d){if(!a)continue;let d=a.contentType||a.mediaType||"string"==typeof a.url&&a.url.match(/^data:([^;,]+)/)?.[1];d?c(d):(a.url||a.data)&&b.add("vision")}(a.image_url||a.image)&&b.add("vision"),(a.audio_url||a.audio)&&b.add("audioInput"),e(a.content),"string"==typeof a.content&&(a.content.includes("data:image/")?b.add("vision"):a.content.includes("data:audio/")?b.add("audioInput"):a.content.includes("data:application/pdf")&&b.add("pdf"))};for(let b of v(a.messages))f(b);for(let b of v(a.input))e(b.content);for(let b of v(a.contents||a.request?.contents))e(b.parts);return Array.isArray(a.tools)&&a.tools.some(a=>a?.type==="web_search"||a?.type==="web_search_preview")&&b.add("search"),b}function x(a){a?u.delete(a):u.clear()}function y(a,b){if(a.includes("/"))return null;let c=(Array.isArray(b)?b:b?.combos||[]).find(b=>b.name===a);return c&&c.models&&c.models.length>0?c.models:null}function z(){return new Response(JSON.stringify({error:{message:"Request aborted"}}),{status:499,headers:{"Content-Type":"application/json"}})}async function A({body:a,models:b,handleSingleModel:c,log:g,comboName:h,comboStrategy:i,comboStickyLimit:j=1,autoSwitch:k=!0,providerStrategy:l="off",providerOrder:m=[],providerLatencyMs:p={},providerUsage:q={},providerQuota:r={},providerLatencyGuardMs:s,abortSignal:v=null,clientAbortSignal:x=null,signal:y=null,childComboDepth:B=0,autoDepth:C=0}){let D=v||x||y||null;if(D?.aborted)return z();if(B+C>f.wg)return g.warn("COMBO",`Combo nesting limit (combo ${B} + auto ${C})`),(0,e.yj)(f.gx.BAD_REQUEST,`Combo nesting too deep (>${f.wg})`);let E=function(a,b,c,d=1){let e;if(!a||a.length<=1||"round-robin"!==c)return a;let f=b||"__default__",g=Number.isFinite(e=Number.parseInt(d,10))&&e>0?e:1,h=u.get(f),i="number"==typeof h?{index:h,consecutiveUseCount:0}:h||{index:0,consecutiveUseCount:0},j=i.index%a.length,k=function(a,b){let c=[...a];for(let a=0;a<b;a++){let a=c.shift();c.push(a)}return c}(a,j),l=i.consecutiveUseCount+1;return l>=g?u.set(f,{index:(j+1)%a.length,consecutiveUseCount:0}):u.set(f,{index:j,consecutiveUseCount:l}),k}(b,h,i,j),F=k||"off"!==l?w(a):null;if(k&&F?.size>0){let a=t(E,F);a[0]!==E[0]&&g.info("COMBO",`auto-switch for [${[...F].join(",")}] → ${a[0]}`),E=a}if("off"!==l)try{let a=(0,o.vL)(E,{strategy:l,providerOrder:m,providerLatencyMs:p,providerUsage:q,providerQuota:r,guardMs:s??o.Qm,rotationKey:h});E=F?.size>0?t(a,F):a}catch{}let G=null,H=null,I=null;for(let b=0;b<E.length;b++){let e=E[b];g.info("COMBO",`Trying model ${b+1}/${E.length}: ${e}`);try{let b="function"==typeof structuredClone?structuredClone(a):JSON.parse(JSON.stringify(a)),f=await c(b,e,{signal:D||void 0,comboDepth:B,autoDepth:C});if(D?.aborted)return z();if(f.ok){let a=await (0,n.wx)(f,g,{abortSignal:D});if(D?.aborted)return z();if(a.ok)return g.info("COMBO",`Model ${e} succeeded`),a.result;G=a.reason||"empty_2xx",g.warn("COMBO",`Model ${e} returned empty/incomplete 2xx (${a.reason}), falling back`);continue}let h=f.statusText||"",i=null;try{let a=await f.clone().json();h=a?.error?.message||a?.error||a?.message||h,i=a?.retryAfter||null}catch{}if(i&&(!H||new Date(i)<new Date(H))&&(H=i),"string"!=typeof h)try{h=JSON.stringify(h)}catch{h=String(h)}let j=404===f.status,{shouldFallback:k,cooldownMs:l}=(0,d.hk)(f.status,h);if(!(j||k))return g.warn("COMBO",`Model ${e} failed (no fallback)`,{status:f.status}),f;if(l&&l>0&&(503===f.status||502===f.status||504===f.status)){let b=Math.min(l,1e3);if(g.info("COMBO",`Model ${e} transient ${f.status}, waiting ${b}ms then retrying`),await function(a,b){return new Promise(!b||a<=0?b=>setTimeout(b,a):c=>{let d=null,e=()=>{d&&clearTimeout(d),b.removeEventListener("abort",e),c()};d=setTimeout(e,a),b.aborted?e():b.addEventListener("abort",e,{once:!0})})}(b,D),D?.aborted)return z();try{let d="function"==typeof structuredClone?structuredClone(a):JSON.parse(JSON.stringify(a)),f=await c(d,e,{signal:D||void 0,comboDepth:B,autoDepth:C});if(D?.aborted)return z();if(f.ok){let a=await (0,n.wx)(f,g,{abortSignal:D});if(D?.aborted)return z();if(a.ok)return g.info("COMBO",`Model ${e} succeeded on retry after ${b}ms cooldown`),a.result}G=`retry_${f.status}_${f.statusText||""}`,I||(I=f.status),g.warn("COMBO",`Model ${e} retry also failed (${f.status}), moving on`);continue}catch(a){G=a.message||String(a),I||(I=503),g.warn("COMBO",`Model ${e} retry threw error`,{error:G});continue}}G=h||String(f.status),I||(I=f.status),g.warn("COMBO",`Model ${e} failed, trying next`,{status:f.status})}catch(a){if(D?.aborted)return z();G=a.message||String(a),I||(I=500),g.warn("COMBO",`Model ${e} threw error, trying next`,{error:G})}}let J=G&&G.toLowerCase().includes("no credentials")?503:I||503,K=G||"All combo models unavailable";if(H){let a=(0,d.Qo)(H);return g.warn("COMBO",`All models failed | ${K} (${a})`),(0,e.wO)(J,K,H,a)}return g.warn("COMBO",`All models failed | ${K}`),new Response(JSON.stringify({error:{message:K}}),{status:J,headers:{"Content-Type":"application/json"}})}function B(a){if(!a||"object"!=typeof a)return"";let b=a.choices?.[0];if(b){let a=b.message??b.delta??{},c=(0,h.kU)(a.content);if(c.trim())return c;if("string"==typeof b.text&&b.text.trim())return b.text}let c=(0,h.kU)(a.content);if(c.trim())return c;let d=a.candidates?.[0]?.content?.parts;if(Array.isArray(d)){let a=d.map(a=>a?.text||"").join("");if(a.trim())return a}let e=a.response?.candidates?.[0]?.content?.parts;if(Array.isArray(e)){let a=e.map(a=>a?.text||"").join("");if(a.trim())return a}if(Array.isArray(a.output)){let b=a.output.flatMap(a=>Array.isArray(a.content)?a.content.map(a=>a?.text||""):[]).join("");if(b.trim())return b}return""}async function C(a,b,c){var d;let e,f;if(!a?.ok||b?.stream!==!0||(a.headers?.get?.("content-type")||"").toLowerCase().includes("text/event-stream"))return a;try{let b="function"==typeof a.clone?a.clone():a;e=await b.json()}catch{return a}let g=(d=e,(f=function(a){try{return(0,i.Tz)(a)||j.h.OPENAI}catch{return j.h.OPENAI}}(b))!==j.h.OPENAI?f:d?.type==="message"||Array.isArray(d?.content)?j.h.CLAUDE:d?.object==="response"||Array.isArray(d?.output)&&b?.input?j.h.OPENAI_RESPONSES:Array.isArray(d?.candidates)||Array.isArray(d?.response?.candidates)?b?.userAgent===j.h.ANTIGRAVITY?j.h.ANTIGRAVITY:j.h.GEMINI:f),h=function(a,b,c){let d=`chatcmpl-${Date.now()}`,e=c||b?.model||"combo",f=Math.floor(Date.now()/1e3);if(Array.isArray(a?.choices)&&a.choices.length>0)return{...a,id:a.id||d,object:a.object||"chat.completion",created:a.created||f,model:a.model||e,choices:a.choices.map((a,b)=>({...a,index:a.index??b,message:{role:a.message?.role||"assistant",...a.message||{}}}))};let g=function(a){if(!a||"object"!=typeof a)return"";let b=a.choices?.[0]?.message?.reasoning_content;if("string"==typeof b)return b;let c=Array.isArray(a.content)?a.content.filter(a=>a?.type==="thinking").map(a=>a.thinking||"").join(""):"";if(c)return c;let d=a.candidates?.[0]?.content?.parts||a.response?.candidates?.[0]?.content?.parts;return Array.isArray(d)?d.filter(a=>a?.thought===!0).map(a=>a.text||"").join(""):""}(a);return{id:a?.id||d,object:"chat.completion",created:a?.created||f,model:a?.model||e,choices:[{index:0,message:{role:"assistant",content:B(a),...g?{reasoning_content:g}:{}},finish_reason:a?.stop_reason||"stop"}],...a?.usage?{usage:a.usage}:{}}}(e,b,c),n=(0,k.Ws)(g),o=[];for(let a of function(a){let b=a.choices?.[0]||{},c=b.message||{},d={role:c.role||"assistant"};for(let a of["content","reasoning_content","tool_calls","function_call"])void 0!==c[a]&&(d[a]=c[a]);let e={id:a.id,object:"chat.completion.chunk",created:a.created,model:a.model};return[{...e,choices:[{index:b.index??0,delta:d,finish_reason:null}]},{...e,choices:[{index:b.index??0,delta:{},finish_reason:b.finish_reason||(c.tool_calls?"tool_calls":"stop")}],...a.usage?{usage:a.usage}:{}}]}(h))for(let b of(0,k.Y8)(j.h.OPENAI,g,a,n)||[])null!=b&&o.push((0,l.v8)(b,g));for(let a of(0,k.Y8)(j.h.OPENAI,g,null,n)||[])null!=a&&o.push((0,l.v8)(a,g));return(g===j.h.OPENAI||g===j.h.OPENAI_RESPONSES)&&o.push(m.$U),new Response(o.join(""),{status:a.status,headers:m.RK})}let D={minPanel:2,stragglerGraceMs:8e3,panelHardTimeoutMs:9e4};async function E({body:a,models:b,handleSingleModel:c,log:d,comboName:g,judgeModel:h,tuning:i,abortSignal:j=null,clientAbortSignal:k=null,signal:l=null,childComboDepth:m=0,autoDepth:n=0}){var o;let p,q,r=j||k||l||null;if(r?.aborted)return z();let t=Array.isArray(b)?b.filter(Boolean):[];if(0===t.length)return new Response(JSON.stringify({error:{message:"Fusion combo has no models"}}),{status:400,headers:{"Content-Type":"application/json"}});if(m+n>f.wg)return d.warn("FUSION",`Combo nesting limit (combo ${m} + auto ${n})`),(0,e.yj)(f.gx.BAD_REQUEST,`Combo nesting too deep (>${f.wg})`);if(1===t.length)try{let b=await c(a,t[0],{signal:r||void 0,comboDepth:m,autoDepth:n});return C(b,a,t[0])}catch(a){if(r?.aborted)return z();throw a}let u={...D,...i||{}},v=Math.min(Math.max(2,u.minPanel),t.length),w=h&&h.trim()?h.trim():t[0];d.info("FUSION",`Combo "${g}" | panel=${t.length} [${t.join(", ")}] | judge=${w} | quorum=${v}`);let{tools:x,tool_choice:y,...A}=a,F={...A,stream:!1};Array.isArray(F.messages)?F.messages=s(F.messages):Array.isArray(F.input)&&(F.input=s(F.input));let G=Date.now(),H=t.map(()=>new AbortController),I=H.map(a=>(function(...a){let b=a.filter(a=>a&&"object"==typeof a);if(0===b.length)return;if(1===b.length)return b[0];if("function"==typeof AbortSignal.any)return AbortSignal.any(b);let c=new AbortController,d=a=>{try{c.abort(a?.target?.reason)}catch{}};for(let a of b){if(a.aborted){d({target:a});break}a.addEventListener("abort",d,{once:!0})}return c.signal})(r,a.signal)),J=t.map((a,b)=>{var d,e,f;return d=c("function"==typeof structuredClone?structuredClone(F):JSON.parse(JSON.stringify(F)),a,{isPanel:!0,signal:I[b],comboDepth:m,autoDepth:n}),e=u.panelHardTimeoutMs,f=H[b],new Promise(a=>{let b=setTimeout(()=>{try{f?.abort?.(Error("fusion panel hard timeout"))}catch{}a({__timeout:!0})},e);Promise.resolve(d).then(c=>{clearTimeout(b),a(c)}).catch(c=>{clearTimeout(b),c?.name==="AbortError"||f?.signal?.aborted?a({__timeout:!0,__aborted:!0}):a({__error:c})})})}),K=await function(a,{minPanel:b,stragglerGraceMs:c,panelHardTimeoutMs:d,abortControllers:e=[],abortSignal:f=null}){return new Promise(g=>{let h=Array(a.length),i=0,j=0,k=!1,l=null,m=null,n=()=>o(),o=()=>{if(!k){for(let a of(k=!0,m&&clearTimeout(m),l&&clearTimeout(l),f?.removeEventListener?.("abort",n),e))if(a&&!a.signal.aborted)try{a.abort(Error("fusion panel collection finished"))}catch{}g(h)}};if(m=setTimeout(o,d),f){if(f.aborted)return void o();f.addEventListener("abort",n,{once:!0})}a.forEach((d,e)=>{Promise.resolve(d).then(a=>{h[e]=a}).catch(a=>{h[e]={__error:a}}).finally(()=>{if(i++,h[e]&&h[e].ok&&j++,i===a.length)return o();j>=b&&!l&&(l=setTimeout(o,c))})})})}(J,{...u,minPanel:v,abortControllers:H,abortSignal:r});if(d.info("FUSION",`fan-out collected in ${Date.now()-G}ms`),r?.aborted)return z();let L=[];for(let a=0;a<K.length;a++){let b=K[a],c=t[a];if(!b){d.warn("FUSION",`Panel ${c} dropped (straggler/timeout)`);continue}if(b.__timeout){d.warn("FUSION",`Panel ${c} timed out`);continue}if(b.__error){d.warn("FUSION",`Panel ${c} threw`,{error:b.__error?.message||String(b.__error)});continue}if(!b.ok){d.warn("FUSION",`Panel ${c} failed`,{status:b.status});continue}try{let a=await b.clone().json(),e=B(a);e?(L.push({model:c,text:e,json:a,response:b}),d.info("FUSION",`Panel ${c} ok (${e.length} chars)`)):d.warn("FUSION",`Panel ${c} returned empty content`)}catch(a){d.warn("FUSION",`Panel ${c} unparseable`,{error:a.message||String(a)})}}if(0===L.length)return d.warn("FUSION","All panel models failed"),new Response(JSON.stringify({error:{message:"All fusion panel models failed"}}),{status:503,headers:{"Content-Type":"application/json"}});if(1===L.length)return d.info("FUSION",`Only ${L[0].model} succeeded — returning buffered answer (no re-dispatch)`),C(L[0].response,a,L[0].model);let M=(p=L.map((a,b)=>`[Source ${b+1}]
2
+ ${a.text}`).join("\n\n"),o=[`You are the JUDGE in a model-fusion panel. ${L.length} expert models independently answered the user's most recent request. Their responses are below, anonymized by source.`,"\nDo NOT mention that multiple models were used, and do NOT refer to the sources. Produce ONE authoritative final answer addressed directly to the user.\n\nFirst, internally analyze the panel along these dimensions: consensus (points most sources agree on — treat as higher-confidence), contradictions (where they disagree — resolve with your own judgment), partial coverage, unique insights only one source surfaced, and blind spots every source missed. Then write the best possible final answer grounded in that analysis — more complete and correct than any single response, with no filler.\n\n=== PANEL RESPONSES ===",p,"=== END PANEL RESPONSES ===\n\nNow write the final answer to the user's original request."].join("\n"),q={...a},Array.isArray(a.messages)?q.messages=[...a.messages,{role:"user",content:o}]:Array.isArray(a.input)?q.input=[...a.input,{type:"message",role:"user",content:[{type:"input_text",text:o}]}]:Array.isArray(a.contents)?q.contents=[...a.contents,{role:"user",parts:[{text:o}]}]:q.messages=[{role:"user",content:o}],q);d.info("FUSION",`Judging ${L.length} answers with ${w}`);try{let b=await c(M,w,{signal:r||void 0,comboDepth:m,autoDepth:n});if(!b?.ok){let c=L.reduce((a,b)=>a.text.length>=b.text.length?a:b);return d.warn("FUSION",`Judge ${w} failed (${b?.status}), falling back to best panel answer`),C(c.response,a,c.model)}return C(b,a,w)}catch(c){if(r?.aborted)return z();let b=L.reduce((a,b)=>a.text.length>=b.text.length?a:b);return d.warn("FUSION",`Judge ${w} threw, falling back to best panel answer`,{error:c?.message||String(c)}),C(b.response,a,b.model)}}},5425:(a,b,c)=>{function d(a){let b=a?.thread;return!!b&&"object"==typeof b&&!Array.isArray(b)&&"continue"===b.type&&"string"==typeof b.previous_message_id&&b.previous_message_id.trim().length>0}function e(a){return!!a?.thread&&"object"==typeof a.thread&&!Array.isArray(a.thread)}c.d(b,{k:()=>d,r:()=>e})},43429:(a,b,c)=>{c.d(b,{Y:()=>e});let d=["user-agent","anthropic-beta","anthropic-version","anthropic-dangerous-direct-browser-access","x-app","x-stainless-helper-method","x-stainless-retry-count","x-stainless-runtime-version","x-stainless-package-version","x-stainless-runtime","x-stainless-lang","x-stainless-arch","x-stainless-os","x-stainless-timeout","x-claude-code-session-id","package-version","runtime-version","os","arch"];function e(a){if(!a||"object"!=typeof a)return null;let b={};for(let c of d)void 0!==a[c]&&null!==a[c]&&(b[c]=a[c]);return Object.keys(b).length>0?b:null}},89865:(a,b,c)=>{c.d(b,{A1:()=>h,lR:()=>j,wO:()=>i,yj:()=>f,zL:()=>g});var d=c(87252);async function e(a,b){let c=a?.body?.getReader?.();if(!c)try{return(await a.text()).slice(0,b)}catch{return""}let d=new TextDecoder,e="",f=0;try{for(;f<b;){let{done:a,value:g}=await c.read();if(a)break;let h=g instanceof Uint8Array?g:new Uint8Array(g),i=b-f;if(e+=d.decode(h.subarray(0,i),{stream:h.byteLength<=i}),f+=Math.min(h.byteLength,i),h.byteLength>i){try{await c.cancel("upstream error body limit")}catch{}break}}return e+d.decode()}catch{return e}finally{try{c.releaseLock?.()}catch{}}}function f(a,b){let c;return new Response(JSON.stringify((c=d.LY[a]||(a>=500?{type:"server_error",code:"internal_server_error"}:{type:"invalid_request_error",code:""}),{error:{message:b||d.O[a]||"An error occurred",type:c.type,code:c.code}})),{status:a,headers:{"Content-Type":"application/json"}})}async function g(a,b=null){let c=await e(a,65536);if(b&&"function"==typeof b.parseError)try{let e=b.parseError(a,c);if(e&&"object"==typeof e){let b=e.message||d.O[a.status]||`Upstream error: ${a.status}`;return{statusCode:e.status||a.status,message:b,resetsAtMs:e.resetsAtMs}}}catch{}let f="";try{let a=JSON.parse(c);f="string"==typeof a?.error?.message?a.error.message:"string"==typeof a?.message?a.message:"string"==typeof a?.error_description?a.error_description:"string"==typeof a?.error?a.error:""}catch{f=c}let h=("string"==typeof f?f:"")||d.O[a.status]||`Upstream error: ${a.status}`;return{statusCode:a.status,message:h}}function h(a,b,c){return{success:!1,status:a,error:b,resetsAtMs:c,response:f(a,b)}}function i(a,b,c,d){let e=Math.max(Math.ceil((new Date(c).getTime()-Date.now())/1e3),1);return new Response(JSON.stringify({error:{message:`${b} (${d})`}}),{status:a,headers:{"Content-Type":"application/json","Retry-After":String(e)}})}function j(a,b,c,d){let e=d||a.code||"FETCH_FAILED",f=a.message||"Unknown error",g=a.cause?.code,h=a.cause?.message,i=g||h?` (cause: ${[g,h].filter(Boolean).join(": ")})`:"";return`[${e}]: ${f}${i}`}}};