miawrouter 1.2.3 → 1.2.4

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 (640) hide show
  1. package/README.md +7 -0
  2. package/app/.next-cli-build/BUILD_ID +1 -1
  3. package/app/.next-cli-build/app-path-routes-manifest.json +9 -9
  4. package/app/.next-cli-build/build-manifest.json +2 -2
  5. package/app/.next-cli-build/prerender-manifest.json +3 -3
  6. package/app/.next-cli-build/server/app/(dashboard)/dashboard/a2a/page.js.nft.json +1 -1
  7. package/app/.next-cli-build/server/app/(dashboard)/dashboard/a2a/page_client-reference-manifest.js +1 -1
  8. package/app/.next-cli-build/server/app/(dashboard)/dashboard/activity/page.js.nft.json +1 -1
  9. package/app/.next-cli-build/server/app/(dashboard)/dashboard/activity/page_client-reference-manifest.js +1 -1
  10. package/app/.next-cli-build/server/app/(dashboard)/dashboard/agent-skills/page.js.nft.json +1 -1
  11. package/app/.next-cli-build/server/app/(dashboard)/dashboard/agent-skills/page_client-reference-manifest.js +1 -1
  12. package/app/.next-cli-build/server/app/(dashboard)/dashboard/api-endpoints/page.js.nft.json +1 -1
  13. package/app/.next-cli-build/server/app/(dashboard)/dashboard/api-endpoints/page_client-reference-manifest.js +1 -1
  14. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js.nft.json +1 -1
  15. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
  16. package/app/.next-cli-build/server/app/(dashboard)/dashboard/batch/page.js.nft.json +1 -1
  17. package/app/.next-cli-build/server/app/(dashboard)/dashboard/batch/page_client-reference-manifest.js +1 -1
  18. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cache/page.js.nft.json +1 -1
  19. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cache/page_client-reference-manifest.js +1 -1
  20. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js.nft.json +1 -1
  21. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page_client-reference-manifest.js +1 -1
  22. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js +1 -1
  23. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json +1 -1
  24. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  25. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cloud-agents/page.js.nft.json +1 -1
  26. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cloud-agents/page_client-reference-manifest.js +1 -1
  27. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js.nft.json +1 -1
  28. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  29. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js.nft.json +1 -1
  30. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
  31. package/app/.next-cli-build/server/app/(dashboard)/dashboard/costs/page.js.nft.json +1 -1
  32. package/app/.next-cli-build/server/app/(dashboard)/dashboard/costs/page_client-reference-manifest.js +1 -1
  33. package/app/.next-cli-build/server/app/(dashboard)/dashboard/discovery/page.js.nft.json +1 -1
  34. package/app/.next-cli-build/server/app/(dashboard)/dashboard/discovery/page_client-reference-manifest.js +1 -1
  35. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json +1 -1
  36. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  37. package/app/.next-cli-build/server/app/(dashboard)/dashboard/free-provider-rankings/page.js.nft.json +1 -1
  38. package/app/.next-cli-build/server/app/(dashboard)/dashboard/free-provider-rankings/page_client-reference-manifest.js +1 -1
  39. package/app/.next-cli-build/server/app/(dashboard)/dashboard/free-tiers/page.js.nft.json +1 -1
  40. package/app/.next-cli-build/server/app/(dashboard)/dashboard/free-tiers/page_client-reference-manifest.js +1 -1
  41. package/app/.next-cli-build/server/app/(dashboard)/dashboard/guardrails/page.js.nft.json +1 -1
  42. package/app/.next-cli-build/server/app/(dashboard)/dashboard/guardrails/page_client-reference-manifest.js +1 -1
  43. package/app/.next-cli-build/server/app/(dashboard)/dashboard/health/page.js.nft.json +1 -1
  44. package/app/.next-cli-build/server/app/(dashboard)/dashboard/health/page_client-reference-manifest.js +1 -1
  45. package/app/.next-cli-build/server/app/(dashboard)/dashboard/logs/page.js.nft.json +1 -1
  46. package/app/.next-cli-build/server/app/(dashboard)/dashboard/logs/page_client-reference-manifest.js +1 -1
  47. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mcp/page.js.nft.json +1 -1
  48. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mcp/page_client-reference-manifest.js +1 -1
  49. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js.nft.json +1 -1
  50. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js +1 -1
  51. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js.nft.json +1 -1
  52. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page_client-reference-manifest.js +1 -1
  53. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js.nft.json +1 -1
  54. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page_client-reference-manifest.js +1 -1
  55. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js.nft.json +1 -1
  56. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page_client-reference-manifest.js +1 -1
  57. package/app/.next-cli-build/server/app/(dashboard)/dashboard/memory/page.js.nft.json +1 -1
  58. package/app/.next-cli-build/server/app/(dashboard)/dashboard/memory/page_client-reference-manifest.js +1 -1
  59. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js.nft.json +1 -1
  60. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
  61. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
  62. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  63. package/app/.next-cli-build/server/app/(dashboard)/dashboard/playground/page.js.nft.json +1 -1
  64. package/app/.next-cli-build/server/app/(dashboard)/dashboard/playground/page_client-reference-manifest.js +1 -1
  65. package/app/.next-cli-build/server/app/(dashboard)/dashboard/privacy/page.js.nft.json +1 -1
  66. package/app/.next-cli-build/server/app/(dashboard)/dashboard/privacy/page_client-reference-manifest.js +1 -1
  67. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js.nft.json +1 -1
  68. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  69. package/app/.next-cli-build/server/app/(dashboard)/dashboard/provider-stats/page.js.nft.json +1 -1
  70. package/app/.next-cli-build/server/app/(dashboard)/dashboard/provider-stats/page_client-reference-manifest.js +1 -1
  71. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json +1 -1
  72. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  73. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js.nft.json +1 -1
  74. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  75. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js.nft.json +1 -1
  76. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  77. package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page.js.nft.json +1 -1
  78. package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
  79. package/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page.js.nft.json +1 -1
  80. package/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page_client-reference-manifest.js +1 -1
  81. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js.nft.json +1 -1
  82. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
  83. package/app/.next-cli-build/server/app/(dashboard)/dashboard/runtime/page.js.nft.json +1 -1
  84. package/app/.next-cli-build/server/app/(dashboard)/dashboard/runtime/page_client-reference-manifest.js +1 -1
  85. package/app/.next-cli-build/server/app/(dashboard)/dashboard/settings/feature-flags/page.js.nft.json +1 -1
  86. package/app/.next-cli-build/server/app/(dashboard)/dashboard/settings/feature-flags/page_client-reference-manifest.js +1 -1
  87. package/app/.next-cli-build/server/app/(dashboard)/dashboard/settings/pricing/page.js.nft.json +1 -1
  88. package/app/.next-cli-build/server/app/(dashboard)/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  89. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skill-discovery/page.js.nft.json +1 -1
  90. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skill-discovery/page_client-reference-manifest.js +1 -1
  91. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page.js.nft.json +1 -1
  92. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page_client-reference-manifest.js +1 -1
  93. package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page.js.nft.json +1 -1
  94. package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page_client-reference-manifest.js +1 -1
  95. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js.nft.json +1 -1
  96. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  97. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js.nft.json +1 -1
  98. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  99. package/app/.next-cli-build/server/app/(dashboard)/dashboard/webhooks/page.js.nft.json +1 -1
  100. package/app/.next-cli-build/server/app/(dashboard)/dashboard/webhooks/page_client-reference-manifest.js +1 -1
  101. package/app/.next-cli-build/server/app/.well-known/agent.json/route.js.nft.json +1 -1
  102. package/app/.next-cli-build/server/app/_global-error/page.js.nft.json +1 -1
  103. package/app/.next-cli-build/server/app/_global-error/page_client-reference-manifest.js +1 -1
  104. package/app/.next-cli-build/server/app/_global-error.html +1 -1
  105. package/app/.next-cli-build/server/app/_global-error.rsc +1 -1
  106. package/app/.next-cli-build/server/app/_global-error.segments/_full.segment.rsc +1 -1
  107. package/app/.next-cli-build/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  108. package/app/.next-cli-build/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  109. package/app/.next-cli-build/server/app/_not-found/page.js.nft.json +1 -1
  110. package/app/.next-cli-build/server/app/_not-found/page_client-reference-manifest.js +1 -1
  111. package/app/.next-cli-build/server/app/_not-found.html +1 -1
  112. package/app/.next-cli-build/server/app/_not-found.rsc +5 -5
  113. package/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +5 -5
  114. package/app/.next-cli-build/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +5 -5
  115. package/app/.next-cli-build/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  116. package/app/.next-cli-build/server/app/api/a2a/route.js.nft.json +1 -1
  117. package/app/.next-cli-build/server/app/api/a2a/status/route.js.nft.json +1 -1
  118. package/app/.next-cli-build/server/app/api/agents/[id]/actions/route.js +1 -1
  119. package/app/.next-cli-build/server/app/api/agents/[id]/actions/route.js.nft.json +1 -1
  120. package/app/.next-cli-build/server/app/api/agents/route.js +1 -1
  121. package/app/.next-cli-build/server/app/api/agents/route.js.nft.json +1 -1
  122. package/app/.next-cli-build/server/app/api/auth/login/route.js.nft.json +1 -1
  123. package/app/.next-cli-build/server/app/api/auth/logout/route.js.nft.json +1 -1
  124. package/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js.nft.json +1 -1
  125. package/app/.next-cli-build/server/app/api/auth/oidc/start/route.js.nft.json +1 -1
  126. package/app/.next-cli-build/server/app/api/auth/oidc/test/route.js.nft.json +1 -1
  127. package/app/.next-cli-build/server/app/api/auth/reset-password/route.js.nft.json +1 -1
  128. package/app/.next-cli-build/server/app/api/auth/status/route.js.nft.json +1 -1
  129. package/app/.next-cli-build/server/app/api/batch/[id]/route.js.nft.json +1 -1
  130. package/app/.next-cli-build/server/app/api/batch/route.js.nft.json +1 -1
  131. package/app/.next-cli-build/server/app/api/batches/[id]/cancel/route.js.nft.json +1 -1
  132. package/app/.next-cli-build/server/app/api/batches/[id]/errors/route.js.nft.json +1 -1
  133. package/app/.next-cli-build/server/app/api/batches/[id]/results/route.js.nft.json +1 -1
  134. package/app/.next-cli-build/server/app/api/batches/[id]/retry/route.js.nft.json +1 -1
  135. package/app/.next-cli-build/server/app/api/batches/[id]/route.js.nft.json +1 -1
  136. package/app/.next-cli-build/server/app/api/batches/route.js.nft.json +1 -1
  137. package/app/.next-cli-build/server/app/api/cache/clear/route.js.nft.json +1 -1
  138. package/app/.next-cli-build/server/app/api/cache/stats/route.js.nft.json +1 -1
  139. package/app/.next-cli-build/server/app/api/catalog/opencode/route.js.nft.json +1 -1
  140. package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js +5 -5
  141. package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js.nft.json +1 -1
  142. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js +2 -2
  143. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js.nft.json +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 +1 -1
  146. package/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js.nft.json +1 -1
  147. package/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js +2 -2
  148. package/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js.nft.json +1 -1
  149. package/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js +1 -1
  150. package/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js.nft.json +1 -1
  151. package/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js +2 -2
  152. package/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js.nft.json +1 -1
  153. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js +2 -2
  154. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js.nft.json +1 -1
  155. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js +1 -1
  156. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js.nft.json +1 -1
  157. package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js +1 -1
  158. package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js.nft.json +1 -1
  159. package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js +3 -3
  160. package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js.nft.json +1 -1
  161. package/app/.next-cli-build/server/app/api/cli-tools/devin-settings/route.js +1 -1
  162. package/app/.next-cli-build/server/app/api/cli-tools/devin-settings/route.js.nft.json +1 -1
  163. package/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js +1 -1
  164. package/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js.nft.json +1 -1
  165. package/app/.next-cli-build/server/app/api/cli-tools/grok-build-settings/route.js +2 -2
  166. package/app/.next-cli-build/server/app/api/cli-tools/grok-build-settings/route.js.nft.json +1 -1
  167. package/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js +2 -2
  168. package/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js.nft.json +1 -1
  169. package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js +2 -2
  170. package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js.nft.json +1 -1
  171. package/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js +2 -2
  172. package/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js.nft.json +1 -1
  173. package/app/.next-cli-build/server/app/api/cli-tools/oh-my-pi-settings/route.js +2 -2
  174. package/app/.next-cli-build/server/app/api/cli-tools/oh-my-pi-settings/route.js.nft.json +1 -1
  175. package/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js +2 -2
  176. package/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js.nft.json +1 -1
  177. package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js +2 -2
  178. package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js.nft.json +1 -1
  179. package/app/.next-cli-build/server/app/api/cli-tools/subagents/route.js +1 -1
  180. package/app/.next-cli-build/server/app/api/cli-tools/subagents/route.js.nft.json +1 -1
  181. package/app/.next-cli-build/server/app/api/cloud-agents/status/route.js +1 -1
  182. package/app/.next-cli-build/server/app/api/cloud-agents/status/route.js.nft.json +1 -1
  183. package/app/.next-cli-build/server/app/api/combos/[id]/route.js.nft.json +1 -1
  184. package/app/.next-cli-build/server/app/api/combos/route.js.nft.json +1 -1
  185. package/app/.next-cli-build/server/app/api/dashboard/chat/completions/route.js.nft.json +1 -1
  186. package/app/.next-cli-build/server/app/api/discovery/endpoints/route.js +1 -1
  187. package/app/.next-cli-build/server/app/api/discovery/endpoints/route.js.nft.json +1 -1
  188. package/app/.next-cli-build/server/app/api/discovery/route.js +1 -1
  189. package/app/.next-cli-build/server/app/api/discovery/route.js.nft.json +1 -1
  190. package/app/.next-cli-build/server/app/api/discovery/skills/route.js +1 -1
  191. package/app/.next-cli-build/server/app/api/discovery/skills/route.js.nft.json +1 -1
  192. package/app/.next-cli-build/server/app/api/events/route.js.nft.json +1 -1
  193. package/app/.next-cli-build/server/app/api/headroom/extras/route.js.nft.json +1 -1
  194. package/app/.next-cli-build/server/app/api/headroom/proxy/[...path]/route.js.nft.json +1 -1
  195. package/app/.next-cli-build/server/app/api/headroom/restart/route.js.nft.json +1 -1
  196. package/app/.next-cli-build/server/app/api/headroom/start/route.js.nft.json +1 -1
  197. package/app/.next-cli-build/server/app/api/headroom/status/route.js.nft.json +1 -1
  198. package/app/.next-cli-build/server/app/api/headroom/stop/route.js.nft.json +1 -1
  199. package/app/.next-cli-build/server/app/api/health/route.js.nft.json +1 -1
  200. package/app/.next-cli-build/server/app/api/hermes/autonomy/route.js.nft.json +1 -1
  201. package/app/.next-cli-build/server/app/api/init/route.js.nft.json +1 -1
  202. package/app/.next-cli-build/server/app/api/keys/[id]/route.js.nft.json +1 -1
  203. package/app/.next-cli-build/server/app/api/keys/route.js.nft.json +1 -1
  204. package/app/.next-cli-build/server/app/api/locale/route.js.nft.json +1 -1
  205. package/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js.nft.json +1 -1
  206. package/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js.nft.json +1 -1
  207. package/app/.next-cli-build/server/app/api/mcp/route.js +1 -1
  208. package/app/.next-cli-build/server/app/api/mcp/route.js.nft.json +1 -1
  209. package/app/.next-cli-build/server/app/api/mcp/status/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/memory/[id]/route.js.nft.json +1 -1
  216. package/app/.next-cli-build/server/app/api/memory/health/route.js.nft.json +1 -1
  217. package/app/.next-cli-build/server/app/api/memory/reindex/route.js.nft.json +1 -1
  218. package/app/.next-cli-build/server/app/api/memory/route.js.nft.json +1 -1
  219. package/app/.next-cli-build/server/app/api/memory/search/route.js.nft.json +1 -1
  220. package/app/.next-cli-build/server/app/api/metrics/route.js.nft.json +1 -1
  221. package/app/.next-cli-build/server/app/api/models/alias/route.js.nft.json +1 -1
  222. package/app/.next-cli-build/server/app/api/models/availability/route.js.nft.json +1 -1
  223. package/app/.next-cli-build/server/app/api/models/custom/route.js.nft.json +1 -1
  224. package/app/.next-cli-build/server/app/api/models/disabled/route.js.nft.json +1 -1
  225. package/app/.next-cli-build/server/app/api/models/route.js.nft.json +1 -1
  226. package/app/.next-cli-build/server/app/api/models/test/route.js.nft.json +1 -1
  227. package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js +1 -1
  228. package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -1
  229. package/app/.next-cli-build/server/app/api/oauth/codex/bulk-import/route.js +1 -1
  230. package/app/.next-cli-build/server/app/api/oauth/codex/bulk-import/route.js.nft.json +1 -1
  231. package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js +1 -1
  232. package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js.nft.json +1 -1
  233. package/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js.nft.json +1 -1
  234. package/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js.nft.json +1 -1
  235. package/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js.nft.json +1 -1
  236. package/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js.nft.json +1 -1
  237. package/app/.next-cli-build/server/app/api/oauth/kiro/api-key/route.js.nft.json +1 -1
  238. package/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route.js.nft.json +1 -1
  239. package/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js.nft.json +1 -1
  240. package/app/.next-cli-build/server/app/api/oauth/kiro/import-cli-proxy/route.js.nft.json +1 -1
  241. package/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js.nft.json +1 -1
  242. package/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js.nft.json +1 -1
  243. package/app/.next-cli-build/server/app/api/pricing/route.js.nft.json +1 -1
  244. package/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js.nft.json +1 -1
  245. package/app/.next-cli-build/server/app/api/provider-nodes/route.js.nft.json +1 -1
  246. package/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js.nft.json +1 -1
  247. package/app/.next-cli-build/server/app/api/providers/[id]/export/route.js.nft.json +1 -1
  248. package/app/.next-cli-build/server/app/api/providers/[id]/models/route.js.nft.json +1 -1
  249. package/app/.next-cli-build/server/app/api/providers/[id]/onboard/route.js +1 -1
  250. package/app/.next-cli-build/server/app/api/providers/[id]/onboard/route.js.nft.json +1 -1
  251. package/app/.next-cli-build/server/app/api/providers/[id]/route.js.nft.json +1 -1
  252. package/app/.next-cli-build/server/app/api/providers/[id]/test/route.js.nft.json +1 -1
  253. package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js.nft.json +1 -1
  254. package/app/.next-cli-build/server/app/api/providers/client/route.js +1 -1
  255. package/app/.next-cli-build/server/app/api/providers/client/route.js.nft.json +1 -1
  256. package/app/.next-cli-build/server/app/api/providers/kilo/free-models/route.js.nft.json +1 -1
  257. package/app/.next-cli-build/server/app/api/providers/route.js.nft.json +1 -1
  258. package/app/.next-cli-build/server/app/api/providers/suggested-models/route.js.nft.json +1 -1
  259. package/app/.next-cli-build/server/app/api/providers/test-batch/route.js.nft.json +1 -1
  260. package/app/.next-cli-build/server/app/api/providers/validate/route.js.nft.json +1 -1
  261. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js.nft.json +1 -1
  262. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js.nft.json +1 -1
  263. package/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js.nft.json +1 -1
  264. package/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js.nft.json +1 -1
  265. package/app/.next-cli-build/server/app/api/proxy-pools/route.js.nft.json +1 -1
  266. package/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js +1 -1
  267. package/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js.nft.json +1 -1
  268. package/app/.next-cli-build/server/app/api/pxpipe/health/route.js.nft.json +1 -1
  269. package/app/.next-cli-build/server/app/api/pxpipe/install/route.js.nft.json +1 -1
  270. package/app/.next-cli-build/server/app/api/pxpipe/logs/route.js.nft.json +1 -1
  271. package/app/.next-cli-build/server/app/api/pxpipe/restart/route.js.nft.json +1 -1
  272. package/app/.next-cli-build/server/app/api/pxpipe/start/route.js.nft.json +1 -1
  273. package/app/.next-cli-build/server/app/api/pxpipe/stats/route.js.nft.json +1 -1
  274. package/app/.next-cli-build/server/app/api/pxpipe/status/route.js.nft.json +1 -1
  275. package/app/.next-cli-build/server/app/api/pxpipe/stop/route.js.nft.json +1 -1
  276. package/app/.next-cli-build/server/app/api/saver/stats/route.js.nft.json +1 -1
  277. package/app/.next-cli-build/server/app/api/settings/database/route.js.nft.json +1 -1
  278. package/app/.next-cli-build/server/app/api/settings/proxy-test/route.js.nft.json +1 -1
  279. package/app/.next-cli-build/server/app/api/settings/require-login/route.js.nft.json +1 -1
  280. package/app/.next-cli-build/server/app/api/settings/route.js.nft.json +1 -1
  281. package/app/.next-cli-build/server/app/api/shutdown/route.js.nft.json +1 -1
  282. package/app/.next-cli-build/server/app/api/skill-discovery/[id]/install/route.js.nft.json +1 -1
  283. package/app/.next-cli-build/server/app/api/skill-discovery/[id]/route.js.nft.json +1 -1
  284. package/app/.next-cli-build/server/app/api/skill-discovery/[id]/uninstall/route.js.nft.json +1 -1
  285. package/app/.next-cli-build/server/app/api/skill-discovery/route.js.nft.json +1 -1
  286. package/app/.next-cli-build/server/app/api/skill-discovery/sync/route.js.nft.json +1 -1
  287. package/app/.next-cli-build/server/app/api/tags/route.js.nft.json +1 -1
  288. package/app/.next-cli-build/server/app/api/translator/console-logs/route.js.nft.json +1 -1
  289. package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js.nft.json +1 -1
  290. package/app/.next-cli-build/server/app/api/translator/load/route.js.nft.json +1 -1
  291. package/app/.next-cli-build/server/app/api/translator/save/route.js.nft.json +1 -1
  292. package/app/.next-cli-build/server/app/api/translator/send/route.js +1 -1
  293. package/app/.next-cli-build/server/app/api/translator/send/route.js.nft.json +1 -1
  294. package/app/.next-cli-build/server/app/api/translator/translate/route.js +1 -1
  295. package/app/.next-cli-build/server/app/api/translator/translate/route.js.nft.json +1 -1
  296. package/app/.next-cli-build/server/app/api/tunnel/disable/route.js.nft.json +1 -1
  297. package/app/.next-cli-build/server/app/api/tunnel/enable/route.js.nft.json +1 -1
  298. package/app/.next-cli-build/server/app/api/tunnel/status/route.js.nft.json +1 -1
  299. package/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js.nft.json +1 -1
  300. package/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js.nft.json +1 -1
  301. package/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js.nft.json +1 -1
  302. package/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js +2 -2
  303. package/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js.nft.json +1 -1
  304. package/app/.next-cli-build/server/app/api/usage/[connectionId]/codex-reset-credits/route.js +1 -1
  305. package/app/.next-cli-build/server/app/api/usage/[connectionId]/codex-reset-credits/route.js.nft.json +1 -1
  306. package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js +1 -1
  307. package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
  308. package/app/.next-cli-build/server/app/api/usage/chart/route.js.nft.json +1 -1
  309. package/app/.next-cli-build/server/app/api/usage/history/route.js.nft.json +1 -1
  310. package/app/.next-cli-build/server/app/api/usage/local-snapshot/route.js +1 -1
  311. package/app/.next-cli-build/server/app/api/usage/local-snapshot/route.js.nft.json +1 -1
  312. package/app/.next-cli-build/server/app/api/usage/logs/route.js.nft.json +1 -1
  313. package/app/.next-cli-build/server/app/api/usage/providers/route.js.nft.json +1 -1
  314. package/app/.next-cli-build/server/app/api/usage/request-details/route.js.nft.json +1 -1
  315. package/app/.next-cli-build/server/app/api/usage/request-logs/route.js.nft.json +1 -1
  316. package/app/.next-cli-build/server/app/api/usage/stats/route.js.nft.json +1 -1
  317. package/app/.next-cli-build/server/app/api/usage/stream/route.js.nft.json +1 -1
  318. package/app/.next-cli-build/server/app/api/v1/api/chat/route.js.nft.json +1 -1
  319. package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js.nft.json +1 -1
  320. package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js.nft.json +1 -1
  321. package/app/.next-cli-build/server/app/api/v1/audio/voices/route.js.nft.json +1 -1
  322. package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
  323. package/app/.next-cli-build/server/app/api/v1/embeddings/route.js +1 -1
  324. package/app/.next-cli-build/server/app/api/v1/embeddings/route.js.nft.json +1 -1
  325. package/app/.next-cli-build/server/app/api/v1/images/generations/route.js +1 -1
  326. package/app/.next-cli-build/server/app/api/v1/images/generations/route.js.nft.json +1 -1
  327. package/app/.next-cli-build/server/app/api/v1/messages/count_tokens/route.js.nft.json +1 -1
  328. package/app/.next-cli-build/server/app/api/v1/messages/route.js.nft.json +1 -1
  329. package/app/.next-cli-build/server/app/api/v1/models/[kind]/route.js.nft.json +1 -1
  330. package/app/.next-cli-build/server/app/api/v1/models/info/route.js.nft.json +1 -1
  331. package/app/.next-cli-build/server/app/api/v1/models/route.js.nft.json +1 -1
  332. package/app/.next-cli-build/server/app/api/v1/responses/compact/route.js.nft.json +1 -1
  333. package/app/.next-cli-build/server/app/api/v1/responses/route.js.nft.json +1 -1
  334. package/app/.next-cli-build/server/app/api/v1/route.js.nft.json +1 -1
  335. package/app/.next-cli-build/server/app/api/v1/search/route.js +1 -1
  336. package/app/.next-cli-build/server/app/api/v1/search/route.js.nft.json +1 -1
  337. package/app/.next-cli-build/server/app/api/v1/videos/[id]/route.js.nft.json +1 -1
  338. package/app/.next-cli-build/server/app/api/v1/videos/edits/route.js.nft.json +1 -1
  339. package/app/.next-cli-build/server/app/api/v1/videos/extensions/route.js.nft.json +1 -1
  340. package/app/.next-cli-build/server/app/api/v1/videos/generations/route.js.nft.json +1 -1
  341. package/app/.next-cli-build/server/app/api/v1/web/fetch/route.js +1 -1
  342. package/app/.next-cli-build/server/app/api/v1/web/fetch/route.js.nft.json +1 -1
  343. package/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
  344. package/app/.next-cli-build/server/app/api/v1beta/models/route.js.nft.json +1 -1
  345. package/app/.next-cli-build/server/app/api/version/route.js +1 -1
  346. package/app/.next-cli-build/server/app/api/version/route.js.nft.json +1 -1
  347. package/app/.next-cli-build/server/app/api/version/shutdown/route.js.nft.json +1 -1
  348. package/app/.next-cli-build/server/app/api/version/update/route.js.nft.json +1 -1
  349. package/app/.next-cli-build/server/app/api/webhooks/[id]/route.js.nft.json +1 -1
  350. package/app/.next-cli-build/server/app/api/webhooks/events/route.js.nft.json +1 -1
  351. package/app/.next-cli-build/server/app/api/webhooks/route.js.nft.json +1 -1
  352. package/app/.next-cli-build/server/app/callback/page.js.nft.json +1 -1
  353. package/app/.next-cli-build/server/app/callback/page_client-reference-manifest.js +1 -1
  354. package/app/.next-cli-build/server/app/callback.html +1 -1
  355. package/app/.next-cli-build/server/app/callback.rsc +5 -5
  356. package/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +5 -5
  357. package/app/.next-cli-build/server/app/callback.segments/_tree.segment.rsc +2 -2
  358. package/app/.next-cli-build/server/app/callback.segments/callback/__PAGE__.segment.rsc +5 -5
  359. package/app/.next-cli-build/server/app/dashboard/a2a.html +1 -1
  360. package/app/.next-cli-build/server/app/dashboard/a2a.rsc +7 -7
  361. package/app/.next-cli-build/server/app/dashboard/a2a.segments/!KGRhc2hib2FyZCk/dashboard/a2a/__PAGE__.segment.rsc +7 -7
  362. package/app/.next-cli-build/server/app/dashboard/a2a.segments/_full.segment.rsc +7 -7
  363. package/app/.next-cli-build/server/app/dashboard/a2a.segments/_tree.segment.rsc +2 -2
  364. package/app/.next-cli-build/server/app/dashboard/activity.html +1 -1
  365. package/app/.next-cli-build/server/app/dashboard/activity.rsc +7 -7
  366. package/app/.next-cli-build/server/app/dashboard/activity.segments/!KGRhc2hib2FyZCk/dashboard/activity/__PAGE__.segment.rsc +7 -7
  367. package/app/.next-cli-build/server/app/dashboard/activity.segments/_full.segment.rsc +7 -7
  368. package/app/.next-cli-build/server/app/dashboard/activity.segments/_tree.segment.rsc +2 -2
  369. package/app/.next-cli-build/server/app/dashboard/agent-skills.html +1 -1
  370. package/app/.next-cli-build/server/app/dashboard/agent-skills.rsc +7 -7
  371. package/app/.next-cli-build/server/app/dashboard/agent-skills.segments/!KGRhc2hib2FyZCk/dashboard/agent-skills/__PAGE__.segment.rsc +7 -7
  372. package/app/.next-cli-build/server/app/dashboard/agent-skills.segments/_full.segment.rsc +7 -7
  373. package/app/.next-cli-build/server/app/dashboard/agent-skills.segments/_tree.segment.rsc +2 -2
  374. package/app/.next-cli-build/server/app/dashboard/api-endpoints.html +1 -1
  375. package/app/.next-cli-build/server/app/dashboard/api-endpoints.rsc +7 -7
  376. package/app/.next-cli-build/server/app/dashboard/api-endpoints.segments/!KGRhc2hib2FyZCk/dashboard/api-endpoints/__PAGE__.segment.rsc +7 -7
  377. package/app/.next-cli-build/server/app/dashboard/api-endpoints.segments/_full.segment.rsc +7 -7
  378. package/app/.next-cli-build/server/app/dashboard/api-endpoints.segments/_tree.segment.rsc +2 -2
  379. package/app/.next-cli-build/server/app/dashboard/basic-chat.html +1 -1
  380. package/app/.next-cli-build/server/app/dashboard/basic-chat.rsc +7 -7
  381. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +7 -7
  382. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_full.segment.rsc +7 -7
  383. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +2 -2
  384. package/app/.next-cli-build/server/app/dashboard/batch.html +1 -1
  385. package/app/.next-cli-build/server/app/dashboard/batch.rsc +7 -7
  386. package/app/.next-cli-build/server/app/dashboard/batch.segments/!KGRhc2hib2FyZCk/dashboard/batch/__PAGE__.segment.rsc +7 -7
  387. package/app/.next-cli-build/server/app/dashboard/batch.segments/_full.segment.rsc +7 -7
  388. package/app/.next-cli-build/server/app/dashboard/batch.segments/_tree.segment.rsc +2 -2
  389. package/app/.next-cli-build/server/app/dashboard/cache.html +1 -1
  390. package/app/.next-cli-build/server/app/dashboard/cache.rsc +7 -7
  391. package/app/.next-cli-build/server/app/dashboard/cache.segments/!KGRhc2hib2FyZCk/dashboard/cache/__PAGE__.segment.rsc +7 -7
  392. package/app/.next-cli-build/server/app/dashboard/cache.segments/_full.segment.rsc +7 -7
  393. package/app/.next-cli-build/server/app/dashboard/cache.segments/_tree.segment.rsc +2 -2
  394. package/app/.next-cli-build/server/app/dashboard/cli-tools.html +1 -1
  395. package/app/.next-cli-build/server/app/dashboard/cli-tools.rsc +7 -7
  396. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +7 -7
  397. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_full.segment.rsc +7 -7
  398. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +2 -2
  399. package/app/.next-cli-build/server/app/dashboard/cloud-agents.html +1 -1
  400. package/app/.next-cli-build/server/app/dashboard/cloud-agents.rsc +7 -7
  401. package/app/.next-cli-build/server/app/dashboard/cloud-agents.segments/!KGRhc2hib2FyZCk/dashboard/cloud-agents/__PAGE__.segment.rsc +7 -7
  402. package/app/.next-cli-build/server/app/dashboard/cloud-agents.segments/_full.segment.rsc +7 -7
  403. package/app/.next-cli-build/server/app/dashboard/cloud-agents.segments/_tree.segment.rsc +2 -2
  404. package/app/.next-cli-build/server/app/dashboard/combos.html +1 -1
  405. package/app/.next-cli-build/server/app/dashboard/combos.rsc +7 -7
  406. package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +7 -7
  407. package/app/.next-cli-build/server/app/dashboard/combos.segments/_full.segment.rsc +7 -7
  408. package/app/.next-cli-build/server/app/dashboard/combos.segments/_tree.segment.rsc +2 -2
  409. package/app/.next-cli-build/server/app/dashboard/costs.html +1 -1
  410. package/app/.next-cli-build/server/app/dashboard/costs.rsc +7 -7
  411. package/app/.next-cli-build/server/app/dashboard/costs.segments/!KGRhc2hib2FyZCk/dashboard/costs/__PAGE__.segment.rsc +7 -7
  412. package/app/.next-cli-build/server/app/dashboard/costs.segments/_full.segment.rsc +7 -7
  413. package/app/.next-cli-build/server/app/dashboard/costs.segments/_tree.segment.rsc +2 -2
  414. package/app/.next-cli-build/server/app/dashboard/discovery.html +1 -1
  415. package/app/.next-cli-build/server/app/dashboard/discovery.rsc +7 -7
  416. package/app/.next-cli-build/server/app/dashboard/discovery.segments/!KGRhc2hib2FyZCk/dashboard/discovery/__PAGE__.segment.rsc +7 -7
  417. package/app/.next-cli-build/server/app/dashboard/discovery.segments/_full.segment.rsc +7 -7
  418. package/app/.next-cli-build/server/app/dashboard/discovery.segments/_tree.segment.rsc +2 -2
  419. package/app/.next-cli-build/server/app/dashboard/endpoint.html +1 -1
  420. package/app/.next-cli-build/server/app/dashboard/endpoint.rsc +7 -7
  421. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +7 -7
  422. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_full.segment.rsc +7 -7
  423. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_tree.segment.rsc +2 -2
  424. package/app/.next-cli-build/server/app/dashboard/free-provider-rankings.html +1 -1
  425. package/app/.next-cli-build/server/app/dashboard/free-provider-rankings.rsc +7 -7
  426. package/app/.next-cli-build/server/app/dashboard/free-provider-rankings.segments/!KGRhc2hib2FyZCk/dashboard/free-provider-rankings/__PAGE__.segment.rsc +7 -7
  427. package/app/.next-cli-build/server/app/dashboard/free-provider-rankings.segments/_full.segment.rsc +7 -7
  428. package/app/.next-cli-build/server/app/dashboard/free-provider-rankings.segments/_tree.segment.rsc +2 -2
  429. package/app/.next-cli-build/server/app/dashboard/free-tiers.html +1 -1
  430. package/app/.next-cli-build/server/app/dashboard/free-tiers.rsc +7 -7
  431. package/app/.next-cli-build/server/app/dashboard/free-tiers.segments/!KGRhc2hib2FyZCk/dashboard/free-tiers/__PAGE__.segment.rsc +7 -7
  432. package/app/.next-cli-build/server/app/dashboard/free-tiers.segments/_full.segment.rsc +7 -7
  433. package/app/.next-cli-build/server/app/dashboard/free-tiers.segments/_tree.segment.rsc +2 -2
  434. package/app/.next-cli-build/server/app/dashboard/guardrails.html +1 -1
  435. package/app/.next-cli-build/server/app/dashboard/guardrails.rsc +7 -7
  436. package/app/.next-cli-build/server/app/dashboard/guardrails.segments/!KGRhc2hib2FyZCk/dashboard/guardrails/__PAGE__.segment.rsc +7 -7
  437. package/app/.next-cli-build/server/app/dashboard/guardrails.segments/_full.segment.rsc +7 -7
  438. package/app/.next-cli-build/server/app/dashboard/guardrails.segments/_tree.segment.rsc +2 -2
  439. package/app/.next-cli-build/server/app/dashboard/health.html +1 -1
  440. package/app/.next-cli-build/server/app/dashboard/health.rsc +7 -7
  441. package/app/.next-cli-build/server/app/dashboard/health.segments/!KGRhc2hib2FyZCk/dashboard/health/__PAGE__.segment.rsc +7 -7
  442. package/app/.next-cli-build/server/app/dashboard/health.segments/_full.segment.rsc +7 -7
  443. package/app/.next-cli-build/server/app/dashboard/health.segments/_tree.segment.rsc +2 -2
  444. package/app/.next-cli-build/server/app/dashboard/logs.html +1 -1
  445. package/app/.next-cli-build/server/app/dashboard/logs.rsc +7 -7
  446. package/app/.next-cli-build/server/app/dashboard/logs.segments/!KGRhc2hib2FyZCk/dashboard/logs/__PAGE__.segment.rsc +7 -7
  447. package/app/.next-cli-build/server/app/dashboard/logs.segments/_full.segment.rsc +7 -7
  448. package/app/.next-cli-build/server/app/dashboard/logs.segments/_tree.segment.rsc +2 -2
  449. package/app/.next-cli-build/server/app/dashboard/mcp.html +1 -1
  450. package/app/.next-cli-build/server/app/dashboard/mcp.rsc +7 -7
  451. package/app/.next-cli-build/server/app/dashboard/mcp.segments/!KGRhc2hib2FyZCk/dashboard/mcp/__PAGE__.segment.rsc +7 -7
  452. package/app/.next-cli-build/server/app/dashboard/mcp.segments/_full.segment.rsc +7 -7
  453. package/app/.next-cli-build/server/app/dashboard/mcp.segments/_tree.segment.rsc +2 -2
  454. package/app/.next-cli-build/server/app/dashboard/media-providers/web.html +1 -1
  455. package/app/.next-cli-build/server/app/dashboard/media-providers/web.rsc +7 -7
  456. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web/__PAGE__.segment.rsc +7 -7
  457. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_full.segment.rsc +7 -7
  458. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_tree.segment.rsc +2 -2
  459. package/app/.next-cli-build/server/app/dashboard/memory.html +1 -1
  460. package/app/.next-cli-build/server/app/dashboard/memory.rsc +7 -7
  461. package/app/.next-cli-build/server/app/dashboard/memory.segments/!KGRhc2hib2FyZCk/dashboard/memory/__PAGE__.segment.rsc +7 -7
  462. package/app/.next-cli-build/server/app/dashboard/memory.segments/_full.segment.rsc +7 -7
  463. package/app/.next-cli-build/server/app/dashboard/memory.segments/_tree.segment.rsc +2 -2
  464. package/app/.next-cli-build/server/app/dashboard/mitm.html +1 -1
  465. package/app/.next-cli-build/server/app/dashboard/mitm.rsc +7 -7
  466. package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +7 -7
  467. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_full.segment.rsc +7 -7
  468. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_tree.segment.rsc +2 -2
  469. package/app/.next-cli-build/server/app/dashboard/playground.html +1 -1
  470. package/app/.next-cli-build/server/app/dashboard/playground.rsc +7 -7
  471. package/app/.next-cli-build/server/app/dashboard/playground.segments/!KGRhc2hib2FyZCk/dashboard/playground/__PAGE__.segment.rsc +7 -7
  472. package/app/.next-cli-build/server/app/dashboard/playground.segments/_full.segment.rsc +7 -7
  473. package/app/.next-cli-build/server/app/dashboard/playground.segments/_tree.segment.rsc +2 -2
  474. package/app/.next-cli-build/server/app/dashboard/privacy.html +1 -1
  475. package/app/.next-cli-build/server/app/dashboard/privacy.rsc +7 -7
  476. package/app/.next-cli-build/server/app/dashboard/privacy.segments/!KGRhc2hib2FyZCk/dashboard/privacy/__PAGE__.segment.rsc +7 -7
  477. package/app/.next-cli-build/server/app/dashboard/privacy.segments/_full.segment.rsc +7 -7
  478. package/app/.next-cli-build/server/app/dashboard/privacy.segments/_tree.segment.rsc +2 -2
  479. package/app/.next-cli-build/server/app/dashboard/profile.html +1 -1
  480. package/app/.next-cli-build/server/app/dashboard/profile.rsc +7 -7
  481. package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +7 -7
  482. package/app/.next-cli-build/server/app/dashboard/profile.segments/_full.segment.rsc +7 -7
  483. package/app/.next-cli-build/server/app/dashboard/profile.segments/_tree.segment.rsc +2 -2
  484. package/app/.next-cli-build/server/app/dashboard/provider-stats.html +1 -1
  485. package/app/.next-cli-build/server/app/dashboard/provider-stats.rsc +7 -7
  486. package/app/.next-cli-build/server/app/dashboard/provider-stats.segments/!KGRhc2hib2FyZCk/dashboard/provider-stats/__PAGE__.segment.rsc +7 -7
  487. package/app/.next-cli-build/server/app/dashboard/provider-stats.segments/_full.segment.rsc +7 -7
  488. package/app/.next-cli-build/server/app/dashboard/provider-stats.segments/_tree.segment.rsc +2 -2
  489. package/app/.next-cli-build/server/app/dashboard/providers/new.html +1 -1
  490. package/app/.next-cli-build/server/app/dashboard/providers/new.rsc +7 -7
  491. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +7 -7
  492. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_full.segment.rsc +7 -7
  493. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_tree.segment.rsc +2 -2
  494. package/app/.next-cli-build/server/app/dashboard/providers.html +1 -1
  495. package/app/.next-cli-build/server/app/dashboard/providers.rsc +7 -7
  496. package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +7 -7
  497. package/app/.next-cli-build/server/app/dashboard/providers.segments/_full.segment.rsc +7 -7
  498. package/app/.next-cli-build/server/app/dashboard/providers.segments/_tree.segment.rsc +2 -2
  499. package/app/.next-cli-build/server/app/dashboard/proxy-pools.html +1 -1
  500. package/app/.next-cli-build/server/app/dashboard/proxy-pools.rsc +7 -7
  501. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +7 -7
  502. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +7 -7
  503. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +2 -2
  504. package/app/.next-cli-build/server/app/dashboard/pxpipe.html +1 -1
  505. package/app/.next-cli-build/server/app/dashboard/pxpipe.rsc +7 -7
  506. package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard/pxpipe/__PAGE__.segment.rsc +7 -7
  507. package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_full.segment.rsc +7 -7
  508. package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_tree.segment.rsc +2 -2
  509. package/app/.next-cli-build/server/app/dashboard/quota.html +2 -2
  510. package/app/.next-cli-build/server/app/dashboard/quota.rsc +8 -8
  511. package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +8 -8
  512. package/app/.next-cli-build/server/app/dashboard/quota.segments/_full.segment.rsc +8 -8
  513. package/app/.next-cli-build/server/app/dashboard/quota.segments/_tree.segment.rsc +2 -2
  514. package/app/.next-cli-build/server/app/dashboard/runtime.html +1 -1
  515. package/app/.next-cli-build/server/app/dashboard/runtime.rsc +7 -7
  516. package/app/.next-cli-build/server/app/dashboard/runtime.segments/!KGRhc2hib2FyZCk/dashboard/runtime/__PAGE__.segment.rsc +7 -7
  517. package/app/.next-cli-build/server/app/dashboard/runtime.segments/_full.segment.rsc +7 -7
  518. package/app/.next-cli-build/server/app/dashboard/runtime.segments/_tree.segment.rsc +2 -2
  519. package/app/.next-cli-build/server/app/dashboard/settings/feature-flags.html +1 -1
  520. package/app/.next-cli-build/server/app/dashboard/settings/feature-flags.rsc +7 -7
  521. package/app/.next-cli-build/server/app/dashboard/settings/feature-flags.segments/!KGRhc2hib2FyZCk/dashboard/settings/feature-flags/__PAGE__.segment.rsc +7 -7
  522. package/app/.next-cli-build/server/app/dashboard/settings/feature-flags.segments/_full.segment.rsc +7 -7
  523. package/app/.next-cli-build/server/app/dashboard/settings/feature-flags.segments/_tree.segment.rsc +2 -2
  524. package/app/.next-cli-build/server/app/dashboard/settings/pricing.html +1 -1
  525. package/app/.next-cli-build/server/app/dashboard/settings/pricing.rsc +7 -7
  526. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/!KGRhc2hib2FyZCk/dashboard/settings/pricing/__PAGE__.segment.rsc +7 -7
  527. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +7 -7
  528. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +2 -2
  529. package/app/.next-cli-build/server/app/dashboard/skill-discovery.html +1 -1
  530. package/app/.next-cli-build/server/app/dashboard/skill-discovery.rsc +7 -7
  531. package/app/.next-cli-build/server/app/dashboard/skill-discovery.segments/!KGRhc2hib2FyZCk/dashboard/skill-discovery/__PAGE__.segment.rsc +7 -7
  532. package/app/.next-cli-build/server/app/dashboard/skill-discovery.segments/_full.segment.rsc +7 -7
  533. package/app/.next-cli-build/server/app/dashboard/skill-discovery.segments/_tree.segment.rsc +2 -2
  534. package/app/.next-cli-build/server/app/dashboard/skills.html +1 -1
  535. package/app/.next-cli-build/server/app/dashboard/skills.rsc +7 -7
  536. package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills/__PAGE__.segment.rsc +7 -7
  537. package/app/.next-cli-build/server/app/dashboard/skills.segments/_full.segment.rsc +7 -7
  538. package/app/.next-cli-build/server/app/dashboard/skills.segments/_tree.segment.rsc +2 -2
  539. package/app/.next-cli-build/server/app/dashboard/token-saver.html +1 -1
  540. package/app/.next-cli-build/server/app/dashboard/token-saver.rsc +8 -8
  541. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver/__PAGE__.segment.rsc +8 -8
  542. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_full.segment.rsc +8 -8
  543. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_tree.segment.rsc +2 -2
  544. package/app/.next-cli-build/server/app/dashboard/translator.html +1 -1
  545. package/app/.next-cli-build/server/app/dashboard/translator.rsc +7 -7
  546. package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +7 -7
  547. package/app/.next-cli-build/server/app/dashboard/translator.segments/_full.segment.rsc +7 -7
  548. package/app/.next-cli-build/server/app/dashboard/translator.segments/_tree.segment.rsc +2 -2
  549. package/app/.next-cli-build/server/app/dashboard/usage.html +1 -1
  550. package/app/.next-cli-build/server/app/dashboard/usage.rsc +7 -7
  551. package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +7 -7
  552. package/app/.next-cli-build/server/app/dashboard/usage.segments/_full.segment.rsc +7 -7
  553. package/app/.next-cli-build/server/app/dashboard/usage.segments/_tree.segment.rsc +2 -2
  554. package/app/.next-cli-build/server/app/dashboard/webhooks.html +1 -1
  555. package/app/.next-cli-build/server/app/dashboard/webhooks.rsc +7 -7
  556. package/app/.next-cli-build/server/app/dashboard/webhooks.segments/!KGRhc2hib2FyZCk/dashboard/webhooks/__PAGE__.segment.rsc +7 -7
  557. package/app/.next-cli-build/server/app/dashboard/webhooks.segments/_full.segment.rsc +7 -7
  558. package/app/.next-cli-build/server/app/dashboard/webhooks.segments/_tree.segment.rsc +2 -2
  559. package/app/.next-cli-build/server/app/dashboard.html +1 -1
  560. package/app/.next-cli-build/server/app/dashboard.rsc +7 -7
  561. package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +7 -7
  562. package/app/.next-cli-build/server/app/dashboard.segments/_full.segment.rsc +7 -7
  563. package/app/.next-cli-build/server/app/dashboard.segments/_tree.segment.rsc +2 -2
  564. package/app/.next-cli-build/server/app/favicon.ico/route.js.nft.json +1 -1
  565. package/app/.next-cli-build/server/app/index.html +1 -1
  566. package/app/.next-cli-build/server/app/index.rsc +5 -5
  567. package/app/.next-cli-build/server/app/index.segments/__PAGE__.segment.rsc +5 -5
  568. package/app/.next-cli-build/server/app/index.segments/_full.segment.rsc +5 -5
  569. package/app/.next-cli-build/server/app/index.segments/_tree.segment.rsc +2 -2
  570. package/app/.next-cli-build/server/app/landing/page.js.nft.json +1 -1
  571. package/app/.next-cli-build/server/app/landing/page_client-reference-manifest.js +1 -1
  572. package/app/.next-cli-build/server/app/landing.html +1 -1
  573. package/app/.next-cli-build/server/app/landing.rsc +5 -5
  574. package/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +5 -5
  575. package/app/.next-cli-build/server/app/landing.segments/_tree.segment.rsc +2 -2
  576. package/app/.next-cli-build/server/app/landing.segments/landing/__PAGE__.segment.rsc +5 -5
  577. package/app/.next-cli-build/server/app/login/page.js.nft.json +1 -1
  578. package/app/.next-cli-build/server/app/login/page_client-reference-manifest.js +1 -1
  579. package/app/.next-cli-build/server/app/login.html +1 -1
  580. package/app/.next-cli-build/server/app/login.rsc +6 -6
  581. package/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +6 -6
  582. package/app/.next-cli-build/server/app/login.segments/_tree.segment.rsc +2 -2
  583. package/app/.next-cli-build/server/app/login.segments/login/__PAGE__.segment.rsc +6 -6
  584. package/app/.next-cli-build/server/app/manifest.webmanifest/route.js.nft.json +1 -1
  585. package/app/.next-cli-build/server/app/page.js.nft.json +1 -1
  586. package/app/.next-cli-build/server/app/page_client-reference-manifest.js +1 -1
  587. package/app/.next-cli-build/server/app-paths-manifest.json +9 -9
  588. package/app/.next-cli-build/server/chunks/112.js +1 -1
  589. package/app/.next-cli-build/server/chunks/2638.js +1 -1
  590. package/app/.next-cli-build/server/chunks/2813.js +1 -1
  591. package/app/.next-cli-build/server/chunks/2974.js +1 -1
  592. package/app/.next-cli-build/server/chunks/318.js +1 -1
  593. package/app/.next-cli-build/server/chunks/3755.js +1 -1
  594. package/app/.next-cli-build/server/chunks/4037.js +1 -1
  595. package/app/.next-cli-build/server/chunks/4303.js +1 -1
  596. package/app/.next-cli-build/server/chunks/5243.js +1 -1
  597. package/app/.next-cli-build/server/chunks/5731.js +1 -1
  598. package/app/.next-cli-build/server/chunks/6270.js +1 -1
  599. package/app/.next-cli-build/server/chunks/6664.js +1 -1
  600. package/app/.next-cli-build/server/chunks/7403.js +1 -1
  601. package/app/.next-cli-build/server/chunks/772.js +1 -1
  602. package/app/.next-cli-build/server/chunks/{4018.js → 7937.js} +5 -5
  603. package/app/.next-cli-build/server/chunks/8499.js +1 -1
  604. package/app/.next-cli-build/server/chunks/8537.js +1 -1
  605. package/app/.next-cli-build/server/chunks/862.js +1 -1
  606. package/app/.next-cli-build/server/chunks/869.js +1 -1
  607. package/app/.next-cli-build/server/chunks/8750.js +1 -1
  608. package/app/.next-cli-build/server/instrumentation.js.nft.json +1 -1
  609. package/app/.next-cli-build/server/middleware-build-manifest.js +1 -1
  610. package/app/.next-cli-build/server/middleware.js +4 -4
  611. package/app/.next-cli-build/server/middleware.js.nft.json +1 -1
  612. package/app/.next-cli-build/server/pages/404.html +1 -1
  613. package/app/.next-cli-build/server/pages/500.html +1 -1
  614. package/app/.next-cli-build/server/server-reference-manifest.js +1 -1
  615. package/app/.next-cli-build/server/server-reference-manifest.json +1 -1
  616. package/app/.next-cli-build/static/chunks/{1321-b974e2c6d758f2eb.js → 1321-6b997794bb843da8.js} +1 -1
  617. package/app/.next-cli-build/static/chunks/{7780-8fef40eb7ea5a323.js → 7780-f3508723257e47c1.js} +1 -1
  618. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/cli-tools/{page-8f34a6d3a99ebd37.js → page-f7cbd07558c7b42e.js} +1 -1
  619. package/app/.next-cli-build/static/css/01b1ec05918332c3.css +1 -0
  620. package/app/package.json +79 -78
  621. package/app/src/mitm/server.js +40 -42
  622. package/cli.js +10 -0
  623. package/hooks/opencodeBridgeRuntime.js +77 -0
  624. package/hooks/sqliteRuntime.js +156 -156
  625. package/hooks/trayRuntime.js +107 -107
  626. package/package.json +49 -49
  627. package/vendor/opencode-free-bridge/LICENSE +21 -0
  628. package/vendor/opencode-free-bridge/README.md +762 -0
  629. package/vendor/opencode-free-bridge/THIRD_PARTY_NOTICES.md +33 -0
  630. package/vendor/opencode-free-bridge/UPSTREAM_COMMIT +1 -0
  631. package/vendor/opencode-free-bridge/identity.js +2624 -0
  632. package/vendor/opencode-free-bridge/package.json +54 -0
  633. package/vendor/opencode-free-bridge/panel.js +515 -0
  634. package/vendor/opencode-free-bridge/proxy.js +980 -0
  635. package/vendor/opencode-free-bridge/server.js +3357 -0
  636. package/vendor/opencode-free-bridge/token-budget.js +107 -0
  637. package/vendor/opencode-free-bridge/transport-baseline.json +39 -0
  638. package/app/.next-cli-build/static/css/8ba5c8dbc4e30aa0.css +0 -1
  639. /package/app/.next-cli-build/static/{X4uxXfKI78mMCnlqFsTAr → DryEkcB2pIbzN1YYgNcUS}/_buildManifest.js +0 -0
  640. /package/app/.next-cli-build/static/{X4uxXfKI78mMCnlqFsTAr → DryEkcB2pIbzN1YYgNcUS}/_ssgManifest.js +0 -0
@@ -1,3 +1,3 @@
1
- "use strict";exports.id=112,exports.ids=[112,5699],exports.modules={3894:(a,b,c)=>{c.d(b,{F_:()=>j,Nc:()=>k,Qh:()=>y,Su:()=>v,ag:()=>r,kI:()=>t,rl:()=>z,sy:()=>x,vu:()=>u});var d=c(79646),e=c(33873),f=c.n(e),g=c(73024),h=c.n(g),i=c(78984);let j=["code","ml"],k={code:["tree-sitter","tree-sitter-language-pack"],ml:["torch","huggingface-hub"]},l="win32"===process.platform,m=l?"where":"which",n=l?[`${process.env.LOCALAPPDATA||""}\\Programs\\Python\\Python314\\Scripts`,`${process.env.LOCALAPPDATA||""}\\Programs\\Python\\Python314`,`${process.env.LOCALAPPDATA||""}\\Programs\\Python\\Python313\\Scripts`,`${process.env.LOCALAPPDATA||""}\\Programs\\Python\\Python313`,`${process.env.LOCALAPPDATA||""}\\Programs\\Python\\Python312\\Scripts`,`${process.env.LOCALAPPDATA||""}\\Programs\\Python\\Python312`,`${process.env.LOCALAPPDATA||""}\\Programs\\Python\\Python311\\Scripts`,`${process.env.LOCALAPPDATA||""}\\Programs\\Python\\Python311`,`${process.env.LOCALAPPDATA||""}\\Programs\\Python\\Python310\\Scripts`,`${process.env.LOCALAPPDATA||""}\\Programs\\Python\\Python310`,`${process.env.APPDATA||""}\\Python\\Python313\\Scripts`,`${process.env.APPDATA||""}\\Python\\Python314\\Scripts`,`${process.env.APPDATA||""}\\Python\\Python312\\Scripts`,`${process.env.APPDATA||""}\\Python\\Python311\\Scripts`,`${process.env.ProgramFiles||"C:\\Program Files"}\\Python313\\Scripts`,`${process.env.ProgramFiles||"C:\\Program Files"}\\Python314\\Scripts`,`${process.env.ProgramFiles||"C:\\Program Files"}\\Python314`,`${process.env.ProgramFiles||"C:\\Program Files"}\\Python313`,`${process.env.ProgramFiles||"C:\\Program Files"}\\Python312\\Scripts`,`${process.env.ProgramFiles||"C:\\Program Files"}\\Python312`,`${process.env.ProgramFiles||"C:\\Program Files"}\\Python311\\Scripts`,`${process.env.ProgramFiles||"C:\\Program Files"}\\Python311`,`${process.env["ProgramFiles(x86)"]||"C:\\Program Files (x86)"}\\Python313`,`${process.env["ProgramFiles(x86)"]||"C:\\Program Files (x86)"}\\Python312`,`${process.env.LOCALAPPDATA||""}\\Microsoft\\WindowsApps`,"C:\\Python313\\Scripts","C:\\Python313","C:\\Python312\\Scripts","C:\\Python312","C:\\Python311\\Scripts","C:\\Python311",`${process.env.USERPROFILE||""}\\miniconda3\\Scripts`,`${process.env.USERPROFILE||""}\\miniconda3`,`${process.env.USERPROFILE||""}\\anaconda3\\Scripts`,`${process.env.USERPROFILE||""}\\anaconda3`]:["/usr/local/bin","/opt/homebrew/bin","/Library/Frameworks/Python.framework/Versions/3.13/bin","/Library/Frameworks/Python.framework/Versions/3.12/bin","/Library/Frameworks/Python.framework/Versions/3.11/bin","/Library/Frameworks/Python.framework/Versions/3.10/bin",`${process.env.HOME||""}/.local/bin`,"/usr/bin","/bin"],o=[...n,process.env.PATH||""].filter(Boolean).join(f().delimiter),p=l?["py -3.14","py -3.13","py -3.12","py -3.11","py -3.10","py -3","py","python","python3","python3.14","python3.13","python3.12","python3.11","python3.10"]:["python3.13","python3.12","python3.11","python3.10","python3","python"],q=new Set(["localhost","127.0.0.1","::1","[::1]","0.0.0.0"]),r=process.env.HEADROOM_URL||"http://localhost:8787";function s(a,b=l){if(a&&"object"==typeof a)return{command:a.command,args:Array.isArray(a.args)?a.args:[]};let c=String(a||"").trim();if(b&&/^py\s+-\S+$/.test(c)){let[a,...b]=c.split(/\s+/);return{command:a,args:b}}return{command:c,args:[]}}function t(){if(h().existsSync(i.KY))return i.KY;try{let a=(0,d.execSync)(`${m} headroom`,{stdio:["ignore","pipe","ignore"],windowsHide:!0,env:{...process.env,PATH:o}}).toString().trim();return a?a.split(/\r?\n/)[0].trim():null}catch{return null}}function u(){let a=null,b=!!t();for(let c of function(){let a=[];h().existsSync(i.T2)&&a.push(i.T2);let b=t();if(b){let c=f().dirname(b);for(let b of l?["python.exe","python3.exe"]:["python3","python3.13","python"])a.push(f().join(c,b))}for(let b of n)if(b)for(let c of l?["python.exe","python3.exe","python3.13.exe","python3.12.exe","python3.11.exe","python3.10.exe"]:p)a.push(f().join(b,c));return a.push(...p),[...new Set(a)]}()){let e=s(c);try{let c=(0,d.execFileSync)(e.command,[...e.args,"--version"],{timeout:3e3,stdio:["ignore","pipe","ignore"],windowsHide:!0,env:{...process.env,PATH:o}}).toString().trim().match(/(\d+)\.(\d+)/);if(!c)continue;let[f,g]=[parseInt(c[1],10),parseInt(c[2],10)];if(!(f>3||3===f&&g>=10))continue;if(a||(a=e),!b)return e;try{return(0,d.execFileSync)(e.command,[...e.args,"-c","import importlib.metadata as m; print(m.version('headroom-ai'))"],{stdio:["ignore","pipe","ignore"],windowsHide:!0,timeout:8e3,env:{...process.env,PATH:o}}),e}catch{}}catch{}}return a}function v(){let a=u();return a?a.args.length?[a.command,...a.args].join(" "):a.command:null}async function w(a){if(!a)return!1;let b=String(a).replace(/\/$/,"");try{return(await fetch(`${b}/health`,{signal:AbortSignal.timeout(1500)})).ok}catch{return!1}}function x(a){try{let b=new URL(a);return q.has(b.hostname)}catch{return!1}}async function y(a){let b=t(),c=v(),d=s(c),e=(0,i.d4)(),f=(0,i.Oe)(d),g=!!b,h=await w(a),j=x(a),k=g?z(c):{installed:!1,version:null,extras:{code:!1,ml:!1}};return{installed:g,path:b,running:h,python:c,localUrl:j,canStart:g&&j,version:k.version,extras:k.extras,uv:e,pip:f,canInstall:j&&!!(e||c&&f),recommendedInstaller:e?"uv":f?"pip":null}}function z(a){let b=s(a||v());if(!b.command)return{installed:!1,version:null,extras:{code:!1,ml:!1}};try{let a=(0,d.execFileSync)(b.command,[...b.args,"-c",i.C0],{stdio:["ignore","pipe","ignore"],windowsHide:!0,timeout:8e3,env:{...process.env,PATH:o}}).toString(),c=JSON.parse(a),e=new Set(c.map(a=>String(a.name||"").toLowerCase()));if(!e.has("headroom-ai"))return{installed:!1,version:null,extras:{code:!1,ml:!1}};let f=c.find(a=>a.name?.toLowerCase()==="headroom-ai")?.version||null,g={};for(let a of j)g[a]=k[a].some(a=>e.has(a));return{installed:!0,version:f,extras:g}}catch{return{installed:!1,version:null,extras:{code:!1,ml:!1}}}}},17603:(a,b,c)=>{c.d(b,{R8:()=>j,ar:()=>l,vB:()=>h});var d=c(66306);let e=["vision","pdf","audioInput","videoInput"],f=new Set(e);function g(a,b){var c;let d=Array.isArray(c=b?.capacityAdapter?.[a])?{enabled:!0,roundRobin:!1,models:c.map(a=>a?.model||a).filter(Boolean)}:c&&"object"==typeof c?{enabled:!1!==c.enabled,roundRobin:!!c.roundRobin,models:Array.isArray(c.models)?c.models.filter(Boolean):[]}:{enabled:!1,roundRobin:!1,models:[]};return d.enabled&&0===d.models.length?{...d,models:["oc/mimo-v2.6-flash-free"]}:d}function h(a,b){for(let c of[...a||[]].filter(a=>f.has(a))){let{enabled:a,models:d}=g(c,b);if(a&&0!==d.length)return function(a,b){let{enabled:c,roundRobin:d}=g(a,b);return c&&d?"round-robin":"fallback"}(c,b)}return"fallback"}function i(a,b){let c=a.indexOf("/"),e=c>0?a.slice(0,c):"",f=c>0?a.slice(c+1):a,g=(0,d.nl)(e,f);return b.every(a=>!0===g[a])}function j(a,b,c){let d=[...b||[]].filter(a=>f.has(a));if(0===d.length||!Array.isArray(a)||0===a.length||a.some(a=>i(a,d)))return a;let h=(function(a){let b=new Set,c=[];for(let d of e){let{enabled:e,models:f}=g(d,a);if(e)for(let a of f)b.has(a)||(b.add(a),c.push(a))}return c})(c).filter(b=>!a.includes(b)&&i(b,d));return 0===h.length?a:[...h,...a]}function k(a){return"string"==typeof a?a.length:Array.isArray(a)?a.reduce((a,b)=>a+("string"==typeof b?.text?b.text.length:50),0):0}function l(a,b){let c=new Set(b);return 0===c.size?a:(b,e,...f)=>{if(c.has(e)){let a=e.indexOf("/"),c=a>0?e.slice(0,a):"",f=a>0?e.slice(a+1):e,{contextWindow:g}=(0,d.nl)(c,f);b=function(a,b){let c=Array.isArray(a.messages)?"messages":Array.isArray(a.input)?"input":Array.isArray(a.contents)?"contents":null;if(!c)return a;let d=a[c];if(!d||0===d.length)return a;let e=a=>"system"===a||"developer"===a,f=d.filter(a=>e(a?.role)),g=d.filter(a=>!e(a?.role));if(0===g.length)return a;let h=a=>"assistant"===a||"model"===a,i=g.length-1;for(;i>=0&&!h(g[i]?.role);)i--;let j=g.slice(i+1),l=g.slice(0,i+1);if(0===l.length)return a;let m=a=>a.content??a.parts,n=.8*(b||2e5)*4,o=l.slice(0,6),p=f.concat(o,j).reduce((a,b)=>a+k(m(b)),0);for(;p>n&&o.length>0;)p-=k(m(o.pop()));return o.length===l.length?a:{...a,[c]:[...f,...o,...j]}}(b,g)}return a(b,e,...f)}}},24253:(a,b,c)=>{c.d(b,{Mo:()=>h,RG:()=>l,V:()=>i,Y8:()=>k,xl:()=>m});var d=c(1932),e=c(87155);let f=null,g=null;function h(){return f?{loaded:!0,version:f.version,loadedAt:f.loadedAt}:{loaded:!1}}async function i(){return f||g||(g=j().finally(()=>{g=null}))}async function j(){let a=(0,e.S1)();if(!a.installed){let a=Error("PXPIPE is not installed");throw a.code="NOT_INSTALLED",a}let b=`${(0,d.pathToFileURL)((0,e.CG)()).href}?v=${encodeURIComponent(a.version||"0")}`,c=await import(b);if("function"!=typeof c.transformAnthropicMessages)throw Error("installed pxpipe package does not export transformAnthropicMessages");return f={module:c,version:a.version,loadedAt:Date.now()}}function k(){let a=!!f;return f=null,a}async function l({autoLoad:a=!0}={}){try{if(!f&&!a)return null;let{module:b}=await i();return b.transformAnthropicMessages}catch{return null}}async function m(){let a=Date.now(),{module:b}=await i(),c=new TextEncoder().encode(JSON.stringify({model:"claude-fable-5",max_tokens:16,messages:[{role:"user",content:"ping"}]})),d=await b.transformAnthropicMessages({body:c,model:"claude-fable-5"});if(!d||"boolean"!=typeof d.applied||!(d.body instanceof Uint8Array))throw Error("transform returned an unexpected shape");return{ok:!0,reason:d.reason,durationMs:Date.now()-a}}},35024:(a,b,c)=>{c.d(b,{Ak:()=>e,Yg:()=>h,sr:()=>d.sr,xq:()=>d.xq});var d=c(26070);function e(a){return(a?.providerSpecificData?.baseUrl?.trim()||"http://localhost:11434").replace(/\/$/,"")}let f=d.xq["xiaomi-tokenplan"]?.regions||{},g=d.xq["xiaomi-tokenplan"]?.defaultRegion;function h(a){return f[a?.providerSpecificData?.region]||f[g]}},35695:(a,b,c)=>{c.d(b,{DF:()=>e,el:()=>o,mF:()=>k,xD:()=>n});var d=c(89718);let e="https://opencode.ai/zen/v1/models",f=new Set(["big-pickle"]),g="__miaw_opencode_catalog_v1__";function h(){return globalThis[g]||={models:null,lastIds:[],lastDiff:{added:[],removed:[]},fetchedAt:null,lastAttemptAt:0,lastError:null},globalThis[g]}function i(a){if(null==a)return null;if("number"==typeof a)return a;let b=String(a).trim();return""!==b&&Number.isFinite(Number(b))?Number(b):null}function j(a,b){if(b&&"object"==typeof b){if(Array.isArray(b))return!!b.includes(a)||void 0;if(Object.prototype.hasOwnProperty.call(b,a))return b[a]}}function k(a,b=null){let c,d,e,g=a?.id;if(!g)return!1;let h=j(g,b);return void 0!==h?!0===h||"true"===h:!!(String(g).endsWith("-free")||f.has(g))||(d=i((c=a?.pricing||{}).prompt??a?.input_price??a?.input_cost),e=i(c.completion??a?.output_price??a?.output_cost),0===d&&0===e)}async function l(){let a=new AbortController,b=setTimeout(()=>a.abort(),15e3);try{var c;let b=await fetch(e,{headers:{"x-opencode-client":"desktop"},cache:"no-store",signal:a.signal});if(!b.ok)throw Error(`OpenCode Zen models: HTTP ${b.status}`);let d=(c=await b.json(),Array.isArray(c)?c:c?.data??c?.models??[]).filter(a=>a&&"string"==typeof a.id),f=h(),g=d.map(a=>a.id);return f.lastDiff={added:d.filter(a=>!f.lastIds.includes(a.id)),removed:f.lastIds.filter(a=>!g.includes(a))},f.models=d,f.lastIds=g,f.fetchedAt=Date.now(),f.lastAttemptAt=Date.now(),f.lastError=null,f}finally{clearTimeout(b)}}async function m(){let a=h();if(a.models&&a.fetchedAt&&Date.now()-a.fetchedAt<216e5)return{models:a.models,diff:a.lastDiff,fetchedAt:a.fetchedAt,stale:!1,error:null};if(Date.now()-a.lastAttemptAt<6e4)return a.models?{models:a.models,diff:a.lastDiff,fetchedAt:a.fetchedAt,stale:!0,error:a.lastError}:{models:[],diff:{added:[],removed:[]},fetchedAt:null,stale:!0,error:a.lastError||"catalog fetch failed"};try{let a=await l();return{models:a.models,diff:a.lastDiff,fetchedAt:a.fetchedAt,stale:!1,error:null}}catch(c){let b=c?.message||String(c);if(a.lastAttemptAt=Date.now(),a.lastError=b,a.models)return{models:a.models,diff:a.lastDiff,fetchedAt:a.fetchedAt,stale:!0,error:b};return{models:[],diff:{added:[],removed:[]},fetchedAt:null,stale:!0,error:b}}}async function n(a=null){let b=await m(),c=a||await (0,d.mt)(),e=c.zenFreeModelOverrides||{},f=c.zenRetentionOverrides||{},g=(b.models||[]).map(a=>({...a,free:k(a,e),...function(a,b=null){let c=j(a?.id,b);if(void 0!==c){if(!1===c||"false"===c||"none"===c||"no"===c)return{data_retention:"none",retention_warning:!1};if("string"==typeof c&&""!==c.trim())return{data_retention:c.trim(),retention_warning:!1}}return{data_retention:"unknown",retention_warning:!0}}(a,f)})),h=g.filter(a=>a.free),i=new Set(h.map(a=>a.id));return{...b,models:g,freeModels:h,freeIds:i,overrides:e,freeOnlyEnabled:!0===c.zenFreeOnly}}async function o(a,b=null){let c=b||await (0,d.mt)();if(!0!==c.zenFreeOnly)return!0;let e=j(a,c.zenFreeModelOverrides||{});return void 0!==e?!0===e||"true"===e:!!String(a).endsWith("-free")||(await n(c)).freeIds.has(a)}},37234:(a,b,c)=>{c.d(b,{jd:()=>m,sp:()=>l});var d=c(8827);let e="default",f=RegExp("remember|don'?t forget|keep in mind|note that|important|i prefer|always use|never use|from now on|going forward|my name is|i work on|our project|the fix (was|is)|root cause|bug (was|is)|it work(s|ed) when|make sure to|ingat|jangan lupa|penting|catat|simpan|saya prefer|selalu gunakan|jangan pakai|mulai sekarang|nama saya|saya lagi kerjain|proyek saya|solusinya|ternyata|penyebabnya|berhasil kalau|pastikan","i"),g=/^(```|[A-Za-z0-9_$]+\(|function |class |import |const |let |var |SELECT |GET |POST |curl )/i,h=new Set(["the","and","for","with","this","that","from","have","has","was","were","will","would","could","should","yang","dan","untuk","dengan","ini","itu","ada","tidak","bisa","saya","kamu","apa","gimana","kenapa"]);function i(a){if(!a||"string"!=typeof a)return!1;let b=a.trim();return!(b.length<24||b.length>8e3||g.test(b)&&!f.test(b))&&f.test(b)}function j(a){return String(a||"").toLowerCase().replace(/[^a-z0-9]+/g," ").trim()}function k(a,b=6){let c=new Map;for(let b of String(a||"").toLowerCase().split(/[^a-z0-9]+/))b.length<4||h.has(b)||c.set(b,(c.get(b)||0)+1);return[...c.entries()].sort((a,b)=>b[1]-a[1]||b[0].length-a[0].length).slice(0,b).map(([a])=>a)}async function l({text:a,sessionId:b="",provider:c="",model:g="",source:h="auto"}={}){try{let l=String(a||"").replace(/\s+/g," ").trim();if(!i(l))return null;let m=((function(a){let b=String(a||"").trim();if(!b)return null;if(b.length<=160)return i(b)?b:null;let c=b.split(/(?<=[.!?])\s+|\n+/).map(a=>a.trim()).filter(Boolean),d=[],e=0;for(let a of c)if(f.test(a)&&(e+a.length>600||(d.push(a),e+=a.length,d.length>=4)))break;return d.length?d.join(" "):null})(l)||l.slice(0,600)).slice(0,600);if(m.length<24)return null;try{let a=k(m,4);if(a.length){let c=await (0,d.Cp)({userId:e,sessionId:b,query:a.join(" "),limit:10}),f=j(m);if(c?.some(a=>j(a.content)===f))return null}}catch{}return await (0,d.IG)({userId:e,sessionId:b,content:m,metadata:{source:h,provider:c,model:g,capturedAt:Date.now()}})}catch{return null}}async function m({text:a,sessionId:b="",maxTokens:c=400}={}){try{let f=k(a,6);if(!f.length)return"";let g=await (0,d.Cp)({userId:e,sessionId:b,query:f.join(" "),limit:5});if(!g?.length)return"";let h=Math.max(200,Number(c)>0?4*Number(c):1600),i=0,j=[];for(let a of g){let b=`- ${String(a.content||"").replace(/\s+/g," ").trim()}`;if(i+b.length>h)break;j.push(b),i+=b.length}if(!j.length)return"";return["# User memory — durable facts from earlier sessions","Apply these when relevant. They override generic defaults. On conflict, the current request wins.",...j,"(Apply silently; never mention this block.)"].join("\n")}catch{return""}}},38775:(a,b,c)=>{c.d(b,{d_:()=>j,mA:()=>i});var d=c(89718),e=c(40669),f=c(86664);let g={xmtp:"xiaomi-tokenplan","xiaomi-tokenplan":"xiaomi-tokenplan"},h=new Set(Object.keys(g));for(let a of f.A)for(let b of(h.add(a.id),a.alias&&h.add(a.alias),a.aliases||[]))h.add(b);async function i(a){let b,c=(b=(0,e.Xh)(a),b?.providerAlias&&g[b.providerAlias]?{...b,provider:g[b.providerAlias]}:b);if(!c.isAlias){if(!h.has(c.providerAlias)){let a=(await (0,d.Fh)({type:"openai-compatible"})).find(a=>a.prefix===c.providerAlias);if(a)return{provider:a.id,model:c.model};let b=(await (0,d.Fh)({type:"anthropic-compatible"})).find(a=>a.prefix===c.providerAlias);if(b)return{provider:b.id,model:c.model};let e=(await (0,d.Fh)({type:"custom-embedding"})).find(a=>a.prefix===c.providerAlias);if(e)return{provider:e.id,model:c.model}}return{provider:c.provider,model:c.model}}return await (0,d.Dj)(c.model)?{provider:null,model:c.model}:(0,e.js)(a,d.OM)}async function j(a){if(a.includes("/"))return null;let b=await (0,d.Dj)(a);return b&&b.models&&b.models.length>0?b.models:null}},39006:a=>{a.exports={rE:"1.2.3"}},41719:(a,b,c)=>{c.d(b,{AQ:()=>f,au:()=>e,zR:()=>g});var d=c(41004);function e(a,b=d.P4){let c=b?.maxBodyBytes||0;if(c<=0||!a?.headers)return{ok:!0};let f=a.headers.get("content-length");if(f){let a=parseInt(f,10);if(Number.isFinite(a)&&a>c)return{ok:!1,status:413,message:`Request payload too large: ${a} bytes exceeds limit of ${c} bytes.`}}return{ok:!0}}function f(a){if(null===a||"object"!=typeof a||Array.isArray(a))return{ok:!1,status:400,message:"Invalid request body: body must be a JSON object."};if(void 0!==a.model&&null!==a.model&&""!==a.model&&"string"!=typeof a.model)return{ok:!1,status:400,message:"Invalid request body: 'model' must be a string."};let b="messages"in a,c="input"in a,d="prompt"in a,e="antigravity"===a.userAgent&&null!==a.request&&"object"==typeof a.request&&Array.isArray(a.request.contents);if(!b&&!c&&!d&&!e)return{ok:!1,status:400,message:"Invalid request body: at least one of 'messages', 'input', or 'prompt' must be provided."};if(b){if(!Array.isArray(a.messages))return{ok:!1,status:400,message:"Invalid request body: 'messages' must be an array."};for(let b=0;b<a.messages.length;b++){let c=a.messages[b];if(null===c||"object"!=typeof c||Array.isArray(c))return{ok:!1,status:400,message:`Invalid request body: messages[${b}] must be an object.`}}}if(c&&!Array.isArray(a.input))return{ok:!1,status:400,message:"Invalid request body: 'input' must be an array."};if(d&&!Array.isArray(a.prompt)&&"string"!=typeof a.prompt)return{ok:!1,status:400,message:"Invalid request body: 'prompt' must be a string or an array."};if("stream"in a&&void 0!==a.stream&&"boolean"!=typeof a.stream)return{ok:!1,status:400,message:"Invalid request body: 'stream' must be a boolean."};if("tools"in a&&void 0!==a.tools&&null!==a.tools){if(!Array.isArray(a.tools))return{ok:!1,status:400,message:"Invalid request body: 'tools' must be an array."};for(let b=0;b<a.tools.length;b++){let c=a.tools[b];if(null===c||"object"!=typeof c||Array.isArray(c))return{ok:!1,status:400,message:`Invalid request body: tools[${b}] must be an object.`}}}for(let b of["max_tokens","max_completion_tokens","temperature","top_p"])if(b in a&&void 0!==a[b]&&null!==a[b]&&("number"!=typeof a[b]||!Number.isFinite(a[b])))return{ok:!1,status:400,message:`Invalid request body: '${b}' must be a finite number.`};return{ok:!0}}function g(a,b=d.P4){if(!a||"object"!=typeof a)return{ok:!0};let c=b?.maxMessages||0;if(c>0&&Array.isArray(a.messages)&&a.messages.length>c)return{ok:!1,status:413,message:`Payload Too Large: message count ${a.messages.length} exceeds limit of ${c}.`};let e=b?.maxTools||0;if(e>0&&Array.isArray(a.tools)&&a.tools.length>e)return{ok:!1,status:413,message:`Payload Too Large: tools count ${a.tools.length} exceeds limit of ${e}.`};let f=b?.maxToolSchemaBytes||0;if(f>0&&Array.isArray(a.tools)){let b=0;try{b=Buffer.byteLength(JSON.stringify(a.tools),"utf8")}catch{b=0}if(b>f)return{ok:!1,status:413,message:`Payload Too Large: tools schema size of ${b} bytes exceeds limit of ${f} bytes.`}}return{ok:!0}}},45699:(a,b,c)=>{c.d(b,{Xg:()=>q,PROVIDER_MODELS:()=>f.vq,fZ:()=>j,cY:()=>s,ux:()=>m,OA:()=>n,kt:()=>o,KC:()=>r,SM:()=>i});var d=c(35024),e=c(86664),f=c(26070),g=c(99511);let h="-review";function i(a){return f.vq[a]||[]}function j(a){let b=f.vq[a];return b?.[0]?.id||null}c(41955);let k=new Set(["kr","kiro"]);function l(a,b,c){if(!a)return;let d=a.find(a=>a.id===b);if(d)return d;if(!k.has(c))return;let e=(0,g.Kq)(b);if(e!==b)return a.find(a=>a.id===e)}function m(a,b){let c=f.vq[a],d=(0,g.gr)(l(c,b,a));if(d)return d;let h=e.A.find(b=>b.id===a||b.alias===a);return h?.modelFormatRules?.find(a=>a.prefixes.some(a=>b?.startsWith(a)))?.format||null}function n(a,b){let c=f.vq[a];if(!c)return null;let d=l(c,b,a);return d?.kind||d?.type||null}function o(a,b){let c="string"==typeof b?b.match(/\([^()]+\)\s*$/):null,d=c?c[0]:"",e=d?b.slice(0,c.index).trim():b,g=l(f.vq[a],e,a),i=g?.upstreamModelId||g?.id;if(i){let a=i.match(/\([^()]+\)\s*$/),b=a?.[0]||"";return(b?i.slice(0,a.index).trim():i)+(d||b)}return"cx"===a&&"string"==typeof e&&e.endsWith(h)?e.slice(0,-h.length)+d:e+d}let p=Object.fromEntries(e.A.filter(a=>a.alias&&a.alias!==a.id).map(a=>[a.id,a.alias])),q=Object.fromEntries(Object.keys(d.xq).map(a=>[a,p[a]||a]));function r(a){let b=q[a]||a;return f.vq[b]||[]}function s(a,b){return(0,g.g5)(l(f.vq[a],b,a))}},64935:(a,b,c)=>{c.d(b,{c:()=>i});var d=c(89718);let e=process.env.BASE_URL||process.env.NEXT_PUBLIC_BASE_URL||"http://localhost:21128",f=null,g=0;async function h(){if(f&&Date.now()-g<3e5)return f;try{let a=(await (0,d.PX)()||[]).find(a=>a&&!1!==a.isActive&&a.key);return f=a?.key||null,g=Date.now(),f}catch{return null}}function i(a){return a?async function(b){try{let c={"Content-Type":"application/json"},d=await h();d&&(c.Authorization=`Bearer ${d}`);let f=await fetch(`${e}/v1/embeddings`,{method:"POST",headers:c,body:JSON.stringify({model:a,input:[String(b??"")]}),signal:AbortSignal.timeout(1e4)});if(!f.ok)return null;let g=await f.json(),i=g?.data?.[0]?.embedding;return Array.isArray(i)&&i.length>0?i:null}catch{return null}}:null}},74388:(a,b,c)=>{c.d(b,{Az:()=>l,SP:()=>o,T0:()=>k});var d=c(29021),e=c.n(d),f=c(33873),g=c.n(f),h=c(87155);let i=g().join(h.XF,"events.jsonl"),j=g().join(h.XF,"events.jsonl.1");function k(a){try{e().existsSync(h.XF)||e().mkdirSync(h.XF,{recursive:!0});try{e().statSync(i).size>5242880&&e().renameSync(i,j)}catch{}e().appendFile(i,JSON.stringify({ts:Date.now(),...a})+"\n",()=>{})}catch{}}function l({sinceMs:a=null,limit:b=null}={}){let c=[];for(let b of[j,i])try{if(!e().existsSync(b))continue;for(let d of e().readFileSync(b,"utf8").split("\n"))if(d)try{let b=JSON.parse(d);if(a&&b.ts<a)continue;c.push(b)}catch{}}catch{}return c.sort((a,b)=>a.ts-b.ts),b?c.slice(-b):c}function m(){return{requests:0,compressed:0,bypassed:0,errors:0,tokensBeforeEst:0,tokensAfterEst:0,tokensSavedEst:0,savedPct:0,imagesGenerated:0,compressionTimeMs:0,avgCompressionMs:0}}function n(a,b){a.requests++,b.applied?(a.compressed++,a.tokensBeforeEst+=b.tokensBeforeEst||0,a.tokensAfterEst+=b.tokensAfterEst||0,a.tokensSavedEst+=b.tokensSavedEst||0,a.imagesGenerated+=b.imageCount||0,a.compressionTimeMs+=b.durationMs||0):"transform_error"===b.reason||"timeout"===b.reason?a.errors++:a.bypassed++}function o({timelineDays:a=30,recentLimit:b=100}={}){let c=l(),d=Date.now(),e=new Date(new Date(d).setHours(0,0,0,0)).getTime(),f={all:m(),today:m(),yesterday:m(),last7d:m(),last30d:m()},g=new Map;for(let b=a-1;b>=0;b--){let a=new Date(e-864e5*b);g.set(a.toISOString().slice(0,10),{date:a.toISOString().slice(0,10),tokensSavedEst:0,compressed:0,requests:0})}for(let a of c){n(f.all,a),a.ts>=e?n(f.today,a):a.ts>=e-864e5&&n(f.yesterday,a),a.ts>=d-6048e5&&n(f.last7d,a),a.ts>=d-2592e6&&n(f.last30d,a);let b=new Date(a.ts).toISOString().slice(0,10),c=g.get(b);c&&(c.requests++,a.applied&&(c.compressed++,c.tokensSavedEst+=a.tokensSavedEst||0))}for(let a of Object.values(f))a.savedPct=a.tokensBeforeEst>0?+(a.tokensSavedEst/a.tokensBeforeEst*100).toFixed(2):0,a.avgCompressionMs=a.compressed>0?Math.round(a.compressionTimeMs/a.compressed):0;return{windows:f,timeline:[...g.values()],recent:c.slice(-b).reverse()}}},76302:(a,b,c)=>{c.d(b,{O:()=>i});let d=new Set(["block","warn","redact"]);function e(a){return(String(a||"guardrail").toLowerCase().replace(/[^a-z0-9_-]+/g,"-").replace(/^-+|-+$/g,"")||"guardrail").slice(0,64)}function f(a){try{return Buffer.byteLength("string"==typeof a?a:JSON.stringify(a))}catch{return 1/0}}function g(a,b,c,d){return{phase:a,ruleId:e(b.id),outcome:c,reason:d}}function h(a,b,c){a.push(b);try{c?.(b)}catch{}}function i({required:a,present:b,valid:c},j){return!0!==a?{outcome:"allow",payload:null,events:[]}:function({phase:a="input",payload:b,rules:c=[],maxBytes:i=262144,onEvent:j}={}){let k=Array.isArray(c)?c.slice(0,32).filter(a=>a?.enabled!==!1&&d.has(a?.action)):[],l=[],m=b,n=!1,o=!1;if(f(m)>i){for(let b of k){let c=!0===b.failClosed?"block":"warn";if(h(l,g(a,b,c,"payload_too_large"),j),"block"===c)return{outcome:c,blockedBy:e(b.id),payload:m,events:l};n=!0}return{outcome:n?"warn":"allow",payload:m,events:l}}for(let b of k){let c;try{c="function"==typeof b.match?!0===b.match(m):!0===b.match}catch{let c=!0===b.failClosed?"block":"warn";if(h(l,g(a,b,c,"evaluation_error"),j),"block"===c)return{outcome:c,blockedBy:e(b.id),payload:m,events:l};n=!0;continue}if(c){if("block"===b.action)return h(l,g(a,b,"block","matched"),j),{outcome:"block",blockedBy:e(b.id),payload:m,events:l};if("warn"===b.action){h(l,g(a,b,"warn","matched"),j),n=!0;continue}try{if("function"!=typeof b.transform)throw Error("missing transform");let c=b.transform(m);if(f(c)>i)throw Error("oversized transform");m=c,o=!0,h(l,g(a,b,"redact","matched"),j)}catch{let c=!0===b.failClosed?"block":"warn";if(h(l,g(a,b,c,"redaction_error"),j),"block"===c)return{outcome:c,blockedBy:e(b.id),payload:m,events:l};n=!0}}}return{outcome:o?"redact":n?"warn":"allow",payload:m,events:l}}({phase:"request",payload:{present:!0===b,valid:!0===c},onEvent:j,rules:[{id:"llm-api-key-missing",action:"block",match:a=>!a.present},{id:"llm-api-key-invalid",action:"block",match:a=>a.present&&!a.valid}]})}},78984:(a,b,c)=>{c.d(b,{C0:()=>n,I1:()=>r,KY:()=>m,Oe:()=>q,T2:()=>l,d4:()=>p,im:()=>j,wH:()=>k,xj:()=>o});var d=c(48161),e=c.n(d),f=c(76760),g=c.n(f),h=c(79646),i=c(49120);let j=g().join(i.n,"headroom"),k=g().join(j,".venv"),l=g().join(k,"win32"===process.platform?"Scripts/python.exe":"bin/python"),m=g().join(k,"win32"===process.platform?"Scripts/headroom.exe":"bin/headroom"),n="import importlib.metadata as m,json; print(json.dumps([{'name':d.metadata['Name'],'version':d.version} for d in m.distributions()]))",o=27e5;function p({run:a=h.execFileSync}={}){let b="win32"===process.platform?"uv.exe":"uv";for(let c of["uv",g().join(e().homedir(),".local","bin",b),g().join(e().homedir(),".cargo","bin",b)])try{return a(c,["--version"],{timeout:3e3,windowsHide:!0,stdio:["ignore","pipe","ignore"]}),c}catch{}return null}function q(a,{run:b=h.execFileSync}={}){if(!a?.command)return!1;try{return b(a.command,[...a.args,"-m","pip","--version"],{timeout:5e3,windowsHide:!0,stdio:["ignore","pipe","ignore"]}),!0}catch{return!1}}function r(a,{uv:b,pip:c}){if(!["auto","uv","pip"].includes(a))throw Object.assign(Error("Installer must be auto, uv, or pip"),{code:"INVALID_INSTALLER"});if("pip"!==a&&b)return"uv";if("uv"!==a&&c)return"pip";throw Object.assign(Error("uv"===a?"uv was not found. Install uv or select pip.":"No supported installer found. Install uv, or Python 3.10+ with pip and venv, then recheck."),{code:"NO_INSTALLER"})}},79489:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{P:()=>D});var e=c(48895),f=c(80238),g=c(89718),h=c(35695),i=c(38775),j=c(92500),k=c(87687),l=c(3894),m=c(24253),n=c(74388),o=c(69093),p=c(64935),q=c(37234),r=c(43659),s=c(18910),t=c(17603),u=c(27349),v=c(41004),w=c(14170),x=c(41719),y=c(7803),z=c(67828),A=c(38160),B=c(76302),C=a([e,j]);async function D(a,b=null){let c,d=(0,x.au)(a);if(!d.ok)return(0,r.yj)(d.status,d.message);try{c=await a.json()}catch{return y.warn("CHAT","Invalid JSON body"),(0,r.yj)(v.gx.BAD_REQUEST,"Invalid JSON body")}let e=(0,x.AQ)(c);if(!e.ok)return(0,r.yj)(e.status,e.message);let h=(0,x.zR)(c);if(!h.ok)return(0,r.yj)(h.status,h.message);b||(b={endpoint:new URL(a.url).pathname,body:c,headers:Object.fromEntries(a.headers.entries())});let j=c.model,k=a.headers.get("Authorization"),l=(0,f.Tr)(a);if(k&&l){let a=y.maskKey(l);y.debug("AUTH",`API Key: ${a}`)}else y.debug("AUTH","No API key provided (local mode)");let m=await (0,g.mt)();if(m.requireApiKey){let a=!!l&&await (0,f.kI)(l),b=(0,B.O)({required:!0,present:!!l,valid:a},a=>y.warn("GUARDRAIL",`${a.ruleId}:${a.outcome}`));if("block"===b.outcome){let a="llm-api-key-missing"===b.blockedBy;return(0,r.yj)(v.gx.UNAUTHORIZED,a?"Missing API key":"Invalid API key")}}if(!j)return y.warn("CHAT","Missing model"),(0,r.yj)(v.gx.BAD_REQUEST,"Missing model");let n=a?.headers?.get("user-agent")||"",o=(0,u.c)(c,j,n,!!m.ccFilterNaming);if(o)return o.response||o;let p=(0,s.t8)(c),q=await (0,i.d_)(j);if(q){let d=m.comboStrategies||{},e=d[j]?.fallbackStrategy||m.comboStrategy||"fallback",f=(0,t.R8)(q,p,m),g=f.filter(a=>!q.includes(a));if("fusion"===e)return y.info("CHAT",`Combo "${j}" with ${q.length} models (strategy: fusion)`),(0,s.vt)({body:c,models:q,handleSingleModel:(c,d,e)=>{let f=b;if(e&&b){let{tools:a,tool_choice:c,...d}=b.body||{};f={...b,body:d}}return E(c,d,f,a,l,m)},log:y,comboName:j,judgeModel:d[j]?.judgeModel,tuning:d[j]?.fusionTuning});let h=m.comboStickyRoundRobinLimit;return y.info("CHAT",`Combo "${j}" with ${f.length} models (strategy: ${e}, sticky: ${h})`),(0,s.Pr)({body:c,models:f,handleSingleModel:(0,t.ar)((c,d)=>E(c,d,b,a,l,m),g),log:y,comboName:j,comboStrategy:e,comboStickyLimit:h,raceTuning:d[j]?.raceTuning})}let w=(0,t.R8)([j],p,m);if(w.length>1){let d=w.filter(a=>a!==j);return y.info("CHAT",`Capacity adapter for [${[...p].join(",")}] on "${j}" → trying ${w.join(", ")}`),(0,s.Pr)({body:c,models:w,handleSingleModel:(0,t.ar)((c,d)=>E(c,d,b,a,l,m),d),log:y,comboName:j,comboStrategy:(0,t.vB)(p,m)})}return E(c,j,b,a,l,m)}async function E(a,b,c=null,d=null,e=null,u=null){let x=u||await (0,g.mt)(),B=(0,k.QR)(x),C=x.privacyMode||"normal",D=(0,k.Mr)(x),F=await (0,i.mA)(b);if(!F.provider){let f=await (0,i.d_)(b);if(f){let g=x.comboStrategies||{},h=g[b]?.fallbackStrategy||x.comboStrategy||"fallback",i=(0,s.t8)(a),j=(0,t.R8)(f,i,x),k=j.filter(a=>!f.includes(a));if("fusion"===h)return y.info("CHAT",`Combo "${b}" with ${f.length} models (strategy: fusion)`),(0,s.vt)({body:a,models:f,handleSingleModel:(a,b,f)=>{let g=c;if(f&&c){let{tools:a,tool_choice:b,...d}=c.body||{};g={...c,body:d}}return E(a,b,g,d,e,x)},log:y,comboName:b,judgeModel:g[b]?.judgeModel,tuning:g[b]?.fusionTuning});let l=x.comboStickyRoundRobinLimit;return y.info("CHAT",`Combo "${b}" with ${j.length} models (strategy: ${h}, sticky: ${l})`),(0,s.Pr)({body:a,models:j,handleSingleModel:(0,t.ar)((a,b)=>E(a,b,c,d,e,x),k),log:y,comboName:b,comboStrategy:h,comboStickyLimit:l,raceTuning:g[b]?.raceTuning})}return y.warn("CHAT","Invalid model format",{model:b}),(0,r.yj)(v.gx.BAD_REQUEST,"Invalid model format")}let{provider:G,model:H}=F;if(("strict"===C||"local-only"===C)&&(0,k.fo)(G,B))return y.warn("PRIVACY",`privacy (${C}): provider "${G}" is blocked`),(0,r.yj)(v.gx.FORBIDDEN,`Provider "${G}" is blocked by privacy settings (${C})`);if("opencode"===G&&!await (0,h.el)(H))return y.warn("CHAT",`zenFreeOnly: rejected non-free OpenCode model "${H}"`),(0,r.yj)(v.gx.FORBIDDEN,`zenFreeOnly is enabled: "${H}" is not a free OpenCode model`);let I=d?.headers?.get("user-agent")||"",J=new Set,K=null,L=null;for(;;){let b=await (0,f.c1)(G,J,H);if(!b||b.allRateLimited){if(b?.allRateLimited){let a=K||b.lastError||"Unavailable",c=L||Number(b.lastErrorCode)||v.gx.SERVICE_UNAVAILABLE;return y.warn("CHAT",`[${G}/${H}] ${a} (${b.retryAfterHuman})`),(0,r.wO)(c,`[${G}/${H}] ${a}`,b.retryAfter,b.retryAfterHuman)}if(0===J.size)return y.warn("AUTH",`No active credentials for provider: ${G}`),(0,r.yj)(v.gx.NOT_FOUND,`No active credentials for provider: ${G}`);return y.warn("CHAT","No more accounts available",{provider:G}),(0,r.yj)(L||v.gx.SERVICE_UNAVAILABLE,K||"All accounts unavailable")}if("local-only"===C&&!(0,k.Cw)(b)){if(!b.connectionId)return y.warn("PRIVACY",`local-only: provider "${G}" has no local (self-hosted) connection`),(0,r.yj)(v.gx.SERVICE_UNAVAILABLE,`local-only: provider "${G}" has no local connection`);y.warn("PRIVACY",`local-only: skipping non-local account for ${G} (${b.connectionName||b.connectionId})`),J.add(b.connectionId),K=K||`local-only: no local credentials for ${G}`,L=L||v.gx.SERVICE_UNAVAILABLE;continue}let g=await (0,z.checkAndRefreshToken)(G,b);if(("antigravity"===G||"gemini-cli"===G)&&!g.projectId){let a={connectionProxyEnabled:g.providerSpecificData?.connectionProxyEnabled===!0,connectionProxyUrl:g.providerSpecificData?.connectionProxyUrl||"",connectionNoProxy:g.providerSpecificData?.connectionNoProxy||"",vercelRelayUrl:g.providerSpecificData?.vercelRelayUrl||"",strictProxy:g.providerSpecificData?.strictProxy===!0},c=await (0,A.K_)(b.connectionId,g.accessToken,G,{timeoutMs:6e4,proxyOptions:a});if(c)g.projectId=c,(0,z.vN)(b.connectionId,{projectId:c}).catch(()=>{});else{let a="antigravity"===G?"Antigravity":"Gemini CLI";return y.warn("AUTH",`${a} connection is missing its Google Cloud Code project ID`),(0,r.yj)(v.gx.UNPROCESSABLE_ENTITY,`${a} onboarding could not complete. Check Google account region/eligibility, quota, or token status, then use the connection's Onboard action and retry.`)}}let h=(x.providerThinking||{})[G]||null,i=await (0,j.wk)({body:{...a,model:`${G}/${H}`},modelInfo:{provider:G,model:H},credentials:g,log:y,clientRawRequest:c,connectionId:b.connectionId,userAgent:I,apiKey:e,ccFilterNaming:!!x.ccFilterNaming,rtkEnabled:!!x.rtkEnabled,rtkMode:x.rtkMode,tokenSaverAutoTriggerTokens:x.tokenSaverAutoTriggerTokens,responseFocus:x.responseFocus||"balanced",headroomEnabled:D.headroomEnabled,headroomUrl:x.headroomUrl||l.ag,headroomCompressUserMessages:!!x.headroomCompressUserMessages,cavemanEnabled:!!x.cavemanEnabled,cavemanLevel:x.cavemanLevel||"full",ponytailEnabled:!!x.ponytailEnabled,ponytailLevel:x.ponytailLevel||"full",antiSlopEnabled:!!x.antiSlopEnabled,antiSlopLevel:x.antiSlopLevel||"full",hermesAutonomyEnabled:!1!==x.hermesAutonomyEnabled,hermesAutonomyMode:x.hermesAutonomyMode||"full",pxpipeEnabled:D.pxpipeEnabled&&"antigravity"!==G,pxpipeMinChars:x.pxpipeMinChars,pxpipeTimeoutMs:x.pxpipeTimeoutMs,pxpipeTransform:D.pxpipeEnabled&&"antigravity"!==G?await (0,m.RG)():null,onPxpipeEvent:n.T0,onCacheEvent:o.GV,onTokenSaverEvent:o.kc,cacheL1Enabled:D.cacheL1Enabled,cacheL2Enabled:D.cacheL2Enabled,cacheL3Enabled:D.cacheL3Enabled,semanticCacheModel:x.semanticCacheModel||"",semanticCacheThreshold:Number(x.semanticCacheThreshold)>0?Number(x.semanticCacheThreshold):.92,semanticCacheTtl:Number(x.semanticCacheTtl)>0?Number(x.semanticCacheTtl):36e5,semanticCacheMaxEntries:Number(x.semanticCacheMaxEntries)>0?Number(x.semanticCacheMaxEntries):100,cacheL3MinChars:Number(x.cacheL3MinChars)>0?Number(x.cacheL3MinChars):1e3,semanticEmbed:x.semanticCacheModel?(0,p.c)(x.semanticCacheModel):null,bodyLoggingEnabled:D.bodyLoggingEnabled,aiMemoryCapture:D.aiMemoryEnabled&&!1!==x.aiMemoryAutoCapture?q.sp:null,aiMemoryRecall:D.aiMemoryEnabled?q.jd:null,aiMemoryMaxTokens:Number(x.aiMemoryMaxTokens)>0?Number(x.aiMemoryMaxTokens):400,providerThinking:h,sourceFormatOverride:d?.url?(0,w.t)(new URL(d.url).pathname,a):null,onCredentialsRefreshed:async a=>{await (0,z.vN)(b.connectionId,{...a,existingProviderSpecificData:b.providerSpecificData,testStatus:"active"})},onRequestSuccess:async()=>{await (0,f.Pt)(b.connectionId,b,H)}});if(i.success)return i.response;let{shouldFallback:s}=await (0,f.vk)(b.connectionId,i.status,i.error,G,H,i.resetsAtMs);if(s){y.warn("FALLBACK",`⇄ ACC:${b.connectionName} UNAVAILABLE (${i.status}) → NEXT ACCOUNT`),J.add(b.connectionId),K=i.error,L=i.status;continue}return i.response}}[e,j]=C.then?(await C)():C,d()}catch(a){d(a)}})},87155:(a,b,c)=>{c.d(b,{CG:()=>q,ED:()=>u,S1:()=>s,XF:()=>j,_g:()=>t,no:()=>r,sW:()=>w});var d=c(29021),e=c.n(d),f=c(33873),g=c.n(f),h=c(79646),i=c(49120);let j=g().join(i.n,"pxpipe"),k="pxpipe-proxy",l=g().join(j,"install.log"),m="win32"===process.platform,n=[...m?[`${process.env.ProgramFiles||"C:\\Program Files"}\\nodejs`,`${process.env["ProgramFiles(x86)"]||"C:\\Program Files (x86)"}\\nodejs`,`${process.env.APPDATA||""}\\npm`,`${process.env.LOCALAPPDATA||""}\\Programs\\nodejs`]:["/usr/local/bin","/opt/homebrew/bin",`${process.env.HOME||""}/.local/bin`,"/usr/bin","/bin"],process.env.PATH||""].filter(Boolean).join(g().delimiter),o=null;function p(){return g().join(j,"node_modules",k)}function q(){return g().join(p(),"dist","core","library.js")}function r(){try{let a=(0,h.execSync)(`${m?"where npm":"which npm"}`,{stdio:["ignore","pipe","ignore"],windowsHide:!0,env:{...process.env,PATH:n}}).toString().trim();if(!a)return null;let b=a.split(/\r?\n/).map(a=>a.trim()).filter(Boolean);if(m){let a=b.find(a=>a.toLowerCase().endsWith(".cmd")||a.toLowerCase().endsWith(".bat"));if(a)return a}return b[0]||null}catch{return null}}function s(){try{let a=g().join(p(),"package.json");if(!e().existsSync(a)||!e().existsSync(q()))return{installed:!1,version:null,path:null};let b=JSON.parse(e().readFileSync(a,"utf8"));return{installed:!0,version:b.version||null,path:p()}}catch{return{installed:!1,version:null,path:null}}}function t(){return null!==o}function u(){return o||(o=v().finally(()=>{o=null}))}async function v(){let a=r();if(!a){let a=Error("npm not found on PATH — Node.js/npm is required to install PXPIPE");throw a.code="NPM_NOT_FOUND",a}e().existsSync(j)||e().mkdirSync(j,{recursive:!0});let b=g().join(j,"package.json");e().existsSync(b)||e().writeFileSync(b,JSON.stringify({name:"miawrouter-pxpipe-host",private:!0},null,2));let c=e().openSync(l,"a");e().writeSync(c,`
1
+ "use strict";exports.id=112,exports.ids=[112,5699],exports.modules={3894:(a,b,c)=>{c.d(b,{F_:()=>j,Nc:()=>k,Qh:()=>y,Su:()=>v,ag:()=>r,kI:()=>t,rl:()=>z,sy:()=>x,vu:()=>u});var d=c(79646),e=c(33873),f=c.n(e),g=c(73024),h=c.n(g),i=c(78984);let j=["code","ml"],k={code:["tree-sitter","tree-sitter-language-pack"],ml:["torch","huggingface-hub"]},l="win32"===process.platform,m=l?"where":"which",n=l?[`${process.env.LOCALAPPDATA||""}\\Programs\\Python\\Python314\\Scripts`,`${process.env.LOCALAPPDATA||""}\\Programs\\Python\\Python314`,`${process.env.LOCALAPPDATA||""}\\Programs\\Python\\Python313\\Scripts`,`${process.env.LOCALAPPDATA||""}\\Programs\\Python\\Python313`,`${process.env.LOCALAPPDATA||""}\\Programs\\Python\\Python312\\Scripts`,`${process.env.LOCALAPPDATA||""}\\Programs\\Python\\Python312`,`${process.env.LOCALAPPDATA||""}\\Programs\\Python\\Python311\\Scripts`,`${process.env.LOCALAPPDATA||""}\\Programs\\Python\\Python311`,`${process.env.LOCALAPPDATA||""}\\Programs\\Python\\Python310\\Scripts`,`${process.env.LOCALAPPDATA||""}\\Programs\\Python\\Python310`,`${process.env.APPDATA||""}\\Python\\Python313\\Scripts`,`${process.env.APPDATA||""}\\Python\\Python314\\Scripts`,`${process.env.APPDATA||""}\\Python\\Python312\\Scripts`,`${process.env.APPDATA||""}\\Python\\Python311\\Scripts`,`${process.env.ProgramFiles||"C:\\Program Files"}\\Python313\\Scripts`,`${process.env.ProgramFiles||"C:\\Program Files"}\\Python314\\Scripts`,`${process.env.ProgramFiles||"C:\\Program Files"}\\Python314`,`${process.env.ProgramFiles||"C:\\Program Files"}\\Python313`,`${process.env.ProgramFiles||"C:\\Program Files"}\\Python312\\Scripts`,`${process.env.ProgramFiles||"C:\\Program Files"}\\Python312`,`${process.env.ProgramFiles||"C:\\Program Files"}\\Python311\\Scripts`,`${process.env.ProgramFiles||"C:\\Program Files"}\\Python311`,`${process.env["ProgramFiles(x86)"]||"C:\\Program Files (x86)"}\\Python313`,`${process.env["ProgramFiles(x86)"]||"C:\\Program Files (x86)"}\\Python312`,`${process.env.LOCALAPPDATA||""}\\Microsoft\\WindowsApps`,"C:\\Python313\\Scripts","C:\\Python313","C:\\Python312\\Scripts","C:\\Python312","C:\\Python311\\Scripts","C:\\Python311",`${process.env.USERPROFILE||""}\\miniconda3\\Scripts`,`${process.env.USERPROFILE||""}\\miniconda3`,`${process.env.USERPROFILE||""}\\anaconda3\\Scripts`,`${process.env.USERPROFILE||""}\\anaconda3`]:["/usr/local/bin","/opt/homebrew/bin","/Library/Frameworks/Python.framework/Versions/3.13/bin","/Library/Frameworks/Python.framework/Versions/3.12/bin","/Library/Frameworks/Python.framework/Versions/3.11/bin","/Library/Frameworks/Python.framework/Versions/3.10/bin",`${process.env.HOME||""}/.local/bin`,"/usr/bin","/bin"],o=[...n,process.env.PATH||""].filter(Boolean).join(f().delimiter),p=l?["py -3.14","py -3.13","py -3.12","py -3.11","py -3.10","py -3","py","python","python3","python3.14","python3.13","python3.12","python3.11","python3.10"]:["python3.13","python3.12","python3.11","python3.10","python3","python"],q=new Set(["localhost","127.0.0.1","::1","[::1]","0.0.0.0"]),r=process.env.HEADROOM_URL||"http://localhost:8787";function s(a,b=l){if(a&&"object"==typeof a)return{command:a.command,args:Array.isArray(a.args)?a.args:[]};let c=String(a||"").trim();if(b&&/^py\s+-\S+$/.test(c)){let[a,...b]=c.split(/\s+/);return{command:a,args:b}}return{command:c,args:[]}}function t(){if(h().existsSync(i.KY))return i.KY;try{let a=(0,d.execSync)(`${m} headroom`,{stdio:["ignore","pipe","ignore"],windowsHide:!0,env:{...process.env,PATH:o}}).toString().trim();return a?a.split(/\r?\n/)[0].trim():null}catch{return null}}function u(){let a=null,b=!!t();for(let c of function(){let a=[];h().existsSync(i.T2)&&a.push(i.T2);let b=t();if(b){let c=f().dirname(b);for(let b of l?["python.exe","python3.exe"]:["python3","python3.13","python"])a.push(f().join(c,b))}for(let b of n)if(b)for(let c of l?["python.exe","python3.exe","python3.13.exe","python3.12.exe","python3.11.exe","python3.10.exe"]:p)a.push(f().join(b,c));return a.push(...p),[...new Set(a)]}()){let e=s(c);try{let c=(0,d.execFileSync)(e.command,[...e.args,"--version"],{timeout:3e3,stdio:["ignore","pipe","ignore"],windowsHide:!0,env:{...process.env,PATH:o}}).toString().trim().match(/(\d+)\.(\d+)/);if(!c)continue;let[f,g]=[parseInt(c[1],10),parseInt(c[2],10)];if(!(f>3||3===f&&g>=10))continue;if(a||(a=e),!b)return e;try{return(0,d.execFileSync)(e.command,[...e.args,"-c","import importlib.metadata as m; print(m.version('headroom-ai'))"],{stdio:["ignore","pipe","ignore"],windowsHide:!0,timeout:8e3,env:{...process.env,PATH:o}}),e}catch{}}catch{}}return a}function v(){let a=u();return a?a.args.length?[a.command,...a.args].join(" "):a.command:null}async function w(a){if(!a)return!1;let b=String(a).replace(/\/$/,"");try{return(await fetch(`${b}/health`,{signal:AbortSignal.timeout(1500)})).ok}catch{return!1}}function x(a){try{let b=new URL(a);return q.has(b.hostname)}catch{return!1}}async function y(a){let b=t(),c=v(),d=s(c),e=(0,i.d4)(),f=(0,i.Oe)(d),g=!!b,h=await w(a),j=x(a),k=g?z(c):{installed:!1,version:null,extras:{code:!1,ml:!1}};return{installed:g,path:b,running:h,python:c,localUrl:j,canStart:g&&j,version:k.version,extras:k.extras,uv:e,pip:f,canInstall:j&&!!(e||c&&f),recommendedInstaller:e?"uv":f?"pip":null}}function z(a){let b=s(a||v());if(!b.command)return{installed:!1,version:null,extras:{code:!1,ml:!1}};try{let a=(0,d.execFileSync)(b.command,[...b.args,"-c",i.C0],{stdio:["ignore","pipe","ignore"],windowsHide:!0,timeout:8e3,env:{...process.env,PATH:o}}).toString(),c=JSON.parse(a),e=new Set(c.map(a=>String(a.name||"").toLowerCase()));if(!e.has("headroom-ai"))return{installed:!1,version:null,extras:{code:!1,ml:!1}};let f=c.find(a=>a.name?.toLowerCase()==="headroom-ai")?.version||null,g={};for(let a of j)g[a]=k[a].some(a=>e.has(a));return{installed:!0,version:f,extras:g}}catch{return{installed:!1,version:null,extras:{code:!1,ml:!1}}}}},17603:(a,b,c)=>{c.d(b,{R8:()=>j,ar:()=>l,vB:()=>h});var d=c(66306);let e=["vision","pdf","audioInput","videoInput"],f=new Set(e);function g(a,b){var c;let d=Array.isArray(c=b?.capacityAdapter?.[a])?{enabled:!0,roundRobin:!1,models:c.map(a=>a?.model||a).filter(Boolean)}:c&&"object"==typeof c?{enabled:!1!==c.enabled,roundRobin:!!c.roundRobin,models:Array.isArray(c.models)?c.models.filter(Boolean):[]}:{enabled:!1,roundRobin:!1,models:[]};return d.enabled&&0===d.models.length?{...d,models:["oc/mimo-v2.6-flash-free"]}:d}function h(a,b){for(let c of[...a||[]].filter(a=>f.has(a))){let{enabled:a,models:d}=g(c,b);if(a&&0!==d.length)return function(a,b){let{enabled:c,roundRobin:d}=g(a,b);return c&&d?"round-robin":"fallback"}(c,b)}return"fallback"}function i(a,b){let c=a.indexOf("/"),e=c>0?a.slice(0,c):"",f=c>0?a.slice(c+1):a,g=(0,d.nl)(e,f);return b.every(a=>!0===g[a])}function j(a,b,c){let d=[...b||[]].filter(a=>f.has(a));if(0===d.length||!Array.isArray(a)||0===a.length||a.some(a=>i(a,d)))return a;let h=(function(a){let b=new Set,c=[];for(let d of e){let{enabled:e,models:f}=g(d,a);if(e)for(let a of f)b.has(a)||(b.add(a),c.push(a))}return c})(c).filter(b=>!a.includes(b)&&i(b,d));return 0===h.length?a:[...h,...a]}function k(a){return"string"==typeof a?a.length:Array.isArray(a)?a.reduce((a,b)=>a+("string"==typeof b?.text?b.text.length:50),0):0}function l(a,b){let c=new Set(b);return 0===c.size?a:(b,e,...f)=>{if(c.has(e)){let a=e.indexOf("/"),c=a>0?e.slice(0,a):"",f=a>0?e.slice(a+1):e,{contextWindow:g}=(0,d.nl)(c,f);b=function(a,b){let c=Array.isArray(a.messages)?"messages":Array.isArray(a.input)?"input":Array.isArray(a.contents)?"contents":null;if(!c)return a;let d=a[c];if(!d||0===d.length)return a;let e=a=>"system"===a||"developer"===a,f=d.filter(a=>e(a?.role)),g=d.filter(a=>!e(a?.role));if(0===g.length)return a;let h=a=>"assistant"===a||"model"===a,i=g.length-1;for(;i>=0&&!h(g[i]?.role);)i--;let j=g.slice(i+1),l=g.slice(0,i+1);if(0===l.length)return a;let m=a=>a.content??a.parts,n=.8*(b||2e5)*4,o=l.slice(0,6),p=f.concat(o,j).reduce((a,b)=>a+k(m(b)),0);for(;p>n&&o.length>0;)p-=k(m(o.pop()));return o.length===l.length?a:{...a,[c]:[...f,...o,...j]}}(b,g)}return a(b,e,...f)}}},24253:(a,b,c)=>{c.d(b,{Mo:()=>h,RG:()=>l,V:()=>i,Y8:()=>k,xl:()=>m});var d=c(1932),e=c(87155);let f=null,g=null;function h(){return f?{loaded:!0,version:f.version,loadedAt:f.loadedAt}:{loaded:!1}}async function i(){return f||g||(g=j().finally(()=>{g=null}))}async function j(){let a=(0,e.S1)();if(!a.installed){let a=Error("PXPIPE is not installed");throw a.code="NOT_INSTALLED",a}let b=`${(0,d.pathToFileURL)((0,e.CG)()).href}?v=${encodeURIComponent(a.version||"0")}`,c=await import(b);if("function"!=typeof c.transformAnthropicMessages)throw Error("installed pxpipe package does not export transformAnthropicMessages");return f={module:c,version:a.version,loadedAt:Date.now()}}function k(){let a=!!f;return f=null,a}async function l({autoLoad:a=!0}={}){try{if(!f&&!a)return null;let{module:b}=await i();return b.transformAnthropicMessages}catch{return null}}async function m(){let a=Date.now(),{module:b}=await i(),c=new TextEncoder().encode(JSON.stringify({model:"claude-fable-5",max_tokens:16,messages:[{role:"user",content:"ping"}]})),d=await b.transformAnthropicMessages({body:c,model:"claude-fable-5"});if(!d||"boolean"!=typeof d.applied||!(d.body instanceof Uint8Array))throw Error("transform returned an unexpected shape");return{ok:!0,reason:d.reason,durationMs:Date.now()-a}}},35024:(a,b,c)=>{c.d(b,{Ak:()=>e,Yg:()=>h,sr:()=>d.sr,xq:()=>d.xq});var d=c(26070);function e(a){return(a?.providerSpecificData?.baseUrl?.trim()||"http://localhost:11434").replace(/\/$/,"")}let f=d.xq["xiaomi-tokenplan"]?.regions||{},g=d.xq["xiaomi-tokenplan"]?.defaultRegion;function h(a){return f[a?.providerSpecificData?.region]||f[g]}},35695:(a,b,c)=>{c.d(b,{DF:()=>e,el:()=>o,mF:()=>k,xD:()=>n});var d=c(89718);let e="https://opencode.ai/zen/v1/models",f=new Set(["big-pickle"]),g="__miaw_opencode_catalog_v1__";function h(){return globalThis[g]||={models:null,lastIds:[],lastDiff:{added:[],removed:[]},fetchedAt:null,lastAttemptAt:0,lastError:null},globalThis[g]}function i(a){if(null==a)return null;if("number"==typeof a)return a;let b=String(a).trim();return""!==b&&Number.isFinite(Number(b))?Number(b):null}function j(a,b){if(b&&"object"==typeof b){if(Array.isArray(b))return!!b.includes(a)||void 0;if(Object.prototype.hasOwnProperty.call(b,a))return b[a]}}function k(a,b=null){let c,d,e,g=a?.id;if(!g)return!1;let h=j(g,b);return void 0!==h?!0===h||"true"===h:!!(String(g).endsWith("-free")||f.has(g))||(d=i((c=a?.pricing||{}).prompt??a?.input_price??a?.input_cost),e=i(c.completion??a?.output_price??a?.output_cost),0===d&&0===e)}async function l(){let a=new AbortController,b=setTimeout(()=>a.abort(),15e3);try{var c;let b=await fetch(e,{headers:{"x-opencode-client":"desktop"},cache:"no-store",signal:a.signal});if(!b.ok)throw Error(`OpenCode Zen models: HTTP ${b.status}`);let d=(c=await b.json(),Array.isArray(c)?c:c?.data??c?.models??[]).filter(a=>a&&"string"==typeof a.id),f=h(),g=d.map(a=>a.id);return f.lastDiff={added:d.filter(a=>!f.lastIds.includes(a.id)),removed:f.lastIds.filter(a=>!g.includes(a))},f.models=d,f.lastIds=g,f.fetchedAt=Date.now(),f.lastAttemptAt=Date.now(),f.lastError=null,f}finally{clearTimeout(b)}}async function m(){let a=h();if(a.models&&a.fetchedAt&&Date.now()-a.fetchedAt<216e5)return{models:a.models,diff:a.lastDiff,fetchedAt:a.fetchedAt,stale:!1,error:null};if(Date.now()-a.lastAttemptAt<6e4)return a.models?{models:a.models,diff:a.lastDiff,fetchedAt:a.fetchedAt,stale:!0,error:a.lastError}:{models:[],diff:{added:[],removed:[]},fetchedAt:null,stale:!0,error:a.lastError||"catalog fetch failed"};try{let a=await l();return{models:a.models,diff:a.lastDiff,fetchedAt:a.fetchedAt,stale:!1,error:null}}catch(c){let b=c?.message||String(c);if(a.lastAttemptAt=Date.now(),a.lastError=b,a.models)return{models:a.models,diff:a.lastDiff,fetchedAt:a.fetchedAt,stale:!0,error:b};return{models:[],diff:{added:[],removed:[]},fetchedAt:null,stale:!0,error:b}}}async function n(a=null){let b=await m(),c=a||await (0,d.mt)(),e=c.zenFreeModelOverrides||{},f=c.zenRetentionOverrides||{},g=(b.models||[]).map(a=>({...a,free:k(a,e),...function(a,b=null){let c=j(a?.id,b);if(void 0!==c){if(!1===c||"false"===c||"none"===c||"no"===c)return{data_retention:"none",retention_warning:!1};if("string"==typeof c&&""!==c.trim())return{data_retention:c.trim(),retention_warning:!1}}return{data_retention:"unknown",retention_warning:!0}}(a,f)})),h=g.filter(a=>a.free),i=new Set(h.map(a=>a.id));return{...b,models:g,freeModels:h,freeIds:i,overrides:e,freeOnlyEnabled:!0===c.zenFreeOnly}}async function o(a,b=null){let c=b||await (0,d.mt)();if(!0!==c.zenFreeOnly)return!0;let e=j(a,c.zenFreeModelOverrides||{});return void 0!==e?!0===e||"true"===e:!!String(a).endsWith("-free")||(await n(c)).freeIds.has(a)}},37234:(a,b,c)=>{c.d(b,{jd:()=>m,sp:()=>l});var d=c(8827);let e="default",f=RegExp("remember|don'?t forget|keep in mind|note that|important|i prefer|always use|never use|from now on|going forward|my name is|i work on|our project|the fix (was|is)|root cause|bug (was|is)|it work(s|ed) when|make sure to|ingat|jangan lupa|penting|catat|simpan|saya prefer|selalu gunakan|jangan pakai|mulai sekarang|nama saya|saya lagi kerjain|proyek saya|solusinya|ternyata|penyebabnya|berhasil kalau|pastikan","i"),g=/^(```|[A-Za-z0-9_$]+\(|function |class |import |const |let |var |SELECT |GET |POST |curl )/i,h=new Set(["the","and","for","with","this","that","from","have","has","was","were","will","would","could","should","yang","dan","untuk","dengan","ini","itu","ada","tidak","bisa","saya","kamu","apa","gimana","kenapa"]);function i(a){if(!a||"string"!=typeof a)return!1;let b=a.trim();return!(b.length<24||b.length>8e3||g.test(b)&&!f.test(b))&&f.test(b)}function j(a){return String(a||"").toLowerCase().replace(/[^a-z0-9]+/g," ").trim()}function k(a,b=6){let c=new Map;for(let b of String(a||"").toLowerCase().split(/[^a-z0-9]+/))b.length<4||h.has(b)||c.set(b,(c.get(b)||0)+1);return[...c.entries()].sort((a,b)=>b[1]-a[1]||b[0].length-a[0].length).slice(0,b).map(([a])=>a)}async function l({text:a,sessionId:b="",provider:c="",model:g="",source:h="auto"}={}){try{let l=String(a||"").replace(/\s+/g," ").trim();if(!i(l))return null;let m=((function(a){let b=String(a||"").trim();if(!b)return null;if(b.length<=160)return i(b)?b:null;let c=b.split(/(?<=[.!?])\s+|\n+/).map(a=>a.trim()).filter(Boolean),d=[],e=0;for(let a of c)if(f.test(a)&&(e+a.length>600||(d.push(a),e+=a.length,d.length>=4)))break;return d.length?d.join(" "):null})(l)||l.slice(0,600)).slice(0,600);if(m.length<24)return null;try{let a=k(m,4);if(a.length){let c=await (0,d.Cp)({userId:e,sessionId:b,query:a.join(" "),limit:10}),f=j(m);if(c?.some(a=>j(a.content)===f))return null}}catch{}return await (0,d.IG)({userId:e,sessionId:b,content:m,metadata:{source:h,provider:c,model:g,capturedAt:Date.now()}})}catch{return null}}async function m({text:a,sessionId:b="",maxTokens:c=400}={}){try{let f=k(a,6);if(!f.length)return"";let g=await (0,d.Cp)({userId:e,sessionId:b,query:f.join(" "),limit:5});if(!g?.length)return"";let h=Math.max(200,Number(c)>0?4*Number(c):1600),i=0,j=[];for(let a of g){let b=`- ${String(a.content||"").replace(/\s+/g," ").trim()}`;if(i+b.length>h)break;j.push(b),i+=b.length}if(!j.length)return"";return["# User memory — durable facts from earlier sessions","Apply these when relevant. They override generic defaults. On conflict, the current request wins.",...j,"(Apply silently; never mention this block.)"].join("\n")}catch{return""}}},38775:(a,b,c)=>{c.d(b,{d_:()=>j,mA:()=>i});var d=c(89718),e=c(40669),f=c(86664);let g={xmtp:"xiaomi-tokenplan","xiaomi-tokenplan":"xiaomi-tokenplan"},h=new Set(Object.keys(g));for(let a of f.A)for(let b of(h.add(a.id),a.alias&&h.add(a.alias),a.aliases||[]))h.add(b);async function i(a){let b,c=(b=(0,e.Xh)(a),b?.providerAlias&&g[b.providerAlias]?{...b,provider:g[b.providerAlias]}:b);if(!c.isAlias){if(!h.has(c.providerAlias)){let a=(await (0,d.Fh)({type:"openai-compatible"})).find(a=>a.prefix===c.providerAlias);if(a)return{provider:a.id,model:c.model};let b=(await (0,d.Fh)({type:"anthropic-compatible"})).find(a=>a.prefix===c.providerAlias);if(b)return{provider:b.id,model:c.model};let e=(await (0,d.Fh)({type:"custom-embedding"})).find(a=>a.prefix===c.providerAlias);if(e)return{provider:e.id,model:c.model}}return{provider:c.provider,model:c.model}}return await (0,d.Dj)(c.model)?{provider:null,model:c.model}:(0,e.js)(a,d.OM)}async function j(a){if(a.includes("/"))return null;let b=await (0,d.Dj)(a);return b&&b.models&&b.models.length>0?b.models:null}},39006:a=>{a.exports={rE:"1.2.4"}},41719:(a,b,c)=>{c.d(b,{AQ:()=>f,au:()=>e,zR:()=>g});var d=c(41004);function e(a,b=d.P4){let c=b?.maxBodyBytes||0;if(c<=0||!a?.headers)return{ok:!0};let f=a.headers.get("content-length");if(f){let a=parseInt(f,10);if(Number.isFinite(a)&&a>c)return{ok:!1,status:413,message:`Request payload too large: ${a} bytes exceeds limit of ${c} bytes.`}}return{ok:!0}}function f(a){if(null===a||"object"!=typeof a||Array.isArray(a))return{ok:!1,status:400,message:"Invalid request body: body must be a JSON object."};if(void 0!==a.model&&null!==a.model&&""!==a.model&&"string"!=typeof a.model)return{ok:!1,status:400,message:"Invalid request body: 'model' must be a string."};let b="messages"in a,c="input"in a,d="prompt"in a,e="antigravity"===a.userAgent&&null!==a.request&&"object"==typeof a.request&&Array.isArray(a.request.contents);if(!b&&!c&&!d&&!e)return{ok:!1,status:400,message:"Invalid request body: at least one of 'messages', 'input', or 'prompt' must be provided."};if(b){if(!Array.isArray(a.messages))return{ok:!1,status:400,message:"Invalid request body: 'messages' must be an array."};for(let b=0;b<a.messages.length;b++){let c=a.messages[b];if(null===c||"object"!=typeof c||Array.isArray(c))return{ok:!1,status:400,message:`Invalid request body: messages[${b}] must be an object.`}}}if(c&&!Array.isArray(a.input))return{ok:!1,status:400,message:"Invalid request body: 'input' must be an array."};if(d&&!Array.isArray(a.prompt)&&"string"!=typeof a.prompt)return{ok:!1,status:400,message:"Invalid request body: 'prompt' must be a string or an array."};if("stream"in a&&void 0!==a.stream&&"boolean"!=typeof a.stream)return{ok:!1,status:400,message:"Invalid request body: 'stream' must be a boolean."};if("tools"in a&&void 0!==a.tools&&null!==a.tools){if(!Array.isArray(a.tools))return{ok:!1,status:400,message:"Invalid request body: 'tools' must be an array."};for(let b=0;b<a.tools.length;b++){let c=a.tools[b];if(null===c||"object"!=typeof c||Array.isArray(c))return{ok:!1,status:400,message:`Invalid request body: tools[${b}] must be an object.`}}}for(let b of["max_tokens","max_completion_tokens","temperature","top_p"])if(b in a&&void 0!==a[b]&&null!==a[b]&&("number"!=typeof a[b]||!Number.isFinite(a[b])))return{ok:!1,status:400,message:`Invalid request body: '${b}' must be a finite number.`};return{ok:!0}}function g(a,b=d.P4){if(!a||"object"!=typeof a)return{ok:!0};let c=b?.maxMessages||0;if(c>0&&Array.isArray(a.messages)&&a.messages.length>c)return{ok:!1,status:413,message:`Payload Too Large: message count ${a.messages.length} exceeds limit of ${c}.`};let e=b?.maxTools||0;if(e>0&&Array.isArray(a.tools)&&a.tools.length>e)return{ok:!1,status:413,message:`Payload Too Large: tools count ${a.tools.length} exceeds limit of ${e}.`};let f=b?.maxToolSchemaBytes||0;if(f>0&&Array.isArray(a.tools)){let b=0;try{b=Buffer.byteLength(JSON.stringify(a.tools),"utf8")}catch{b=0}if(b>f)return{ok:!1,status:413,message:`Payload Too Large: tools schema size of ${b} bytes exceeds limit of ${f} bytes.`}}return{ok:!0}}},45699:(a,b,c)=>{c.d(b,{Xg:()=>q,PROVIDER_MODELS:()=>f.vq,fZ:()=>j,cY:()=>s,ux:()=>m,OA:()=>n,kt:()=>o,KC:()=>r,SM:()=>i});var d=c(35024),e=c(86664),f=c(26070),g=c(99511);let h="-review";function i(a){return f.vq[a]||[]}function j(a){let b=f.vq[a];return b?.[0]?.id||null}c(41955);let k=new Set(["kr","kiro"]);function l(a,b,c){if(!a)return;let d=a.find(a=>a.id===b);if(d)return d;if(!k.has(c))return;let e=(0,g.Kq)(b);if(e!==b)return a.find(a=>a.id===e)}function m(a,b){let c=f.vq[a],d=(0,g.gr)(l(c,b,a));if(d)return d;let h=e.A.find(b=>b.id===a||b.alias===a);return h?.modelFormatRules?.find(a=>a.prefixes.some(a=>b?.startsWith(a)))?.format||null}function n(a,b){let c=f.vq[a];if(!c)return null;let d=l(c,b,a);return d?.kind||d?.type||null}function o(a,b){let c="string"==typeof b?b.match(/\([^()]+\)\s*$/):null,d=c?c[0]:"",e=d?b.slice(0,c.index).trim():b,g=l(f.vq[a],e,a),i=g?.upstreamModelId||g?.id;if(i){let a=i.match(/\([^()]+\)\s*$/),b=a?.[0]||"";return(b?i.slice(0,a.index).trim():i)+(d||b)}return"cx"===a&&"string"==typeof e&&e.endsWith(h)?e.slice(0,-h.length)+d:e+d}let p=Object.fromEntries(e.A.filter(a=>a.alias&&a.alias!==a.id).map(a=>[a.id,a.alias])),q=Object.fromEntries(Object.keys(d.xq).map(a=>[a,p[a]||a]));function r(a){let b=q[a]||a;return f.vq[b]||[]}function s(a,b){return(0,g.g5)(l(f.vq[a],b,a))}},64935:(a,b,c)=>{c.d(b,{c:()=>i});var d=c(89718);let e=process.env.BASE_URL||process.env.NEXT_PUBLIC_BASE_URL||"http://localhost:21128",f=null,g=0;async function h(){if(f&&Date.now()-g<3e5)return f;try{let a=(await (0,d.PX)()||[]).find(a=>a&&!1!==a.isActive&&a.key);return f=a?.key||null,g=Date.now(),f}catch{return null}}function i(a){return a?async function(b){try{let c={"Content-Type":"application/json"},d=await h();d&&(c.Authorization=`Bearer ${d}`);let f=await fetch(`${e}/v1/embeddings`,{method:"POST",headers:c,body:JSON.stringify({model:a,input:[String(b??"")]}),signal:AbortSignal.timeout(1e4)});if(!f.ok)return null;let g=await f.json(),i=g?.data?.[0]?.embedding;return Array.isArray(i)&&i.length>0?i:null}catch{return null}}:null}},74388:(a,b,c)=>{c.d(b,{Az:()=>l,SP:()=>o,T0:()=>k});var d=c(29021),e=c.n(d),f=c(33873),g=c.n(f),h=c(87155);let i=g().join(h.XF,"events.jsonl"),j=g().join(h.XF,"events.jsonl.1");function k(a){try{e().existsSync(h.XF)||e().mkdirSync(h.XF,{recursive:!0});try{e().statSync(i).size>5242880&&e().renameSync(i,j)}catch{}e().appendFile(i,JSON.stringify({ts:Date.now(),...a})+"\n",()=>{})}catch{}}function l({sinceMs:a=null,limit:b=null}={}){let c=[];for(let b of[j,i])try{if(!e().existsSync(b))continue;for(let d of e().readFileSync(b,"utf8").split("\n"))if(d)try{let b=JSON.parse(d);if(a&&b.ts<a)continue;c.push(b)}catch{}}catch{}return c.sort((a,b)=>a.ts-b.ts),b?c.slice(-b):c}function m(){return{requests:0,compressed:0,bypassed:0,errors:0,tokensBeforeEst:0,tokensAfterEst:0,tokensSavedEst:0,savedPct:0,imagesGenerated:0,compressionTimeMs:0,avgCompressionMs:0}}function n(a,b){a.requests++,b.applied?(a.compressed++,a.tokensBeforeEst+=b.tokensBeforeEst||0,a.tokensAfterEst+=b.tokensAfterEst||0,a.tokensSavedEst+=b.tokensSavedEst||0,a.imagesGenerated+=b.imageCount||0,a.compressionTimeMs+=b.durationMs||0):"transform_error"===b.reason||"timeout"===b.reason?a.errors++:a.bypassed++}function o({timelineDays:a=30,recentLimit:b=100}={}){let c=l(),d=Date.now(),e=new Date(new Date(d).setHours(0,0,0,0)).getTime(),f={all:m(),today:m(),yesterday:m(),last7d:m(),last30d:m()},g=new Map;for(let b=a-1;b>=0;b--){let a=new Date(e-864e5*b);g.set(a.toISOString().slice(0,10),{date:a.toISOString().slice(0,10),tokensSavedEst:0,compressed:0,requests:0})}for(let a of c){n(f.all,a),a.ts>=e?n(f.today,a):a.ts>=e-864e5&&n(f.yesterday,a),a.ts>=d-6048e5&&n(f.last7d,a),a.ts>=d-2592e6&&n(f.last30d,a);let b=new Date(a.ts).toISOString().slice(0,10),c=g.get(b);c&&(c.requests++,a.applied&&(c.compressed++,c.tokensSavedEst+=a.tokensSavedEst||0))}for(let a of Object.values(f))a.savedPct=a.tokensBeforeEst>0?+(a.tokensSavedEst/a.tokensBeforeEst*100).toFixed(2):0,a.avgCompressionMs=a.compressed>0?Math.round(a.compressionTimeMs/a.compressed):0;return{windows:f,timeline:[...g.values()],recent:c.slice(-b).reverse()}}},76302:(a,b,c)=>{c.d(b,{O:()=>i});let d=new Set(["block","warn","redact"]);function e(a){return(String(a||"guardrail").toLowerCase().replace(/[^a-z0-9_-]+/g,"-").replace(/^-+|-+$/g,"")||"guardrail").slice(0,64)}function f(a){try{return Buffer.byteLength("string"==typeof a?a:JSON.stringify(a))}catch{return 1/0}}function g(a,b,c,d){return{phase:a,ruleId:e(b.id),outcome:c,reason:d}}function h(a,b,c){a.push(b);try{c?.(b)}catch{}}function i({required:a,present:b,valid:c},j){return!0!==a?{outcome:"allow",payload:null,events:[]}:function({phase:a="input",payload:b,rules:c=[],maxBytes:i=262144,onEvent:j}={}){let k=Array.isArray(c)?c.slice(0,32).filter(a=>a?.enabled!==!1&&d.has(a?.action)):[],l=[],m=b,n=!1,o=!1;if(f(m)>i){for(let b of k){let c=!0===b.failClosed?"block":"warn";if(h(l,g(a,b,c,"payload_too_large"),j),"block"===c)return{outcome:c,blockedBy:e(b.id),payload:m,events:l};n=!0}return{outcome:n?"warn":"allow",payload:m,events:l}}for(let b of k){let c;try{c="function"==typeof b.match?!0===b.match(m):!0===b.match}catch{let c=!0===b.failClosed?"block":"warn";if(h(l,g(a,b,c,"evaluation_error"),j),"block"===c)return{outcome:c,blockedBy:e(b.id),payload:m,events:l};n=!0;continue}if(c){if("block"===b.action)return h(l,g(a,b,"block","matched"),j),{outcome:"block",blockedBy:e(b.id),payload:m,events:l};if("warn"===b.action){h(l,g(a,b,"warn","matched"),j),n=!0;continue}try{if("function"!=typeof b.transform)throw Error("missing transform");let c=b.transform(m);if(f(c)>i)throw Error("oversized transform");m=c,o=!0,h(l,g(a,b,"redact","matched"),j)}catch{let c=!0===b.failClosed?"block":"warn";if(h(l,g(a,b,c,"redaction_error"),j),"block"===c)return{outcome:c,blockedBy:e(b.id),payload:m,events:l};n=!0}}}return{outcome:o?"redact":n?"warn":"allow",payload:m,events:l}}({phase:"request",payload:{present:!0===b,valid:!0===c},onEvent:j,rules:[{id:"llm-api-key-missing",action:"block",match:a=>!a.present},{id:"llm-api-key-invalid",action:"block",match:a=>a.present&&!a.valid}]})}},78984:(a,b,c)=>{c.d(b,{C0:()=>n,I1:()=>r,KY:()=>m,Oe:()=>q,T2:()=>l,d4:()=>p,im:()=>j,wH:()=>k,xj:()=>o});var d=c(48161),e=c.n(d),f=c(76760),g=c.n(f),h=c(79646),i=c(49120);let j=g().join(i.n,"headroom"),k=g().join(j,".venv"),l=g().join(k,"win32"===process.platform?"Scripts/python.exe":"bin/python"),m=g().join(k,"win32"===process.platform?"Scripts/headroom.exe":"bin/headroom"),n="import importlib.metadata as m,json; print(json.dumps([{'name':d.metadata['Name'],'version':d.version} for d in m.distributions()]))",o=27e5;function p({run:a=h.execFileSync}={}){let b="win32"===process.platform?"uv.exe":"uv";for(let c of["uv",g().join(e().homedir(),".local","bin",b),g().join(e().homedir(),".cargo","bin",b)])try{return a(c,["--version"],{timeout:3e3,windowsHide:!0,stdio:["ignore","pipe","ignore"]}),c}catch{}return null}function q(a,{run:b=h.execFileSync}={}){if(!a?.command)return!1;try{return b(a.command,[...a.args,"-m","pip","--version"],{timeout:5e3,windowsHide:!0,stdio:["ignore","pipe","ignore"]}),!0}catch{return!1}}function r(a,{uv:b,pip:c}){if(!["auto","uv","pip"].includes(a))throw Object.assign(Error("Installer must be auto, uv, or pip"),{code:"INVALID_INSTALLER"});if("pip"!==a&&b)return"uv";if("uv"!==a&&c)return"pip";throw Object.assign(Error("uv"===a?"uv was not found. Install uv or select pip.":"No supported installer found. Install uv, or Python 3.10+ with pip and venv, then recheck."),{code:"NO_INSTALLER"})}},79489:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{P:()=>D});var e=c(48895),f=c(80238),g=c(89718),h=c(35695),i=c(38775),j=c(92500),k=c(87687),l=c(3894),m=c(24253),n=c(74388),o=c(69093),p=c(64935),q=c(37234),r=c(43659),s=c(18910),t=c(17603),u=c(27349),v=c(41004),w=c(14170),x=c(41719),y=c(7803),z=c(67828),A=c(38160),B=c(76302),C=a([e,j]);async function D(a,b=null){let c,d=(0,x.au)(a);if(!d.ok)return(0,r.yj)(d.status,d.message);try{c=await a.json()}catch{return y.warn("CHAT","Invalid JSON body"),(0,r.yj)(v.gx.BAD_REQUEST,"Invalid JSON body")}let e=(0,x.AQ)(c);if(!e.ok)return(0,r.yj)(e.status,e.message);let h=(0,x.zR)(c);if(!h.ok)return(0,r.yj)(h.status,h.message);b||(b={endpoint:new URL(a.url).pathname,body:c,headers:Object.fromEntries(a.headers.entries())});let j=c.model,k=a.headers.get("Authorization"),l=(0,f.Tr)(a);if(k&&l){let a=y.maskKey(l);y.debug("AUTH",`API Key: ${a}`)}else y.debug("AUTH","No API key provided (local mode)");let m=await (0,g.mt)();if(m.requireApiKey){let a=!!l&&await (0,f.kI)(l),b=(0,B.O)({required:!0,present:!!l,valid:a},a=>y.warn("GUARDRAIL",`${a.ruleId}:${a.outcome}`));if("block"===b.outcome){let a="llm-api-key-missing"===b.blockedBy;return(0,r.yj)(v.gx.UNAUTHORIZED,a?"Missing API key":"Invalid API key")}}if(!j)return y.warn("CHAT","Missing model"),(0,r.yj)(v.gx.BAD_REQUEST,"Missing model");let n=a?.headers?.get("user-agent")||"",o=(0,u.c)(c,j,n,!!m.ccFilterNaming);if(o)return o.response||o;let p=(0,s.t8)(c),q=await (0,i.d_)(j);if(q){let d=m.comboStrategies||{},e=d[j]?.fallbackStrategy||m.comboStrategy||"fallback",f=(0,t.R8)(q,p,m),g=f.filter(a=>!q.includes(a));if("fusion"===e)return y.info("CHAT",`Combo "${j}" with ${q.length} models (strategy: fusion)`),(0,s.vt)({body:c,models:q,handleSingleModel:(c,d,e)=>{let f=b;if(e&&b){let{tools:a,tool_choice:c,...d}=b.body||{};f={...b,body:d}}return E(c,d,f,a,l,m)},log:y,comboName:j,judgeModel:d[j]?.judgeModel,tuning:d[j]?.fusionTuning});let h=m.comboStickyRoundRobinLimit;return y.info("CHAT",`Combo "${j}" with ${f.length} models (strategy: ${e}, sticky: ${h})`),(0,s.Pr)({body:c,models:f,handleSingleModel:(0,t.ar)((c,d)=>E(c,d,b,a,l,m),g),log:y,comboName:j,comboStrategy:e,comboStickyLimit:h,raceTuning:d[j]?.raceTuning})}let w=(0,t.R8)([j],p,m);if(w.length>1){let d=w.filter(a=>a!==j);return y.info("CHAT",`Capacity adapter for [${[...p].join(",")}] on "${j}" → trying ${w.join(", ")}`),(0,s.Pr)({body:c,models:w,handleSingleModel:(0,t.ar)((c,d)=>E(c,d,b,a,l,m),d),log:y,comboName:j,comboStrategy:(0,t.vB)(p,m)})}return E(c,j,b,a,l,m)}async function E(a,b,c=null,d=null,e=null,u=null){let x=u||await (0,g.mt)(),B=(0,k.QR)(x),C=x.privacyMode||"normal",D=(0,k.Mr)(x),F=await (0,i.mA)(b);if(!F.provider){let f=await (0,i.d_)(b);if(f){let g=x.comboStrategies||{},h=g[b]?.fallbackStrategy||x.comboStrategy||"fallback",i=(0,s.t8)(a),j=(0,t.R8)(f,i,x),k=j.filter(a=>!f.includes(a));if("fusion"===h)return y.info("CHAT",`Combo "${b}" with ${f.length} models (strategy: fusion)`),(0,s.vt)({body:a,models:f,handleSingleModel:(a,b,f)=>{let g=c;if(f&&c){let{tools:a,tool_choice:b,...d}=c.body||{};g={...c,body:d}}return E(a,b,g,d,e,x)},log:y,comboName:b,judgeModel:g[b]?.judgeModel,tuning:g[b]?.fusionTuning});let l=x.comboStickyRoundRobinLimit;return y.info("CHAT",`Combo "${b}" with ${j.length} models (strategy: ${h}, sticky: ${l})`),(0,s.Pr)({body:a,models:j,handleSingleModel:(0,t.ar)((a,b)=>E(a,b,c,d,e,x),k),log:y,comboName:b,comboStrategy:h,comboStickyLimit:l,raceTuning:g[b]?.raceTuning})}return y.warn("CHAT","Invalid model format",{model:b}),(0,r.yj)(v.gx.BAD_REQUEST,"Invalid model format")}let{provider:G,model:H}=F;if(("strict"===C||"local-only"===C)&&(0,k.fo)(G,B))return y.warn("PRIVACY",`privacy (${C}): provider "${G}" is blocked`),(0,r.yj)(v.gx.FORBIDDEN,`Provider "${G}" is blocked by privacy settings (${C})`);if("opencode"===G&&!await (0,h.el)(H))return y.warn("CHAT",`zenFreeOnly: rejected non-free OpenCode model "${H}"`),(0,r.yj)(v.gx.FORBIDDEN,`zenFreeOnly is enabled: "${H}" is not a free OpenCode model`);let I=d?.headers?.get("user-agent")||"",J=new Set,K=null,L=null;for(;;){let b=await (0,f.c1)(G,J,H);if(!b||b.allRateLimited){if(b?.allRateLimited){let a=K||b.lastError||"Unavailable",c=L||Number(b.lastErrorCode)||v.gx.SERVICE_UNAVAILABLE;return y.warn("CHAT",`[${G}/${H}] ${a} (${b.retryAfterHuman})`),(0,r.wO)(c,`[${G}/${H}] ${a}`,b.retryAfter,b.retryAfterHuman)}if(0===J.size)return y.warn("AUTH",`No active credentials for provider: ${G}`),(0,r.yj)(v.gx.NOT_FOUND,`No active credentials for provider: ${G}`);return y.warn("CHAT","No more accounts available",{provider:G}),(0,r.yj)(L||v.gx.SERVICE_UNAVAILABLE,K||"All accounts unavailable")}if("local-only"===C&&!(0,k.Cw)(b)){if(!b.connectionId)return y.warn("PRIVACY",`local-only: provider "${G}" has no local (self-hosted) connection`),(0,r.yj)(v.gx.SERVICE_UNAVAILABLE,`local-only: provider "${G}" has no local connection`);y.warn("PRIVACY",`local-only: skipping non-local account for ${G} (${b.connectionName||b.connectionId})`),J.add(b.connectionId),K=K||`local-only: no local credentials for ${G}`,L=L||v.gx.SERVICE_UNAVAILABLE;continue}let g=await (0,z.checkAndRefreshToken)(G,b);if(("antigravity"===G||"gemini-cli"===G)&&!g.projectId){let a={connectionProxyEnabled:g.providerSpecificData?.connectionProxyEnabled===!0,connectionProxyUrl:g.providerSpecificData?.connectionProxyUrl||"",connectionNoProxy:g.providerSpecificData?.connectionNoProxy||"",vercelRelayUrl:g.providerSpecificData?.vercelRelayUrl||"",strictProxy:g.providerSpecificData?.strictProxy===!0},c=await (0,A.K_)(b.connectionId,g.accessToken,G,{timeoutMs:6e4,proxyOptions:a});if(c)g.projectId=c,(0,z.vN)(b.connectionId,{projectId:c}).catch(()=>{});else{let a="antigravity"===G?"Antigravity":"Gemini CLI";return y.warn("AUTH",`${a} connection is missing its Google Cloud Code project ID`),(0,r.yj)(v.gx.UNPROCESSABLE_ENTITY,`${a} onboarding could not complete. Check Google account region/eligibility, quota, or token status, then use the connection's Onboard action and retry.`)}}let h=(x.providerThinking||{})[G]||null,i=await (0,j.wk)({body:{...a,model:`${G}/${H}`},modelInfo:{provider:G,model:H},credentials:g,log:y,clientRawRequest:c,connectionId:b.connectionId,userAgent:I,apiKey:e,ccFilterNaming:!!x.ccFilterNaming,rtkEnabled:!!x.rtkEnabled,rtkMode:x.rtkMode,tokenSaverAutoTriggerTokens:x.tokenSaverAutoTriggerTokens,responseFocus:x.responseFocus||"balanced",headroomEnabled:D.headroomEnabled,headroomUrl:x.headroomUrl||l.ag,headroomCompressUserMessages:!!x.headroomCompressUserMessages,cavemanEnabled:!!x.cavemanEnabled,cavemanLevel:x.cavemanLevel||"full",ponytailEnabled:!!x.ponytailEnabled,ponytailLevel:x.ponytailLevel||"full",antiSlopEnabled:!!x.antiSlopEnabled,antiSlopLevel:x.antiSlopLevel||"full",hermesAutonomyEnabled:!1!==x.hermesAutonomyEnabled,hermesAutonomyMode:x.hermesAutonomyMode||"full",pxpipeEnabled:D.pxpipeEnabled&&"antigravity"!==G,pxpipeMinChars:x.pxpipeMinChars,pxpipeTimeoutMs:x.pxpipeTimeoutMs,pxpipeTransform:D.pxpipeEnabled&&"antigravity"!==G?await (0,m.RG)():null,onPxpipeEvent:n.T0,onCacheEvent:o.GV,onTokenSaverEvent:o.kc,cacheL1Enabled:D.cacheL1Enabled,cacheL2Enabled:D.cacheL2Enabled,cacheL3Enabled:D.cacheL3Enabled,semanticCacheModel:x.semanticCacheModel||"",semanticCacheThreshold:Number(x.semanticCacheThreshold)>0?Number(x.semanticCacheThreshold):.92,semanticCacheTtl:Number(x.semanticCacheTtl)>0?Number(x.semanticCacheTtl):36e5,semanticCacheMaxEntries:Number(x.semanticCacheMaxEntries)>0?Number(x.semanticCacheMaxEntries):100,cacheL3MinChars:Number(x.cacheL3MinChars)>0?Number(x.cacheL3MinChars):1e3,semanticEmbed:x.semanticCacheModel?(0,p.c)(x.semanticCacheModel):null,bodyLoggingEnabled:D.bodyLoggingEnabled,aiMemoryCapture:D.aiMemoryEnabled&&!1!==x.aiMemoryAutoCapture?q.sp:null,aiMemoryRecall:D.aiMemoryEnabled?q.jd:null,aiMemoryMaxTokens:Number(x.aiMemoryMaxTokens)>0?Number(x.aiMemoryMaxTokens):400,providerThinking:h,sourceFormatOverride:d?.url?(0,w.t)(new URL(d.url).pathname,a):null,onCredentialsRefreshed:async a=>{await (0,z.vN)(b.connectionId,{...a,existingProviderSpecificData:b.providerSpecificData,testStatus:"active"})},onRequestSuccess:async()=>{await (0,f.Pt)(b.connectionId,b,H)}});if(i.success)return i.response;let{shouldFallback:s}=await (0,f.vk)(b.connectionId,i.status,i.error,G,H,i.resetsAtMs);if(s){y.warn("FALLBACK",`⇄ ACC:${b.connectionName} UNAVAILABLE (${i.status}) → NEXT ACCOUNT`),J.add(b.connectionId),K=i.error,L=i.status;continue}return i.response}}[e,j]=C.then?(await C)():C,d()}catch(a){d(a)}})},87155:(a,b,c)=>{c.d(b,{CG:()=>q,ED:()=>u,S1:()=>s,XF:()=>j,_g:()=>t,no:()=>r,sW:()=>w});var d=c(29021),e=c.n(d),f=c(33873),g=c.n(f),h=c(79646),i=c(49120);let j=g().join(i.n,"pxpipe"),k="pxpipe-proxy",l=g().join(j,"install.log"),m="win32"===process.platform,n=[...m?[`${process.env.ProgramFiles||"C:\\Program Files"}\\nodejs`,`${process.env["ProgramFiles(x86)"]||"C:\\Program Files (x86)"}\\nodejs`,`${process.env.APPDATA||""}\\npm`,`${process.env.LOCALAPPDATA||""}\\Programs\\nodejs`]:["/usr/local/bin","/opt/homebrew/bin",`${process.env.HOME||""}/.local/bin`,"/usr/bin","/bin"],process.env.PATH||""].filter(Boolean).join(g().delimiter),o=null;function p(){return g().join(j,"node_modules",k)}function q(){return g().join(p(),"dist","core","library.js")}function r(){try{let a=(0,h.execSync)(`${m?"where npm":"which npm"}`,{stdio:["ignore","pipe","ignore"],windowsHide:!0,env:{...process.env,PATH:n}}).toString().trim();if(!a)return null;let b=a.split(/\r?\n/).map(a=>a.trim()).filter(Boolean);if(m){let a=b.find(a=>a.toLowerCase().endsWith(".cmd")||a.toLowerCase().endsWith(".bat"));if(a)return a}return b[0]||null}catch{return null}}function s(){try{let a=g().join(p(),"package.json");if(!e().existsSync(a)||!e().existsSync(q()))return{installed:!1,version:null,path:null};let b=JSON.parse(e().readFileSync(a,"utf8"));return{installed:!0,version:b.version||null,path:p()}}catch{return{installed:!1,version:null,path:null}}}function t(){return null!==o}function u(){return o||(o=v().finally(()=>{o=null}))}async function v(){let a=r();if(!a){let a=Error("npm not found on PATH — Node.js/npm is required to install PXPIPE");throw a.code="NPM_NOT_FOUND",a}e().existsSync(j)||e().mkdirSync(j,{recursive:!0});let b=g().join(j,"package.json");e().existsSync(b)||e().writeFileSync(b,JSON.stringify({name:"miawrouter-pxpipe-host",private:!0},null,2));let c=e().openSync(l,"a");e().writeSync(c,`
2
2
  [${new Date().toISOString()}] npm install ${k}@latest
3
3
  `),await new Promise((b,d)=>{let e=(0,h.spawn)(a,["install",`${k}@latest`,"--no-audit","--no-fund","--omit=dev"],{cwd:j,stdio:["ignore",c,c],windowsHide:!0,shell:!1,env:{...process.env,PATH:n}}),f=setTimeout(()=>{e.kill(),d(Error("npm install timed out after 5 minutes — see install.log"))},3e5);e.once("error",a=>{clearTimeout(f),d(a)}),e.once("exit",a=>{clearTimeout(f),0===a?b():d(Error(`npm install exited with code ${a} — see install.log`))})}).finally(()=>e().closeSync(c));let d=s();if(!d.installed)throw Error("install finished but package is missing — see install.log");return d}function w(a=200){try{if(!e().existsSync(l))return"";return e().readFileSync(l,"utf8").split(/\r?\n/).filter(Boolean).slice(-a).join("\n")}catch{return""}}},87687:(a,b,c)=>{c.d(b,{Cw:()=>l,Mr:()=>i,QR:()=>g,fo:()=>h,z$:()=>n});var d=c(41004);let e={cacheL1:!0,cacheL2:!0,cacheL3:!0,bodyLogging:!0,headroom:!0,pxpipe:!0,aiMemory:!0,blockProviders:[]},f={normal:{...e},"private-cache":{...e,bodyLogging:!1,headroom:!1,pxpipe:!1,aiMemory:!1},"private-no-cache":{cacheL1:!1,cacheL2:!1,cacheL3:!1,bodyLogging:!1,headroom:!1,pxpipe:!1,aiMemory:!1,blockProviders:[]},strict:{cacheL1:!1,cacheL2:!1,cacheL3:!1,bodyLogging:!1,headroom:!1,pxpipe:!1,aiMemory:!1,blockProviders:[]},"local-only":{cacheL1:!1,cacheL2:!1,cacheL3:!1,bodyLogging:!1,headroom:!1,pxpipe:!1,aiMemory:!1,blockProviders:[]}};function g(a){let b=f[a?.privacyMode||"normal"]||f.normal;return{...b,blockProviders:[...b.blockProviders,...a?.privacyBlockedProviders||[]]}}function h(a,b){if(!a||!b)return!1;let c=b.blockProviders||b;if(!Array.isArray(c))return!1;let d=(a.id||a.name||a).toString().toLowerCase();return c.some(a=>a.toLowerCase()===d)}function i(a){var b;let c=a?.privacyMode||"normal",d=g(a),e="private-cache"!==c||!!(b=a?.semanticCacheModel)&&"string"==typeof b&&m.test(b);return{mode:c,blockProviders:d.blockProviders,cacheL1Enabled:!!d.cacheL1&&a?.cacheL1Enabled!==!1,cacheL2Enabled:!!d.cacheL2&&a?.cacheL2Enabled===!0&&e,cacheL3Enabled:!!d.cacheL3&&a?.cacheL3Enabled===!0,headroomEnabled:!!d.headroom&&a?.headroomEnabled===!0,pxpipeEnabled:!!d.pxpipe&&a?.pxpipeEnabled===!0,bodyLoggingEnabled:!!d.bodyLogging,aiMemoryEnabled:!!d.aiMemory&&a?.aiMemoryEnabled!==!1}}let j=/^(localhost|127\.\d{1,3}\.\d{1,3}\.\d{1,3}|0\.0\.0\.0|\[::1\]|::1|.*\.local|.*\.internal)$/i,k=/^(10\.\d{1,3}\.\d{1,3}\.\d{1,3}|172\.(1[6-9]|2\d|3[01])\.\d{1,3}\.\d{1,3}|192\.168\.\d{1,3}\.\d{1,3})$/i;function l(a){let b,c=a?.baseUrl||a?.providerSpecificData?.baseUrl;if(!c)return!1;try{b=new URL(c).hostname}catch{return!1}return!!b&&(j.test(b)||k.test(b))}let m=/^(ollama|llama\.cpp|vllm|whisper|koka|local|localhost|127\.\d|10\.\d|172\.(1[6-9]|2\d|3[01])\.|192\.168\.)/i;function n({provider:a,credentials:b,settings:c}){let e=c?.privacyMode||"normal";return"strict"!==e&&"local-only"!==e?null:h(a,g(c))?{block:!0,status:d.gx.FORBIDDEN,message:`Provider "${a}" is blocked by privacy settings (${e})`}:"local-only"===e&&b&&!l(b)?{skip:!0,bail:!b.connectionId,status:d.gx.SERVICE_UNAVAILABLE,message:`local-only: provider "${a}" has no local connection`}:null}}};
@@ -1,4 +1,4 @@
1
- "use strict";exports.id=2638,exports.ids=[2638],exports.modules={36811:a=>{a.exports={TOOL_HOSTS:{antigravity:["daily-cloudcode-pa.googleapis.com","cloudcode-pa.googleapis.com"],copilot:["api.individual.githubcopilot.com"],kiro:["runtime.us-east-1.kiro.dev","q.us-east-1.amazonaws.com","codewhisperer.us-east-1.amazonaws.com"],cursor:["api2.cursor.sh","agent.api5.cursor.sh","agentn.api5.cursor.sh","agent.us.api5.cursor.sh","agentn.us.api5.cursor.sh","agent.global.api5.cursor.sh","agentn.global.api5.cursor.sh"],"grok-cli":["cli-chat-proxy.grok.com"],iflow:["apis.iflow.cn"]}}},62911:(a,b,c)=>{c.d(b,{dM:()=>e,wn:()=>d});let d={antigravity:{id:"antigravity",name:"Antigravity",image:"/providers/antigravity.png",color:"#4285F4",description:"Google Antigravity IDE with MITM",configType:"mitm",mitmDomain:"daily-cloudcode-pa.googleapis.com",modelAliases:["gemini-3.8-flash-high","gemini-3.8-flash-medium","gemini-3.8-flash-low","gemini-3.7-flash-high","gemini-3.7-flash-medium","gemini-3.7-flash-low","gemini-3.6-flash-high","gemini-3.6-flash-medium","gemini-3.6-flash-low","gemini-3.5-flash-low","gemini-3-flash-agent","gemini-3.5-flash-extra-low","gemini-3.1-pro-low","gemini-pro-agent","claude-sonnet-5-5","claude-opus-5-5","claude-sonnet-4-6","claude-opus-4-6-thinking","gpt-oss-120b-medium","gemini-3-flash"],defaultModels:[{id:"gemini-3.8-flash-high",name:"Gemini 3.8 Flash (High)",alias:"gemini-3.8-flash-high"},{id:"gemini-3.8-flash-medium",name:"Gemini 3.8 Flash (Medium) / Default",alias:"gemini-3.8-flash-medium",mandatory:!0},{id:"gemini-3.8-flash-low",name:"Gemini 3.8 Flash (Low)",alias:"gemini-3.8-flash-low"},{id:"gemini-3.7-flash-high",name:"Gemini 3.7 Flash (High)",alias:"gemini-3.7-flash-high"},{id:"gemini-3.7-flash-medium",name:"Gemini 3.7 Flash (Medium)",alias:"gemini-3.7-flash-medium"},{id:"gemini-3.7-flash-low",name:"Gemini 3.7 Flash (Low)",alias:"gemini-3.7-flash-low"},{id:"gemini-3.6-flash-high",name:"Gemini 3.6 Flash (High)",alias:"gemini-3.6-flash-high"},{id:"gemini-3.6-flash-medium",name:"Gemini 3.6 Flash (Medium)",alias:"gemini-3.6-flash-medium"},{id:"gemini-3.6-flash-low",name:"Gemini 3.6 Flash (Low)",alias:"gemini-3.6-flash-low"},{id:"gemini-3.5-flash-low",name:"Gemini 3.5 Flash (Medium)",alias:"gemini-3.5-flash-low",mandatory:!0},{id:"gemini-3-flash-agent",name:"Gemini 3.5 Flash (High)",alias:"gemini-3-flash-agent"},{id:"gemini-3.5-flash-extra-low",name:"Gemini 3.5 Flash (Low)",alias:"gemini-3.5-flash-extra-low"},{id:"gemini-3.1-pro-low",name:"Gemini 3.1 Pro (Low)",alias:"gemini-3.1-pro-low"},{id:"gemini-pro-agent",name:"Gemini 3.1 Pro (High)",alias:"gemini-pro-agent"},{id:"claude-sonnet-5-5",name:"Claude Sonnet 5.5 (Thinking)",alias:"claude-sonnet-5-5"},{id:"claude-opus-5-5",name:"Claude Opus 5.5 (Thinking)",alias:"claude-opus-5-5"},{id:"claude-sonnet-4-6",name:"Claude Sonnet 4.6 (Thinking)",alias:"claude-sonnet-4-6"},{id:"claude-opus-4-6-thinking",name:"Claude Opus 4.6 (Thinking)",alias:"claude-opus-4-6-thinking"},{id:"gpt-oss-120b-medium",name:"GPT-OSS 120B (Medium)",alias:"gpt-oss-120b-medium"},{id:"gemini-3-flash",name:"Gemini 3 Flash (Command)",alias:"gemini-3-flash"}]},copilot:{id:"copilot",name:"GitHub Copilot",image:"/providers/copilot.png",color:"#1F6FEB",description:"GitHub Copilot IDE with MITM",configType:"mitm",mitmDomain:"api.individual.githubcopilot.com",modelAliases:["gpt-5-mini","gpt-5.4-nano","claude-haiku-4.5","gpt-4o","gpt-4.1","gpt-5.2","gpt-5.2-codex","gpt-5.3-codex","gpt-5.4","gpt-5.4-mini","claude-opus-4.5","claude-sonnet-4.5","claude-sonnet-4.6","claude-opus-4.6","claude-opus-4.7","gemini-2.5-pro","gemini-3-flash-preview","gemini-3.1-pro-preview","grok-code-fast-1"],defaultModels:[{id:"gpt-5-mini",name:"GPT-5 mini",alias:"gpt-5-mini"},{id:"gpt-5.4-nano",name:"GPT-5.4 nano",alias:"gpt-5.4-nano"},{id:"claude-haiku-4.5",name:"Claude Haiku 4.5",alias:"claude-haiku-4.5"},{id:"gpt-4o",name:"GPT-4o",alias:"gpt-4o"},{id:"gpt-4.1",name:"GPT-4.1",alias:"gpt-4.1"},{id:"gpt-5.2",name:"GPT-5.2",alias:"gpt-5.2"},{id:"gpt-5.2-codex",name:"GPT-5.2 Codex",alias:"gpt-5.2-codex"},{id:"gpt-5.3-codex",name:"GPT-5.3 Codex",alias:"gpt-5.3-codex"},{id:"gpt-5.4",name:"GPT-5.4",alias:"gpt-5.4"},{id:"gpt-5.4-mini",name:"GPT-5.4 Mini",alias:"gpt-5.4-mini"},{id:"claude-opus-4.5",name:"Claude Opus 4.5",alias:"claude-opus-4.5"},{id:"claude-sonnet-4.5",name:"Claude Sonnet 4.5",alias:"claude-sonnet-4.5"},{id:"claude-sonnet-4.6",name:"Claude Sonnet 4.6",alias:"claude-sonnet-4.6"},{id:"claude-opus-4.6",name:"Claude Opus 4.6",alias:"claude-opus-4.6"},{id:"claude-opus-4.7",name:"Claude Opus 4.7",alias:"claude-opus-4.7"},{id:"gemini-2.5-pro",name:"Gemini 2.5 Pro",alias:"gemini-2.5-pro"},{id:"gemini-3-flash-preview",name:"Gemini 3 Flash",alias:"gemini-3-flash-preview"},{id:"gemini-3.1-pro-preview",name:"Gemini 3.1 Pro",alias:"gemini-3.1-pro-preview"},{id:"grok-code-fast-1",name:"Grok Code Fast 1",alias:"grok-code-fast-1"}]},kiro:{id:"kiro",name:"Kiro",image:"/providers/kiro.png",color:"#FF6B00",description:"Kiro IDE with MITM",configType:"mitm",mitmDomain:"q.us-east-1.amazonaws.com",defaultModels:[{id:"claude-opus-5.5",name:"Claude Opus 5.5",alias:"claude-opus-5.5"},{id:"claude-fable-5.1",name:"Claude Fable 5.1",alias:"claude-fable-5.1"},{id:"claude-opus-5",name:"Claude Opus 5",alias:"claude-opus-5"},{id:"claude-opus-4.8",name:"Claude Opus 4.8",alias:"claude-opus-4.8"},{id:"claude-opus-4.7",name:"Claude Opus 4.7",alias:"claude-opus-4.7"},{id:"claude-opus-4.5",name:"Claude Opus 4.5",alias:"claude-opus-4.5"},{id:"claude-sonnet-5",name:"Claude Sonnet 5",alias:"claude-sonnet-5"},{id:"claude-sonnet-4.5",name:"Claude Sonnet 4.5",alias:"claude-sonnet-4.5"},{id:"claude-sonnet-4",name:"Claude Sonnet 4",alias:"claude-sonnet-4"},{id:"claude-haiku-4.5",name:"Claude Haiku 4.5",alias:"claude-haiku-4.5"},{id:"deepseek-3.2",name:"DeepSeek 3.2",alias:"deepseek-3.2"},{id:"glm-5",name:"GLM 5",alias:"glm-5"},{id:"qwen3-coder-next",name:"Qwen3 Coder Next",alias:"qwen3-coder-next"},{id:"minimax-m2.1",name:"MiniMax M2.1",alias:"minimax-m2.1"},{id:"MiniMax-M2.5",name:"MiniMax M2.5",alias:"MiniMax-M2.5"},{id:"gpt-6-astra",name:"GPT 6 Astra",alias:"gpt-6-astra",contextLength:872e3,rateMultiplier:3},{id:"gpt-5.6-sol",name:"GPT 5.6 Sol",alias:"gpt-5.6-sol",contextLength:272e3,rateMultiplier:2.4},{id:"gpt-5.6-terra",name:"GPT 5.6 Terra",alias:"gpt-5.6-terra",contextLength:272e3,rateMultiplier:1.2},{id:"gpt-5.6-luna",name:"GPT 5.6 Luna",alias:"gpt-5.6-luna",contextLength:272e3,rateMultiplier:.6},{id:"simple-task",name:"Qwen3 Coder Next",alias:"simple-task"}]},cursor:{id:"cursor",name:"Cursor",image:"/providers/cursor.png",color:"#000000",description:"Cursor IDE with MITM",configType:"mitm",mitmDomain:"api2.cursor.sh",modelAliases:["composer-2.5-fast","default"],routingAvailable:!0,defaultModels:[{id:"composer-2.5-fast",name:"Composer 2.5 Fast (Free)",alias:"composer-2.5-fast"},{id:"composer-2.5",name:"Composer 2.5",alias:"composer-2.5"},{id:"composer-2-fast",name:"Composer 2 Fast",alias:"composer-2-fast"},{id:"composer-2",name:"Composer 2",alias:"composer-2"},{id:"auto",name:"Auto (Server Picks)",alias:"auto"},{id:"default",name:"Auto / Default",alias:"default"}]},"grok-cli":{id:"grok-cli",name:"Grok CLI",image:"/providers/grok-cli.png",color:"#1DA1F2",description:"xAI Grok CLI / Grok Build with MITM",configType:"mitm",mitmDomain:"cli-chat-proxy.grok.com",routingAvailable:!0,defaultModels:[{id:"grok-build",name:"Grok Build (Default)",alias:"grok-build",mandatory:!0},{id:"grok-4.7",name:"Grok 4.7",alias:"grok-4.7"},{id:"grok-4.6",name:"Grok 4.6",alias:"grok-4.6"},{id:"grok-4.5",name:"Grok 4.5",alias:"grok-4.5"},{id:"grok-4.3",name:"Grok 4.3",alias:"grok-4.3"},{id:"grok-composer-2.5-fast",name:"Composer 2.5",alias:"grok-composer-2.5-fast"}]},iflow:{id:"iflow",name:"iFlow CLI",image:"/providers/iflow.png",color:"#6366F1",description:"iFlow CLI with MITM",configType:"mitm",mitmDomain:"apis.iflow.cn",routingAvailable:!0,defaultModels:[{id:"qwen3-coder-plus",name:"Qwen3 Coder Plus",alias:"qwen3-coder-plus",mandatory:!0},{id:"qwen3-max",name:"Qwen3 Max",alias:"qwen3-max"},{id:"kimi-k2",name:"Kimi K2",alias:"kimi-k2"},{id:"deepseek-v3.2",name:"DeepSeek V3.2",alias:"deepseek-v3.2"},{id:"glm-4.7",name:"GLM 4.7",alias:"glm-4.7"}]}},e={claude:{id:"claude",name:"Claude Code",image:"/providers/claude.png",color:"#D97757",description:"Anthropic Claude Code CLI",configType:"env",envVars:{baseUrl:"ANTHROPIC_BASE_URL",model:"ANTHROPIC_MODEL",opusModel:"ANTHROPIC_DEFAULT_OPUS_MODEL",sonnetModel:"ANTHROPIC_DEFAULT_SONNET_MODEL",fableModel:"ANTHROPIC_DEFAULT_FABLE_MODEL",haikuModel:"ANTHROPIC_DEFAULT_HAIKU_MODEL"},modelAliases:["default","sonnet","opus","fable","haiku","opusplan"],settingsFile:"~/.claude/settings.json",defaultModels:[{id:"fable",name:"Claude Fable",alias:"fable",envKey:"ANTHROPIC_DEFAULT_FABLE_MODEL",defaultValue:"cc/claude-fable-5"},{id:"opus",name:"Claude Opus",alias:"opus",envKey:"ANTHROPIC_DEFAULT_OPUS_MODEL",defaultValue:"cc/claude-opus-5"},{id:"sonnet",name:"Claude Sonnet",alias:"sonnet",envKey:"ANTHROPIC_DEFAULT_SONNET_MODEL",defaultValue:"cc/claude-sonnet-5"},{id:"haiku",name:"Claude Haiku",alias:"haiku",envKey:"ANTHROPIC_DEFAULT_HAIKU_MODEL",defaultValue:"cc/claude-haiku-4-5-20251001"}]},openclaw:{id:"openclaw",name:"Open Claw",image:"/providers/openclaw.png",color:"#FF6B35",description:"Open Claw AI Assistant",configType:"custom"},codex:{id:"codex",name:"OpenAI Codex CLI / App",image:"/providers/codex.png",color:"#10A37F",description:"OpenAI Codex CLI",configType:"custom"},opencode:{id:"opencode",name:"OpenCode",image:"/providers/opencode.png",color:"#E87040",description:"OpenCode AI Terminal Assistant",configType:"custom"},cowork:{id:"cowork",name:"Claude Desktop",image:"/providers/claude.png",color:"#D97757",description:"Claude Desktop — third-party inference & MCP tools via MiawRouter",configType:"custom"},hermes:{id:"hermes",name:"Hermes Agent & Desktop",image:"/providers/hermes.png",color:"#8B5CF6",description:"Nous Research self-improving AI agent & native desktop app",configType:"custom"},droid:{id:"droid",name:"Factory Droid",image:"/providers/droid.png",color:"#00D4FF",description:"Factory Droid AI Assistant",configType:"custom"},cursor:{id:"cursor",name:"Cursor",image:"/providers/cursor.png",color:"#000000",description:"Cursor AI Code Editor",configType:"guide",requiresExternalUrl:!0,notes:[{type:"info",text:'Free plans currently use Composer 2.5 Fast. Auto uses wire model "default" when Cursor makes it available for the account. MiawRouter maps either slot without changing Cursor entitlements.'},{type:"cloudCheck",text:"Cursor routes requests through its own server, so local endpoint is not supported. Please enable Tunnel or Cloud Endpoint in Settings."}],guideSteps:[{step:1,title:"Open Settings",desc:"Go to Settings → Models"},{step:2,title:"Enable OpenAI API",desc:'Enable "OpenAI API key" option'},{step:3,title:"Base URL",value:"{{baseUrl}}",copyable:!0},{step:4,title:"API Key",type:"apiKeySelector"},{step:5,title:"Add Custom Model",desc:'Click "View All Model" → "Add Custom Model"'},{step:6,title:"Select Model",type:"modelSelector"}]},cline:{id:"cline",name:"Cline",image:"/providers/cline.png",color:"#00D1B2",description:"Cline AI Coding Assistant",configType:"custom"},kilo:{id:"kilo",name:"Kilo Code",image:"/providers/kilocode.png",color:"#FF6B6B",description:"Kilo Code AI Assistant",configType:"custom"},roo:{id:"roo",name:"Roo",image:"/providers/roo.png",color:"#FF6B6B",description:"Roo AI Assistant",configType:"guide",guideSteps:[{step:1,title:"Open Settings",desc:"Go to Roo Settings panel"},{step:2,title:"Select Provider",desc:"Choose API Provider → Ollama"},{step:3,title:"Base URL",value:"{{baseUrl}}",copyable:!0},{step:4,title:"API Key",type:"apiKeySelector"},{step:5,title:"Select Model",type:"modelSelector"}]},continue:{id:"continue",name:"Continue",image:"/providers/continue.png",color:"#7C3AED",description:"Continue AI Assistant",configType:"guide",guideSteps:[{step:1,title:"Open Config",desc:"Open Continue configuration file"},{step:2,title:"API Key",type:"apiKeySelector"},{step:3,title:"Select Model",type:"modelSelector"},{step:4,title:"Add Model Config",desc:"Add the following configuration to your models array:"}],codeBlock:{language:"json",code:`{
1
+ "use strict";exports.id=2638,exports.ids=[2638],exports.modules={36811:a=>{a.exports={TOOL_HOSTS:{antigravity:["daily-cloudcode-pa.googleapis.com","cloudcode-pa.googleapis.com"],copilot:["api.individual.githubcopilot.com"],kiro:["runtime.us-east-1.kiro.dev","q.us-east-1.amazonaws.com","codewhisperer.us-east-1.amazonaws.com"],cursor:["api2.cursor.sh","agent.api5.cursor.sh","agentn.api5.cursor.sh","agent.us.api5.cursor.sh","agentn.us.api5.cursor.sh","agent.global.api5.cursor.sh","agentn.global.api5.cursor.sh"],"grok-cli":["cli-chat-proxy.grok.com"],iflow:["apis.iflow.cn"]}}},62911:(a,b,c)=>{c.d(b,{dM:()=>e,wn:()=>d});let d={antigravity:{id:"antigravity",name:"Antigravity",image:"/providers/antigravity.png",color:"#4285F4",description:"Google Antigravity IDE with MITM",configType:"mitm",mitmDomain:"daily-cloudcode-pa.googleapis.com",modelAliases:["gemini-4-argon-high","gemini-4-argon-medium","gemini-4-argon-low","gemini-3.8-flash-high","gemini-3.8-flash-medium","gemini-3.8-flash-low","gemini-3.7-flash-high","gemini-3.7-flash-medium","gemini-3.7-flash-low","gemini-3.6-flash-high","gemini-3.6-flash-medium","gemini-3.6-flash-low","gemini-3.5-flash-low","gemini-3-flash-agent","gemini-3.5-flash-extra-low","gemini-3.1-pro-low","gemini-pro-agent","claude-sonnet-5-5","claude-opus-5-5","claude-sonnet-4-6","claude-opus-4-6-thinking","gpt-oss-120b-medium","gemini-3-flash"],defaultModels:[{id:"gemini-4-argon-high",name:"Gemini 4 Argon (High)",alias:"gemini-4-argon-high"},{id:"gemini-4-argon-medium",name:"Gemini 4 Argon (Medium)",alias:"gemini-4-argon-medium"},{id:"gemini-4-argon-low",name:"Gemini 4 Argon (Low)",alias:"gemini-4-argon-low"},{id:"gemini-3.8-flash-high",name:"Gemini 3.8 Flash (High)",alias:"gemini-3.8-flash-high"},{id:"gemini-3.8-flash-medium",name:"Gemini 3.8 Flash (Medium) / Default",alias:"gemini-3.8-flash-medium",mandatory:!0},{id:"gemini-3.8-flash-low",name:"Gemini 3.8 Flash (Low)",alias:"gemini-3.8-flash-low"},{id:"gemini-3.7-flash-high",name:"Gemini 3.7 Flash (High)",alias:"gemini-3.7-flash-high"},{id:"gemini-3.7-flash-medium",name:"Gemini 3.7 Flash (Medium)",alias:"gemini-3.7-flash-medium"},{id:"gemini-3.7-flash-low",name:"Gemini 3.7 Flash (Low)",alias:"gemini-3.7-flash-low"},{id:"gemini-3.6-flash-high",name:"Gemini 3.6 Flash (High)",alias:"gemini-3.6-flash-high"},{id:"gemini-3.6-flash-medium",name:"Gemini 3.6 Flash (Medium)",alias:"gemini-3.6-flash-medium"},{id:"gemini-3.6-flash-low",name:"Gemini 3.6 Flash (Low)",alias:"gemini-3.6-flash-low"},{id:"gemini-3.5-flash-low",name:"Gemini 3.5 Flash (Medium)",alias:"gemini-3.5-flash-low",mandatory:!0},{id:"gemini-3-flash-agent",name:"Gemini 3.5 Flash (High)",alias:"gemini-3-flash-agent"},{id:"gemini-3.5-flash-extra-low",name:"Gemini 3.5 Flash (Low)",alias:"gemini-3.5-flash-extra-low"},{id:"gemini-3.1-pro-low",name:"Gemini 3.1 Pro (Low)",alias:"gemini-3.1-pro-low"},{id:"gemini-pro-agent",name:"Gemini 3.1 Pro (High)",alias:"gemini-pro-agent"},{id:"claude-sonnet-5-5",name:"Claude Sonnet 5.5 (Thinking)",alias:"claude-sonnet-5-5"},{id:"claude-opus-5-5",name:"Claude Opus 5.5 (Thinking)",alias:"claude-opus-5-5"},{id:"claude-sonnet-4-6",name:"Claude Sonnet 4.6 (Thinking)",alias:"claude-sonnet-4-6"},{id:"claude-opus-4-6-thinking",name:"Claude Opus 4.6 (Thinking)",alias:"claude-opus-4-6-thinking"},{id:"gpt-oss-120b-medium",name:"GPT-OSS 120B (Medium)",alias:"gpt-oss-120b-medium"},{id:"gemini-3-flash",name:"Gemini 3 Flash (Command)",alias:"gemini-3-flash"}]},copilot:{id:"copilot",name:"GitHub Copilot",image:"/providers/copilot.png",color:"#1F6FEB",description:"GitHub Copilot IDE with MITM",configType:"mitm",mitmDomain:"api.individual.githubcopilot.com",modelAliases:["gpt-5-mini","gpt-5.4-nano","claude-haiku-4.5","gpt-4o","gpt-4.1","gpt-5.2","gpt-5.2-codex","gpt-5.3-codex","gpt-5.4","gpt-5.4-mini","claude-opus-4.5","claude-sonnet-4.5","claude-sonnet-4.6","claude-opus-4.6","claude-opus-4.7","gemini-2.5-pro","gemini-3-flash-preview","gemini-3.1-pro-preview","grok-code-fast-1"],defaultModels:[{id:"gpt-5-mini",name:"GPT-5 mini",alias:"gpt-5-mini"},{id:"gpt-5.4-nano",name:"GPT-5.4 nano",alias:"gpt-5.4-nano"},{id:"claude-haiku-4.5",name:"Claude Haiku 4.5",alias:"claude-haiku-4.5"},{id:"gpt-4o",name:"GPT-4o",alias:"gpt-4o"},{id:"gpt-4.1",name:"GPT-4.1",alias:"gpt-4.1"},{id:"gpt-5.2",name:"GPT-5.2",alias:"gpt-5.2"},{id:"gpt-5.2-codex",name:"GPT-5.2 Codex",alias:"gpt-5.2-codex"},{id:"gpt-5.3-codex",name:"GPT-5.3 Codex",alias:"gpt-5.3-codex"},{id:"gpt-5.4",name:"GPT-5.4",alias:"gpt-5.4"},{id:"gpt-5.4-mini",name:"GPT-5.4 Mini",alias:"gpt-5.4-mini"},{id:"claude-opus-4.5",name:"Claude Opus 4.5",alias:"claude-opus-4.5"},{id:"claude-sonnet-4.5",name:"Claude Sonnet 4.5",alias:"claude-sonnet-4.5"},{id:"claude-sonnet-4.6",name:"Claude Sonnet 4.6",alias:"claude-sonnet-4.6"},{id:"claude-opus-4.6",name:"Claude Opus 4.6",alias:"claude-opus-4.6"},{id:"claude-opus-4.7",name:"Claude Opus 4.7",alias:"claude-opus-4.7"},{id:"gemini-2.5-pro",name:"Gemini 2.5 Pro",alias:"gemini-2.5-pro"},{id:"gemini-3-flash-preview",name:"Gemini 3 Flash",alias:"gemini-3-flash-preview"},{id:"gemini-3.1-pro-preview",name:"Gemini 3.1 Pro",alias:"gemini-3.1-pro-preview"},{id:"grok-code-fast-1",name:"Grok Code Fast 1",alias:"grok-code-fast-1"}]},kiro:{id:"kiro",name:"Kiro",image:"/providers/kiro.png",color:"#FF6B00",description:"Kiro IDE with MITM",configType:"mitm",mitmDomain:"q.us-east-1.amazonaws.com",defaultModels:[{id:"claude-opus-5.5",name:"Claude Opus 5.5",alias:"claude-opus-5.5"},{id:"claude-fable-5.1",name:"Claude Fable 5.1",alias:"claude-fable-5.1"},{id:"claude-opus-5",name:"Claude Opus 5",alias:"claude-opus-5"},{id:"claude-opus-4.8",name:"Claude Opus 4.8",alias:"claude-opus-4.8"},{id:"claude-opus-4.7",name:"Claude Opus 4.7",alias:"claude-opus-4.7"},{id:"claude-opus-4.5",name:"Claude Opus 4.5",alias:"claude-opus-4.5"},{id:"claude-sonnet-5",name:"Claude Sonnet 5",alias:"claude-sonnet-5"},{id:"claude-sonnet-4.5",name:"Claude Sonnet 4.5",alias:"claude-sonnet-4.5"},{id:"claude-sonnet-4",name:"Claude Sonnet 4",alias:"claude-sonnet-4"},{id:"claude-haiku-4.5",name:"Claude Haiku 4.5",alias:"claude-haiku-4.5"},{id:"deepseek-3.2",name:"DeepSeek 3.2",alias:"deepseek-3.2"},{id:"glm-5",name:"GLM 5",alias:"glm-5"},{id:"qwen3-coder-next",name:"Qwen3 Coder Next",alias:"qwen3-coder-next"},{id:"minimax-m2.1",name:"MiniMax M2.1",alias:"minimax-m2.1"},{id:"MiniMax-M2.5",name:"MiniMax M2.5",alias:"MiniMax-M2.5"},{id:"gpt-6-astra",name:"GPT 6 Astra",alias:"gpt-6-astra",contextLength:872e3,rateMultiplier:3},{id:"gpt-5.6-sol",name:"GPT 5.6 Sol",alias:"gpt-5.6-sol",contextLength:272e3,rateMultiplier:2.4},{id:"gpt-5.6-terra",name:"GPT 5.6 Terra",alias:"gpt-5.6-terra",contextLength:272e3,rateMultiplier:1.2},{id:"gpt-5.6-luna",name:"GPT 5.6 Luna",alias:"gpt-5.6-luna",contextLength:272e3,rateMultiplier:.6},{id:"simple-task",name:"Qwen3 Coder Next",alias:"simple-task"}]},cursor:{id:"cursor",name:"Cursor",image:"/providers/cursor.png",color:"#000000",description:"Cursor IDE with MITM",configType:"mitm",mitmDomain:"api2.cursor.sh",modelAliases:["composer-2.5-fast","default"],routingAvailable:!0,defaultModels:[{id:"composer-2.5-fast",name:"Composer 2.5 Fast (Free)",alias:"composer-2.5-fast"},{id:"composer-2.5",name:"Composer 2.5",alias:"composer-2.5"},{id:"composer-2-fast",name:"Composer 2 Fast",alias:"composer-2-fast"},{id:"composer-2",name:"Composer 2",alias:"composer-2"},{id:"auto",name:"Auto (Server Picks)",alias:"auto"},{id:"default",name:"Auto / Default",alias:"default"}]},"grok-cli":{id:"grok-cli",name:"Grok CLI",image:"/providers/grok-cli.png",color:"#1DA1F2",description:"xAI Grok CLI / Grok Build with MITM",configType:"mitm",mitmDomain:"cli-chat-proxy.grok.com",routingAvailable:!0,defaultModels:[{id:"grok-build",name:"Grok Build (Default)",alias:"grok-build",mandatory:!0},{id:"grok-4.7",name:"Grok 4.7",alias:"grok-4.7"},{id:"grok-4.6",name:"Grok 4.6",alias:"grok-4.6"},{id:"grok-4.5",name:"Grok 4.5",alias:"grok-4.5"},{id:"grok-4.3",name:"Grok 4.3",alias:"grok-4.3"},{id:"grok-composer-2.5-fast",name:"Composer 2.5",alias:"grok-composer-2.5-fast"}]},iflow:{id:"iflow",name:"iFlow CLI",image:"/providers/iflow.png",color:"#6366F1",description:"iFlow CLI with MITM",configType:"mitm",mitmDomain:"apis.iflow.cn",routingAvailable:!0,defaultModels:[{id:"qwen3-coder-plus",name:"Qwen3 Coder Plus",alias:"qwen3-coder-plus",mandatory:!0},{id:"qwen3-max",name:"Qwen3 Max",alias:"qwen3-max"},{id:"kimi-k2",name:"Kimi K2",alias:"kimi-k2"},{id:"deepseek-v3.2",name:"DeepSeek V3.2",alias:"deepseek-v3.2"},{id:"glm-4.7",name:"GLM 4.7",alias:"glm-4.7"}]}},e={claude:{id:"claude",name:"Claude Code",image:"/providers/claude.png",color:"#D97757",description:"Anthropic Claude Code CLI",configType:"env",envVars:{baseUrl:"ANTHROPIC_BASE_URL",model:"ANTHROPIC_MODEL",opusModel:"ANTHROPIC_DEFAULT_OPUS_MODEL",sonnetModel:"ANTHROPIC_DEFAULT_SONNET_MODEL",fableModel:"ANTHROPIC_DEFAULT_FABLE_MODEL",haikuModel:"ANTHROPIC_DEFAULT_HAIKU_MODEL"},modelAliases:["default","sonnet","opus","fable","haiku","opusplan"],settingsFile:"~/.claude/settings.json",defaultModels:[{id:"fable",name:"Claude Fable",alias:"fable",envKey:"ANTHROPIC_DEFAULT_FABLE_MODEL",defaultValue:"cc/claude-fable-5"},{id:"opus",name:"Claude Opus",alias:"opus",envKey:"ANTHROPIC_DEFAULT_OPUS_MODEL",defaultValue:"cc/claude-opus-5"},{id:"sonnet",name:"Claude Sonnet",alias:"sonnet",envKey:"ANTHROPIC_DEFAULT_SONNET_MODEL",defaultValue:"cc/claude-sonnet-5"},{id:"haiku",name:"Claude Haiku",alias:"haiku",envKey:"ANTHROPIC_DEFAULT_HAIKU_MODEL",defaultValue:"cc/claude-haiku-4-5-20251001"}]},openclaw:{id:"openclaw",name:"Open Claw",image:"/providers/openclaw.png",color:"#FF6B35",description:"Open Claw AI Assistant",configType:"custom"},codex:{id:"codex",name:"OpenAI Codex CLI / App",image:"/providers/codex.png",color:"#10A37F",description:"OpenAI Codex CLI",configType:"custom"},opencode:{id:"opencode",name:"OpenCode",image:"/providers/opencode.png",color:"#E87040",description:"OpenCode AI Terminal Assistant",configType:"custom"},cowork:{id:"cowork",name:"Claude Desktop",image:"/providers/claude.png",color:"#D97757",description:"Claude Desktop — third-party inference & MCP tools via MiawRouter",configType:"custom"},hermes:{id:"hermes",name:"Hermes Agent & Desktop",image:"/providers/hermes.png",color:"#8B5CF6",description:"Nous Research self-improving AI agent & native desktop app",configType:"custom"},droid:{id:"droid",name:"Factory Droid",image:"/providers/droid.png",color:"#00D4FF",description:"Factory Droid AI Assistant",configType:"custom"},cursor:{id:"cursor",name:"Cursor",image:"/providers/cursor.png",color:"#000000",description:"Cursor AI Code Editor",configType:"guide",requiresExternalUrl:!0,notes:[{type:"info",text:'Free plans currently use Composer 2.5 Fast. Auto uses wire model "default" when Cursor makes it available for the account. MiawRouter maps either slot without changing Cursor entitlements.'},{type:"cloudCheck",text:"Cursor routes requests through its own server, so local endpoint is not supported. Please enable Tunnel or Cloud Endpoint in Settings."}],guideSteps:[{step:1,title:"Open Settings",desc:"Go to Settings → Models"},{step:2,title:"Enable OpenAI API",desc:'Enable "OpenAI API key" option'},{step:3,title:"Base URL",value:"{{baseUrl}}",copyable:!0},{step:4,title:"API Key",type:"apiKeySelector"},{step:5,title:"Add Custom Model",desc:'Click "View All Model" → "Add Custom Model"'},{step:6,title:"Select Model",type:"modelSelector"}]},cline:{id:"cline",name:"Cline",image:"/providers/cline.png",color:"#00D1B2",description:"Cline AI Coding Assistant",configType:"custom"},kilo:{id:"kilo",name:"Kilo Code",image:"/providers/kilocode.png",color:"#FF6B6B",description:"Kilo Code AI Assistant",configType:"custom"},roo:{id:"roo",name:"Roo",image:"/providers/roo.png",color:"#FF6B6B",description:"Roo AI Assistant",configType:"guide",guideSteps:[{step:1,title:"Open Settings",desc:"Go to Roo Settings panel"},{step:2,title:"Select Provider",desc:"Choose API Provider → Ollama"},{step:3,title:"Base URL",value:"{{baseUrl}}",copyable:!0},{step:4,title:"API Key",type:"apiKeySelector"},{step:5,title:"Select Model",type:"modelSelector"}]},continue:{id:"continue",name:"Continue",image:"/providers/continue.png",color:"#7C3AED",description:"Continue AI Assistant",configType:"guide",guideSteps:[{step:1,title:"Open Config",desc:"Open Continue configuration file"},{step:2,title:"API Key",type:"apiKeySelector"},{step:3,title:"Select Model",type:"modelSelector"},{step:4,title:"Add Model Config",desc:"Add the following configuration to your models array:"}],codeBlock:{language:"json",code:`{
2
2
  "apiBase": "{{baseUrl}}",
3
3
  "title": "{{model}}",
4
4
  "model": "{{model}}",
@@ -1 +1 @@
1
- exports.id=2813,exports.ids=[2813],exports.modules={3662:(a,b,c)=>{"use strict";c.d(b,{EQ:()=>f,LY:()=>d,O:()=>e,fh:()=>h,t2:()=>i,wf:()=>g});let d={400:{type:"invalid_request_error",code:"bad_request"},401:{type:"authentication_error",code:"invalid_api_key"},402:{type:"billing_error",code:"payment_required"},403:{type:"permission_error",code:"insufficient_quota"},404:{type:"invalid_request_error",code:"model_not_found"},406:{type:"invalid_request_error",code:"model_not_supported"},429:{type:"rate_limit_error",code:"rate_limit_exceeded"},500:{type:"server_error",code:"internal_server_error"},502:{type:"server_error",code:"bad_gateway"},503:{type:"server_error",code:"service_unavailable"},504:{type:"server_error",code:"gateway_timeout"}},e={400:"Bad request",401:"Invalid API key provided",402:"Payment required",403:"You exceeded your current quota",404:"Model not found",406:"Model not supported",429:"Rate limit exceeded",500:"Internal server error",502:"Bad gateway - upstream provider error",503:"Service temporarily unavailable",504:"Gateway timeout"},f={base:2e3,max:3e5,maxLevel:15},g=3e4,h=18e5,i=[{text:"invalid api key",cooldownMs:12e4},{text:"invalid_key",cooldownMs:12e4},{text:"no credentials",cooldownMs:12e4},{text:"unauthorized",cooldownMs:12e4},{text:"authentication",cooldownMs:12e4},{text:"permanently banned",cooldownMs:18e5},{text:"account disabled",cooldownMs:18e5},{text:"account suspended",cooldownMs:18e5},{text:"suspended",cooldownMs:18e5},{text:"content policy",cooldownMs:12e4},{text:"content_filter",cooldownMs:12e4},{text:"safety",cooldownMs:12e4},{text:"context_length_exceeded",cooldownMs:3e4},{text:"context length",cooldownMs:3e4},{text:"maximum context",cooldownMs:3e4},{text:"token limit",cooldownMs:3e4},{text:"too many tokens",cooldownMs:3e4},{text:"model not supported",cooldownMs:0},{text:"model_not_supported",cooldownMs:0},{text:"modelerror",cooldownMs:0},{text:"is not supported",cooldownMs:0},{text:"model not found",cooldownMs:0},{text:"model_not_found",cooldownMs:0},{text:"regionerror",cooldownMs:0},{text:"region not supported",cooldownMs:0},{text:"cross-border",cooldownMs:0},{text:"geographic restriction",cooldownMs:0},{text:"missingsessionid",cooldownMs:0},{text:"x-opencode-session",cooldownMs:0},{text:"request not allowed",cooldownMs:5e3},{text:"improperly formed request",cooldownMs:12e4},{text:"rate limit",backoff:!0},{text:"too many requests",backoff:!0},{text:"quota exceeded",backoff:!0},{text:"capacity",backoff:!0},{text:"overloaded",backoff:!0},{status:401,cooldownMs:12e4},{status:402,cooldownMs:12e4},{status:403,cooldownMs:12e4},{status:404,cooldownMs:12e4},{status:406,cooldownMs:12e4},{status:429,backoff:!0},{status:500,cooldownMs:3e4},{status:502,cooldownMs:3e4},{status:503,cooldownMs:3e4},{status:504,cooldownMs:3e4}]},19713:function(a,b,c){a.exports=function(a,b){var d=[function(a,b,c){a.exports=c(34)},function(a,b,c){var d=c(29)("wks"),e=c(33),f=c(2).Symbol,g="function"==typeof f;(a.exports=function(a){return d[a]||(d[a]=g&&f[a]||(g?f:e)("Symbol."+a))}).store=d},function(a,b){var c=a.exports="u">typeof window&&window.Math==Math?window:"u">typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=c)},function(a,b,c){var d=c(9);a.exports=function(a){if(!d(a))throw TypeError(a+" is not an object!");return a}},function(a,b,c){a.exports=!c(24)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},function(a,b,c){var d=c(12),e=c(17);a.exports=c(4)?function(a,b,c){return d.f(a,b,e(1,c))}:function(a,b,c){return a[b]=c,a}},function(a,b){var c=a.exports={version:"2.4.0"};"number"==typeof __e&&(__e=c)},function(a,b,c){var d=c(14);a.exports=function(a,b,c){if(d(a),void 0===b)return a;switch(c){case 1:return function(c){return a.call(b,c)};case 2:return function(c,d){return a.call(b,c,d)};case 3:return function(c,d,e){return a.call(b,c,d,e)}}return function(){return a.apply(b,arguments)}}},function(a,b){var c={}.hasOwnProperty;a.exports=function(a,b){return c.call(a,b)}},function(a,b){a.exports=function(a){return"object"==typeof a?null!==a:"function"==typeof a}},function(a,b){a.exports={}},function(a,b){var c={}.toString;a.exports=function(a){return c.call(a).slice(8,-1)}},function(a,b,c){var d=c(3),e=c(26),f=c(32),g=Object.defineProperty;b.f=c(4)?Object.defineProperty:function(a,b,c){if(d(a),b=f(b,!0),d(c),e)try{return g(a,b,c)}catch(a){}if("get"in c||"set"in c)throw TypeError("Accessors not supported!");return"value"in c&&(a[b]=c.value),a}},function(a,b,c){var d=c(42),e=c(15);a.exports=function(a){return d(e(a))}},function(a,b){a.exports=function(a){if("function"!=typeof a)throw TypeError(a+" is not a function!");return a}},function(a,b){a.exports=function(a){if(void 0==a)throw TypeError("Can't call method on "+a);return a}},function(a,b,c){var d=c(9),e=c(2).document,f=d(e)&&d(e.createElement);a.exports=function(a){return f?e.createElement(a):{}}},function(a,b){a.exports=function(a,b){return{enumerable:!(1&a),configurable:!(2&a),writable:!(4&a),value:b}}},function(a,b,c){var d=c(12).f,e=c(8),f=c(1)("toStringTag");a.exports=function(a,b,c){a&&!e(a=c?a:a.prototype,f)&&d(a,f,{configurable:!0,value:b})}},function(a,b,c){var d=c(29)("keys"),e=c(33);a.exports=function(a){return d[a]||(d[a]=e(a))}},function(a,b){var c=Math.ceil,d=Math.floor;a.exports=function(a){return isNaN(a*=1)?0:(a>0?d:c)(a)}},function(a,b,c){var d=c(11),e=c(1)("toStringTag"),f="Arguments"==d(function(){return arguments}()),g=function(a,b){try{return a[b]}catch(a){}};a.exports=function(a){var b,c,h;return void 0===a?"Undefined":null===a?"Null":"string"==typeof(c=g(b=Object(a),e))?c:f?d(b):"Object"==(h=d(b))&&"function"==typeof b.callee?"Arguments":h}},function(a,b){a.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(a,b,c){var d=c(2),e=c(6),f=c(7),g=c(5),h="prototype",i=function(a,b,c){var j,k,l,m=a&i.F,n=a&i.G,o=a&i.S,p=a&i.P,q=a&i.B,r=a&i.W,s=n?e:e[b]||(e[b]={}),t=s[h],u=n?d:o?d[b]:(d[b]||{})[h];for(j in n&&(c=b),c)(k=!m&&u&&void 0!==u[j])&&j in s||(l=k?u[j]:c[j],s[j]=n&&"function"!=typeof u[j]?c[j]:q&&k?f(l,d):r&&u[j]==l?function(a){var b=function(b,c,d){if(this instanceof a){switch(arguments.length){case 0:return new a;case 1:return new a(b);case 2:return new a(b,c)}return new a(b,c,d)}return a.apply(this,arguments)};return b[h]=a[h],b}(l):p&&"function"==typeof l?f(Function.call,l):l,p&&((s.virtual||(s.virtual={}))[j]=l,a&i.R&&t&&!t[j]&&g(t,j,l)))};i.F=1,i.G=2,i.S=4,i.P=8,i.B=16,i.W=32,i.U=64,i.R=128,a.exports=i},function(a,b){a.exports=function(a){try{return!!a()}catch(a){return!0}}},function(a,b,c){a.exports=c(2).document&&document.documentElement},function(a,b,c){a.exports=!c(4)&&!c(24)(function(){return 7!=Object.defineProperty(c(16)("div"),"a",{get:function(){return 7}}).a})},function(a,b,c){"use strict";var d=c(28),e=c(23),f=c(57),g=c(5),h=c(8),i=c(10),j=c(45),k=c(18),l=c(52),m=c(1)("iterator"),n=!([].keys&&"next"in[].keys()),o="keys",p="values",q=function(){return this};a.exports=function(a,b,c,r,s,t,u){j(c,b,r);var v,w,x,y=function(a){if(!n&&a in C)return C[a];switch(a){case o:case p:return function(){return new c(this,a)}}return function(){return new c(this,a)}},z=b+" Iterator",A=s==p,B=!1,C=a.prototype,D=C[m]||C["@@iterator"]||s&&C[s],E=D||y(s),F=s?A?y("entries"):E:void 0,G="Array"==b&&C.entries||D;if(G&&(x=l(G.call(new a)))!==Object.prototype&&(k(x,z,!0),d||h(x,m)||g(x,m,q)),A&&D&&D.name!==p&&(B=!0,E=function(){return D.call(this)}),(!d||u)&&(n||B||!C[m])&&g(C,m,E),i[b]=E,i[z]=q,s)if(v={values:A?E:y(p),keys:t?E:y(o),entries:F},u)for(w in v)w in C||f(C,w,v[w]);else e(e.P+e.F*(n||B),b,v);return v}},function(a,b){a.exports=!0},function(a,b,c){var d=c(2),e="__core-js_shared__",f=d[e]||(d[e]={});a.exports=function(a){return f[a]||(f[a]={})}},function(a,b,c){var d,e,f,g=c(7),h=c(41),i=c(25),j=c(16),k=c(2),l=k.process,m=k.setImmediate,n=k.clearImmediate,o=k.MessageChannel,p=0,q={},r="onreadystatechange",s=function(){var a=+this;if(q.hasOwnProperty(a)){var b=q[a];delete q[a],b()}},t=function(a){s.call(a.data)};m&&n||(m=function(a){for(var b=[],c=1;arguments.length>c;)b.push(arguments[c++]);return q[++p]=function(){h("function"==typeof a?a:Function(a),b)},d(p),p},n=function(a){delete q[a]},"process"==c(11)(l)?d=function(a){l.nextTick(g(s,a,1))}:o?(f=(e=new o).port2,e.port1.onmessage=t,d=g(f.postMessage,f,1)):k.addEventListener&&"function"==typeof postMessage&&!k.importScripts?(d=function(a){k.postMessage(a+"","*")},k.addEventListener("message",t,!1)):d=r in j("script")?function(a){i.appendChild(j("script"))[r]=function(){i.removeChild(this),s.call(a)}}:function(a){setTimeout(g(s,a,1),0)}),a.exports={set:m,clear:n}},function(a,b,c){var d=c(20),e=Math.min;a.exports=function(a){return a>0?e(d(a),0x1fffffffffffff):0}},function(a,b,c){var d=c(9);a.exports=function(a,b){var c,e;if(!d(a))return a;if(b&&"function"==typeof(c=a.toString)&&!d(e=c.call(a))||"function"==typeof(c=a.valueOf)&&!d(e=c.call(a))||!b&&"function"==typeof(c=a.toString)&&!d(e=c.call(a)))return e;throw TypeError("Can't convert object to primitive value")}},function(a,b){var c=0,d=Math.random();a.exports=function(a){return"Symbol(".concat(void 0===a?"":a,")_",(++c+d).toString(36))}},function(a,b,c){"use strict";function d(a){return(0,i.createHash)("sha256").update(a).digest("hex")}function e(a){switch(j){case"darwin":return a.split("IOPlatformUUID")[1].split("\n")[0].replace(/\=|\s+|\"/gi,"").toLowerCase();case"win32":return a.toString().split("REG_SZ")[1].replace(/\r+|\n+|\s+/gi,"").toLowerCase();case"linux":case"freebsd":return a.toString().replace(/\r+|\n+|\s+/gi,"").toLowerCase();default:throw Error("Unsupported platform: "+process.platform)}}Object.defineProperty(b,"__esModule",{value:!0});var f,g=(f=c(35))&&f.__esModule?f:{default:f};b.machineIdSync=function(a){var b=e((0,h.execSync)(k[j]).toString());return a?b:d(b)},b.machineId=function(a){return new g.default(function(b,c){return(0,h.exec)(k[j],{},function(f,g,h){if(f)return c(Error("Error while obtaining machine id: "+f.stack));var i=e(g.toString());return b(a?i:d(i))})})};var h=c(70),i=c(71),j=process.platform,k={darwin:"ioreg -rd1 -c IOPlatformExpertDevice",win32:{native:"%windir%\\System32",mixed:"%windir%\\sysnative\\cmd.exe /c %windir%\\System32"}["win32"!==process.platform?"":"ia32"===process.arch&&process.env.hasOwnProperty("PROCESSOR_ARCHITEW6432")?"mixed":"native"]+"\\REG.exe QUERY HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Cryptography /v MachineGuid",linux:"( cat /var/lib/dbus/machine-id /etc/machine-id 2> /dev/null || hostname ) | head -n 1 || :",freebsd:"kenv -q smbios.system.uuid || sysctl -n kern.hostuuid"}},function(a,b,c){a.exports={default:c(36),__esModule:!0}},function(a,b,c){c(66),c(68),c(69),c(67),a.exports=c(6).Promise},function(a,b){a.exports=function(){}},function(a,b){a.exports=function(a,b,c,d){if(!(a instanceof b)||void 0!==d&&d in a)throw TypeError(c+": incorrect invocation!");return a}},function(a,b,c){var d=c(13),e=c(31),f=c(62);a.exports=function(a){return function(b,c,g){var h,i=d(b),j=e(i.length),k=f(g,j);if(a&&c!=c){for(;j>k;)if((h=i[k++])!=h)return!0}else for(;j>k;k++)if((a||k in i)&&i[k]===c)return a||k||0;return!a&&-1}}},function(a,b,c){var d=c(7),e=c(44),f=c(43),g=c(3),h=c(31),i=c(64),j={},k={},b=a.exports=function(a,b,c,l,m){var n,o,p,q,r=m?function(){return a}:i(a),s=d(c,l,b?2:1),t=0;if("function"!=typeof r)throw TypeError(a+" is not iterable!");if(f(r)){for(n=h(a.length);n>t;t++)if((q=b?s(g(o=a[t])[0],o[1]):s(a[t]))===j||q===k)return q}else for(p=r.call(a);!(o=p.next()).done;)if((q=e(p,s,o.value,b))===j||q===k)return q};b.BREAK=j,b.RETURN=k},function(a,b){a.exports=function(a,b,c){var d=void 0===c;switch(b.length){case 0:return d?a():a.call(c);case 1:return d?a(b[0]):a.call(c,b[0]);case 2:return d?a(b[0],b[1]):a.call(c,b[0],b[1]);case 3:return d?a(b[0],b[1],b[2]):a.call(c,b[0],b[1],b[2]);case 4:return d?a(b[0],b[1],b[2],b[3]):a.call(c,b[0],b[1],b[2],b[3])}return a.apply(c,b)}},function(a,b,c){var d=c(11);a.exports=Object("z").propertyIsEnumerable(0)?Object:function(a){return"String"==d(a)?a.split(""):Object(a)}},function(a,b,c){var d=c(10),e=c(1)("iterator"),f=Array.prototype;a.exports=function(a){return void 0!==a&&(d.Array===a||f[e]===a)}},function(a,b,c){var d=c(3);a.exports=function(a,b,c,e){try{return e?b(d(c)[0],c[1]):b(c)}catch(b){var f=a.return;throw void 0!==f&&d(f.call(a)),b}}},function(a,b,c){"use strict";var d=c(49),e=c(17),f=c(18),g={};c(5)(g,c(1)("iterator"),function(){return this}),a.exports=function(a,b,c){a.prototype=d(g,{next:e(1,c)}),f(a,b+" Iterator")}},function(a,b,c){var d=c(1)("iterator"),e=!1;try{var f=[7][d]();f.return=function(){e=!0},Array.from(f,function(){throw 2})}catch(a){}a.exports=function(a,b){if(!b&&!e)return!1;var c=!1;try{var f=[7],g=f[d]();g.next=function(){return{done:c=!0}},f[d]=function(){return g},a(f)}catch(a){}return c}},function(a,b){a.exports=function(a,b){return{value:b,done:!!a}}},function(a,b,c){var d=c(2),e=c(30).set,f=d.MutationObserver||d.WebKitMutationObserver,g=d.process,h=d.Promise,i="process"==c(11)(g);a.exports=function(){var a,b,c,j=function(){var d,e;for(i&&(d=g.domain)&&d.exit();a;){e=a.fn,a=a.next;try{e()}catch(d){throw a?c():b=void 0,d}}b=void 0,d&&d.enter()};if(i)c=function(){g.nextTick(j)};else if(f){var k=!0,l=document.createTextNode("");new f(j).observe(l,{characterData:!0}),c=function(){l.data=k=!k}}else if(h&&h.resolve){var m=h.resolve();c=function(){m.then(j)}}else c=function(){e.call(d,j)};return function(d){var e={fn:d,next:void 0};b&&(b.next=e),a||(a=e,c()),b=e}}},function(a,b,c){var d=c(3),e=c(50),f=c(22),g=c(19)("IE_PROTO"),h=function(){},i="prototype",j=function(){var a,b=c(16)("iframe"),d=f.length;for(b.style.display="none",c(25).appendChild(b),b.src="javascript:",(a=b.contentWindow.document).open(),a.write("<script>document.F=Object<\/script>"),a.close(),j=a.F;d--;)delete j[i][f[d]];return j()};a.exports=Object.create||function(a,b){var c;return null!==a?(h[i]=d(a),c=new h,h[i]=null,c[g]=a):c=j(),void 0===b?c:e(c,b)}},function(a,b,c){var d=c(12),e=c(3),f=c(54);a.exports=c(4)?Object.defineProperties:function(a,b){e(a);for(var c,g=f(b),h=g.length,i=0;h>i;)d.f(a,c=g[i++],b[c]);return a}},function(a,b,c){var d=c(55),e=c(17),f=c(13),g=c(32),h=c(8),i=c(26),j=Object.getOwnPropertyDescriptor;b.f=c(4)?j:function(a,b){if(a=f(a),b=g(b,!0),i)try{return j(a,b)}catch(a){}if(h(a,b))return e(!d.f.call(a,b),a[b])}},function(a,b,c){var d=c(8),e=c(63),f=c(19)("IE_PROTO"),g=Object.prototype;a.exports=Object.getPrototypeOf||function(a){return d(a=e(a),f)?a[f]:"function"==typeof a.constructor&&a instanceof a.constructor?a.constructor.prototype:a instanceof Object?g:null}},function(a,b,c){var d=c(8),e=c(13),f=c(39)(!1),g=c(19)("IE_PROTO");a.exports=function(a,b){var c,h=e(a),i=0,j=[];for(c in h)c!=g&&d(h,c)&&j.push(c);for(;b.length>i;)d(h,c=b[i++])&&(~f(j,c)||j.push(c));return j}},function(a,b,c){var d=c(53),e=c(22);a.exports=Object.keys||function(a){return d(a,e)}},function(a,b){b.f=({}).propertyIsEnumerable},function(a,b,c){var d=c(5);a.exports=function(a,b,c){for(var e in b)c&&a[e]?a[e]=b[e]:d(a,e,b[e]);return a}},function(a,b,c){a.exports=c(5)},function(a,b,c){var d=c(9),e=c(3),f=function(a,b){if(e(a),!d(b)&&null!==b)throw TypeError(b+": can't set as prototype!")};a.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(a,b,d){try{(d=c(7)(Function.call,c(51).f(Object.prototype,"__proto__").set,2))(a,[]),b=!(a instanceof Array)}catch(a){b=!0}return function(a,c){return f(a,c),b?a.__proto__=c:d(a,c),a}}({},!1):void 0),check:f}},function(a,b,c){"use strict";var d=c(2),e=c(6),f=c(12),g=c(4),h=c(1)("species");a.exports=function(a){var b="function"==typeof e[a]?e[a]:d[a];g&&b&&!b[h]&&f.f(b,h,{configurable:!0,get:function(){return this}})}},function(a,b,c){var d=c(3),e=c(14),f=c(1)("species");a.exports=function(a,b){var c,g=d(a).constructor;return void 0===g||void 0==(c=d(g)[f])?b:e(c)}},function(a,b,c){var d=c(20),e=c(15);a.exports=function(a){return function(b,c){var f,g,h=String(e(b)),i=d(c),j=h.length;return i<0||i>=j?a?"":void 0:(f=h.charCodeAt(i))<55296||f>56319||i+1===j||(g=h.charCodeAt(i+1))<56320||g>57343?a?h.charAt(i):f:a?h.slice(i,i+2):(f-55296<<10)+(g-56320)+65536}}},function(a,b,c){var d=c(20),e=Math.max,f=Math.min;a.exports=function(a,b){return(a=d(a))<0?e(a+b,0):f(a,b)}},function(a,b,c){var d=c(15);a.exports=function(a){return Object(d(a))}},function(a,b,c){var d=c(21),e=c(1)("iterator"),f=c(10);a.exports=c(6).getIteratorMethod=function(a){if(void 0!=a)return a[e]||a["@@iterator"]||f[d(a)]}},function(a,b,c){"use strict";var d=c(37),e=c(47),f=c(10),g=c(13);a.exports=c(27)(Array,"Array",function(a,b){this._t=g(a),this._i=0,this._k=b},function(){var a=this._t,b=this._k,c=this._i++;return!a||c>=a.length?(this._t=void 0,e(1)):"keys"==b?e(0,c):"values"==b?e(0,a[c]):e(0,[c,a[c]])},"values"),f.Arguments=f.Array,d("keys"),d("values"),d("entries")},function(a,b){},function(a,b,c){"use strict";var d,e,f,g=c(28),h=c(2),i=c(7),j=c(21),k=c(23),l=c(9),m=(c(3),c(14)),n=c(38),o=c(40),p=(c(58).set,c(60)),q=c(30).set,r=c(48)(),s="Promise",t=h.TypeError,u=h.process,v=h[s],u=h.process,w="process"==j(u),x=function(){},y=!!function(){try{var a=v.resolve(1),b=(a.constructor={})[c(1)("species")]=function(a){a(x,x)};return(w||"function"==typeof PromiseRejectionEvent)&&a.then(x)instanceof b}catch(a){}}(),z=function(a,b){return a===b||a===v&&b===f},A=function(a){var b;return!(!l(a)||"function"!=typeof(b=a.then))&&b},B=function(a){return z(v,a)?new C(a):new e(a)},C=e=function(a){var b,c;this.promise=new a(function(a,d){if(void 0!==b||void 0!==c)throw t("Bad Promise constructor");b=a,c=d}),this.resolve=m(b),this.reject=m(c)},D=function(a){try{a()}catch(a){return{error:a}}},E=function(a,b){if(!a._n){a._n=!0;var c=a._c;r(function(){for(var d=a._v,e=1==a._s,f=0;c.length>f;)!function(b){var c,f,g=e?b.ok:b.fail,h=b.resolve,i=b.reject,j=b.domain;try{g?(e||(2==a._h&&H(a),a._h=1),!0===g?c=d:(j&&j.enter(),c=g(d),j&&j.exit()),c===b.promise?i(t("Promise-chain cycle")):(f=A(c))?f.call(c,h,i):h(c)):i(d)}catch(a){i(a)}}(c[f++]);a._c=[],a._n=!1,b&&!a._h&&F(a)})}},F=function(a){q.call(h,function(){var b,c,d,e=a._v;if(G(a)&&(b=D(function(){w?u.emit("unhandledRejection",e,a):(c=h.onunhandledrejection)?c({promise:a,reason:e}):(d=h.console)&&d.error&&d.error("Unhandled promise rejection",e)}),a._h=w||G(a)?2:1),a._a=void 0,b)throw b.error})},G=function(a){if(1==a._h)return!1;for(var b,c=a._a||a._c,d=0;c.length>d;)if((b=c[d++]).fail||!G(b.promise))return!1;return!0},H=function(a){q.call(h,function(){var b;w?u.emit("rejectionHandled",a):(b=h.onrejectionhandled)&&b({promise:a,reason:a._v})})},I=function(a){var b=this;b._d||(b._d=!0,(b=b._w||b)._v=a,b._s=2,b._a||(b._a=b._c.slice()),E(b,!0))},J=function(a){var b,c=this;if(!c._d){c._d=!0,c=c._w||c;try{if(c===a)throw t("Promise can't be resolved itself");(b=A(a))?r(function(){var d={_w:c,_d:!1};try{b.call(a,i(J,d,1),i(I,d,1))}catch(a){I.call(d,a)}}):(c._v=a,c._s=1,E(c,!1))}catch(a){I.call({_w:c,_d:!1},a)}}};y||(v=function(a){n(this,v,s,"_h"),m(a),d.call(this);try{a(i(J,this,1),i(I,this,1))}catch(a){I.call(this,a)}},(d=function(a){this._c=[],this._a=void 0,this._s=0,this._d=!1,this._v=void 0,this._h=0,this._n=!1}).prototype=c(56)(v.prototype,{then:function(a,b){var c=B(p(this,v));return c.ok="function"!=typeof a||a,c.fail="function"==typeof b&&b,c.domain=w?u.domain:void 0,this._c.push(c),this._a&&this._a.push(c),this._s&&E(this,!1),c.promise},catch:function(a){return this.then(void 0,a)}}),C=function(){var a=new d;this.promise=a,this.resolve=i(J,a,1),this.reject=i(I,a,1)}),k(k.G+k.W+!y*k.F,{Promise:v}),c(18)(v,s),c(59)(s),f=c(6)[s],k(k.S+!y*k.F,s,{reject:function(a){var b=B(this);return(0,b.reject)(a),b.promise}}),k(k.S+k.F*(g||!y),s,{resolve:function(a){if(a instanceof v&&z(a.constructor,this))return a;var b=B(this);return(0,b.resolve)(a),b.promise}}),k(k.S+!(y&&c(46)(function(a){v.all(a).catch(x)}))*k.F,s,{all:function(a){var b=this,c=B(b),d=c.resolve,e=c.reject,f=D(function(){var c=[],f=0,g=1;o(a,!1,function(a){var h=f++,i=!1;c.push(void 0),g++,b.resolve(a).then(function(a){i||(i=!0,c[h]=a,--g||d(c))},e)}),--g||d(c)});return f&&e(f.error),c.promise},race:function(a){var b=this,c=B(b),d=c.reject,e=D(function(){o(a,!1,function(a){b.resolve(a).then(c.resolve,d)})});return e&&d(e.error),c.promise}})},function(a,b,c){"use strict";var d=c(61)(!0);c(27)(String,"String",function(a){this._t=String(a),this._i=0},function(){var a,b=this._t,c=this._i;return c>=b.length?{value:void 0,done:!0}:(a=d(b,c),this._i+=a.length,{value:a,done:!1})})},function(a,b,c){c(65);for(var d=c(2),e=c(5),f=c(10),g=c(1)("toStringTag"),h=["NodeList","DOMTokenList","MediaList","StyleSheetList","CSSRuleList"],i=0;i<5;i++){var j=h[i],k=d[j],l=k&&k.prototype;l&&!l[g]&&e(l,g,j),f[j]=f.Array}},function(a,b){a.exports=c(79646)},function(a,b){a.exports=c(55511)}];function e(a){if(f[a])return f[a].exports;var b=f[a]={exports:{},id:a,loaded:!1};return d[a].call(b.exports,b,b.exports,e),b.loaded=!0,b.exports}var f={};return e.m=d,e.c=f,e.p="",e(0)}(c(79646),c(55511))},21350:(a,b,c)=>{"use strict";c.r(b),c.d(b,{DELETE:()=>Q,GET:()=>O,POST:()=>P});var d=c(49796),e=c(23211),f=c(79748),g=c.n(f),h=c(33873),i=c.n(h),j=c(21820),k=c.n(j),l=c(55511),m=c.n(l),n=c(28286),o=c(30869),p=c(54603),q=c(24424);let r=o.h0.appPort,s=`http://localhost:${r}/api/mcp/`,t=null,u=async()=>(t||(t=await (0,p.Xj)("miaw-cli-auth")),t),v=async a=>{let b=await u();for(let c of a)"string"==typeof c?.url&&c.url.startsWith(s)&&(c.headers={...c.headers||{},"x-miaw-cli-token":b});return a},w="gateway",x={coworkEgressAllowedHosts:["*"],disabledBuiltinTools:[],isLocalDevMcpEnabled:!0,isDesktopExtensionEnabled:!0,isDesktopExtensionDirectoryEnabled:!0,isDesktopExtensionSignatureRequired:!1,isClaudeCodeForDesktopEnabled:!0,disableEssentialTelemetry:!0,disableNonessentialTelemetry:!0,disableNonessentialServices:!0},y=()=>{if("darwin"===k().platform()){let a=i().join(k().homedir(),"Library","Application Support");return[i().join(a,"Claude-3p"),i().join(a,"Claude")]}if("win32"===k().platform()){let a=process.env.LOCALAPPDATA||i().join(k().homedir(),"AppData","Local"),b=process.env.APPDATA||i().join(k().homedir(),"AppData","Roaming");return[i().join(a,"Claude-3p"),i().join(b,"Claude-3p"),i().join(a,"Claude"),i().join(b,"Claude")]}return[i().join(k().homedir(),".config","Claude-3p"),i().join(k().homedir(),".config","Claude")]},z=async()=>{let a=y();for(let b of a)try{return await g().access(i().join(b,"configLibrary")),b}catch{}return a[0]},A=()=>y()[0],B=async()=>i().join(await z(),"configLibrary"),C=()=>i().join(A(),"configLibrary"),D=async()=>i().join(await B(),"_meta.json"),E=()=>{if("darwin"===k().platform())return i().join(k().homedir(),"Library","Application Support","Claude");if("win32"===k().platform()){let a=process.env.APPDATA||i().join(k().homedir(),"AppData","Roaming");return i().join(a,"Claude")}return i().join(k().homedir(),".config","Claude")},F=()=>i().join(E(),"claude_desktop_config.json"),G=async()=>{try{let a=(await g().readFile(F(),"utf-8")).replace(/,(\s*[}\]])/g,"$1");return JSON.parse(a)||{}}catch(a){return{}}},H=async a=>{await g().mkdir(E(),{recursive:!0}),await g().writeFile(F(),JSON.stringify(a,null,2))},I=async()=>{let a=await G();return"3p"!==a.deploymentMode&&(a.deploymentMode="3p",await H(a),!0)},J=async()=>{let a=await G();if(!a.mcpServers||"object"!=typeof a.mcpServers)return;let b=new Set(n.LOCAL_STDIO_PLUGINS.map(a=>a.name));for(let c of Object.keys(a.mcpServers))b.has(c)&&delete a.mcpServers[c];0===Object.keys(a.mcpServers).length&&delete a.mcpServers,await H(a)},K=async()=>{for(let a of[...y(),...(()=>{if("darwin"===k().platform())return["/Applications/Claude.app",i().join(k().homedir(),"Applications","Claude.app")];if("win32"===k().platform()){let a=process.env.LOCALAPPDATA||i().join(k().homedir(),"AppData","Local"),b=process.env.ProgramFiles||"C:\\Program Files";return[i().join(a,"AnthropicClaude"),i().join(b,"Claude"),i().join(b,"AnthropicClaude")]}return[]})()])try{return await g().access(a),!0}catch{}return!1},L=async a=>{try{let b=(await g().readFile(a,"utf-8")).replace(/,(\s*[}\]])/g,"$1");return JSON.parse(b)}catch(a){return null}},M=async()=>{let a=i().join(C(),"_meta.json"),b=await L(a);if(!b||!b.appliedId){let c=await L(await D());if(c?.appliedId)b=c;else{let a=m().randomUUID();b={appliedId:a,entries:[{id:a,name:"Default"}]}}await g().mkdir(C(),{recursive:!0}),await g().writeFile(a,JSON.stringify(b,null,2))}return b};async function N(a){let b=i().join(A(),"config.json"),c={};try{c=JSON.parse(await g().readFile(b,"utf-8"))||{}}catch(a){if("ENOENT"!==a.code)return{error:a.code}}let d={};for(let b of a)b?.name&&(d[b.name]=!0);return c.operonSkipMcpApprovals=d,await g().mkdir(A(),{recursive:!0}),await g().writeFile(b,JSON.stringify(c,null,2)),{written:Object.keys(d).length}}async function O(){try{if(!await K())return e.NextResponse.json({installed:!1,config:null,message:"Claude Desktop (Cowork mode) not detected"});let a=await L(await D()),b=a?.appliedId||null,c=await B(),d=b?i().join(c,`${b}.json`):null,f=d?await L(d):null,g=f?.inferenceGatewayBaseUrl||null,h=Array.isArray(f?.inferenceModels)?f.inferenceModels.map(a=>"string"==typeof a?a:a?.name).filter(Boolean):[],j=Array.isArray(f?.managedMcpServers)?f.managedMcpServers:[],k=!!(f?.inferenceProvider===w&&g),l=new Set(n.LOCAL_STDIO_PLUGINS.map(a=>a.name)),m=j.filter(a=>l.has(a.name)&&"string"==typeof a.url&&a.url.includes("/api/mcp/")).map(a=>a.name),o=j.filter(a=>a.custom||!l.has(a.name)&&"string"==typeof a.url&&a.url.includes("/api/mcp/")).map(a=>({name:a.name,url:a.url,transport:a.transport,custom:!0}));return e.NextResponse.json({installed:!0,config:f,hasMiawRouter:k,configPath:d,cowork:{appliedId:b,baseUrl:g,models:h,provider:f?.inferenceProvider||null,plugins:j.filter(a=>!a.custom&&!(l.has(a.name)&&"string"==typeof a.url&&a.url.includes("/api/mcp/"))).map(a=>{let b=a.toolPolicy?Object.keys(a.toolPolicy):[],c=`${a.name}-`,d=new Set;for(let a of b){let b=a;for(;b.startsWith(c);)b=b.slice(c.length);d.add(b)}let e=n.DEFAULT_PLUGINS.find(b=>b.name===a.name),f=e&&Array.isArray(e.toolNames)?e.toolNames:Array.from(d);return{name:a.name,url:a.url,transport:a.transport,oauth:!!a.oauth,toolNames:f}}),localPlugins:m,customPlugins:o},defaultPlugins:n.DEFAULT_PLUGINS,localStdioPlugins:n.LOCAL_STDIO_PLUGINS})}catch(a){return console.log("Error reading cowork settings:",a),e.NextResponse.json({error:"Failed to read cowork settings"},{status:500})}}async function P(a){try{let{baseUrl:b,apiKey:c,models:d,plugins:f,localPlugins:h,customPlugins:j}=await a.json();if(!b||!c)return e.NextResponse.json({error:"baseUrl and apiKey are required"},{status:400});let k=Array.isArray(d)?d.filter(a=>"string"==typeof a&&a.trim()):[];if(0===k.length)return e.NextResponse.json({error:"At least one model is required"},{status:400});let l=Array.isArray(f)?f:n.DEFAULT_PLUGINS,m=Array.isArray(h)?h:[],o=(Array.isArray(j)?j:[]).filter(a=>a?.url),p=await v((a=>{let b=Array.isArray(a)?a:[],c=[];for(let a of b){let b=n.LOCAL_STDIO_PLUGINS.find(b=>b.name===a);if(!b)continue;let d={name:b.name,url:`http://localhost:${r}/api/mcp/${b.name}/sse`,transport:"sse"};if(Array.isArray(b.toolNames)&&b.toolNames.length>0){let a=`${b.name}-`,c={};for(let d of b.toolNames)c[d]="allow",c[`${a}${d}`]="allow";d.toolPolicy=c}c.push(d)}return c})(m)),q=await v((a=>{if(!Array.isArray(a))return[];let b=[];for(let c of a)c?.name&&c?.url&&b.push({name:c.name,url:c.url,transport:c.transport||"sse",custom:!0});return b})(o)),s=[...(0,n.buildManagedMcpServers)(l),...p,...q],t=await I(),u=await M(),y=i().join(C(),`${u.appliedId}.json`),z={...x,inferenceProvider:w,inferenceGatewayBaseUrl:b,inferenceGatewayApiKey:c,inferenceModels:k.map(a=>({name:a}))};s.length>0&&(z.managedMcpServers=s),await g().writeFile(y,JSON.stringify(z,null,2));let A=null;try{A=await N(s)}catch(a){A={error:a.message}}try{await J()}catch{}return e.NextResponse.json({success:!0,bootstrapped:t,message:t?"Claude Desktop enabled (3p mode set). Quit & reopen Claude Desktop.":"Claude Desktop settings applied. Quit & reopen Claude Desktop.",configPath:y,skipApprovals:A,localMcp:{applied:m,via:"3p-sse-bridge"}})}catch(a){return console.log("Error applying cowork settings:",a),e.NextResponse.json({error:"Failed to apply cowork settings"},{status:500})}}async function Q(){try{let a=await L(await D());if(!a?.appliedId)return e.NextResponse.json({success:!0,message:"No active config to reset"});let b=i().join(await B(),`${a.appliedId}.json`);try{await g().writeFile(b,JSON.stringify({},null,2))}catch(a){if("ENOENT"!==a.code)throw a}try{await N([])}catch{}try{await J()}catch{}return e.NextResponse.json({success:!0,message:"Claude Desktop config reset"})}catch(a){return console.log("Error resetting cowork settings:",a),e.NextResponse.json({error:"Failed to reset cowork settings"},{status:500})}}(0,q.D)([O,P,Q]),(0,d.A)(O,"00574a0881a65073f591e436ee67a0cee55546edb7",null),(0,d.A)(P,"4094e38e2846b82c5ae3beff64258306e82ec2f9eb",null),(0,d.A)(Q,"0075ec611c44228bafa34c68fcf5df9572f5c0edb1",null)},28286:a=>{"use strict";a.exports={DEFAULT_PLUGINS:[{name:"exa",title:"Exa",description:"Real-time web search and code documentation",url:"https://mcp.exa.ai/mcp",transport:"http",oauth:!1,toolNames:["web_search_exa","web_fetch_exa"]},{name:"tavily",title:"Tavily",description:"Real-time web search optimized for LLM agents",url:"https://mcp.tavily.com/mcp",transport:"http",oauth:!0,toolNames:["tavily_search","tavily_extract","tavily_crawl","tavily_map"]}],LOCAL_STDIO_PLUGINS:[{name:"browsermcp",title:"Browser MCP",description:"Control your running Chrome (requires Chrome extension)",extensionUrl:"https://chromewebstore.google.com/detail/browser-mcp-automate-your/bjfgambnhccakkhmkepdoekmckoijdlc",command:"npx",args:["-y","@browsermcp/mcp@latest"],toolNames:["browser_navigate","browser_snapshot","browser_click","browser_type","browser_screenshot","browser_get_console_logs","browser_wait","browser_press_key","browser_go_back","browser_go_forward"]}],buildManagedMcpServers:function(a){let b=Array.isArray(a)?a:[],c=[],d=new Set;for(let a of b){if(!a?.name||!a?.url||d.has(a.name))continue;d.add(a.name);let b={name:a.name,url:a.url,transport:a.transport||(/\/sse(\b|\/)/i.test(a.url)?"sse":"http")};if(a.oauth&&(b.oauth=!0),Array.isArray(a.toolNames)&&a.toolNames.length>0){let c=`${a.name}-`,d=new Set;for(let b of a.toolNames){if("string"!=typeof b||!b)continue;let a=b;for(;a.startsWith(c);)a=a.slice(c.length);d.add(a)}let e={};for(let a of d)e[a]="allow",e[`${c}${a}`]="allow";b.toolPolicy=e}c.push(b)}return c}}}};
1
+ exports.id=2813,exports.ids=[2813],exports.modules={3662:(a,b,c)=>{"use strict";c.d(b,{EQ:()=>f,LY:()=>d,O:()=>e,fh:()=>h,t2:()=>i,wf:()=>g});let d={400:{type:"invalid_request_error",code:"bad_request"},401:{type:"authentication_error",code:"invalid_api_key"},402:{type:"billing_error",code:"payment_required"},403:{type:"permission_error",code:"insufficient_quota"},404:{type:"invalid_request_error",code:"model_not_found"},406:{type:"invalid_request_error",code:"model_not_supported"},429:{type:"rate_limit_error",code:"rate_limit_exceeded"},500:{type:"server_error",code:"internal_server_error"},502:{type:"server_error",code:"bad_gateway"},503:{type:"server_error",code:"service_unavailable"},504:{type:"server_error",code:"gateway_timeout"}},e={400:"Bad request",401:"Invalid API key provided",402:"Payment required",403:"You exceeded your current quota",404:"Model not found",406:"Model not supported",429:"Rate limit exceeded",500:"Internal server error",502:"Bad gateway - upstream provider error",503:"Service temporarily unavailable",504:"Gateway timeout"},f={base:2e3,max:3e5,maxLevel:15},g=3e4,h=18e5,i=[{text:"invalid api key",cooldownMs:12e4},{text:"invalid_key",cooldownMs:12e4},{text:"no credentials",cooldownMs:12e4},{text:"unauthorized",cooldownMs:12e4},{text:"authentication",cooldownMs:12e4},{text:"permanently banned",cooldownMs:18e5},{text:"account disabled",cooldownMs:18e5},{text:"account suspended",cooldownMs:18e5},{text:"suspended",cooldownMs:18e5},{text:"content policy",cooldownMs:12e4},{text:"content_filter",cooldownMs:12e4},{text:"safety",cooldownMs:12e4},{text:"context_length_exceeded",cooldownMs:3e4},{text:"context length",cooldownMs:3e4},{text:"maximum context",cooldownMs:3e4},{text:"token limit",cooldownMs:3e4},{text:"too many tokens",cooldownMs:3e4},{text:"model not supported",cooldownMs:0},{text:"model_not_supported",cooldownMs:0},{text:"modelerror",cooldownMs:0},{text:"is not supported",cooldownMs:0},{text:"model not found",cooldownMs:0},{text:"model_not_found",cooldownMs:0},{text:"regionerror",cooldownMs:0},{text:"region not supported",cooldownMs:0},{text:"cross-border",cooldownMs:0},{text:"geographic restriction",cooldownMs:0},{text:"missingsessionid",cooldownMs:0},{text:"x-opencode-session",cooldownMs:0},{text:"request not allowed",cooldownMs:5e3},{text:"improperly formed request",cooldownMs:12e4},{text:"rate limit",backoff:!0},{text:"too many requests",backoff:!0},{text:"quota exceeded",backoff:!0},{text:"capacity",backoff:!0},{text:"overloaded",backoff:!0},{status:401,cooldownMs:12e4},{status:402,cooldownMs:12e4},{status:403,cooldownMs:12e4},{status:404,cooldownMs:12e4},{status:406,cooldownMs:12e4},{status:429,backoff:!0},{status:500,cooldownMs:3e4},{status:502,cooldownMs:3e4},{status:503,cooldownMs:3e4},{status:504,cooldownMs:3e4}]},19713:function(a,b,c){a.exports=function(a,b){var d=[function(a,b,c){a.exports=c(34)},function(a,b,c){var d=c(29)("wks"),e=c(33),f=c(2).Symbol,g="function"==typeof f;(a.exports=function(a){return d[a]||(d[a]=g&&f[a]||(g?f:e)("Symbol."+a))}).store=d},function(a,b){var c=a.exports="u">typeof window&&window.Math==Math?window:"u">typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=c)},function(a,b,c){var d=c(9);a.exports=function(a){if(!d(a))throw TypeError(a+" is not an object!");return a}},function(a,b,c){a.exports=!c(24)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},function(a,b,c){var d=c(12),e=c(17);a.exports=c(4)?function(a,b,c){return d.f(a,b,e(1,c))}:function(a,b,c){return a[b]=c,a}},function(a,b){var c=a.exports={version:"2.4.0"};"number"==typeof __e&&(__e=c)},function(a,b,c){var d=c(14);a.exports=function(a,b,c){if(d(a),void 0===b)return a;switch(c){case 1:return function(c){return a.call(b,c)};case 2:return function(c,d){return a.call(b,c,d)};case 3:return function(c,d,e){return a.call(b,c,d,e)}}return function(){return a.apply(b,arguments)}}},function(a,b){var c={}.hasOwnProperty;a.exports=function(a,b){return c.call(a,b)}},function(a,b){a.exports=function(a){return"object"==typeof a?null!==a:"function"==typeof a}},function(a,b){a.exports={}},function(a,b){var c={}.toString;a.exports=function(a){return c.call(a).slice(8,-1)}},function(a,b,c){var d=c(3),e=c(26),f=c(32),g=Object.defineProperty;b.f=c(4)?Object.defineProperty:function(a,b,c){if(d(a),b=f(b,!0),d(c),e)try{return g(a,b,c)}catch(a){}if("get"in c||"set"in c)throw TypeError("Accessors not supported!");return"value"in c&&(a[b]=c.value),a}},function(a,b,c){var d=c(42),e=c(15);a.exports=function(a){return d(e(a))}},function(a,b){a.exports=function(a){if("function"!=typeof a)throw TypeError(a+" is not a function!");return a}},function(a,b){a.exports=function(a){if(void 0==a)throw TypeError("Can't call method on "+a);return a}},function(a,b,c){var d=c(9),e=c(2).document,f=d(e)&&d(e.createElement);a.exports=function(a){return f?e.createElement(a):{}}},function(a,b){a.exports=function(a,b){return{enumerable:!(1&a),configurable:!(2&a),writable:!(4&a),value:b}}},function(a,b,c){var d=c(12).f,e=c(8),f=c(1)("toStringTag");a.exports=function(a,b,c){a&&!e(a=c?a:a.prototype,f)&&d(a,f,{configurable:!0,value:b})}},function(a,b,c){var d=c(29)("keys"),e=c(33);a.exports=function(a){return d[a]||(d[a]=e(a))}},function(a,b){var c=Math.ceil,d=Math.floor;a.exports=function(a){return isNaN(a*=1)?0:(a>0?d:c)(a)}},function(a,b,c){var d=c(11),e=c(1)("toStringTag"),f="Arguments"==d(function(){return arguments}()),g=function(a,b){try{return a[b]}catch(a){}};a.exports=function(a){var b,c,h;return void 0===a?"Undefined":null===a?"Null":"string"==typeof(c=g(b=Object(a),e))?c:f?d(b):"Object"==(h=d(b))&&"function"==typeof b.callee?"Arguments":h}},function(a,b){a.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(a,b,c){var d=c(2),e=c(6),f=c(7),g=c(5),h="prototype",i=function(a,b,c){var j,k,l,m=a&i.F,n=a&i.G,o=a&i.S,p=a&i.P,q=a&i.B,r=a&i.W,s=n?e:e[b]||(e[b]={}),t=s[h],u=n?d:o?d[b]:(d[b]||{})[h];for(j in n&&(c=b),c)(k=!m&&u&&void 0!==u[j])&&j in s||(l=k?u[j]:c[j],s[j]=n&&"function"!=typeof u[j]?c[j]:q&&k?f(l,d):r&&u[j]==l?function(a){var b=function(b,c,d){if(this instanceof a){switch(arguments.length){case 0:return new a;case 1:return new a(b);case 2:return new a(b,c)}return new a(b,c,d)}return a.apply(this,arguments)};return b[h]=a[h],b}(l):p&&"function"==typeof l?f(Function.call,l):l,p&&((s.virtual||(s.virtual={}))[j]=l,a&i.R&&t&&!t[j]&&g(t,j,l)))};i.F=1,i.G=2,i.S=4,i.P=8,i.B=16,i.W=32,i.U=64,i.R=128,a.exports=i},function(a,b){a.exports=function(a){try{return!!a()}catch(a){return!0}}},function(a,b,c){a.exports=c(2).document&&document.documentElement},function(a,b,c){a.exports=!c(4)&&!c(24)(function(){return 7!=Object.defineProperty(c(16)("div"),"a",{get:function(){return 7}}).a})},function(a,b,c){"use strict";var d=c(28),e=c(23),f=c(57),g=c(5),h=c(8),i=c(10),j=c(45),k=c(18),l=c(52),m=c(1)("iterator"),n=!([].keys&&"next"in[].keys()),o="keys",p="values",q=function(){return this};a.exports=function(a,b,c,r,s,t,u){j(c,b,r);var v,w,x,y=function(a){if(!n&&a in C)return C[a];switch(a){case o:case p:return function(){return new c(this,a)}}return function(){return new c(this,a)}},z=b+" Iterator",A=s==p,B=!1,C=a.prototype,D=C[m]||C["@@iterator"]||s&&C[s],E=D||y(s),F=s?A?y("entries"):E:void 0,G="Array"==b&&C.entries||D;if(G&&(x=l(G.call(new a)))!==Object.prototype&&(k(x,z,!0),d||h(x,m)||g(x,m,q)),A&&D&&D.name!==p&&(B=!0,E=function(){return D.call(this)}),(!d||u)&&(n||B||!C[m])&&g(C,m,E),i[b]=E,i[z]=q,s)if(v={values:A?E:y(p),keys:t?E:y(o),entries:F},u)for(w in v)w in C||f(C,w,v[w]);else e(e.P+e.F*(n||B),b,v);return v}},function(a,b){a.exports=!0},function(a,b,c){var d=c(2),e="__core-js_shared__",f=d[e]||(d[e]={});a.exports=function(a){return f[a]||(f[a]={})}},function(a,b,c){var d,e,f,g=c(7),h=c(41),i=c(25),j=c(16),k=c(2),l=k.process,m=k.setImmediate,n=k.clearImmediate,o=k.MessageChannel,p=0,q={},r="onreadystatechange",s=function(){var a=+this;if(q.hasOwnProperty(a)){var b=q[a];delete q[a],b()}},t=function(a){s.call(a.data)};m&&n||(m=function(a){for(var b=[],c=1;arguments.length>c;)b.push(arguments[c++]);return q[++p]=function(){h("function"==typeof a?a:Function(a),b)},d(p),p},n=function(a){delete q[a]},"process"==c(11)(l)?d=function(a){l.nextTick(g(s,a,1))}:o?(f=(e=new o).port2,e.port1.onmessage=t,d=g(f.postMessage,f,1)):k.addEventListener&&"function"==typeof postMessage&&!k.importScripts?(d=function(a){k.postMessage(a+"","*")},k.addEventListener("message",t,!1)):d=r in j("script")?function(a){i.appendChild(j("script"))[r]=function(){i.removeChild(this),s.call(a)}}:function(a){setTimeout(g(s,a,1),0)}),a.exports={set:m,clear:n}},function(a,b,c){var d=c(20),e=Math.min;a.exports=function(a){return a>0?e(d(a),0x1fffffffffffff):0}},function(a,b,c){var d=c(9);a.exports=function(a,b){var c,e;if(!d(a))return a;if(b&&"function"==typeof(c=a.toString)&&!d(e=c.call(a))||"function"==typeof(c=a.valueOf)&&!d(e=c.call(a))||!b&&"function"==typeof(c=a.toString)&&!d(e=c.call(a)))return e;throw TypeError("Can't convert object to primitive value")}},function(a,b){var c=0,d=Math.random();a.exports=function(a){return"Symbol(".concat(void 0===a?"":a,")_",(++c+d).toString(36))}},function(a,b,c){"use strict";function d(a){return(0,i.createHash)("sha256").update(a).digest("hex")}function e(a){switch(j){case"darwin":return a.split("IOPlatformUUID")[1].split("\n")[0].replace(/\=|\s+|\"/gi,"").toLowerCase();case"win32":return a.toString().split("REG_SZ")[1].replace(/\r+|\n+|\s+/gi,"").toLowerCase();case"linux":case"freebsd":return a.toString().replace(/\r+|\n+|\s+/gi,"").toLowerCase();default:throw Error("Unsupported platform: "+process.platform)}}Object.defineProperty(b,"__esModule",{value:!0});var f,g=(f=c(35))&&f.__esModule?f:{default:f};b.machineIdSync=function(a){var b=e((0,h.execSync)(k[j]).toString());return a?b:d(b)},b.machineId=function(a){return new g.default(function(b,c){return(0,h.exec)(k[j],{},function(f,g,h){if(f)return c(Error("Error while obtaining machine id: "+f.stack));var i=e(g.toString());return b(a?i:d(i))})})};var h=c(70),i=c(71),j=process.platform,k={darwin:"ioreg -rd1 -c IOPlatformExpertDevice",win32:{native:"%windir%\\System32",mixed:"%windir%\\sysnative\\cmd.exe /c %windir%\\System32"}["win32"!==process.platform?"":"ia32"===process.arch&&process.env.hasOwnProperty("PROCESSOR_ARCHITEW6432")?"mixed":"native"]+"\\REG.exe QUERY HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Cryptography /v MachineGuid",linux:"( cat /var/lib/dbus/machine-id /etc/machine-id 2> /dev/null || hostname ) | head -n 1 || :",freebsd:"kenv -q smbios.system.uuid || sysctl -n kern.hostuuid"}},function(a,b,c){a.exports={default:c(36),__esModule:!0}},function(a,b,c){c(66),c(68),c(69),c(67),a.exports=c(6).Promise},function(a,b){a.exports=function(){}},function(a,b){a.exports=function(a,b,c,d){if(!(a instanceof b)||void 0!==d&&d in a)throw TypeError(c+": incorrect invocation!");return a}},function(a,b,c){var d=c(13),e=c(31),f=c(62);a.exports=function(a){return function(b,c,g){var h,i=d(b),j=e(i.length),k=f(g,j);if(a&&c!=c){for(;j>k;)if((h=i[k++])!=h)return!0}else for(;j>k;k++)if((a||k in i)&&i[k]===c)return a||k||0;return!a&&-1}}},function(a,b,c){var d=c(7),e=c(44),f=c(43),g=c(3),h=c(31),i=c(64),j={},k={},b=a.exports=function(a,b,c,l,m){var n,o,p,q,r=m?function(){return a}:i(a),s=d(c,l,b?2:1),t=0;if("function"!=typeof r)throw TypeError(a+" is not iterable!");if(f(r)){for(n=h(a.length);n>t;t++)if((q=b?s(g(o=a[t])[0],o[1]):s(a[t]))===j||q===k)return q}else for(p=r.call(a);!(o=p.next()).done;)if((q=e(p,s,o.value,b))===j||q===k)return q};b.BREAK=j,b.RETURN=k},function(a,b){a.exports=function(a,b,c){var d=void 0===c;switch(b.length){case 0:return d?a():a.call(c);case 1:return d?a(b[0]):a.call(c,b[0]);case 2:return d?a(b[0],b[1]):a.call(c,b[0],b[1]);case 3:return d?a(b[0],b[1],b[2]):a.call(c,b[0],b[1],b[2]);case 4:return d?a(b[0],b[1],b[2],b[3]):a.call(c,b[0],b[1],b[2],b[3])}return a.apply(c,b)}},function(a,b,c){var d=c(11);a.exports=Object("z").propertyIsEnumerable(0)?Object:function(a){return"String"==d(a)?a.split(""):Object(a)}},function(a,b,c){var d=c(10),e=c(1)("iterator"),f=Array.prototype;a.exports=function(a){return void 0!==a&&(d.Array===a||f[e]===a)}},function(a,b,c){var d=c(3);a.exports=function(a,b,c,e){try{return e?b(d(c)[0],c[1]):b(c)}catch(b){var f=a.return;throw void 0!==f&&d(f.call(a)),b}}},function(a,b,c){"use strict";var d=c(49),e=c(17),f=c(18),g={};c(5)(g,c(1)("iterator"),function(){return this}),a.exports=function(a,b,c){a.prototype=d(g,{next:e(1,c)}),f(a,b+" Iterator")}},function(a,b,c){var d=c(1)("iterator"),e=!1;try{var f=[7][d]();f.return=function(){e=!0},Array.from(f,function(){throw 2})}catch(a){}a.exports=function(a,b){if(!b&&!e)return!1;var c=!1;try{var f=[7],g=f[d]();g.next=function(){return{done:c=!0}},f[d]=function(){return g},a(f)}catch(a){}return c}},function(a,b){a.exports=function(a,b){return{value:b,done:!!a}}},function(a,b,c){var d=c(2),e=c(30).set,f=d.MutationObserver||d.WebKitMutationObserver,g=d.process,h=d.Promise,i="process"==c(11)(g);a.exports=function(){var a,b,c,j=function(){var d,e;for(i&&(d=g.domain)&&d.exit();a;){e=a.fn,a=a.next;try{e()}catch(d){throw a?c():b=void 0,d}}b=void 0,d&&d.enter()};if(i)c=function(){g.nextTick(j)};else if(f){var k=!0,l=document.createTextNode("");new f(j).observe(l,{characterData:!0}),c=function(){l.data=k=!k}}else if(h&&h.resolve){var m=h.resolve();c=function(){m.then(j)}}else c=function(){e.call(d,j)};return function(d){var e={fn:d,next:void 0};b&&(b.next=e),a||(a=e,c()),b=e}}},function(a,b,c){var d=c(3),e=c(50),f=c(22),g=c(19)("IE_PROTO"),h=function(){},i="prototype",j=function(){var a,b=c(16)("iframe"),d=f.length;for(b.style.display="none",c(25).appendChild(b),b.src="javascript:",(a=b.contentWindow.document).open(),a.write("<script>document.F=Object<\/script>"),a.close(),j=a.F;d--;)delete j[i][f[d]];return j()};a.exports=Object.create||function(a,b){var c;return null!==a?(h[i]=d(a),c=new h,h[i]=null,c[g]=a):c=j(),void 0===b?c:e(c,b)}},function(a,b,c){var d=c(12),e=c(3),f=c(54);a.exports=c(4)?Object.defineProperties:function(a,b){e(a);for(var c,g=f(b),h=g.length,i=0;h>i;)d.f(a,c=g[i++],b[c]);return a}},function(a,b,c){var d=c(55),e=c(17),f=c(13),g=c(32),h=c(8),i=c(26),j=Object.getOwnPropertyDescriptor;b.f=c(4)?j:function(a,b){if(a=f(a),b=g(b,!0),i)try{return j(a,b)}catch(a){}if(h(a,b))return e(!d.f.call(a,b),a[b])}},function(a,b,c){var d=c(8),e=c(63),f=c(19)("IE_PROTO"),g=Object.prototype;a.exports=Object.getPrototypeOf||function(a){return d(a=e(a),f)?a[f]:"function"==typeof a.constructor&&a instanceof a.constructor?a.constructor.prototype:a instanceof Object?g:null}},function(a,b,c){var d=c(8),e=c(13),f=c(39)(!1),g=c(19)("IE_PROTO");a.exports=function(a,b){var c,h=e(a),i=0,j=[];for(c in h)c!=g&&d(h,c)&&j.push(c);for(;b.length>i;)d(h,c=b[i++])&&(~f(j,c)||j.push(c));return j}},function(a,b,c){var d=c(53),e=c(22);a.exports=Object.keys||function(a){return d(a,e)}},function(a,b){b.f=({}).propertyIsEnumerable},function(a,b,c){var d=c(5);a.exports=function(a,b,c){for(var e in b)c&&a[e]?a[e]=b[e]:d(a,e,b[e]);return a}},function(a,b,c){a.exports=c(5)},function(a,b,c){var d=c(9),e=c(3),f=function(a,b){if(e(a),!d(b)&&null!==b)throw TypeError(b+": can't set as prototype!")};a.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(a,b,d){try{(d=c(7)(Function.call,c(51).f(Object.prototype,"__proto__").set,2))(a,[]),b=!(a instanceof Array)}catch(a){b=!0}return function(a,c){return f(a,c),b?a.__proto__=c:d(a,c),a}}({},!1):void 0),check:f}},function(a,b,c){"use strict";var d=c(2),e=c(6),f=c(12),g=c(4),h=c(1)("species");a.exports=function(a){var b="function"==typeof e[a]?e[a]:d[a];g&&b&&!b[h]&&f.f(b,h,{configurable:!0,get:function(){return this}})}},function(a,b,c){var d=c(3),e=c(14),f=c(1)("species");a.exports=function(a,b){var c,g=d(a).constructor;return void 0===g||void 0==(c=d(g)[f])?b:e(c)}},function(a,b,c){var d=c(20),e=c(15);a.exports=function(a){return function(b,c){var f,g,h=String(e(b)),i=d(c),j=h.length;return i<0||i>=j?a?"":void 0:(f=h.charCodeAt(i))<55296||f>56319||i+1===j||(g=h.charCodeAt(i+1))<56320||g>57343?a?h.charAt(i):f:a?h.slice(i,i+2):(f-55296<<10)+(g-56320)+65536}}},function(a,b,c){var d=c(20),e=Math.max,f=Math.min;a.exports=function(a,b){return(a=d(a))<0?e(a+b,0):f(a,b)}},function(a,b,c){var d=c(15);a.exports=function(a){return Object(d(a))}},function(a,b,c){var d=c(21),e=c(1)("iterator"),f=c(10);a.exports=c(6).getIteratorMethod=function(a){if(void 0!=a)return a[e]||a["@@iterator"]||f[d(a)]}},function(a,b,c){"use strict";var d=c(37),e=c(47),f=c(10),g=c(13);a.exports=c(27)(Array,"Array",function(a,b){this._t=g(a),this._i=0,this._k=b},function(){var a=this._t,b=this._k,c=this._i++;return!a||c>=a.length?(this._t=void 0,e(1)):"keys"==b?e(0,c):"values"==b?e(0,a[c]):e(0,[c,a[c]])},"values"),f.Arguments=f.Array,d("keys"),d("values"),d("entries")},function(a,b){},function(a,b,c){"use strict";var d,e,f,g=c(28),h=c(2),i=c(7),j=c(21),k=c(23),l=c(9),m=(c(3),c(14)),n=c(38),o=c(40),p=(c(58).set,c(60)),q=c(30).set,r=c(48)(),s="Promise",t=h.TypeError,u=h.process,v=h[s],u=h.process,w="process"==j(u),x=function(){},y=!!function(){try{var a=v.resolve(1),b=(a.constructor={})[c(1)("species")]=function(a){a(x,x)};return(w||"function"==typeof PromiseRejectionEvent)&&a.then(x)instanceof b}catch(a){}}(),z=function(a,b){return a===b||a===v&&b===f},A=function(a){var b;return!(!l(a)||"function"!=typeof(b=a.then))&&b},B=function(a){return z(v,a)?new C(a):new e(a)},C=e=function(a){var b,c;this.promise=new a(function(a,d){if(void 0!==b||void 0!==c)throw t("Bad Promise constructor");b=a,c=d}),this.resolve=m(b),this.reject=m(c)},D=function(a){try{a()}catch(a){return{error:a}}},E=function(a,b){if(!a._n){a._n=!0;var c=a._c;r(function(){for(var d=a._v,e=1==a._s,f=0;c.length>f;)!function(b){var c,f,g=e?b.ok:b.fail,h=b.resolve,i=b.reject,j=b.domain;try{g?(e||(2==a._h&&H(a),a._h=1),!0===g?c=d:(j&&j.enter(),c=g(d),j&&j.exit()),c===b.promise?i(t("Promise-chain cycle")):(f=A(c))?f.call(c,h,i):h(c)):i(d)}catch(a){i(a)}}(c[f++]);a._c=[],a._n=!1,b&&!a._h&&F(a)})}},F=function(a){q.call(h,function(){var b,c,d,e=a._v;if(G(a)&&(b=D(function(){w?u.emit("unhandledRejection",e,a):(c=h.onunhandledrejection)?c({promise:a,reason:e}):(d=h.console)&&d.error&&d.error("Unhandled promise rejection",e)}),a._h=w||G(a)?2:1),a._a=void 0,b)throw b.error})},G=function(a){if(1==a._h)return!1;for(var b,c=a._a||a._c,d=0;c.length>d;)if((b=c[d++]).fail||!G(b.promise))return!1;return!0},H=function(a){q.call(h,function(){var b;w?u.emit("rejectionHandled",a):(b=h.onrejectionhandled)&&b({promise:a,reason:a._v})})},I=function(a){var b=this;b._d||(b._d=!0,(b=b._w||b)._v=a,b._s=2,b._a||(b._a=b._c.slice()),E(b,!0))},J=function(a){var b,c=this;if(!c._d){c._d=!0,c=c._w||c;try{if(c===a)throw t("Promise can't be resolved itself");(b=A(a))?r(function(){var d={_w:c,_d:!1};try{b.call(a,i(J,d,1),i(I,d,1))}catch(a){I.call(d,a)}}):(c._v=a,c._s=1,E(c,!1))}catch(a){I.call({_w:c,_d:!1},a)}}};y||(v=function(a){n(this,v,s,"_h"),m(a),d.call(this);try{a(i(J,this,1),i(I,this,1))}catch(a){I.call(this,a)}},(d=function(a){this._c=[],this._a=void 0,this._s=0,this._d=!1,this._v=void 0,this._h=0,this._n=!1}).prototype=c(56)(v.prototype,{then:function(a,b){var c=B(p(this,v));return c.ok="function"!=typeof a||a,c.fail="function"==typeof b&&b,c.domain=w?u.domain:void 0,this._c.push(c),this._a&&this._a.push(c),this._s&&E(this,!1),c.promise},catch:function(a){return this.then(void 0,a)}}),C=function(){var a=new d;this.promise=a,this.resolve=i(J,a,1),this.reject=i(I,a,1)}),k(k.G+k.W+!y*k.F,{Promise:v}),c(18)(v,s),c(59)(s),f=c(6)[s],k(k.S+!y*k.F,s,{reject:function(a){var b=B(this);return(0,b.reject)(a),b.promise}}),k(k.S+k.F*(g||!y),s,{resolve:function(a){if(a instanceof v&&z(a.constructor,this))return a;var b=B(this);return(0,b.resolve)(a),b.promise}}),k(k.S+!(y&&c(46)(function(a){v.all(a).catch(x)}))*k.F,s,{all:function(a){var b=this,c=B(b),d=c.resolve,e=c.reject,f=D(function(){var c=[],f=0,g=1;o(a,!1,function(a){var h=f++,i=!1;c.push(void 0),g++,b.resolve(a).then(function(a){i||(i=!0,c[h]=a,--g||d(c))},e)}),--g||d(c)});return f&&e(f.error),c.promise},race:function(a){var b=this,c=B(b),d=c.reject,e=D(function(){o(a,!1,function(a){b.resolve(a).then(c.resolve,d)})});return e&&d(e.error),c.promise}})},function(a,b,c){"use strict";var d=c(61)(!0);c(27)(String,"String",function(a){this._t=String(a),this._i=0},function(){var a,b=this._t,c=this._i;return c>=b.length?{value:void 0,done:!0}:(a=d(b,c),this._i+=a.length,{value:a,done:!1})})},function(a,b,c){c(65);for(var d=c(2),e=c(5),f=c(10),g=c(1)("toStringTag"),h=["NodeList","DOMTokenList","MediaList","StyleSheetList","CSSRuleList"],i=0;i<5;i++){var j=h[i],k=d[j],l=k&&k.prototype;l&&!l[g]&&e(l,g,j),f[j]=f.Array}},function(a,b){a.exports=c(79646)},function(a,b){a.exports=c(55511)}];function e(a){if(f[a])return f[a].exports;var b=f[a]={exports:{},id:a,loaded:!1};return d[a].call(b.exports,b,b.exports,e),b.loaded=!0,b.exports}var f={};return e.m=d,e.c=f,e.p="",e(0)}(c(79646),c(55511))},21350:(a,b,c)=>{"use strict";c.r(b),c.d(b,{DELETE:()=>Q,GET:()=>O,POST:()=>P});var d=c(49796),e=c(23211),f=c(79748),g=c.n(f),h=c(33873),i=c.n(h),j=c(21820),k=c.n(j),l=c(55511),m=c.n(l),n=c(28286),o=c(30869),p=c(54603),q=c(24424);let r=o.h0.appPort,s=`http://localhost:${r}/api/mcp/`,t=null,u=async()=>(t||(t=await (0,p.Xj)("miaw-cli-auth")),t),v=async a=>{let b=await u();for(let c of a)"string"==typeof c?.url&&c.url.startsWith(s)&&(c.headers={...c.headers||{},"x-miaw-cli-token":b});return a},w="gateway",x={coworkEgressAllowedHosts:["*"],disabledBuiltinTools:[],isLocalDevMcpEnabled:!0,isDesktopExtensionEnabled:!0,isDesktopExtensionDirectoryEnabled:!0,isDesktopExtensionSignatureRequired:!1,isClaudeCodeForDesktopEnabled:!0,disableEssentialTelemetry:!0,disableNonessentialTelemetry:!0,disableNonessentialServices:!0},y=()=>{if("darwin"===k().platform()){let a=i().join(k().homedir(),"Library","Application Support");return[i().join(a,"Claude-3p"),i().join(a,"Claude")]}if("win32"===k().platform()){let a=process.env.LOCALAPPDATA||i().join(k().homedir(),"AppData","Local"),b=process.env.APPDATA||i().join(k().homedir(),"AppData","Roaming");return[i().join(a,"Claude-3p"),i().join(b,"Claude-3p"),i().join(a,"Claude"),i().join(b,"Claude")]}return[i().join(k().homedir(),".config","Claude-3p"),i().join(k().homedir(),".config","Claude")]},z=async()=>{let a=y();for(let b of a)try{return await g().access(i().join(b,"configLibrary")),b}catch{}return a[0]},A=()=>y()[0],B=async()=>i().join(await z(),"configLibrary"),C=()=>i().join(A(),"configLibrary"),D=async()=>i().join(await B(),"_meta.json"),E=()=>{if("darwin"===k().platform())return i().join(k().homedir(),"Library","Application Support","Claude");if("win32"===k().platform()){let a=process.env.APPDATA||i().join(k().homedir(),"AppData","Roaming");return i().join(a,"Claude")}return i().join(k().homedir(),".config","Claude")},F=()=>i().join(E(),"claude_desktop_config.json"),G=async()=>{try{let a=(await g().readFile(F(),"utf-8")).replace(/,(\s*[}\]])/g,"$1");return JSON.parse(a)||{}}catch(a){return{}}},H=async a=>{await g().mkdir(E(),{recursive:!0}),await g().writeFile(F(),JSON.stringify(a,null,2))},I=async()=>{let a=await G();return"3p"!==a.deploymentMode&&(a.deploymentMode="3p",await H(a),!0)},J=async()=>{let a=await G();if(!a.mcpServers||"object"!=typeof a.mcpServers)return;let b=new Set(n.LOCAL_STDIO_PLUGINS.map(a=>a.name));for(let c of Object.keys(a.mcpServers))b.has(c)&&delete a.mcpServers[c];0===Object.keys(a.mcpServers).length&&delete a.mcpServers,await H(a)},K=async()=>{for(let a of[...y(),...(()=>{if("darwin"===k().platform())return["/Applications/Claude.app",i().join(k().homedir(),"Applications","Claude.app")];if("win32"===k().platform()){let a=process.env.LOCALAPPDATA||i().join(k().homedir(),"AppData","Local"),b=process.env.ProgramFiles||"C:\\Program Files";return[i().join(a,"AnthropicClaude"),i().join(b,"Claude"),i().join(b,"AnthropicClaude")]}return[]})()])try{return await g().access(a),!0}catch{}return!1},L=async a=>{try{let b=(await g().readFile(a,"utf-8")).replace(/,(\s*[}\]])/g,"$1");return JSON.parse(b)}catch(a){return null}},M=async()=>{let a=i().join(C(),"_meta.json"),b=await L(a);if(!b||!b.appliedId){let c=await L(await D());if(c?.appliedId)b=c;else{let a=m().randomUUID();b={appliedId:a,entries:[{id:a,name:"Default"}]}}await g().mkdir(C(),{recursive:!0}),await g().writeFile(a,JSON.stringify(b,null,2))}return b};async function N(a){let b=i().join(A(),"config.json"),c={};try{c=JSON.parse(await g().readFile(b,"utf-8"))||{}}catch(a){if("ENOENT"!==a.code)return{error:a.code}}let d={};for(let b of a)b?.name&&(d[b.name]=!0);return c.operonSkipMcpApprovals=d,await g().mkdir(A(),{recursive:!0}),await g().writeFile(b,JSON.stringify(c,null,2)),{written:Object.keys(d).length}}async function O(){try{if(!await K())return e.NextResponse.json({installed:!1,config:null,message:"Claude Desktop (Cowork mode) not detected"});let a=await L(await D()),b=a?.appliedId||null,c=await B(),d=b?i().join(c,`${b}.json`):null,f=d?await L(d):null,g=f?.inferenceGatewayBaseUrl||null,h=Array.isArray(f?.inferenceModels)?f.inferenceModels.map(a=>"string"==typeof a?a:a?.name).filter(Boolean):[],j=Array.isArray(f?.managedMcpServers)?f.managedMcpServers:[],k=!!(f?.inferenceProvider===w&&g),l=new Set(n.LOCAL_STDIO_PLUGINS.map(a=>a.name)),m=j.filter(a=>l.has(a.name)&&"string"==typeof a.url&&a.url.includes("/api/mcp/")).map(a=>a.name),o=j.filter(a=>a.custom||!l.has(a.name)&&"string"==typeof a.url&&a.url.includes("/api/mcp/")).map(a=>({name:a.name,url:a.url,transport:a.transport,custom:!0}));return e.NextResponse.json({installed:!0,config:f,hasMiawRouter:k,configPath:d,cowork:{appliedId:b,baseUrl:g,models:h,provider:f?.inferenceProvider||null,plugins:j.filter(a=>!a.custom&&!(l.has(a.name)&&"string"==typeof a.url&&a.url.includes("/api/mcp/"))).map(a=>{let b=a.toolPolicy?Object.keys(a.toolPolicy):[],c=`${a.name}-`,d=new Set;for(let a of b){let b=a;for(;b.startsWith(c);)b=b.slice(c.length);d.add(b)}let e=n.DEFAULT_PLUGINS.find(b=>b.name===a.name),f=e&&Array.isArray(e.toolNames)?e.toolNames:Array.from(d);return{name:a.name,url:a.url,transport:a.transport,oauth:!!a.oauth,toolNames:f}}),localPlugins:m,customPlugins:o},defaultPlugins:n.DEFAULT_PLUGINS,localStdioPlugins:n.LOCAL_STDIO_PLUGINS})}catch(a){return console.log("Error reading cowork settings:",a),e.NextResponse.json({error:"Failed to read cowork settings"},{status:500})}}async function P(a){try{let{baseUrl:b,apiKey:c,models:d,plugins:f,localPlugins:h,customPlugins:j}=await a.json();if(!b||!c)return e.NextResponse.json({error:"baseUrl and apiKey are required"},{status:400});let k=Array.isArray(d)?d.filter(a=>"string"==typeof a&&a.trim()):[];if(0===k.length)return e.NextResponse.json({error:"At least one model is required"},{status:400});let l=Array.isArray(f)?f:n.DEFAULT_PLUGINS,m=Array.isArray(h)?h:[],o=(Array.isArray(j)?j:[]).filter(a=>a?.url),p=await v((a=>{let b=Array.isArray(a)?a:[],c=[];for(let a of b){let b=n.LOCAL_STDIO_PLUGINS.find(b=>b.name===a);if(!b)continue;let d={name:b.name,url:`http://localhost:${r}/api/mcp/${b.name}/sse`,transport:"sse"};if(Array.isArray(b.toolNames)&&b.toolNames.length>0){let a=`${b.name}-`,c={};for(let d of b.toolNames)c[d]="allow",c[`${a}${d}`]="allow";d.toolPolicy=c}c.push(d)}return c})(m)),q=await v((a=>{if(!Array.isArray(a))return[];let b=[];for(let c of a)c?.name&&c?.url&&b.push({name:c.name,url:c.url,transport:c.transport||"sse",custom:!0});return b})(o)),s=[...(0,n.buildManagedMcpServers)(l),...p,...q],t=await I(),u=await M(),y=i().join(C(),`${u.appliedId}.json`),z={...x,inferenceProvider:w,inferenceGatewayBaseUrl:b,inferenceGatewayApiKey:c,inferenceModels:k.map(a=>({name:a}))};s.length>0&&(z.managedMcpServers=s),await g().writeFile(y,JSON.stringify(z,null,2));let A=null;try{A=await N(s)}catch(a){A={error:a.message}}try{await J()}catch{}return e.NextResponse.json({success:!0,bootstrapped:t,message:t?"Claude Desktop enabled (3p mode set). Quit & reopen Claude Desktop.":"Claude Desktop settings applied. Quit & reopen Claude Desktop.",configPath:y,skipApprovals:A,localMcp:{applied:m,via:"3p-sse-bridge"}})}catch(a){return console.log("Error applying cowork settings:",a),e.NextResponse.json({error:"Failed to apply cowork settings"},{status:500})}}async function Q(){try{let a=await L(await D());if(!a?.appliedId)return e.NextResponse.json({success:!0,message:"No active config to reset"});let b=i().join(await B(),`${a.appliedId}.json`);try{await g().writeFile(b,JSON.stringify({},null,2))}catch(a){if("ENOENT"!==a.code)throw a}try{await N([])}catch{}try{await J()}catch{}return e.NextResponse.json({success:!0,message:"Claude Desktop config reset"})}catch(a){return console.log("Error resetting cowork settings:",a),e.NextResponse.json({error:"Failed to reset cowork settings"},{status:500})}}(0,q.D)([O,P,Q]),(0,d.A)(O,"00de5cfe8ce48df9a65943ecc3d90ad99f23668010",null),(0,d.A)(P,"4072bc32ec387a4fbcecb752756e105c184dff159d",null),(0,d.A)(Q,"0024b2de844fc9814745ae47e901bda5b6b944e80b",null)},28286:a=>{"use strict";a.exports={DEFAULT_PLUGINS:[{name:"exa",title:"Exa",description:"Real-time web search and code documentation",url:"https://mcp.exa.ai/mcp",transport:"http",oauth:!1,toolNames:["web_search_exa","web_fetch_exa"]},{name:"tavily",title:"Tavily",description:"Real-time web search optimized for LLM agents",url:"https://mcp.tavily.com/mcp",transport:"http",oauth:!0,toolNames:["tavily_search","tavily_extract","tavily_crawl","tavily_map"]}],LOCAL_STDIO_PLUGINS:[{name:"browsermcp",title:"Browser MCP",description:"Control your running Chrome (requires Chrome extension)",extensionUrl:"https://chromewebstore.google.com/detail/browser-mcp-automate-your/bjfgambnhccakkhmkepdoekmckoijdlc",command:"npx",args:["-y","@browsermcp/mcp@latest"],toolNames:["browser_navigate","browser_snapshot","browser_click","browser_type","browser_screenshot","browser_get_console_logs","browser_wait","browser_press_key","browser_go_back","browser_go_forward"]}],buildManagedMcpServers:function(a){let b=Array.isArray(a)?a:[],c=[],d=new Set;for(let a of b){if(!a?.name||!a?.url||d.has(a.name))continue;d.add(a.name);let b={name:a.name,url:a.url,transport:a.transport||(/\/sse(\b|\/)/i.test(a.url)?"sse":"http")};if(a.oauth&&(b.oauth=!0),Array.isArray(a.toolNames)&&a.toolNames.length>0){let c=`${a.name}-`,d=new Set;for(let b of a.toolNames){if("string"!=typeof b||!b)continue;let a=b;for(;a.startsWith(c);)a=a.slice(c.length);d.add(a)}let e={};for(let a of d)e[a]="allow",e[`${c}${a}`]="allow";b.toolPolicy=e}c.push(b)}return c}}}};
@@ -1 +1 @@
1
- exports.id=2974,exports.ids=[2495,2974,4467],exports.modules={19225:(a,b,c)=>{"use strict";a.exports=c(44870)},20669:(a,b,c)=>{"use strict";c.d(b,{g:()=>x,s:()=>y});var d=c(80238),e=c(89718),f=c(38775),g=c(43659),h=c(41004),i=c(8521),j=c(26070);let k=Number(process.env.VIDEO_FETCH_TIMEOUT_MS||12e4),l=new Set(["generations","edits","extensions"]);function m(a){return j.B$[a]?.videoConfig||null}function n(a,b=null){if(!a)return a;let c=String(a).replace(/Bearer\s+[A-Za-z0-9._~+/=-]{8,}/gi,"Bearer [redacted]");for(let a of["accessToken","refreshToken","apiKey"]){let d=b?.[a];"string"==typeof d&&d.length>=8&&(c=c.split(d).join("[redacted]"))}return c}async function o({provider:a,action:b=null,requestId:c=null,rawBody:d=null,contentType:e=null,idempotencyKey:f=null,credentials:j,signal:p,timeoutMs:q=k,log:r,onCredentialsRefreshed:s}){let t,u,v,w=m(a);if(!w)return(0,g.A1)(h.gx.BAD_REQUEST,`Provider '${a}' does not support video generation`);if(!c&&!l.has(b))return(0,g.A1)(h.gx.BAD_REQUEST,`Unknown video action: ${b}`);let x=c?"GET":"POST",y=(u=w.baseUrl.replace(/\/$/,""),c?`${u}/${encodeURIComponent(c)}`:`${u}/${b}`),z=(v="function"==typeof AbortSignal?.timeout?AbortSignal.timeout(q):null,p&&v&&"function"==typeof AbortSignal.any?AbortSignal.any([p,v]):p||v||void 0),A=a=>fetch(y,{method:x,headers:function({token:a,contentType:b,idempotencyKey:c}){let d={Accept:"application/json"};return a&&(d.Authorization=`Bearer ${a}`),b&&(d["Content-Type"]=b),c&&(d["Idempotency-Key"]=c),d}({token:a,contentType:"POST"===x?e:null,idempotencyKey:"POST"===x?f:null}),body:"POST"===x?d:void 0,signal:z});try{t=await A(j?.accessToken||j?.apiKey)}catch(b){if(b?.name==="AbortError"||b?.name==="TimeoutError")return(0,g.A1)(h.gx.REQUEST_TIMEOUT,`[${a}] video ${x} aborted: ${b.message}`);return(0,g.A1)(h.gx.BAD_GATEWAY,n(`[${a}] video upstream fetch failed: ${b.message}`,j))}if((t.status===h.gx.UNAUTHORIZED||t.status===h.gx.FORBIDDEN)&&j?.refreshToken){let b=null;try{b=await (0,i.$B)(a,j,r)}catch(b){r?.warn?.("TOKEN",`${a} | video refresh error: ${n(b.message,j)}`)}if(b?.accessToken){r?.info?.("TOKEN",`${a.toUpperCase()} | refreshed for video ${x}`),Object.assign(j,b),s&&await s(b);try{await t.body?.cancel?.()}catch{}try{t=await A(j.accessToken||j.apiKey)}catch(b){return(0,g.A1)(h.gx.BAD_GATEWAY,n(`[${a}] video retry after refresh failed: ${b.message}`,j))}}else r?.warn?.("TOKEN",`${a.toUpperCase()} | video refresh failed — account needs re-auth`)}let B=await t.text().catch(()=>"");if(!t.ok){let b=n(B||`HTTP ${t.status}`,j);return(0,g.A1)(t.status,`[${a}] ${b.slice(0,2e3)}`)}return{success:!0,response:new Response(B,{status:t.status,headers:{"Content-Type":t.headers.get("content-type")||"application/json","Access-Control-Allow-Origin":"*"}})}}var p=c(87687),q=c(67828),r=c(7803);let s=new Set([h.gx.UNAUTHORIZED,h.gx.FORBIDDEN,h.gx.RATE_LIMITED]);async function t(a){let b=(0,d.Tr)(a);if((await (0,e.mt)()).requireApiKey){if(!b)return(0,g.yj)(h.gx.UNAUTHORIZED,"Missing API key");if(!await (0,d.kI)(b))return(0,g.yj)(h.gx.UNAUTHORIZED,"Invalid API key")}return null}async function u(a){let b=a.headers.get("content-type")||"";if(b.includes("application/json")){let c,d=await a.text();try{c=JSON.parse(d)}catch{return{error:(0,g.yj)(h.gx.BAD_REQUEST,"Invalid JSON body")}}return{raw:d,parsed:c,contentType:b}}return{raw:Buffer.from(await a.arrayBuffer()),parsed:null,contentType:b}}async function v(a){if(!a?.model)return{provider:"xai",model:null};let b=String(a.model),c=await (0,f.mA)(b);return c.provider?m(c.provider)?{provider:c.provider,model:c.model}:b.includes("/")?{error:(0,g.yj)(h.gx.BAD_REQUEST,`Provider '${c.provider}' does not support video generation`)}:{provider:"xai",model:b}:{error:(0,g.yj)(h.gx.BAD_REQUEST,"Combos are not supported for video generation")}}function w(a,b){if(!b)return a;let c=new Headers(a.headers);return c.set("x-miaw-connection-id",String(b)),new Response(a.body,{status:a.status,headers:c})}async function x(a,b){let c=await t(a);if(c)return c;let f=await (0,e.mt)(),i=await u(a);if(i.error)return i.error;let j=await v(i.parsed);if(j.error)return j.error;let{provider:k,model:l}=j,m=(0,p.z$)({provider:k,settings:f});if(m?.block)return r.warn("PRIVACY",`privacy (${f.privacyMode||"normal"}): provider "${k}" is blocked`),(0,g.yj)(m.status,m.message);let x=i.raw;i.parsed&&l&&i.parsed.model!==l&&(x=JSON.stringify({...i.parsed,model:l}));let y=a.headers.get("x-connection-id")||null,z=a.headers.get("idempotency-key")||null,A=new Set,B=null,C=null;for(;;){let c=await (0,d.c1)(k,A,l,{preferredConnectionId:y});if(!c||c.allRateLimited){if(c?.allRateLimited){let a=B||c.lastError||"Unavailable",b=C||Number(c.lastErrorCode)||h.gx.SERVICE_UNAVAILABLE;return(0,g.wO)(b,`[${k}/${l||"video"}] ${a}`,c.retryAfter,c.retryAfterHuman)}if(0===A.size)return(0,g.yj)(h.gx.BAD_REQUEST,`No credentials for provider: ${k}`);return(0,g.yj)(C||h.gx.SERVICE_UNAVAILABLE,B||"All accounts unavailable")}let e=(0,p.z$)({provider:k,credentials:c,settings:f});if(e?.skip){if(e.bail)return r.warn("PRIVACY",`local-only: provider "${k}" has no local (self-hosted) connection`),(0,g.yj)(e.status,e.message);r.warn("PRIVACY",`local-only: skipping non-local account for ${k} (${c.connectionName||c.connectionId})`),A.add(c.connectionId),B=B||e.message,C=C||e.status;continue}let j=await (0,q.checkAndRefreshToken)(k,c),m=await o({provider:k,action:b,rawBody:x,contentType:i.contentType||null,idempotencyKey:z,credentials:j,signal:a.signal,log:r,onCredentialsRefreshed:async a=>{await (0,q.vN)(c.connectionId,{accessToken:a.accessToken,refreshToken:a.refreshToken,providerSpecificData:a.providerSpecificData,testStatus:"active"})}});if(m.success)return await (0,d.Pt)(c.connectionId,c,l),r.info("VIDEO",`${k.toUpperCase()} | ${b} accepted (connection ${c.connectionId})`),w(m.response,c.connectionId);let{shouldFallback:t}=await (0,d.vk)(c.connectionId,m.status,n(m.error,j),k,l);if(t&&s.has(m.status)){A.add(c.connectionId),B=m.error,C=m.status;continue}return m.response}}async function y(a,b){let c=await t(a);if(c)return c;let f=await (0,e.mt)();if(!b)return(0,g.yj)(h.gx.BAD_REQUEST,"Missing video request id");let i=a.headers.get("x-connection-id")||null,j=(0,p.z$)({provider:"xai",settings:f});if(j?.block)return r.warn("PRIVACY",`privacy (${f.privacyMode||"normal"}): provider "xai" is blocked`),(0,g.yj)(j.status,j.message);let k=await (0,d.c1)("xai",null,null,{preferredConnectionId:i});if(!k||k.allRateLimited)return(0,g.yj)(h.gx.BAD_REQUEST,"No credentials for provider: xai");let l=(0,p.z$)({provider:"xai",credentials:k,settings:f});if(l?.skip)return r.warn("PRIVACY",'local-only: provider "xai" has no local (self-hosted) connection'),(0,g.yj)(l.status,l.message);let m=await (0,q.checkAndRefreshToken)("xai",k),s=await o({provider:"xai",requestId:b,credentials:m,signal:a.signal,log:r,onCredentialsRefreshed:async a=>{await (0,q.vN)(k.connectionId,{accessToken:a.accessToken,refreshToken:a.refreshToken,providerSpecificData:a.providerSpecificData,testStatus:"active"})}});return s.success?(await (0,d.Pt)(k.connectionId,k,null),w(s.response,k.connectionId)):(await (0,d.vk)(k.connectionId,s.status,n(s.error,m),"xai",null),s.response)}},24467:(a,b,c)=>{"use strict";c.d(b,{B3:()=>p,C5:()=>o,a9:()=>j,k3:()=>m,qY:()=>l,w3:()=>n});let d="closed",e="open",f="half_open",g=new Map;function h(a,b){return`${a}:${b}`}function i(a){let b=g.get(a);if(!b){b={state:d,failures:[],openedAt:null,probeInFlight:!1,probeAt:0,lastTouch:Date.now()},g.set(a,b);var c=b.lastTouch;if(!(g.size<=5e3))for(let[a,b]of g){if(g.size<=5e3)break;b.state===d&&0===b.failures.length&&!b.probeInFlight&&c-b.lastTouch>6e5&&g.delete(a)}}return b}function j(){let a=Date.now(),b=[];for(let[c,d]of g)k(d,a),b.push({key:c,state:d.state,failures:d.failures.length,openedAt:d.openedAt,probeInFlight:d.probeInFlight});return b}function k(a,b){a.state===e&&b-a.openedAt>=3e4&&(a.state=f,a.openedAt=null,a.probeInFlight=!1,a.probeAt=0),a.state===f&&a.probeInFlight&&b-a.probeAt>6e4&&(a.probeInFlight=!1)}function l(a,b){if(!a||!b)return!1;let c=i(h(a,b));return k(c,Date.now()),c.lastTouch=Date.now(),c.state===e||c.state===f&&c.probeInFlight}function m(a,b){if(!a||!b)return;let c=i(h(a,b));k(c,Date.now()),c.lastTouch=Date.now(),c.state!==f||c.probeInFlight||(c.probeInFlight=!0,c.probeAt=Date.now())}function n(a,b){if(!a||!b)return;let c=i(h(a,b));k(c,Date.now()),c.lastTouch=Date.now(),c.probeInFlight=!1}function o(a,b){if(!a||!b)return;let c=i(h(a,b)),d=Date.now();if(c.lastTouch=d,c.probeInFlight=!1,c.state!==e){if(c.state===f){c.state=e,c.openedAt=d,c.failures=[];return}c.failures.push(d),c.failures=c.failures.filter(a=>d-a<6e4),c.failures.length>=5&&(c.state=e,c.openedAt=d,c.failures=[])}}function p(a,b){if(!a||!b)return;let c=i(h(a,b));c.lastTouch=Date.now(),c.probeInFlight=!1,c.failures=[],c.state===f&&(c.state=d)}},35024:(a,b,c)=>{"use strict";c.d(b,{Ak:()=>e,Yg:()=>h,sr:()=>d.sr,xq:()=>d.xq});var d=c(26070);function e(a){return(a?.providerSpecificData?.baseUrl?.trim()||"http://localhost:11434").replace(/\/$/,"")}let f=d.xq["xiaomi-tokenplan"]?.regions||{},g=d.xq["xiaomi-tokenplan"]?.defaultRegion;function h(a){return f[a?.providerSpecificData?.region]||f[g]}},38775:(a,b,c)=>{"use strict";c.d(b,{d_:()=>j,mA:()=>i});var d=c(89718),e=c(40669),f=c(86664);let g={xmtp:"xiaomi-tokenplan","xiaomi-tokenplan":"xiaomi-tokenplan"},h=new Set(Object.keys(g));for(let a of f.A)for(let b of(h.add(a.id),a.alias&&h.add(a.alias),a.aliases||[]))h.add(b);async function i(a){let b,c=(b=(0,e.Xh)(a),b?.providerAlias&&g[b.providerAlias]?{...b,provider:g[b.providerAlias]}:b);if(!c.isAlias){if(!h.has(c.providerAlias)){let a=(await (0,d.Fh)({type:"openai-compatible"})).find(a=>a.prefix===c.providerAlias);if(a)return{provider:a.id,model:c.model};let b=(await (0,d.Fh)({type:"anthropic-compatible"})).find(a=>a.prefix===c.providerAlias);if(b)return{provider:b.id,model:c.model};let e=(await (0,d.Fh)({type:"custom-embedding"})).find(a=>a.prefix===c.providerAlias);if(e)return{provider:e.id,model:c.model}}return{provider:c.provider,model:c.model}}return await (0,d.Dj)(c.model)?{provider:null,model:c.model}:(0,e.js)(a,d.OM)}async function j(a){if(a.includes("/"))return null;let b=await (0,d.Dj)(a);return b&&b.models&&b.models.length>0?b.models:null}},39006:a=>{"use strict";a.exports={rE:"1.2.3"}},40669:(a,b,c)=>{"use strict";c.d(b,{Xh:()=>g,js:()=>i});var d=c(86664);let e={el:"elevenlabs",jina:"jina-ai","jina-ai":"jina-ai",polly:"aws-polly","aws-polly":"aws-polly"};for(let a of d.A)for(let b of(e[a.id]=a.id,a.alias&&(e[a.alias]=a.id),a.aliases||[]))e[b]=a.id;let f={"grok-build":"gcli/grok-build"};function g(a){if(!a)return{provider:null,model:null,isAlias:!1,providerAlias:null};let b=a.replace(/^(miawrouter|miawcode)\//i,"");if(b.includes("/")){let a=b.indexOf("/"),c=b.slice(0,a),d=b.slice(a+1);return{provider:e[c]||c,model:d,isAlias:!1,providerAlias:c}}return{provider:null,model:b,isAlias:!0,providerAlias:null}}function h(a,b){var c,d;if(!b)return null;let f=b[a];if(!f)return null;if("string"==typeof f&&f.includes("/")){let a=f.indexOf("/");return{provider:e[c=f.slice(0,a)]||c,model:f.slice(a+1)}}return"object"==typeof f&&f.provider&&f.model?{provider:e[d=f.provider]||d,model:f.model}:null}async function i(a,b){let c=g(a);if(!c.isAlias)return{provider:c.provider,model:c.model};let d="function"==typeof b?await b():b,e=h(c.model,d)||h(c.model,f);return e||{provider:function(a){if(!a)return"openai";let b=a.toLowerCase();return j.find(([a])=>a.test(b))?.[1]||"openai"}(c.model),model:c.model}}let j=[[/^claude-/,"anthropic"],[/^gemini-/,"gemini"],[/^gpt-/,"openai"],[/^o[134]/,"openai"],[/^deepseek-/,"openrouter"]]},43659:(a,b,c)=>{"use strict";c.d(b,{A1:()=>p,lR:()=>r,wO:()=>q,yj:()=>n,zL:()=>o});var d=c(3662);let e=[[/\b(?:sk|pk|rk)-[A-Za-z0-9_-]{12,}/g,"[redacted]"],[/\bAIza[A-Za-z0-9_-]{20,}/g,"[redacted]"],[/\beyJ[A-Za-z0-9_-]{8,}\.[A-Za-z0-9_-]{8,}\.[A-Za-z0-9_-]{8,}/g,"[redacted]"],[/\bxox[baprs]-[A-Za-z0-9-]{8,}/g,"[redacted]"],[/\bBearer\s+[A-Za-z0-9._~+/-]{16,}=*/gi,"Bearer [redacted]"],[/((?:api[-_]?key|apikey|access[-_]?token|refresh[-_]?token|id[-_]?token|client[-_]?secret|authorization|password)["']?\s*[:=]\s*["']?)[^\s"',;}]{12,}/gi,"$1[redacted]"]];function f(a){if("string"!=typeof a||0===a.length)return a;let b=a;for(let[a,c]of e)b=b.replace(a,c);return b.length>2e3?`${b.slice(0,2e3)}…`:b}let g="quota_error",h="rate_limit_error",i="provider_outage",j="network_error",k="timeout_error",l="router_overloaded",m=new Set([g,h,i,j,k,l]);function n(a,b){let c,e,n;return new Response(JSON.stringify((c=d.LY[a]||(a>=500?{type:"server_error",code:"internal_server_error"}:{type:"invalid_request_error",code:""}),e=f(b)||d.O[a]||"An error occurred",n=function(a,b=""){let c=Number(a)||500,d=String(b).toLowerCase();return 401===c||403===c?"authentication_error":402===c||/quota|billing|insufficient (funds|balance)/.test(d)?g:429===c||/rate limit|too many requests/.test(d)?h:/timeout|timed out|etimedout/.test(d)?k:/econnreset|enotfound|eai_again|socket hang up|fetch failed/.test(d)?j:404===c||/model[_ -]not[_ -]found|no such model/.test(d)?"unsupported_model":406===c||/not supported|unsupported/.test(d)?"unsupported_feature":503===c&&/overload/.test(d)?l:c>=500?i:c>=400?"invalid_request_error":"internal_error"}(a,e),{error:{message:e,type:c.type,code:c.code,category:n,retryable:m.has(n)}})),{status:a,headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}})}async function o(a,b=null){let c="";try{c=await a.text()}catch{c=""}if(b&&"function"==typeof b.parseError)try{let e=b.parseError(a,c);if(e&&"object"==typeof e){let b=e.message||d.O[a.status]||`Upstream error: ${a.status}`;return{statusCode:e.status||a.status,message:f(String(b)),resetsAtMs:e.resetsAtMs}}}catch{}let e="";try{let a=JSON.parse(c);e=a.error?.message||a.message||a.error||c}catch{e=c}let g=("string"==typeof e?e:JSON.stringify(e))||d.O[a.status]||`Upstream error: ${a.status}`;return{statusCode:a.status,message:f(g)}}function p(a,b,c){return{success:!1,status:a,error:b,resetsAtMs:c,response:n(a,b)}}function q(a,b,c,d){let e=Math.max(Math.ceil((new Date(c).getTime()-Date.now())/1e3),1);return new Response(JSON.stringify({error:{message:`${b} (${d})`}}),{status:a,headers:{"Content-Type":"application/json","Retry-After":String(e)}})}function r(a,b,c,d){let e=d||a.code||"FETCH_FAILED",g=a.message||"Unknown error",h=a.cause?.code,i=a.cause?.message,j=h||i?` (cause: ${[h,i].filter(Boolean).join(": ")})`:"";return f(`[${e}]: ${g}${j}`)}},50122:(a,b,c)=>{"use strict";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()}},69093:(a,b,c)=>{"use strict";c.d(b,{B1:()=>h,GC:()=>j,GV:()=>l,MN:()=>e,Ru:()=>f,kc:()=>m,mb:()=>k,t0:()=>i});var d=c(94735);let e=Object.freeze({STATS_UPDATE:"stats:update",STATS_PENDING:"stats:pending",CONSOLE_LINES:"console:lines",CONSOLE_CLEAR:"console:clear",CACHE_PROBE:"cache:probe",CACHE_STATS_UPDATE:"cache:stats:update",TOKEN_SAVER:"token-saver:event"}),f=Object.freeze({STATS:"stats",CONSOLE:"console",CACHE:"cache",SAVER:"saver"});global._miawrouterEventBus||(global._miawrouterEventBus=new d.EventEmitter,global._miawrouterEventBus.setMaxListeners(50));let g=global._miawrouterEventBus;function h(a,b){return g.listenerCount(a)>=50?(console.warn(`[eventBus] listener cap (50) reached for "${a}" — dropping new subscriber`),()=>{}):(g.listeners(a).includes(b)||g.on(a,b),()=>g.off(a,b))}function i(a){g.emit(`stats:${a}`)}function j(a){g.emit(e.CONSOLE_LINES,a)}function k(){g.emit(e.CONSOLE_CLEAR)}function l(a){g.emit(e.CACHE_PROBE,a),c.e(2253).then(c.bind(c,32253)).then(async({buildCacheEventMetricRows:b,saveMetrics:c})=>{let d=b(a);d.length&&await c(d)&&g.emit(e.CACHE_STATS_UPDATE)}).catch(()=>{})}function m(a){g.emit(e.TOKEN_SAVER,a)}},78335:()=>{},87687:(a,b,c)=>{"use strict";c.d(b,{Cw:()=>l,Mr:()=>i,QR:()=>g,fo:()=>h,z$:()=>n});var d=c(41004);let e={cacheL1:!0,cacheL2:!0,cacheL3:!0,bodyLogging:!0,headroom:!0,pxpipe:!0,aiMemory:!0,blockProviders:[]},f={normal:{...e},"private-cache":{...e,bodyLogging:!1,headroom:!1,pxpipe:!1,aiMemory:!1},"private-no-cache":{cacheL1:!1,cacheL2:!1,cacheL3:!1,bodyLogging:!1,headroom:!1,pxpipe:!1,aiMemory:!1,blockProviders:[]},strict:{cacheL1:!1,cacheL2:!1,cacheL3:!1,bodyLogging:!1,headroom:!1,pxpipe:!1,aiMemory:!1,blockProviders:[]},"local-only":{cacheL1:!1,cacheL2:!1,cacheL3:!1,bodyLogging:!1,headroom:!1,pxpipe:!1,aiMemory:!1,blockProviders:[]}};function g(a){let b=f[a?.privacyMode||"normal"]||f.normal;return{...b,blockProviders:[...b.blockProviders,...a?.privacyBlockedProviders||[]]}}function h(a,b){if(!a||!b)return!1;let c=b.blockProviders||b;if(!Array.isArray(c))return!1;let d=(a.id||a.name||a).toString().toLowerCase();return c.some(a=>a.toLowerCase()===d)}function i(a){var b;let c=a?.privacyMode||"normal",d=g(a),e="private-cache"!==c||!!(b=a?.semanticCacheModel)&&"string"==typeof b&&m.test(b);return{mode:c,blockProviders:d.blockProviders,cacheL1Enabled:!!d.cacheL1&&a?.cacheL1Enabled!==!1,cacheL2Enabled:!!d.cacheL2&&a?.cacheL2Enabled===!0&&e,cacheL3Enabled:!!d.cacheL3&&a?.cacheL3Enabled===!0,headroomEnabled:!!d.headroom&&a?.headroomEnabled===!0,pxpipeEnabled:!!d.pxpipe&&a?.pxpipeEnabled===!0,bodyLoggingEnabled:!!d.bodyLogging,aiMemoryEnabled:!!d.aiMemory&&a?.aiMemoryEnabled!==!1}}let j=/^(localhost|127\.\d{1,3}\.\d{1,3}\.\d{1,3}|0\.0\.0\.0|\[::1\]|::1|.*\.local|.*\.internal)$/i,k=/^(10\.\d{1,3}\.\d{1,3}\.\d{1,3}|172\.(1[6-9]|2\d|3[01])\.\d{1,3}\.\d{1,3}|192\.168\.\d{1,3}\.\d{1,3})$/i;function l(a){let b,c=a?.baseUrl||a?.providerSpecificData?.baseUrl;if(!c)return!1;try{b=new URL(c).hostname}catch{return!1}return!!b&&(j.test(b)||k.test(b))}let m=/^(ollama|llama\.cpp|vllm|whisper|koka|local|localhost|127\.\d|10\.\d|172\.(1[6-9]|2\d|3[01])\.|192\.168\.)/i;function n({provider:a,credentials:b,settings:c}){let e=c?.privacyMode||"normal";return"strict"!==e&&"local-only"!==e?null:h(a,g(c))?{block:!0,status:d.gx.FORBIDDEN,message:`Provider "${a}" is blocked by privacy settings (${e})`}:"local-only"===e&&b&&!l(b)?{skip:!0,bail:!b.connectionId,status:d.gx.SERVICE_UNAVAILABLE,message:`local-only: provider "${a}" has no local connection`}:null}},89718:(a,b,c)=>{"use strict";c.d(b,{$k:()=>d.$k,B6:()=>d.B6,CG:()=>d.CG,Dj:()=>d.Dj,Fh:()=>d.Fh,G$:()=>d.G$,Ge:()=>d.Ge,Iq:()=>d.Iq,K1:()=>d.K1,KJ:()=>d.KJ,L:()=>d.L,L9:()=>d.L9,Lh:()=>d.Lh,Mc:()=>d.Mc,O0:()=>d.O0,OB:()=>d.OB,OM:()=>d.OM,PX:()=>d.PX,Pc:()=>d.Pc,Q_:()=>d.Q_,Qu:()=>d.Qu,S8:()=>d.S8,Uv:()=>d.Uv,VT:()=>d.VT,XW:()=>d.XW,Xx:()=>d.Xx,Xz:()=>d.Xz,Yd:()=>d.Yd,ZO:()=>d.ZO,bI:()=>d.bI,c:()=>d.c,ek:()=>d.ek,fK:()=>d.fK,fv:()=>d.fv,getProviderConnections:()=>d.P,ho:()=>d.ho,hr:()=>d.hr,i0:()=>d.i0,iE:()=>d.iE,iT:()=>d.iT,jd:()=>d.jd,ju:()=>d.ju,mt:()=>d.mt,o5:()=>d.o5,oG:()=>d.oG,op:()=>d.op,r4:()=>d.r4,uL:()=>d.uL,ui:()=>d.ui,updateProviderConnection:()=>d.rj,uv:()=>d.uv,yF:()=>d.yF,yg:()=>d.yg,zP:()=>d.zP});var d=c(8827)},92280:(a,b,c)=>{"use strict";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)=>{"use strict";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)}},96487:()=>{}};
1
+ exports.id=2974,exports.ids=[2495,2974,4467],exports.modules={19225:(a,b,c)=>{"use strict";a.exports=c(44870)},20669:(a,b,c)=>{"use strict";c.d(b,{g:()=>x,s:()=>y});var d=c(80238),e=c(89718),f=c(38775),g=c(43659),h=c(41004),i=c(8521),j=c(26070);let k=Number(process.env.VIDEO_FETCH_TIMEOUT_MS||12e4),l=new Set(["generations","edits","extensions"]);function m(a){return j.B$[a]?.videoConfig||null}function n(a,b=null){if(!a)return a;let c=String(a).replace(/Bearer\s+[A-Za-z0-9._~+/=-]{8,}/gi,"Bearer [redacted]");for(let a of["accessToken","refreshToken","apiKey"]){let d=b?.[a];"string"==typeof d&&d.length>=8&&(c=c.split(d).join("[redacted]"))}return c}async function o({provider:a,action:b=null,requestId:c=null,rawBody:d=null,contentType:e=null,idempotencyKey:f=null,credentials:j,signal:p,timeoutMs:q=k,log:r,onCredentialsRefreshed:s}){let t,u,v,w=m(a);if(!w)return(0,g.A1)(h.gx.BAD_REQUEST,`Provider '${a}' does not support video generation`);if(!c&&!l.has(b))return(0,g.A1)(h.gx.BAD_REQUEST,`Unknown video action: ${b}`);let x=c?"GET":"POST",y=(u=w.baseUrl.replace(/\/$/,""),c?`${u}/${encodeURIComponent(c)}`:`${u}/${b}`),z=(v="function"==typeof AbortSignal?.timeout?AbortSignal.timeout(q):null,p&&v&&"function"==typeof AbortSignal.any?AbortSignal.any([p,v]):p||v||void 0),A=a=>fetch(y,{method:x,headers:function({token:a,contentType:b,idempotencyKey:c}){let d={Accept:"application/json"};return a&&(d.Authorization=`Bearer ${a}`),b&&(d["Content-Type"]=b),c&&(d["Idempotency-Key"]=c),d}({token:a,contentType:"POST"===x?e:null,idempotencyKey:"POST"===x?f:null}),body:"POST"===x?d:void 0,signal:z});try{t=await A(j?.accessToken||j?.apiKey)}catch(b){if(b?.name==="AbortError"||b?.name==="TimeoutError")return(0,g.A1)(h.gx.REQUEST_TIMEOUT,`[${a}] video ${x} aborted: ${b.message}`);return(0,g.A1)(h.gx.BAD_GATEWAY,n(`[${a}] video upstream fetch failed: ${b.message}`,j))}if((t.status===h.gx.UNAUTHORIZED||t.status===h.gx.FORBIDDEN)&&j?.refreshToken){let b=null;try{b=await (0,i.$B)(a,j,r)}catch(b){r?.warn?.("TOKEN",`${a} | video refresh error: ${n(b.message,j)}`)}if(b?.accessToken){r?.info?.("TOKEN",`${a.toUpperCase()} | refreshed for video ${x}`),Object.assign(j,b),s&&await s(b);try{await t.body?.cancel?.()}catch{}try{t=await A(j.accessToken||j.apiKey)}catch(b){return(0,g.A1)(h.gx.BAD_GATEWAY,n(`[${a}] video retry after refresh failed: ${b.message}`,j))}}else r?.warn?.("TOKEN",`${a.toUpperCase()} | video refresh failed — account needs re-auth`)}let B=await t.text().catch(()=>"");if(!t.ok){let b=n(B||`HTTP ${t.status}`,j);return(0,g.A1)(t.status,`[${a}] ${b.slice(0,2e3)}`)}return{success:!0,response:new Response(B,{status:t.status,headers:{"Content-Type":t.headers.get("content-type")||"application/json","Access-Control-Allow-Origin":"*"}})}}var p=c(87687),q=c(67828),r=c(7803);let s=new Set([h.gx.UNAUTHORIZED,h.gx.FORBIDDEN,h.gx.RATE_LIMITED]);async function t(a){let b=(0,d.Tr)(a);if((await (0,e.mt)()).requireApiKey){if(!b)return(0,g.yj)(h.gx.UNAUTHORIZED,"Missing API key");if(!await (0,d.kI)(b))return(0,g.yj)(h.gx.UNAUTHORIZED,"Invalid API key")}return null}async function u(a){let b=a.headers.get("content-type")||"";if(b.includes("application/json")){let c,d=await a.text();try{c=JSON.parse(d)}catch{return{error:(0,g.yj)(h.gx.BAD_REQUEST,"Invalid JSON body")}}return{raw:d,parsed:c,contentType:b}}return{raw:Buffer.from(await a.arrayBuffer()),parsed:null,contentType:b}}async function v(a){if(!a?.model)return{provider:"xai",model:null};let b=String(a.model),c=await (0,f.mA)(b);return c.provider?m(c.provider)?{provider:c.provider,model:c.model}:b.includes("/")?{error:(0,g.yj)(h.gx.BAD_REQUEST,`Provider '${c.provider}' does not support video generation`)}:{provider:"xai",model:b}:{error:(0,g.yj)(h.gx.BAD_REQUEST,"Combos are not supported for video generation")}}function w(a,b){if(!b)return a;let c=new Headers(a.headers);return c.set("x-miaw-connection-id",String(b)),new Response(a.body,{status:a.status,headers:c})}async function x(a,b){let c=await t(a);if(c)return c;let f=await (0,e.mt)(),i=await u(a);if(i.error)return i.error;let j=await v(i.parsed);if(j.error)return j.error;let{provider:k,model:l}=j,m=(0,p.z$)({provider:k,settings:f});if(m?.block)return r.warn("PRIVACY",`privacy (${f.privacyMode||"normal"}): provider "${k}" is blocked`),(0,g.yj)(m.status,m.message);let x=i.raw;i.parsed&&l&&i.parsed.model!==l&&(x=JSON.stringify({...i.parsed,model:l}));let y=a.headers.get("x-connection-id")||null,z=a.headers.get("idempotency-key")||null,A=new Set,B=null,C=null;for(;;){let c=await (0,d.c1)(k,A,l,{preferredConnectionId:y});if(!c||c.allRateLimited){if(c?.allRateLimited){let a=B||c.lastError||"Unavailable",b=C||Number(c.lastErrorCode)||h.gx.SERVICE_UNAVAILABLE;return(0,g.wO)(b,`[${k}/${l||"video"}] ${a}`,c.retryAfter,c.retryAfterHuman)}if(0===A.size)return(0,g.yj)(h.gx.BAD_REQUEST,`No credentials for provider: ${k}`);return(0,g.yj)(C||h.gx.SERVICE_UNAVAILABLE,B||"All accounts unavailable")}let e=(0,p.z$)({provider:k,credentials:c,settings:f});if(e?.skip){if(e.bail)return r.warn("PRIVACY",`local-only: provider "${k}" has no local (self-hosted) connection`),(0,g.yj)(e.status,e.message);r.warn("PRIVACY",`local-only: skipping non-local account for ${k} (${c.connectionName||c.connectionId})`),A.add(c.connectionId),B=B||e.message,C=C||e.status;continue}let j=await (0,q.checkAndRefreshToken)(k,c),m=await o({provider:k,action:b,rawBody:x,contentType:i.contentType||null,idempotencyKey:z,credentials:j,signal:a.signal,log:r,onCredentialsRefreshed:async a=>{await (0,q.vN)(c.connectionId,{accessToken:a.accessToken,refreshToken:a.refreshToken,providerSpecificData:a.providerSpecificData,testStatus:"active"})}});if(m.success)return await (0,d.Pt)(c.connectionId,c,l),r.info("VIDEO",`${k.toUpperCase()} | ${b} accepted (connection ${c.connectionId})`),w(m.response,c.connectionId);let{shouldFallback:t}=await (0,d.vk)(c.connectionId,m.status,n(m.error,j),k,l);if(t&&s.has(m.status)){A.add(c.connectionId),B=m.error,C=m.status;continue}return m.response}}async function y(a,b){let c=await t(a);if(c)return c;let f=await (0,e.mt)();if(!b)return(0,g.yj)(h.gx.BAD_REQUEST,"Missing video request id");let i=a.headers.get("x-connection-id")||null,j=(0,p.z$)({provider:"xai",settings:f});if(j?.block)return r.warn("PRIVACY",`privacy (${f.privacyMode||"normal"}): provider "xai" is blocked`),(0,g.yj)(j.status,j.message);let k=await (0,d.c1)("xai",null,null,{preferredConnectionId:i});if(!k||k.allRateLimited)return(0,g.yj)(h.gx.BAD_REQUEST,"No credentials for provider: xai");let l=(0,p.z$)({provider:"xai",credentials:k,settings:f});if(l?.skip)return r.warn("PRIVACY",'local-only: provider "xai" has no local (self-hosted) connection'),(0,g.yj)(l.status,l.message);let m=await (0,q.checkAndRefreshToken)("xai",k),s=await o({provider:"xai",requestId:b,credentials:m,signal:a.signal,log:r,onCredentialsRefreshed:async a=>{await (0,q.vN)(k.connectionId,{accessToken:a.accessToken,refreshToken:a.refreshToken,providerSpecificData:a.providerSpecificData,testStatus:"active"})}});return s.success?(await (0,d.Pt)(k.connectionId,k,null),w(s.response,k.connectionId)):(await (0,d.vk)(k.connectionId,s.status,n(s.error,m),"xai",null),s.response)}},24467:(a,b,c)=>{"use strict";c.d(b,{B3:()=>p,C5:()=>o,a9:()=>j,k3:()=>m,qY:()=>l,w3:()=>n});let d="closed",e="open",f="half_open",g=new Map;function h(a,b){return`${a}:${b}`}function i(a){let b=g.get(a);if(!b){b={state:d,failures:[],openedAt:null,probeInFlight:!1,probeAt:0,lastTouch:Date.now()},g.set(a,b);var c=b.lastTouch;if(!(g.size<=5e3))for(let[a,b]of g){if(g.size<=5e3)break;b.state===d&&0===b.failures.length&&!b.probeInFlight&&c-b.lastTouch>6e5&&g.delete(a)}}return b}function j(){let a=Date.now(),b=[];for(let[c,d]of g)k(d,a),b.push({key:c,state:d.state,failures:d.failures.length,openedAt:d.openedAt,probeInFlight:d.probeInFlight});return b}function k(a,b){a.state===e&&b-a.openedAt>=3e4&&(a.state=f,a.openedAt=null,a.probeInFlight=!1,a.probeAt=0),a.state===f&&a.probeInFlight&&b-a.probeAt>6e4&&(a.probeInFlight=!1)}function l(a,b){if(!a||!b)return!1;let c=i(h(a,b));return k(c,Date.now()),c.lastTouch=Date.now(),c.state===e||c.state===f&&c.probeInFlight}function m(a,b){if(!a||!b)return;let c=i(h(a,b));k(c,Date.now()),c.lastTouch=Date.now(),c.state!==f||c.probeInFlight||(c.probeInFlight=!0,c.probeAt=Date.now())}function n(a,b){if(!a||!b)return;let c=i(h(a,b));k(c,Date.now()),c.lastTouch=Date.now(),c.probeInFlight=!1}function o(a,b){if(!a||!b)return;let c=i(h(a,b)),d=Date.now();if(c.lastTouch=d,c.probeInFlight=!1,c.state!==e){if(c.state===f){c.state=e,c.openedAt=d,c.failures=[];return}c.failures.push(d),c.failures=c.failures.filter(a=>d-a<6e4),c.failures.length>=5&&(c.state=e,c.openedAt=d,c.failures=[])}}function p(a,b){if(!a||!b)return;let c=i(h(a,b));c.lastTouch=Date.now(),c.probeInFlight=!1,c.failures=[],c.state===f&&(c.state=d)}},35024:(a,b,c)=>{"use strict";c.d(b,{Ak:()=>e,Yg:()=>h,sr:()=>d.sr,xq:()=>d.xq});var d=c(26070);function e(a){return(a?.providerSpecificData?.baseUrl?.trim()||"http://localhost:11434").replace(/\/$/,"")}let f=d.xq["xiaomi-tokenplan"]?.regions||{},g=d.xq["xiaomi-tokenplan"]?.defaultRegion;function h(a){return f[a?.providerSpecificData?.region]||f[g]}},38775:(a,b,c)=>{"use strict";c.d(b,{d_:()=>j,mA:()=>i});var d=c(89718),e=c(40669),f=c(86664);let g={xmtp:"xiaomi-tokenplan","xiaomi-tokenplan":"xiaomi-tokenplan"},h=new Set(Object.keys(g));for(let a of f.A)for(let b of(h.add(a.id),a.alias&&h.add(a.alias),a.aliases||[]))h.add(b);async function i(a){let b,c=(b=(0,e.Xh)(a),b?.providerAlias&&g[b.providerAlias]?{...b,provider:g[b.providerAlias]}:b);if(!c.isAlias){if(!h.has(c.providerAlias)){let a=(await (0,d.Fh)({type:"openai-compatible"})).find(a=>a.prefix===c.providerAlias);if(a)return{provider:a.id,model:c.model};let b=(await (0,d.Fh)({type:"anthropic-compatible"})).find(a=>a.prefix===c.providerAlias);if(b)return{provider:b.id,model:c.model};let e=(await (0,d.Fh)({type:"custom-embedding"})).find(a=>a.prefix===c.providerAlias);if(e)return{provider:e.id,model:c.model}}return{provider:c.provider,model:c.model}}return await (0,d.Dj)(c.model)?{provider:null,model:c.model}:(0,e.js)(a,d.OM)}async function j(a){if(a.includes("/"))return null;let b=await (0,d.Dj)(a);return b&&b.models&&b.models.length>0?b.models:null}},39006:a=>{"use strict";a.exports={rE:"1.2.4"}},40669:(a,b,c)=>{"use strict";c.d(b,{Xh:()=>g,js:()=>i});var d=c(86664);let e={el:"elevenlabs",jina:"jina-ai","jina-ai":"jina-ai",polly:"aws-polly","aws-polly":"aws-polly"};for(let a of d.A)for(let b of(e[a.id]=a.id,a.alias&&(e[a.alias]=a.id),a.aliases||[]))e[b]=a.id;let f={"grok-build":"gcli/grok-build"};function g(a){if(!a)return{provider:null,model:null,isAlias:!1,providerAlias:null};let b=a.replace(/^(miawrouter|miawcode)\//i,"");if(b.includes("/")){let a=b.indexOf("/"),c=b.slice(0,a),d=b.slice(a+1);return{provider:e[c]||c,model:d,isAlias:!1,providerAlias:c}}return{provider:null,model:b,isAlias:!0,providerAlias:null}}function h(a,b){var c,d;if(!b)return null;let f=b[a];if(!f)return null;if("string"==typeof f&&f.includes("/")){let a=f.indexOf("/");return{provider:e[c=f.slice(0,a)]||c,model:f.slice(a+1)}}return"object"==typeof f&&f.provider&&f.model?{provider:e[d=f.provider]||d,model:f.model}:null}async function i(a,b){let c=g(a);if(!c.isAlias)return{provider:c.provider,model:c.model};let d="function"==typeof b?await b():b,e=h(c.model,d)||h(c.model,f);return e||{provider:function(a){if(!a)return"openai";let b=a.toLowerCase();return j.find(([a])=>a.test(b))?.[1]||"openai"}(c.model),model:c.model}}let j=[[/^claude-/,"anthropic"],[/^gemini-/,"gemini"],[/^gpt-/,"openai"],[/^o[134]/,"openai"],[/^deepseek-/,"openrouter"]]},43659:(a,b,c)=>{"use strict";c.d(b,{A1:()=>p,lR:()=>r,wO:()=>q,yj:()=>n,zL:()=>o});var d=c(3662);let e=[[/\b(?:sk|pk|rk)-[A-Za-z0-9_-]{12,}/g,"[redacted]"],[/\bAIza[A-Za-z0-9_-]{20,}/g,"[redacted]"],[/\beyJ[A-Za-z0-9_-]{8,}\.[A-Za-z0-9_-]{8,}\.[A-Za-z0-9_-]{8,}/g,"[redacted]"],[/\bxox[baprs]-[A-Za-z0-9-]{8,}/g,"[redacted]"],[/\bBearer\s+[A-Za-z0-9._~+/-]{16,}=*/gi,"Bearer [redacted]"],[/((?:api[-_]?key|apikey|access[-_]?token|refresh[-_]?token|id[-_]?token|client[-_]?secret|authorization|password)["']?\s*[:=]\s*["']?)[^\s"',;}]{12,}/gi,"$1[redacted]"]];function f(a){if("string"!=typeof a||0===a.length)return a;let b=a;for(let[a,c]of e)b=b.replace(a,c);return b.length>2e3?`${b.slice(0,2e3)}…`:b}let g="quota_error",h="rate_limit_error",i="provider_outage",j="network_error",k="timeout_error",l="router_overloaded",m=new Set([g,h,i,j,k,l]);function n(a,b){let c,e,n;return new Response(JSON.stringify((c=d.LY[a]||(a>=500?{type:"server_error",code:"internal_server_error"}:{type:"invalid_request_error",code:""}),e=f(b)||d.O[a]||"An error occurred",n=function(a,b=""){let c=Number(a)||500,d=String(b).toLowerCase();return 401===c||403===c?"authentication_error":402===c||/quota|billing|insufficient (funds|balance)/.test(d)?g:429===c||/rate limit|too many requests/.test(d)?h:/timeout|timed out|etimedout/.test(d)?k:/econnreset|enotfound|eai_again|socket hang up|fetch failed/.test(d)?j:404===c||/model[_ -]not[_ -]found|no such model/.test(d)?"unsupported_model":406===c||/not supported|unsupported/.test(d)?"unsupported_feature":503===c&&/overload/.test(d)?l:c>=500?i:c>=400?"invalid_request_error":"internal_error"}(a,e),{error:{message:e,type:c.type,code:c.code,category:n,retryable:m.has(n)}})),{status:a,headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}})}async function o(a,b=null){let c="";try{c=await a.text()}catch{c=""}if(b&&"function"==typeof b.parseError)try{let e=b.parseError(a,c);if(e&&"object"==typeof e){let b=e.message||d.O[a.status]||`Upstream error: ${a.status}`;return{statusCode:e.status||a.status,message:f(String(b)),resetsAtMs:e.resetsAtMs}}}catch{}let e="";try{let a=JSON.parse(c);e=a.error?.message||a.message||a.error||c}catch{e=c}let g=("string"==typeof e?e:JSON.stringify(e))||d.O[a.status]||`Upstream error: ${a.status}`;return{statusCode:a.status,message:f(g)}}function p(a,b,c){return{success:!1,status:a,error:b,resetsAtMs:c,response:n(a,b)}}function q(a,b,c,d){let e=Math.max(Math.ceil((new Date(c).getTime()-Date.now())/1e3),1);return new Response(JSON.stringify({error:{message:`${b} (${d})`}}),{status:a,headers:{"Content-Type":"application/json","Retry-After":String(e)}})}function r(a,b,c,d){let e=d||a.code||"FETCH_FAILED",g=a.message||"Unknown error",h=a.cause?.code,i=a.cause?.message,j=h||i?` (cause: ${[h,i].filter(Boolean).join(": ")})`:"";return f(`[${e}]: ${g}${j}`)}},50122:(a,b,c)=>{"use strict";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()}},69093:(a,b,c)=>{"use strict";c.d(b,{B1:()=>h,GC:()=>j,GV:()=>l,MN:()=>e,Ru:()=>f,kc:()=>m,mb:()=>k,t0:()=>i});var d=c(94735);let e=Object.freeze({STATS_UPDATE:"stats:update",STATS_PENDING:"stats:pending",CONSOLE_LINES:"console:lines",CONSOLE_CLEAR:"console:clear",CACHE_PROBE:"cache:probe",CACHE_STATS_UPDATE:"cache:stats:update",TOKEN_SAVER:"token-saver:event"}),f=Object.freeze({STATS:"stats",CONSOLE:"console",CACHE:"cache",SAVER:"saver"});global._miawrouterEventBus||(global._miawrouterEventBus=new d.EventEmitter,global._miawrouterEventBus.setMaxListeners(50));let g=global._miawrouterEventBus;function h(a,b){return g.listenerCount(a)>=50?(console.warn(`[eventBus] listener cap (50) reached for "${a}" — dropping new subscriber`),()=>{}):(g.listeners(a).includes(b)||g.on(a,b),()=>g.off(a,b))}function i(a){g.emit(`stats:${a}`)}function j(a){g.emit(e.CONSOLE_LINES,a)}function k(){g.emit(e.CONSOLE_CLEAR)}function l(a){g.emit(e.CACHE_PROBE,a),c.e(2253).then(c.bind(c,32253)).then(async({buildCacheEventMetricRows:b,saveMetrics:c})=>{let d=b(a);d.length&&await c(d)&&g.emit(e.CACHE_STATS_UPDATE)}).catch(()=>{})}function m(a){g.emit(e.TOKEN_SAVER,a)}},78335:()=>{},87687:(a,b,c)=>{"use strict";c.d(b,{Cw:()=>l,Mr:()=>i,QR:()=>g,fo:()=>h,z$:()=>n});var d=c(41004);let e={cacheL1:!0,cacheL2:!0,cacheL3:!0,bodyLogging:!0,headroom:!0,pxpipe:!0,aiMemory:!0,blockProviders:[]},f={normal:{...e},"private-cache":{...e,bodyLogging:!1,headroom:!1,pxpipe:!1,aiMemory:!1},"private-no-cache":{cacheL1:!1,cacheL2:!1,cacheL3:!1,bodyLogging:!1,headroom:!1,pxpipe:!1,aiMemory:!1,blockProviders:[]},strict:{cacheL1:!1,cacheL2:!1,cacheL3:!1,bodyLogging:!1,headroom:!1,pxpipe:!1,aiMemory:!1,blockProviders:[]},"local-only":{cacheL1:!1,cacheL2:!1,cacheL3:!1,bodyLogging:!1,headroom:!1,pxpipe:!1,aiMemory:!1,blockProviders:[]}};function g(a){let b=f[a?.privacyMode||"normal"]||f.normal;return{...b,blockProviders:[...b.blockProviders,...a?.privacyBlockedProviders||[]]}}function h(a,b){if(!a||!b)return!1;let c=b.blockProviders||b;if(!Array.isArray(c))return!1;let d=(a.id||a.name||a).toString().toLowerCase();return c.some(a=>a.toLowerCase()===d)}function i(a){var b;let c=a?.privacyMode||"normal",d=g(a),e="private-cache"!==c||!!(b=a?.semanticCacheModel)&&"string"==typeof b&&m.test(b);return{mode:c,blockProviders:d.blockProviders,cacheL1Enabled:!!d.cacheL1&&a?.cacheL1Enabled!==!1,cacheL2Enabled:!!d.cacheL2&&a?.cacheL2Enabled===!0&&e,cacheL3Enabled:!!d.cacheL3&&a?.cacheL3Enabled===!0,headroomEnabled:!!d.headroom&&a?.headroomEnabled===!0,pxpipeEnabled:!!d.pxpipe&&a?.pxpipeEnabled===!0,bodyLoggingEnabled:!!d.bodyLogging,aiMemoryEnabled:!!d.aiMemory&&a?.aiMemoryEnabled!==!1}}let j=/^(localhost|127\.\d{1,3}\.\d{1,3}\.\d{1,3}|0\.0\.0\.0|\[::1\]|::1|.*\.local|.*\.internal)$/i,k=/^(10\.\d{1,3}\.\d{1,3}\.\d{1,3}|172\.(1[6-9]|2\d|3[01])\.\d{1,3}\.\d{1,3}|192\.168\.\d{1,3}\.\d{1,3})$/i;function l(a){let b,c=a?.baseUrl||a?.providerSpecificData?.baseUrl;if(!c)return!1;try{b=new URL(c).hostname}catch{return!1}return!!b&&(j.test(b)||k.test(b))}let m=/^(ollama|llama\.cpp|vllm|whisper|koka|local|localhost|127\.\d|10\.\d|172\.(1[6-9]|2\d|3[01])\.|192\.168\.)/i;function n({provider:a,credentials:b,settings:c}){let e=c?.privacyMode||"normal";return"strict"!==e&&"local-only"!==e?null:h(a,g(c))?{block:!0,status:d.gx.FORBIDDEN,message:`Provider "${a}" is blocked by privacy settings (${e})`}:"local-only"===e&&b&&!l(b)?{skip:!0,bail:!b.connectionId,status:d.gx.SERVICE_UNAVAILABLE,message:`local-only: provider "${a}" has no local connection`}:null}},89718:(a,b,c)=>{"use strict";c.d(b,{$k:()=>d.$k,B6:()=>d.B6,CG:()=>d.CG,Dj:()=>d.Dj,Fh:()=>d.Fh,G$:()=>d.G$,Ge:()=>d.Ge,Iq:()=>d.Iq,K1:()=>d.K1,KJ:()=>d.KJ,L:()=>d.L,L9:()=>d.L9,Lh:()=>d.Lh,Mc:()=>d.Mc,O0:()=>d.O0,OB:()=>d.OB,OM:()=>d.OM,PX:()=>d.PX,Pc:()=>d.Pc,Q_:()=>d.Q_,Qu:()=>d.Qu,S8:()=>d.S8,Uv:()=>d.Uv,VT:()=>d.VT,XW:()=>d.XW,Xx:()=>d.Xx,Xz:()=>d.Xz,Yd:()=>d.Yd,ZO:()=>d.ZO,bI:()=>d.bI,c:()=>d.c,ek:()=>d.ek,fK:()=>d.fK,fv:()=>d.fv,getProviderConnections:()=>d.P,ho:()=>d.ho,hr:()=>d.hr,i0:()=>d.i0,iE:()=>d.iE,iT:()=>d.iT,jd:()=>d.jd,ju:()=>d.ju,mt:()=>d.mt,o5:()=>d.o5,oG:()=>d.oG,op:()=>d.op,r4:()=>d.r4,uL:()=>d.uL,ui:()=>d.ui,updateProviderConnection:()=>d.rj,uv:()=>d.uv,yF:()=>d.yF,yg:()=>d.yg,zP:()=>d.zP});var d=c(8827)},92280:(a,b,c)=>{"use strict";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)=>{"use strict";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)}},96487:()=>{}};