@jheavenknows/bluerouter 5.4.5 → 5.4.6

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 (666) hide show
  1. package/app/.next-cli-build/BUILD_ID +1 -1
  2. package/app/.next-cli-build/app-path-routes-manifest.json +6 -6
  3. package/app/.next-cli-build/build-manifest.json +2 -2
  4. package/app/.next-cli-build/server/app/(dashboard)/dashboard/ai-power-index/page.js.nft.json +1 -1
  5. package/app/.next-cli-build/server/app/(dashboard)/dashboard/ai-power-index/page_client-reference-manifest.js +1 -1
  6. package/app/.next-cli-build/server/app/(dashboard)/dashboard/analytics/page.js.nft.json +1 -1
  7. package/app/.next-cli-build/server/app/(dashboard)/dashboard/analytics/page_client-reference-manifest.js +1 -1
  8. package/app/.next-cli-build/server/app/(dashboard)/dashboard/api-keys/page.js.nft.json +1 -1
  9. package/app/.next-cli-build/server/app/(dashboard)/dashboard/api-keys/page_client-reference-manifest.js +1 -1
  10. package/app/.next-cli-build/server/app/(dashboard)/dashboard/audit-proxy/page.js +1 -1
  11. package/app/.next-cli-build/server/app/(dashboard)/dashboard/audit-proxy/page.js.nft.json +1 -1
  12. package/app/.next-cli-build/server/app/(dashboard)/dashboard/audit-proxy/page_client-reference-manifest.js +1 -1
  13. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js.nft.json +1 -1
  14. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
  15. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js.nft.json +1 -1
  16. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page_client-reference-manifest.js +1 -1
  17. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/model-profiles/page.js.nft.json +1 -1
  18. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/model-profiles/page_client-reference-manifest.js +1 -1
  19. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json +1 -1
  20. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  21. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cluster/page.js.nft.json +1 -1
  22. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cluster/page_client-reference-manifest.js +1 -1
  23. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js.nft.json +1 -1
  24. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  25. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js.nft.json +1 -1
  26. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
  27. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json +1 -1
  28. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  29. package/app/.next-cli-build/server/app/(dashboard)/dashboard/logs/console/page.js.nft.json +1 -1
  30. package/app/.next-cli-build/server/app/(dashboard)/dashboard/logs/console/page_client-reference-manifest.js +1 -1
  31. package/app/.next-cli-build/server/app/(dashboard)/dashboard/logs/page.js.nft.json +1 -1
  32. package/app/.next-cli-build/server/app/(dashboard)/dashboard/logs/page_client-reference-manifest.js +1 -1
  33. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js.nft.json +1 -1
  34. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js +1 -1
  35. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js.nft.json +1 -1
  36. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page_client-reference-manifest.js +1 -1
  37. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js.nft.json +1 -1
  38. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page_client-reference-manifest.js +1 -1
  39. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js.nft.json +1 -1
  40. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page_client-reference-manifest.js +1 -1
  41. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js.nft.json +1 -1
  42. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
  43. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
  44. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  45. package/app/.next-cli-build/server/app/(dashboard)/dashboard/personal/page.js.nft.json +1 -1
  46. package/app/.next-cli-build/server/app/(dashboard)/dashboard/personal/page_client-reference-manifest.js +1 -1
  47. package/app/.next-cli-build/server/app/(dashboard)/dashboard/personalcloudprovider/page.js.nft.json +1 -1
  48. package/app/.next-cli-build/server/app/(dashboard)/dashboard/personalcloudprovider/page_client-reference-manifest.js +1 -1
  49. package/app/.next-cli-build/server/app/(dashboard)/dashboard/personalcloudprovidermonitor/page.js.nft.json +1 -1
  50. package/app/.next-cli-build/server/app/(dashboard)/dashboard/personalcloudprovidermonitor/page_client-reference-manifest.js +1 -1
  51. package/app/.next-cli-build/server/app/(dashboard)/dashboard/personalquota/page.js.nft.json +1 -1
  52. package/app/.next-cli-build/server/app/(dashboard)/dashboard/personalquota/page_client-reference-manifest.js +1 -1
  53. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js.nft.json +1 -1
  54. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  55. package/app/.next-cli-build/server/app/(dashboard)/dashboard/prompt-logs/page.js.nft.json +1 -1
  56. package/app/.next-cli-build/server/app/(dashboard)/dashboard/prompt-logs/page_client-reference-manifest.js +1 -1
  57. package/app/.next-cli-build/server/app/(dashboard)/dashboard/provider-health/page.js.nft.json +1 -1
  58. package/app/.next-cli-build/server/app/(dashboard)/dashboard/provider-health/page_client-reference-manifest.js +1 -1
  59. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json +1 -1
  60. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  61. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js.nft.json +1 -1
  62. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  63. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js.nft.json +1 -1
  64. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  65. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/stt/page.js.nft.json +1 -1
  66. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/stt/page_client-reference-manifest.js +1 -1
  67. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/tts/page.js.nft.json +1 -1
  68. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/tts/page_client-reference-manifest.js +1 -1
  69. package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page.js.nft.json +1 -1
  70. package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
  71. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js.nft.json +1 -1
  72. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
  73. package/app/.next-cli-build/server/app/(dashboard)/dashboard/resource-monitor/page.js.nft.json +1 -1
  74. package/app/.next-cli-build/server/app/(dashboard)/dashboard/resource-monitor/page_client-reference-manifest.js +1 -1
  75. package/app/.next-cli-build/server/app/(dashboard)/dashboard/settings/pricing/page.js.nft.json +1 -1
  76. package/app/.next-cli-build/server/app/(dashboard)/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  77. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page.js.nft.json +1 -1
  78. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page_client-reference-manifest.js +1 -1
  79. package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page.js.nft.json +1 -1
  80. package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page_client-reference-manifest.js +1 -1
  81. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js.nft.json +1 -1
  82. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  83. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js.nft.json +1 -1
  84. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  85. package/app/.next-cli-build/server/app/_global-error/page.js.nft.json +1 -1
  86. package/app/.next-cli-build/server/app/_global-error/page_client-reference-manifest.js +1 -1
  87. package/app/.next-cli-build/server/app/_global-error.html +1 -1
  88. package/app/.next-cli-build/server/app/_global-error.rsc +1 -1
  89. package/app/.next-cli-build/server/app/_global-error.segments/_full.segment.rsc +1 -1
  90. package/app/.next-cli-build/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  91. package/app/.next-cli-build/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  92. package/app/.next-cli-build/server/app/_not-found/page.js.nft.json +1 -1
  93. package/app/.next-cli-build/server/app/_not-found/page_client-reference-manifest.js +1 -1
  94. package/app/.next-cli-build/server/app/_not-found.html +1 -1
  95. package/app/.next-cli-build/server/app/_not-found.rsc +5 -5
  96. package/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +5 -5
  97. package/app/.next-cli-build/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +5 -5
  98. package/app/.next-cli-build/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  99. package/app/.next-cli-build/server/app/api/audit-proxy/ca/route.js +1 -1
  100. package/app/.next-cli-build/server/app/api/audit-proxy/ca/route.js.nft.json +1 -1
  101. package/app/.next-cli-build/server/app/api/audit-proxy/me/route.js +1 -1
  102. package/app/.next-cli-build/server/app/api/audit-proxy/me/route.js.nft.json +1 -1
  103. package/app/.next-cli-build/server/app/api/audit-proxy/route.js +2 -2
  104. package/app/.next-cli-build/server/app/api/audit-proxy/route.js.nft.json +1 -1
  105. package/app/.next-cli-build/server/app/api/audit-proxy/users/route.js +1 -1
  106. package/app/.next-cli-build/server/app/api/audit-proxy/users/route.js.nft.json +1 -1
  107. package/app/.next-cli-build/server/app/api/auth/ldap/test/route.js +1 -1
  108. package/app/.next-cli-build/server/app/api/auth/ldap/test/route.js.nft.json +1 -1
  109. package/app/.next-cli-build/server/app/api/auth/ldap/users/route.js +1 -1
  110. package/app/.next-cli-build/server/app/api/auth/ldap/users/route.js.nft.json +1 -1
  111. package/app/.next-cli-build/server/app/api/auth/login/route.js +3 -3
  112. package/app/.next-cli-build/server/app/api/auth/login/route.js.nft.json +1 -1
  113. package/app/.next-cli-build/server/app/api/auth/logout/route.js.nft.json +1 -1
  114. package/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js +1 -1
  115. package/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js.nft.json +1 -1
  116. package/app/.next-cli-build/server/app/api/auth/oidc/start/route.js +1 -1
  117. package/app/.next-cli-build/server/app/api/auth/oidc/start/route.js.nft.json +1 -1
  118. package/app/.next-cli-build/server/app/api/auth/oidc/test/route.js +1 -1
  119. package/app/.next-cli-build/server/app/api/auth/oidc/test/route.js.nft.json +1 -1
  120. package/app/.next-cli-build/server/app/api/auth/status/route.js +1 -1
  121. package/app/.next-cli-build/server/app/api/auth/status/route.js.nft.json +1 -1
  122. package/app/.next-cli-build/server/app/api/auth/view-mode/route.js +1 -1
  123. package/app/.next-cli-build/server/app/api/auth/view-mode/route.js.nft.json +1 -1
  124. package/app/.next-cli-build/server/app/api/branding/[asset]/route.js +1 -1
  125. package/app/.next-cli-build/server/app/api/branding/[asset]/route.js.nft.json +1 -1
  126. package/app/.next-cli-build/server/app/api/branding/route.js +1 -1
  127. package/app/.next-cli-build/server/app/api/branding/route.js.nft.json +1 -1
  128. package/app/.next-cli-build/server/app/api/branding/upload/route.js +1 -1
  129. package/app/.next-cli-build/server/app/api/branding/upload/route.js.nft.json +1 -1
  130. package/app/.next-cli-build/server/app/api/cli-model-profiles/cloud-models/route.js +1 -1
  131. package/app/.next-cli-build/server/app/api/cli-model-profiles/cloud-models/route.js.nft.json +1 -1
  132. package/app/.next-cli-build/server/app/api/cli-model-profiles/route.js +1 -1
  133. package/app/.next-cli-build/server/app/api/cli-model-profiles/route.js.nft.json +1 -1
  134. package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js.nft.json +1 -1
  135. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js +1 -1
  136. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js.nft.json +1 -1
  137. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/autostart/route.js +1 -1
  138. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/autostart/route.js.nft.json +1 -1
  139. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/prompt-log-db/route.js +2 -2
  140. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/prompt-log-db/route.js.nft.json +1 -1
  141. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/root-ca/route.js +1 -1
  142. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/root-ca/route.js.nft.json +1 -1
  143. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js +1 -1
  144. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js.nft.json +1 -1
  145. package/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js.nft.json +1 -1
  146. package/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js.nft.json +1 -1
  147. package/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js.nft.json +1 -1
  148. package/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js.nft.json +1 -1
  149. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js.nft.json +1 -1
  150. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js.nft.json +1 -1
  151. package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js.nft.json +1 -1
  152. package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js.nft.json +1 -1
  153. package/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js.nft.json +1 -1
  154. package/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js.nft.json +1 -1
  155. package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js.nft.json +1 -1
  156. package/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js.nft.json +1 -1
  157. package/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js.nft.json +1 -1
  158. package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js.nft.json +1 -1
  159. package/app/.next-cli-build/server/app/api/cli-tools/qwen-settings/route.js.nft.json +1 -1
  160. package/app/.next-cli-build/server/app/api/cluster/config/route.js +1 -1
  161. package/app/.next-cli-build/server/app/api/cluster/config/route.js.nft.json +1 -1
  162. package/app/.next-cli-build/server/app/api/cluster/heartbeat/route.js +1 -1
  163. package/app/.next-cli-build/server/app/api/cluster/heartbeat/route.js.nft.json +1 -1
  164. package/app/.next-cli-build/server/app/api/cluster/peers/[id]/command/route.js +1 -1
  165. package/app/.next-cli-build/server/app/api/cluster/peers/[id]/command/route.js.nft.json +1 -1
  166. package/app/.next-cli-build/server/app/api/cluster/peers/[id]/route.js +1 -1
  167. package/app/.next-cli-build/server/app/api/cluster/peers/[id]/route.js.nft.json +1 -1
  168. package/app/.next-cli-build/server/app/api/cluster/peers/route.js +1 -1
  169. package/app/.next-cli-build/server/app/api/cluster/peers/route.js.nft.json +1 -1
  170. package/app/.next-cli-build/server/app/api/cluster/snapshot/route.js +1 -1
  171. package/app/.next-cli-build/server/app/api/cluster/snapshot/route.js.nft.json +1 -1
  172. package/app/.next-cli-build/server/app/api/cluster/sync/route.js +1 -1
  173. package/app/.next-cli-build/server/app/api/cluster/sync/route.js.nft.json +1 -1
  174. package/app/.next-cli-build/server/app/api/cluster/test/route.js +1 -1
  175. package/app/.next-cli-build/server/app/api/cluster/test/route.js.nft.json +1 -1
  176. package/app/.next-cli-build/server/app/api/combos/[id]/route.js +1 -1
  177. package/app/.next-cli-build/server/app/api/combos/[id]/route.js.nft.json +1 -1
  178. package/app/.next-cli-build/server/app/api/combos/route.js +1 -1
  179. package/app/.next-cli-build/server/app/api/combos/route.js.nft.json +1 -1
  180. package/app/.next-cli-build/server/app/api/dashboard/ai-power-index/route.js +1 -1
  181. package/app/.next-cli-build/server/app/api/dashboard/ai-power-index/route.js.nft.json +1 -1
  182. package/app/.next-cli-build/server/app/api/dashboard/analytics/ai-models/route.js +1 -1
  183. package/app/.next-cli-build/server/app/api/dashboard/analytics/ai-models/route.js.nft.json +1 -1
  184. package/app/.next-cli-build/server/app/api/dashboard/analytics/analyze/route.js +2 -2
  185. package/app/.next-cli-build/server/app/api/dashboard/analytics/analyze/route.js.nft.json +1 -1
  186. package/app/.next-cli-build/server/app/api/dashboard/analytics/route.js +1 -1
  187. package/app/.next-cli-build/server/app/api/dashboard/analytics/route.js.nft.json +1 -1
  188. package/app/.next-cli-build/server/app/api/dashboard/combos/route.js +1 -1
  189. package/app/.next-cli-build/server/app/api/dashboard/combos/route.js.nft.json +1 -1
  190. package/app/.next-cli-build/server/app/api/dashboard/endpoint/route.js +1 -1
  191. package/app/.next-cli-build/server/app/api/dashboard/endpoint/route.js.nft.json +1 -1
  192. package/app/.next-cli-build/server/app/api/dashboard/prompt-logs/[id]/route.js.nft.json +1 -1
  193. package/app/.next-cli-build/server/app/api/dashboard/prompt-logs/options/route.js.nft.json +1 -1
  194. package/app/.next-cli-build/server/app/api/dashboard/prompt-logs/route.js.nft.json +1 -1
  195. package/app/.next-cli-build/server/app/api/dashboard/token-saver/route.js +1 -1
  196. package/app/.next-cli-build/server/app/api/dashboard/token-saver/route.js.nft.json +1 -1
  197. package/app/.next-cli-build/server/app/api/health/route.js.nft.json +1 -1
  198. package/app/.next-cli-build/server/app/api/init/route.js.nft.json +1 -1
  199. package/app/.next-cli-build/server/app/api/keys/[id]/caveman-test/route.js +1 -1
  200. package/app/.next-cli-build/server/app/api/keys/[id]/caveman-test/route.js.nft.json +1 -1
  201. package/app/.next-cli-build/server/app/api/keys/[id]/rotate/route.js +1 -1
  202. package/app/.next-cli-build/server/app/api/keys/[id]/rotate/route.js.nft.json +1 -1
  203. package/app/.next-cli-build/server/app/api/keys/[id]/route.js +1 -1
  204. package/app/.next-cli-build/server/app/api/keys/[id]/route.js.nft.json +1 -1
  205. package/app/.next-cli-build/server/app/api/keys/route.js +2 -2
  206. package/app/.next-cli-build/server/app/api/keys/route.js.nft.json +1 -1
  207. package/app/.next-cli-build/server/app/api/locale/route.js.nft.json +1 -1
  208. package/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js.nft.json +1 -1
  209. package/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js.nft.json +1 -1
  210. package/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js.nft.json +1 -1
  211. package/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js.nft.json +1 -1
  212. package/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js.nft.json +1 -1
  213. package/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js.nft.json +1 -1
  214. package/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js.nft.json +1 -1
  215. package/app/.next-cli-build/server/app/api/models/alias/route.js +1 -1
  216. package/app/.next-cli-build/server/app/api/models/alias/route.js.nft.json +1 -1
  217. package/app/.next-cli-build/server/app/api/models/availability/route.js.nft.json +1 -1
  218. package/app/.next-cli-build/server/app/api/models/custom/route.js +1 -1
  219. package/app/.next-cli-build/server/app/api/models/custom/route.js.nft.json +1 -1
  220. package/app/.next-cli-build/server/app/api/models/disabled/route.js.nft.json +1 -1
  221. package/app/.next-cli-build/server/app/api/models/route.js +1 -1
  222. package/app/.next-cli-build/server/app/api/models/route.js.nft.json +1 -1
  223. package/app/.next-cli-build/server/app/api/models/test/route.js +1 -1
  224. package/app/.next-cli-build/server/app/api/models/test/route.js.nft.json +1 -1
  225. package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js +1 -1
  226. package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -1
  227. package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js +1 -1
  228. package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js.nft.json +1 -1
  229. package/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js.nft.json +1 -1
  230. package/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js +1 -1
  231. package/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js.nft.json +1 -1
  232. package/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js +1 -1
  233. package/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js.nft.json +1 -1
  234. package/app/.next-cli-build/server/app/api/oauth/grok-cli/device-code/route.js +1 -1
  235. package/app/.next-cli-build/server/app/api/oauth/grok-cli/device-code/route.js.nft.json +1 -1
  236. package/app/.next-cli-build/server/app/api/oauth/grok-cli/poll/route.js +1 -1
  237. package/app/.next-cli-build/server/app/api/oauth/grok-cli/poll/route.js.nft.json +1 -1
  238. package/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js +1 -1
  239. package/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js.nft.json +1 -1
  240. package/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route.js.nft.json +1 -1
  241. package/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js +1 -1
  242. package/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js.nft.json +1 -1
  243. package/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js.nft.json +1 -1
  244. package/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js +1 -1
  245. package/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js.nft.json +1 -1
  246. package/app/.next-cli-build/server/app/api/personal-cloud-providers/[id]/api-key-models/route.js +1 -1
  247. package/app/.next-cli-build/server/app/api/personal-cloud-providers/[id]/api-key-models/route.js.nft.json +1 -1
  248. package/app/.next-cli-build/server/app/api/personal-cloud-providers/[id]/import-models/route.js +1 -1
  249. package/app/.next-cli-build/server/app/api/personal-cloud-providers/[id]/import-models/route.js.nft.json +1 -1
  250. package/app/.next-cli-build/server/app/api/personal-cloud-providers/[id]/models/[...routeModel]/route.js +1 -1
  251. package/app/.next-cli-build/server/app/api/personal-cloud-providers/[id]/models/[...routeModel]/route.js.nft.json +1 -1
  252. package/app/.next-cli-build/server/app/api/personal-cloud-providers/[id]/move/route.js +1 -1
  253. package/app/.next-cli-build/server/app/api/personal-cloud-providers/[id]/move/route.js.nft.json +1 -1
  254. package/app/.next-cli-build/server/app/api/personal-cloud-providers/[id]/route.js +1 -1
  255. package/app/.next-cli-build/server/app/api/personal-cloud-providers/[id]/route.js.nft.json +1 -1
  256. package/app/.next-cli-build/server/app/api/personal-cloud-providers/[id]/usage/route.js +1 -1
  257. package/app/.next-cli-build/server/app/api/personal-cloud-providers/[id]/usage/route.js.nft.json +1 -1
  258. package/app/.next-cli-build/server/app/api/personal-cloud-providers/client/route.js +1 -1
  259. package/app/.next-cli-build/server/app/api/personal-cloud-providers/client/route.js.nft.json +1 -1
  260. package/app/.next-cli-build/server/app/api/personal-cloud-providers/monitor/route.js +1 -1
  261. package/app/.next-cli-build/server/app/api/personal-cloud-providers/monitor/route.js.nft.json +1 -1
  262. package/app/.next-cli-build/server/app/api/personal-cloud-providers/permissions/route.js +1 -1
  263. package/app/.next-cli-build/server/app/api/personal-cloud-providers/permissions/route.js.nft.json +1 -1
  264. package/app/.next-cli-build/server/app/api/personal-cloud-providers/route.js +1 -1
  265. package/app/.next-cli-build/server/app/api/personal-cloud-providers/route.js.nft.json +1 -1
  266. package/app/.next-cli-build/server/app/api/personal-cloud-providers/routing/route.js +1 -1
  267. package/app/.next-cli-build/server/app/api/personal-cloud-providers/routing/route.js.nft.json +1 -1
  268. package/app/.next-cli-build/server/app/api/personal-cloud-providers/shares/route.js +1 -1
  269. package/app/.next-cli-build/server/app/api/personal-cloud-providers/shares/route.js.nft.json +1 -1
  270. package/app/.next-cli-build/server/app/api/personal-cloud-providers/visibility/route.js +1 -1
  271. package/app/.next-cli-build/server/app/api/personal-cloud-providers/visibility/route.js.nft.json +1 -1
  272. package/app/.next-cli-build/server/app/api/pricing/catalog/route.js +1 -1
  273. package/app/.next-cli-build/server/app/api/pricing/catalog/route.js.nft.json +1 -1
  274. package/app/.next-cli-build/server/app/api/pricing/recalculate/route.js.nft.json +1 -1
  275. package/app/.next-cli-build/server/app/api/pricing/route.js +1 -1
  276. package/app/.next-cli-build/server/app/api/pricing/route.js.nft.json +1 -1
  277. package/app/.next-cli-build/server/app/api/provider-health/route.js +1 -1
  278. package/app/.next-cli-build/server/app/api/provider-health/route.js.nft.json +1 -1
  279. package/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js +1 -1
  280. package/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js.nft.json +1 -1
  281. package/app/.next-cli-build/server/app/api/provider-nodes/openai-compatible/manage/route.js +1 -1
  282. package/app/.next-cli-build/server/app/api/provider-nodes/openai-compatible/manage/route.js.nft.json +1 -1
  283. package/app/.next-cli-build/server/app/api/provider-nodes/route.js +1 -1
  284. package/app/.next-cli-build/server/app/api/provider-nodes/route.js.nft.json +1 -1
  285. package/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js.nft.json +1 -1
  286. package/app/.next-cli-build/server/app/api/providers/[id]/models/route.js +1 -1
  287. package/app/.next-cli-build/server/app/api/providers/[id]/models/route.js.nft.json +1 -1
  288. package/app/.next-cli-build/server/app/api/providers/[id]/route.js +1 -1
  289. package/app/.next-cli-build/server/app/api/providers/[id]/route.js.nft.json +1 -1
  290. package/app/.next-cli-build/server/app/api/providers/[id]/test/route.js +1 -1
  291. package/app/.next-cli-build/server/app/api/providers/[id]/test/route.js.nft.json +1 -1
  292. package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js +1 -1
  293. package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js.nft.json +1 -1
  294. package/app/.next-cli-build/server/app/api/providers/client/route.js +1 -1
  295. package/app/.next-cli-build/server/app/api/providers/client/route.js.nft.json +1 -1
  296. package/app/.next-cli-build/server/app/api/providers/kilo/free-models/route.js.nft.json +1 -1
  297. package/app/.next-cli-build/server/app/api/providers/route.js +1 -1
  298. package/app/.next-cli-build/server/app/api/providers/route.js.nft.json +1 -1
  299. package/app/.next-cli-build/server/app/api/providers/suggested-models/route.js.nft.json +1 -1
  300. package/app/.next-cli-build/server/app/api/providers/test-batch/route.js +1 -1
  301. package/app/.next-cli-build/server/app/api/providers/test-batch/route.js.nft.json +1 -1
  302. package/app/.next-cli-build/server/app/api/providers/validate/route.js +1 -1
  303. package/app/.next-cli-build/server/app/api/providers/validate/route.js.nft.json +1 -1
  304. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js +1 -1
  305. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js.nft.json +1 -1
  306. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js +1 -1
  307. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js.nft.json +1 -1
  308. package/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js +1 -1
  309. package/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js.nft.json +1 -1
  310. package/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js +1 -1
  311. package/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js.nft.json +1 -1
  312. package/app/.next-cli-build/server/app/api/proxy-pools/route.js +1 -1
  313. package/app/.next-cli-build/server/app/api/proxy-pools/route.js.nft.json +1 -1
  314. package/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js +1 -1
  315. package/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js.nft.json +1 -1
  316. package/app/.next-cli-build/server/app/api/resource-monitor/[id]/route.js +2 -2
  317. package/app/.next-cli-build/server/app/api/resource-monitor/[id]/route.js.nft.json +1 -1
  318. package/app/.next-cli-build/server/app/api/resource-monitor/ai-models/route.js +1 -1
  319. package/app/.next-cli-build/server/app/api/resource-monitor/ai-models/route.js.nft.json +1 -1
  320. package/app/.next-cli-build/server/app/api/resource-monitor/analyze/route.js +2 -2
  321. package/app/.next-cli-build/server/app/api/resource-monitor/analyze/route.js.nft.json +1 -1
  322. package/app/.next-cli-build/server/app/api/resource-monitor/history/route.js +1 -1
  323. package/app/.next-cli-build/server/app/api/resource-monitor/history/route.js.nft.json +1 -1
  324. package/app/.next-cli-build/server/app/api/resource-monitor/route.js +2 -2
  325. package/app/.next-cli-build/server/app/api/resource-monitor/route.js.nft.json +1 -1
  326. package/app/.next-cli-build/server/app/api/settings/database/route.js +1 -1
  327. package/app/.next-cli-build/server/app/api/settings/database/route.js.nft.json +1 -1
  328. package/app/.next-cli-build/server/app/api/settings/proxy-test/route.js.nft.json +1 -1
  329. package/app/.next-cli-build/server/app/api/settings/require-login/route.js +1 -1
  330. package/app/.next-cli-build/server/app/api/settings/require-login/route.js.nft.json +1 -1
  331. package/app/.next-cli-build/server/app/api/settings/route.js +2 -2
  332. package/app/.next-cli-build/server/app/api/settings/route.js.nft.json +1 -1
  333. package/app/.next-cli-build/server/app/api/shutdown/route.js.nft.json +1 -1
  334. package/app/.next-cli-build/server/app/api/tags/route.js.nft.json +1 -1
  335. package/app/.next-cli-build/server/app/api/translator/console-logs/route.js +1 -1
  336. package/app/.next-cli-build/server/app/api/translator/console-logs/route.js.nft.json +1 -1
  337. package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js +1 -1
  338. package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js.nft.json +1 -1
  339. package/app/.next-cli-build/server/app/api/translator/load/route.js.nft.json +1 -1
  340. package/app/.next-cli-build/server/app/api/translator/save/route.js.nft.json +1 -1
  341. package/app/.next-cli-build/server/app/api/translator/send/route.js +1 -1
  342. package/app/.next-cli-build/server/app/api/translator/send/route.js.nft.json +1 -1
  343. package/app/.next-cli-build/server/app/api/translator/translate/route.js +1 -1
  344. package/app/.next-cli-build/server/app/api/translator/translate/route.js.nft.json +1 -1
  345. package/app/.next-cli-build/server/app/api/tunnel/disable/route.js +1 -1
  346. package/app/.next-cli-build/server/app/api/tunnel/disable/route.js.nft.json +1 -1
  347. package/app/.next-cli-build/server/app/api/tunnel/enable/route.js +1 -1
  348. package/app/.next-cli-build/server/app/api/tunnel/enable/route.js.nft.json +1 -1
  349. package/app/.next-cli-build/server/app/api/tunnel/status/route.js +1 -1
  350. package/app/.next-cli-build/server/app/api/tunnel/status/route.js.nft.json +1 -1
  351. package/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js +1 -1
  352. package/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js.nft.json +1 -1
  353. package/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js +1 -1
  354. package/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js.nft.json +1 -1
  355. package/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js +1 -1
  356. package/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js.nft.json +1 -1
  357. package/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js +3 -3
  358. package/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js.nft.json +1 -1
  359. package/app/.next-cli-build/server/app/api/tunnel/tailscale-login/route.js.nft.json +1 -1
  360. package/app/.next-cli-build/server/app/api/tunnel/tailscale-start-daemon/route.js +2 -2
  361. package/app/.next-cli-build/server/app/api/tunnel/tailscale-start-daemon/route.js.nft.json +1 -1
  362. package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js +1 -1
  363. package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
  364. package/app/.next-cli-build/server/app/api/usage/chart/route.js +1 -1
  365. package/app/.next-cli-build/server/app/api/usage/chart/route.js.nft.json +1 -1
  366. package/app/.next-cli-build/server/app/api/usage/history/route.js +1 -1
  367. package/app/.next-cli-build/server/app/api/usage/history/route.js.nft.json +1 -1
  368. package/app/.next-cli-build/server/app/api/usage/logs/route.js +1 -1
  369. package/app/.next-cli-build/server/app/api/usage/logs/route.js.nft.json +1 -1
  370. package/app/.next-cli-build/server/app/api/usage/providers/route.js +1 -1
  371. package/app/.next-cli-build/server/app/api/usage/providers/route.js.nft.json +1 -1
  372. package/app/.next-cli-build/server/app/api/usage/request-details/route.js +1 -1
  373. package/app/.next-cli-build/server/app/api/usage/request-details/route.js.nft.json +1 -1
  374. package/app/.next-cli-build/server/app/api/usage/request-logs/route.js +1 -1
  375. package/app/.next-cli-build/server/app/api/usage/request-logs/route.js.nft.json +1 -1
  376. package/app/.next-cli-build/server/app/api/usage/stats/route.js +1 -1
  377. package/app/.next-cli-build/server/app/api/usage/stats/route.js.nft.json +1 -1
  378. package/app/.next-cli-build/server/app/api/usage/stream/route.js +1 -1
  379. package/app/.next-cli-build/server/app/api/usage/stream/route.js.nft.json +1 -1
  380. package/app/.next-cli-build/server/app/api/v1/api/chat/route.js +1 -1
  381. package/app/.next-cli-build/server/app/api/v1/api/chat/route.js.nft.json +1 -1
  382. package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js +1 -1
  383. package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js.nft.json +1 -1
  384. package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js +1 -1
  385. package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js.nft.json +1 -1
  386. package/app/.next-cli-build/server/app/api/v1/audio/voices/route.js.nft.json +1 -1
  387. package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js +1 -1
  388. package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
  389. package/app/.next-cli-build/server/app/api/v1/embeddings/route.js +1 -1
  390. package/app/.next-cli-build/server/app/api/v1/embeddings/route.js.nft.json +1 -1
  391. package/app/.next-cli-build/server/app/api/v1/images/generations/route.js +1 -1
  392. package/app/.next-cli-build/server/app/api/v1/images/generations/route.js.nft.json +1 -1
  393. package/app/.next-cli-build/server/app/api/v1/messages/count_tokens/route.js.nft.json +1 -1
  394. package/app/.next-cli-build/server/app/api/v1/messages/route.js +1 -1
  395. package/app/.next-cli-build/server/app/api/v1/messages/route.js.nft.json +1 -1
  396. package/app/.next-cli-build/server/app/api/v1/models/[kind]/route.js +1 -1
  397. package/app/.next-cli-build/server/app/api/v1/models/[kind]/route.js.nft.json +1 -1
  398. package/app/.next-cli-build/server/app/api/v1/models/info/route.js.nft.json +1 -1
  399. package/app/.next-cli-build/server/app/api/v1/models/route.js +1 -1
  400. package/app/.next-cli-build/server/app/api/v1/models/route.js.nft.json +1 -1
  401. package/app/.next-cli-build/server/app/api/v1/responses/compact/route.js +1 -1
  402. package/app/.next-cli-build/server/app/api/v1/responses/compact/route.js.nft.json +1 -1
  403. package/app/.next-cli-build/server/app/api/v1/responses/route.js +1 -1
  404. package/app/.next-cli-build/server/app/api/v1/responses/route.js.nft.json +1 -1
  405. package/app/.next-cli-build/server/app/api/v1/route.js +1 -1
  406. package/app/.next-cli-build/server/app/api/v1/route.js.nft.json +1 -1
  407. package/app/.next-cli-build/server/app/api/v1/search/route.js +1 -1
  408. package/app/.next-cli-build/server/app/api/v1/search/route.js.nft.json +1 -1
  409. package/app/.next-cli-build/server/app/api/v1/web/fetch/route.js +1 -1
  410. package/app/.next-cli-build/server/app/api/v1/web/fetch/route.js.nft.json +1 -1
  411. package/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js +1 -1
  412. package/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
  413. package/app/.next-cli-build/server/app/api/v1beta/models/route.js +1 -1
  414. package/app/.next-cli-build/server/app/api/v1beta/models/route.js.nft.json +1 -1
  415. package/app/.next-cli-build/server/app/api/version/restart/route.js.nft.json +1 -1
  416. package/app/.next-cli-build/server/app/api/version/route.js.nft.json +1 -1
  417. package/app/.next-cli-build/server/app/api/version/shutdown/route.js +1 -1
  418. package/app/.next-cli-build/server/app/api/version/shutdown/route.js.nft.json +1 -1
  419. package/app/.next-cli-build/server/app/api/version/update/route.js +1 -1
  420. package/app/.next-cli-build/server/app/api/version/update/route.js.nft.json +1 -1
  421. package/app/.next-cli-build/server/app/callback/page.js.nft.json +1 -1
  422. package/app/.next-cli-build/server/app/callback/page_client-reference-manifest.js +1 -1
  423. package/app/.next-cli-build/server/app/callback.html +1 -1
  424. package/app/.next-cli-build/server/app/callback.rsc +5 -5
  425. package/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +5 -5
  426. package/app/.next-cli-build/server/app/callback.segments/_tree.segment.rsc +1 -1
  427. package/app/.next-cli-build/server/app/callback.segments/callback/__PAGE__.segment.rsc +5 -5
  428. package/app/.next-cli-build/server/app/dashboard/ai-power-index.html +1 -1
  429. package/app/.next-cli-build/server/app/dashboard/ai-power-index.rsc +6 -6
  430. package/app/.next-cli-build/server/app/dashboard/ai-power-index.segments/!KGRhc2hib2FyZCk/dashboard/ai-power-index/__PAGE__.segment.rsc +6 -6
  431. package/app/.next-cli-build/server/app/dashboard/ai-power-index.segments/_full.segment.rsc +6 -6
  432. package/app/.next-cli-build/server/app/dashboard/ai-power-index.segments/_tree.segment.rsc +1 -1
  433. package/app/.next-cli-build/server/app/dashboard/api-keys.html +1 -1
  434. package/app/.next-cli-build/server/app/dashboard/api-keys.rsc +9 -9
  435. package/app/.next-cli-build/server/app/dashboard/api-keys.segments/!KGRhc2hib2FyZCk/dashboard/api-keys/__PAGE__.segment.rsc +9 -9
  436. package/app/.next-cli-build/server/app/dashboard/api-keys.segments/_full.segment.rsc +9 -9
  437. package/app/.next-cli-build/server/app/dashboard/api-keys.segments/_tree.segment.rsc +1 -1
  438. package/app/.next-cli-build/server/app/dashboard/basic-chat.html +1 -1
  439. package/app/.next-cli-build/server/app/dashboard/basic-chat.rsc +7 -7
  440. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +7 -7
  441. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_full.segment.rsc +7 -7
  442. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +1 -1
  443. package/app/.next-cli-build/server/app/dashboard/cli-tools/model-profiles.html +1 -1
  444. package/app/.next-cli-build/server/app/dashboard/cli-tools/model-profiles.rsc +7 -7
  445. package/app/.next-cli-build/server/app/dashboard/cli-tools/model-profiles.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/model-profiles/__PAGE__.segment.rsc +7 -7
  446. package/app/.next-cli-build/server/app/dashboard/cli-tools/model-profiles.segments/_full.segment.rsc +7 -7
  447. package/app/.next-cli-build/server/app/dashboard/cli-tools/model-profiles.segments/_tree.segment.rsc +1 -1
  448. package/app/.next-cli-build/server/app/dashboard/cli-tools.html +1 -1
  449. package/app/.next-cli-build/server/app/dashboard/cli-tools.rsc +7 -7
  450. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +7 -7
  451. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_full.segment.rsc +7 -7
  452. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +1 -1
  453. package/app/.next-cli-build/server/app/dashboard/cluster.html +1 -1
  454. package/app/.next-cli-build/server/app/dashboard/cluster.rsc +6 -6
  455. package/app/.next-cli-build/server/app/dashboard/cluster.segments/!KGRhc2hib2FyZCk/dashboard/cluster/__PAGE__.segment.rsc +6 -6
  456. package/app/.next-cli-build/server/app/dashboard/cluster.segments/_full.segment.rsc +6 -6
  457. package/app/.next-cli-build/server/app/dashboard/cluster.segments/_tree.segment.rsc +1 -1
  458. package/app/.next-cli-build/server/app/dashboard/combos.html +1 -1
  459. package/app/.next-cli-build/server/app/dashboard/combos.rsc +7 -7
  460. package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +7 -7
  461. package/app/.next-cli-build/server/app/dashboard/combos.segments/_full.segment.rsc +7 -7
  462. package/app/.next-cli-build/server/app/dashboard/combos.segments/_tree.segment.rsc +1 -1
  463. package/app/.next-cli-build/server/app/dashboard/endpoint.html +1 -1
  464. package/app/.next-cli-build/server/app/dashboard/endpoint.rsc +7 -7
  465. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +7 -7
  466. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_full.segment.rsc +7 -7
  467. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_tree.segment.rsc +1 -1
  468. package/app/.next-cli-build/server/app/dashboard/logs.html +1 -1
  469. package/app/.next-cli-build/server/app/dashboard/logs.rsc +6 -6
  470. package/app/.next-cli-build/server/app/dashboard/logs.segments/!KGRhc2hib2FyZCk/dashboard/logs/__PAGE__.segment.rsc +6 -6
  471. package/app/.next-cli-build/server/app/dashboard/logs.segments/_full.segment.rsc +6 -6
  472. package/app/.next-cli-build/server/app/dashboard/logs.segments/_tree.segment.rsc +1 -1
  473. package/app/.next-cli-build/server/app/dashboard/media-providers/web.html +1 -1
  474. package/app/.next-cli-build/server/app/dashboard/media-providers/web.rsc +7 -7
  475. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web/__PAGE__.segment.rsc +7 -7
  476. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_full.segment.rsc +7 -7
  477. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_tree.segment.rsc +1 -1
  478. package/app/.next-cli-build/server/app/dashboard/mitm.html +1 -1
  479. package/app/.next-cli-build/server/app/dashboard/mitm.rsc +7 -7
  480. package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +7 -7
  481. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_full.segment.rsc +7 -7
  482. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_tree.segment.rsc +1 -1
  483. package/app/.next-cli-build/server/app/dashboard/personal.html +1 -1
  484. package/app/.next-cli-build/server/app/dashboard/personal.rsc +7 -7
  485. package/app/.next-cli-build/server/app/dashboard/personal.segments/!KGRhc2hib2FyZCk/dashboard/personal/__PAGE__.segment.rsc +7 -7
  486. package/app/.next-cli-build/server/app/dashboard/personal.segments/_full.segment.rsc +7 -7
  487. package/app/.next-cli-build/server/app/dashboard/personal.segments/_tree.segment.rsc +1 -1
  488. package/app/.next-cli-build/server/app/dashboard/profile.html +1 -1
  489. package/app/.next-cli-build/server/app/dashboard/profile.rsc +7 -7
  490. package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +7 -7
  491. package/app/.next-cli-build/server/app/dashboard/profile.segments/_full.segment.rsc +7 -7
  492. package/app/.next-cli-build/server/app/dashboard/profile.segments/_tree.segment.rsc +1 -1
  493. package/app/.next-cli-build/server/app/dashboard/prompt-logs.html +1 -1
  494. package/app/.next-cli-build/server/app/dashboard/prompt-logs.rsc +6 -6
  495. package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/!KGRhc2hib2FyZCk/dashboard/prompt-logs/__PAGE__.segment.rsc +6 -6
  496. package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/_full.segment.rsc +6 -6
  497. package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/_tree.segment.rsc +1 -1
  498. package/app/.next-cli-build/server/app/dashboard/provider-health.html +1 -1
  499. package/app/.next-cli-build/server/app/dashboard/provider-health.rsc +6 -6
  500. package/app/.next-cli-build/server/app/dashboard/provider-health.segments/!KGRhc2hib2FyZCk/dashboard/provider-health/__PAGE__.segment.rsc +6 -6
  501. package/app/.next-cli-build/server/app/dashboard/provider-health.segments/_full.segment.rsc +6 -6
  502. package/app/.next-cli-build/server/app/dashboard/provider-health.segments/_tree.segment.rsc +1 -1
  503. package/app/.next-cli-build/server/app/dashboard/providers/new.html +1 -1
  504. package/app/.next-cli-build/server/app/dashboard/providers/new.rsc +7 -7
  505. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +7 -7
  506. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_full.segment.rsc +7 -7
  507. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_tree.segment.rsc +1 -1
  508. package/app/.next-cli-build/server/app/dashboard/providers/stt.html +1 -1
  509. package/app/.next-cli-build/server/app/dashboard/providers/stt.rsc +7 -7
  510. package/app/.next-cli-build/server/app/dashboard/providers/stt.segments/!KGRhc2hib2FyZCk/dashboard/providers/stt/__PAGE__.segment.rsc +7 -7
  511. package/app/.next-cli-build/server/app/dashboard/providers/stt.segments/_full.segment.rsc +7 -7
  512. package/app/.next-cli-build/server/app/dashboard/providers/stt.segments/_tree.segment.rsc +1 -1
  513. package/app/.next-cli-build/server/app/dashboard/providers/tts.html +1 -1
  514. package/app/.next-cli-build/server/app/dashboard/providers/tts.rsc +7 -7
  515. package/app/.next-cli-build/server/app/dashboard/providers/tts.segments/!KGRhc2hib2FyZCk/dashboard/providers/tts/__PAGE__.segment.rsc +7 -7
  516. package/app/.next-cli-build/server/app/dashboard/providers/tts.segments/_full.segment.rsc +7 -7
  517. package/app/.next-cli-build/server/app/dashboard/providers/tts.segments/_tree.segment.rsc +1 -1
  518. package/app/.next-cli-build/server/app/dashboard/providers.html +1 -1
  519. package/app/.next-cli-build/server/app/dashboard/providers.rsc +7 -7
  520. package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +7 -7
  521. package/app/.next-cli-build/server/app/dashboard/providers.segments/_full.segment.rsc +7 -7
  522. package/app/.next-cli-build/server/app/dashboard/providers.segments/_tree.segment.rsc +1 -1
  523. package/app/.next-cli-build/server/app/dashboard/proxy-pools.html +1 -1
  524. package/app/.next-cli-build/server/app/dashboard/proxy-pools.rsc +7 -7
  525. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +7 -7
  526. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +7 -7
  527. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +1 -1
  528. package/app/.next-cli-build/server/app/dashboard/quota.html +1 -1
  529. package/app/.next-cli-build/server/app/dashboard/quota.rsc +8 -8
  530. package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +8 -8
  531. package/app/.next-cli-build/server/app/dashboard/quota.segments/_full.segment.rsc +8 -8
  532. package/app/.next-cli-build/server/app/dashboard/quota.segments/_tree.segment.rsc +1 -1
  533. package/app/.next-cli-build/server/app/dashboard/resource-monitor.html +1 -1
  534. package/app/.next-cli-build/server/app/dashboard/resource-monitor.rsc +6 -6
  535. package/app/.next-cli-build/server/app/dashboard/resource-monitor.segments/!KGRhc2hib2FyZCk/dashboard/resource-monitor/__PAGE__.segment.rsc +6 -6
  536. package/app/.next-cli-build/server/app/dashboard/resource-monitor.segments/_full.segment.rsc +6 -6
  537. package/app/.next-cli-build/server/app/dashboard/resource-monitor.segments/_tree.segment.rsc +1 -1
  538. package/app/.next-cli-build/server/app/dashboard/settings/pricing.html +1 -1
  539. package/app/.next-cli-build/server/app/dashboard/settings/pricing.rsc +6 -6
  540. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/!KGRhc2hib2FyZCk/dashboard/settings/pricing/__PAGE__.segment.rsc +6 -6
  541. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +6 -6
  542. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +1 -1
  543. package/app/.next-cli-build/server/app/dashboard/skills.html +1 -1
  544. package/app/.next-cli-build/server/app/dashboard/skills.rsc +7 -7
  545. package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills/__PAGE__.segment.rsc +7 -7
  546. package/app/.next-cli-build/server/app/dashboard/skills.segments/_full.segment.rsc +7 -7
  547. package/app/.next-cli-build/server/app/dashboard/skills.segments/_tree.segment.rsc +1 -1
  548. package/app/.next-cli-build/server/app/dashboard/token-saver.html +1 -1
  549. package/app/.next-cli-build/server/app/dashboard/token-saver.rsc +6 -6
  550. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver/__PAGE__.segment.rsc +6 -6
  551. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_full.segment.rsc +6 -6
  552. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_tree.segment.rsc +1 -1
  553. package/app/.next-cli-build/server/app/dashboard/translator.html +1 -1
  554. package/app/.next-cli-build/server/app/dashboard/translator.rsc +7 -7
  555. package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +7 -7
  556. package/app/.next-cli-build/server/app/dashboard/translator.segments/_full.segment.rsc +7 -7
  557. package/app/.next-cli-build/server/app/dashboard/translator.segments/_tree.segment.rsc +1 -1
  558. package/app/.next-cli-build/server/app/dashboard/usage.html +1 -1
  559. package/app/.next-cli-build/server/app/dashboard/usage.rsc +7 -7
  560. package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +7 -7
  561. package/app/.next-cli-build/server/app/dashboard/usage.segments/_full.segment.rsc +7 -7
  562. package/app/.next-cli-build/server/app/dashboard/usage.segments/_tree.segment.rsc +1 -1
  563. package/app/.next-cli-build/server/app/dashboard.html +1 -1
  564. package/app/.next-cli-build/server/app/dashboard.rsc +7 -7
  565. package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +7 -7
  566. package/app/.next-cli-build/server/app/dashboard.segments/_full.segment.rsc +7 -7
  567. package/app/.next-cli-build/server/app/dashboard.segments/_tree.segment.rsc +1 -1
  568. package/app/.next-cli-build/server/app/favicon.ico/route.js.nft.json +1 -1
  569. package/app/.next-cli-build/server/app/index.html +1 -1
  570. package/app/.next-cli-build/server/app/index.rsc +5 -5
  571. package/app/.next-cli-build/server/app/index.segments/__PAGE__.segment.rsc +5 -5
  572. package/app/.next-cli-build/server/app/index.segments/_full.segment.rsc +5 -5
  573. package/app/.next-cli-build/server/app/index.segments/_tree.segment.rsc +1 -1
  574. package/app/.next-cli-build/server/app/landing/page.js.nft.json +1 -1
  575. package/app/.next-cli-build/server/app/landing/page_client-reference-manifest.js +1 -1
  576. package/app/.next-cli-build/server/app/landing.html +1 -1
  577. package/app/.next-cli-build/server/app/landing.rsc +5 -5
  578. package/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +5 -5
  579. package/app/.next-cli-build/server/app/landing.segments/_tree.segment.rsc +1 -1
  580. package/app/.next-cli-build/server/app/landing.segments/landing/__PAGE__.segment.rsc +5 -5
  581. package/app/.next-cli-build/server/app/login/page.js.nft.json +1 -1
  582. package/app/.next-cli-build/server/app/login/page_client-reference-manifest.js +1 -1
  583. package/app/.next-cli-build/server/app/login.html +1 -1
  584. package/app/.next-cli-build/server/app/login.rsc +6 -6
  585. package/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +6 -6
  586. package/app/.next-cli-build/server/app/login.segments/_tree.segment.rsc +1 -1
  587. package/app/.next-cli-build/server/app/login.segments/login/__PAGE__.segment.rsc +6 -6
  588. package/app/.next-cli-build/server/app/manifest.webmanifest/route.js.nft.json +1 -1
  589. package/app/.next-cli-build/server/app/page.js.nft.json +1 -1
  590. package/app/.next-cli-build/server/app/page_client-reference-manifest.js +1 -1
  591. package/app/.next-cli-build/server/app-paths-manifest.json +6 -6
  592. package/app/.next-cli-build/server/chunks/1370.js +1 -0
  593. package/app/.next-cli-build/server/chunks/1470.js +1 -1
  594. package/app/.next-cli-build/server/chunks/1998.js +1 -1
  595. package/app/.next-cli-build/server/chunks/2507.js +1 -0
  596. package/app/.next-cli-build/server/chunks/2611.js +1 -1
  597. package/app/.next-cli-build/server/chunks/2731.js +3 -3
  598. package/app/.next-cli-build/server/chunks/2763.js +1 -0
  599. package/app/.next-cli-build/server/chunks/{3801.js → 2971.js} +1 -1
  600. package/app/.next-cli-build/server/chunks/3096.js +2 -0
  601. package/app/.next-cli-build/server/chunks/3399.js +1 -1
  602. package/app/.next-cli-build/server/chunks/3503.js +1 -0
  603. package/app/.next-cli-build/server/chunks/3958.js +6 -6
  604. package/app/.next-cli-build/server/chunks/{4432.js → 4013.js} +1 -1
  605. package/app/.next-cli-build/server/chunks/402.js +7 -7
  606. package/app/.next-cli-build/server/chunks/4123.js +1 -0
  607. package/app/.next-cli-build/server/chunks/427.js +40 -0
  608. package/app/.next-cli-build/server/chunks/4350.js +2 -2
  609. package/app/.next-cli-build/server/chunks/436.js +1 -0
  610. package/app/.next-cli-build/server/chunks/4746.js +1 -1
  611. package/app/.next-cli-build/server/chunks/4778.js +1 -1
  612. package/app/.next-cli-build/server/chunks/5210.js +1 -1
  613. package/app/.next-cli-build/server/chunks/5296.js +1 -0
  614. package/app/.next-cli-build/server/chunks/5870.js +1 -0
  615. package/app/.next-cli-build/server/chunks/5915.js +1 -0
  616. package/app/.next-cli-build/server/chunks/6053.js +2 -0
  617. package/app/.next-cli-build/server/chunks/607.js +1 -1
  618. package/app/.next-cli-build/server/chunks/6118.js +1 -1
  619. package/app/.next-cli-build/server/chunks/6328.js +1 -1
  620. package/app/.next-cli-build/server/chunks/6404.js +1 -1
  621. package/app/.next-cli-build/server/chunks/6684.js +1 -1
  622. package/app/.next-cli-build/server/chunks/6811.js +1 -0
  623. package/app/.next-cli-build/server/chunks/689.js +20 -6
  624. package/app/.next-cli-build/server/chunks/6977.js +2 -2
  625. package/app/.next-cli-build/server/chunks/6992.js +1 -1
  626. package/app/.next-cli-build/server/chunks/7478.js +2 -2
  627. package/app/.next-cli-build/server/chunks/7753.js +1 -1
  628. package/app/.next-cli-build/server/chunks/7812.js +1 -1
  629. package/app/.next-cli-build/server/chunks/8023.js +1 -1
  630. package/app/.next-cli-build/server/chunks/8049.js +2 -2
  631. package/app/.next-cli-build/server/chunks/8255.js +1 -0
  632. package/app/.next-cli-build/server/chunks/8347.js +1 -0
  633. package/app/.next-cli-build/server/chunks/9.js +1 -1
  634. package/app/.next-cli-build/server/chunks/9012.js +1 -1
  635. package/app/.next-cli-build/server/chunks/9083.js +2 -2
  636. package/app/.next-cli-build/server/chunks/9471.js +1 -0
  637. package/app/.next-cli-build/server/chunks/9483.js +1 -1
  638. package/app/.next-cli-build/server/chunks/9489.js +1 -1
  639. package/app/.next-cli-build/server/chunks/9760.js +1 -0
  640. package/app/.next-cli-build/server/chunks/9841.js +1 -0
  641. package/app/.next-cli-build/server/instrumentation.js +1 -1
  642. package/app/.next-cli-build/server/middleware-build-manifest.js +1 -1
  643. package/app/.next-cli-build/server/pages/404.html +1 -1
  644. package/app/.next-cli-build/server/pages/500.html +1 -1
  645. package/app/.next-cli-build/static/chunks/{5263-b89232068b3f9372.js → 5263-d090963f39b70ff1.js} +1 -1
  646. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/audit-proxy/page-7e36c7d76547e65b.js +21 -0
  647. package/app/cli/.build-home/AppData/Roaming/bluerouter/db/data.sqlite-shm +0 -0
  648. package/app/cli/.build-home/AppData/Roaming/bluerouter/db/data.sqlite-wal +0 -0
  649. package/app/package.json +1 -1
  650. package/package.json +1 -1
  651. package/app/.next-cli-build/server/chunks/2574.js +0 -1
  652. package/app/.next-cli-build/server/chunks/3522.js +0 -1
  653. package/app/.next-cli-build/server/chunks/4064.js +0 -40
  654. package/app/.next-cli-build/server/chunks/595.js +0 -1
  655. package/app/.next-cli-build/server/chunks/6487.js +0 -1
  656. package/app/.next-cli-build/server/chunks/6986.js +0 -1
  657. package/app/.next-cli-build/server/chunks/7007.js +0 -2
  658. package/app/.next-cli-build/server/chunks/7669.js +0 -1
  659. package/app/.next-cli-build/server/chunks/8178.js +0 -1
  660. package/app/.next-cli-build/server/chunks/8376.js +0 -2
  661. package/app/.next-cli-build/server/chunks/8833.js +0 -1
  662. package/app/.next-cli-build/server/chunks/9434.js +0 -1
  663. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/audit-proxy/page-43c2a844d20db416.js +0 -21
  664. /package/app/.next-cli-build/static/{0Dv6zNbjXmmBjIsBPEnA4 → WQv-4DqskV8QOExP__lHq}/_buildManifest.js +0 -0
  665. /package/app/.next-cli-build/static/{0Dv6zNbjXmmBjIsBPEnA4 → WQv-4DqskV8QOExP__lHq}/_ssgManifest.js +0 -0
  666. /package/app/cli/.build-home/AppData/Roaming/bluerouter/db/backups/{upgrade-5.3.87-to-5.4.0-5.4.0-20260823-220512 → upgrade-5.4.3-to-5.4.4-5.4.4-20260823-231626}/data.sqlite +0 -0
@@ -59,7 +59,7 @@ ${f(e.content)}`});continue}if("tool"===e.role){let a=f(e.content),d=e.tool_call
59
59
  \`\`\`json
60
60
  ${b}
61
61
  \`\`\`
62
- Respond ONLY with the JSON object, no other text.`)}else"json_object"===a.type&&j.push("You must respond with valid JSON. Respond ONLY with a JSON object, no other text.")}let k={type:"text",text:f.Co};if(j.length>0?h.system=[k,{type:"text",text:j.join("\n"),cache_control:{type:"ephemeral",ttl:"1h"}}]:h.system=[k],b.tools&&Array.isArray(b.tools)){for(let a of(h.tools=[],b.tools)){let b=a.type;if(b&&"function"!==b){h.tools.push(a);continue}let c=a.function??a,d=c.name,f=""+d;e.set(f,d),h.tools.push({name:f,description:c.description||"",input_schema:c.parameters||c.input_schema||{type:"object",properties:{},required:[]}})}h.tools.length>0&&(h.tools[h.tools.length-1].cache_control={type:"ephemeral",ttl:"1h"})}if(b.tool_choice&&(h.tool_choice=(d=b.tool_choice)?"object"==typeof d&&d.type?d:"auto"===d||"none"===d?{type:"auto"}:"required"===d?{type:"any"}:"object"==typeof d&&d.function?{type:"tool",name:d.function.name}:{type:"auto"}:{type:"auto"}),b.thinking&&(h.thinking={type:b.thinking.type||"enabled",...b.thinking.budget_tokens&&{budget_tokens:b.thinking.budget_tokens},...b.thinking.max_tokens&&{max_tokens:b.thinking.max_tokens}}),b.reasoning_effort&&!h.thinking){let a={none:0,low:4096,medium:8192,high:16384,xhigh:32768}[b.reasoning_effort.toLowerCase()];0===a||a&&(h.thinking={type:"enabled",budget_tokens:a})}return e.size>0&&(h._toolNameMap=e),h}function i(a){return"string"==typeof a?a:Array.isArray(a)?a.filter(a=>"text"===a.type).map(a=>a.text).join("\n"):""}function j(a,b,c){let d=h(a,b,c);return d.system&&Array.isArray(d.system)&&(d.system=d.system.filter(a=>!a.text||!a.text.includes("You are Claude Code")),0===d.system.length&&delete d.system),d.tools&&Array.isArray(d.tools)&&(d.tools=d.tools.map(a=>a.name&&a.name.startsWith("")?{...a,name:a.name.slice(0)}:a)),d.messages&&Array.isArray(d.messages)&&(d.messages=d.messages.map(a=>{if(!a.content||!Array.isArray(a.content))return a;let b=a.content.map(a=>"tool_use"===a.type&&a.name&&a.name.startsWith("")?{...a,name:a.name.slice(0)}:a);return{...a,content:b}})),d}(0,d.kz)(e.h.OPENAI,e.h.CLAUDE,h,null)},29675:(a,b,c)=>{c.r(b),c.d(b,{claudeToOpenAIResponse:()=>g});var d=c(46992),e=c(14170);function f(a,b,c=null){return{id:`chatcmpl-${a.messageId}`,object:"chat.completion.chunk",created:Math.floor(Date.now()/1e3),model:a.model,choices:[{index:0,delta:b,finish_reason:c}]}}function g(a,b){if(!a)return null;let c=[];switch(a.type){case"message_start":b.messageId=a.message?.id||`msg_${Date.now()}`,b.model=a.message?.model,b.toolCallIndex=0,c.push(f(b,{role:"assistant"}));break;case"content_block_start":{let d=a.content_block;if(d?.type==="server_tool_use"){b.serverToolBlockIndex=a.index;break}if(d?.type==="text")b.textBlockStarted=!0;else if(d?.type==="thinking")b.inThinkingBlock=!0,b.currentBlockIndex=a.index,c.push(f(b,{content:"<think>"}));else if(d?.type==="tool_use"){let e=b.toolCallIndex++,g=b.toolNameMap?.get(d.name)||d.name,h={index:e,id:d.id,type:"function",function:{name:g,arguments:""}};b.toolCalls.set(a.index,h),c.push(f(b,{tool_calls:[h]}))}break}case"content_block_delta":{if(a.index===b.serverToolBlockIndex)break;let d=a.delta;if(d?.type==="text_delta"&&d.text)c.push(f(b,{content:d.text}));else if(d?.type==="thinking_delta"&&d.thinking)c.push(f(b,{reasoning_content:d.thinking}));else if(d?.type==="input_json_delta"&&d.partial_json){let e=b.toolCalls.get(a.index);e&&(e.function.arguments+=d.partial_json,c.push(f(b,{tool_calls:[{index:e.index,id:e.id,function:{arguments:d.partial_json}}]})))}break}case"content_block_stop":if(a.index===b.serverToolBlockIndex){b.serverToolBlockIndex=-1;break}b.inThinkingBlock&&a.index===b.currentBlockIndex&&(c.push(f(b,{content:"</think>"})),b.inThinkingBlock=!1),b.textBlockStarted=!1,b.thinkingBlockStarted=!1;break;case"message_delta":if(a.usage&&"object"==typeof a.usage){let c="number"==typeof a.usage.input_tokens?a.usage.input_tokens:0,d="number"==typeof a.usage.output_tokens?a.usage.output_tokens:0,e="number"==typeof a.usage.cache_read_input_tokens?a.usage.cache_read_input_tokens:0,f="number"==typeof a.usage.cache_creation_input_tokens?a.usage.cache_creation_input_tokens:0,g=c+e+f;b.usage={prompt_tokens:g,completion_tokens:d,total_tokens:g+d,input_tokens:c,output_tokens:d},e>0&&(b.usage.cache_read_input_tokens=e),f>0&&(b.usage.cache_creation_input_tokens=f)}if(a.delta?.stop_reason){b.finishReason=function(a){switch(a){case"end_turn":case"stop_sequence":default:return"stop";case"max_tokens":return"length";case"tool_use":return"tool_calls"}}(a.delta.stop_reason);let d={id:`chatcmpl-${b.messageId}`,object:"chat.completion.chunk",created:Math.floor(Date.now()/1e3),model:b.model,choices:[{index:0,delta:{},finish_reason:b.finishReason}]};if(b.usage){d.usage={prompt_tokens:b.usage.prompt_tokens,completion_tokens:b.usage.completion_tokens,total_tokens:b.usage.total_tokens};let a=b.usage.cache_read_input_tokens,c=b.usage.cache_creation_input_tokens;(a>0||c>0)&&(d.usage.prompt_tokens_details={},a>0&&(d.usage.prompt_tokens_details.cached_tokens=a),c>0&&(d.usage.prompt_tokens_details.cache_creation_tokens=c))}c.push(d),b.finishReasonSent=!0}break;case"message_stop":if(!b.finishReasonSent){let a=b.finishReason||(b.toolCalls?.size>0?"tool_calls":"stop"),d=b.usage&&"object"==typeof b.usage?{usage:{prompt_tokens:b.usage.input_tokens||0,completion_tokens:b.usage.output_tokens||0,total_tokens:(b.usage.input_tokens||0)+(b.usage.output_tokens||0)}}:{};c.push({id:`chatcmpl-${b.messageId}`,object:"chat.completion.chunk",created:Math.floor(Date.now()/1e3),model:b.model,choices:[{index:0,delta:{},finish_reason:a}],...d}),b.finishReasonSent=!0}}return c.length>0?c:null}(0,d.kz)(e.h.CLAUDE,e.h.OPENAI,null,g)},32546:(a,b,c)=>{c.r(b),c.d(b,{geminiToOpenAIResponse:()=>f});var d=c(46992),e=c(14170);function f(a,b){if(!a)return null;let c=a.response||a;if(!c||!c.candidates?.[0])return null;let d=[],e=c.candidates[0],f=e.content;if(b.messageId||(b.messageId=c.responseId||`msg_${Date.now()}`,b.model=c.modelVersion||"gemini",b.functionIndex=0,d.push({id:`chatcmpl-${b.messageId}`,object:"chat.completion.chunk",created:Math.floor(Date.now()/1e3),model:b.model,choices:[{index:0,delta:{role:"assistant"},finish_reason:null}]})),f?.parts)for(let a of f.parts){let c=a.thoughtSignature||a.thought_signature,e=!0===a.thought;if(c){let c=void 0!==a.text&&""!==a.text,f=!!a.functionCall;if(c&&d.push({id:`chatcmpl-${b.messageId}`,object:"chat.completion.chunk",created:Math.floor(Date.now()/1e3),model:b.model,choices:[{index:0,delta:e?{reasoning_content:a.text}:{content:a.text},finish_reason:null}]}),f){let c=a.functionCall.name,e=b.toolNameMap?.get(c)||c,f=a.functionCall.args||{},g=b.functionIndex++,h={id:`${e}-${Date.now()}-${g}`,index:g,type:"function",function:{name:e,arguments:JSON.stringify(f)}};b.toolCalls.set(g,h),d.push({id:`chatcmpl-${b.messageId}`,object:"chat.completion.chunk",created:Math.floor(Date.now()/1e3),model:b.model,choices:[{index:0,delta:{tool_calls:[h]},finish_reason:null}]})}continue}if(void 0!==a.text&&""!==a.text&&d.push({id:`chatcmpl-${b.messageId}`,object:"chat.completion.chunk",created:Math.floor(Date.now()/1e3),model:b.model,choices:[{index:0,delta:{content:a.text},finish_reason:null}]}),a.functionCall){let c=a.functionCall.name,e=b.toolNameMap?.get(c)||c,f=a.functionCall.args||{},g=b.functionIndex++,h={id:`${e}-${Date.now()}-${g}`,index:g,type:"function",function:{name:e,arguments:JSON.stringify(f)}};b.toolCalls.set(g,h),d.push({id:`chatcmpl-${b.messageId}`,object:"chat.completion.chunk",created:Math.floor(Date.now()/1e3),model:b.model,choices:[{index:0,delta:{tool_calls:[h]},finish_reason:null}]})}let f=a.inlineData||a.inline_data;if(f?.data){let a=f.mimeType||f.mime_type||"image/png";d.push({id:`chatcmpl-${b.messageId}`,object:"chat.completion.chunk",created:Math.floor(Date.now()/1e3),model:b.model,choices:[{index:0,delta:{images:[{type:"image_url",image_url:{url:`data:${a};base64,${f.data}`}}]},finish_reason:null}]})}}let g=c.usageMetadata||a.usageMetadata;if(g&&"object"==typeof g){let a="number"==typeof g.cachedContentTokenCount?g.cachedContentTokenCount:0,c="number"==typeof g.promptTokenCount?g.promptTokenCount:0,d="number"==typeof g.thoughtsTokenCount?g.thoughtsTokenCount:0,e="number"==typeof g.candidatesTokenCount?g.candidatesTokenCount:0,f="number"==typeof g.totalTokenCount?g.totalTokenCount:0;0===e&&f>0&&(e=f-c-d)<0&&(e=0),b.usage={prompt_tokens:c,completion_tokens:e+d,total_tokens:f},a>0&&(b.usage.prompt_tokens_details={cached_tokens:a}),d>0&&(b.usage.completion_tokens_details={reasoning_tokens:d})}if(e.finishReason){let a=e.finishReason.toLowerCase();"stop"===a&&b.toolCalls.size>0&&(a="tool_calls");let c={id:`chatcmpl-${b.messageId}`,object:"chat.completion.chunk",created:Math.floor(Date.now()/1e3),model:b.model,choices:[{index:0,delta:{},finish_reason:a}]};b.usage&&(c.usage=b.usage),d.push(c),b.finishReason=a}return d.length>0?d:null}(0,d.kz)(e.h.GEMINI,e.h.OPENAI,null,f),(0,d.kz)(e.h.GEMINI_CLI,e.h.OPENAI,null,f),(0,d.kz)(e.h.ANTIGRAVITY,e.h.OPENAI,null,f),(0,d.kz)(e.h.VERTEX,e.h.OPENAI,null,f)},39006:a=>{a.exports={rE:"5.4.4"}},39536:(a,b,c)=>{c.d(b,{c:()=>n});var d=c(55511),e=c.n(d),f=c(5259),g=c(35024),h=c(75924),i=c(41004),j=c(80662),k=c(39609),l=c(47593);let m=Object.freeze({"gemini-3.7-flash":"Gemini 3.7 Flash"});class n extends f.H{constructor(){super("antigravity",g.xq.antigravity)}buildUrl(a,b,c=0){let d=this.getBaseUrls(),e=d[c]||d[0];return`${e}/v1internal:${b?"streamGenerateContent?alt=sse":"generateContent"}`}buildHeaders(a,b=!0,c=null){return{"Content-Type":"application/json",Authorization:`Bearer ${a.accessToken}`,"User-Agent":this.config.headers?.["User-Agent"]||h.K["User-Agent"],[h.Ox.name]:h.Ox.value,...c&&{"X-Machine-Session-Id":c},Accept:b?"text/event-stream":"application/json"}}transformRequest(a,b,c,d){let f=d?.projectId||this.generateProjectId(),g=b.request?.contents?.map(a=>{let b=a.role;a.parts?.some(a=>a.functionResponse)&&(b="user");let c=a.parts?.filter(a=>(!a.thought||!!a.functionCall)&&(!a.thoughtSignature||!!a.functionCall||!!a.text));return b!==a.role||c?.length!==a.parts?.length?{...a,role:b,parts:c}:a}),h=b.request?.tools;if(h&&h.length>0){let a=h.flatMap(a=>(a.functionDeclarations||[]).map(a=>({...a,name:function(a){if(!a)return"_unknown";let b=a.replace(/[^a-zA-Z0-9_.:\-]/g,"_");return/^[a-zA-Z_]/.test(b)||(b="_"+b),b.substring(0,64)}(a.name),parameters:a.parameters?(0,l.Yr)(structuredClone(a.parameters)):{type:"object",properties:{reason:{type:"string",description:"Brief explanation"}},required:["reason"]}})));h=a.length>0?[{functionDeclarations:a}]:[]}let{tools:i,toolConfig:k,...m}=b.request||{},n={...m.generationConfig||{}};n.maxOutputTokens>16384&&(n.maxOutputTokens=16384);let o={...m,generationConfig:n,...g&&{contents:g},...h&&{tools:h},sessionId:b.request?.sessionId||(0,j.RF)(d?.email||d?.connectionId),safetySettings:void 0,...h?.length>0&&{toolConfig:{functionCallingConfig:{mode:"VALIDATED"}}}};return{...b,project:f,model:a,userAgent:"antigravity",requestType:"agent",requestId:`agent-${e().randomUUID()}`,request:o}}async refreshCredentials(a,b,c=null){if(!a.refreshToken)return null;try{let d=await (0,k.proxyAwareFetch)(h.NA.google.token,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams({grant_type:"refresh_token",refresh_token:a.refreshToken,client_id:this.config.clientId,client_secret:this.config.clientSecret})},c);if(!d.ok)return null;let e=await d.json();return b?.info?.("TOKEN","Antigravity refreshed"),{accessToken:e.access_token,refreshToken:e.refresh_token||a.refreshToken,expiresIn:e.expires_in,projectId:a.projectId}}catch(a){return b?.error?.("TOKEN",`Antigravity refresh error: ${a.message}`),null}}generateProjectId(){let a=["useful","bright","swift","calm","bold"][Math.floor(5*Math.random())],b=["fuze","wave","spark","flow","core"][Math.floor(5*Math.random())];return`${a}-${b}-${e().randomUUID().slice(0,5)}`}generateSessionId(){return e().randomUUID()+Date.now().toString()}parseRetryHeaders(a){if(!a?.get)return null;let b=a.get("retry-after");if(b){let a=parseInt(b,10);if(!isNaN(a)&&a>0)return 1e3*a;let c=new Date(b);if(!isNaN(c.getTime())){let a=c.getTime()-Date.now();return a>0?a:null}}let c=a.get("x-ratelimit-reset-after");if(c){let a=parseInt(c,10);if(!isNaN(a)&&a>0)return 1e3*a}let d=a.get("x-ratelimit-reset");if(d){let a=1e3*parseInt(d,10)-Date.now();return a>0?a:null}return null}parseRetryFromErrorMessage(a){if(!a||"string"!=typeof a)return null;let b=a.match(/reset after (\d+h)?(\d+m)?(\d+s)?/i);if(!b)return null;let c=0;return b[1]&&(c+=3600*parseInt(b[1])*1e3),b[2]&&(c+=60*parseInt(b[2])*1e3),b[3]&&(c+=1e3*parseInt(b[3])),c>0?c:null}async resolveDynamicModelId(a,b,c=null,d=null){let e=m[a];if(!e||!b?.accessToken)return a;let f=a=>String(a||"").trim().toLowerCase(),g=f(e);for(let e of[...new Set([...this.getBaseUrls().map(a=>`${a}/v1internal:fetchAvailableModels`),"https://cloudcode-pa.googleapis.com/v1internal:fetchAvailableModels"])])try{let i=await (0,k.proxyAwareFetch)(e,{method:"POST",headers:{Authorization:`Bearer ${b.accessToken}`,"User-Agent":this.config.headers?.["User-Agent"]||h.K["User-Agent"],"Content-Type":"application/json","X-Client-Name":"antigravity","X-Client-Version":"1.107.0","x-request-source":"local"},body:JSON.stringify(b?.projectId?{project:b.projectId}:{})},c);if(!i.ok)continue;let j=await i.json(),l=Object.entries(j?.models||{}).filter(([,a])=>!a?.isInternal),m=l.find(([,a])=>f(a?.displayName)===g);if(m||(m=l.find(([,a])=>{let b=f(a?.displayName);return b.startsWith(g)&&b.includes("high")})),m||(m=l.find(([,a])=>f(a?.displayName).startsWith(g))),m||(m=l.find(([a])=>{let b=f(a);return b.includes("gemini")&&b.includes("3.7")&&b.includes("flash")})),m?.[0]){let b=m[0];return d?.debug?.("MODEL",`Resolved Antigravity ${a} -> ${b}`),b}}catch(a){d?.debug?.("MODEL",`Antigravity model discovery failed on ${e}: ${a.message}`)}return d?.debug?.("MODEL",`No Antigravity upstream id found for ${a}; using requested id`),a}async execute({model:a,body:b,stream:c,credentials:d,signal:e,log:f,proxyOptions:g=null}){let h=await this.resolveDynamicModelId(a,d,g,f),j=this.getFallbackCount(),l=null,m=0,n={},o={};for(let a=0;a<j;a++){let p=this.buildUrl(h,c,a),q=this.transformRequest(h,b,c,d),r=q.request?.sessionId,s=this.buildHeaders(d,c,r);n[a]||(n[a]=0),o[a]||(o[a]=0);try{let b=await (0,k.proxyAwareFetch)(p,{method:"POST",headers:s,body:JSON.stringify(q),signal:e},g);if(b.status===i.gx.RATE_LIMITED||b.status===i.gx.SERVICE_UNAVAILABLE){let c=this.parseRetryHeaders(b.headers);if(!c)try{let a=await b.clone().text(),d=JSON.parse(a),e=d?.error?.message||d?.message||"";c=this.parseRetryFromErrorMessage(e)}catch(a){}if(c&&c<=1e4&&o[a]<3){o[a]++,f?.debug?.("RETRY",`${b.status} with Retry-After: ${Math.ceil(c/1e3)}s, waiting... (${o[a]}/3)`),await new Promise(a=>setTimeout(a,c)),a--;continue}if(b.status===i.gx.RATE_LIMITED&&(!c||0===c)&&n[a]<3){n[a]++;let b=Math.min(1e3*2**n[a],1e4);f?.debug?.("RETRY",`429 auto retry ${n[a]}/3 after ${b/1e3}s`),await new Promise(a=>setTimeout(a,b)),a--;continue}if(f?.debug?.("RETRY",`${b.status}, Retry-After ${c?`too long (${Math.ceil(c/1e3)}s)`:"missing"}, trying fallback`),m=b.status,a+1<j)continue}if(this.shouldRetry(b.status,a)){f?.debug?.("RETRY",`${b.status} on ${p}, trying fallback ${a+1}`),m=b.status;continue}return{response:b,url:p,headers:s,transformedBody:q}}catch(b){if(l=b,a+1<j){f?.debug?.("RETRY",`Error on ${p}, trying fallback ${a+1}`);continue}throw b}}throw l||Error(`All ${j} URLs failed with status ${m}`)}static cloakTools(a,b=null){let c=a.request?.tools;if(!c||0===c.length)return{cloakedBody:a,toolNameMap:null};let d="github-copilot"===b,e=new Map,f=[],g=new Set(o.map(a=>a.name));for(let a of c)if(a.functionDeclarations)for(let b of a.functionDeclarations){if(d&&h.J5.has(b.name)||d&&g.has(b.name))continue;if(h.J5.has(b.name)){f.push(b);continue}let a=`${b.name}${h.QH}`;e.set(a,b.name),f.push({...b,name:a})}let i=[],j=new Set;for(let a of[...f,...o])!a?.name||j.has(a.name)||(j.add(a.name),i.push(a));let k=a.request?.contents?.map(a=>{if(!a.parts)return a;let b=a.parts.map(a=>a.functionCall&&!h.J5.has(a.functionCall.name)?{...a,functionCall:{...a.functionCall,name:`${a.functionCall.name}${h.QH}`}}:a.functionResponse&&!h.J5.has(a.functionResponse.name)?{...a,functionResponse:{...a.functionResponse,name:`${a.functionResponse.name}${h.QH}`}}:a);return{...a,parts:b}});return{cloakedBody:{...a,request:{...a.request,tools:[{functionDeclarations:i}],contents:k||a.request.contents}},toolNameMap:e}}}let o=[{name:"browser_subagent",description:"This tool is currently unavailable.",parameters:{type:"OBJECT",properties:{},required:[]}},{name:"command_status",description:"This tool is currently unavailable.",parameters:{type:"OBJECT",properties:{},required:[]}},{name:"find_by_name",description:"This tool is currently unavailable.",parameters:{type:"OBJECT",properties:{},required:[]}},{name:"generate_image",description:"This tool is currently unavailable.",parameters:{type:"OBJECT",properties:{},required:[]}},{name:"grep_search",description:"This tool is currently unavailable.",parameters:{type:"OBJECT",properties:{},required:[]}},{name:"list_dir",description:"This tool is currently unavailable.",parameters:{type:"OBJECT",properties:{},required:[]}},{name:"list_resources",description:"This tool is currently unavailable.",parameters:{type:"OBJECT",properties:{},required:[]}},{name:"mcp_sequential-thinking_sequentialthinking",description:"This tool is currently unavailable.",parameters:{type:"OBJECT",properties:{},required:[]}},{name:"multi_replace_file_content",description:"This tool is currently unavailable.",parameters:{type:"OBJECT",properties:{},required:[]}},{name:"notify_user",description:"This tool is currently unavailable.",parameters:{type:"OBJECT",properties:{},required:[]}},{name:"read_resource",description:"This tool is currently unavailable.",parameters:{type:"OBJECT",properties:{},required:[]}},{name:"read_terminal",description:"This tool is currently unavailable.",parameters:{type:"OBJECT",properties:{},required:[]}},{name:"read_url_content",description:"This tool is currently unavailable.",parameters:{type:"OBJECT",properties:{},required:[]}},{name:"replace_file_content",description:"This tool is currently unavailable.",parameters:{type:"OBJECT",properties:{},required:[]}},{name:"run_command",description:"This tool is currently unavailable.",parameters:{type:"OBJECT",properties:{},required:[]}},{name:"search_web",description:"This tool is currently unavailable.",parameters:{type:"OBJECT",properties:{},required:[]}},{name:"send_command_input",description:"This tool is currently unavailable.",parameters:{type:"OBJECT",properties:{},required:[]}},{name:"task_boundary",description:"This tool is currently unavailable.",parameters:{type:"OBJECT",properties:{},required:[]}},{name:"view_content_chunk",description:"This tool is currently unavailable.",parameters:{type:"OBJECT",properties:{},required:[]}},{name:"view_file",description:"This tool is currently unavailable.",parameters:{type:"OBJECT",properties:{},required:[]}},{name:"write_to_file",description:"This tool is currently unavailable.",parameters:{type:"OBJECT",properties:{},required:[]}}]},39551:(a,b,c)=>{c.r(b),c.d(b,{ollamaBodyToOpenAI:()=>i,ollamaToOpenAI:()=>f});var d=c(46992),e=c(14170);function f(a,b){if(!a||"object"!=typeof a)return null;b.ollama||(b.ollama={id:`chatcmpl-${Date.now()}`,created:Math.floor(Date.now()/1e3),model:a.model||b.model});let{id:c,created:d,model:e}=b.ollama;if(a.done){let f=g(a),h="stop";return("tool_calls"===a.done_reason||b.hadToolCalls)&&(h="tool_calls"),{id:c,object:"chat.completion.chunk",created:d,model:e,choices:[{index:0,delta:{},finish_reason:h}],usage:f}}let f=a.message;if(!f)return null;let i="string"==typeof f.content?f.content:"",j="string"==typeof f.thinking?f.thinking:"",k=Array.isArray(f.tool_calls)?f.tool_calls:null;if(!i&&!j&&!k)return null;i&&(b.accumulatedContent=(b.accumulatedContent||"")+i),j&&(b.accumulatedThinking=(b.accumulatedThinking||"")+j);let l={};return i&&(l.content=i),j&&(l.reasoning_content=j),k&&(b.hadToolCalls=!0,l.tool_calls=h(k)),{id:c,object:"chat.completion.chunk",created:d,model:e,choices:[{index:0,delta:l,finish_reason:null}]}}function g(a){return{prompt_tokens:a.prompt_eval_count||0,completion_tokens:a.eval_count||0,total_tokens:(a.prompt_eval_count||0)+(a.eval_count||0)}}function h(a){return a.map((a,b)=>({index:a.function?.index??b,id:a.id||`call_${b}_${Date.now()}`,type:"function",function:{name:a.function?.name||"",arguments:"string"==typeof a.function?.arguments?a.function.arguments:JSON.stringify(a.function?.arguments||{})}}))}function i(a){let b=a.message||{},c=b.content||"",d=b.thinking||"",e=Array.isArray(b.tool_calls)?b.tool_calls:[],f={role:"assistant"};c&&(f.content=c),d&&(f.reasoning_content=d),e.length>0&&(f.tool_calls=h(e)),f.content||f.tool_calls||(f.content="");let i=a.done_reason||"stop";return e.length>0&&(i="tool_calls"),{id:`chatcmpl-${Date.now()}`,object:"chat.completion",created:Math.floor(Date.now()/1e3),model:a.model||"ollama",choices:[{index:0,message:f,finish_reason:i}],usage:g(a)}}(0,d.kz)(e.h.OLLAMA,e.h.OPENAI,null,f)},42654:(a,b,c)=>{c.d(b,{m:()=>d});function d(a){return"string"==typeof a?[{type:"message",role:"user",content:[{type:"input_text",text:""===a.trim()?"...":a}]}]:Array.isArray(a)?0===a.length?[{type:"message",role:"user",content:[{type:"input_text",text:"..."}]}]:a:null}},46992:(a,b,c)=>{c.d(b,{Ws:()=>x,Ai:()=>y,nZ:()=>w,kz:()=>s,GH:()=>u,Y8:()=>v});var d=c(14170);let e=/^[a-zA-Z0-9_-]+$/;function f(a=0,b=0,c=""){let d=c?`_${c.replace(/[^a-zA-Z0-9_-]/g,"")}`:"";return`call_msg${a}_tc${b}${d}`}function g(a){if(!a||"string"!=typeof a)return null;let b=a.replace(/[^a-zA-Z0-9_-]/g,"");return b.length>0?b:null}var h=c(96281);c(3156);var i=c(55399),j=c(80662);let k=new Set(["minimax","minimax-cn"]),l=/(^|\r?\n)[ \t]*<total_tokens>[ \t]*[\d,]+[ \t]+tokens[ \t]+left[ \t]*<\/total_tokens>[ \t]*(?=\r?\n|$)/gi;function m(a){return"string"==typeof a&&0!==a.length&&a.includes("<total_tokens>")?a.replace(l,"$1"):a}let n=["text","image_url","image","input_audio","audio_url"];var o=c(57647);c(39536);let p=new Map,q=new Map,r=!1;function s(a,b,c,d){let e=`${a}:${b}`;c&&p.set(e,c),d&&q.set(e,d)}function t(){r||(r=!0,c(60983),c(19979),c(52638),c(97102),c(59611),c(54817),c(65377),c(10010),c(13595),c(74447),c(97821),c(29675),c(66159),c(32546),c(89475),c(4845),c(52830),c(65651),c(39551),c(47723))}function u(a,b,c,l,q=!0,r=null,s=null,v=null,w=[],x=null,y=null){t();let z=structuredClone(l);if(a===d.h.CLAUDE&&b!==d.h.CLAUDE&&(z=function(a){if(!a||"object"!=typeof a)return a;let b=function(a){if("string"==typeof a)return m(a);if(!Array.isArray(a))return a;let b=!1,c=a.map(a=>{if(!a||"text"!==a.type||"string"!=typeof a.text)return a;let c=m(a.text);return c===a.text?a:(b=!0,{...a,text:c})});return b?c:a}(a.system),c=a.messages;if(Array.isArray(a.messages)){let b=!1,d=a.messages.map(a=>{let c=function(a){if(!a||"assistant"!==a.role&&"system"!==a.role)return a;if("string"==typeof a.content){let b=m(a.content);return b===a.content?a:{...a,content:b}}if(!Array.isArray(a.content))return a;let b=!1,c=a.content.map(a=>{if(!a||"text"!==a.type||"string"!=typeof a.text)return a;let c=m(a.text);return c===a.text?a:(b=!0,{...a,text:c})});return b?{...a,content:c}:a}(a);return c!==a&&(b=!0),c});b&&(c=d)}let d=b!==a.system,e=c!==a.messages;return d||e?{...a,...d?{system:b}:{},...e?{messages:c}:{}}:a}(z)),!function(a,b=[]){if(!b.length||!a.messages||!Array.isArray(a.messages))return;let c=new Set(["image_url","image"]),d=new Set(["audio_url","input_audio"]),e=a=>c.has(a)?b.includes("image"):!!d.has(a)&&b.includes("audio");for(let b of a.messages)Array.isArray(b.content)&&(b.content=b.content.filter(a=>!e(a.type)),0===b.content.length&&(b.content=""))}(z,w),(0,o.SZ)(z),!function(a){if(a.messages&&Array.isArray(a.messages))for(let b=0;b<a.messages.length;b++){let c=a.messages[b];if("assistant"===c.role&&c.tool_calls&&Array.isArray(c.tool_calls))for(let a=0;a<c.tool_calls.length;a++){let d=c.tool_calls[a];if(!d.id||!e.test(d.id)){let c=g(d.id);d.id=c||f(b,a,d.function?.name)}d.type||(d.type="function"),d.function?.arguments&&"string"!=typeof d.function.arguments&&(d.function.arguments=JSON.stringify(d.function.arguments))}if("tool"===c.role&&c.tool_call_id&&!e.test(c.tool_call_id)){let a=g(c.tool_call_id);c.tool_call_id=a||f(b,0)}if(Array.isArray(c.content))for(let a=0;a<c.content.length;a++){let d=c.content[a];if("tool_use"===d.type&&d.id&&!e.test(d.id)){let c=g(d.id);d.id=c||f(b,a,d.name)}if("tool_result"===d.type&&d.tool_use_id&&!e.test(d.tool_use_id)){let c=g(d.tool_use_id);d.tool_use_id=c||f(b,a)}}}}(z),!function(a){if(!a.messages||!Array.isArray(a.messages))return;let b=[];for(let c=0;c<a.messages.length;c++){let d=a.messages[c],e=a.messages[c+1];b.push(d);let f=function(a){if("assistant"!==a.role)return[];let b=[];if(a.tool_calls&&Array.isArray(a.tool_calls))for(let c of a.tool_calls)c.id&&b.push(c.id);if(Array.isArray(a.content))for(let c of a.content)"tool_use"===c.type&&c.id&&b.push(c.id);return b}(d);if(0!==f.length&&e&&!function(a,b){if(!a||!b.length)return!1;if("tool"===a.role&&a.tool_call_id)return b.includes(a.tool_call_id);if("user"===a.role&&Array.isArray(a.content)){for(let c of a.content)if("tool_result"===c.type&&b.includes(c.tool_use_id))return!0}return!1}(e,f))for(let a of f)b.push({role:"tool",tool_call_id:a,content:""})}a.messages=b}(z),a!==b){if(a!==d.h.OPENAI){let b=p.get(`${a}:${d.h.OPENAI}`);b&&(z=b(c,z,q,r),v?.logOpenAIRequest?.(z))}if(b!==d.h.OPENAI){let a=p.get(`${d.h.OPENAI}:${b}`);a&&(z=a(c,z,q,r))}}if(b===d.h.OPENAI&&(z=function(a){if(!a.messages||!Array.isArray(a.messages))return a;if(a.messages=a.messages.map(a=>{if("developer"===a.role&&(a={...a,role:"system"}),"tool"===a.role||"assistant"===a.role&&a.tool_calls||"string"==typeof a.content)return a;if(Array.isArray(a.content)){let b=[];for(let c of a.content)if("thinking"!==c.type&&"redacted_thinking"!==c.type){if(n.includes(c.type)){let{signature:a,cache_control:d,...e}=c;b.push(e)}else if("tool_use"===c.type)continue;else if("tool_result"===c.type){let{signature:a,cache_control:d,...e}=c;b.push(e)}}return 0===b.length&&b.push({type:"text",text:""}),{...a,content:b}}return a}),a.messages=a.messages.filter(a=>"tool"===a.role||"assistant"===a.role&&!!a.tool_calls||("string"==typeof a.content?""!==a.content.trim():!Array.isArray(a.content)||a.content.some(a=>"text"===a.type&&a.text?.trim()||"text"!==a.type))),a.tools&&Array.isArray(a.tools)&&0===a.tools.length&&delete a.tools,a.tools&&Array.isArray(a.tools)&&a.tools.length>0&&(a.tools=a.tools.map(a=>"function"===a.type&&a.function?a:a.name&&(a.input_schema||a.description)?{type:"function",function:{name:a.name,description:String(a.description||""),parameters:a.input_schema||{type:"object",properties:{}}}}:a.functionDeclarations&&Array.isArray(a.functionDeclarations)?a.functionDeclarations.map(a=>({type:"function",function:{name:a.name,description:String(a.description||""),parameters:a.parameters||{type:"object",properties:{}}}})):a).flat()),a.tool_choice&&"object"==typeof a.tool_choice){let b=a.tool_choice;"auto"===b.type?a.tool_choice="auto":"any"===b.type?a.tool_choice="required":"tool"===b.type&&b.name&&(a.tool_choice={type:"function",function:{name:b.name}})}return a}(z)),b===d.h.CLAUDE&&(z=function(a,b=null,c=null,d=null){if(k.has(b)&&delete a.output_config,a.system&&Array.isArray(a.system)&&(a.system=a.system.map((b,c)=>{let{cache_control:d,...e}=b;return c===a.system.length-1?{...e,cache_control:{type:"ephemeral",ttl:"1h"}}:e})),a.messages&&Array.isArray(a.messages)){let c=a.messages.length,d=[];for(let b=0;b<c;b++){let e=a.messages[b];if(Array.isArray(e.content))for(let a of e.content)delete a.cache_control;(b===c-1&&"assistant"===e.role||"string"==typeof e.content&&e.content.trim()||Array.isArray(e.content)&&e.content.some(a=>"text"===a.type&&a.text?.trim()||"tool_use"===a.type||"tool_result"===a.type))&&d.push(e)}d=function(a){if(a.length<=1)return a;for(let b of a)if("assistant"===b.role&&Array.isArray(b.content)&&b.content.some(a=>"tool_use"===a.type)){let a=[],c=!1;for(let d of b.content)"tool_use"===d.type?(c=!0,a.push(d)):"thinking"===d.type||"redacted_thinking"===d.type?a.push(d):c||a.push(d);b.content=a}let b=[];for(let c of a){let a=b[b.length-1];if(a&&a.role===c.role){let b=Array.isArray(a.content)?a.content:[{type:"text",text:a.content}],d=Array.isArray(c.content)?c.content:[{type:"text",text:c.content}];a.content=[...b.filter(a=>"tool_result"===a.type),...d.filter(a=>"tool_result"===a.type),...b.filter(a=>"tool_result"!==a.type),...d.filter(a=>"tool_result"!==a.type)]}else{let a=Array.isArray(c.content)?c.content:[{type:"text",text:c.content}];b.push({role:c.role,content:[...a]})}}return b}(d),a.messages=d;let e=d[d.length-1],f=e?.role==="user",g=a.thinking?.type==="enabled"&&f,i=!1;for(let a=d.length-1;a>=0;a--){let c=d[a];if("assistant"===c.role&&Array.isArray(c.content)){if(!i&&c.content.length>0){for(let a=c.content.length-1;a>=0;a--){let b=c.content[a];if("thinking"!==b.type&&"redacted_thinking"!==b.type){b.cache_control={type:"ephemeral"};break}}i=!0}if("claude"===b||b?.startsWith("anthropic-compatible")){let a=!1,b=!1;for(let d of c.content)("thinking"===d.type||"redacted_thinking"===d.type)&&(d.signature=h.xr,b=!0),"tool_use"===d.type&&(a=!0);g&&!b&&a&&c.content.unshift({type:"thinking",thinking:".",signature:h.xr})}}}}if(a.tools&&Array.isArray(a.tools)&&("claude"!==b&&(a.tools=a.tools.filter(a=>!a.type||"function"===a.type)),a.tools=a.tools.map((b,c)=>{let{cache_control:d,...e}=b;return c===a.tools.length-1?{...e,cache_control:{type:"ephemeral",ttl:"1h"}}:e}),0===a.tools.length&&(delete a.tools,delete a.tool_choice)),("claude"===b||b?.startsWith("anthropic-compatible"))&&c){let b=d?(0,j.RF)(d):null;a=(0,i.fO)(a,c,b)}return a}(z,s,r?.accessToken||r?.apiKey||null,x)),"claude"===s){let a=r?.accessToken||r?.apiKey||null;if(a?.includes("sk-ant-oat")){let{body:a,toolNameMap:b}=(0,i.Az)(z);z=a,b?.size>0&&(z._toolNameMap=b)}}return z}function v(a,b,c,e){if(t(),b===a)return[c];let f=[c],g=null;if(a!==d.h.OPENAI){let b=q.get(`${a}:${d.h.OPENAI}`);if(b){f=[];let a=b(c,e);a&&(g=f=Array.isArray(a)?a:[a])}}if(b!==d.h.OPENAI){let a=q.get(`${d.h.OPENAI}:${b}`);if(a){let b=[];for(let c of f){let d=a(c,e);d&&b.push(...Array.isArray(d)?d:[d])}f=b}}return g&&b!==d.h.OPENAI&&a!==d.h.OPENAI&&(f._openaiIntermediate=g),f}function w(a,b){return a!==b}function x(a){let b={messageId:null,model:null,textBlockStarted:!1,thinkingBlockStarted:!1,inThinkingBlock:!1,currentBlockIndex:null,toolCalls:new Map,finishReason:null,finishReasonSent:!1,usage:null,contentBlockIndex:-1};return a===d.h.OPENAI_RESPONSES?{...b,seq:0,responseId:`resp_${Date.now()}`,created:Math.floor(Date.now()/1e3),started:!1,msgTextBuf:{},msgItemAdded:{},msgContentAdded:{},msgItemDone:{},reasoningId:"",reasoningIndex:-1,reasoningBuf:"",reasoningPartAdded:!1,reasoningDone:!1,inThinking:!1,funcArgsBuf:{},funcNames:{},funcCallIds:{},funcArgsDone:{},funcItemDone:{},completedSent:!1}:b}function y(){t()}},47593:(a,b,c)=>{c.d(b,{KZ:()=>i,S6:()=>f,Yr:()=>m,f6:()=>j,fc:()=>e,kU:()=>g,pT:()=>h,w_:()=>k});let d=["minLength","maxLength","exclusiveMinimum","exclusiveMaximum","minItems","maxItems","format","default","examples","$schema","$defs","definitions","const","$ref","$comment","additionalProperties","propertyNames","patternProperties","enumDescriptions","anyOf","oneOf","allOf","not","dependencies","dependentSchemas","dependentRequired","title","if","then","else","contentMediaType","contentEncoding","cornerRadius","fillColor","fontFamily","fontSize","fontWeight","gap","padding","strokeColor","strokeThickness","textColor"],e=[{category:"HARM_CATEGORY_HATE_SPEECH",threshold:"OFF"},{category:"HARM_CATEGORY_DANGEROUS_CONTENT",threshold:"OFF"},{category:"HARM_CATEGORY_SEXUALLY_EXPLICIT",threshold:"OFF"},{category:"HARM_CATEGORY_HARASSMENT",threshold:"OFF"},{category:"HARM_CATEGORY_CIVIC_INTEGRITY",threshold:"OFF"}];function f(a){let b=[];if("string"==typeof a)b.push({text:a});else if(Array.isArray(a)){for(let c of a)if("text"===c.type)b.push({text:c.text});else if("image_url"===c.type&&c.image_url?.url?.startsWith("data:")){let a=c.image_url.url,d=a.indexOf(",");if(-1!==d){let c=a.substring(5,d),e=a.substring(d+1),f=c.split(";")[0];b.push({inlineData:{mime_type:f,data:e}})}}else if("image_url"===c.type&&c.image_url?.url&&(c.image_url.url.startsWith("http://")||c.image_url.url.startsWith("https://")))b.push({fileData:{fileUri:c.image_url.url,mimeType:"image/*"}});else if("input_audio"===c.type&&c.input_audio?.data){let a=c.input_audio.format||"wav",d="mp3"===a?"audio/mpeg":`audio/${a}`;b.push({inlineData:{mime_type:d,data:c.input_audio.data}})}else if("audio_url"===c.type&&c.audio_url?.url?.startsWith("data:")){let a=c.audio_url.url,d=a.indexOf(",");if(-1!==d){let c=a.substring(5,d),e=a.substring(d+1),f=c.split(";")[0];b.push({inlineData:{mime_type:f,data:e}})}}}return b}function g(a){return"string"==typeof a?a:Array.isArray(a)?a.filter(a=>"text"===a.type).map(a=>a.text).join(""):""}function h(a){if("string"!=typeof a)return a;try{return JSON.parse(a)}catch{return null}}function i(){return`agent-${crypto.randomUUID()}`}function j(){return crypto.randomUUID()+Date.now().toString()}function k(){let a=["useful","bright","swift","calm","bold"],b=["fuze","wave","spark","flow","core"],c=a[Math.floor(Math.random()*a.length)],d=b[Math.floor(Math.random()*b.length)];return`${c}-${d}-${crypto.randomUUID().slice(0,5)}`}function l(a){let b=0,c=-1;for(let d=0;d<a.length;d++){let e=a[d],f=0,g=e.type;"object"===g||e.properties?f=3:"array"===g||e.items?f=2:g&&"null"!==g&&(f=1),f>c&&(c=f,b=d)}return b}function m(a){return a&&"object"==typeof a&&(!function a(b){if(b&&"object"==typeof b)for(let c of(void 0===b.const||b.enum||(b.enum=[b.const],delete b.const),Object.values(b)))c&&"object"==typeof c&&a(c)}(a),!function a(b){if(b&&"object"==typeof b)for(let c of(b.enum&&Array.isArray(b.enum)&&(b.enum=b.enum.map(a=>String(a)),b.type||(b.type="string")),Object.values(b)))c&&"object"==typeof c&&a(c)}(a),!function a(b){if(b&&"object"==typeof b){if(b.allOf&&Array.isArray(b.allOf)){let a={};for(let c of b.allOf)if(c.properties&&(a.properties||(a.properties={}),Object.assign(a.properties,c.properties)),c.required&&Array.isArray(c.required))for(let b of(a.required||(a.required=[]),c.required))a.required.includes(b)||a.required.push(b);delete b.allOf,a.properties&&(b.properties={...b.properties,...a.properties}),a.required&&(b.required=[...b.required||[],...a.required])}for(let c of Object.values(b))c&&"object"==typeof c&&a(c)}}(a),!function a(b){if(b&&"object"==typeof b){if(b.anyOf&&Array.isArray(b.anyOf)&&b.anyOf.length>0){let a=b.anyOf.filter(a=>a&&"null"!==a.type);if(a.length>0){let c=l(a),d=a[c];delete b.anyOf,Object.assign(b,d)}}if(b.oneOf&&Array.isArray(b.oneOf)&&b.oneOf.length>0){let a=b.oneOf.filter(a=>a&&"null"!==a.type);if(a.length>0){let c=l(a),d=a[c];delete b.oneOf,Object.assign(b,d)}}for(let c of Object.values(b))c&&"object"==typeof c&&a(c)}}(a),!function a(b){if(b&&"object"==typeof b){if(b.type&&Array.isArray(b.type)){let a=b.type.filter(a=>"null"!==a);b.type=a.length>0?a[0]:"string"}for(let c of Object.values(b))c&&"object"==typeof c&&a(c)}}(a),!function a(b){if(b&&"object"==typeof b)for(let c of(b.properties&&!b.type&&(b.type="object"),Object.values(b)))c&&"object"==typeof c&&a(c)}(a),!function a(b,c){if(b&&"object"==typeof b){if(Array.isArray(b)){for(let d of b)a(d,c);return}for(let d of Object.keys(b)){if(c.includes(d)||d.startsWith("x-")){delete b[d];continue}let e=b[d];e&&"object"==typeof e&&a(e,c)}}}(a,d),!function a(b){if(b&&"object"==typeof b){if(b.required&&Array.isArray(b.required)&&b.properties){let a=b.required.filter(a=>Object.prototype.hasOwnProperty.call(b.properties,a));0===a.length?delete b.required:b.required=a}for(let c of Object.values(b))c&&"object"==typeof c&&a(c)}}(a),!function a(b){if(b&&"object"==typeof b)for(let c of("object"!==b.type||b.properties&&0!==Object.keys(b.properties).length||(b.properties={reason:{type:"string",description:"Brief explanation of why you are calling this tool"}},b.required=["reason"]),Object.values(b)))c&&"object"==typeof c&&a(c)}(a)),a}},47723:(a,b,c)=>{c.r(b),c.d(b,{convertCommandCodeToOpenAI:()=>h});var d=c(46992),e=c(14170);function f(a,b,c=null){return{id:a.responseId,object:"chat.completion.chunk",created:a.created,model:a.model,choices:[{index:0,delta:b,finish_reason:c}]}}function g(a){switch(a){case"stop":case"error":return"stop";case"length":return"length";case"tool-calls":case"tool_use":return"tool_calls";case"content-filter":return"content_filter";default:return a||"stop"}}function h(a,b){var c;if(!a)return null;if(a&&"object"==typeof a&&"chat.completion.chunk"===a.object)return a;let d=a;if("string"==typeof a){let b=a.trim();if(!b)return null;let c=b.startsWith("data:")?b.slice(5).trim():b;if(!c||"[DONE]"===c)return null;try{d=JSON.parse(c)}catch{return null}}if(!d||"object"!=typeof d||!d.type)return null;c=d.model,b.responseId||(b.responseId=`chatcmpl-${Date.now()}`,b.created=Math.floor(Date.now()/1e3),b.model=b.model||c||"commandcode",b.chunkIndex=0,b.toolIndex=0,b.toolIndexById=new Map,b.openTools=new Set,b.openText=!1,b.finishReason=null,b.usage=null);let e=[];switch(d.type){case"text-delta":{let a=d.text||d.delta||"";if(!a)break;let c=0===b.chunkIndex?{role:"assistant",content:a}:{content:a};b.chunkIndex++,b.openText=!0,e.push(f(b,c));break}case"reasoning-delta":{let a=d.text||"";if(!a)break;let c=0===b.chunkIndex?{role:"assistant",reasoning_content:a}:{reasoning_content:a};b.chunkIndex++,e.push(f(b,c));break}case"tool-input-start":{let a=d.id||d.toolCallId||`call_${Date.now()}_${b.toolIndex}`,c=b.toolIndexById.get(a);null==c&&(c=b.toolIndex++,b.toolIndexById.set(a,c)),b.openTools.add(a);let g={...0===b.chunkIndex?{role:"assistant"}:{},tool_calls:[{index:c,id:a,type:"function",function:{name:d.toolName||"",arguments:""}}]};b.chunkIndex++,e.push(f(b,g));break}case"tool-input-delta":{let a=d.id||d.toolCallId,c=b.toolIndexById.get(a);if(null==c)break;let g={tool_calls:[{index:c,function:{arguments:d.delta||d.inputTextDelta||""}}]};e.push(f(b,g));break}case"tool-call":{let a=d.toolCallId;if(b.toolIndexById.has(a))break;let c=b.toolIndex++;b.toolIndexById.set(a,c);let g="string"==typeof d.input?d.input:JSON.stringify(d.input??{}),h={...0===b.chunkIndex?{role:"assistant"}:{},tool_calls:[{index:c,id:a,type:"function",function:{name:d.toolName||"",arguments:g}}]};b.chunkIndex++,e.push(f(b,h));break}case"finish-step":b.finishReason=g(d.finishReason),d.usage&&(b.usage=d.usage);break;case"finish":{let a=b.finishReason||g(d.finishReason||"stop"),c=f(b,{},a),h=d.totalUsage||b.usage;h&&(c.usage={prompt_tokens:h.inputTokens??0,completion_tokens:h.outputTokens??0,total_tokens:h.totalTokens??(h.inputTokens??0)+(h.outputTokens??0)}),e.push(c);break}case"error":{b.finishReason="stop";let a=d.error??d.message??"unknown",c="string"==typeof a?a:JSON.stringify(a);e.push(f(b,{content:`
62
+ Respond ONLY with the JSON object, no other text.`)}else"json_object"===a.type&&j.push("You must respond with valid JSON. Respond ONLY with a JSON object, no other text.")}let k={type:"text",text:f.Co};if(j.length>0?h.system=[k,{type:"text",text:j.join("\n"),cache_control:{type:"ephemeral",ttl:"1h"}}]:h.system=[k],b.tools&&Array.isArray(b.tools)){for(let a of(h.tools=[],b.tools)){let b=a.type;if(b&&"function"!==b){h.tools.push(a);continue}let c=a.function??a,d=c.name,f=""+d;e.set(f,d),h.tools.push({name:f,description:c.description||"",input_schema:c.parameters||c.input_schema||{type:"object",properties:{},required:[]}})}h.tools.length>0&&(h.tools[h.tools.length-1].cache_control={type:"ephemeral",ttl:"1h"})}if(b.tool_choice&&(h.tool_choice=(d=b.tool_choice)?"object"==typeof d&&d.type?d:"auto"===d||"none"===d?{type:"auto"}:"required"===d?{type:"any"}:"object"==typeof d&&d.function?{type:"tool",name:d.function.name}:{type:"auto"}:{type:"auto"}),b.thinking&&(h.thinking={type:b.thinking.type||"enabled",...b.thinking.budget_tokens&&{budget_tokens:b.thinking.budget_tokens},...b.thinking.max_tokens&&{max_tokens:b.thinking.max_tokens}}),b.reasoning_effort&&!h.thinking){let a={none:0,low:4096,medium:8192,high:16384,xhigh:32768}[b.reasoning_effort.toLowerCase()];0===a||a&&(h.thinking={type:"enabled",budget_tokens:a})}return e.size>0&&(h._toolNameMap=e),h}function i(a){return"string"==typeof a?a:Array.isArray(a)?a.filter(a=>"text"===a.type).map(a=>a.text).join("\n"):""}function j(a,b,c){let d=h(a,b,c);return d.system&&Array.isArray(d.system)&&(d.system=d.system.filter(a=>!a.text||!a.text.includes("You are Claude Code")),0===d.system.length&&delete d.system),d.tools&&Array.isArray(d.tools)&&(d.tools=d.tools.map(a=>a.name&&a.name.startsWith("")?{...a,name:a.name.slice(0)}:a)),d.messages&&Array.isArray(d.messages)&&(d.messages=d.messages.map(a=>{if(!a.content||!Array.isArray(a.content))return a;let b=a.content.map(a=>"tool_use"===a.type&&a.name&&a.name.startsWith("")?{...a,name:a.name.slice(0)}:a);return{...a,content:b}})),d}(0,d.kz)(e.h.OPENAI,e.h.CLAUDE,h,null)},29675:(a,b,c)=>{c.r(b),c.d(b,{claudeToOpenAIResponse:()=>g});var d=c(46992),e=c(14170);function f(a,b,c=null){return{id:`chatcmpl-${a.messageId}`,object:"chat.completion.chunk",created:Math.floor(Date.now()/1e3),model:a.model,choices:[{index:0,delta:b,finish_reason:c}]}}function g(a,b){if(!a)return null;let c=[];switch(a.type){case"message_start":b.messageId=a.message?.id||`msg_${Date.now()}`,b.model=a.message?.model,b.toolCallIndex=0,c.push(f(b,{role:"assistant"}));break;case"content_block_start":{let d=a.content_block;if(d?.type==="server_tool_use"){b.serverToolBlockIndex=a.index;break}if(d?.type==="text")b.textBlockStarted=!0;else if(d?.type==="thinking")b.inThinkingBlock=!0,b.currentBlockIndex=a.index,c.push(f(b,{content:"<think>"}));else if(d?.type==="tool_use"){let e=b.toolCallIndex++,g=b.toolNameMap?.get(d.name)||d.name,h={index:e,id:d.id,type:"function",function:{name:g,arguments:""}};b.toolCalls.set(a.index,h),c.push(f(b,{tool_calls:[h]}))}break}case"content_block_delta":{if(a.index===b.serverToolBlockIndex)break;let d=a.delta;if(d?.type==="text_delta"&&d.text)c.push(f(b,{content:d.text}));else if(d?.type==="thinking_delta"&&d.thinking)c.push(f(b,{reasoning_content:d.thinking}));else if(d?.type==="input_json_delta"&&d.partial_json){let e=b.toolCalls.get(a.index);e&&(e.function.arguments+=d.partial_json,c.push(f(b,{tool_calls:[{index:e.index,id:e.id,function:{arguments:d.partial_json}}]})))}break}case"content_block_stop":if(a.index===b.serverToolBlockIndex){b.serverToolBlockIndex=-1;break}b.inThinkingBlock&&a.index===b.currentBlockIndex&&(c.push(f(b,{content:"</think>"})),b.inThinkingBlock=!1),b.textBlockStarted=!1,b.thinkingBlockStarted=!1;break;case"message_delta":if(a.usage&&"object"==typeof a.usage){let c="number"==typeof a.usage.input_tokens?a.usage.input_tokens:0,d="number"==typeof a.usage.output_tokens?a.usage.output_tokens:0,e="number"==typeof a.usage.cache_read_input_tokens?a.usage.cache_read_input_tokens:0,f="number"==typeof a.usage.cache_creation_input_tokens?a.usage.cache_creation_input_tokens:0,g=c+e+f;b.usage={prompt_tokens:g,completion_tokens:d,total_tokens:g+d,input_tokens:c,output_tokens:d},e>0&&(b.usage.cache_read_input_tokens=e),f>0&&(b.usage.cache_creation_input_tokens=f)}if(a.delta?.stop_reason){b.finishReason=function(a){switch(a){case"end_turn":case"stop_sequence":default:return"stop";case"max_tokens":return"length";case"tool_use":return"tool_calls"}}(a.delta.stop_reason);let d={id:`chatcmpl-${b.messageId}`,object:"chat.completion.chunk",created:Math.floor(Date.now()/1e3),model:b.model,choices:[{index:0,delta:{},finish_reason:b.finishReason}]};if(b.usage){d.usage={prompt_tokens:b.usage.prompt_tokens,completion_tokens:b.usage.completion_tokens,total_tokens:b.usage.total_tokens};let a=b.usage.cache_read_input_tokens,c=b.usage.cache_creation_input_tokens;(a>0||c>0)&&(d.usage.prompt_tokens_details={},a>0&&(d.usage.prompt_tokens_details.cached_tokens=a),c>0&&(d.usage.prompt_tokens_details.cache_creation_tokens=c))}c.push(d),b.finishReasonSent=!0}break;case"message_stop":if(!b.finishReasonSent){let a=b.finishReason||(b.toolCalls?.size>0?"tool_calls":"stop"),d=b.usage&&"object"==typeof b.usage?{usage:{prompt_tokens:b.usage.input_tokens||0,completion_tokens:b.usage.output_tokens||0,total_tokens:(b.usage.input_tokens||0)+(b.usage.output_tokens||0)}}:{};c.push({id:`chatcmpl-${b.messageId}`,object:"chat.completion.chunk",created:Math.floor(Date.now()/1e3),model:b.model,choices:[{index:0,delta:{},finish_reason:a}],...d}),b.finishReasonSent=!0}}return c.length>0?c:null}(0,d.kz)(e.h.CLAUDE,e.h.OPENAI,null,g)},32546:(a,b,c)=>{c.r(b),c.d(b,{geminiToOpenAIResponse:()=>f});var d=c(46992),e=c(14170);function f(a,b){if(!a)return null;let c=a.response||a;if(!c||!c.candidates?.[0])return null;let d=[],e=c.candidates[0],f=e.content;if(b.messageId||(b.messageId=c.responseId||`msg_${Date.now()}`,b.model=c.modelVersion||"gemini",b.functionIndex=0,d.push({id:`chatcmpl-${b.messageId}`,object:"chat.completion.chunk",created:Math.floor(Date.now()/1e3),model:b.model,choices:[{index:0,delta:{role:"assistant"},finish_reason:null}]})),f?.parts)for(let a of f.parts){let c=a.thoughtSignature||a.thought_signature,e=!0===a.thought;if(c){let c=void 0!==a.text&&""!==a.text,f=!!a.functionCall;if(c&&d.push({id:`chatcmpl-${b.messageId}`,object:"chat.completion.chunk",created:Math.floor(Date.now()/1e3),model:b.model,choices:[{index:0,delta:e?{reasoning_content:a.text}:{content:a.text},finish_reason:null}]}),f){let c=a.functionCall.name,e=b.toolNameMap?.get(c)||c,f=a.functionCall.args||{},g=b.functionIndex++,h={id:`${e}-${Date.now()}-${g}`,index:g,type:"function",function:{name:e,arguments:JSON.stringify(f)}};b.toolCalls.set(g,h),d.push({id:`chatcmpl-${b.messageId}`,object:"chat.completion.chunk",created:Math.floor(Date.now()/1e3),model:b.model,choices:[{index:0,delta:{tool_calls:[h]},finish_reason:null}]})}continue}if(void 0!==a.text&&""!==a.text&&d.push({id:`chatcmpl-${b.messageId}`,object:"chat.completion.chunk",created:Math.floor(Date.now()/1e3),model:b.model,choices:[{index:0,delta:{content:a.text},finish_reason:null}]}),a.functionCall){let c=a.functionCall.name,e=b.toolNameMap?.get(c)||c,f=a.functionCall.args||{},g=b.functionIndex++,h={id:`${e}-${Date.now()}-${g}`,index:g,type:"function",function:{name:e,arguments:JSON.stringify(f)}};b.toolCalls.set(g,h),d.push({id:`chatcmpl-${b.messageId}`,object:"chat.completion.chunk",created:Math.floor(Date.now()/1e3),model:b.model,choices:[{index:0,delta:{tool_calls:[h]},finish_reason:null}]})}let f=a.inlineData||a.inline_data;if(f?.data){let a=f.mimeType||f.mime_type||"image/png";d.push({id:`chatcmpl-${b.messageId}`,object:"chat.completion.chunk",created:Math.floor(Date.now()/1e3),model:b.model,choices:[{index:0,delta:{images:[{type:"image_url",image_url:{url:`data:${a};base64,${f.data}`}}]},finish_reason:null}]})}}let g=c.usageMetadata||a.usageMetadata;if(g&&"object"==typeof g){let a="number"==typeof g.cachedContentTokenCount?g.cachedContentTokenCount:0,c="number"==typeof g.promptTokenCount?g.promptTokenCount:0,d="number"==typeof g.thoughtsTokenCount?g.thoughtsTokenCount:0,e="number"==typeof g.candidatesTokenCount?g.candidatesTokenCount:0,f="number"==typeof g.totalTokenCount?g.totalTokenCount:0;0===e&&f>0&&(e=f-c-d)<0&&(e=0),b.usage={prompt_tokens:c,completion_tokens:e+d,total_tokens:f},a>0&&(b.usage.prompt_tokens_details={cached_tokens:a}),d>0&&(b.usage.completion_tokens_details={reasoning_tokens:d})}if(e.finishReason){let a=e.finishReason.toLowerCase();"stop"===a&&b.toolCalls.size>0&&(a="tool_calls");let c={id:`chatcmpl-${b.messageId}`,object:"chat.completion.chunk",created:Math.floor(Date.now()/1e3),model:b.model,choices:[{index:0,delta:{},finish_reason:a}]};b.usage&&(c.usage=b.usage),d.push(c),b.finishReason=a}return d.length>0?d:null}(0,d.kz)(e.h.GEMINI,e.h.OPENAI,null,f),(0,d.kz)(e.h.GEMINI_CLI,e.h.OPENAI,null,f),(0,d.kz)(e.h.ANTIGRAVITY,e.h.OPENAI,null,f),(0,d.kz)(e.h.VERTEX,e.h.OPENAI,null,f)},39006:a=>{a.exports={rE:"5.4.5"}},39536:(a,b,c)=>{c.d(b,{c:()=>n});var d=c(55511),e=c.n(d),f=c(5259),g=c(35024),h=c(75924),i=c(41004),j=c(80662),k=c(39609),l=c(47593);let m=Object.freeze({"gemini-3.7-flash":"Gemini 3.7 Flash"});class n extends f.H{constructor(){super("antigravity",g.xq.antigravity)}buildUrl(a,b,c=0){let d=this.getBaseUrls(),e=d[c]||d[0];return`${e}/v1internal:${b?"streamGenerateContent?alt=sse":"generateContent"}`}buildHeaders(a,b=!0,c=null){return{"Content-Type":"application/json",Authorization:`Bearer ${a.accessToken}`,"User-Agent":this.config.headers?.["User-Agent"]||h.K["User-Agent"],[h.Ox.name]:h.Ox.value,...c&&{"X-Machine-Session-Id":c},Accept:b?"text/event-stream":"application/json"}}transformRequest(a,b,c,d){let f=d?.projectId||this.generateProjectId(),g=b.request?.contents?.map(a=>{let b=a.role;a.parts?.some(a=>a.functionResponse)&&(b="user");let c=a.parts?.filter(a=>(!a.thought||!!a.functionCall)&&(!a.thoughtSignature||!!a.functionCall||!!a.text));return b!==a.role||c?.length!==a.parts?.length?{...a,role:b,parts:c}:a}),h=b.request?.tools;if(h&&h.length>0){let a=h.flatMap(a=>(a.functionDeclarations||[]).map(a=>({...a,name:function(a){if(!a)return"_unknown";let b=a.replace(/[^a-zA-Z0-9_.:\-]/g,"_");return/^[a-zA-Z_]/.test(b)||(b="_"+b),b.substring(0,64)}(a.name),parameters:a.parameters?(0,l.Yr)(structuredClone(a.parameters)):{type:"object",properties:{reason:{type:"string",description:"Brief explanation"}},required:["reason"]}})));h=a.length>0?[{functionDeclarations:a}]:[]}let{tools:i,toolConfig:k,...m}=b.request||{},n={...m.generationConfig||{}};n.maxOutputTokens>16384&&(n.maxOutputTokens=16384);let o={...m,generationConfig:n,...g&&{contents:g},...h&&{tools:h},sessionId:b.request?.sessionId||(0,j.RF)(d?.email||d?.connectionId),safetySettings:void 0,...h?.length>0&&{toolConfig:{functionCallingConfig:{mode:"VALIDATED"}}}};return{...b,project:f,model:a,userAgent:"antigravity",requestType:"agent",requestId:`agent-${e().randomUUID()}`,request:o}}async refreshCredentials(a,b,c=null){if(!a.refreshToken)return null;try{let d=await (0,k.proxyAwareFetch)(h.NA.google.token,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams({grant_type:"refresh_token",refresh_token:a.refreshToken,client_id:this.config.clientId,client_secret:this.config.clientSecret})},c);if(!d.ok)return null;let e=await d.json();return b?.info?.("TOKEN","Antigravity refreshed"),{accessToken:e.access_token,refreshToken:e.refresh_token||a.refreshToken,expiresIn:e.expires_in,projectId:a.projectId}}catch(a){return b?.error?.("TOKEN",`Antigravity refresh error: ${a.message}`),null}}generateProjectId(){let a=["useful","bright","swift","calm","bold"][Math.floor(5*Math.random())],b=["fuze","wave","spark","flow","core"][Math.floor(5*Math.random())];return`${a}-${b}-${e().randomUUID().slice(0,5)}`}generateSessionId(){return e().randomUUID()+Date.now().toString()}parseRetryHeaders(a){if(!a?.get)return null;let b=a.get("retry-after");if(b){let a=parseInt(b,10);if(!isNaN(a)&&a>0)return 1e3*a;let c=new Date(b);if(!isNaN(c.getTime())){let a=c.getTime()-Date.now();return a>0?a:null}}let c=a.get("x-ratelimit-reset-after");if(c){let a=parseInt(c,10);if(!isNaN(a)&&a>0)return 1e3*a}let d=a.get("x-ratelimit-reset");if(d){let a=1e3*parseInt(d,10)-Date.now();return a>0?a:null}return null}parseRetryFromErrorMessage(a){if(!a||"string"!=typeof a)return null;let b=a.match(/reset after (\d+h)?(\d+m)?(\d+s)?/i);if(!b)return null;let c=0;return b[1]&&(c+=3600*parseInt(b[1])*1e3),b[2]&&(c+=60*parseInt(b[2])*1e3),b[3]&&(c+=1e3*parseInt(b[3])),c>0?c:null}async resolveDynamicModelId(a,b,c=null,d=null){let e=m[a];if(!e||!b?.accessToken)return a;let f=a=>String(a||"").trim().toLowerCase(),g=f(e);for(let e of[...new Set([...this.getBaseUrls().map(a=>`${a}/v1internal:fetchAvailableModels`),"https://cloudcode-pa.googleapis.com/v1internal:fetchAvailableModels"])])try{let i=await (0,k.proxyAwareFetch)(e,{method:"POST",headers:{Authorization:`Bearer ${b.accessToken}`,"User-Agent":this.config.headers?.["User-Agent"]||h.K["User-Agent"],"Content-Type":"application/json","X-Client-Name":"antigravity","X-Client-Version":"1.107.0","x-request-source":"local"},body:JSON.stringify(b?.projectId?{project:b.projectId}:{})},c);if(!i.ok)continue;let j=await i.json(),l=Object.entries(j?.models||{}).filter(([,a])=>!a?.isInternal),m=l.find(([,a])=>f(a?.displayName)===g);if(m||(m=l.find(([,a])=>{let b=f(a?.displayName);return b.startsWith(g)&&b.includes("high")})),m||(m=l.find(([,a])=>f(a?.displayName).startsWith(g))),m||(m=l.find(([a])=>{let b=f(a);return b.includes("gemini")&&b.includes("3.7")&&b.includes("flash")})),m?.[0]){let b=m[0];return d?.debug?.("MODEL",`Resolved Antigravity ${a} -> ${b}`),b}}catch(a){d?.debug?.("MODEL",`Antigravity model discovery failed on ${e}: ${a.message}`)}return d?.debug?.("MODEL",`No Antigravity upstream id found for ${a}; using requested id`),a}async execute({model:a,body:b,stream:c,credentials:d,signal:e,log:f,proxyOptions:g=null}){let h=await this.resolveDynamicModelId(a,d,g,f),j=this.getFallbackCount(),l=null,m=0,n={},o={};for(let a=0;a<j;a++){let p=this.buildUrl(h,c,a),q=this.transformRequest(h,b,c,d),r=q.request?.sessionId,s=this.buildHeaders(d,c,r);n[a]||(n[a]=0),o[a]||(o[a]=0);try{let b=await (0,k.proxyAwareFetch)(p,{method:"POST",headers:s,body:JSON.stringify(q),signal:e},g);if(b.status===i.gx.RATE_LIMITED||b.status===i.gx.SERVICE_UNAVAILABLE){let c=this.parseRetryHeaders(b.headers);if(!c)try{let a=await b.clone().text(),d=JSON.parse(a),e=d?.error?.message||d?.message||"";c=this.parseRetryFromErrorMessage(e)}catch(a){}if(c&&c<=1e4&&o[a]<3){o[a]++,f?.debug?.("RETRY",`${b.status} with Retry-After: ${Math.ceil(c/1e3)}s, waiting... (${o[a]}/3)`),await new Promise(a=>setTimeout(a,c)),a--;continue}if(b.status===i.gx.RATE_LIMITED&&(!c||0===c)&&n[a]<3){n[a]++;let b=Math.min(1e3*2**n[a],1e4);f?.debug?.("RETRY",`429 auto retry ${n[a]}/3 after ${b/1e3}s`),await new Promise(a=>setTimeout(a,b)),a--;continue}if(f?.debug?.("RETRY",`${b.status}, Retry-After ${c?`too long (${Math.ceil(c/1e3)}s)`:"missing"}, trying fallback`),m=b.status,a+1<j)continue}if(this.shouldRetry(b.status,a)){f?.debug?.("RETRY",`${b.status} on ${p}, trying fallback ${a+1}`),m=b.status;continue}return{response:b,url:p,headers:s,transformedBody:q}}catch(b){if(l=b,a+1<j){f?.debug?.("RETRY",`Error on ${p}, trying fallback ${a+1}`);continue}throw b}}throw l||Error(`All ${j} URLs failed with status ${m}`)}static cloakTools(a,b=null){let c=a.request?.tools;if(!c||0===c.length)return{cloakedBody:a,toolNameMap:null};let d="github-copilot"===b,e=new Map,f=[],g=new Set(o.map(a=>a.name));for(let a of c)if(a.functionDeclarations)for(let b of a.functionDeclarations){if(d&&h.J5.has(b.name)||d&&g.has(b.name))continue;if(h.J5.has(b.name)){f.push(b);continue}let a=`${b.name}${h.QH}`;e.set(a,b.name),f.push({...b,name:a})}let i=[],j=new Set;for(let a of[...f,...o])!a?.name||j.has(a.name)||(j.add(a.name),i.push(a));let k=a.request?.contents?.map(a=>{if(!a.parts)return a;let b=a.parts.map(a=>a.functionCall&&!h.J5.has(a.functionCall.name)?{...a,functionCall:{...a.functionCall,name:`${a.functionCall.name}${h.QH}`}}:a.functionResponse&&!h.J5.has(a.functionResponse.name)?{...a,functionResponse:{...a.functionResponse,name:`${a.functionResponse.name}${h.QH}`}}:a);return{...a,parts:b}});return{cloakedBody:{...a,request:{...a.request,tools:[{functionDeclarations:i}],contents:k||a.request.contents}},toolNameMap:e}}}let o=[{name:"browser_subagent",description:"This tool is currently unavailable.",parameters:{type:"OBJECT",properties:{},required:[]}},{name:"command_status",description:"This tool is currently unavailable.",parameters:{type:"OBJECT",properties:{},required:[]}},{name:"find_by_name",description:"This tool is currently unavailable.",parameters:{type:"OBJECT",properties:{},required:[]}},{name:"generate_image",description:"This tool is currently unavailable.",parameters:{type:"OBJECT",properties:{},required:[]}},{name:"grep_search",description:"This tool is currently unavailable.",parameters:{type:"OBJECT",properties:{},required:[]}},{name:"list_dir",description:"This tool is currently unavailable.",parameters:{type:"OBJECT",properties:{},required:[]}},{name:"list_resources",description:"This tool is currently unavailable.",parameters:{type:"OBJECT",properties:{},required:[]}},{name:"mcp_sequential-thinking_sequentialthinking",description:"This tool is currently unavailable.",parameters:{type:"OBJECT",properties:{},required:[]}},{name:"multi_replace_file_content",description:"This tool is currently unavailable.",parameters:{type:"OBJECT",properties:{},required:[]}},{name:"notify_user",description:"This tool is currently unavailable.",parameters:{type:"OBJECT",properties:{},required:[]}},{name:"read_resource",description:"This tool is currently unavailable.",parameters:{type:"OBJECT",properties:{},required:[]}},{name:"read_terminal",description:"This tool is currently unavailable.",parameters:{type:"OBJECT",properties:{},required:[]}},{name:"read_url_content",description:"This tool is currently unavailable.",parameters:{type:"OBJECT",properties:{},required:[]}},{name:"replace_file_content",description:"This tool is currently unavailable.",parameters:{type:"OBJECT",properties:{},required:[]}},{name:"run_command",description:"This tool is currently unavailable.",parameters:{type:"OBJECT",properties:{},required:[]}},{name:"search_web",description:"This tool is currently unavailable.",parameters:{type:"OBJECT",properties:{},required:[]}},{name:"send_command_input",description:"This tool is currently unavailable.",parameters:{type:"OBJECT",properties:{},required:[]}},{name:"task_boundary",description:"This tool is currently unavailable.",parameters:{type:"OBJECT",properties:{},required:[]}},{name:"view_content_chunk",description:"This tool is currently unavailable.",parameters:{type:"OBJECT",properties:{},required:[]}},{name:"view_file",description:"This tool is currently unavailable.",parameters:{type:"OBJECT",properties:{},required:[]}},{name:"write_to_file",description:"This tool is currently unavailable.",parameters:{type:"OBJECT",properties:{},required:[]}}]},39551:(a,b,c)=>{c.r(b),c.d(b,{ollamaBodyToOpenAI:()=>i,ollamaToOpenAI:()=>f});var d=c(46992),e=c(14170);function f(a,b){if(!a||"object"!=typeof a)return null;b.ollama||(b.ollama={id:`chatcmpl-${Date.now()}`,created:Math.floor(Date.now()/1e3),model:a.model||b.model});let{id:c,created:d,model:e}=b.ollama;if(a.done){let f=g(a),h="stop";return("tool_calls"===a.done_reason||b.hadToolCalls)&&(h="tool_calls"),{id:c,object:"chat.completion.chunk",created:d,model:e,choices:[{index:0,delta:{},finish_reason:h}],usage:f}}let f=a.message;if(!f)return null;let i="string"==typeof f.content?f.content:"",j="string"==typeof f.thinking?f.thinking:"",k=Array.isArray(f.tool_calls)?f.tool_calls:null;if(!i&&!j&&!k)return null;i&&(b.accumulatedContent=(b.accumulatedContent||"")+i),j&&(b.accumulatedThinking=(b.accumulatedThinking||"")+j);let l={};return i&&(l.content=i),j&&(l.reasoning_content=j),k&&(b.hadToolCalls=!0,l.tool_calls=h(k)),{id:c,object:"chat.completion.chunk",created:d,model:e,choices:[{index:0,delta:l,finish_reason:null}]}}function g(a){return{prompt_tokens:a.prompt_eval_count||0,completion_tokens:a.eval_count||0,total_tokens:(a.prompt_eval_count||0)+(a.eval_count||0)}}function h(a){return a.map((a,b)=>({index:a.function?.index??b,id:a.id||`call_${b}_${Date.now()}`,type:"function",function:{name:a.function?.name||"",arguments:"string"==typeof a.function?.arguments?a.function.arguments:JSON.stringify(a.function?.arguments||{})}}))}function i(a){let b=a.message||{},c=b.content||"",d=b.thinking||"",e=Array.isArray(b.tool_calls)?b.tool_calls:[],f={role:"assistant"};c&&(f.content=c),d&&(f.reasoning_content=d),e.length>0&&(f.tool_calls=h(e)),f.content||f.tool_calls||(f.content="");let i=a.done_reason||"stop";return e.length>0&&(i="tool_calls"),{id:`chatcmpl-${Date.now()}`,object:"chat.completion",created:Math.floor(Date.now()/1e3),model:a.model||"ollama",choices:[{index:0,message:f,finish_reason:i}],usage:g(a)}}(0,d.kz)(e.h.OLLAMA,e.h.OPENAI,null,f)},42654:(a,b,c)=>{c.d(b,{m:()=>d});function d(a){return"string"==typeof a?[{type:"message",role:"user",content:[{type:"input_text",text:""===a.trim()?"...":a}]}]:Array.isArray(a)?0===a.length?[{type:"message",role:"user",content:[{type:"input_text",text:"..."}]}]:a:null}},46992:(a,b,c)=>{c.d(b,{Ws:()=>x,Ai:()=>y,nZ:()=>w,kz:()=>s,GH:()=>u,Y8:()=>v});var d=c(14170);let e=/^[a-zA-Z0-9_-]+$/;function f(a=0,b=0,c=""){let d=c?`_${c.replace(/[^a-zA-Z0-9_-]/g,"")}`:"";return`call_msg${a}_tc${b}${d}`}function g(a){if(!a||"string"!=typeof a)return null;let b=a.replace(/[^a-zA-Z0-9_-]/g,"");return b.length>0?b:null}var h=c(96281);c(3156);var i=c(55399),j=c(80662);let k=new Set(["minimax","minimax-cn"]),l=/(^|\r?\n)[ \t]*<total_tokens>[ \t]*[\d,]+[ \t]+tokens[ \t]+left[ \t]*<\/total_tokens>[ \t]*(?=\r?\n|$)/gi;function m(a){return"string"==typeof a&&0!==a.length&&a.includes("<total_tokens>")?a.replace(l,"$1"):a}let n=["text","image_url","image","input_audio","audio_url"];var o=c(57647);c(39536);let p=new Map,q=new Map,r=!1;function s(a,b,c,d){let e=`${a}:${b}`;c&&p.set(e,c),d&&q.set(e,d)}function t(){r||(r=!0,c(60983),c(19979),c(52638),c(97102),c(59611),c(54817),c(65377),c(10010),c(13595),c(74447),c(97821),c(29675),c(66159),c(32546),c(89475),c(4845),c(52830),c(65651),c(39551),c(47723))}function u(a,b,c,l,q=!0,r=null,s=null,v=null,w=[],x=null,y=null){t();let z=structuredClone(l);if(a===d.h.CLAUDE&&b!==d.h.CLAUDE&&(z=function(a){if(!a||"object"!=typeof a)return a;let b=function(a){if("string"==typeof a)return m(a);if(!Array.isArray(a))return a;let b=!1,c=a.map(a=>{if(!a||"text"!==a.type||"string"!=typeof a.text)return a;let c=m(a.text);return c===a.text?a:(b=!0,{...a,text:c})});return b?c:a}(a.system),c=a.messages;if(Array.isArray(a.messages)){let b=!1,d=a.messages.map(a=>{let c=function(a){if(!a||"assistant"!==a.role&&"system"!==a.role)return a;if("string"==typeof a.content){let b=m(a.content);return b===a.content?a:{...a,content:b}}if(!Array.isArray(a.content))return a;let b=!1,c=a.content.map(a=>{if(!a||"text"!==a.type||"string"!=typeof a.text)return a;let c=m(a.text);return c===a.text?a:(b=!0,{...a,text:c})});return b?{...a,content:c}:a}(a);return c!==a&&(b=!0),c});b&&(c=d)}let d=b!==a.system,e=c!==a.messages;return d||e?{...a,...d?{system:b}:{},...e?{messages:c}:{}}:a}(z)),!function(a,b=[]){if(!b.length||!a.messages||!Array.isArray(a.messages))return;let c=new Set(["image_url","image"]),d=new Set(["audio_url","input_audio"]),e=a=>c.has(a)?b.includes("image"):!!d.has(a)&&b.includes("audio");for(let b of a.messages)Array.isArray(b.content)&&(b.content=b.content.filter(a=>!e(a.type)),0===b.content.length&&(b.content=""))}(z,w),(0,o.SZ)(z),!function(a){if(a.messages&&Array.isArray(a.messages))for(let b=0;b<a.messages.length;b++){let c=a.messages[b];if("assistant"===c.role&&c.tool_calls&&Array.isArray(c.tool_calls))for(let a=0;a<c.tool_calls.length;a++){let d=c.tool_calls[a];if(!d.id||!e.test(d.id)){let c=g(d.id);d.id=c||f(b,a,d.function?.name)}d.type||(d.type="function"),d.function?.arguments&&"string"!=typeof d.function.arguments&&(d.function.arguments=JSON.stringify(d.function.arguments))}if("tool"===c.role&&c.tool_call_id&&!e.test(c.tool_call_id)){let a=g(c.tool_call_id);c.tool_call_id=a||f(b,0)}if(Array.isArray(c.content))for(let a=0;a<c.content.length;a++){let d=c.content[a];if("tool_use"===d.type&&d.id&&!e.test(d.id)){let c=g(d.id);d.id=c||f(b,a,d.name)}if("tool_result"===d.type&&d.tool_use_id&&!e.test(d.tool_use_id)){let c=g(d.tool_use_id);d.tool_use_id=c||f(b,a)}}}}(z),!function(a){if(!a.messages||!Array.isArray(a.messages))return;let b=[];for(let c=0;c<a.messages.length;c++){let d=a.messages[c],e=a.messages[c+1];b.push(d);let f=function(a){if("assistant"!==a.role)return[];let b=[];if(a.tool_calls&&Array.isArray(a.tool_calls))for(let c of a.tool_calls)c.id&&b.push(c.id);if(Array.isArray(a.content))for(let c of a.content)"tool_use"===c.type&&c.id&&b.push(c.id);return b}(d);if(0!==f.length&&e&&!function(a,b){if(!a||!b.length)return!1;if("tool"===a.role&&a.tool_call_id)return b.includes(a.tool_call_id);if("user"===a.role&&Array.isArray(a.content)){for(let c of a.content)if("tool_result"===c.type&&b.includes(c.tool_use_id))return!0}return!1}(e,f))for(let a of f)b.push({role:"tool",tool_call_id:a,content:""})}a.messages=b}(z),a!==b){if(a!==d.h.OPENAI){let b=p.get(`${a}:${d.h.OPENAI}`);b&&(z=b(c,z,q,r),v?.logOpenAIRequest?.(z))}if(b!==d.h.OPENAI){let a=p.get(`${d.h.OPENAI}:${b}`);a&&(z=a(c,z,q,r))}}if(b===d.h.OPENAI&&(z=function(a){if(!a.messages||!Array.isArray(a.messages))return a;if(a.messages=a.messages.map(a=>{if("developer"===a.role&&(a={...a,role:"system"}),"tool"===a.role||"assistant"===a.role&&a.tool_calls||"string"==typeof a.content)return a;if(Array.isArray(a.content)){let b=[];for(let c of a.content)if("thinking"!==c.type&&"redacted_thinking"!==c.type){if(n.includes(c.type)){let{signature:a,cache_control:d,...e}=c;b.push(e)}else if("tool_use"===c.type)continue;else if("tool_result"===c.type){let{signature:a,cache_control:d,...e}=c;b.push(e)}}return 0===b.length&&b.push({type:"text",text:""}),{...a,content:b}}return a}),a.messages=a.messages.filter(a=>"tool"===a.role||"assistant"===a.role&&!!a.tool_calls||("string"==typeof a.content?""!==a.content.trim():!Array.isArray(a.content)||a.content.some(a=>"text"===a.type&&a.text?.trim()||"text"!==a.type))),a.tools&&Array.isArray(a.tools)&&0===a.tools.length&&delete a.tools,a.tools&&Array.isArray(a.tools)&&a.tools.length>0&&(a.tools=a.tools.map(a=>"function"===a.type&&a.function?a:a.name&&(a.input_schema||a.description)?{type:"function",function:{name:a.name,description:String(a.description||""),parameters:a.input_schema||{type:"object",properties:{}}}}:a.functionDeclarations&&Array.isArray(a.functionDeclarations)?a.functionDeclarations.map(a=>({type:"function",function:{name:a.name,description:String(a.description||""),parameters:a.parameters||{type:"object",properties:{}}}})):a).flat()),a.tool_choice&&"object"==typeof a.tool_choice){let b=a.tool_choice;"auto"===b.type?a.tool_choice="auto":"any"===b.type?a.tool_choice="required":"tool"===b.type&&b.name&&(a.tool_choice={type:"function",function:{name:b.name}})}return a}(z)),b===d.h.CLAUDE&&(z=function(a,b=null,c=null,d=null){if(k.has(b)&&delete a.output_config,a.system&&Array.isArray(a.system)&&(a.system=a.system.map((b,c)=>{let{cache_control:d,...e}=b;return c===a.system.length-1?{...e,cache_control:{type:"ephemeral",ttl:"1h"}}:e})),a.messages&&Array.isArray(a.messages)){let c=a.messages.length,d=[];for(let b=0;b<c;b++){let e=a.messages[b];if(Array.isArray(e.content))for(let a of e.content)delete a.cache_control;(b===c-1&&"assistant"===e.role||"string"==typeof e.content&&e.content.trim()||Array.isArray(e.content)&&e.content.some(a=>"text"===a.type&&a.text?.trim()||"tool_use"===a.type||"tool_result"===a.type))&&d.push(e)}d=function(a){if(a.length<=1)return a;for(let b of a)if("assistant"===b.role&&Array.isArray(b.content)&&b.content.some(a=>"tool_use"===a.type)){let a=[],c=!1;for(let d of b.content)"tool_use"===d.type?(c=!0,a.push(d)):"thinking"===d.type||"redacted_thinking"===d.type?a.push(d):c||a.push(d);b.content=a}let b=[];for(let c of a){let a=b[b.length-1];if(a&&a.role===c.role){let b=Array.isArray(a.content)?a.content:[{type:"text",text:a.content}],d=Array.isArray(c.content)?c.content:[{type:"text",text:c.content}];a.content=[...b.filter(a=>"tool_result"===a.type),...d.filter(a=>"tool_result"===a.type),...b.filter(a=>"tool_result"!==a.type),...d.filter(a=>"tool_result"!==a.type)]}else{let a=Array.isArray(c.content)?c.content:[{type:"text",text:c.content}];b.push({role:c.role,content:[...a]})}}return b}(d),a.messages=d;let e=d[d.length-1],f=e?.role==="user",g=a.thinking?.type==="enabled"&&f,i=!1;for(let a=d.length-1;a>=0;a--){let c=d[a];if("assistant"===c.role&&Array.isArray(c.content)){if(!i&&c.content.length>0){for(let a=c.content.length-1;a>=0;a--){let b=c.content[a];if("thinking"!==b.type&&"redacted_thinking"!==b.type){b.cache_control={type:"ephemeral"};break}}i=!0}if("claude"===b||b?.startsWith("anthropic-compatible")){let a=!1,b=!1;for(let d of c.content)("thinking"===d.type||"redacted_thinking"===d.type)&&(d.signature=h.xr,b=!0),"tool_use"===d.type&&(a=!0);g&&!b&&a&&c.content.unshift({type:"thinking",thinking:".",signature:h.xr})}}}}if(a.tools&&Array.isArray(a.tools)&&("claude"!==b&&(a.tools=a.tools.filter(a=>!a.type||"function"===a.type)),a.tools=a.tools.map((b,c)=>{let{cache_control:d,...e}=b;return c===a.tools.length-1?{...e,cache_control:{type:"ephemeral",ttl:"1h"}}:e}),0===a.tools.length&&(delete a.tools,delete a.tool_choice)),("claude"===b||b?.startsWith("anthropic-compatible"))&&c){let b=d?(0,j.RF)(d):null;a=(0,i.fO)(a,c,b)}return a}(z,s,r?.accessToken||r?.apiKey||null,x)),"claude"===s){let a=r?.accessToken||r?.apiKey||null;if(a?.includes("sk-ant-oat")){let{body:a,toolNameMap:b}=(0,i.Az)(z);z=a,b?.size>0&&(z._toolNameMap=b)}}return z}function v(a,b,c,e){if(t(),b===a)return[c];let f=[c],g=null;if(a!==d.h.OPENAI){let b=q.get(`${a}:${d.h.OPENAI}`);if(b){f=[];let a=b(c,e);a&&(g=f=Array.isArray(a)?a:[a])}}if(b!==d.h.OPENAI){let a=q.get(`${d.h.OPENAI}:${b}`);if(a){let b=[];for(let c of f){let d=a(c,e);d&&b.push(...Array.isArray(d)?d:[d])}f=b}}return g&&b!==d.h.OPENAI&&a!==d.h.OPENAI&&(f._openaiIntermediate=g),f}function w(a,b){return a!==b}function x(a){let b={messageId:null,model:null,textBlockStarted:!1,thinkingBlockStarted:!1,inThinkingBlock:!1,currentBlockIndex:null,toolCalls:new Map,finishReason:null,finishReasonSent:!1,usage:null,contentBlockIndex:-1};return a===d.h.OPENAI_RESPONSES?{...b,seq:0,responseId:`resp_${Date.now()}`,created:Math.floor(Date.now()/1e3),started:!1,msgTextBuf:{},msgItemAdded:{},msgContentAdded:{},msgItemDone:{},reasoningId:"",reasoningIndex:-1,reasoningBuf:"",reasoningPartAdded:!1,reasoningDone:!1,inThinking:!1,funcArgsBuf:{},funcNames:{},funcCallIds:{},funcArgsDone:{},funcItemDone:{},completedSent:!1}:b}function y(){t()}},47593:(a,b,c)=>{c.d(b,{KZ:()=>i,S6:()=>f,Yr:()=>m,f6:()=>j,fc:()=>e,kU:()=>g,pT:()=>h,w_:()=>k});let d=["minLength","maxLength","exclusiveMinimum","exclusiveMaximum","minItems","maxItems","format","default","examples","$schema","$defs","definitions","const","$ref","$comment","additionalProperties","propertyNames","patternProperties","enumDescriptions","anyOf","oneOf","allOf","not","dependencies","dependentSchemas","dependentRequired","title","if","then","else","contentMediaType","contentEncoding","cornerRadius","fillColor","fontFamily","fontSize","fontWeight","gap","padding","strokeColor","strokeThickness","textColor"],e=[{category:"HARM_CATEGORY_HATE_SPEECH",threshold:"OFF"},{category:"HARM_CATEGORY_DANGEROUS_CONTENT",threshold:"OFF"},{category:"HARM_CATEGORY_SEXUALLY_EXPLICIT",threshold:"OFF"},{category:"HARM_CATEGORY_HARASSMENT",threshold:"OFF"},{category:"HARM_CATEGORY_CIVIC_INTEGRITY",threshold:"OFF"}];function f(a){let b=[];if("string"==typeof a)b.push({text:a});else if(Array.isArray(a)){for(let c of a)if("text"===c.type)b.push({text:c.text});else if("image_url"===c.type&&c.image_url?.url?.startsWith("data:")){let a=c.image_url.url,d=a.indexOf(",");if(-1!==d){let c=a.substring(5,d),e=a.substring(d+1),f=c.split(";")[0];b.push({inlineData:{mime_type:f,data:e}})}}else if("image_url"===c.type&&c.image_url?.url&&(c.image_url.url.startsWith("http://")||c.image_url.url.startsWith("https://")))b.push({fileData:{fileUri:c.image_url.url,mimeType:"image/*"}});else if("input_audio"===c.type&&c.input_audio?.data){let a=c.input_audio.format||"wav",d="mp3"===a?"audio/mpeg":`audio/${a}`;b.push({inlineData:{mime_type:d,data:c.input_audio.data}})}else if("audio_url"===c.type&&c.audio_url?.url?.startsWith("data:")){let a=c.audio_url.url,d=a.indexOf(",");if(-1!==d){let c=a.substring(5,d),e=a.substring(d+1),f=c.split(";")[0];b.push({inlineData:{mime_type:f,data:e}})}}}return b}function g(a){return"string"==typeof a?a:Array.isArray(a)?a.filter(a=>"text"===a.type).map(a=>a.text).join(""):""}function h(a){if("string"!=typeof a)return a;try{return JSON.parse(a)}catch{return null}}function i(){return`agent-${crypto.randomUUID()}`}function j(){return crypto.randomUUID()+Date.now().toString()}function k(){let a=["useful","bright","swift","calm","bold"],b=["fuze","wave","spark","flow","core"],c=a[Math.floor(Math.random()*a.length)],d=b[Math.floor(Math.random()*b.length)];return`${c}-${d}-${crypto.randomUUID().slice(0,5)}`}function l(a){let b=0,c=-1;for(let d=0;d<a.length;d++){let e=a[d],f=0,g=e.type;"object"===g||e.properties?f=3:"array"===g||e.items?f=2:g&&"null"!==g&&(f=1),f>c&&(c=f,b=d)}return b}function m(a){return a&&"object"==typeof a&&(!function a(b){if(b&&"object"==typeof b)for(let c of(void 0===b.const||b.enum||(b.enum=[b.const],delete b.const),Object.values(b)))c&&"object"==typeof c&&a(c)}(a),!function a(b){if(b&&"object"==typeof b)for(let c of(b.enum&&Array.isArray(b.enum)&&(b.enum=b.enum.map(a=>String(a)),b.type||(b.type="string")),Object.values(b)))c&&"object"==typeof c&&a(c)}(a),!function a(b){if(b&&"object"==typeof b){if(b.allOf&&Array.isArray(b.allOf)){let a={};for(let c of b.allOf)if(c.properties&&(a.properties||(a.properties={}),Object.assign(a.properties,c.properties)),c.required&&Array.isArray(c.required))for(let b of(a.required||(a.required=[]),c.required))a.required.includes(b)||a.required.push(b);delete b.allOf,a.properties&&(b.properties={...b.properties,...a.properties}),a.required&&(b.required=[...b.required||[],...a.required])}for(let c of Object.values(b))c&&"object"==typeof c&&a(c)}}(a),!function a(b){if(b&&"object"==typeof b){if(b.anyOf&&Array.isArray(b.anyOf)&&b.anyOf.length>0){let a=b.anyOf.filter(a=>a&&"null"!==a.type);if(a.length>0){let c=l(a),d=a[c];delete b.anyOf,Object.assign(b,d)}}if(b.oneOf&&Array.isArray(b.oneOf)&&b.oneOf.length>0){let a=b.oneOf.filter(a=>a&&"null"!==a.type);if(a.length>0){let c=l(a),d=a[c];delete b.oneOf,Object.assign(b,d)}}for(let c of Object.values(b))c&&"object"==typeof c&&a(c)}}(a),!function a(b){if(b&&"object"==typeof b){if(b.type&&Array.isArray(b.type)){let a=b.type.filter(a=>"null"!==a);b.type=a.length>0?a[0]:"string"}for(let c of Object.values(b))c&&"object"==typeof c&&a(c)}}(a),!function a(b){if(b&&"object"==typeof b)for(let c of(b.properties&&!b.type&&(b.type="object"),Object.values(b)))c&&"object"==typeof c&&a(c)}(a),!function a(b,c){if(b&&"object"==typeof b){if(Array.isArray(b)){for(let d of b)a(d,c);return}for(let d of Object.keys(b)){if(c.includes(d)||d.startsWith("x-")){delete b[d];continue}let e=b[d];e&&"object"==typeof e&&a(e,c)}}}(a,d),!function a(b){if(b&&"object"==typeof b){if(b.required&&Array.isArray(b.required)&&b.properties){let a=b.required.filter(a=>Object.prototype.hasOwnProperty.call(b.properties,a));0===a.length?delete b.required:b.required=a}for(let c of Object.values(b))c&&"object"==typeof c&&a(c)}}(a),!function a(b){if(b&&"object"==typeof b)for(let c of("object"!==b.type||b.properties&&0!==Object.keys(b.properties).length||(b.properties={reason:{type:"string",description:"Brief explanation of why you are calling this tool"}},b.required=["reason"]),Object.values(b)))c&&"object"==typeof c&&a(c)}(a)),a}},47723:(a,b,c)=>{c.r(b),c.d(b,{convertCommandCodeToOpenAI:()=>h});var d=c(46992),e=c(14170);function f(a,b,c=null){return{id:a.responseId,object:"chat.completion.chunk",created:a.created,model:a.model,choices:[{index:0,delta:b,finish_reason:c}]}}function g(a){switch(a){case"stop":case"error":return"stop";case"length":return"length";case"tool-calls":case"tool_use":return"tool_calls";case"content-filter":return"content_filter";default:return a||"stop"}}function h(a,b){var c;if(!a)return null;if(a&&"object"==typeof a&&"chat.completion.chunk"===a.object)return a;let d=a;if("string"==typeof a){let b=a.trim();if(!b)return null;let c=b.startsWith("data:")?b.slice(5).trim():b;if(!c||"[DONE]"===c)return null;try{d=JSON.parse(c)}catch{return null}}if(!d||"object"!=typeof d||!d.type)return null;c=d.model,b.responseId||(b.responseId=`chatcmpl-${Date.now()}`,b.created=Math.floor(Date.now()/1e3),b.model=b.model||c||"commandcode",b.chunkIndex=0,b.toolIndex=0,b.toolIndexById=new Map,b.openTools=new Set,b.openText=!1,b.finishReason=null,b.usage=null);let e=[];switch(d.type){case"text-delta":{let a=d.text||d.delta||"";if(!a)break;let c=0===b.chunkIndex?{role:"assistant",content:a}:{content:a};b.chunkIndex++,b.openText=!0,e.push(f(b,c));break}case"reasoning-delta":{let a=d.text||"";if(!a)break;let c=0===b.chunkIndex?{role:"assistant",reasoning_content:a}:{reasoning_content:a};b.chunkIndex++,e.push(f(b,c));break}case"tool-input-start":{let a=d.id||d.toolCallId||`call_${Date.now()}_${b.toolIndex}`,c=b.toolIndexById.get(a);null==c&&(c=b.toolIndex++,b.toolIndexById.set(a,c)),b.openTools.add(a);let g={...0===b.chunkIndex?{role:"assistant"}:{},tool_calls:[{index:c,id:a,type:"function",function:{name:d.toolName||"",arguments:""}}]};b.chunkIndex++,e.push(f(b,g));break}case"tool-input-delta":{let a=d.id||d.toolCallId,c=b.toolIndexById.get(a);if(null==c)break;let g={tool_calls:[{index:c,function:{arguments:d.delta||d.inputTextDelta||""}}]};e.push(f(b,g));break}case"tool-call":{let a=d.toolCallId;if(b.toolIndexById.has(a))break;let c=b.toolIndex++;b.toolIndexById.set(a,c);let g="string"==typeof d.input?d.input:JSON.stringify(d.input??{}),h={...0===b.chunkIndex?{role:"assistant"}:{},tool_calls:[{index:c,id:a,type:"function",function:{name:d.toolName||"",arguments:g}}]};b.chunkIndex++,e.push(f(b,h));break}case"finish-step":b.finishReason=g(d.finishReason),d.usage&&(b.usage=d.usage);break;case"finish":{let a=b.finishReason||g(d.finishReason||"stop"),c=f(b,{},a),h=d.totalUsage||b.usage;h&&(c.usage={prompt_tokens:h.inputTokens??0,completion_tokens:h.outputTokens??0,total_tokens:h.totalTokens??(h.inputTokens??0)+(h.outputTokens??0)}),e.push(c);break}case"error":{b.finishReason="stop";let a=d.error??d.message??"unknown",c="string"==typeof a?a:JSON.stringify(a);e.push(f(b,{content:`
63
63
 
64
64
  [CommandCode error: ${c}]`})),e.push(f(b,{},"stop"))}}return e.length?e:null}(0,d.kz)(e.h.COMMANDCODE,e.h.OPENAI,null,h)},52638:(a,b,c)=>{c.r(b),c.d(b,{geminiToOpenAIRequest:()=>g});var d=c(46992),e=c(14170),f=c(3156);function g(a,b,c){let d={model:a,messages:[],stream:c};if(b.generationConfig){let a=b.generationConfig;if(a.maxOutputTokens){let c={max_tokens:a.maxOutputTokens,tools:b.tools};d.max_tokens=(0,f.M)(c)}void 0!==a.temperature&&(d.temperature=a.temperature),void 0!==a.topP&&(d.top_p=a.topP)}if(b.systemInstruction){var e;let a="string"==typeof(e=b.systemInstruction)?e:e.parts&&Array.isArray(e.parts)?e.parts.map(a=>a.text||"").join(""):"";a&&d.messages.push({role:"system",content:a})}if(b.contents&&Array.isArray(b.contents))for(let a of b.contents){let b=function(a){let b="user"===a.role?"user":"assistant";if(!a.parts||!Array.isArray(a.parts))return null;let c=[],d=[];for(let b of a.parts)if(void 0!==b.text&&c.push({type:"text",text:b.text}),b.inlineData&&c.push({type:"image_url",image_url:{url:`data:${b.inlineData.mimeType};base64,${b.inlineData.data}`}}),b.functionCall&&d.push({id:`call_${Date.now()}_${Math.random().toString(36).slice(2,8)}`,type:"function",function:{name:b.functionCall.name,arguments:JSON.stringify(b.functionCall.args||{})}}),b.functionResponse)return{role:"tool",tool_call_id:b.functionResponse.id||b.functionResponse.name,content:JSON.stringify(b.functionResponse.response?.result||b.functionResponse.response||{})};if(d.length>0){let a={role:"assistant"};return c.length>0&&(a.content=1===c.length?c[0].text:c),a.tool_calls=d,a}return c.length>0?{role:b,content:1===c.length&&"text"===c[0].type?c[0].text:c}:null}(a);b&&d.messages.push(b)}if(b.tools&&Array.isArray(b.tools)){for(let a of(d.tools=[],b.tools))if(a.functionDeclarations)for(let b of a.functionDeclarations)d.tools.push({type:"function",function:{name:b.name,description:b.description||"",parameters:b.parameters||{type:"object",properties:{}}}})}return d}(0,d.kz)(e.h.GEMINI,e.h.OPENAI,g,null),(0,d.kz)(e.h.GEMINI_CLI,e.h.OPENAI,g,null)},52830:(a,b,c)=>{c.r(b),c.d(b,{convertKiroToOpenAI:()=>f});var d=c(46992),e=c(14170);function f(a,b){if(!a)return null;if("chat.completion.chunk"===a.object&&a.choices)return a;let c=a;if("string"==typeof a){let b=a.split("\n"),d="",e="";for(let a of b)a.startsWith("event:")?d=a.slice(6).trim():a.startsWith(":event-type:")?d=a.slice(12).trim():a.startsWith("data:")?e=a.slice(5).trim():a.startsWith(":content-type:")||a.trim()&&!a.startsWith(":")&&(e=a.trim());if(!e)return null;try{(c=JSON.parse(e))._eventType=d}catch{c={text:e,_eventType:d}}}b.responseId||(b.responseId=`chatcmpl-${Date.now()}`,b.created=Math.floor(Date.now()/1e3),b.chunkIndex=0);let d=c._eventType||c.event||"";if("assistantResponseEvent"===d||c.assistantResponseEvent){let a=c.assistantResponseEvent?.content||c.content||"";if(!a)return null;let d={id:b.responseId,object:"chat.completion.chunk",created:b.created,model:b.model||"kiro",choices:[{index:0,delta:{...0===b.chunkIndex?{role:"assistant"}:{},content:a},finish_reason:null}]};return b.chunkIndex++,d}if("reasoningContentEvent"===d||c.reasoningContentEvent){let a=c.reasoningContentEvent||c,d="string"==typeof a?a:a.text||a.content||c.content||"";if(!d)return null;let e={id:b.responseId,object:"chat.completion.chunk",created:b.created,model:b.model||"kiro",choices:[{index:0,delta:{...0===b.chunkIndex?{role:"assistant"}:{},reasoning_content:d},finish_reason:null}]};return b.chunkIndex++,e}if("toolUseEvent"===d||c.toolUseEvent){let a=c.toolUseEvent||c,d=a.toolUseId||`call_${Date.now()}`,e=a.name||"",f=a.input||{},g={id:b.responseId,object:"chat.completion.chunk",created:b.created,model:b.model||"kiro",choices:[{index:0,delta:{...0===b.chunkIndex?{role:"assistant"}:{},tool_calls:[{index:0,id:d,type:"function",function:{name:e,arguments:JSON.stringify(f)}}]},finish_reason:null}]};return b.chunkIndex++,g}if("messageStopEvent"===d||"done"===d||c.messageStopEvent){b.finishReason="stop";let a={id:b.responseId,object:"chat.completion.chunk",created:b.created,model:b.model||"kiro",choices:[{index:0,delta:{},finish_reason:"stop"}]};return b.usage&&"object"==typeof b.usage&&(a.usage=b.usage),a}if("usageEvent"===d||c.usageEvent){let a=c.usageEvent||c;a&&"object"==typeof a&&(b.usage={prompt_tokens:a.inputTokens||0,completion_tokens:a.outputTokens||0,total_tokens:(a.inputTokens||0)+(a.outputTokens||0)})}return null}(0,d.kz)(e.h.KIRO,e.h.OPENAI,null,f)},54817:(a,b,c)=>{c.r(b),c.d(b,{antigravityToOpenAIRequest:()=>g});var d=c(46992),e=c(14170),f=c(3156);function g(a,b,c){let d=b.request||b,e={model:a,messages:[],stream:c};if(d.generationConfig){let a=d.generationConfig;if(a.maxOutputTokens){let b={max_tokens:a.maxOutputTokens,tools:d.tools};e.max_tokens=(0,f.M)(b)}if(void 0!==a.temperature&&(e.temperature=a.temperature),void 0!==a.topP&&(e.top_p=a.topP),void 0!==a.topK&&(e.top_k=a.topK),a.thinkingConfig){let b=a.thinkingConfig.thinkingBudget||0;b>0&&(b<=2048?e.reasoning_effort="low":b<=16384?e.reasoning_effort="medium":e.reasoning_effort="high")}}if(d.systemInstruction){var g;let a="string"==typeof(g=d.systemInstruction)?g:g.parts&&Array.isArray(g.parts)?g.parts.map(a=>a.text||"").join(""):"";a&&e.messages.push({role:"system",content:a})}if(d.contents&&Array.isArray(d.contents))for(let a of d.contents){let b=function(a){let b="model"===a.role?"assistant":"user"===a.role?"user":a.role;if(!a.parts||!Array.isArray(a.parts))return null;let c=[],d=[],e=[],f="";for(let b of a.parts){if(!0===b.thought&&b.text){f+=b.text;continue}if(b.thoughtSignature&&void 0!==b.text){c.push({type:"text",text:b.text});continue}void 0!==b.text&&c.push({type:"text",text:b.text}),b.inlineData&&c.push({type:"image_url",image_url:{url:`data:${b.inlineData.mimeType};base64,${b.inlineData.data}`}}),b.functionCall&&d.push({id:b.functionCall.id||`call_${Date.now()}_${Math.random().toString(36).slice(2,8)}`,type:"function",function:{name:b.functionCall.name,arguments:JSON.stringify(b.functionCall.args||{})}}),b.functionResponse&&e.push({role:"tool",tool_call_id:b.functionResponse.id||b.functionResponse.name,content:JSON.stringify(b.functionResponse.response?.result||b.functionResponse.response||{})})}if(e.length>0)return e;if(d.length>0){let a={role:"assistant"};return c.length>0&&(a.content=1===c.length&&"text"===c[0].type?c[0].text:c),f&&(a.reasoning_content=f),a.tool_calls=d,a}if(c.length>0||f){let a={role:b};return c.length>0&&(a.content=1===c.length&&"text"===c[0].type?c[0].text:c),f&&(a.reasoning_content=f),a}return null}(a);b&&(Array.isArray(b)?e.messages.push(...b):e.messages.push(b))}if(d.tools&&Array.isArray(d.tools)){for(let a of(e.tools=[],d.tools))if(a.functionDeclarations)for(let b of a.functionDeclarations)e.tools.push({type:"function",function:{name:b.name,description:b.description||"",parameters:function a(b){if(!b||"object"!=typeof b)return b;let c=Array.isArray(b)?[...b]:{...b};if("string"==typeof c.type&&(c.type=c.type.toLowerCase()),delete c.enumDescriptions,c.properties){let b={};for(let[d,e]of Object.entries(c.properties))b[d]=a(e);c.properties=b}return c.items&&(c.items=a(c.items)),c}(b.parameters)||{type:"object",properties:{}}}})}return e}(0,d.kz)(e.h.ANTIGRAVITY,e.h.OPENAI,g,null)},55399:(a,b,c)=>{c.d(b,{Az:()=>h,fO:()=>k,kR:()=>i});var d=c(55511),e=c(75924);function f(a,b,c){return(0,d.createHash)("sha256").update(`${b}:${a}`).digest("hex").slice(0,c)}function g(a,b){let c=(0,d.createHash)("sha256").update(`${b}:${a}`).digest("hex");return`${c.slice(0,8)}-${c.slice(8,12)}-${c.slice(12,16)}-${c.slice(16,20)}-${c.slice(20,32)}`}function h(a){let b=a.tools;if(!b||0===b.length)return{body:a,toolNameMap:null};let c=new Map,d=[];for(let a of b){let b=`${a.name}${e.uR}`;c.set(b,a.name),d.push({...a,name:b})}let f=[...d,...j],g=a.messages?.map(a=>{if(!Array.isArray(a.content))return a;let b=a.content.map(a=>"tool_use"===a.type?{...a,name:`${a.name}${e.uR}`}:a);return{...a,content:b}});return{body:{...a,tools:f,messages:g||a.messages},toolNameMap:c.size>0?c:null}}function i(a,b){if(!b?.size||!Array.isArray(a?.content))return a;let c=a.content.map(a=>a?.type==="tool_use"&&b.has(a.name)?{...a,name:b.get(a.name)}:a);return{...a,content:c}}let j=[{name:"Task",description:"This tool is currently unavailable.",input_schema:{type:"object",properties:{}}},{name:"TaskOutput",description:"This tool is currently unavailable.",input_schema:{type:"object",properties:{}}},{name:"TaskStop",description:"This tool is currently unavailable.",input_schema:{type:"object",properties:{}}},{name:"TaskCreate",description:"This tool is currently unavailable.",input_schema:{type:"object",properties:{}}},{name:"TaskGet",description:"This tool is currently unavailable.",input_schema:{type:"object",properties:{}}},{name:"TaskUpdate",description:"This tool is currently unavailable.",input_schema:{type:"object",properties:{}}},{name:"TaskList",description:"This tool is currently unavailable.",input_schema:{type:"object",properties:{}}},{name:"Bash",description:"This tool is currently unavailable.",input_schema:{type:"object",properties:{}}},{name:"Glob",description:"This tool is currently unavailable.",input_schema:{type:"object",properties:{}}},{name:"Grep",description:"This tool is currently unavailable.",input_schema:{type:"object",properties:{}}},{name:"Read",description:"This tool is currently unavailable.",input_schema:{type:"object",properties:{}}},{name:"Edit",description:"This tool is currently unavailable.",input_schema:{type:"object",properties:{}}},{name:"Write",description:"This tool is currently unavailable.",input_schema:{type:"object",properties:{}}},{name:"NotebookEdit",description:"This tool is currently unavailable.",input_schema:{type:"object",properties:{}}},{name:"WebFetch",description:"This tool is currently unavailable.",input_schema:{type:"object",properties:{}}},{name:"WebSearch",description:"This tool is currently unavailable.",input_schema:{type:"object",properties:{}}},{name:"AskUserQuestion",description:"This tool is currently unavailable.",input_schema:{type:"object",properties:{}}},{name:"Skill",description:"This tool is currently unavailable.",input_schema:{type:"object",properties:{}}},{name:"EnterPlanMode",description:"This tool is currently unavailable.",input_schema:{type:"object",properties:{}}},{name:"ExitPlanMode",description:"This tool is currently unavailable.",input_schema:{type:"object",properties:{}}}];function k(a,b,c){let e,h,i,j,k;if(!b||!b.includes("sk-ant-oat"))return a;let l={...a},m=c||"claude-cloak-default",n={type:"text",text:(e=f(m,"cch",5),h=f(m,"build",3),`x-anthropic-billing-header: cc_version=2.1.92.${h}; cc_entrypoint=sdk-cli; cch=${e};`)};return Array.isArray(l.system)?l.system[0]?.text?.startsWith("x-anthropic-billing-header:")||(l.system=[n,...l.system]):"string"==typeof l.system?l.system=[n,{type:"text",text:l.system}]:l.system=[n],l.metadata?.user_id||(l.metadata={...l.metadata,user_id:(i=(0,d.createHash)("sha256").update(`device:${m}`).digest("hex"),j=g(m,"account"),k=c||g(m,"session"),`{"device_id":"${i}","account_uuid":"${j}","session_id":"${k}"}`)}),l}},57647:(a,b,c)=>{c.d(b,{SZ:()=>j,Tz:()=>h,jJ:()=>i});var d=c(35024);c(15626);function e(a){return"string"==typeof a&&a.startsWith("openai-compatible-")}function f(a){return"string"==typeof a&&a.startsWith("anthropic-compatible-")}function g(a){return e(a)&&a.includes("responses")?"responses":"chat"}function h(a){if(a.input&&(Array.isArray(a.input)||"string"==typeof a.input)&&!a.messages)return"openai-responses";if(a.request?.contents&&"antigravity"===a.userAgent)return"antigravity";if(a.contents&&Array.isArray(a.contents))return"gemini";if(a.stream_options||a.response_format||void 0!==a.logprobs||void 0!==a.top_logprobs||void 0!==a.n||void 0!==a.presence_penalty||void 0!==a.frequency_penalty||a.logit_bias||a.user)return"openai";if(a.messages&&Array.isArray(a.messages)){let b=a.messages[0];if(b?.content&&Array.isArray(b.content)){let c=b.content[0];if(c?.type==="text"&&!a.model?.includes("/")){if(a.system||a.anthropic_version)return"claude";let c=b.content.some(a=>"image"===a.type&&a.source?.type==="base64"),d=b.content.some(a=>"image_url"===a.type&&a.image_url?.url);if(c)return"claude";if(d)return"openai";if(b.content.some(a=>"tool_use"===a.type||"tool_result"===a.type))return"claude"}}if(void 0!==a.system||a.anthropic_version)return"claude"}return"openai"}function i(a){return e(a)?"responses"===g(a)?"openai-responses":"openai":f(a)?"claude":function(a){if(e(a)){let b=g(a);return{...d.xq.openai,format:"responses"===b?"openai-responses":"openai",baseUrl:"https://api.openai.com/v1"}}return f(a)?{...d.xq.anthropic,format:"claude",baseUrl:"https://api.anthropic.com/v1"}:d.xq[a]||d.xq.openai}(a).format||"openai"}function j(a){return!function(a){let b=a.messages||a.contents;if(!b?.length)return!0;let c=b[b.length-1];return c?.role==="user"}(a)&&(delete a.reasoning_effort,delete a.thinking),a}},59611:(a,b,c)=>{c.r(b),c.d(b,{openaiToVertexRequest:()=>h});var d=c(46992),e=c(14170),f=c(97102),g=c(96281);function h(a,b,c,d){var e=(0,f.openaiToGeminiRequest)(a,b,c,d);if(!e?.contents)return e;for(let a of e.contents)if(Array.isArray(a.parts))for(let b of a.parts)void 0!==b.thoughtSignature&&(b.thoughtSignature=g.n6),b.functionCall&&"id"in b.functionCall&&delete b.functionCall.id,b.functionResponse&&"id"in b.functionResponse&&delete b.functionResponse.id;return e}(0,d.kz)(e.h.OPENAI,e.h.VERTEX,h,null)},60983:(a,b,c)=>{c.r(b),c.d(b,{claudeToOpenAIRequest:()=>k});var d=c(46992),e=c(14170),f=c(3156);function g(a){return null!==a&&"object"==typeof a&&!Array.isArray(a)}function h(a,b){g(b)&&(a.chat_template_kwargs={...g(a.chat_template_kwargs)?a.chat_template_kwargs:{},...b})}function i(a,b){h(a,{enable_thinking:b})}function j(a,b,c,d=c){Object.prototype.hasOwnProperty.call(b||{},c)&&void 0!==b[c]&&(a[d]=b[c])}function k(a,b,c){let d={model:a,messages:[],stream:c};if(b.max_tokens&&(d.max_tokens=(0,f.M)(b)),void 0!==b.temperature&&(d.temperature=b.temperature),b.system){let a=Array.isArray(b.system)?b.system.map(a=>a.text||"").join("\n"):b.system;a&&d.messages.push({role:"system",content:a})}if(b.messages&&Array.isArray(b.messages))for(let a=0;a<b.messages.length;a++){let c=function(a){let b="user"===a.role||"tool"===a.role?"user":"assistant";if("string"==typeof a.content)return{role:b,content:a.content};if(Array.isArray(a.content)){let c=[],d=[],e=[];for(let b of a.content)switch(b.type){case"text":c.push({type:"text",text:b.text});break;case"image":b.source?.type==="base64"&&c.push({type:"image_url",image_url:{url:`data:${b.source.media_type};base64,${b.source.data}`}});break;case"tool_use":d.push({id:b.id,type:"function",function:{name:b.name,arguments:JSON.stringify(b.input||{})}});break;case"tool_result":let a="";"string"==typeof b.content?a=b.content:Array.isArray(b.content)?a=b.content.filter(a=>"text"===a.type).map(a=>a.text).join("\n")||JSON.stringify(b.content):b.content&&(a=JSON.stringify(b.content)),e.push({role:"tool",tool_call_id:b.tool_use_id,content:a})}if(e.length>0)return c.length>0?[...e,{role:"user",content:1===c.length&&"text"===c[0].type?c[0].text:c}]:e;if(d.length>0){let a={role:"assistant"};return c.length>0&&(a.content=1===c.length&&"text"===c[0].type?c[0].text:c),a.tool_calls=d,a}if(c.length>0)return{role:b,content:1===c.length&&"text"===c[0].type?c[0].text:c};if(0===a.content.length)return{role:b,content:""}}return null}(b.messages[a]);c&&(Array.isArray(c)?d.messages.push(...c):d.messages.push(c))}return!function(a){var b;if(!a||!Array.isArray(a.messages)||0===a.messages.length)return;let c=a.messages[a.messages.length-1];if(!c||"assistant"!==c.role||c.tool_calls)return;let d="string"==typeof(b=c.content)?b:Array.isArray(b)?b.map(a=>"string"==typeof a?a:a?.type==="text"&&"string"==typeof a.text?a.text:"").filter(Boolean).join("\n"):"";a.messages.pop(),function(a,b){let c="string"==typeof b?b.trim():"";if(!c)return;let d=["Claude trailing assistant prefill moved from the final message:",c,"\nInstruction: Treat the moved content as context for the next assistant response. Do not repeat it unless the user explicitly asks."].join("\n"),e=a.find(a=>"system"===a.role&&"string"==typeof a.content);if(e){e.content=`${e.content}
65
65
 
@@ -1,4 +1,4 @@
1
- "use strict";exports.id=7478,exports.ids=[7478],exports.modules={60592:(a,b,c)=>{c.d(b,{P:()=>g,h:()=>h});var d=c(79646);function e(a){return`'${String(a??"").replace(/'/g,"'\"'\"'")}'`}function f(a,b,{input:c="",timeoutMs:e=12e4,env:g={}}={}){return new Promise(f=>{let h=(0,d.spawn)(a,b,{stdio:["pipe","pipe","pipe"],env:{...process.env,...g}}),i="",j="",k=!1,l=setTimeout(()=>{k||h.kill("SIGKILL")},e);h.stdout.on("data",a=>{i+=a.toString()}),h.stderr.on("data",a=>{j+=a.toString()}),h.on("error",a=>{k=!0,clearTimeout(l),f({ok:!1,code:-1,stdout:i,stderr:a.message})}),h.on("close",a=>{k||(k=!0,clearTimeout(l),f({ok:0===a,code:a,stdout:i,stderr:j}))}),c&&h.stdin.write(c),h.stdin.end()})}async function g(a,b={}){let c,d=`${a.sshUser||"root"}@${a.host}`,h=!0===a.useSudo&&"root"!==a.sshUser,i=String(b.sshPassword||""),j=String(b.sudoPassword||i),k=(c="/opt/bluerouter-resource-agent",`#!/usr/bin/env bash
1
+ "use strict";exports.id=7478,exports.ids=[2763,7478],exports.modules={60592:(a,b,c)=>{c.d(b,{P:()=>g,h:()=>h});var d=c(79646);function e(a){return`'${String(a??"").replace(/'/g,"'\"'\"'")}'`}function f(a,b,{input:c="",timeoutMs:e=12e4,env:g={}}={}){return new Promise(f=>{let h=(0,d.spawn)(a,b,{stdio:["pipe","pipe","pipe"],env:{...process.env,...g}}),i="",j="",k=!1,l=setTimeout(()=>{k||h.kill("SIGKILL")},e);h.stdout.on("data",a=>{i+=a.toString()}),h.stderr.on("data",a=>{j+=a.toString()}),h.on("error",a=>{k=!0,clearTimeout(l),f({ok:!1,code:-1,stdout:i,stderr:a.message})}),h.on("close",a=>{k||(k=!0,clearTimeout(l),f({ok:0===a,code:a,stdout:i,stderr:j}))}),c&&h.stdin.write(c),h.stdin.end()})}async function g(a,b={}){let c,d=`${a.sshUser||"root"}@${a.host}`,h=!0===a.useSudo&&"root"!==a.sshUser,i=String(b.sshPassword||""),j=String(b.sudoPassword||i),k=(c="/opt/bluerouter-resource-agent",`#!/usr/bin/env bash
2
2
  set -euo pipefail
3
3
  command -v python3 >/dev/null 2>&1 || { echo "python3 is required"; exit 1; }
4
4
  mkdir -p ${e(c)}
@@ -701,4 +701,4 @@ sys.exit(1)
701
701
  PY_VERIFY
702
702
  echo "BlueRouter Resource Agent v2.4.0 installed on port ${Number(a.agentPort)}"
703
703
  `),l=h?`${j}
704
- ${k}`:k,m=["-p",String(a.sshPort||22),"-o","StrictHostKeyChecking=accept-new","-o","ConnectTimeout=12",d,h?"sudo -S -p '' bash -s":"bash -s"];return i?f("sshpass",["-e","ssh","-o","PreferredAuthentications=password,keyboard-interactive","-o","PubkeyAuthentication=no","-o","NumberOfPasswordPrompts=1",...m],{input:l,env:{SSHPASS:i}}):f("ssh",m,{input:l})}async function h(a){let b=await fetch(`http://${a.host}:${a.agentPort}/status`,{headers:{Authorization:`Bearer ${a.agentToken}`},cache:"no-store",signal:AbortSignal.timeout(7e3)});if(!b.ok){let a=await b.text().catch(()=>"");if(401===b.status)throw Error("Agent returned HTTP 401: token dashboard kh\xf4ng khớp với token agent. H\xe3y c\xe0i lại agent từ n\xfat sửa server.");throw Error(`Agent returned HTTP ${b.status}${a?`: ${a.slice(0,200)}`:""}`)}return b.json()}},62763:(a,b,c)=>{c.d(b,{Jc:()=>r,NY:()=>w,Q1:()=>s,WR:()=>v,X_:()=>u,gX:()=>t});var d=c(77598),e=c.n(d),f=c(51455),g=c.n(f),h=c(76760),i=c.n(h),j=c(49120);let k=i().join(j.DATA_DIR,"cluster-config.json"),l=new Set(["standalone","master","slave"]),m="__blueRouterClusterConfigMutation",n={version:1,nodeId:"",role:"standalone",enabled:!1,masterUrl:"",syncToken:"",intervalMinutes:5,lastAttemptAt:null,lastSyncAt:null,lastSnapshotHash:"",lastError:"",lastResult:null,commandAck:null};function o(a={}){let b=l.has(a.role)?a.role:"standalone";return{...n,...a,version:1,nodeId:String(a.nodeId||"").trim()||e().randomUUID(),role:b,enabled:!0===a.enabled,masterUrl:function(a){let b=String(a||"").trim().replace(/\/+$/,"");if(!b)return"";let c=new URL(b);if(!["http:","https:"].includes(c.protocol))throw Error("Master URL must use http:// or https://");if(c.username||c.password)throw Error("Master URL must not contain credentials");return c.toString().replace(/\/+$/,"")}(a.masterUrl),syncToken:String(a.syncToken||"").trim(),intervalMinutes:Math.min(1440,Math.max(1,Number(a.intervalMinutes)||5))}}async function p(a){await g().mkdir(j.DATA_DIR,{recursive:!0});let b=`${k}.${process.pid}.${e().randomUUID()}.tmp`;try{await g().writeFile(b,JSON.stringify(a,null,2),{mode:384}),await g().rename(b,k)}catch(a){throw await g().unlink(b).catch(()=>{}),a}}function q(a){let b=(globalThis[m]||Promise.resolve()).then(a,a);return globalThis[m]=b.catch(()=>{}),b}async function r({includeSecrets:a=!1}={}){let b={};try{b=JSON.parse(await g().readFile(k,"utf8"))}catch(a){a?.code!=="ENOENT"&&console.warn("[cluster] failed to read config:",a?.message||a)}let c=o(b);if(b.nodeId||await p(c),a)return c;let{syncToken:d,...e}=c;return{...e,hasSyncToken:!!c.syncToken}}async function s(a={}){if(!a||"object"!=typeof a||Array.isArray(a))throw Error("Invalid cluster config payload");return q(async()=>{let b=await r({includeSecrets:!0}),c={};for(let b of["role","enabled","masterUrl","syncToken","intervalMinutes"])Object.prototype.hasOwnProperty.call(a,b)&&(c[b]=a[b]);let d=o({...b,...c});if("master"!==d.role||d.syncToken||(d.syncToken=e().randomBytes(32).toString("base64url")),d.enabled&&"slave"===d.role){if(!d.masterUrl)throw Error("Master URL is required for Standby mode");if(!d.syncToken)throw Error("Sync token is required for Standby mode")}return await p(d),d})}async function t(){return q(async()=>{let a={...await r({includeSecrets:!0}),syncToken:e().randomBytes(32).toString("base64url")};return await p(a),a})}async function u(a={}){return q(async()=>{let b=await r({includeSecrets:!0}),c=o({...b,...a,nodeId:b.nodeId,role:b.role,enabled:b.enabled,masterUrl:b.masterUrl,syncToken:b.syncToken,intervalMinutes:b.intervalMinutes});return await p(c),c})}async function v(){return"slave"===(await r({includeSecrets:!0})).role}function w(a,b){let c=Buffer.from(String(a||"")),d=Buffer.from(String(b||""));return c.length>0&&c.length===d.length&&e().timingSafeEqual(c,d)}}};
704
+ ${k}`:k,m=["-p",String(a.sshPort||22),"-o","StrictHostKeyChecking=accept-new","-o","ConnectTimeout=12",d,h?"sudo -S -p '' bash -s":"bash -s"];return i?f("sshpass",["-e","ssh","-o","PreferredAuthentications=password,keyboard-interactive","-o","PubkeyAuthentication=no","-o","NumberOfPasswordPrompts=1",...m],{input:l,env:{SSHPASS:i}}):f("ssh",m,{input:l})}async function h(a){let b=await fetch(`http://${a.host}:${a.agentPort}/status`,{headers:{Authorization:`Bearer ${a.agentToken}`},cache:"no-store",signal:AbortSignal.timeout(7e3)});if(!b.ok){let a=await b.text().catch(()=>"");if(401===b.status)throw Error("Agent returned HTTP 401: token dashboard kh\xf4ng khớp với token agent. H\xe3y c\xe0i lại agent từ n\xfat sửa server.");throw Error(`Agent returned HTTP ${b.status}${a?`: ${a.slice(0,200)}`:""}`)}return b.json()}},62763:(a,b,c)=>{c.d(b,{Jc:()=>r,NY:()=>w,Q1:()=>s,X_:()=>u,gX:()=>t,isClusterStandby:()=>v});var d=c(77598),e=c.n(d),f=c(51455),g=c.n(f),h=c(76760),i=c.n(h),j=c(49120);let k=i().join(j.DATA_DIR,"cluster-config.json"),l=new Set(["standalone","master","slave"]),m="__blueRouterClusterConfigMutation",n={version:1,nodeId:"",role:"standalone",enabled:!1,masterUrl:"",syncToken:"",intervalMinutes:5,lastAttemptAt:null,lastSyncAt:null,lastSnapshotHash:"",lastError:"",lastResult:null,commandAck:null};function o(a={}){let b=l.has(a.role)?a.role:"standalone";return{...n,...a,version:1,nodeId:String(a.nodeId||"").trim()||e().randomUUID(),role:b,enabled:!0===a.enabled,masterUrl:function(a){let b=String(a||"").trim().replace(/\/+$/,"");if(!b)return"";let c=new URL(b);if(!["http:","https:"].includes(c.protocol))throw Error("Master URL must use http:// or https://");if(c.username||c.password)throw Error("Master URL must not contain credentials");return c.toString().replace(/\/+$/,"")}(a.masterUrl),syncToken:String(a.syncToken||"").trim(),intervalMinutes:Math.min(1440,Math.max(1,Number(a.intervalMinutes)||5))}}async function p(a){await g().mkdir(j.DATA_DIR,{recursive:!0});let b=`${k}.${process.pid}.${e().randomUUID()}.tmp`;try{await g().writeFile(b,JSON.stringify(a,null,2),{mode:384}),await g().rename(b,k)}catch(a){throw await g().unlink(b).catch(()=>{}),a}}function q(a){let b=(globalThis[m]||Promise.resolve()).then(a,a);return globalThis[m]=b.catch(()=>{}),b}async function r({includeSecrets:a=!1}={}){let b={};try{b=JSON.parse(await g().readFile(k,"utf8"))}catch(a){a?.code!=="ENOENT"&&console.warn("[cluster] failed to read config:",a?.message||a)}let c=o(b);if(b.nodeId||await p(c),a)return c;let{syncToken:d,...e}=c;return{...e,hasSyncToken:!!c.syncToken}}async function s(a={}){if(!a||"object"!=typeof a||Array.isArray(a))throw Error("Invalid cluster config payload");return q(async()=>{let b=await r({includeSecrets:!0}),c={};for(let b of["role","enabled","masterUrl","syncToken","intervalMinutes"])Object.prototype.hasOwnProperty.call(a,b)&&(c[b]=a[b]);let d=o({...b,...c});if("master"!==d.role||d.syncToken||(d.syncToken=e().randomBytes(32).toString("base64url")),d.enabled&&"slave"===d.role){if(!d.masterUrl)throw Error("Master URL is required for Standby mode");if(!d.syncToken)throw Error("Sync token is required for Standby mode")}return await p(d),d})}async function t(){return q(async()=>{let a={...await r({includeSecrets:!0}),syncToken:e().randomBytes(32).toString("base64url")};return await p(a),a})}async function u(a={}){return q(async()=>{let b=await r({includeSecrets:!0}),c=o({...b,...a,nodeId:b.nodeId,role:b.role,enabled:b.enabled,masterUrl:b.masterUrl,syncToken:b.syncToken,intervalMinutes:b.intervalMinutes});return await p(c),c})}async function v(){return"slave"===(await r({includeSecrets:!0})).role}function w(a,b){let c=Buffer.from(String(a||"")),d=Buffer.from(String(b||""));return c.length>0&&c.length===d.length&&e().timingSafeEqual(c,d)}}};
@@ -1 +1 @@
1
- "use strict";exports.id=7753,exports.ids=[7753],exports.modules={97753:(a,b,c)=>{c.d(b,{Fh:()=>d.Fh,P:()=>d.getProviderConnections,Uv:()=>d.Uv,createProviderConnection:()=>d.iE,hr:()=>d.hr,updateProviderConnection:()=>d.updateProviderConnection});var d=c(70321)}};
1
+ "use strict";exports.id=7753,exports.ids=[7753],exports.modules={97753:(a,b,c)=>{c.d(b,{Fh:()=>d.getProviderNodes,P:()=>d.getProviderConnections,Uv:()=>d.getCombos,createProviderConnection:()=>d.createProviderConnection,hr:()=>d.getProxyPoolById,updateProviderConnection:()=>d.updateProviderConnection});var d=c(70321)}};
@@ -1 +1 @@
1
- "use strict";exports.id=7812,exports.ids=[7812],exports.modules={9588:(a,b,c)=>{c.d(b,{Cy:()=>i,Gk:()=>l,I8:()=>k,Tv:()=>v,UX:()=>p,aV:()=>o,bz:()=>r,hH:()=>u,ny:()=>s,oW:()=>t,s0:()=>m,ub:()=>n,vZ:()=>q});var d=c(65573),e=c(23211),f=c(89718),g=c(33792),h=c(90389);let i="dashboard_view_mode";function j(a){return String(a||"").trim().toLowerCase()}function k(a){return j(a)}function l(a={}){return[a.ldapUsername,a.ldapEmail,a.ldapName,a.oidcEmail,a.oidcName,a.localUsername,a.username,a.email].map(j).filter(Boolean)}function m(a={}){let b=l(a),c=b[0]||"local",d=a.ldapName||a.ldapEmail||a.oidcName||a.oidcEmail||a.localUsername||c;return{userId:c,displayName:d,loginMethod:a.oidc?"OIDC":a.ldap?"LDAP":"Local",candidates:b}}function n(a={},b={}){var c;if(!b?.authenticated)return!1;if(b.local||!b.ldap&&!b.oidc||b.role===h.hS.ADMIN||!0===b.ldapIsAdmin)return!0;let d=Array.isArray(c=a.ldapAllowedUsers)?c.map(j).filter(Boolean):String(c||"").split(/[,\n]/).map(j).filter(Boolean);return 0!==d.length&&l(b).some(a=>d.includes(a))}function o(a={},b={}){return!(!b?.authenticated||n(a,b))&&(b.role===h.hS.MONITOR_ADMIN||!0===b.ldapIsMonitorAdmin)}function p(a={},b={}){return!(!b?.authenticated||n(a,b)||o(a,b))&&(b.role===h.hS.AI_GATEWAYS_MONITOR||!0===b.ldapIsAiGatewaysMonitor)}function q(a={},b={}){return b?.authenticated?n(a,b)?h.hS.ADMIN:o(a,b)?h.hS.MONITOR_ADMIN:p(a,b)?h.hS.AI_GATEWAYS_MONITOR:h.hS.USER:h.hS.GUEST}function r(a={}){return!0===a.isAdmin||!0===a.isMonitorAdmin}async function s(){let a=await (0,f.mt)(),b=await (0,d.UL)(),c=await (0,g.dY)(b.get("auth_token")?.value);if(!c?.authenticated)return{authenticated:!1,isAdmin:!1,actualIsAdmin:!1,showAsUser:!1,canToggleUserMode:!1,isMonitorAdmin:!1,isAiGatewaysMonitor:!1,role:h.hS.GUEST,actualRole:h.hS.GUEST,userId:"",displayName:"Guest",loginMethod:"None",settings:{...a,requireLogin:!0},session:null};let e=m(c||{}),j=q(a,c||{}),k=j===h.hS.ADMIN,l=k&&b.get(i)?.value==="user",n=l?h.hS.USER:j,o=n===h.hS.ADMIN,p=n===h.hS.MONITOR_ADMIN,r=n===h.hS.AI_GATEWAYS_MONITOR;return{authenticated:!0,isAdmin:o,actualIsAdmin:k,showAsUser:l,canToggleUserMode:k,isMonitorAdmin:p,isAiGatewaysMonitor:r,role:n,actualRole:j,canManageApiKeys:o||p,canUseMonitorAdminTabs:o||p,canViewAllAnalytics:o||p||r,...e,settings:{...a,requireLogin:!0},session:c}}async function t(){let a=await s();return a.authenticated?{access:a,response:null}:{access:a,response:e.NextResponse.json({error:"Authentication required"},{status:401})}}async function u(a={}){let{allowMonitorAdmin:b=!1}=a||{},{access:c,response:d}=await t();return d?{access:c,response:d}:c.isAdmin||b&&c.isMonitorAdmin?{access:c,response:null}:{access:c,response:e.NextResponse.json({error:"Admin access required"},{status:403})}}function v(a,b){if(!a?.authenticated||!b)return!1;if(r(a))return!0;let c=j(a.userId),d=j(b.ownerUser),e=j(b.createdByUser);return!!c&&(d===c||e===c)}},17509:(a,b,c)=>{c.d(b,{V:()=>o});var d=c(91356),e=c(80700),f=c(99129),g=c(73575),h=c(41570),i=c(19035),j=c(44893),k=c(69052);async function l(a,b,c){let l,{protected:m,header:n,payload:o}=a,p={};if(m&&(p=(0,h.OX)(m,f.Ye,"JWS Protected Header is invalid")),void 0!==n){if(!(0,i.fz)(p,n))throw new f.Ye("JWS Protected and JWS Unprotected Header Parameter names must be disjoint");l={...p,...n}}else l=p;let q=(0,j.nI)(f.Ye,j.qc,b[1],p,l),r=!0;if(q.includes("b64")&&"boolean"!=typeof(r=p.b64))throw new f.Ye('The "b64" (base64url-encode payload) Header Parameter must be a boolean');let{alg:s}=l;if("string"!=typeof s||!s)throw new f.Ye('JWS "alg" (Algorithm) Header Parameter missing or invalid');if(b[0]&&!b[0].has(s))throw new f.Rb('"alg" (Algorithm) Header Parameter value not allowed');if(r){if("string"!=typeof o)throw new f.Ye("JWS Payload must be a string")}else if("string"!=typeof o&&!(o instanceof Uint8Array))throw new f.Ye("JWS Payload must be a string or an Uint8Array instance");let t=!1;"function"==typeof c&&(c=await c(p,a),t=!0);let u=(0,e.q)(s),v=(0,g.xW)(void 0!==m?(0,g.lF)(m):new Uint8Array,(0,g.lF)("."),"string"==typeof o?r?b[2]??=(0,h.Fo)(o,"payload",f.Ye):g.Rd.encode(o):o),w=(0,h.h2)(a.signature,"signature",f.Ye),x=await (0,k.d)(u,c,"verify");if(!await (0,d.M)(u,x,w,v))throw new f.h2;return[r?(0,h.h2)(o,"payload",f.Ye):"string"==typeof o?g.Rd.encode(o):o,p,r,x,t]}async function m(a,b,c){if(a instanceof Uint8Array&&(a=g.D0.decode(a)),"string"!=typeof a)throw new f.Ye("Compact JWS must be a string or Uint8Array");let{0:d,1:e,2:h,length:i}=a.split(".");if(3!==i)throw new f.Ye("Invalid Compact JWS");return l({payload:e,protected:d,signature:h},b,c)}var n=c(17347);async function o(a,b,c){let d=await m(a,[c&&(0,j.Fw)("algorithms",c.algorithms),c?.crit],b);if(!d[2])throw new f.Dp("JWTs MUST NOT use unencoded payload");let e={payload:(0,n.k6)(d[1],d[0],c),protectedHeader:d[1]};return"function"==typeof b?{...e,key:d[3]}:e}},33669:(a,b,c)=>{c.d(b,{MI:()=>e,RC:()=>h,zx:()=>f});var d=c(89718);function e(a){return Array.isArray(a)?[...new Set(a.map(a=>String(a||"").trim()).filter(Boolean))]:[]}function f(a,b){if(!a||!1===a.isActive)return!1;let c=String(b||"").trim();if(!c)return!1;let d=e(a.allowedModels);return 0===d.length||d.includes(c)}async function g(a){let b,c=await (0,d.mt)(),e=(b=a?.headers?.get?.("Authorization")||"").startsWith("Bearer ")?b.slice(7).trim():a?.headers?.get?.("x-api-key")?.trim()||null;if(!e)return{settings:c,apiKey:null,keyRecord:null,missing:!0,invalid:!1};let f=await (0,d.mY)(e);return{settings:c,apiKey:e,keyRecord:f,missing:!1,invalid:!f||!1===f.isActive}}async function h(a,b){let c=await g(a);return c.missing?{error:{message:"Missing API key",type:"authentication_error"},status:401}:c.invalid?{error:{message:"Invalid API key",type:"authentication_error"},status:401}:{data:function(a,b){if(!b||0===e(b?.allowedModels).length)return a;let c=new Set(e(b.allowedModels));return(a||[]).filter(a=>c.has(a?.id))}(b,c.keyRecord)}}},33792:(a,b,c)=>{c.d(b,{Dc:()=>p,OZ:()=>s,YK:()=>n,dY:()=>q,tm:()=>r});var d=c(84433),e=c(17509),f=c(73024),g=c.n(f),h=c(76760),i=c.n(h),j=c(77598),k=c.n(j),l=c(49120);let m=new TextEncoder().encode(function(){if(process.env.JWT_SECRET)return process.env.JWT_SECRET;let a=i().join(l.DATA_DIR,"jwt-secret");try{return g().readFileSync(a,"utf8").trim()}catch{}g().mkdirSync(l.DATA_DIR,{recursive:!0});let b=k().randomBytes(32).toString("hex");return g().writeFileSync(a,b,{mode:384}),b}());function n(a){let b="true"===process.env.AUTH_COOKIE_SECURE,c=a?.headers?.get?.("x-forwarded-proto");return b||"https"===c}async function o(a={}){return new d.P({authenticated:!0,...a}).setProtectedHeader({alg:"HS256"}).setIssuedAt().setExpirationTime("86400s").sign(m)}async function p(a){if(!a)return!1;try{return await (0,e.V)(a,m),!0}catch{return!1}}async function q(a){if(!a)return null;try{let{payload:b}=await (0,e.V)(a,m);return b}catch{return null}}async function r(a,b,c={}){let d=await o(c);a.set("auth_token",d,{httpOnly:!0,secure:n(b),sameSite:"lax",path:"/",maxAge:86400})}function s(a){a.delete("auth_token")}},47812:(a,b,c)=>{c.d(b,{LW:()=>k,T4:()=>p,WZ:()=>o,Xl:()=>r,ZN:()=>l,_p:()=>t,nC:()=>q,nm:()=>v,ss:()=>n,uP:()=>s,vS:()=>m});var d=c(89718),e=c(74452),f=c(54603),g=c(490),h=c(33669),i=c(9588);function j(a,b){let c=Number(a);return!Number.isFinite(c)||c<=0?b:Math.floor(c)}function k(a){if(!a||"object"!=typeof a||Array.isArray(a))return{};let b={};for(let[c,d]of Object.entries(a)){let a=(0,i.I8)(c);if(!a)continue;let e=j(d,0);e<=0||(b[a]=e)}return b}function l(a={}){return j(a?.userApiKeyLimit,5)}function m(a={}){return k(a?.userApiKeyLimitOverrides)}function n(a={},b=""){let c=(0,i.I8)(b),d=m(a);return c&&d[c]>0?d[c]:l(a)}function o(a){return String(a||"").trim()}function p(a){if(Array.isArray(a))return(0,h.MI)(a);let b=o(a);return b?[b]:[]}function q(a={}){let b=p(a.apiKeyDefaultModels);return b.length>0?b:p(a.apiKeyDefaultModel)}function r(a={}){let b=a?.apiKeyDefaultPolicy;return(0,g.jQ)(b&&"object"==typeof b?b:g.is)}function s(a={}){return(0,h.MI)(q(a))}async function t(a){let b=(0,i.I8)(a||"");return b?(0,e.mI)({ownerUser:b}):0}async function u(a,b,c={}){let e={authenticated:!0,...b||{}},g=(0,i.s0)(e),h=(0,i.I8)(g.userId);if(!h)return{created:!1,skipped:"missing_owner"};let j=await t(h);if(j>0)return{created:!1,skipped:"already_has_key",apiKeyCount:j};let k=a||await (0,d.mt)(),l=s(k);if(0===l.length)return{created:!1,skipped:"missing_default_model"};let m=await (0,f.Xj)();return{created:!0,key:await (0,d.Iq)(c.name||function(a={}){let b=String(a.displayName||a.userId||"user").trim();return`Default API Key - ${b}`.slice(0,120)}(g),m,{allowedModels:l,limits:r(k),ownerUser:h,createdByUser:h})}}async function v(a,b,c={}){try{return await u(a,b,c)}catch(a){return console.log("Auto API key provisioning skipped:",a?.message||a),{created:!1,skipped:"error",error:a?.message||String(a)}}}},90389:(a,b,c)=>{c.d(b,{hS:()=>d});let d=Object.freeze({ADMIN:"admin",MONITOR_ADMIN:"monitor_admin",AI_GATEWAYS_MONITOR:"ai_gateways_monitor",USER:"user",GUEST:"guest"});Object.freeze([{href:"/dashboard/endpoint",label:"Endpoint",icon:"api"},{href:"/dashboard/api-keys",label:"API Keys",icon:"vpn_key"},{href:"/dashboard/usage",label:"Usage",icon:"bar_chart"},{href:"/dashboard/analytics",label:"Analytics",icon:"monitoring"},{href:"/dashboard/ai-power-index",label:"AI Power Index",icon:"electric_bolt"},{href:"/dashboard/quota",label:"Quota Tracker",icon:"data_usage"}]),Object.freeze(["/dashboard","/dashboard/endpoint","/dashboard/api-keys","/dashboard/usage","/dashboard/analytics","/dashboard/ai-power-index","/dashboard/quota"])}};
1
+ "use strict";exports.id=7812,exports.ids=[7812],exports.modules={9588:(a,b,c)=>{c.d(b,{Cy:()=>i,Gk:()=>l,I8:()=>k,Tv:()=>v,UX:()=>p,aV:()=>o,bz:()=>r,hH:()=>u,ny:()=>s,oW:()=>t,s0:()=>m,ub:()=>n,vZ:()=>q});var d=c(65573),e=c(23211),f=c(89718),g=c(33792),h=c(90389);let i="dashboard_view_mode";function j(a){return String(a||"").trim().toLowerCase()}function k(a){return j(a)}function l(a={}){return[a.ldapUsername,a.ldapEmail,a.ldapName,a.oidcEmail,a.oidcName,a.localUsername,a.username,a.email].map(j).filter(Boolean)}function m(a={}){let b=l(a),c=b[0]||"local",d=a.ldapName||a.ldapEmail||a.oidcName||a.oidcEmail||a.localUsername||c;return{userId:c,displayName:d,loginMethod:a.oidc?"OIDC":a.ldap?"LDAP":"Local",candidates:b}}function n(a={},b={}){var c;if(!b?.authenticated)return!1;if(b.local||!b.ldap&&!b.oidc||b.role===h.hS.ADMIN||!0===b.ldapIsAdmin)return!0;let d=Array.isArray(c=a.ldapAllowedUsers)?c.map(j).filter(Boolean):String(c||"").split(/[,\n]/).map(j).filter(Boolean);return 0!==d.length&&l(b).some(a=>d.includes(a))}function o(a={},b={}){return!(!b?.authenticated||n(a,b))&&(b.role===h.hS.MONITOR_ADMIN||!0===b.ldapIsMonitorAdmin)}function p(a={},b={}){return!(!b?.authenticated||n(a,b)||o(a,b))&&(b.role===h.hS.AI_GATEWAYS_MONITOR||!0===b.ldapIsAiGatewaysMonitor)}function q(a={},b={}){return b?.authenticated?n(a,b)?h.hS.ADMIN:o(a,b)?h.hS.MONITOR_ADMIN:p(a,b)?h.hS.AI_GATEWAYS_MONITOR:h.hS.USER:h.hS.GUEST}function r(a={}){return!0===a.isAdmin||!0===a.isMonitorAdmin}async function s(){let a=await (0,f.getSettings)(),b=await (0,d.UL)(),c=await (0,g.dY)(b.get("auth_token")?.value);if(!c?.authenticated)return{authenticated:!1,isAdmin:!1,actualIsAdmin:!1,showAsUser:!1,canToggleUserMode:!1,isMonitorAdmin:!1,isAiGatewaysMonitor:!1,role:h.hS.GUEST,actualRole:h.hS.GUEST,userId:"",displayName:"Guest",loginMethod:"None",settings:{...a,requireLogin:!0},session:null};let e=m(c||{}),j=q(a,c||{}),k=j===h.hS.ADMIN,l=k&&b.get(i)?.value==="user",n=l?h.hS.USER:j,o=n===h.hS.ADMIN,p=n===h.hS.MONITOR_ADMIN,r=n===h.hS.AI_GATEWAYS_MONITOR;return{authenticated:!0,isAdmin:o,actualIsAdmin:k,showAsUser:l,canToggleUserMode:k,isMonitorAdmin:p,isAiGatewaysMonitor:r,role:n,actualRole:j,canManageApiKeys:o||p,canUseMonitorAdminTabs:o||p,canViewAllAnalytics:o||p||r,...e,settings:{...a,requireLogin:!0},session:c}}async function t(){let a=await s();return a.authenticated?{access:a,response:null}:{access:a,response:e.NextResponse.json({error:"Authentication required"},{status:401})}}async function u(a={}){let{allowMonitorAdmin:b=!1}=a||{},{access:c,response:d}=await t();return d?{access:c,response:d}:c.isAdmin||b&&c.isMonitorAdmin?{access:c,response:null}:{access:c,response:e.NextResponse.json({error:"Admin access required"},{status:403})}}function v(a,b){if(!a?.authenticated||!b)return!1;if(r(a))return!0;let c=j(a.userId),d=j(b.ownerUser),e=j(b.createdByUser);return!!c&&(d===c||e===c)}},17509:(a,b,c)=>{c.d(b,{V:()=>o});var d=c(91356),e=c(80700),f=c(99129),g=c(73575),h=c(41570),i=c(19035),j=c(44893),k=c(69052);async function l(a,b,c){let l,{protected:m,header:n,payload:o}=a,p={};if(m&&(p=(0,h.OX)(m,f.Ye,"JWS Protected Header is invalid")),void 0!==n){if(!(0,i.fz)(p,n))throw new f.Ye("JWS Protected and JWS Unprotected Header Parameter names must be disjoint");l={...p,...n}}else l=p;let q=(0,j.nI)(f.Ye,j.qc,b[1],p,l),r=!0;if(q.includes("b64")&&"boolean"!=typeof(r=p.b64))throw new f.Ye('The "b64" (base64url-encode payload) Header Parameter must be a boolean');let{alg:s}=l;if("string"!=typeof s||!s)throw new f.Ye('JWS "alg" (Algorithm) Header Parameter missing or invalid');if(b[0]&&!b[0].has(s))throw new f.Rb('"alg" (Algorithm) Header Parameter value not allowed');if(r){if("string"!=typeof o)throw new f.Ye("JWS Payload must be a string")}else if("string"!=typeof o&&!(o instanceof Uint8Array))throw new f.Ye("JWS Payload must be a string or an Uint8Array instance");let t=!1;"function"==typeof c&&(c=await c(p,a),t=!0);let u=(0,e.q)(s),v=(0,g.xW)(void 0!==m?(0,g.lF)(m):new Uint8Array,(0,g.lF)("."),"string"==typeof o?r?b[2]??=(0,h.Fo)(o,"payload",f.Ye):g.Rd.encode(o):o),w=(0,h.h2)(a.signature,"signature",f.Ye),x=await (0,k.d)(u,c,"verify");if(!await (0,d.M)(u,x,w,v))throw new f.h2;return[r?(0,h.h2)(o,"payload",f.Ye):"string"==typeof o?g.Rd.encode(o):o,p,r,x,t]}async function m(a,b,c){if(a instanceof Uint8Array&&(a=g.D0.decode(a)),"string"!=typeof a)throw new f.Ye("Compact JWS must be a string or Uint8Array");let{0:d,1:e,2:h,length:i}=a.split(".");if(3!==i)throw new f.Ye("Invalid Compact JWS");return l({payload:e,protected:d,signature:h},b,c)}var n=c(17347);async function o(a,b,c){let d=await m(a,[c&&(0,j.Fw)("algorithms",c.algorithms),c?.crit],b);if(!d[2])throw new f.Dp("JWTs MUST NOT use unencoded payload");let e={payload:(0,n.k6)(d[1],d[0],c),protectedHeader:d[1]};return"function"==typeof b?{...e,key:d[3]}:e}},33669:(a,b,c)=>{c.d(b,{MI:()=>e,RC:()=>h,zx:()=>f});var d=c(89718);function e(a){return Array.isArray(a)?[...new Set(a.map(a=>String(a||"").trim()).filter(Boolean))]:[]}function f(a,b){if(!a||!1===a.isActive)return!1;let c=String(b||"").trim();if(!c)return!1;let d=e(a.allowedModels);return 0===d.length||d.includes(c)}async function g(a){let b,c=await (0,d.getSettings)(),e=(b=a?.headers?.get?.("Authorization")||"").startsWith("Bearer ")?b.slice(7).trim():a?.headers?.get?.("x-api-key")?.trim()||null;if(!e)return{settings:c,apiKey:null,keyRecord:null,missing:!0,invalid:!1};let f=await (0,d.getApiKeyByKey)(e);return{settings:c,apiKey:e,keyRecord:f,missing:!1,invalid:!f||!1===f.isActive}}async function h(a,b){let c=await g(a);return c.missing?{error:{message:"Missing API key",type:"authentication_error"},status:401}:c.invalid?{error:{message:"Invalid API key",type:"authentication_error"},status:401}:{data:function(a,b){if(!b||0===e(b?.allowedModels).length)return a;let c=new Set(e(b.allowedModels));return(a||[]).filter(a=>c.has(a?.id))}(b,c.keyRecord)}}},33792:(a,b,c)=>{c.d(b,{Dc:()=>p,OZ:()=>s,YK:()=>n,dY:()=>q,tm:()=>r});var d=c(84433),e=c(17509),f=c(73024),g=c.n(f),h=c(76760),i=c.n(h),j=c(77598),k=c.n(j),l=c(49120);let m=new TextEncoder().encode(function(){if(process.env.JWT_SECRET)return process.env.JWT_SECRET;let a=i().join(l.DATA_DIR,"jwt-secret");try{return g().readFileSync(a,"utf8").trim()}catch{}g().mkdirSync(l.DATA_DIR,{recursive:!0});let b=k().randomBytes(32).toString("hex");return g().writeFileSync(a,b,{mode:384}),b}());function n(a){let b="true"===process.env.AUTH_COOKIE_SECURE,c=a?.headers?.get?.("x-forwarded-proto");return b||"https"===c}async function o(a={}){return new d.P({authenticated:!0,...a}).setProtectedHeader({alg:"HS256"}).setIssuedAt().setExpirationTime("86400s").sign(m)}async function p(a){if(!a)return!1;try{return await (0,e.V)(a,m),!0}catch{return!1}}async function q(a){if(!a)return null;try{let{payload:b}=await (0,e.V)(a,m);return b}catch{return null}}async function r(a,b,c={}){let d=await o(c);a.set("auth_token",d,{httpOnly:!0,secure:n(b),sameSite:"lax",path:"/",maxAge:86400})}function s(a){a.delete("auth_token")}},47812:(a,b,c)=>{c.d(b,{LW:()=>k,T4:()=>p,WZ:()=>o,Xl:()=>r,ZN:()=>l,_p:()=>t,nC:()=>q,nm:()=>v,ss:()=>n,uP:()=>s,vS:()=>m});var d=c(89718),e=c(74452),f=c(54603),g=c(490),h=c(33669),i=c(9588);function j(a,b){let c=Number(a);return!Number.isFinite(c)||c<=0?b:Math.floor(c)}function k(a){if(!a||"object"!=typeof a||Array.isArray(a))return{};let b={};for(let[c,d]of Object.entries(a)){let a=(0,i.I8)(c);if(!a)continue;let e=j(d,0);e<=0||(b[a]=e)}return b}function l(a={}){return j(a?.userApiKeyLimit,5)}function m(a={}){return k(a?.userApiKeyLimitOverrides)}function n(a={},b=""){let c=(0,i.I8)(b),d=m(a);return c&&d[c]>0?d[c]:l(a)}function o(a){return String(a||"").trim()}function p(a){if(Array.isArray(a))return(0,h.MI)(a);let b=o(a);return b?[b]:[]}function q(a={}){let b=p(a.apiKeyDefaultModels);return b.length>0?b:p(a.apiKeyDefaultModel)}function r(a={}){let b=a?.apiKeyDefaultPolicy;return(0,g.jQ)(b&&"object"==typeof b?b:g.is)}function s(a={}){return(0,h.MI)(q(a))}async function t(a){let b=(0,i.I8)(a||"");return b?(0,e.mI)({ownerUser:b}):0}async function u(a,b,c={}){let e={authenticated:!0,...b||{}},g=(0,i.s0)(e),h=(0,i.I8)(g.userId);if(!h)return{created:!1,skipped:"missing_owner"};let j=await t(h);if(j>0)return{created:!1,skipped:"already_has_key",apiKeyCount:j};let k=a||await (0,d.getSettings)(),l=s(k);if(0===l.length)return{created:!1,skipped:"missing_default_model"};let m=await (0,f.Xj)();return{created:!0,key:await (0,d.createApiKey)(c.name||function(a={}){let b=String(a.displayName||a.userId||"user").trim();return`Default API Key - ${b}`.slice(0,120)}(g),m,{allowedModels:l,limits:r(k),ownerUser:h,createdByUser:h})}}async function v(a,b,c={}){try{return await u(a,b,c)}catch(a){return console.log("Auto API key provisioning skipped:",a?.message||a),{created:!1,skipped:"error",error:a?.message||String(a)}}}},90389:(a,b,c)=>{c.d(b,{hS:()=>d});let d=Object.freeze({ADMIN:"admin",MONITOR_ADMIN:"monitor_admin",AI_GATEWAYS_MONITOR:"ai_gateways_monitor",USER:"user",GUEST:"guest"});Object.freeze([{href:"/dashboard/endpoint",label:"Endpoint",icon:"api"},{href:"/dashboard/api-keys",label:"API Keys",icon:"vpn_key"},{href:"/dashboard/usage",label:"Usage",icon:"bar_chart"},{href:"/dashboard/analytics",label:"Analytics",icon:"monitoring"},{href:"/dashboard/ai-power-index",label:"AI Power Index",icon:"electric_bolt"},{href:"/dashboard/quota",label:"Quota Tracker",icon:"data_usage"}]),Object.freeze(["/dashboard","/dashboard/endpoint","/dashboard/api-keys","/dashboard/usage","/dashboard/analytics","/dashboard/ai-power-index","/dashboard/quota"])}};
@@ -1 +1 @@
1
- "use strict";exports.id=8023,exports.ids=[8023],exports.modules={28023:(a,b,c)=>{c.d(b,{exportBrandingAssets:()=>z,restoreBrandingAssets:()=>B,validateBrandingBackup:()=>A});var d=c(73024),e=c.n(d),f=c(76760),g=c.n(f),h=c(77598),i=c.n(h),j=c(53859),k=c(70321);let l=g().join(j.n,"branding"),m=new Set(["image/svg+xml","image/png","image/webp","image/jpeg","image/gif"]),n=new Set([...m,"image/x-icon","image/vnd.microsoft.icon"]),o={"image/svg+xml":"svg","image/png":"png","image/webp":"webp","image/jpeg":"jpg","image/gif":"gif","image/x-icon":"ico","image/vnd.microsoft.icon":"ico"},p=new Set(Object.values(o)),q=new Set(["logo","favicon"]),r={logo:"brandingLogo",favicon:"brandingFavicon"};function s(a){return"favicon"===a?n:m}function t(a,b){return g().join(l,`${a}.${b}`)}function u(a,b=""){for(let c of p)if(c!==b)try{e().unlinkSync(t(a,c))}catch{}}async function v(a,b,c){if(!q.has(a))throw Error("Invalid branding asset");let d=o[c]||null;if(!d)throw Error("Unsupported mime type");if(!s(a).has(c))throw Error("Mime not allowed for this asset");if(!b||0===b.length)throw Error("Empty file");if(b.length>1048576)throw Error("File exceeds 1 MB limit");e().mkdirSync(l,{recursive:!0});let f=t(a,d),g=`${f}.${i().randomBytes(4).toString("hex")}.tmp`;e().writeFileSync(g,b,{mode:420}),e().renameSync(g,f),u(a,d);let h={ext:d,mime:c,sizeBytes:b.length,updatedAt:new Date().toISOString(),version:i().randomBytes(4).toString("hex")};return await (0,k.Xx)({[r[a]]:h}),h}async function w(a){if(!q.has(a))throw Error("Invalid branding asset");u(a),await (0,k.Xx)({[r[a]]:null})}async function x(a){return q.has(a)?(await (0,k.mt)())[r[a]]||null:null}async function y(a){let b=await x(a);if(!b||!b.ext)return null;let c=t(a,b.ext);try{return{data:e().readFileSync(c),meta:b}}catch{return null}}async function z(){let a={};for(let b of q){let c=await y(b);a[b]=c?{mime:c.meta.mime,dataBase64:c.data.toString("base64")}:null}return a}function A(a){if(!a||"object"!=typeof a||Array.isArray(a))throw Error("Invalid branding backup payload");let b={};for(let c of q){let d=a[c];if(null==d){b[c]=null;continue}if(!d||"object"!=typeof d||Array.isArray(d))throw Error(`Invalid ${c} backup payload`);let e=String(d.mime||"").trim(),f=String(d.dataBase64||"").trim();if(!s(c).has(e)||!o[e])throw Error(`Unsupported ${c} MIME type in backup`);if(!f||!/^[A-Za-z0-9+/]*={0,2}$/.test(f))throw Error(`Invalid ${c} base64 data in backup`);if(f.length>4*Math.ceil(1048576/3))throw Error(`${c} backup exceeds the 1 MB limit`);let g=Buffer.from(f,"base64");if(!g.length||g.length>1048576)throw Error(`${c} backup exceeds the 1 MB limit`);if(g.toString("base64")!==f)throw Error(`Invalid ${c} base64 encoding in backup`);b[c]={mime:e,data:g}}return b}async function B(a){let b=A(a),c=0;for(let a of q){let d=b[a];d?(await v(a,d.data,d.mime),c+=1):await w(a)}return c}}};
1
+ "use strict";exports.id=8023,exports.ids=[8023],exports.modules={28023:(a,b,c)=>{c.d(b,{exportBrandingAssets:()=>z,restoreBrandingAssets:()=>B,validateBrandingBackup:()=>A});var d=c(73024),e=c.n(d),f=c(76760),g=c.n(f),h=c(77598),i=c.n(h),j=c(53859),k=c(70321);let l=g().join(j.n,"branding"),m=new Set(["image/svg+xml","image/png","image/webp","image/jpeg","image/gif"]),n=new Set([...m,"image/x-icon","image/vnd.microsoft.icon"]),o={"image/svg+xml":"svg","image/png":"png","image/webp":"webp","image/jpeg":"jpg","image/gif":"gif","image/x-icon":"ico","image/vnd.microsoft.icon":"ico"},p=new Set(Object.values(o)),q=new Set(["logo","favicon"]),r={logo:"brandingLogo",favicon:"brandingFavicon"};function s(a){return"favicon"===a?n:m}function t(a,b){return g().join(l,`${a}.${b}`)}function u(a,b=""){for(let c of p)if(c!==b)try{e().unlinkSync(t(a,c))}catch{}}async function v(a,b,c){if(!q.has(a))throw Error("Invalid branding asset");let d=o[c]||null;if(!d)throw Error("Unsupported mime type");if(!s(a).has(c))throw Error("Mime not allowed for this asset");if(!b||0===b.length)throw Error("Empty file");if(b.length>1048576)throw Error("File exceeds 1 MB limit");e().mkdirSync(l,{recursive:!0});let f=t(a,d),g=`${f}.${i().randomBytes(4).toString("hex")}.tmp`;e().writeFileSync(g,b,{mode:420}),e().renameSync(g,f),u(a,d);let h={ext:d,mime:c,sizeBytes:b.length,updatedAt:new Date().toISOString(),version:i().randomBytes(4).toString("hex")};return await (0,k.updateSettings)({[r[a]]:h}),h}async function w(a){if(!q.has(a))throw Error("Invalid branding asset");u(a),await (0,k.updateSettings)({[r[a]]:null})}async function x(a){return q.has(a)?(await (0,k.getSettings)())[r[a]]||null:null}async function y(a){let b=await x(a);if(!b||!b.ext)return null;let c=t(a,b.ext);try{return{data:e().readFileSync(c),meta:b}}catch{return null}}async function z(){let a={};for(let b of q){let c=await y(b);a[b]=c?{mime:c.meta.mime,dataBase64:c.data.toString("base64")}:null}return a}function A(a){if(!a||"object"!=typeof a||Array.isArray(a))throw Error("Invalid branding backup payload");let b={};for(let c of q){let d=a[c];if(null==d){b[c]=null;continue}if(!d||"object"!=typeof d||Array.isArray(d))throw Error(`Invalid ${c} backup payload`);let e=String(d.mime||"").trim(),f=String(d.dataBase64||"").trim();if(!s(c).has(e)||!o[e])throw Error(`Unsupported ${c} MIME type in backup`);if(!f||!/^[A-Za-z0-9+/]*={0,2}$/.test(f))throw Error(`Invalid ${c} base64 data in backup`);if(f.length>4*Math.ceil(1048576/3))throw Error(`${c} backup exceeds the 1 MB limit`);let g=Buffer.from(f,"base64");if(!g.length||g.length>1048576)throw Error(`${c} backup exceeds the 1 MB limit`);if(g.toString("base64")!==f)throw Error(`Invalid ${c} base64 encoding in backup`);b[c]={mime:e,data:g}}return b}async function B(a){let b=A(a),c=0;for(let a of q){let d=b[a];d?(await v(a,d.data,d.mime),c+=1):await w(a)}return c}}};
@@ -1,4 +1,4 @@
1
- "use strict";exports.id=8049,exports.ids=[3960,8049],exports.modules={23248:(a,b,c)=>{c.d(b,{ensureClusterSyncService:()=>t});var d=c(77598),e=c.n(d),f=c(48161),g=c.n(f),h=c(70321);function i(a){return null==a?"":String(a).trim()}var j=c(43913),k=c(79709),l=c(75870);let m="__blueRouterClusterSync";function n(){return globalThis[m]||(globalThis[m]={timer:null,running:null,started:!1,heartbeatSucceeded:!1}),globalThis[m]}async function o(a=null){var b,c;let d=a||await (0,l.Jc)({includeSecrets:!0});if("slave"!==d.role)throw Error("Node is not in Standby mode");if(!d.masterUrl)throw Error("Master URL is not configured");if(!d.syncToken)throw Error("Sync token is not configured");let f=await fetch((b=d.masterUrl,`${String(b||"").replace(/\/+$/,"")}/api/cluster/snapshot`),{headers:{Authorization:`Bearer ${d.syncToken}`,"X-BlueRouter-Node-Id":d.nodeId},cache:"no-store",signal:AbortSignal.timeout(12e4)});if(!f.ok)throw Error((await f.json().catch(()=>({}))).error||`Master returned HTTP ${f.status}`);if((Number(f.headers.get("content-length"))||0)>0x10000000)throw Error("Cluster snapshot exceeds the 256 MB limit");let g=await f.text();if(Buffer.byteLength(g,"utf8")>0x10000000)throw Error("Cluster snapshot exceeds the 256 MB limit");let h=JSON.parse(g);if(!h||"object"!=typeof h||!h.manifest||!h.payload)throw Error("Invalid cluster snapshot response");if(c=h.payload,e().createHash("sha256").update(JSON.stringify(c)).digest("hex")!==h.manifest.sha256)throw Error("Cluster snapshot checksum mismatch");if(2!==Number(h.payload?.backup?.formatVersion))throw Error("Unsupported cluster backup format");if(Number(h.manifest.schemaVersion)!==(0,j.q)())throw Error(`Schema version mismatch: Master=${h.manifest.schemaVersion}, Standby=${(0,j.q)()}`);return h}async function p({force:a=!1,allowDisabled:b=!1}={}){let c=n();return c.running||(c.running=(async()=>{let c=await (0,l.Jc)({includeSecrets:!0});if("slave"!==c.role||!c.enabled&&!b)throw Error("Standby sync is not enabled");let d=new Date().toISOString();await (0,l.X_)({lastAttemptAt:d});try{let b=await o(c);if(!a&&b.manifest.sha256===c.lastSnapshotHash){let a={status:"unchanged",snapshotHash:b.manifest.sha256,masterCreatedAt:b.manifest.createdAt};return await (0,l.X_)({lastSyncAt:new Date().toISOString(),lastError:"",lastResult:a}),a}let d=await (0,h.K1)(b.payload,{returnExport:!1});try{!function({outboundProxyEnabled:a,outboundProxyUrl:b,outboundNoProxy:c}={}){if("u"<typeof process||!process.env)return;let d=i(b),e=i(c);if(!a){"1"===process.env.NINE_ROUTER_PROXY_MANAGED&&(delete process.env.HTTP_PROXY,delete process.env.HTTPS_PROXY,delete process.env.ALL_PROXY,delete process.env.NO_PROXY,delete process.env.NINE_ROUTER_PROXY_MANAGED,delete process.env.NINE_ROUTER_PROXY_URL,delete process.env.NINE_ROUTER_NO_PROXY);return}let f="1"===process.env.NINE_ROUTER_PROXY_MANAGED,g=!1;f&&(d||(delete process.env.HTTP_PROXY,delete process.env.HTTPS_PROXY,delete process.env.ALL_PROXY,delete process.env.NINE_ROUTER_PROXY_URL),e||(delete process.env.NO_PROXY,delete process.env.NINE_ROUTER_NO_PROXY)),d&&(process.env.HTTP_PROXY=d,process.env.HTTPS_PROXY=d,process.env.ALL_PROXY=d,process.env.NINE_ROUTER_PROXY_URL=d,g=!0),e&&(process.env.NO_PROXY=e,process.env.NINE_ROUTER_NO_PROXY=e,g=!0),g?process.env.NINE_ROUTER_PROXY_MANAGED="1":f&&delete process.env.NINE_ROUTER_PROXY_MANAGED}(await (0,h.mt)())}catch(a){console.warn("[cluster] failed to apply restored outbound proxy settings:",a?.message||a)}let e={status:"synced",snapshotHash:b.manifest.sha256,masterCreatedAt:b.manifest.createdAt,serverCount:d.resourceMonitorServerCount||0,historyCount:d.resourceMonitorHistoryCount||0,brandingAssetCount:d.brandingAssetCount||0};return await (0,l.X_)({lastSyncAt:new Date().toISOString(),lastSnapshotHash:b.manifest.sha256,lastError:"",lastResult:e}),e}catch(a){throw await (0,l.X_)({lastError:a?.message||"Cluster sync failed",lastResult:{status:"error"}}),a}})().finally(()=>{c.running=null})),c.running}async function q(a){if(!a?.id||!a?.type)return;let b="ok",c="Command completed";try{if("sync_now"===a.type){let a=await p({force:!0,allowDisabled:!0});c=`Sync completed: ${a.status}`}else if("pause_sync"===a.type)await (0,l.Q1)({enabled:!1}),c="Scheduled sync paused";else if("resume_sync"===a.type)await (0,l.Q1)({enabled:!0}),c="Scheduled sync resumed";else throw Error(`Unsupported Master command: ${a.type}`)}catch(a){b="error",c=a?.message||"Command failed"}await (0,l.X_)({commandAck:{id:a.id,status:b,message:c,completedAt:new Date().toISOString()}})}async function r(a=null){var b;let c=a||await (0,l.Jc)({includeSecrets:!0});if("slave"!==c.role)return{skipped:!0};if(!c.masterUrl||!c.syncToken)throw Error("Master URL and sync token are required for heartbeat");let d=await fetch((b=c.masterUrl,`${String(b||"").replace(/\/+$/,"")}/api/cluster/heartbeat`),{method:"POST",headers:{Authorization:`Bearer ${c.syncToken}`,"Content-Type":"application/json"},body:JSON.stringify({nodeId:c.nodeId,hostname:g().hostname(),appVersion:(0,k.s)(),schemaVersion:(0,j.q)(),syncEnabled:c.enabled,intervalMinutes:c.intervalMinutes,lastAttemptAt:c.lastAttemptAt,lastSyncAt:c.lastSyncAt,lastSnapshotHash:c.lastSnapshotHash,lastError:c.lastError,commandAck:c.commandAck}),cache:"no-store",signal:AbortSignal.timeout(15e3)}),e=await d.json().catch(()=>({}));if(!d.ok)throw Error(e.error||`Master heartbeat returned HTTP ${d.status}`);return c.commandAck&&e.ackAccepted&&await (0,l.X_)({commandAck:null}),e.command&&await q(e.command),e}async function s(){let a=n();try{let b=await (0,l.Jc)({includeSecrets:!0});if("slave"===b.role){let c=!a.heartbeatSucceeded,d=await r(b).then(b=>(a.heartbeatSucceeded=!0,b),b=>(a.heartbeatSucceeded=!1,console.warn("[cluster] heartbeat failed:",b?.message||b),null)),e=await (0,l.Jc)({includeSecrets:!0});if(!e.enabled)return;let f=Date.parse(e.lastAttemptAt||"")||0,g=60*e.intervalMinutes*1e3,h=d&&c&&d.command?.type!=="sync_now";(h||Date.now()-f>=g)&&await p({force:!!h}).catch(a=>{console.warn("[cluster] scheduled sync failed:",a?.message||a)})}else a.heartbeatSucceeded=!1}finally{a.timer=setTimeout(s,3e4),a.timer.unref?.()}}function t(){let a=n();a.started||(a.started=!0,a.timer=setTimeout(s,5e3),a.timer.unref?.())}},34050:(a,b,c)=>{c.d(b,{CG:()=>e,oG:()=>d,zE:()=>f});let d=`
1
+ "use strict";exports.id=8049,exports.ids=[3960,8049,9841],exports.modules={23248:(a,b,c)=>{c.d(b,{ensureClusterSyncService:()=>t});var d=c(77598),e=c.n(d),f=c(48161),g=c.n(f),h=c(70321);function i(a){return null==a?"":String(a).trim()}var j=c(43913),k=c(79709),l=c(75870);let m="__blueRouterClusterSync";function n(){return globalThis[m]||(globalThis[m]={timer:null,running:null,started:!1,heartbeatSucceeded:!1}),globalThis[m]}async function o(a=null){var b,c;let d=a||await (0,l.Jc)({includeSecrets:!0});if("slave"!==d.role)throw Error("Node is not in Standby mode");if(!d.masterUrl)throw Error("Master URL is not configured");if(!d.syncToken)throw Error("Sync token is not configured");let f=await fetch((b=d.masterUrl,`${String(b||"").replace(/\/+$/,"")}/api/cluster/snapshot`),{headers:{Authorization:`Bearer ${d.syncToken}`,"X-BlueRouter-Node-Id":d.nodeId},cache:"no-store",signal:AbortSignal.timeout(12e4)});if(!f.ok)throw Error((await f.json().catch(()=>({}))).error||`Master returned HTTP ${f.status}`);if((Number(f.headers.get("content-length"))||0)>0x10000000)throw Error("Cluster snapshot exceeds the 256 MB limit");let g=await f.text();if(Buffer.byteLength(g,"utf8")>0x10000000)throw Error("Cluster snapshot exceeds the 256 MB limit");let h=JSON.parse(g);if(!h||"object"!=typeof h||!h.manifest||!h.payload)throw Error("Invalid cluster snapshot response");if(c=h.payload,e().createHash("sha256").update(JSON.stringify(c)).digest("hex")!==h.manifest.sha256)throw Error("Cluster snapshot checksum mismatch");if(2!==Number(h.payload?.backup?.formatVersion))throw Error("Unsupported cluster backup format");if(Number(h.manifest.schemaVersion)!==(0,j.q)())throw Error(`Schema version mismatch: Master=${h.manifest.schemaVersion}, Standby=${(0,j.q)()}`);return h}async function p({force:a=!1,allowDisabled:b=!1}={}){let d=n();return d.running||(d.running=(async()=>{let d=await (0,l.Jc)({includeSecrets:!0});if("slave"!==d.role||!d.enabled&&!b)throw Error("Standby sync is not enabled");let e=new Date().toISOString();await (0,l.X_)({lastAttemptAt:e});try{let b=await o(d);if(!a&&b.manifest.sha256===d.lastSnapshotHash){let a={status:"unchanged",snapshotHash:b.manifest.sha256,masterCreatedAt:b.manifest.createdAt};return await (0,l.X_)({lastSyncAt:new Date().toISOString(),lastError:"",lastResult:a}),a}let e=await (0,h.importDb)(b.payload,{returnExport:!1});try{!function({outboundProxyEnabled:a,outboundProxyUrl:b,outboundNoProxy:c}={}){if("u"<typeof process||!process.env)return;let d=i(b),e=i(c);if(!a){"1"===process.env.NINE_ROUTER_PROXY_MANAGED&&(delete process.env.HTTP_PROXY,delete process.env.HTTPS_PROXY,delete process.env.ALL_PROXY,delete process.env.NO_PROXY,delete process.env.NINE_ROUTER_PROXY_MANAGED,delete process.env.NINE_ROUTER_PROXY_URL,delete process.env.NINE_ROUTER_NO_PROXY);return}let f="1"===process.env.NINE_ROUTER_PROXY_MANAGED,g=!1;f&&(d||(delete process.env.HTTP_PROXY,delete process.env.HTTPS_PROXY,delete process.env.ALL_PROXY,delete process.env.NINE_ROUTER_PROXY_URL),e||(delete process.env.NO_PROXY,delete process.env.NINE_ROUTER_NO_PROXY)),d&&(process.env.HTTP_PROXY=d,process.env.HTTPS_PROXY=d,process.env.ALL_PROXY=d,process.env.NINE_ROUTER_PROXY_URL=d,g=!0),e&&(process.env.NO_PROXY=e,process.env.NINE_ROUTER_NO_PROXY=e,g=!0),g?process.env.NINE_ROUTER_PROXY_MANAGED="1":f&&delete process.env.NINE_ROUTER_PROXY_MANAGED}(await (0,h.getSettings)())}catch(a){console.warn("[cluster] failed to apply restored outbound proxy settings:",a?.message||a)}let f=null;try{let{applyAuditPolicyFromSettings:a}=await Promise.all([c.e(3503),c.e(3958)]).then(c.t.bind(c,93958,23));f=await a()}catch(a){console.warn("[cluster] failed to apply Audit Proxy policy from snapshot:",a?.message||a)}let g={status:"synced",snapshotHash:b.manifest.sha256,masterCreatedAt:b.manifest.createdAt,serverCount:e.resourceMonitorServerCount||0,historyCount:e.resourceMonitorHistoryCount||0,brandingAssetCount:e.brandingAssetCount||0,auditProxyPolicyApplied:f?.applied===!0};return await (0,l.X_)({lastSyncAt:new Date().toISOString(),lastSnapshotHash:b.manifest.sha256,lastError:"",lastResult:g}),g}catch(a){throw await (0,l.X_)({lastError:a?.message||"Cluster sync failed",lastResult:{status:"error"}}),a}})().finally(()=>{d.running=null})),d.running}async function q(a){if(!a?.id||!a?.type)return;let b="ok",c="Command completed";try{if("sync_now"===a.type){let a=await p({force:!0,allowDisabled:!0});c=`Sync completed: ${a.status}`}else if("pause_sync"===a.type)await (0,l.Q1)({enabled:!1}),c="Scheduled sync paused";else if("resume_sync"===a.type)await (0,l.Q1)({enabled:!0}),c="Scheduled sync resumed";else throw Error(`Unsupported Master command: ${a.type}`)}catch(a){b="error",c=a?.message||"Command failed"}await (0,l.X_)({commandAck:{id:a.id,status:b,message:c,completedAt:new Date().toISOString()}})}async function r(a=null){var b;let c=a||await (0,l.Jc)({includeSecrets:!0});if("slave"!==c.role)return{skipped:!0};if(!c.masterUrl||!c.syncToken)throw Error("Master URL and sync token are required for heartbeat");let d=await fetch((b=c.masterUrl,`${String(b||"").replace(/\/+$/,"")}/api/cluster/heartbeat`),{method:"POST",headers:{Authorization:`Bearer ${c.syncToken}`,"Content-Type":"application/json"},body:JSON.stringify({nodeId:c.nodeId,hostname:g().hostname(),appVersion:(0,k.s)(),schemaVersion:(0,j.q)(),syncEnabled:c.enabled,intervalMinutes:c.intervalMinutes,lastAttemptAt:c.lastAttemptAt,lastSyncAt:c.lastSyncAt,lastSnapshotHash:c.lastSnapshotHash,lastError:c.lastError,commandAck:c.commandAck}),cache:"no-store",signal:AbortSignal.timeout(15e3)}),e=await d.json().catch(()=>({}));if(!d.ok)throw Error(e.error||`Master heartbeat returned HTTP ${d.status}`);return c.commandAck&&e.ackAccepted&&await (0,l.X_)({commandAck:null}),e.command&&await q(e.command),e}async function s(){let a=n();try{let b=await (0,l.Jc)({includeSecrets:!0});if("slave"===b.role){let c=!a.heartbeatSucceeded,d=await r(b).then(b=>(a.heartbeatSucceeded=!0,b),b=>(a.heartbeatSucceeded=!1,console.warn("[cluster] heartbeat failed:",b?.message||b),null)),e=await (0,l.Jc)({includeSecrets:!0});if(!e.enabled)return;let f=Date.parse(e.lastAttemptAt||"")||0,g=60*e.intervalMinutes*1e3,h=d&&c&&d.command?.type!=="sync_now";(h||Date.now()-f>=g)&&await p({force:!!h}).catch(a=>{console.warn("[cluster] scheduled sync failed:",a?.message||a)})}else a.heartbeatSucceeded=!1}finally{a.timer=setTimeout(s,3e4),a.timer.unref?.()}}function t(){let a=n();a.started||(a.started=!0,a.timer=setTimeout(s,5e3),a.timer.unref?.())}},34050:(a,b,c)=>{c.d(b,{CG:()=>e,oG:()=>d,zE:()=>f});let d=`
2
2
  PRAGMA journal_mode = WAL;
3
3
  PRAGMA synchronous = NORMAL;
4
4
  PRAGMA temp_store = MEMORY;
@@ -6,4 +6,4 @@ PRAGMA mmap_size = 30000000;
6
6
  PRAGMA cache_size = -64000;
7
7
  PRAGMA foreign_keys = ON;
8
8
  PRAGMA busy_timeout = 5000;
9
- `,e={_meta:{columns:{key:"TEXT PRIMARY KEY",value:"TEXT NOT NULL"}},settings:{columns:{id:"INTEGER PRIMARY KEY CHECK (id = 1)",data:"TEXT NOT NULL"}},providerConnections:{columns:{id:"TEXT PRIMARY KEY",provider:"TEXT NOT NULL",authType:"TEXT NOT NULL",name:"TEXT",email:"TEXT",priority:"INTEGER",isActive:"INTEGER DEFAULT 1",scope:"TEXT DEFAULT 'system'",ownerUser:"TEXT DEFAULT ''",createdByUser:"TEXT DEFAULT ''",visibility:"TEXT DEFAULT 'system'",data:"TEXT NOT NULL",createdAt:"TEXT NOT NULL",updatedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_pc_provider ON providerConnections(provider)","CREATE INDEX IF NOT EXISTS idx_pc_provider_active ON providerConnections(provider, isActive)","CREATE INDEX IF NOT EXISTS idx_pc_priority ON providerConnections(provider, priority)","CREATE INDEX IF NOT EXISTS idx_pc_scope_owner ON providerConnections(scope, ownerUser)","CREATE INDEX IF NOT EXISTS idx_pc_provider_scope ON providerConnections(provider, scope)"]},providerNodes:{columns:{id:"TEXT PRIMARY KEY",type:"TEXT",name:"TEXT",data:"TEXT NOT NULL",createdAt:"TEXT NOT NULL",updatedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_pn_type ON providerNodes(type)"]},proxyPools:{columns:{id:"TEXT PRIMARY KEY",isActive:"INTEGER DEFAULT 1",testStatus:"TEXT",data:"TEXT NOT NULL",createdAt:"TEXT NOT NULL",updatedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_pp_active ON proxyPools(isActive)","CREATE INDEX IF NOT EXISTS idx_pp_status ON proxyPools(testStatus)"]},apiKeys:{columns:{id:"TEXT PRIMARY KEY",key:"TEXT UNIQUE NOT NULL",name:"TEXT",machineId:"TEXT",isActive:"INTEGER DEFAULT 1",adminDisabled:"INTEGER DEFAULT 0",allowedModels:"TEXT DEFAULT '[]'",ownerUser:"TEXT DEFAULT ''",createdByUser:"TEXT DEFAULT ''",cavemanMode:"TEXT DEFAULT 'inherit'",cavemanLevel:"TEXT DEFAULT 'lite'",createdAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_ak_key ON apiKeys(key)","CREATE INDEX IF NOT EXISTS idx_ak_owner ON apiKeys(ownerUser)","CREATE INDEX IF NOT EXISTS idx_ak_created_by ON apiKeys(createdByUser)","CREATE INDEX IF NOT EXISTS idx_ak_admin_disabled ON apiKeys(adminDisabled)"]},combos:{columns:{id:"TEXT PRIMARY KEY",name:"TEXT UNIQUE NOT NULL",kind:"TEXT",models:"TEXT NOT NULL",createdAt:"TEXT NOT NULL",updatedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_combo_name ON combos(name)"]},kv:{columns:{scope:"TEXT NOT NULL",key:"TEXT NOT NULL",value:"TEXT NOT NULL"},primaryKey:"PRIMARY KEY (scope, key)",indexes:["CREATE INDEX IF NOT EXISTS idx_kv_scope ON kv(scope)"]},resourceMonitorHistory:{columns:{serverId:"TEXT NOT NULL",sampledAt:"INTEGER NOT NULL",cpuUsage:"REAL DEFAULT 0",memoryUsage:"REAL DEFAULT 0",diskUsage:"REAL DEFAULT 0",diskUsedBytes:"INTEGER DEFAULT 0",networkRxBps:"REAL DEFAULT 0",networkTxBps:"REAL DEFAULT 0",gpus:"TEXT NOT NULL DEFAULT '[]'"},primaryKey:"PRIMARY KEY (serverId, sampledAt)",indexes:["CREATE INDEX IF NOT EXISTS idx_rmh_server_time ON resourceMonitorHistory(serverId, sampledAt)","CREATE INDEX IF NOT EXISTS idx_rmh_sampled_at ON resourceMonitorHistory(sampledAt)"]}};function f(a,b){let c=Object.entries(b.columns).map(([a,b])=>`${a} ${b}`);return b.primaryKey&&c.push(b.primaryKey),`CREATE TABLE IF NOT EXISTS ${a} (${c.join(", ")})`}},43913:(a,b,c)=>{c.d(b,{o:()=>e,q:()=>f});var d=c(34050);let e=[{version:1,name:"initial",up(a){for(let[b,c]of Object.entries(d.CG))for(let e of(a.exec((0,d.zE)(b,c)),c.indexes||[]))a.exec(e)}},{version:2,name:"usage-history-analytics-indexes",up(){}},{version:3,name:"request-observability-rollups",up(a){var b="apiKeys";let c=function(a,b){try{return new Set((a.all(`PRAGMA table_info(${b})`)||[]).map(a=>a.name))}catch{return new Set}}(a,b);for(let[d,e]of Object.entries({ownerUser:"TEXT DEFAULT ''",createdByUser:"TEXT DEFAULT ''",allowedModels:"TEXT DEFAULT '[]'"}))c.has(d)||a.exec(`ALTER TABLE ${b} ADD COLUMN ${d} ${e}`);a.exec("CREATE INDEX IF NOT EXISTS idx_ak_owner ON apiKeys(ownerUser)"),a.exec("CREATE INDEX IF NOT EXISTS idx_ak_created_by ON apiKeys(createdByUser)")}},{version:4,name:"api-key-admin-disabled",up(a){(function(a,b){try{return new Set((a.all(`PRAGMA table_info(${b})`)||[]).map(a=>a.name))}catch{return new Set}})(a,"apiKeys").has("adminDisabled")||a.exec("ALTER TABLE apiKeys ADD COLUMN adminDisabled INTEGER DEFAULT 0"),a.exec("CREATE INDEX IF NOT EXISTS idx_ak_admin_disabled ON apiKeys(adminDisabled)")}},{version:5,name:"api-key-caveman-override",up(a){let b=new Set(a.all("PRAGMA table_info(apiKeys)").map(a=>a.name));b.has("cavemanMode")||a.exec("ALTER TABLE apiKeys ADD COLUMN cavemanMode TEXT DEFAULT 'inherit'"),b.has("cavemanLevel")||a.exec("ALTER TABLE apiKeys ADD COLUMN cavemanLevel TEXT DEFAULT 'lite'")}}].sort((a,b)=>a.version-b.version);function f(){return e.length?e[e.length-1].version:0}},63960:(a,b,c)=>{c.d(b,{A:()=>i});var d=c(77598);let e={randomUUID:d.randomUUID},f=new Uint8Array(256),g=f.length;var h=c(82009);let i=function(a,b,c){if(e.randomUUID&&!b&&!a)return e.randomUUID();var i=a,j=c;let k=(i=i||{}).random??i.rng?.()??(g>f.length-16&&((0,d.randomFillSync)(f),g=0),f.slice(g,g+=16));if(k.length<16)throw Error("Random bytes length must be >= 16");if(k[6]=15&k[6]|64,k[8]=63&k[8]|128,b){if((j=j||0)<0||j+16>b.length)throw RangeError(`UUID byte range ${j}:${j+15} is out of buffer bounds`);for(let a=0;a<16;++a)b[j+a]=k[a];return b}return(0,h.k)(k)}},75870:(a,b,c)=>{c.d(b,{Jc:()=>r,Q1:()=>s,WR:()=>u,X_:()=>t});var d=c(77598),e=c.n(d),f=c(51455),g=c.n(f),h=c(76760),i=c.n(h),j=c(53859);let k=i().join(j.n,"cluster-config.json"),l=new Set(["standalone","master","slave"]),m="__blueRouterClusterConfigMutation",n={version:1,nodeId:"",role:"standalone",enabled:!1,masterUrl:"",syncToken:"",intervalMinutes:5,lastAttemptAt:null,lastSyncAt:null,lastSnapshotHash:"",lastError:"",lastResult:null,commandAck:null};function o(a={}){let b=l.has(a.role)?a.role:"standalone";return{...n,...a,version:1,nodeId:String(a.nodeId||"").trim()||e().randomUUID(),role:b,enabled:!0===a.enabled,masterUrl:function(a){let b=String(a||"").trim().replace(/\/+$/,"");if(!b)return"";let c=new URL(b);if(!["http:","https:"].includes(c.protocol))throw Error("Master URL must use http:// or https://");if(c.username||c.password)throw Error("Master URL must not contain credentials");return c.toString().replace(/\/+$/,"")}(a.masterUrl),syncToken:String(a.syncToken||"").trim(),intervalMinutes:Math.min(1440,Math.max(1,Number(a.intervalMinutes)||5))}}async function p(a){await g().mkdir(j.n,{recursive:!0});let b=`${k}.${process.pid}.${e().randomUUID()}.tmp`;try{await g().writeFile(b,JSON.stringify(a,null,2),{mode:384}),await g().rename(b,k)}catch(a){throw await g().unlink(b).catch(()=>{}),a}}function q(a){let b=(globalThis[m]||Promise.resolve()).then(a,a);return globalThis[m]=b.catch(()=>{}),b}async function r({includeSecrets:a=!1}={}){let b={};try{b=JSON.parse(await g().readFile(k,"utf8"))}catch(a){a?.code!=="ENOENT"&&console.warn("[cluster] failed to read config:",a?.message||a)}let c=o(b);if(b.nodeId||await p(c),a)return c;let{syncToken:d,...e}=c;return{...e,hasSyncToken:!!c.syncToken}}async function s(a={}){if(!a||"object"!=typeof a||Array.isArray(a))throw Error("Invalid cluster config payload");return q(async()=>{let b=await r({includeSecrets:!0}),c={};for(let b of["role","enabled","masterUrl","syncToken","intervalMinutes"])Object.prototype.hasOwnProperty.call(a,b)&&(c[b]=a[b]);let d=o({...b,...c});if("master"!==d.role||d.syncToken||(d.syncToken=e().randomBytes(32).toString("base64url")),d.enabled&&"slave"===d.role){if(!d.masterUrl)throw Error("Master URL is required for Standby mode");if(!d.syncToken)throw Error("Sync token is required for Standby mode")}return await p(d),d})}async function t(a={}){return q(async()=>{let b=await r({includeSecrets:!0}),c=o({...b,...a,nodeId:b.nodeId,role:b.role,enabled:b.enabled,masterUrl:b.masterUrl,syncToken:b.syncToken,intervalMinutes:b.intervalMinutes});return await p(c),c})}async function u(){return"slave"===(await r({includeSecrets:!0})).role}},79709:(a,b,c)=>{c.d(b,{I:()=>j,s:()=>i});var d=c(73024),e=c.n(d),f=c(76760),g=c.n(f);let h=null;function i(){if(h)return h;try{let a=g().join(process.cwd(),"package.json");h=JSON.parse(e().readFileSync(a,"utf-8")).version||"0.0.0"}catch{h="0.0.0"}return h}function j(a=new Date){let b=a=>String(a).padStart(2,"0");return`${a.getFullYear()}${b(a.getMonth()+1)}${b(a.getDate())}-${b(a.getHours())}${b(a.getMinutes())}${b(a.getSeconds())}`}},79841:(a,b,c)=>{let{EventEmitter:d}=c(78474),e=Symbol.for("bluerouter.realtime-usage.v1");function f(){let a="u">typeof process?process:globalThis;if(!a[e]){let b=new d;b.setMaxListeners(100),a[e]={emitter:b,ring:{items:[],initialized:!1}}}return a[e]}function g(a={}){let b=String(a.requestId||"").trim();if(b)return`request:${b}`;let c=new Date(a.timestamp||0).getTime();return`fallback:${c}|${a.model||""}|${a.provider||""}|${a.connectionId||""}`}a.exports={entryKey:g,getRealtimeUsageState:f,publishRecentUsage:function(a,{emit:b=!0,cap:c=50}={}){if(!a||"object"!=typeof a)return null;let d=f(),e=g(a),h=d.ring.items.findIndex(a=>g(a)===e),i=h>=0?function(a={},b={}){return{...a,...b,tokens:{...a.tokens&&"object"==typeof a.tokens?a.tokens:{},...b.tokens&&"object"==typeof b.tokens?b.tokens:{}}}}(d.ring.items[h],a):{...a};return h>=0?d.ring.items[h]=i:d.ring.items.push(i),d.ring.items=d.ring.items.sort((a,b)=>new Date(a.timestamp||0)-new Date(b.timestamp||0)).slice(-Math.max(1,Number(c)||50)),d.ring.initialized=!0,b&&d.emitter.emit("update",{source:"memory-ring",requestId:i.requestId||""}),i},resetForTests:function(){let a=f();a.ring.items=[],a.ring.initialized=!1,a.emitter.removeAllListeners()}}},82009:(a,b,c)=>{c.d(b,{k:()=>e});let d=[];for(let a=0;a<256;++a)d.push((a+256).toString(16).slice(1));function e(a,b=0){return(d[a[b+0]]+d[a[b+1]]+d[a[b+2]]+d[a[b+3]]+"-"+d[a[b+4]]+d[a[b+5]]+"-"+d[a[b+6]]+d[a[b+7]]+"-"+d[a[b+8]]+d[a[b+9]]+"-"+d[a[b+10]]+d[a[b+11]]+d[a[b+12]]+d[a[b+13]]+d[a[b+14]]+d[a[b+15]]).toLowerCase()}}};
9
+ `,e={_meta:{columns:{key:"TEXT PRIMARY KEY",value:"TEXT NOT NULL"}},settings:{columns:{id:"INTEGER PRIMARY KEY CHECK (id = 1)",data:"TEXT NOT NULL"}},providerConnections:{columns:{id:"TEXT PRIMARY KEY",provider:"TEXT NOT NULL",authType:"TEXT NOT NULL",name:"TEXT",email:"TEXT",priority:"INTEGER",isActive:"INTEGER DEFAULT 1",scope:"TEXT DEFAULT 'system'",ownerUser:"TEXT DEFAULT ''",createdByUser:"TEXT DEFAULT ''",visibility:"TEXT DEFAULT 'system'",data:"TEXT NOT NULL",createdAt:"TEXT NOT NULL",updatedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_pc_provider ON providerConnections(provider)","CREATE INDEX IF NOT EXISTS idx_pc_provider_active ON providerConnections(provider, isActive)","CREATE INDEX IF NOT EXISTS idx_pc_priority ON providerConnections(provider, priority)","CREATE INDEX IF NOT EXISTS idx_pc_scope_owner ON providerConnections(scope, ownerUser)","CREATE INDEX IF NOT EXISTS idx_pc_provider_scope ON providerConnections(provider, scope)"]},providerNodes:{columns:{id:"TEXT PRIMARY KEY",type:"TEXT",name:"TEXT",data:"TEXT NOT NULL",createdAt:"TEXT NOT NULL",updatedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_pn_type ON providerNodes(type)"]},proxyPools:{columns:{id:"TEXT PRIMARY KEY",isActive:"INTEGER DEFAULT 1",testStatus:"TEXT",data:"TEXT NOT NULL",createdAt:"TEXT NOT NULL",updatedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_pp_active ON proxyPools(isActive)","CREATE INDEX IF NOT EXISTS idx_pp_status ON proxyPools(testStatus)"]},apiKeys:{columns:{id:"TEXT PRIMARY KEY",key:"TEXT UNIQUE NOT NULL",name:"TEXT",machineId:"TEXT",isActive:"INTEGER DEFAULT 1",adminDisabled:"INTEGER DEFAULT 0",allowedModels:"TEXT DEFAULT '[]'",ownerUser:"TEXT DEFAULT ''",createdByUser:"TEXT DEFAULT ''",cavemanMode:"TEXT DEFAULT 'inherit'",cavemanLevel:"TEXT DEFAULT 'lite'",createdAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_ak_key ON apiKeys(key)","CREATE INDEX IF NOT EXISTS idx_ak_owner ON apiKeys(ownerUser)","CREATE INDEX IF NOT EXISTS idx_ak_created_by ON apiKeys(createdByUser)","CREATE INDEX IF NOT EXISTS idx_ak_admin_disabled ON apiKeys(adminDisabled)"]},combos:{columns:{id:"TEXT PRIMARY KEY",name:"TEXT UNIQUE NOT NULL",kind:"TEXT",models:"TEXT NOT NULL",createdAt:"TEXT NOT NULL",updatedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_combo_name ON combos(name)"]},kv:{columns:{scope:"TEXT NOT NULL",key:"TEXT NOT NULL",value:"TEXT NOT NULL"},primaryKey:"PRIMARY KEY (scope, key)",indexes:["CREATE INDEX IF NOT EXISTS idx_kv_scope ON kv(scope)"]},resourceMonitorHistory:{columns:{serverId:"TEXT NOT NULL",sampledAt:"INTEGER NOT NULL",cpuUsage:"REAL DEFAULT 0",memoryUsage:"REAL DEFAULT 0",diskUsage:"REAL DEFAULT 0",diskUsedBytes:"INTEGER DEFAULT 0",networkRxBps:"REAL DEFAULT 0",networkTxBps:"REAL DEFAULT 0",gpus:"TEXT NOT NULL DEFAULT '[]'"},primaryKey:"PRIMARY KEY (serverId, sampledAt)",indexes:["CREATE INDEX IF NOT EXISTS idx_rmh_server_time ON resourceMonitorHistory(serverId, sampledAt)","CREATE INDEX IF NOT EXISTS idx_rmh_sampled_at ON resourceMonitorHistory(sampledAt)"]}};function f(a,b){let c=Object.entries(b.columns).map(([a,b])=>`${a} ${b}`);return b.primaryKey&&c.push(b.primaryKey),`CREATE TABLE IF NOT EXISTS ${a} (${c.join(", ")})`}},43913:(a,b,c)=>{c.d(b,{o:()=>e,q:()=>f});var d=c(34050);let e=[{version:1,name:"initial",up(a){for(let[b,c]of Object.entries(d.CG))for(let e of(a.exec((0,d.zE)(b,c)),c.indexes||[]))a.exec(e)}},{version:2,name:"usage-history-analytics-indexes",up(){}},{version:3,name:"request-observability-rollups",up(a){var b="apiKeys";let c=function(a,b){try{return new Set((a.all(`PRAGMA table_info(${b})`)||[]).map(a=>a.name))}catch{return new Set}}(a,b);for(let[d,e]of Object.entries({ownerUser:"TEXT DEFAULT ''",createdByUser:"TEXT DEFAULT ''",allowedModels:"TEXT DEFAULT '[]'"}))c.has(d)||a.exec(`ALTER TABLE ${b} ADD COLUMN ${d} ${e}`);a.exec("CREATE INDEX IF NOT EXISTS idx_ak_owner ON apiKeys(ownerUser)"),a.exec("CREATE INDEX IF NOT EXISTS idx_ak_created_by ON apiKeys(createdByUser)")}},{version:4,name:"api-key-admin-disabled",up(a){(function(a,b){try{return new Set((a.all(`PRAGMA table_info(${b})`)||[]).map(a=>a.name))}catch{return new Set}})(a,"apiKeys").has("adminDisabled")||a.exec("ALTER TABLE apiKeys ADD COLUMN adminDisabled INTEGER DEFAULT 0"),a.exec("CREATE INDEX IF NOT EXISTS idx_ak_admin_disabled ON apiKeys(adminDisabled)")}},{version:5,name:"api-key-caveman-override",up(a){let b=new Set(a.all("PRAGMA table_info(apiKeys)").map(a=>a.name));b.has("cavemanMode")||a.exec("ALTER TABLE apiKeys ADD COLUMN cavemanMode TEXT DEFAULT 'inherit'"),b.has("cavemanLevel")||a.exec("ALTER TABLE apiKeys ADD COLUMN cavemanLevel TEXT DEFAULT 'lite'")}}].sort((a,b)=>a.version-b.version);function f(){return e.length?e[e.length-1].version:0}},63960:(a,b,c)=>{c.d(b,{A:()=>i});var d=c(77598);let e={randomUUID:d.randomUUID},f=new Uint8Array(256),g=f.length;var h=c(82009);let i=function(a,b,c){if(e.randomUUID&&!b&&!a)return e.randomUUID();var i=a,j=c;let k=(i=i||{}).random??i.rng?.()??(g>f.length-16&&((0,d.randomFillSync)(f),g=0),f.slice(g,g+=16));if(k.length<16)throw Error("Random bytes length must be >= 16");if(k[6]=15&k[6]|64,k[8]=63&k[8]|128,b){if((j=j||0)<0||j+16>b.length)throw RangeError(`UUID byte range ${j}:${j+15} is out of buffer bounds`);for(let a=0;a<16;++a)b[j+a]=k[a];return b}return(0,h.k)(k)}},75870:(a,b,c)=>{c.d(b,{Jc:()=>r,Q1:()=>s,X_:()=>t,isClusterStandby:()=>u});var d=c(77598),e=c.n(d),f=c(51455),g=c.n(f),h=c(76760),i=c.n(h),j=c(53859);let k=i().join(j.n,"cluster-config.json"),l=new Set(["standalone","master","slave"]),m="__blueRouterClusterConfigMutation",n={version:1,nodeId:"",role:"standalone",enabled:!1,masterUrl:"",syncToken:"",intervalMinutes:5,lastAttemptAt:null,lastSyncAt:null,lastSnapshotHash:"",lastError:"",lastResult:null,commandAck:null};function o(a={}){let b=l.has(a.role)?a.role:"standalone";return{...n,...a,version:1,nodeId:String(a.nodeId||"").trim()||e().randomUUID(),role:b,enabled:!0===a.enabled,masterUrl:function(a){let b=String(a||"").trim().replace(/\/+$/,"");if(!b)return"";let c=new URL(b);if(!["http:","https:"].includes(c.protocol))throw Error("Master URL must use http:// or https://");if(c.username||c.password)throw Error("Master URL must not contain credentials");return c.toString().replace(/\/+$/,"")}(a.masterUrl),syncToken:String(a.syncToken||"").trim(),intervalMinutes:Math.min(1440,Math.max(1,Number(a.intervalMinutes)||5))}}async function p(a){await g().mkdir(j.n,{recursive:!0});let b=`${k}.${process.pid}.${e().randomUUID()}.tmp`;try{await g().writeFile(b,JSON.stringify(a,null,2),{mode:384}),await g().rename(b,k)}catch(a){throw await g().unlink(b).catch(()=>{}),a}}function q(a){let b=(globalThis[m]||Promise.resolve()).then(a,a);return globalThis[m]=b.catch(()=>{}),b}async function r({includeSecrets:a=!1}={}){let b={};try{b=JSON.parse(await g().readFile(k,"utf8"))}catch(a){a?.code!=="ENOENT"&&console.warn("[cluster] failed to read config:",a?.message||a)}let c=o(b);if(b.nodeId||await p(c),a)return c;let{syncToken:d,...e}=c;return{...e,hasSyncToken:!!c.syncToken}}async function s(a={}){if(!a||"object"!=typeof a||Array.isArray(a))throw Error("Invalid cluster config payload");return q(async()=>{let b=await r({includeSecrets:!0}),c={};for(let b of["role","enabled","masterUrl","syncToken","intervalMinutes"])Object.prototype.hasOwnProperty.call(a,b)&&(c[b]=a[b]);let d=o({...b,...c});if("master"!==d.role||d.syncToken||(d.syncToken=e().randomBytes(32).toString("base64url")),d.enabled&&"slave"===d.role){if(!d.masterUrl)throw Error("Master URL is required for Standby mode");if(!d.syncToken)throw Error("Sync token is required for Standby mode")}return await p(d),d})}async function t(a={}){return q(async()=>{let b=await r({includeSecrets:!0}),c=o({...b,...a,nodeId:b.nodeId,role:b.role,enabled:b.enabled,masterUrl:b.masterUrl,syncToken:b.syncToken,intervalMinutes:b.intervalMinutes});return await p(c),c})}async function u(){return"slave"===(await r({includeSecrets:!0})).role}},79709:(a,b,c)=>{c.d(b,{I:()=>j,s:()=>i});var d=c(73024),e=c.n(d),f=c(76760),g=c.n(f);let h=null;function i(){if(h)return h;try{let a=g().join(process.cwd(),"package.json");h=JSON.parse(e().readFileSync(a,"utf-8")).version||"0.0.0"}catch{h="0.0.0"}return h}function j(a=new Date){let b=a=>String(a).padStart(2,"0");return`${a.getFullYear()}${b(a.getMonth()+1)}${b(a.getDate())}-${b(a.getHours())}${b(a.getMinutes())}${b(a.getSeconds())}`}},79841:(a,b,c)=>{let{EventEmitter:d}=c(78474),e=Symbol.for("bluerouter.realtime-usage.v1");function f(){let a="u">typeof process?process:globalThis;if(!a[e]){let b=new d;b.setMaxListeners(100),a[e]={emitter:b,ring:{items:[],initialized:!1}}}return a[e]}function g(a={}){let b=String(a.requestId||"").trim();if(b)return`request:${b}`;let c=new Date(a.timestamp||0).getTime();return`fallback:${c}|${a.model||""}|${a.provider||""}|${a.connectionId||""}`}a.exports={entryKey:g,getRealtimeUsageState:f,publishRecentUsage:function(a,{emit:b=!0,cap:c=50}={}){if(!a||"object"!=typeof a)return null;let d=f(),e=g(a),h=d.ring.items.findIndex(a=>g(a)===e),i=h>=0?function(a={},b={}){return{...a,...b,tokens:{...a.tokens&&"object"==typeof a.tokens?a.tokens:{},...b.tokens&&"object"==typeof b.tokens?b.tokens:{}}}}(d.ring.items[h],a):{...a};return h>=0?d.ring.items[h]=i:d.ring.items.push(i),d.ring.items=d.ring.items.sort((a,b)=>new Date(a.timestamp||0)-new Date(b.timestamp||0)).slice(-Math.max(1,Number(c)||50)),d.ring.initialized=!0,b&&d.emitter.emit("update",{source:"memory-ring",requestId:i.requestId||""}),i},resetForTests:function(){let a=f();a.ring.items=[],a.ring.initialized=!1,a.emitter.removeAllListeners()}}},82009:(a,b,c)=>{c.d(b,{k:()=>e});let d=[];for(let a=0;a<256;++a)d.push((a+256).toString(16).slice(1));function e(a,b=0){return(d[a[b+0]]+d[a[b+1]]+d[a[b+2]]+d[a[b+3]]+"-"+d[a[b+4]]+d[a[b+5]]+"-"+d[a[b+6]]+d[a[b+7]]+"-"+d[a[b+8]]+d[a[b+9]]+"-"+d[a[b+10]]+d[a[b+11]]+d[a[b+12]]+d[a[b+13]]+d[a[b+14]]+d[a[b+15]]).toLowerCase()}}};
@@ -0,0 +1 @@
1
+ "use strict";exports.id=8255,exports.ids=[8255],exports.modules={2574:(a,b,c)=>{c.r(b),c.d(b,{GET:()=>y,OPTIONS:()=>x,buildModelsList:()=>w});var d=c(81329),e=c(75681),f=c(89718),g=c(16655),h=c(33669),i=c(29679);let j=/[-_][0-9a-f]{8,}$/i,k=[{id:"auto",description:"AutoCombo balanced routing"},{id:"auto/coding",description:"AutoCombo coding-focused routing"},{id:"auto/fast",description:"AutoCombo low-latency routing"},{id:"auto/cheap",description:"AutoCombo low-cost routing"},{id:"auto/offline",description:"AutoCombo local/offline-friendly routing"}],l={kiro:async a=>{let b=await (0,i.cW)({accessToken:a.accessToken,refreshToken:a.refreshToken,providerSpecificData:a.providerSpecificData||{}},{log:console});return b?.models?.length?{models:b.models}:null}},m={image:"image",tts:"tts",embedding:"embedding",stt:"stt",imageToText:"imageToText"};function n(a){return String(a??"").trim()}function o(a){return a?.type&&m[a.type]||"llm"}function p(a,b){let c=e.AI_PROVIDERS[a],d=Array.isArray(c?.serviceKinds)&&c.serviceKinds.length>0?c.serviceKinds:["llm"];return b.some(a=>d.includes(a))}function q(a){let b=n(a?.kind||a?.serviceKind).toLowerCase();return b||"llm"}function r(a){return n(a?.exposedModel||a?.model||a?.name||a?.id)}function s(a){return n(a?.name||a?.id||r(a))}async function t(){let a=new Map;try{for(let b of await (0,f.getCombos)()||[]){let c=r(b)||s(b)||n(b?.id);c&&!a.has(c)&&a.set(c,b)}}catch(a){console.log("Could not fetch legacy combos for /v1/models:",a?.message||a)}return[...a.values()]}function u(a,b,c){let d=n(c?.id);!d||b.has(d)||(b.add(d),a.push({object:"model",...c,id:d}))}async function v(a){if(!a?.apiKey)return[];let b="string"==typeof a?.providerSpecificData?.baseUrl?a.providerSpecificData.baseUrl.trim().replace(/\/$/,""):"";if(!b)return[];let c=`${b}/models`,d={"Content-Type":"application/json"};if((0,e.mq)(a.provider))d.Authorization=`Bearer ${a.apiKey}`;else{if(!(0,e.gb)(a.provider))return[];c.endsWith("/messages/models")?c=c.slice(0,-9):c.endsWith("/messages")&&(c=`${c.slice(0,-9)}/models`),d["x-api-key"]=a.apiKey,d["anthropic-version"]="2023-06-01",d.Authorization=`Bearer ${a.apiKey}`}try{let a=new AbortController,b=setTimeout(()=>a.abort(),5e3),e=await fetch(c,{method:"GET",headers:d,cache:"no-store",signal:a.signal});if(clearTimeout(b),!e.ok)return[];let f=await e.json();return Array.from(new Set((Array.isArray(f)?f:f?.data||f?.models||f?.results||[]).map(a=>a?.id||a?.name||a?.model).filter(a=>"string"==typeof a&&""!==a.trim())))}catch{return[]}}async function w(a){let b=[];try{b=(b=await (0,f.getProviderConnections)()).filter(a=>!1!==a.isActive)}catch{console.log("Could not fetch providers, returning all models")}let c=await t(),h=[];try{h=await (0,f.getCustomModels)()}catch{console.log("Could not fetch custom models")}let i={};try{i=await (0,f.getModelAliases)()}catch{console.log("Could not fetch model aliases")}let m={};try{m=await (0,g.vF)()}catch{console.log("Could not fetch disabled models")}let w=(a,b)=>Array.isArray(m[a])&&m[a].includes(b),x=new Map;for(let a of b)x.has(a.provider)||x.set(a.provider,a);let y=[],z=new Set;for(let b of c){if(b?.enabled===!1||!a.includes(q(b)))continue;let c=r(b);c&&u(y,z,{id:c,owned_by:"combo",kind:q(b),virtual:!0,combo:!0,comboType:"legacy",name:s(b),description:n(b.description)})}if(0===b.length){let b=Object.fromEntries(Object.entries(d.Xg).map(([a,b])=>[b,a]));for(let[c,e]of Object.entries(d.vq))if(p(b[c]||c,a))for(let b of e)a.includes(o(b))&&(w(c,b.id)||u(y,z,{id:`${c}/${b.id}`,owned_by:c}));for(let b of h){if(!b?.id||b.type&&"llm"!==b.type||!a.includes("llm"))continue;let c=b.providerAlias;if(!c)continue;let d=n(b.id);d&&u(y,z,{id:`${c}/${d}`,owned_by:c})}}else for(let[b,c]of x.entries()){if(!p(b,a))continue;let f=d.Xg[b]||b,g=(c?.providerSpecificData?.prefix||(0,e.wG)(b)||f).trim(),k=d.vq[f]||[],m=c?.providerSpecificData?.enabledModels,q=Array.isArray(m)&&m.length>0,r=(0,e.mq)(b)||(0,e.gb)(b),s=new Map(k.map(a=>[a.id,o(a)])),t=q?Array.from(new Set(m.filter(a=>"string"==typeof a&&""!==a.trim()))):k.map(a=>a.id);r&&0===t.length&&!j.test(b)&&(t=await v(c));let x=l[b];if(x&&!q)try{let a=await x(c);a?.models?.length&&(t=a.models.map(a=>a.id))}catch(a){console.log(`Live model fetch failed for ${b}: ${a?.message||a}`)}for(let c of Array.from(new Set([...t.map(a=>a.startsWith(`${g}/`)?a.slice(g.length+1):a.startsWith(`${f}/`)?a.slice(f.length+1):a.startsWith(`${b}/`)?a.slice(b.length+1):a).filter(a=>"string"==typeof a&&""!==a.trim()),...h.filter(a=>{if(!a?.id||a.type&&"llm"!==a.type)return!1;let c=a.providerAlias;return c===f||c===g||c===b}).map(a=>n(a.id)).filter(Boolean),...Object.values(i||{}).filter(a=>"string"==typeof a&&!!a.includes("/")&&(a.startsWith(`${g}/`)||a.startsWith(`${f}/`)||a.startsWith(`${b}/`))).map(a=>a.startsWith(`${g}/`)?a.slice(g.length+1):a.startsWith(`${f}/`)?a.slice(f.length+1):a.startsWith(`${b}/`)?a.slice(b.length+1):a).filter(a=>"string"==typeof a&&""!==a.trim())]))){let b=s.get(c)||function(a){let b=String(a).toLowerCase();return/embed/.test(b)?"embedding":/tts|speech|audio|voice/.test(b)?"tts":/image|imagen|dall-?e|flux|sdxl|sd-|stable-diffusion/.test(b)?"image":"llm"}(c);a.includes(b)&&(w(g,c)||w(f,c)||u(y,z,{id:`${g}/${c}`,owned_by:g}))}let A=e.AI_PROVIDERS[b],B=[];if(a.includes("tts")&&Array.isArray(A?.ttsConfig?.models))for(let a of A.ttsConfig.models)a?.id&&B.push(a.id);if(a.includes("embedding")&&Array.isArray(A?.embeddingConfig?.models))for(let a of A.embeddingConfig.models)a?.id&&B.push(a.id);for(let a of B)w(g,a)||w(f,a)||u(y,z,{id:`${g}/${a}`,owned_by:g});a.includes("webSearch")&&A?.searchConfig&&u(y,z,{id:`${g}/search`,kind:"webSearch",owned_by:g}),a.includes("webFetch")&&A?.fetchConfig&&u(y,z,{id:`${g}/fetch`,kind:"webFetch",owned_by:g})}if(a.includes("stt"))try{for(let a of await (0,f.getProviderNodes)({type:"custom-stt"})||[]){let b=n(a?.prefix),c=n(a?.defaultModel||"whisper-1");b&&c&&u(y,z,{id:`${b}/${c}`,owned_by:b,kind:"stt",name:a.name||b,custom:!0})}}catch(a){console.log("Could not fetch custom STT nodes for /v1/models:",a?.message||a)}if(a.includes("tts"))try{for(let a of await (0,f.getProviderNodes)({type:"custom-tts"})||[]){let b=n(a.prefix);if(!b)continue;let c=n(a.defaultModel)||"default";u(y,z,{id:`${b}/${c}`,owned_by:b,kind:"tts",name:a.name||"Custom TTS",custom:!0})}}catch(a){console.log("Could not fetch custom TTS nodes for /v1/models:",a?.message||a)}return!function(a,b){if(!b.includes("llm"))return;let c=new Set(a.map(a=>a?.id).filter(Boolean));for(let b of k)u(a,c,{id:b.id,owned_by:"auto",kind:"llm",virtual:!0,description:b.description})}(y,a),y}async function x(){return new Response(null,{headers:{"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET, OPTIONS","Access-Control-Allow-Headers":"*"}})}async function y(a){try{let b=await w(["llm"]),c=await (0,h.RC)(a,b);if(c.error)return Response.json({error:c.error},{status:c.status,headers:{"Access-Control-Allow-Origin":"*"}});return Response.json({object:"list",data:c.data},{headers:{"Access-Control-Allow-Origin":"*"}})}catch(a){return console.log("Error fetching models:",a),Response.json({error:{message:a.message,type:"server_error"}},{status:500})}}},16655:(a,b,c)=>{c.d(b,{oF:()=>d.oF,tm:()=>d.tm,vF:()=>d.vF});var d=c(39422)},19225:(a,b,c)=>{a.exports=c(44870)},29679:(a,b,c)=>{c.d(b,{cW:()=>l});var d=c(94755),e=c(55511),f=c(8590);let g="1.0.0",h="0.10.32",i="us-east-1",j=new Map;async function k(a,b){let c,f,j,k=a?.providerSpecificData?.profileArn||"",l=function(a){if(!a||"string"!=typeof a)return i;let b=a.split(":");return b.length>=4&&b[3]?b[3]:i}(k),m=new URLSearchParams;m.set("origin","AI_EDITOR"),k&&m.set("profileArn",k);let n=`https://q.${l}.amazonaws.com/ListAvailableModels?${m.toString()}`,o={...(f=a?.providerSpecificData?.clientId||a?.refreshToken||a?.providerSpecificData?.profileArn||a?.accessToken||"kiro-anonymous",j=(0,e.createHash)("sha256").update(String(f)).digest("hex"),{"User-Agent":`aws-sdk-js/${g} ua/2.1 os/windows#10.0.26200 lang/js md/nodejs#22.21.1 api/codewhispererruntime#${g} m/N,E KiroIDE-${h}-${j}`,"x-amz-user-agent":`aws-sdk-js/${g} KiroIDE-${h}-${j}`,"x-amzn-kiro-agent-mode":"vibe","x-amzn-codewhisperer-optout":"true","amz-sdk-request":"attempt=1; max=1","amz-sdk-invocation-id":(0,d.A)(),Accept:"application/json"}),Authorization:`Bearer ${a?.accessToken||""}`},p=new AbortController,q=setTimeout(()=>p.abort("timeout"),3e4);b&&"function"==typeof b.addEventListener&&b.addEventListener("abort",()=>p.abort(b.reason));try{c=await fetch(n,{method:"GET",headers:o,signal:p.signal})}finally{clearTimeout(q)}if(!c.ok){let a=await c.text().catch(()=>""),b=Error(`Kiro ListAvailableModels ${c.status}: ${a||c.statusText}`);throw b.status=c.status,b.body=a,b}let r=await c.json();return Array.isArray(r?.models)?r.models:[]}async function l(a,b={}){let c,d,g;if(!a||!a.accessToken)return b.log?.debug?.("KIRO_MODELS","No accessToken; skipping live fetch"),null;let h=(g=(d=a?.providerSpecificData||{}).profileArn||d.clientId||a?.refreshToken||a?.accessToken||"anonymous",(0,e.createHash)("sha256").update(`kiro:${g}`).digest("hex")),i=Date.now();if(!b.forceRefresh){let a=j.get(h);if(a&&a.expiresAt>i)return{models:a.models,rawModels:a.rawModels}}try{c=await k(a,b.signal)}catch(d){if(!d||401!==d.status||!a.refreshToken)return b.log?.warn?.("KIRO_MODELS",`ListAvailableModels failed: ${d?.message||d}`),null;{b.log?.info?.("KIRO_MODELS","Got 401 from Kiro; refreshing token");let d=await (0,f.Ql)(a.refreshToken,a.providerSpecificData,b.log);if(!d?.accessToken)return b.log?.warn?.("KIRO_MODELS","Token refresh did not return accessToken"),null;{let e={...a,...d};if("function"==typeof b.onCredentialsRefreshed)try{await b.onCredentialsRefreshed(d)}catch(a){b.log?.warn?.("KIRO_MODELS",`onCredentialsRefreshed failed: ${a?.message||a}`)}try{c=await k(e,b.signal),a.accessToken=e.accessToken,e.refreshToken&&(a.refreshToken=e.refreshToken)}catch(a){return b.log?.warn?.("KIRO_MODELS",`Retry after refresh failed: ${a?.message||a}`),null}}}}let m=[];for(let a of c){if(!a||"object"!=typeof a)continue;let b=a.modelId||a.id;if(!b)continue;let c=function(a,b,c){let d=(a||b||"Kiro").trim(),e=Number(c);if(!Number.isFinite(e)||1e-9>Math.abs(e-1)||e<=0)return`Kiro ${d}`;let f=e.toFixed(1).replace(",",".");return`Kiro ${d} (${f}x credit)`}(a.modelName,b,a.rateMultiplier),d=Number(a?.tokenLimits?.maxInputTokens)||2e5;for(let e of function(a,b){let c,d=((c=a).endsWith("-agentic")&&(c=c.slice(0,-8)),c.endsWith("-thinking")&&(c=c.slice(0,-9)),c),e=b||`Kiro ${d}`,f=[{id:d,name:e,capabilities:{thinking:!1,agentic:!1}},{id:`${d}-thinking`,name:`${e} (Thinking)`,capabilities:{thinking:!0,agentic:!1}}];return"auto"!==d&&(f.push({id:`${d}-agentic`,name:`${e} (Agentic)`,capabilities:{thinking:!1,agentic:!0}}),f.push({id:`${d}-thinking-agentic`,name:`${e} (Thinking + Agentic)`,capabilities:{thinking:!0,agentic:!0}})),f}(b,c))m.push({...e,contextLength:d,rateMultiplier:Number.isFinite(Number(a.rateMultiplier))?Number(a.rateMultiplier):1,upstreamModelId:b,description:a.description||""})}return j.set(h,{expiresAt:i+3e5,models:m,rawModels:c}),{models:m,rawModels:c}}},33669:(a,b,c)=>{c.d(b,{MI:()=>e,RC:()=>h,zx:()=>f});var d=c(89718);function e(a){return Array.isArray(a)?[...new Set(a.map(a=>String(a||"").trim()).filter(Boolean))]:[]}function f(a,b){if(!a||!1===a.isActive)return!1;let c=String(b||"").trim();if(!c)return!1;let d=e(a.allowedModels);return 0===d.length||d.includes(c)}async function g(a){let b,c=await (0,d.getSettings)(),e=(b=a?.headers?.get?.("Authorization")||"").startsWith("Bearer ")?b.slice(7).trim():a?.headers?.get?.("x-api-key")?.trim()||null;if(!e)return{settings:c,apiKey:null,keyRecord:null,missing:!0,invalid:!1};let f=await (0,d.getApiKeyByKey)(e);return{settings:c,apiKey:e,keyRecord:f,missing:!1,invalid:!f||!1===f.isActive}}async function h(a,b){let c=await g(a);return c.missing?{error:{message:"Missing API key",type:"authentication_error"},status:401}:c.invalid?{error:{message:"Invalid API key",type:"authentication_error"},status:401}:{data:function(a,b){if(!b||0===e(b?.allowedModels).length)return a;let c=new Set(e(b.allowedModels));return(a||[]).filter(a=>c.has(a?.id))}(b,c.keyRecord)}}},50122:(a,b,c)=>{c.d(b,{k:()=>e});let d=[];for(let a=0;a<256;++a)d.push((a+256).toString(16).slice(1));function e(a,b=0){return(d[a[b+0]]+d[a[b+1]]+d[a[b+2]]+d[a[b+3]]+"-"+d[a[b+4]]+d[a[b+5]]+"-"+d[a[b+6]]+d[a[b+7]]+"-"+d[a[b+8]]+d[a[b+9]]+"-"+d[a[b+10]]+d[a[b+11]]+d[a[b+12]]+d[a[b+13]]+d[a[b+14]]+d[a[b+15]]).toLowerCase()}},92280:(a,b,c)=>{Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(28208),e=c(47617),f=c(62018);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}},94755:(a,b,c)=>{c.d(b,{A:()=>i});var d=c(77598);let e={randomUUID:d.randomUUID},f=new Uint8Array(256),g=f.length;var h=c(50122);let i=function(a,b,c){if(e.randomUUID&&!b&&!a)return e.randomUUID();var i=a,j=c;let k=(i=i||{}).random??i.rng?.()??(g>f.length-16&&((0,d.randomFillSync)(f),g=0),f.slice(g,g+=16));if(k.length<16)throw Error("Random bytes length must be >= 16");if(k[6]=15&k[6]|64,k[8]=63&k[8]|128,b){if((j=j||0)<0||j+16>b.length)throw RangeError(`UUID byte range ${j}:${j+15} is out of buffer bounds`);for(let a=0;a<16;++a)b[j+a]=k[a];return b}return(0,h.k)(k)}}};