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=8537,exports.ids=[8537],exports.modules={8803:(a,b,c)=>{c.d(b,{Ve:()=>q,tV:()=>p});var d=c(41004);class e extends Error{constructor(a,b="router_overloaded",c=503){super(a),this.name="ConcurrencyLimitError",this.code=b,this.status=c}}function f(a){let b=Error(a?.message||("string"==typeof a?a:"Request aborted"));return b.name="AbortError",b}let g=0,h=new Map,i=new Map,j=[];function k(a,b){return b&&a.get(b)||0}function l(a,b){b&&a.set(b,(a.get(b)||0)+1)}function m(a,b){if(!b)return;let c=a.get(b)||0;c<=1?a.delete(b):a.set(b,c-1)}function n(a,b){let{globalMax:c,providerMax:e,connectionMax:f}=d.fi;return!(c>0&&g>=c||a&&e>0&&k(h,a)>=e||b&&f>0&&k(i,a?`${a}:${b}`:b)>=f)&&!0}function o(a,b){g++,a&&l(h,a),b&&l(i,a?`${a}:${b}`:b);let c=!1;return function(){c||(c=!0,g=Math.max(0,g-1),a&&m(h,a),b&&m(i,a?`${a}:${b}`:b),function(){for(let a=0;a<j.length;a++){let b=j[a];if(n(b.provider,b.connectionId)){j.splice(a,1),b.grant();break}}}())}}async function p({provider:a,connectionId:b,signal:c}={}){if(c?.aborted)throw f(c.reason);if(n(a,b))return o(a,b);let{queueMax:g,queueTimeoutMs:h}=d.fi;if(g>0&&j.length>=g)throw new e("Inbound concurrency queue is full; router overloaded","router_overloaded",503);return new Promise((d,g)=>{let i=null,k=null,l=()=>{i&&(clearTimeout(i),i=null),c&&k&&(c.removeEventListener("abort",k),k=null)},m=()=>{let a=j.findIndex(a=>a===n);-1!==a&&j.splice(a,1)},n={provider:a,connectionId:b,grant(){l();let e=o(a,b);if(c?.aborted){e(),g(f(c.reason));return}d(e)}};h>0&&(i=setTimeout(()=>{l(),m(),g(new e(`Concurrency slot acquisition timed out after ${h}ms`,"router_overloaded",503))},h)),c&&(k=()=>{l(),m(),g(f(c.reason))},c.addEventListener("abort",k,{once:!0})),j.push(n)})}function q(){let a={};for(let[b,c]of h.entries())a[b]=c;return{active:g,queued:j.length,byProvider:a}}},28537:(a,b,c)=>{c.d(b,{Kt:()=>w,probeKimiWebToken:()=>t});var d=c(74957),e=c(35024),f=c(39609),g=c(78959),h=c(92536);let i=e.xq["kimi-web"].baseUrl,j="REASONING_EFFORT_",k="CONTEXT_LENGTH_",l={k3:{scenario:"SCENARIO_K2D5",supportedReasoningEfforts:["REASONING_EFFORT_NONE","REASONING_EFFORT_LOW"],defaultReasoningEffort:"REASONING_EFFORT_NONE",supportedContextLengths:["CONTEXT_LENGTH_128K"],defaultContextLength:"CONTEXT_LENGTH_128K"},k2d6:{scenario:"SCENARIO_K2D5",supportedReasoningEfforts:["REASONING_EFFORT_NONE","REASONING_EFFORT_LOW"],defaultReasoningEffort:"REASONING_EFFORT_NONE",supportedContextLengths:["CONTEXT_LENGTH_128K"],defaultContextLength:"CONTEXT_LENGTH_128K"}};function m(a){let b=String(a??"").trim();if(!b)return"";let c=b.match(/^(?:authorization:\s*)?bearer\s+([^;\s]+)/i);if(c)return c[1];let d=b.replace(/^bearer\s+/i,"").replace(/^cookie:/i,"").trim();for(let a of["access_token","kimi-auth"]){let b=a.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),c=d.match(RegExp(`(?:^|[\\s;])${b}=([^;\\s]+)`));if(c)return c[1]}return d.includes("=")||d.includes(";")?"":d}function n(a){let b=new TextEncoder().encode(a),c=new Uint8Array(5+b.length);c[0]=0;let d=b.length;return c[1]=d>>>24&255,c[2]=d>>>16&255,c[3]=d>>>8&255,c[4]=255&d,c.set(b,5),c}function o(a){if((2&a.flags)==0)return null;let b=a.message?.error;if(!b||"object"!=typeof b||Array.isArray(b))return null;let c="string"==typeof b.code?b.code:"unknown",d="string"==typeof b.message?b.message:"upstream error";return`${c}: ${d}`}function p(a){if(!a)return null;let b=String(a.op??""),c=String(a.mask??""),d=a.block??{};if("append"===b){if("block.text.content"===c){let a=String(d.text?.content??"");return a?{kind:"text",text:a}:null}if("block.think.content"===c){let a=String(d.think?.content??"");return a?{kind:"think",text:a}:null}return null}if("set"===b){if("block.text"===c){let a=String(d.text?.content??"");return a?{kind:"text",text:a}:null}if("block.think"===c){let a=String(d.think?.content??"");return a?{kind:"think",text:a}:null}}return null}function q(a){return"string"==typeof a&&a.trim()?a.trim():void 0}function r(a,b,c){return{response:new Response(JSON.stringify({error:{message:b,type:"invalid_request"}}),{status:a,headers:{"Content-Type":"application/json"}}),url:i,headers:{},transformedBody:c}}function s(a){return{"Content-Type":"application/connect+json",Accept:"*/*","User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36",Origin:"https://www.kimi.com",Referer:"https://www.kimi.com/","connect-protocol-version":"1",Authorization:`Bearer ${a}`}}async function t(a,b=fetch){let c,d=m(String(a??"").trim());if(!d)return{status:0,valid:!1,error:"Missing Kimi access_token — capture access_token from www.kimi.com localStorage."};let e=JSON.stringify({chat_id:"",scenario:"SCENARIO_K2D5",tools:[],message:{id:"",parent_id:"",children_message_ids:[],role:"user",blocks:[],scenario:"SCENARIO_K2D5",labels:[],references:[],is_goal:!1},options:{thinking:!0,enable_plugin:!1},project_id:""});try{c=await b(i,{method:"POST",headers:s(d),body:n(e)})}catch(a){return{status:0,valid:!1,error:`Kimi probe failed: ${a.message||String(a)}`}}return 401===c.status||403===c.status?{status:c.status,valid:!1,error:"Invalid access_token — re-capture from www.kimi.com localStorage."}:{status:c.status,valid:!0,error:null}}async function*u(a,b){let c=a.getReader(),d=new Uint8Array(0);try{for(;;){if(b?.aborted)return;let{value:a,done:e}=await c.read();if(e)break;if(!a)continue;let f=new Uint8Array(d.length+a.length);f.set(d,0),f.set(a,d.length),d=f;let g=0;for(;g<d.length;){let{consumed:a,frame:b}=function(a,b){if(b+5>a.length)return{consumed:0,frame:null};let c=a[b],d=a[b+1]<<24|a[b+2]<<16|a[b+3]<<8|a[b+4],e=d<0?d+0x100000000:d;if(e>8388608)return{consumed:-1,frame:null};if(b+5+e>a.length)return{consumed:0,frame:null};if((-4&c)!=0)throw Error(`Kimi Connect frame used unsupported flags: ${c}`);if((1&c)!=0)throw Error("Kimi Connect compressed frames are not supported");let f=null;if(e>0){let c=a.subarray(b+5,b+5+e);try{f=JSON.parse(new TextDecoder().decode(c))}catch(a){throw Error(`Kimi Connect frame contained invalid JSON: ${a instanceof Error?a.message:"parse failed"}`)}}return{consumed:5+e,frame:{flags:c,message:f}}}(d,g);if(-1===a)throw Error("Kimi Connect frame exceeded MAX_FRAME_LEN");if(0===a)break;g+=a,b&&(yield b)}d=d.subarray(g)}}finally{c.releaseLock()}}async function v(a,b,c,d,e,f){let g="",h="",i=!1;try{for await(let b of u(a,e)){if((2&b.flags)!=0){let a=o(b);if(a)throw Error(`Kimi Connect EndStream error: ${a}`);i=!0;break}if(!b.message)continue;let a=p(b.message);a&&("think"===a.kind?h+=a.text:g+=a.text)}if(!i)throw Error("Kimi Connect stream ended without a successful EndStream frame")}catch(a){return{error:a instanceof Error?a.message:String(a)}}let j={role:"assistant",content:g};h&&(j.reasoning_content=h);let k=Math.max(1,Math.ceil(f/4)),l=Math.ceil(g.length/4);return{id:c,object:"chat.completion",created:d,model:b,choices:[{index:0,message:j,finish_reason:"stop"}],usage:{prompt_tokens:k,completion_tokens:l,total_tokens:k+l}}}class w extends d.H{constructor(){super("kimi-web",e.xq["kimi-web"])}async execute({model:a,body:b,stream:c,credentials:d,signal:e,log:t,proxyOptions:w}){let x,y,z,A,B=b||{},C=m(String(d?.accessToken||d?.apiKey||"").trim());if(!C)return r(400,"Missing Kimi access_token — log in at www.kimi.com and capture access_token from localStorage.",b);let D=String(a||B.model||""),E=l[D];if(!E)return r(400,`Unsupported Kimi Web model: ${D}`,b);let F=B.tools,G=B.functions;if(null!=F&&(!Array.isArray(F)||F.length>0))return r(400,"Kimi Web does not support OpenAI function tools",b);if(null!=G&&(!Array.isArray(G)||G.length>0))return r(400,"Kimi Web does not support legacy function tools",b);try{let a=Array.isArray(B.messages)?B.messages:[];if(!(x=function(a){let b=[],c=[];for(let d of a){if("tool"===d.role||"function"===d.role)throw Error("Kimi Web does not support tool result messages");if(void 0!==d.tool_calls)throw Error("Kimi Web does not support assistant tool calls");let a=function(a){if("string"==typeof a)return a;if(!Array.isArray(a))throw Error("Kimi Web only supports text message content");return a.map(a=>{if(!a||"object"!=typeof a||Array.isArray(a))throw Error("Kimi Web only supports text message content");if(("text"===a.type||"input_text"===a.type)&&"string"==typeof a.text)return a.text;throw Error("Kimi Web does not support image, audio, file, or tool content")}).join("")}(d.content);if("system"===d.role||"developer"===d.role)a&&b.push(a);else if("user"===d.role)a&&c.push(c.length>0?`User: ${a}`:a);else if("assistant"===d.role)a&&c.push(`Assistant: ${a}`);else throw Error(`Kimi Web does not support message role ${d.role}`)}return{prompt:c.join("\n\n").trim(),systemPrompt:b.join("\n\n").trim()}}(a)).prompt)throw Error("Kimi Web requires a non-empty user message");y=function(a,b){let c=q(a),d=c?c.startsWith(j)?c.toUpperCase():`${j}${c.toUpperCase()}`:b.defaultReasoningEffort;if(d){if(!b.supportedReasoningEfforts.includes(d))throw Error(`Kimi Web model does not support reasoning_effort=${c||d}`);return d}}(B.reasoning_effort,E),z=function(a,b){let c=q(a),d=c?c.startsWith(k)?c.toUpperCase():`${k}${c.toUpperCase()}`:b.defaultContextLength;if(d){if(!b.supportedContextLengths.includes(d))throw Error(`Kimi Web model does not support context_length=${c||d}`);return d}}(B.context_length,E)}catch(a){return r(400,a instanceof Error?a.message:"Invalid Kimi Web request",b)}let H=JSON.stringify({chat_id:"",scenario:E.scenario,tools:[],message:{id:"",parent_id:"",children_message_ids:[],role:"user",blocks:[{id:"",message_id:"",text:{content:x.prompt}}],scenario:E.scenario,labels:[],references:[],is_goal:!1},options:{thinking:!0,enable_plugin:!1,...x.systemPrompt?{system_prompt:x.systemPrompt}:{},...y?{reasoning_effort:y}:{},...z?{context_length:z}:{}},project_id:""}),I=s(C),J=n(H);try{A=await (0,f.proxyAwareFetch)(i,{method:"POST",headers:I,body:J,signal:e},w)}catch(a){return t?.error?.("KIMI-WEB",`Fetch failed: ${a.message||String(a)}`),r(502,`Kimi connection failed: ${a.message||String(a)}`,b)}if(!A.ok){let a=A.status,b=await A.text().catch(()=>""),c=`Kimi returned HTTP ${a}`;return 401===a||403===a?c="Kimi auth failed — access_token may be expired. Re-capture access_token from www.kimi.com localStorage.":429===a&&(c="Kimi rate limited. Wait a moment and retry."),b.trim()&&(c+=` — ${b.slice(0,300)}`),t?.warn?.("KIMI-WEB",c),{response:new Response(JSON.stringify({error:{message:c,type:"upstream_error",code:`HTTP_${a}`}}),{status:a,headers:{"Content-Type":"application/json"}}),url:i,headers:I,transformedBody:JSON.parse(H)}}let K=A.body||new ReadableStream({start:a=>a.close()}),L=`chatcmpl-kimi-${crypto.randomUUID().slice(0,12)}`,M=Math.floor(Date.now()/1e3),N=JSON.parse(H),O=x.prompt.length+(x.systemPrompt?x.systemPrompt.length:0);if(c){let a;return{response:new Response((a=new TextEncoder,new ReadableStream({async start(b){let c=(c,d=null)=>{b.enqueue(a.encode((0,h.N)({id:L,object:"chat.completion.chunk",created:M,model:D,choices:[{index:0,delta:c,finish_reason:d}]})))},d=!1;try{for await(let f of u(K,e)){if((2&f.flags)!=0){let e=o(f);if(e)throw Error(`Kimi Connect EndStream error: ${e}`);d||c({role:"assistant",content:""}),c({},"stop"),b.enqueue(a.encode(g.$U));return}if(!f.message)continue;let e=p(f.message);e&&(d||(d=!0,c({role:"assistant",content:""})),c("think"===e.kind?{reasoning_content:e.text}:{content:e.text}))}throw Error("Kimi Connect stream ended without a successful EndStream frame")}catch(a){try{e?.aborted?b.close():b.error(a)}catch{}return}try{b.close()}catch{}}})),{status:200,headers:{...g.uB}}),url:i,headers:I,transformedBody:N,responseFormat:"openai"}}let P=await v(K,D,L,M,e,O);return P.error?r(502,`Kimi Connect protocol error: ${P.error}`,b):{response:new Response(JSON.stringify(P),{status:200,headers:{"Content-Type":"application/json"}}),url:i,headers:I,transformedBody:N,responseFormat:"openai"}}}},57647:(a,b,c)=>{c.d(b,{SZ:()=>n,Tz:()=>k,jD:()=>j,jJ:()=>l,oF:()=>m});var d=c(35024),e=c(74129);let f={baseUrl:e.Es},g={baseUrl:e.ky};function h(a){return"string"==typeof a&&a.startsWith("openai-compatible-")}function i(a){return"string"==typeof a&&a.startsWith("anthropic-compatible-")}function j(a,b=null){let c=b?.providerSpecificData?.apiType;return"chat"===c||"responses"===c?c:"string"==typeof a&&a.includes("responses")?"responses":"chat"}function k(a){if(a.input&&(Array.isArray(a.input)||"string"==typeof a.input)&&!a.messages)return"openai-responses";if(a.request?.contents&&"antigravity"===a.userAgent)return"antigravity";if(a.contents&&Array.isArray(a.contents))return"gemini";if(a.stream_options||a.response_format||void 0!==a.logprobs||void 0!==a.top_logprobs||void 0!==a.n||void 0!==a.presence_penalty||void 0!==a.frequency_penalty||a.logit_bias||a.user)return"openai";if(a.messages&&Array.isArray(a.messages)){let b=a.messages[0];if(b?.content&&Array.isArray(b.content)){let c=b.content[0];if(c?.type==="text"&&!a.model?.includes("/")){if(a.system||a.anthropic_version)return"claude";let c=b.content.some(a=>"image"===a.type&&a.source?.type==="base64"),d=b.content.some(a=>"image_url"===a.type&&a.image_url?.url);if(c)return"claude";if(d)return"openai";if(b.content.some(a=>"tool_use"===a.type||"tool_result"===a.type))return"claude"}}if(void 0!==a.system||a.anthropic_version)return"claude"}return"openai"}function l(a,b=null){return h(a)?"responses"===j(a,b)?"openai-responses":"openai":i(a)?"claude":function(a,b=null){if(h(a)){let c=j(a,b);return{...d.xq.openai,format:"responses"===c?"openai-responses":"openai",baseUrl:f.baseUrl}}return i(a)?{...d.xq.anthropic,format:"claude",baseUrl:g.baseUrl}:d.xq[a]||d.xq.openai}(a,b).format||"openai"}function m(a,b){let c=d.xq[a],e=c?.transports;return Array.isArray(e)&&e.length&&e.find(a=>a.format===b)||null}function n(a){return!function(a){let b=a.messages||a.contents;if(!b?.length)return!0;let c=b[b.length-1];return c?.role==="user"}(a)&&delete a.thinking,a}},74957:(a,b,c)=>{c.d(b,{H:()=>l});var d=c(41004),e=c(93943),f=c(39609),g=c(92306),h=c(74129),i=c(57647),j=c(24467),k=c(8803);class l{constructor(a,b){this.provider=a,this.config=b,this.noAuth=b?.noAuth||!1}getProvider(){return this.provider}getBaseUrls(){return this.config.baseUrls||(this.config.baseUrl?[this.config.baseUrl]:[])}getFallbackCount(){return this.getBaseUrls().length||1}buildUrl(a,b,c=0,d=null){if(this.provider?.startsWith?.("openai-compatible-")){let a=(d?.providerSpecificData?.baseUrl||h.Es).replace(/\/$/,""),b="responses"===(0,i.jD)(this.provider,d)?"/responses":"/chat/completions";return`${a}${b}`}if(this.provider?.startsWith?.("anthropic-compatible-")){let a=(d?.providerSpecificData?.baseUrl||h.ky).replace(/\/$/,"");return`${a}/messages`}let e=this.getBaseUrls();return e[c]||e[0]||this.config.baseUrl}buildHeaders(a,b=!0){let c={"Content-Type":"application/json",...this.config.headers};return this.provider?.startsWith?.("anthropic-compatible-")?(a.apiKey?c["x-api-key"]=a.apiKey:a.accessToken&&(c.Authorization=`Bearer ${a.accessToken}`),c["anthropic-version"]||(c["anthropic-version"]=h.b8)):a.accessToken?c.Authorization=`Bearer ${a.accessToken}`:a.apiKey&&(c.Authorization=`Bearer ${a.apiKey}`),b&&(c.Accept="text/event-stream"),c}transformRequest(a,b,c,d){return b}shouldRetry(a,b){return a===d.gx.RATE_LIMITED&&b+1<this.getFallbackCount()}async refreshCredentials(a,b,c=null){return null}needsRefresh(a){return(0,e.fp)(this.provider,a)}parseError(a,b){return{status:a.status,message:b||`HTTP ${a.status}`}}async execute({model:a,body:b,stream:c,credentials:e,signal:h,log:i,proxyOptions:l=null}){let m=this.getFallbackCount(),n=null,o=0,p={},q=e?.connectionId||null;if((0,j.qY)(this.provider,q)){let a=Error(`circuit open for ${this.provider} (recent failures) — failing fast`);throw a.name="CircuitOpenError",a.status=d.gx.SERVICE_UNAVAILABLE,a}(0,j.k3)(this.provider,q);let r={...d.cI,...this.config.retry},s=this.transformRequest(a,b,c,e),t=async(a,b,c,e=null)=>{let{attempts:f,delayMs:g}=(0,d.DR)(r[b]);if(f<=0||p[a]>=f)return!1;let h=g;if(e&&this.computeRetryDelay){let b=await this.computeRetryDelay(e,p[a]+1,g);if(!1===b)return!1;null!=b&&(h=b)}return p[a]++,i?.debug?.("RETRY",`${c} retry ${p[a]}/${f} after ${h/1e3}s`),await new Promise(a=>setTimeout(a,h)),!0};for(let b=0;b<m;b++){let r=this.buildUrl(a,c,b,e),u=this.buildHeaders(e,c,r,a);p[b]||(p[b]=0);let v=null;try{let a=JSON.stringify(s);try{v=await (0,k.tV)({provider:this.provider,connectionId:q,signal:h})}catch(a){throw(0,j.w3)(this.provider,q),a}let e=new AbortController,p=this.config?.timeoutMs||d.pH,w=setTimeout(()=>e.abort(Error("fetch connect timeout")),p),x=h?AbortSignal.any([h,e.signal]):e.signal;try{let d=Date.now();(0,g.s)("FETCH",`${this.provider.toUpperCase()} → ${r} | body=${a.length}B | connectTimeout=${p}ms`);let e=await (0,f.proxyAwareFetch)(r,{method:"POST",headers:u,body:a,signal:x},l);clearTimeout(w);let h=e.headers?.get?.("content-type")||"",k=e.headers?.get?.("content-length")||"?";if((0,g.s)("FETCH",`${this.provider.toUpperCase()} ← ${e.status} | ttft=${Date.now()-d}ms | ct=${h} | cl=${k}`),await t(b,e.status,`status ${e.status}`,e)){b--;continue}if(this.shouldRetry(e.status,b)){i?.debug?.("RETRY",`${e.status} on ${r}, trying fallback ${b+1}`),o=e.status,e.status>=500&&(0,j.C5)(this.provider,q);continue}if(e.ok&&(0,j.B3)(this.provider,q),c){let a=function(a,b){if(!a||!a.body)return b(),a;let c=!1,d=()=>{c||(c=!0,b())},e=new TransformStream({transform(a,b){b.enqueue(a)},flush(){d()},cancel(){d()}}),f=a.body.pipeThrough(e);if("u">typeof Response&&a instanceof Response)try{return new Response(f,a)}catch{}return new Proxy(a,{get(a,b,c){if("body"===b)return f;let d=Reflect.get(a,b,c);return"function"==typeof d?d.bind(a):d}})}(e,v);return v=null,{response:a,url:r,headers:u,transformedBody:s}}return{response:e,url:r,headers:u,transformedBody:s}}catch(c){clearTimeout(w),n=c;let a=e.signal.aborted&&"AbortError"===c.name;if((0,g.s)("FETCH",`${this.provider.toUpperCase()} ✖ ${c.name}: ${c.message}${a?" (connect timeout)":""}`),"AbortError"===c.name&&!a)throw(0,j.w3)(this.provider,q),c;if((0,j.C5)(this.provider,q),await t(b,d.gx.BAD_GATEWAY,`network "${c.message}"`)){b--;continue}if(b+1<m){i?.debug?.("RETRY",`Error on ${r}, trying fallback ${b+1}`);continue}throw c}}finally{v&&(v(),v=null)}}throw n||Error(`All ${m} URLs failed with status ${o}`)}}},78959:(a,b,c)=>{c.d(b,{$U:()=>d,RK:()=>g,pb:()=>e,uB:()=>f});let d="data: [DONE]\n\n",e={"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"},f={"Content-Type":"text/event-stream","Cache-Control":"no-cache","X-Accel-Buffering":"no"},g={"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive","Access-Control-Allow-Origin":"*"}},92536:(a,b,c)=>{function d(a){return`data: ${JSON.stringify(a)}
1
+ "use strict";exports.id=8537,exports.ids=[8537],exports.modules={8803:(a,b,c)=>{c.d(b,{Ve:()=>q,tV:()=>p});var d=c(41004);class e extends Error{constructor(a,b="router_overloaded",c=503){super(a),this.name="ConcurrencyLimitError",this.code=b,this.status=c}}function f(a){let b=Error(a?.message||("string"==typeof a?a:"Request aborted"));return b.name="AbortError",b}let g=0,h=new Map,i=new Map,j=[];function k(a,b){return b&&a.get(b)||0}function l(a,b){b&&a.set(b,(a.get(b)||0)+1)}function m(a,b){if(!b)return;let c=a.get(b)||0;c<=1?a.delete(b):a.set(b,c-1)}function n(a,b){let{globalMax:c,providerMax:e,connectionMax:f}=d.fi;return!(c>0&&g>=c||a&&e>0&&k(h,a)>=e||b&&f>0&&k(i,a?`${a}:${b}`:b)>=f)&&!0}function o(a,b){g++,a&&l(h,a),b&&l(i,a?`${a}:${b}`:b);let c=!1;return function(){c||(c=!0,g=Math.max(0,g-1),a&&m(h,a),b&&m(i,a?`${a}:${b}`:b),function(){for(let a=0;a<j.length;a++){let b=j[a];if(n(b.provider,b.connectionId)){j.splice(a,1),b.grant();break}}}())}}async function p({provider:a,connectionId:b,signal:c}={}){if(c?.aborted)throw f(c.reason);if(n(a,b))return o(a,b);let{queueMax:g,queueTimeoutMs:h}=d.fi;if(g>0&&j.length>=g)throw new e("Inbound concurrency queue is full; router overloaded","router_overloaded",503);return new Promise((d,g)=>{let i=null,k=null,l=()=>{i&&(clearTimeout(i),i=null),c&&k&&(c.removeEventListener("abort",k),k=null)},m=()=>{let a=j.findIndex(a=>a===n);-1!==a&&j.splice(a,1)},n={provider:a,connectionId:b,grant(){l();let e=o(a,b);if(c?.aborted){e(),g(f(c.reason));return}d(e)}};h>0&&(i=setTimeout(()=>{l(),m(),g(new e(`Concurrency slot acquisition timed out after ${h}ms`,"router_overloaded",503))},h)),c&&(k=()=>{l(),m(),g(f(c.reason))},c.addEventListener("abort",k,{once:!0})),j.push(n)})}function q(){let a={};for(let[b,c]of h.entries())a[b]=c;return{active:g,queued:j.length,byProvider:a}}},28537:(a,b,c)=>{c.d(b,{Kt:()=>w,probeKimiWebToken:()=>t});var d=c(74957),e=c(35024),f=c(39609),g=c(78959),h=c(92536);let i=e.xq["kimi-web"].baseUrl,j="REASONING_EFFORT_",k="CONTEXT_LENGTH_",l={k3:{scenario:"SCENARIO_K2D5",supportedReasoningEfforts:["REASONING_EFFORT_NONE","REASONING_EFFORT_LOW"],defaultReasoningEffort:"REASONING_EFFORT_NONE",supportedContextLengths:["CONTEXT_LENGTH_128K"],defaultContextLength:"CONTEXT_LENGTH_128K"},k2d6:{scenario:"SCENARIO_K2D5",supportedReasoningEfforts:["REASONING_EFFORT_NONE","REASONING_EFFORT_LOW"],defaultReasoningEffort:"REASONING_EFFORT_NONE",supportedContextLengths:["CONTEXT_LENGTH_128K"],defaultContextLength:"CONTEXT_LENGTH_128K"}};function m(a){let b=String(a??"").trim();if(!b)return"";let c=b.match(/^(?:authorization:\s*)?bearer\s+([^;\s]+)/i);if(c)return c[1];let d=b.replace(/^bearer\s+/i,"").replace(/^cookie:/i,"").trim();for(let a of["access_token","kimi-auth"]){let b=a.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),c=d.match(RegExp(`(?:^|[\\s;])${b}=([^;\\s]+)`));if(c)return c[1]}return d.includes("=")||d.includes(";")?"":d}function n(a){let b=new TextEncoder().encode(a),c=new Uint8Array(5+b.length);c[0]=0;let d=b.length;return c[1]=d>>>24&255,c[2]=d>>>16&255,c[3]=d>>>8&255,c[4]=255&d,c.set(b,5),c}function o(a){if((2&a.flags)==0)return null;let b=a.message?.error;if(!b||"object"!=typeof b||Array.isArray(b))return null;let c="string"==typeof b.code?b.code:"unknown",d="string"==typeof b.message?b.message:"upstream error";return`${c}: ${d}`}function p(a){if(!a)return null;let b=String(a.op??""),c=String(a.mask??""),d=a.block??{};if("append"===b){if("block.text.content"===c){let a=String(d.text?.content??"");return a?{kind:"text",text:a}:null}if("block.think.content"===c){let a=String(d.think?.content??"");return a?{kind:"think",text:a}:null}return null}if("set"===b){if("block.text"===c){let a=String(d.text?.content??"");return a?{kind:"text",text:a}:null}if("block.think"===c){let a=String(d.think?.content??"");return a?{kind:"think",text:a}:null}}return null}function q(a){return"string"==typeof a&&a.trim()?a.trim():void 0}function r(a,b,c){return{response:new Response(JSON.stringify({error:{message:b,type:"invalid_request"}}),{status:a,headers:{"Content-Type":"application/json"}}),url:i,headers:{},transformedBody:c}}function s(a){return{"Content-Type":"application/connect+json",Accept:"*/*","User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36",Origin:"https://www.kimi.com",Referer:"https://www.kimi.com/","connect-protocol-version":"1",Authorization:`Bearer ${a}`}}async function t(a,b=fetch){let c,d=m(String(a??"").trim());if(!d)return{status:0,valid:!1,error:"Missing Kimi access_token — capture access_token from www.kimi.com localStorage."};let e=JSON.stringify({chat_id:"",scenario:"SCENARIO_K2D5",tools:[],message:{id:"",parent_id:"",children_message_ids:[],role:"user",blocks:[],scenario:"SCENARIO_K2D5",labels:[],references:[],is_goal:!1},options:{thinking:!0,enable_plugin:!1},project_id:""});try{c=await b(i,{method:"POST",headers:s(d),body:n(e)})}catch(a){return{status:0,valid:!1,error:`Kimi probe failed: ${a.message||String(a)}`}}return 401===c.status||403===c.status?{status:c.status,valid:!1,error:"Invalid access_token — re-capture from www.kimi.com localStorage."}:{status:c.status,valid:!0,error:null}}async function*u(a,b){let c=a.getReader(),d=new Uint8Array(0);try{for(;;){if(b?.aborted)return;let{value:a,done:e}=await c.read();if(e)break;if(!a)continue;let f=new Uint8Array(d.length+a.length);f.set(d,0),f.set(a,d.length),d=f;let g=0;for(;g<d.length;){let{consumed:a,frame:b}=function(a,b){if(b+5>a.length)return{consumed:0,frame:null};let c=a[b],d=a[b+1]<<24|a[b+2]<<16|a[b+3]<<8|a[b+4],e=d<0?d+0x100000000:d;if(e>8388608)return{consumed:-1,frame:null};if(b+5+e>a.length)return{consumed:0,frame:null};if((-4&c)!=0)throw Error(`Kimi Connect frame used unsupported flags: ${c}`);if((1&c)!=0)throw Error("Kimi Connect compressed frames are not supported");let f=null;if(e>0){let c=a.subarray(b+5,b+5+e);try{f=JSON.parse(new TextDecoder().decode(c))}catch(a){throw Error(`Kimi Connect frame contained invalid JSON: ${a instanceof Error?a.message:"parse failed"}`)}}return{consumed:5+e,frame:{flags:c,message:f}}}(d,g);if(-1===a)throw Error("Kimi Connect frame exceeded MAX_FRAME_LEN");if(0===a)break;g+=a,b&&(yield b)}d=d.subarray(g)}}finally{c.releaseLock()}}async function v(a,b,c,d,e,f){let g="",h="",i=!1;try{for await(let b of u(a,e)){if((2&b.flags)!=0){let a=o(b);if(a)throw Error(`Kimi Connect EndStream error: ${a}`);i=!0;break}if(!b.message)continue;let a=p(b.message);a&&("think"===a.kind?h+=a.text:g+=a.text)}if(!i)throw Error("Kimi Connect stream ended without a successful EndStream frame")}catch(a){return{error:a instanceof Error?a.message:String(a)}}let j={role:"assistant",content:g};h&&(j.reasoning_content=h);let k=Math.max(1,Math.ceil(f/4)),l=Math.ceil(g.length/4);return{id:c,object:"chat.completion",created:d,model:b,choices:[{index:0,message:j,finish_reason:"stop"}],usage:{prompt_tokens:k,completion_tokens:l,total_tokens:k+l}}}class w extends d.H{constructor(){super("kimi-web",e.xq["kimi-web"])}async execute({model:a,body:b,stream:c,credentials:d,signal:e,log:t,proxyOptions:w}){let x,y,z,A,B=b||{},C=m(String(d?.accessToken||d?.apiKey||"").trim());if(!C)return r(400,"Missing Kimi access_token — log in at www.kimi.com and capture access_token from localStorage.",b);let D=String(a||B.model||""),E=l[D];if(!E)return r(400,`Unsupported Kimi Web model: ${D}`,b);let F=B.tools,G=B.functions;if(null!=F&&(!Array.isArray(F)||F.length>0))return r(400,"Kimi Web does not support OpenAI function tools",b);if(null!=G&&(!Array.isArray(G)||G.length>0))return r(400,"Kimi Web does not support legacy function tools",b);try{let a=Array.isArray(B.messages)?B.messages:[];if(!(x=function(a){let b=[],c=[];for(let d of a){if("tool"===d.role||"function"===d.role)throw Error("Kimi Web does not support tool result messages");if(void 0!==d.tool_calls)throw Error("Kimi Web does not support assistant tool calls");let a=function(a){if("string"==typeof a)return a;if(!Array.isArray(a))throw Error("Kimi Web only supports text message content");return a.map(a=>{if(!a||"object"!=typeof a||Array.isArray(a))throw Error("Kimi Web only supports text message content");if(("text"===a.type||"input_text"===a.type)&&"string"==typeof a.text)return a.text;throw Error("Kimi Web does not support image, audio, file, or tool content")}).join("")}(d.content);if("system"===d.role||"developer"===d.role)a&&b.push(a);else if("user"===d.role)a&&c.push(c.length>0?`User: ${a}`:a);else if("assistant"===d.role)a&&c.push(`Assistant: ${a}`);else throw Error(`Kimi Web does not support message role ${d.role}`)}return{prompt:c.join("\n\n").trim(),systemPrompt:b.join("\n\n").trim()}}(a)).prompt)throw Error("Kimi Web requires a non-empty user message");y=function(a,b){let c=q(a),d=c?c.startsWith(j)?c.toUpperCase():`${j}${c.toUpperCase()}`:b.defaultReasoningEffort;if(d){if(!b.supportedReasoningEfforts.includes(d))throw Error(`Kimi Web model does not support reasoning_effort=${c||d}`);return d}}(B.reasoning_effort,E),z=function(a,b){let c=q(a),d=c?c.startsWith(k)?c.toUpperCase():`${k}${c.toUpperCase()}`:b.defaultContextLength;if(d){if(!b.supportedContextLengths.includes(d))throw Error(`Kimi Web model does not support context_length=${c||d}`);return d}}(B.context_length,E)}catch(a){return r(400,a instanceof Error?a.message:"Invalid Kimi Web request",b)}let H=JSON.stringify({chat_id:"",scenario:E.scenario,tools:[],message:{id:"",parent_id:"",children_message_ids:[],role:"user",blocks:[{id:"",message_id:"",text:{content:x.prompt}}],scenario:E.scenario,labels:[],references:[],is_goal:!1},options:{thinking:!0,enable_plugin:!1,...x.systemPrompt?{system_prompt:x.systemPrompt}:{},...y?{reasoning_effort:y}:{},...z?{context_length:z}:{}},project_id:""}),I=s(C),J=n(H);try{A=await (0,f.proxyAwareFetch)(i,{method:"POST",headers:I,body:J,signal:e},w)}catch(a){return t?.error?.("KIMI-WEB",`Fetch failed: ${a.message||String(a)}`),r(502,`Kimi connection failed: ${a.message||String(a)}`,b)}if(!A.ok){let a=A.status,b=await A.text().catch(()=>""),c=`Kimi returned HTTP ${a}`;return 401===a||403===a?c="Kimi auth failed — access_token may be expired. Re-capture access_token from www.kimi.com localStorage.":429===a&&(c="Kimi rate limited. Wait a moment and retry."),b.trim()&&(c+=` — ${b.slice(0,300)}`),t?.warn?.("KIMI-WEB",c),{response:new Response(JSON.stringify({error:{message:c,type:"upstream_error",code:`HTTP_${a}`}}),{status:a,headers:{"Content-Type":"application/json"}}),url:i,headers:I,transformedBody:JSON.parse(H)}}let K=A.body||new ReadableStream({start:a=>a.close()}),L=`chatcmpl-kimi-${crypto.randomUUID().slice(0,12)}`,M=Math.floor(Date.now()/1e3),N=JSON.parse(H),O=x.prompt.length+(x.systemPrompt?x.systemPrompt.length:0);if(c){let a;return{response:new Response((a=new TextEncoder,new ReadableStream({async start(b){let c=(c,d=null)=>{b.enqueue(a.encode((0,h.N)({id:L,object:"chat.completion.chunk",created:M,model:D,choices:[{index:0,delta:c,finish_reason:d}]})))},d=!1;try{for await(let f of u(K,e)){if((2&f.flags)!=0){let e=o(f);if(e)throw Error(`Kimi Connect EndStream error: ${e}`);d||c({role:"assistant",content:""}),c({},"stop"),b.enqueue(a.encode(g.$U));return}if(!f.message)continue;let e=p(f.message);e&&(d||(d=!0,c({role:"assistant",content:""})),c("think"===e.kind?{reasoning_content:e.text}:{content:e.text}))}throw Error("Kimi Connect stream ended without a successful EndStream frame")}catch(a){try{e?.aborted?b.close():b.error(a)}catch{}return}try{b.close()}catch{}}})),{status:200,headers:{...g.uB}}),url:i,headers:I,transformedBody:N,responseFormat:"openai"}}let P=await v(K,D,L,M,e,O);return P.error?r(502,`Kimi Connect protocol error: ${P.error}`,b):{response:new Response(JSON.stringify(P),{status:200,headers:{"Content-Type":"application/json"}}),url:i,headers:I,transformedBody:N,responseFormat:"openai"}}}},57647:(a,b,c)=>{c.d(b,{SZ:()=>n,Tz:()=>k,jD:()=>j,jJ:()=>l,oF:()=>m});var d=c(35024),e=c(74129);let f={baseUrl:e.Es},g={baseUrl:e.ky};function h(a){return"string"==typeof a&&a.startsWith("openai-compatible-")}function i(a){return"string"==typeof a&&a.startsWith("anthropic-compatible-")}function j(a,b=null){let c=b?.providerSpecificData?.apiType;return"chat"===c||"responses"===c?c:"string"==typeof a&&a.includes("responses")?"responses":"chat"}function k(a){if(a.input&&(Array.isArray(a.input)||"string"==typeof a.input)&&!a.messages)return"openai-responses";if(a.request?.contents&&"antigravity"===a.userAgent)return"antigravity";if(a.contents&&Array.isArray(a.contents))return"gemini";if(a.stream_options||a.response_format||void 0!==a.logprobs||void 0!==a.top_logprobs||void 0!==a.n||void 0!==a.presence_penalty||void 0!==a.frequency_penalty||a.logit_bias||a.user)return"openai";if(a.messages&&Array.isArray(a.messages)){let b=a.messages[0];if(b?.content&&Array.isArray(b.content)){let c=b.content[0];if(c?.type==="text"&&!a.model?.includes("/")){if(a.system||a.anthropic_version)return"claude";let c=b.content.some(a=>"image"===a.type&&a.source?.type==="base64"),d=b.content.some(a=>"image_url"===a.type&&a.image_url?.url);if(c)return"claude";if(d)return"openai";if(b.content.some(a=>"tool_use"===a.type||"tool_result"===a.type))return"claude"}}if(void 0!==a.system||a.anthropic_version)return"claude"}return"openai"}function l(a,b=null){return h(a)?"responses"===j(a,b)?"openai-responses":"openai":i(a)?"claude":function(a,b=null){if(h(a)){let c=j(a,b);return{...d.xq.openai,format:"responses"===c?"openai-responses":"openai",baseUrl:f.baseUrl}}return i(a)?{...d.xq.anthropic,format:"claude",baseUrl:g.baseUrl}:d.xq[a]||d.xq.openai}(a,b).format||"openai"}function m(a,b){let c=d.xq[a],e=c?.transports;return Array.isArray(e)&&e.length&&e.find(a=>a.format===b)||null}function n(a){return!function(a){let b=a.messages||a.contents;if(!b?.length)return!0;let c=b[b.length-1];return c?.role==="user"}(a)&&delete a.thinking,a}},74957:(a,b,c)=>{c.d(b,{H:()=>l});var d=c(41004),e=c(93943),f=c(39609),g=c(92306),h=c(74129),i=c(57647),j=c(24467),k=c(8803);class l{constructor(a,b){this.provider=a,this.config=b,this.noAuth=b?.noAuth||!1}getProvider(){return this.provider}getBaseUrls(){return this.config.baseUrls||(this.config.baseUrl?[this.config.baseUrl]:[])}getFallbackCount(){return this.getBaseUrls().length||1}buildUrl(a,b,c=0,d=null){if(this.provider?.startsWith?.("openai-compatible-")){let a=(d?.providerSpecificData?.baseUrl||h.Es).replace(/\/$/,""),b="responses"===(0,i.jD)(this.provider,d)?"/responses":"/chat/completions";return`${a}${b}`}if(this.provider?.startsWith?.("anthropic-compatible-")){let a=(d?.providerSpecificData?.baseUrl||h.ky).replace(/\/$/,"");return`${a}/messages`}let e=this.getBaseUrls();return e[c]||e[0]||this.config.baseUrl}buildHeaders(a,b=!0){let c={"Content-Type":"application/json",...this.config.headers};return this.provider?.startsWith?.("anthropic-compatible-")?(a.apiKey?c["x-api-key"]=a.apiKey:a.accessToken&&(c.Authorization=`Bearer ${a.accessToken}`),c["anthropic-version"]||(c["anthropic-version"]=h.b8)):a.accessToken?c.Authorization=`Bearer ${a.accessToken}`:a.apiKey&&(c.Authorization=`Bearer ${a.apiKey}`),b&&(c.Accept="text/event-stream"),c}transformRequest(a,b,c,d){return b}shouldRetry(a,b){return a===d.gx.RATE_LIMITED&&b+1<this.getFallbackCount()}async refreshCredentials(a,b,c=null){return null}needsRefresh(a){return(0,e.fp)(this.provider,a)}parseError(a,b){return{status:a.status,message:b||`HTTP ${a.status}`}}async execute({model:a,body:b,stream:c,credentials:e,signal:h,log:i,proxyOptions:l=null}){let m=this.getFallbackCount(),n=null,o=0,p={},q=e?.connectionId||null;if((0,j.qY)(this.provider,q)){let a=Error(`circuit open for ${this.provider} (recent failures) — failing fast`);throw a.name="CircuitOpenError",a.status=d.gx.SERVICE_UNAVAILABLE,a}(0,j.k3)(this.provider,q);let r={...d.cI,...this.config.retry},s=this.transformRequest(a,b,c,e),t=async(a,b,c,e=null,f=null)=>{let{attempts:g,delayMs:h}=(0,d.DR)(r[b]);if(g<=0||p[a]>=g)return!1;let j=h;if(e&&this.computeRetryDelay){let b=await this.computeRetryDelay(e,p[a]+1,h);if(!1===b)return!1;null!=b&&(j=b)}return p[a]++,i?.debug?.("RETRY",`${c} retry ${p[a]}/${g} after ${j/1e3}s`),f?.(),await new Promise(a=>setTimeout(a,j)),!0};for(let b=0;b<m;b++){let r=this.buildUrl(a,c,b,e),u=this.buildHeaders(e,c,r,a);p[b]||(p[b]=0);let v=null;try{let a=JSON.stringify(s);try{v=await (0,k.tV)({provider:this.provider,connectionId:q,signal:h})}catch(a){throw(0,j.w3)(this.provider,q),a}let e=new AbortController,p=this.config?.timeoutMs||d.pH,w=setTimeout(()=>e.abort(Error("fetch connect timeout")),p),x=h?AbortSignal.any([h,e.signal]):e.signal;try{let d=Date.now();(0,g.s)("FETCH",`${this.provider.toUpperCase()} → ${r} | body=${a.length}B | connectTimeout=${p}ms`);let e=await (0,f.proxyAwareFetch)(r,{method:"POST",headers:u,body:a,signal:x},l);clearTimeout(w);let h=e.headers?.get?.("content-type")||"",k=e.headers?.get?.("content-length")||"?";if((0,g.s)("FETCH",`${this.provider.toUpperCase()} ← ${e.status} | ttft=${Date.now()-d}ms | ct=${h} | cl=${k}`),await t(b,e.status,`status ${e.status}`,e,()=>{v(),v=null})){b--;continue}if(this.shouldRetry(e.status,b)){i?.debug?.("RETRY",`${e.status} on ${r}, trying fallback ${b+1}`),o=e.status,e.status>=500&&(0,j.C5)(this.provider,q);continue}if(e.ok&&(0,j.B3)(this.provider,q),c){let a=function(a,b){if(!a||!a.body)return b(),a;let c=!1,d=()=>{c||(c=!0,b())},e=a.body.getReader(),f=new ReadableStream({async pull(a){try{let{value:b,done:c}=await e.read();c?(d(),a.close()):a.enqueue(b)}catch(b){d(),a.error(b)}},async cancel(a){d(),await e.cancel(a)}});if("u">typeof Response&&a instanceof Response)try{return new Response(f,a)}catch{}return new Proxy(a,{get(a,b,c){if("body"===b)return f;let d=Reflect.get(a,b,c);return"function"==typeof d?d.bind(a):d}})}(e,v);return v=null,{response:a,url:r,headers:u,transformedBody:s}}return{response:e,url:r,headers:u,transformedBody:s}}catch(c){clearTimeout(w),n=c;let a=e.signal.aborted&&"AbortError"===c.name;if((0,g.s)("FETCH",`${this.provider.toUpperCase()} ✖ ${c.name}: ${c.message}${a?" (connect timeout)":""}`),"AbortError"===c.name&&!a)throw(0,j.w3)(this.provider,q),c;if((0,j.C5)(this.provider,q),await t(b,d.gx.BAD_GATEWAY,`network "${c.message}"`,null,()=>{v(),v=null})){b--;continue}if(b+1<m){i?.debug?.("RETRY",`Error on ${r}, trying fallback ${b+1}`);continue}throw c}}finally{v&&(v(),v=null)}}throw n||Error(`All ${m} URLs failed with status ${o}`)}}},78959:(a,b,c)=>{c.d(b,{$U:()=>d,RK:()=>g,pb:()=>e,uB:()=>f});let d="data: [DONE]\n\n",e={"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"},f={"Content-Type":"text/event-stream","Cache-Control":"no-cache","X-Accel-Buffering":"no"},g={"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive","Access-Control-Allow-Origin":"*"}},92536:(a,b,c)=>{function d(a){return`data: ${JSON.stringify(a)}
2
2
 
3
3
  `}function e({id:a,created:b,model:c,delta:f,finishReason:g=null}){return d({id:a,object:"chat.completion.chunk",created:b,model:c,choices:[{index:0,delta:f,finish_reason:g}]})}c.d(b,{N:()=>d,z:()=>e})}};
@@ -1 +1 @@
1
- "use strict";exports.id=862,exports.ids=[862],exports.modules={26505:(a,b,c)=>{c.d(b,{Gq:()=>q,SD:()=>o,jJ:()=>f});var d=c(77598),e=c.n(d);let f=Object.freeze({PROVIDERS_READ:"mcp:providers:read",MODELS_READ:"mcp:models:read",CACHE_READ:"mcp:cache:read",QUOTA_READ:"mcp:quota:read",STATUS_READ:"mcp:status:read",MEMORY_READ:"mcp:memory:read"}),g={type:"object",additionalProperties:!1,properties:{}},h=new Set(["apiKey","accessToken","refreshToken","idToken","password","token","cookie","cookies","clientSecret","authorization","providerSpecificData"]);function i(a){return Array.isArray(a)?a.map(i):a&&"object"==typeof a?Object.fromEntries(Object.entries(a).filter(([a])=>!h.has(a)).map(([a,b])=>[a,i(b)])):a}let j=(a={},b=[])=>({type:"object",additionalProperties:!1,properties:a,required:b}),k=(a={})=>({type:"string",...a}),l=(a={})=>({type:"integer",...a}),m="2025-06-18",n=new Set(["2024-11-05","2025-03-26",m]);function o(a){return[{name:"providers.list",description:"List configured providers without credentials.",scope:f.PROVIDERS_READ,inputSchema:g,run:async()=>({providers:i(await a.listProviders())})},{name:"models.list",description:"List available routed models.",scope:f.MODELS_READ,inputSchema:j({provider:k({minLength:1,maxLength:100})}),run:async({provider:b})=>({models:i(await a.listModels({provider:b}))})},{name:"cache.stats",description:"Read aggregate cache statistics.",scope:f.CACHE_READ,inputSchema:j({period:k({enum:["today","24h","7d","30d","60d","all"]})}),run:async({period:b="7d"})=>({stats:i(await a.getCacheStats({period:b}))})},{name:"quota.snapshot",description:"Fetch current quota for one connection without refreshing or writing credentials.",scope:f.QUOTA_READ,inputSchema:j({connectionId:k({minLength:1,maxLength:128})},["connectionId"]),run:async({connectionId:b})=>({snapshot:i(await a.getQuotaSnapshot({connectionId:b}))})},{name:"status.current",description:"Read current provider connection status.",scope:f.STATUS_READ,inputSchema:g,run:async()=>i(await a.getCurrentStatus())},{name:"memory.search",description:"Search memories within an explicit user/session scope.",scope:f.MEMORY_READ,inputSchema:j({query:k({minLength:1,maxLength:1e3}),userId:k({minLength:1,maxLength:128}),sessionId:k({maxLength:128}),limit:l({minimum:1,maximum:100})},["query"]),run:async({query:b,userId:c="default",sessionId:d="",limit:e=20})=>({memories:i(await a.searchMemories({query:b,userId:c,sessionId:d,limit:e}))})},{name:"memory.list",description:"List memories within an explicit user/session scope.",scope:f.MEMORY_READ,inputSchema:j({userId:k({minLength:1,maxLength:128}),sessionId:k({maxLength:128}),limit:l({minimum:1,maximum:100}),offset:l({minimum:0,maximum:1e5})}),run:async({userId:b="default",sessionId:c="",limit:d=50,offset:e=0})=>({memories:i(await a.listMemories({userId:b,sessionId:c,limit:d,offset:e}))})}]}let p=(a,b,c,d)=>({jsonrpc:"2.0",id:a??null,error:{code:b,message:c,...d?{data:d}:{}}});function q({registry:a,timeoutMs:b=1e4,audit:c=()=>{}}){let d=new Map(a.map(a=>[a.name,a]));async function f(a){let c,d=Promise.resolve(a);d.catch(()=>{});try{return await Promise.race([d,new Promise((a,d)=>{c=setTimeout(()=>{let a=Error("Tool invocation timed out");a.code="MCP_TIMEOUT",d(a)},b)})])}finally{clearTimeout(c)}}return{handle:async function(b,g={}){let h=b?.id;if(!b||"2.0"!==b.jsonrpc||"string"!=typeof b.method)return p(h,-32600,"Invalid Request");let j=!Object.prototype.hasOwnProperty.call(b,"id"),k=a=>j?null:a;if(!g.authenticated)return k(p(h,-32001,"Authentication required"));if("initialize"===b.method)return k({jsonrpc:"2.0",id:h,result:{protocolVersion:n.has(b.params?.protocolVersion)?b.params.protocolVersion:m,capabilities:{tools:{listChanged:!1}},serverInfo:{name:"miawrouter",version:"1.2.3"}}});if("notifications/initialized"===b.method)return null;if("ping"===b.method)return k({jsonrpc:"2.0",id:h,result:{}});if("tools/list"===b.method)return k({jsonrpc:"2.0",id:h,result:{tools:a.filter(a=>Array.isArray(g.scopes)&&g.scopes.includes(a.scope)).map(({name:a,description:b,inputSchema:c})=>({name:a,description:b,inputSchema:c}))}});if("tools/call"!==b.method)return k(p(h,-32601,"Method not found"));let l=d.get(b.params?.name);if(!l)return k(p(h,-32602,"Unknown tool"));if(!Array.isArray(g.scopes)||!g.scopes.includes(l.scope))return k(p(h,-32003,"Tool scope denied"));let o=b.params?.arguments??{},q=function a(b,c,d="arguments"){if("object"===b.type){if(!c||"object"!=typeof c||Array.isArray(c))return`${d} must be an object`;let e=b.properties||{};for(let a of b.required||[])if(!(a in c))return`${d}.${a} is required`;if(!1===b.additionalProperties){let a=Object.keys(c).find(a=>!(a in e));if(a)return`${d}.${a} is not allowed`}for(let[b,f]of Object.entries(c)){if(!e[b])continue;let c=a(e[b],f,`${d}.${b}`);if(c)return c}return null}if("string"===b.type){if("string"!=typeof c)return`${d} must be a string`;if(b.minLength&&c.trim().length<b.minLength)return`${d} is too short`;if(b.maxLength&&c.length>b.maxLength)return`${d} is too long`;if(b.enum&&!b.enum.includes(c))return`${d} is invalid`}if("integer"===b.type){if(!Number.isInteger(c))return`${d} must be an integer`;if(void 0!==b.minimum&&c<b.minimum)return`${d} is too small`;if(void 0!==b.maximum&&c>b.maximum)return`${d} is too large`}return null}(l.inputSchema,o);if(q)return k(p(h,-32602,"Invalid tool arguments",{issue:q}));let r=Date.now(),s=e().randomUUID(),t="success";try{let a=await f(l.run(o)),b=i(a);return k({jsonrpc:"2.0",id:h,result:{content:[{type:"text",text:JSON.stringify(b)}],structuredContent:b}})}catch(a){return k(p(h,"timeout"==(t=a?.code==="MCP_TIMEOUT"?"timeout":"error")?-32008:-32603,"timeout"===t?"Tool invocation timed out":"Tool invocation failed"))}finally{c({invocationId:s,tool:l.name,scope:l.scope,actor:g.actor||"unknown",outcome:t,durationMs:Date.now()-r})}},tools:a.map(({name:a,scope:b})=>({name:a,scope:b}))}}},30862:(a,b,c)=>{c.d(b,{fK:()=>A,m6:()=>y,$y:()=>z});var d=c(66959),e=c(27540),f=c(26505),g=c(41826),h=c(75569),i=c(40615),j=c(81329),k=c(59521);let l=Object.freeze([["chat-completions","POST","/api/v1/chat/completions","llm","public-api-key","OpenAI-compatible chat completions","OpenAI-compatible chat completion requests."],["responses","POST","/api/v1/responses","llm","public-api-key","OpenAI Responses API","OpenAI-compatible response generation."],["models","GET","/api/v1/models","discovery","public-api-key","Model listing","List models available through the router."],["embeddings","POST","/api/v1/embeddings","media","public-api-key","Embeddings","Create vector embeddings."],["images-generations","POST","/api/v1/images/generations","media","public-api-key","Image generation","Generate images from text prompts."],["audio-speech","POST","/api/v1/audio/speech","media","public-api-key","Text to speech","Generate speech audio from text."],["audio-transcriptions","POST","/api/v1/audio/transcriptions","media","public-api-key","Speech transcription","Transcribe uploaded audio."],["messages","POST","/api/v1/messages","llm","public-api-key","Anthropic Messages API","Anthropic-compatible message generation."],["search","POST","/api/v1/search","web","public-api-key","Web search","Search the web through a configured provider."],["web-fetch","POST","/api/v1/web/fetch","web","public-api-key","Web fetch","Fetch web content through a configured provider."],["gemini-models","GET","/api/v1beta/models","llm","public-api-key","Gemini-compatible models","List models through the Gemini-compatible API."],["mcp","POST","/api/mcp","agent-protocol","local-only","MCP tools","Sessionless MCP Streamable HTTP endpoint."],["a2a","POST","/api/a2a","agent-protocol","local-only","A2A skills","Authenticated A2A JSON-RPC endpoint."],["webhooks","GET","/api/webhooks","automation","local-only","Webhook management","Manage local webhook subscriptions."],["batches","GET","/api/batches","automation","local-only","Batch jobs","List and manage local batch jobs."],["agents","GET","/api/agents","agents","local-only","Agent integrations","List locally detected agent integrations."]].map(([a,b,c,d,e,f,g])=>Object.freeze({id:a,method:b,path:c,category:d,auth:e,capability:f,status:"available",description:g}))),m=/token|secret|password|authorization|cookie|headers|payload|pathOnDisk/i;function n(a={}){return{id:String(a.id??a.name??""),name:String(a.name??a.id??""),description:String(a.description??""),source:String(a.source??"unknown"),scope:null==a.scope?null:String(a.scope),inputSchema:function a(b,c=0){if(!(c>12))return Array.isArray(b)?b.slice(0,100).map(b=>a(b,c+1)):b&&"object"==typeof b?Object.fromEntries(Object.entries(b).filter(([a])=>!m.test(a)).slice(0,100).map(([b,d])=>[b,a(d,c+1)]).filter(([,a])=>void 0!==a)):b}(a.inputSchema??a.schema??null),endpoint:null==a.endpoint?null:String(a.endpoint),status:String(a.status??"available")}}function o(a={}){let b,c,d;return{id:String(a.id??""),method:String(a.method??"GET"),path:String(a.path??""),category:String(a.category??""),auth:String(a.auth??"dashboard"),capability:String(a.capability??""),status:String(a.status??"available"),description:String(a.description??""),curl:(b=`$MIAWROUTER_BASE_URL${a.path}`,c="GET"===a.method?"":` -X ${a.method}`,d="public-api-key"===a.auth?' -H "Authorization: Bearer $MIAWROUTER_API_KEY"':"",`curl${c}${d} "${b}"`)}}let p=new Set(["provider","model","agent","skill","endpoint"]);function q(a){return Array.isArray(a)?a:null==a?[]:[a]}function r(a){return"function"==typeof a?a():a}async function s(a,b){try{let c,d=q(await b());return{items:d,source:(c=d.length,{id:a,status:"available",count:c})}}catch{return{items:[],source:{id:a,status:"unavailable",count:0,error:"Source unavailable"}}}}function t(a){return null==a?"":String(a)}function u(a,b){let c=t(a?.id??b);return{type:"provider",id:c,name:t(a?.name??a?.displayName??a?.alias??c),description:t(a?.description??a?.notice?.text),source:"providers",status:a?.disabled?"unavailable":t(a?.status??"available")}}function v(a){let b=t(a?.id??a?.model),c=t(a?.provider??a?.providerId);return{type:"model",id:c&&!b.startsWith(`${c}/`)?`${c}/${b}`:b,name:t(a?.name??b),description:t(a?.description),provider:c,source:"models",status:t(a?.status??"available")}}function w(a){return{type:"agent",id:t(a?.id),name:t(a?.name??a?.id),description:t(a?.description??a?.kind),source:"agents",status:t(a?.status?.state??a?.status??"available")}}let x=function(a={}){let b={a2aRegistry:()=>(0,d.FA)(e.U),mcpRegistry:()=>(0,f.SD)(g.o),skills:k.J3,endpoints:l,providers:i.AI_PROVIDERS,models:j.eh,agentRegistry:h.t,...a};async function c(){let[a,c,d]=await Promise.all([s("a2a",async()=>q(await r(b.a2aRegistry)).map(a=>n({...a,source:"a2a",scope:"a2a:read",inputSchema:a.inputSchema??a.schema,endpoint:"/api/a2a"}))),s("mcp",async()=>q(await r(b.mcpRegistry)).map(a=>n({id:a.name,name:a.name,description:a.description,source:"mcp",scope:a.scope,inputSchema:a.inputSchema,endpoint:"/api/mcp",status:a.status}))),s("catalog-skills",async()=>q(await r(b.skills)).map(a=>n({...a,source:"catalog",scope:"public-api-key"})))]);return{items:[...a.items,...c.items,...d.items],sources:[a.source,c.source,d.source]}}async function m(){let a=await s("endpoint-catalog",async()=>q(await r(b.endpoints)).map(o));return{items:a.items,sources:[a.source]}}async function x({query:a="",types:d=[],statuses:e=[]}={}){let[f,g,h,i,j]=await Promise.all([c(),m(),s("providers",async()=>{let a=await r(b.providers);return Array.isArray(a)?a.map(a=>u(a)):Object.entries(a||{}).map(([a,b])=>u(b,a))}),s("models",async()=>q(await r(b.models)).map(v)),s("agents",async()=>{let a=await r(b.agentRegistry);return q(await a.list()).map(w)})]),k=[...h.items,...i.items,...j.items,...f.items.map(a=>({type:"skill",...a})),...g.items.map(a=>({type:"endpoint",name:a.capability,...a}))],l=new Set(q(d).map(a=>t(a).toLowerCase()).filter(a=>p.has(a))),n=new Set(q(e).map(a=>t(a).toLowerCase()).filter(Boolean).slice(0,20)),o=t(a).slice(0,100).trim().toLowerCase(),y=k.filter(a=>(!l.size||!!l.has(a.type))&&(!n.size||!!n.has(t(a.status).toLowerCase()))&&(!o||[a.id,a.name,a.description,a.path].some(a=>t(a).toLowerCase().includes(o)))),z=Object.fromEntries([...p].map(a=>[a,y.filter(b=>b.type===a).length])),A={};for(let a of y)A[a.status]=(A[a.status]||0)+1;return{items:y,counts:{total:y.length,...z,byType:z,byStatus:A},sources:[...f.sources,...g.sources,h.source,i.source,j.source]}}return{listAgentSkills:c,listApiEndpoints:m,getDiscoverySnapshot:x}}(),y=x.listAgentSkills,z=x.listApiEndpoints,A=x.getDiscoverySnapshot},59521:(a,b,c)=>{c.d(b,{J3:()=>d});let d=[{id:"miawrouter",name:"MiawRouter (Entry)",description:"Setup + index of all capabilities. Start here — covers base URL, auth, model discovery, and links to every capability skill.",endpoint:null,icon:"hub",isEntry:!0},{id:"miawrouter-chat",name:"Chat",description:"Chat / code-gen via OpenAI or Anthropic format with streaming.",endpoint:"/v1/chat/completions",icon:"chat"},{id:"miawrouter-image",name:"Image Generation",description:"Text-to-image via DALL-E, Imagen, FLUX, MiniMax, SDWebUI…",endpoint:"/v1/images/generations",icon:"image"},{id:"miawrouter-tts",name:"Text-to-Speech",description:"OpenAI / ElevenLabs / Edge / Google / Deepgram voices.",endpoint:"/v1/audio/speech",icon:"record_voice_over"},{id:"miawrouter-stt",name:"Speech-to-Text",description:"Transcribe audio via OpenAI Whisper, Groq, Gemini, Deepgram, AssemblyAI…",endpoint:"/v1/audio/transcriptions",icon:"mic"},{id:"miawrouter-embeddings",name:"Embeddings",description:"Vectors for RAG / semantic search via OpenAI, Gemini, Mistral…",endpoint:"/v1/embeddings",icon:"scatter_plot"},{id:"miawrouter-web-search",name:"Web Search",description:"Tavily / Exa / Brave / Serper / SearXNG / Google PSE / You.com.",endpoint:"/v1/search",icon:"search"},{id:"miawrouter-web-fetch",name:"Web Fetch",description:"URL → markdown / text / HTML via Firecrawl, Jina, Tavily, Exa.",endpoint:"/v1/web/fetch",icon:"language"},{id:"antislop",name:"Anti-Slop (Core Filter)",description:"Anti-Slop core rules (R-01 to R-38). Prevents generic AI-generated slop UI, copy, and code without making designs sterile.",endpoint:null,icon:"filter_alt",sourceRef:"miqdadbadjuber/anti-slop",installCommand:"npx skills add miqdadbadjuber/anti-slop --skill antislop",rawUrl:"https://raw.githubusercontent.com/miqdadbadjuber/anti-slop/main/skills/antislop/SKILL.md"},{id:"antislop-ui",name:"Anti-Slop UI / UX",description:"UI and visual design filter: layout, rhythm, distinctive color schemes, intentional motion, no cookie-cutter templates.",endpoint:null,icon:"palette",sourceRef:"miqdadbadjuber/anti-slop",installCommand:"npx skills add miqdadbadjuber/anti-slop --skill antislop-ui",rawUrl:"https://raw.githubusercontent.com/miqdadbadjuber/anti-slop/main/skills/antislop-ui/SKILL.md"},{id:"antislop-copywriting",name:"Anti-Slop Copywriting",description:"De-slop text, headlines, CTAs, tone, and markdown hygiene. Erases negative parallelism, puffery, and robotic phrasing.",endpoint:null,icon:"edit_note",sourceRef:"miqdadbadjuber/anti-slop",installCommand:"npx skills add miqdadbadjuber/anti-slop --skill antislop-copywriting",rawUrl:"https://raw.githubusercontent.com/miqdadbadjuber/anti-slop/main/skills/antislop-copywriting/SKILL.md"},{id:"antislop-human",name:"Anti-Slop Human / A11y",description:"WCAG AAA contrast verification, keyboard navigation, focus states, and real human usability checks.",endpoint:null,icon:"accessibility_new",sourceRef:"miqdadbadjuber/anti-slop",installCommand:"npx skills add miqdadbadjuber/anti-slop --skill antislop-human",rawUrl:"https://raw.githubusercontent.com/miqdadbadjuber/anti-slop/main/skills/antislop-human/SKILL.md"},{id:"antislop-layoutmobile",name:"Anti-Slop Mobile Layout",description:"Fluid responsive breakpoints, mobile viewport handling, tap target ergonomics, and navigation drawer layout.",endpoint:null,icon:"smartphone",sourceRef:"miqdadbadjuber/anti-slop",installCommand:"npx skills add miqdadbadjuber/anti-slop --skill antislop-layoutmobile",rawUrl:"https://raw.githubusercontent.com/miqdadbadjuber/anti-slop/main/skills/antislop-layoutmobile/SKILL.md"},{id:"antislop-code",name:"Anti-Slop Code Comments",description:"Clean up repetitive or obvious AI comments in code while preserving meaningful architectural notes.",endpoint:null,icon:"code_off",sourceRef:"miqdadbadjuber/anti-slop",installCommand:"npx skills add miqdadbadjuber/anti-slop --skill antislop-code",rawUrl:"https://raw.githubusercontent.com/miqdadbadjuber/anti-slop/main/skills/antislop-code/SKILL.md"},{id:"hermes-agent",name:"Hermes Autonomous Agent",description:"Nous Hermes-inspired structured multi-step reasoning, goal decomposition, and autonomous execution.",endpoint:null,icon:"psychology",isHermes:!0},{id:"hermes-subagent",name:"Hermes Subagent Spawner",description:"Autonomously spawns and orchestrates specialized domain subagents with dedicated personas and guardrails.",endpoint:null,icon:"account_tree",isHermes:!0},{id:"hermes-memory",name:"Hermes Cross-Session Memory",description:"Autonomous fact distillation, persistent cross-session memory synthesis, and directive recall injection.",endpoint:null,icon:"memory",isHermes:!0},{id:"hermes-skill-builder",name:"Hermes Skill Builder",description:"On-the-fly Agent Skill synthesis in open standard SKILL.md format for new workflows and libraries.",endpoint:null,icon:"handyman",isHermes:!0},{id:"hermes-lsp",name:"Hermes LSP Bridge",description:"Automatic language server diagnostics, symbol indexing, and typecheck verification across CLI targets.",endpoint:null,icon:"terminal",isHermes:!0},{id:"hermes-plugins",name:"Hermes Plugin Manager",description:"Autonomous discovery, installation, and configuration of MCP servers and workspace plugins.",endpoint:null,icon:"extension",isHermes:!0}]}};
1
+ "use strict";exports.id=862,exports.ids=[862],exports.modules={26505:(a,b,c)=>{c.d(b,{Gq:()=>q,SD:()=>o,jJ:()=>f});var d=c(77598),e=c.n(d);let f=Object.freeze({PROVIDERS_READ:"mcp:providers:read",MODELS_READ:"mcp:models:read",CACHE_READ:"mcp:cache:read",QUOTA_READ:"mcp:quota:read",STATUS_READ:"mcp:status:read",MEMORY_READ:"mcp:memory:read"}),g={type:"object",additionalProperties:!1,properties:{}},h=new Set(["apiKey","accessToken","refreshToken","idToken","password","token","cookie","cookies","clientSecret","authorization","providerSpecificData"]);function i(a){return Array.isArray(a)?a.map(i):a&&"object"==typeof a?Object.fromEntries(Object.entries(a).filter(([a])=>!h.has(a)).map(([a,b])=>[a,i(b)])):a}let j=(a={},b=[])=>({type:"object",additionalProperties:!1,properties:a,required:b}),k=(a={})=>({type:"string",...a}),l=(a={})=>({type:"integer",...a}),m="2025-06-18",n=new Set(["2024-11-05","2025-03-26",m]);function o(a){return[{name:"providers.list",description:"List configured providers without credentials.",scope:f.PROVIDERS_READ,inputSchema:g,run:async()=>({providers:i(await a.listProviders())})},{name:"models.list",description:"List available routed models.",scope:f.MODELS_READ,inputSchema:j({provider:k({minLength:1,maxLength:100})}),run:async({provider:b})=>({models:i(await a.listModels({provider:b}))})},{name:"cache.stats",description:"Read aggregate cache statistics.",scope:f.CACHE_READ,inputSchema:j({period:k({enum:["today","24h","7d","30d","60d","all"]})}),run:async({period:b="7d"})=>({stats:i(await a.getCacheStats({period:b}))})},{name:"quota.snapshot",description:"Fetch current quota for one connection without refreshing or writing credentials.",scope:f.QUOTA_READ,inputSchema:j({connectionId:k({minLength:1,maxLength:128})},["connectionId"]),run:async({connectionId:b})=>({snapshot:i(await a.getQuotaSnapshot({connectionId:b}))})},{name:"status.current",description:"Read current provider connection status.",scope:f.STATUS_READ,inputSchema:g,run:async()=>i(await a.getCurrentStatus())},{name:"memory.search",description:"Search memories within an explicit user/session scope.",scope:f.MEMORY_READ,inputSchema:j({query:k({minLength:1,maxLength:1e3}),userId:k({minLength:1,maxLength:128}),sessionId:k({maxLength:128}),limit:l({minimum:1,maximum:100})},["query"]),run:async({query:b,userId:c="default",sessionId:d="",limit:e=20})=>({memories:i(await a.searchMemories({query:b,userId:c,sessionId:d,limit:e}))})},{name:"memory.list",description:"List memories within an explicit user/session scope.",scope:f.MEMORY_READ,inputSchema:j({userId:k({minLength:1,maxLength:128}),sessionId:k({maxLength:128}),limit:l({minimum:1,maximum:100}),offset:l({minimum:0,maximum:1e5})}),run:async({userId:b="default",sessionId:c="",limit:d=50,offset:e=0})=>({memories:i(await a.listMemories({userId:b,sessionId:c,limit:d,offset:e}))})}]}let p=(a,b,c,d)=>({jsonrpc:"2.0",id:a??null,error:{code:b,message:c,...d?{data:d}:{}}});function q({registry:a,timeoutMs:b=1e4,audit:c=()=>{}}){let d=new Map(a.map(a=>[a.name,a]));async function f(a){let c,d=Promise.resolve(a);d.catch(()=>{});try{return await Promise.race([d,new Promise((a,d)=>{c=setTimeout(()=>{let a=Error("Tool invocation timed out");a.code="MCP_TIMEOUT",d(a)},b)})])}finally{clearTimeout(c)}}return{handle:async function(b,g={}){let h=b?.id;if(!b||"2.0"!==b.jsonrpc||"string"!=typeof b.method)return p(h,-32600,"Invalid Request");let j=!Object.prototype.hasOwnProperty.call(b,"id"),k=a=>j?null:a;if(!g.authenticated)return k(p(h,-32001,"Authentication required"));if("initialize"===b.method)return k({jsonrpc:"2.0",id:h,result:{protocolVersion:n.has(b.params?.protocolVersion)?b.params.protocolVersion:m,capabilities:{tools:{listChanged:!1}},serverInfo:{name:"miawrouter",version:"1.2.4"}}});if("notifications/initialized"===b.method)return null;if("ping"===b.method)return k({jsonrpc:"2.0",id:h,result:{}});if("tools/list"===b.method)return k({jsonrpc:"2.0",id:h,result:{tools:a.filter(a=>Array.isArray(g.scopes)&&g.scopes.includes(a.scope)).map(({name:a,description:b,inputSchema:c})=>({name:a,description:b,inputSchema:c}))}});if("tools/call"!==b.method)return k(p(h,-32601,"Method not found"));let l=d.get(b.params?.name);if(!l)return k(p(h,-32602,"Unknown tool"));if(!Array.isArray(g.scopes)||!g.scopes.includes(l.scope))return k(p(h,-32003,"Tool scope denied"));let o=b.params?.arguments??{},q=function a(b,c,d="arguments"){if("object"===b.type){if(!c||"object"!=typeof c||Array.isArray(c))return`${d} must be an object`;let e=b.properties||{};for(let a of b.required||[])if(!(a in c))return`${d}.${a} is required`;if(!1===b.additionalProperties){let a=Object.keys(c).find(a=>!(a in e));if(a)return`${d}.${a} is not allowed`}for(let[b,f]of Object.entries(c)){if(!e[b])continue;let c=a(e[b],f,`${d}.${b}`);if(c)return c}return null}if("string"===b.type){if("string"!=typeof c)return`${d} must be a string`;if(b.minLength&&c.trim().length<b.minLength)return`${d} is too short`;if(b.maxLength&&c.length>b.maxLength)return`${d} is too long`;if(b.enum&&!b.enum.includes(c))return`${d} is invalid`}if("integer"===b.type){if(!Number.isInteger(c))return`${d} must be an integer`;if(void 0!==b.minimum&&c<b.minimum)return`${d} is too small`;if(void 0!==b.maximum&&c>b.maximum)return`${d} is too large`}return null}(l.inputSchema,o);if(q)return k(p(h,-32602,"Invalid tool arguments",{issue:q}));let r=Date.now(),s=e().randomUUID(),t="success";try{let a=await f(l.run(o)),b=i(a);return k({jsonrpc:"2.0",id:h,result:{content:[{type:"text",text:JSON.stringify(b)}],structuredContent:b}})}catch(a){return k(p(h,"timeout"==(t=a?.code==="MCP_TIMEOUT"?"timeout":"error")?-32008:-32603,"timeout"===t?"Tool invocation timed out":"Tool invocation failed"))}finally{c({invocationId:s,tool:l.name,scope:l.scope,actor:g.actor||"unknown",outcome:t,durationMs:Date.now()-r})}},tools:a.map(({name:a,scope:b})=>({name:a,scope:b}))}}},30862:(a,b,c)=>{c.d(b,{fK:()=>A,m6:()=>y,$y:()=>z});var d=c(66959),e=c(27540),f=c(26505),g=c(41826),h=c(75569),i=c(40615),j=c(81329),k=c(59521);let l=Object.freeze([["chat-completions","POST","/api/v1/chat/completions","llm","public-api-key","OpenAI-compatible chat completions","OpenAI-compatible chat completion requests."],["responses","POST","/api/v1/responses","llm","public-api-key","OpenAI Responses API","OpenAI-compatible response generation."],["models","GET","/api/v1/models","discovery","public-api-key","Model listing","List models available through the router."],["embeddings","POST","/api/v1/embeddings","media","public-api-key","Embeddings","Create vector embeddings."],["images-generations","POST","/api/v1/images/generations","media","public-api-key","Image generation","Generate images from text prompts."],["audio-speech","POST","/api/v1/audio/speech","media","public-api-key","Text to speech","Generate speech audio from text."],["audio-transcriptions","POST","/api/v1/audio/transcriptions","media","public-api-key","Speech transcription","Transcribe uploaded audio."],["messages","POST","/api/v1/messages","llm","public-api-key","Anthropic Messages API","Anthropic-compatible message generation."],["search","POST","/api/v1/search","web","public-api-key","Web search","Search the web through a configured provider."],["web-fetch","POST","/api/v1/web/fetch","web","public-api-key","Web fetch","Fetch web content through a configured provider."],["gemini-models","GET","/api/v1beta/models","llm","public-api-key","Gemini-compatible models","List models through the Gemini-compatible API."],["mcp","POST","/api/mcp","agent-protocol","local-only","MCP tools","Sessionless MCP Streamable HTTP endpoint."],["a2a","POST","/api/a2a","agent-protocol","local-only","A2A skills","Authenticated A2A JSON-RPC endpoint."],["webhooks","GET","/api/webhooks","automation","local-only","Webhook management","Manage local webhook subscriptions."],["batches","GET","/api/batches","automation","local-only","Batch jobs","List and manage local batch jobs."],["agents","GET","/api/agents","agents","local-only","Agent integrations","List locally detected agent integrations."]].map(([a,b,c,d,e,f,g])=>Object.freeze({id:a,method:b,path:c,category:d,auth:e,capability:f,status:"available",description:g}))),m=/token|secret|password|authorization|cookie|headers|payload|pathOnDisk/i;function n(a={}){return{id:String(a.id??a.name??""),name:String(a.name??a.id??""),description:String(a.description??""),source:String(a.source??"unknown"),scope:null==a.scope?null:String(a.scope),inputSchema:function a(b,c=0){if(!(c>12))return Array.isArray(b)?b.slice(0,100).map(b=>a(b,c+1)):b&&"object"==typeof b?Object.fromEntries(Object.entries(b).filter(([a])=>!m.test(a)).slice(0,100).map(([b,d])=>[b,a(d,c+1)]).filter(([,a])=>void 0!==a)):b}(a.inputSchema??a.schema??null),endpoint:null==a.endpoint?null:String(a.endpoint),status:String(a.status??"available")}}function o(a={}){let b,c,d;return{id:String(a.id??""),method:String(a.method??"GET"),path:String(a.path??""),category:String(a.category??""),auth:String(a.auth??"dashboard"),capability:String(a.capability??""),status:String(a.status??"available"),description:String(a.description??""),curl:(b=`$MIAWROUTER_BASE_URL${a.path}`,c="GET"===a.method?"":` -X ${a.method}`,d="public-api-key"===a.auth?' -H "Authorization: Bearer $MIAWROUTER_API_KEY"':"",`curl${c}${d} "${b}"`)}}let p=new Set(["provider","model","agent","skill","endpoint"]);function q(a){return Array.isArray(a)?a:null==a?[]:[a]}function r(a){return"function"==typeof a?a():a}async function s(a,b){try{let c,d=q(await b());return{items:d,source:(c=d.length,{id:a,status:"available",count:c})}}catch{return{items:[],source:{id:a,status:"unavailable",count:0,error:"Source unavailable"}}}}function t(a){return null==a?"":String(a)}function u(a,b){let c=t(a?.id??b);return{type:"provider",id:c,name:t(a?.name??a?.displayName??a?.alias??c),description:t(a?.description??a?.notice?.text),source:"providers",status:a?.disabled?"unavailable":t(a?.status??"available")}}function v(a){let b=t(a?.id??a?.model),c=t(a?.provider??a?.providerId);return{type:"model",id:c&&!b.startsWith(`${c}/`)?`${c}/${b}`:b,name:t(a?.name??b),description:t(a?.description),provider:c,source:"models",status:t(a?.status??"available")}}function w(a){return{type:"agent",id:t(a?.id),name:t(a?.name??a?.id),description:t(a?.description??a?.kind),source:"agents",status:t(a?.status?.state??a?.status??"available")}}let x=function(a={}){let b={a2aRegistry:()=>(0,d.FA)(e.U),mcpRegistry:()=>(0,f.SD)(g.o),skills:k.J3,endpoints:l,providers:i.AI_PROVIDERS,models:j.eh,agentRegistry:h.t,...a};async function c(){let[a,c,d]=await Promise.all([s("a2a",async()=>q(await r(b.a2aRegistry)).map(a=>n({...a,source:"a2a",scope:"a2a:read",inputSchema:a.inputSchema??a.schema,endpoint:"/api/a2a"}))),s("mcp",async()=>q(await r(b.mcpRegistry)).map(a=>n({id:a.name,name:a.name,description:a.description,source:"mcp",scope:a.scope,inputSchema:a.inputSchema,endpoint:"/api/mcp",status:a.status}))),s("catalog-skills",async()=>q(await r(b.skills)).map(a=>n({...a,source:"catalog",scope:"public-api-key"})))]);return{items:[...a.items,...c.items,...d.items],sources:[a.source,c.source,d.source]}}async function m(){let a=await s("endpoint-catalog",async()=>q(await r(b.endpoints)).map(o));return{items:a.items,sources:[a.source]}}async function x({query:a="",types:d=[],statuses:e=[]}={}){let[f,g,h,i,j]=await Promise.all([c(),m(),s("providers",async()=>{let a=await r(b.providers);return Array.isArray(a)?a.map(a=>u(a)):Object.entries(a||{}).map(([a,b])=>u(b,a))}),s("models",async()=>q(await r(b.models)).map(v)),s("agents",async()=>{let a=await r(b.agentRegistry);return q(await a.list()).map(w)})]),k=[...h.items,...i.items,...j.items,...f.items.map(a=>({type:"skill",...a})),...g.items.map(a=>({type:"endpoint",name:a.capability,...a}))],l=new Set(q(d).map(a=>t(a).toLowerCase()).filter(a=>p.has(a))),n=new Set(q(e).map(a=>t(a).toLowerCase()).filter(Boolean).slice(0,20)),o=t(a).slice(0,100).trim().toLowerCase(),y=k.filter(a=>(!l.size||!!l.has(a.type))&&(!n.size||!!n.has(t(a.status).toLowerCase()))&&(!o||[a.id,a.name,a.description,a.path].some(a=>t(a).toLowerCase().includes(o)))),z=Object.fromEntries([...p].map(a=>[a,y.filter(b=>b.type===a).length])),A={};for(let a of y)A[a.status]=(A[a.status]||0)+1;return{items:y,counts:{total:y.length,...z,byType:z,byStatus:A},sources:[...f.sources,...g.sources,h.source,i.source,j.source]}}return{listAgentSkills:c,listApiEndpoints:m,getDiscoverySnapshot:x}}(),y=x.listAgentSkills,z=x.listApiEndpoints,A=x.getDiscoverySnapshot},59521:(a,b,c)=>{c.d(b,{J3:()=>d});let d=[{id:"miawrouter",name:"MiawRouter (Entry)",description:"Setup + index of all capabilities. Start here — covers base URL, auth, model discovery, and links to every capability skill.",endpoint:null,icon:"hub",isEntry:!0},{id:"miawrouter-chat",name:"Chat",description:"Chat / code-gen via OpenAI or Anthropic format with streaming.",endpoint:"/v1/chat/completions",icon:"chat"},{id:"miawrouter-image",name:"Image Generation",description:"Text-to-image via DALL-E, Imagen, FLUX, MiniMax, SDWebUI…",endpoint:"/v1/images/generations",icon:"image"},{id:"miawrouter-tts",name:"Text-to-Speech",description:"OpenAI / ElevenLabs / Edge / Google / Deepgram voices.",endpoint:"/v1/audio/speech",icon:"record_voice_over"},{id:"miawrouter-stt",name:"Speech-to-Text",description:"Transcribe audio via OpenAI Whisper, Groq, Gemini, Deepgram, AssemblyAI…",endpoint:"/v1/audio/transcriptions",icon:"mic"},{id:"miawrouter-embeddings",name:"Embeddings",description:"Vectors for RAG / semantic search via OpenAI, Gemini, Mistral…",endpoint:"/v1/embeddings",icon:"scatter_plot"},{id:"miawrouter-web-search",name:"Web Search",description:"Tavily / Exa / Brave / Serper / SearXNG / Google PSE / You.com.",endpoint:"/v1/search",icon:"search"},{id:"miawrouter-web-fetch",name:"Web Fetch",description:"URL → markdown / text / HTML via Firecrawl, Jina, Tavily, Exa.",endpoint:"/v1/web/fetch",icon:"language"},{id:"antislop",name:"Anti-Slop (Core Filter)",description:"Anti-Slop core rules (R-01 to R-38). Prevents generic AI-generated slop UI, copy, and code without making designs sterile.",endpoint:null,icon:"filter_alt",sourceRef:"miqdadbadjuber/anti-slop",installCommand:"npx skills add miqdadbadjuber/anti-slop --skill antislop",rawUrl:"https://raw.githubusercontent.com/miqdadbadjuber/anti-slop/main/skills/antislop/SKILL.md"},{id:"antislop-ui",name:"Anti-Slop UI / UX",description:"UI and visual design filter: layout, rhythm, distinctive color schemes, intentional motion, no cookie-cutter templates.",endpoint:null,icon:"palette",sourceRef:"miqdadbadjuber/anti-slop",installCommand:"npx skills add miqdadbadjuber/anti-slop --skill antislop-ui",rawUrl:"https://raw.githubusercontent.com/miqdadbadjuber/anti-slop/main/skills/antislop-ui/SKILL.md"},{id:"antislop-copywriting",name:"Anti-Slop Copywriting",description:"De-slop text, headlines, CTAs, tone, and markdown hygiene. Erases negative parallelism, puffery, and robotic phrasing.",endpoint:null,icon:"edit_note",sourceRef:"miqdadbadjuber/anti-slop",installCommand:"npx skills add miqdadbadjuber/anti-slop --skill antislop-copywriting",rawUrl:"https://raw.githubusercontent.com/miqdadbadjuber/anti-slop/main/skills/antislop-copywriting/SKILL.md"},{id:"antislop-human",name:"Anti-Slop Human / A11y",description:"WCAG AAA contrast verification, keyboard navigation, focus states, and real human usability checks.",endpoint:null,icon:"accessibility_new",sourceRef:"miqdadbadjuber/anti-slop",installCommand:"npx skills add miqdadbadjuber/anti-slop --skill antislop-human",rawUrl:"https://raw.githubusercontent.com/miqdadbadjuber/anti-slop/main/skills/antislop-human/SKILL.md"},{id:"antislop-layoutmobile",name:"Anti-Slop Mobile Layout",description:"Fluid responsive breakpoints, mobile viewport handling, tap target ergonomics, and navigation drawer layout.",endpoint:null,icon:"smartphone",sourceRef:"miqdadbadjuber/anti-slop",installCommand:"npx skills add miqdadbadjuber/anti-slop --skill antislop-layoutmobile",rawUrl:"https://raw.githubusercontent.com/miqdadbadjuber/anti-slop/main/skills/antislop-layoutmobile/SKILL.md"},{id:"antislop-code",name:"Anti-Slop Code Comments",description:"Clean up repetitive or obvious AI comments in code while preserving meaningful architectural notes.",endpoint:null,icon:"code_off",sourceRef:"miqdadbadjuber/anti-slop",installCommand:"npx skills add miqdadbadjuber/anti-slop --skill antislop-code",rawUrl:"https://raw.githubusercontent.com/miqdadbadjuber/anti-slop/main/skills/antislop-code/SKILL.md"},{id:"hermes-agent",name:"Hermes Autonomous Agent",description:"Nous Hermes-inspired structured multi-step reasoning, goal decomposition, and autonomous execution.",endpoint:null,icon:"psychology",isHermes:!0},{id:"hermes-subagent",name:"Hermes Subagent Spawner",description:"Autonomously spawns and orchestrates specialized domain subagents with dedicated personas and guardrails.",endpoint:null,icon:"account_tree",isHermes:!0},{id:"hermes-memory",name:"Hermes Cross-Session Memory",description:"Autonomous fact distillation, persistent cross-session memory synthesis, and directive recall injection.",endpoint:null,icon:"memory",isHermes:!0},{id:"hermes-skill-builder",name:"Hermes Skill Builder",description:"On-the-fly Agent Skill synthesis in open standard SKILL.md format for new workflows and libraries.",endpoint:null,icon:"handyman",isHermes:!0},{id:"hermes-lsp",name:"Hermes LSP Bridge",description:"Automatic language server diagnostics, symbol indexing, and typecheck verification across CLI targets.",endpoint:null,icon:"terminal",isHermes:!0},{id:"hermes-plugins",name:"Hermes Plugin Manager",description:"Autonomous discovery, installation, and configuration of MCP servers and workspace plugins.",endpoint:null,icon:"extension",isHermes:!0}]}};
@@ -1 +1 @@
1
- "use strict";exports.id=869,exports.ids=[615,869,5699],exports.modules={30869:(a,b,c)=>{c.d(b,{UY:()=>h,eh:()=>f.eh,fg:()=>e.fg,h0:()=>g,oc:()=>i});var d=c(39006),e=c(40615),f=c(81329);d.rE;let g={npmPackageName:"miawrouter",installCmd:"npm i -g miawrouter",installCmdLatest:"npm i -g miawrouter@latest --prefer-online",shutdownCountdownSec:3,exitDelayMs:500,statusPort:21129,statusPollIntervalMs:1e3,statusLogTailLines:8,installRetries:3,installRetryDelayMs:5e3,lingerAfterDoneMs:3e4,waitForExitMinMs:5e3,waitForExitMaxMs:2e4,waitForExitCheckMs:500,appPort:21128},h={maxLines:200,pollIntervalMs:1e3},i={tickIntervalMs:6e4,pingLeadMs:5e3,refreshAheadMs:3e5,failureCooldownMs:9e5,providers:{claude:{settingsKey:"claudeAutoPing",quotaKey:"session (5h)",pingModel:"claude-haiku-4-5-20251001",pingText:"hi",pingMaxTokens:1},codex:{settingsKey:"codexAutoPing",quotaKey:"session",pingWhenResetAtSlides:!0,resetAtDriftMs:3e4,minPingIntervalMs:6e5,skipWhenBlockingQuotaExhausted:!0,pingModel:"gpt-5.5",pingText:"hi",pingInstructions:"Reply with OK.",pingReasoningEffort:"none"}}}},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]}},39006:a=>{a.exports={rE:"1.2.3"}},40615:(a,b,c)=>{c.d(b,{AI_PROVIDERS:()=>v,js:()=>z,DI:()=>p,fg:()=>m,Pd:()=>q,IS:()=>i,nJ:()=>k,zN:()=>l,JH:()=>o,jO:()=>B,wb:()=>A,br:()=>n,wG:()=>y,zt:()=>w,gb:()=>s,gC:()=>t,mq:()=>r,rs:()=>x});var d=c(86664);let e="⚠️ Risk Notice: This provider uses a subscription/OAuth session not officially licensed for proxy/router use. Account may be restricted or banned. Use at your own risk.";Object.fromEntries(d.A.filter(a=>a.display).map(a=>{let b;return[a.id,"RISK_NOTICE"===(b=a.display).deprecationNotice?{...b,deprecationNotice:e}:b]}));var f=c(41955);let g=["serviceKinds","ttsConfig","sttConfig","embeddingConfig","imageConfig","imageToTextConfig","videoConfig","musicConfig","searchViaChat","searchConfig","fetchConfig","modelsFetcher","mediaPriority","hiddenKinds"],h=a=>Object.fromEntries(d.A.filter(b=>b.category===a).map(a=>[a.id,function(a){let b={};for(let c of(a.media&&Object.assign(b,a.media),g))void 0!==a[c]&&(b[c]=a[c]);let c={...a.display||{}};return"RISK_NOTICE"===c.deprecationNotice&&(c.deprecationNotice=e),{...c,id:a.id,alias:a.uiAlias||a.alias,...a.hidden?{hidden:!0}:{},...b,...void 0!==a.priority?{priority:a.priority}:{},...a.hasFree?{hasFree:!0}:{},...a.billingTier?{billingTier:a.billingTier}:{},...a.thinkingConfig?{thinkingConfig:a.thinkingConfig}:{},...a.regions?{regions:a.regions,defaultRegion:a.defaultRegion}:{},...a.hasProviderSpecificData?{hasProviderSpecificData:!0}:{},...a.noAuth?{noAuth:!0}:{},...a.passthroughModels?{passthroughModels:!0}:{},...a.hasOAuth?{hasOAuth:!0}:{},...a.authModes?{authModes:a.authModes}:{},...a.authType?{authType:a.authType}:{},...a.authHint?{authHint:a.authHint}:{}}}(a)])),i=h("free"),j=Object.fromEntries(f.nJ.filter(a=>!a.available).map(a=>[a.id,{...a,serviceKinds:a.serviceKinds||["llm"],notice:a.notice||{text:a.unavailableReason}}])),k={...h("freeTier"),...j},l=h("oauth"),m=h("apikey"),n=h("webCookie"),o="openai-compatible-",p="anthropic-compatible-",q="custom-embedding-";function r(a){return"string"==typeof a&&a.startsWith(o)}function s(a){return"string"==typeof a&&a.startsWith(p)}function t(a){return"string"==typeof a&&a.startsWith(q)}let u=Object.fromEntries(Object.entries(k).filter(([,a])=>!a.disabled)),v={...i,...u,...l,...m,...n};function w(a){for(let b of Object.values(v))if(b.alias===a||b.id===a)return b;return null}function x(a){let b=w(a);return b?.id||a}function y(a){let b=v[a];return b?.alias||a}let z=Object.values(v).reduce((a,b)=>(a[b.alias]=b.id,a),{});Object.values(v).reduce((a,b)=>(a[b.id]=b.alias,a),{});let A=d.A.filter(a=>a.features?.usage).map(a=>a.id),B=d.A.filter(a=>a.features?.usageApikey).map(a=>a.id)},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))}},81329:(a,b,c)=>{c.d(b,{CP:()=>f,KC:()=>d.KC,Xg:()=>d.Xg,eh:()=>e,vq:()=>d.PROVIDER_MODELS});var d=c(45699);c(41955),Object.entries(c(40615).AI_PROVIDERS).filter(([,a])=>a.passthroughModels).map(([a])=>a);let e=Object.entries(d.PROVIDER_MODELS).flatMap(([a,b])=>b.map(b=>({provider:a,model:b.id,name:b.name}))),f=(a,b=null)=>a?.kind||a?.type||b}};
1
+ "use strict";exports.id=869,exports.ids=[615,869,5699],exports.modules={30869:(a,b,c)=>{c.d(b,{UY:()=>h,eh:()=>f.eh,fg:()=>e.fg,h0:()=>g,oc:()=>i});var d=c(39006),e=c(40615),f=c(81329);d.rE;let g={npmPackageName:"miawrouter",installCmd:"npm i -g miawrouter",installCmdLatest:"npm i -g miawrouter@latest --prefer-online",shutdownCountdownSec:3,exitDelayMs:500,statusPort:21129,statusPollIntervalMs:1e3,statusLogTailLines:8,installRetries:3,installRetryDelayMs:5e3,lingerAfterDoneMs:3e4,waitForExitMinMs:5e3,waitForExitMaxMs:2e4,waitForExitCheckMs:500,appPort:21128},h={maxLines:200,pollIntervalMs:1e3},i={tickIntervalMs:6e4,pingLeadMs:5e3,refreshAheadMs:3e5,failureCooldownMs:9e5,providers:{claude:{settingsKey:"claudeAutoPing",quotaKey:"session (5h)",pingModel:"claude-haiku-4-5-20251001",pingText:"hi",pingMaxTokens:1},codex:{settingsKey:"codexAutoPing",quotaKey:"session",pingWhenResetAtSlides:!0,resetAtDriftMs:3e4,minPingIntervalMs:6e5,skipWhenBlockingQuotaExhausted:!0,pingModel:"gpt-5.5",pingText:"hi",pingInstructions:"Reply with OK.",pingReasoningEffort:"none"}}}},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]}},39006:a=>{a.exports={rE:"1.2.4"}},40615:(a,b,c)=>{c.d(b,{AI_PROVIDERS:()=>v,js:()=>z,DI:()=>p,fg:()=>m,Pd:()=>q,IS:()=>i,nJ:()=>k,zN:()=>l,JH:()=>o,jO:()=>B,wb:()=>A,br:()=>n,wG:()=>y,zt:()=>w,gb:()=>s,gC:()=>t,mq:()=>r,rs:()=>x});var d=c(86664);let e="⚠️ Risk Notice: This provider uses a subscription/OAuth session not officially licensed for proxy/router use. Account may be restricted or banned. Use at your own risk.";Object.fromEntries(d.A.filter(a=>a.display).map(a=>{let b;return[a.id,"RISK_NOTICE"===(b=a.display).deprecationNotice?{...b,deprecationNotice:e}:b]}));var f=c(41955);let g=["serviceKinds","ttsConfig","sttConfig","embeddingConfig","imageConfig","imageToTextConfig","videoConfig","musicConfig","searchViaChat","searchConfig","fetchConfig","modelsFetcher","mediaPriority","hiddenKinds"],h=a=>Object.fromEntries(d.A.filter(b=>b.category===a).map(a=>[a.id,function(a){let b={};for(let c of(a.media&&Object.assign(b,a.media),g))void 0!==a[c]&&(b[c]=a[c]);let c={...a.display||{}};return"RISK_NOTICE"===c.deprecationNotice&&(c.deprecationNotice=e),{...c,id:a.id,alias:a.uiAlias||a.alias,...a.hidden?{hidden:!0}:{},...b,...void 0!==a.priority?{priority:a.priority}:{},...a.hasFree?{hasFree:!0}:{},...a.billingTier?{billingTier:a.billingTier}:{},...a.thinkingConfig?{thinkingConfig:a.thinkingConfig}:{},...a.regions?{regions:a.regions,defaultRegion:a.defaultRegion}:{},...a.hasProviderSpecificData?{hasProviderSpecificData:!0}:{},...a.noAuth?{noAuth:!0}:{},...a.passthroughModels?{passthroughModels:!0}:{},...a.hasOAuth?{hasOAuth:!0}:{},...a.authModes?{authModes:a.authModes}:{},...a.authType?{authType:a.authType}:{},...a.authHint?{authHint:a.authHint}:{}}}(a)])),i=h("free"),j=Object.fromEntries(f.nJ.filter(a=>!a.available).map(a=>[a.id,{...a,serviceKinds:a.serviceKinds||["llm"],notice:a.notice||{text:a.unavailableReason}}])),k={...h("freeTier"),...j},l=h("oauth"),m=h("apikey"),n=h("webCookie"),o="openai-compatible-",p="anthropic-compatible-",q="custom-embedding-";function r(a){return"string"==typeof a&&a.startsWith(o)}function s(a){return"string"==typeof a&&a.startsWith(p)}function t(a){return"string"==typeof a&&a.startsWith(q)}let u=Object.fromEntries(Object.entries(k).filter(([,a])=>!a.disabled)),v={...i,...u,...l,...m,...n};function w(a){for(let b of Object.values(v))if(b.alias===a||b.id===a)return b;return null}function x(a){let b=w(a);return b?.id||a}function y(a){let b=v[a];return b?.alias||a}let z=Object.values(v).reduce((a,b)=>(a[b.alias]=b.id,a),{});Object.values(v).reduce((a,b)=>(a[b.id]=b.alias,a),{});let A=d.A.filter(a=>a.features?.usage).map(a=>a.id),B=d.A.filter(a=>a.features?.usageApikey).map(a=>a.id)},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))}},81329:(a,b,c)=>{c.d(b,{CP:()=>f,KC:()=>d.KC,Xg:()=>d.Xg,eh:()=>e,vq:()=>d.PROVIDER_MODELS});var d=c(45699);c(41955),Object.entries(c(40615).AI_PROVIDERS).filter(([,a])=>a.passthroughModels).map(([a])=>a);let e=Object.entries(d.PROVIDER_MODELS).flatMap(([a,b])=>b.map(b=>({provider:a,model:b.id,name:b.name}))),f=(a,b=null)=>a?.kind||a?.type||b}};
@@ -1 +1 @@
1
- "use strict";exports.id=8750,exports.ids=[8750],exports.modules={58750:(a,b,c)=>{c.r(b),c.d(b,{DELETE:()=>E,GET:()=>C,POST:()=>D});var d=c(49796),e=c(23211),f=c(79646),g=c(28354),h=c(79748),i=c.n(h),j=c(33873),k=c.n(j),l=c(21820),m=c.n(l),n=c(52750),o=c(40615),p=c(72239),q=c(65745),r=c(24424);let s=(0,g.promisify)(f.exec),t=()=>k().join(m().homedir(),".codex"),u=()=>k().join(t(),"config.toml"),v=()=>k().join(t(),"auth.json"),w="miawrouter",x=a=>a??{},y=(a,b,c)=>{let d=b.split("."),e=a;for(let a=0;a<d.length-1;a++)(null==e[d[a]]||"object"!=typeof e[d[a]])&&(e[d[a]]={}),e=e[d[a]];e[d[d.length-1]]=c},z=(a,b)=>{let c=b.split("."),d=a;for(let a=0;a<c.length-1;a++)if(null==(d=d?.[c[a]]))return;delete d[c[c.length-1]]},A=async()=>{try{let a="win32"===m().platform(),b=a?{...process.env,PATH:`${process.env.APPDATA}\\npm;${process.env.PATH}`}:process.env;return await s(a?"where codex":"which codex",{windowsHide:!0,env:b}),!0}catch{try{return await i().access(u()),!0}catch{return!1}}},B=async()=>{try{let a=u();return await i().readFile(a,"utf-8")}catch(a){if("ENOENT"===a.code)return null;throw a}};async function C(){try{if(!await A())return e.NextResponse.json({installed:!1,config:null,message:"Codex CLI is not installed"});let a=await B(),b={explorer:"",reviewer:"",planner:"",fast:""};try{if(a){let c=(0,n.M)(a);b={explorer:c?.agents?.explorer?.model||c?.agents?.subagent?.model||"",reviewer:c?.agents?.reviewer?.model||"",planner:c?.agents?.planner?.model||"",fast:c?.agents?.fast?.model||""}}}catch{}return e.NextResponse.json({installed:!0,config:a,subagents:b,hasMiawRouter:!!a&&(a.includes(`model_provider = "${w}"`)||a.includes(`[model_providers.${w}]`)),configPath:u()})}catch(a){return console.log("Error checking codex settings:",a),e.NextResponse.json({error:"Failed to check codex settings"},{status:500})}}async function D(a){try{let{baseUrl:b,apiKey:c,model:d,subagentModel:f,subagents:g}=await a.json();if(!b||!c||!d)return e.NextResponse.json({error:"baseUrl, apiKey and model are required"},{status:400});let h=t(),j=u();await i().mkdir(h,{recursive:!0});let k={};try{let a=await i().readFile(j,"utf-8");k=x((0,n.M)(a))}catch{}k.model=d,k.model_provider=w;let l=b.endsWith("/v1")?b:`${b}/v1`;y(k,`model_providers.${w}`,{name:"MiawRouter",base_url:l,wire_api:"responses",http_headers:{Authorization:`Bearer ${c}`}});let m={explorer:g?.explorer||f||d,reviewer:g?.reviewer||d,planner:g?.planner||d,fast:g?.fast||f||d};y(k,"agents.explorer",{description:"Fast explorer subagent for codebase exploration",model:m.explorer}),y(k,"agents.reviewer",{description:"Reviewer & auditor for adversarial review and verification",model:m.reviewer}),y(k,"agents.planner",{description:"Architectural planner for task decomposition",model:m.planner}),y(k,"agents.fast",{description:"Fast helper subagent for low-latency edits and diffs",model:m.fast}),y(k,"agents.subagent",{description:"Default fallback subagent",model:m.fast||m.explorer});let r=(0,n.q)(k);await i().writeFile(j,r);let s=v(),z={};try{let a=await i().readFile(s,"utf-8");z=JSON.parse(a)}catch{}z.OPENAI_API_KEY=c,z.auth_mode="apikey",await i().writeFile(s,JSON.stringify(z,null,2));try{let a=String(d).indexOf("/"),b=a>0?d.slice(0,a):"codex",c=a>0?d.slice(a+1):d,e=(0,o.rs)(b);await (0,q.Lb)([{providerAlias:b,id:c,name:c,type:"llm",reasoningLevels:(0,p.k)(e,c)||[]}],{codexDir:h})}catch{}return e.NextResponse.json({success:!0,message:"Codex settings applied successfully!",configPath:j})}catch(a){return console.log("Error updating codex settings:",a),e.NextResponse.json({error:"Failed to update codex settings"},{status:500})}}async function E(){try{let a=u(),b={};try{let c=await i().readFile(a,"utf-8");b=x((0,n.M)(c))}catch(a){if("ENOENT"===a.code)return e.NextResponse.json({success:!0,message:"No config file to reset"});throw a}b.model_provider===w&&(delete b.model,delete b.model_provider),z(b,`model_providers.${w}`),z(b,"agents.subagent");let c=(0,n.q)(b);await i().writeFile(a,c);let d=v();try{let a=await i().readFile(d,"utf-8"),b=JSON.parse(a);delete b.OPENAI_API_KEY,delete b.auth_mode,0===Object.keys(b).length?await i().unlink(d):await i().writeFile(d,JSON.stringify(b,null,2))}catch{}return e.NextResponse.json({success:!0,message:"MiawRouter settings removed successfully"})}catch(a){return console.log("Error resetting codex settings:",a),e.NextResponse.json({error:"Failed to reset codex settings"},{status:500})}}(0,r.D)([C,D,E]),(0,d.A)(C,"0083dbf8e214e9d98204ee5b045bdda0a8ea4b0deb",null),(0,d.A)(D,"40a4130e4c60f28398281a93ddd0ad542468c9d2d0",null),(0,d.A)(E,"009452eb6b3b0464357ea2e7af045f2469ba803daf",null)},65745:(a,b,c)=>{c.d(b,{Lb:()=>u,Qj:()=>s,syncConnectionModelCatalog:()=>v});var d=c(51455),e=c.n(d),f=c(48161),g=c.n(f),h=c(76760),i=c.n(h),j=c(40615),k=c(72239);let l=["none","minimal","low","medium","high","xhigh","max","ultra"],m=new Set(["llm","image","embedding","tts","stt","imageToText","webSearch","webFetch"]),n=RegExp(`-(${l.join("|")})$`,"i"),o="0.153.4",p={shell_type:"bash",visibility:"public",supported_in_api:!0,priority:1,additional_speed_tiers:[],service_tiers:[],availability_nux:null,upgrade:null,model_messages:null,include_skills_usage_instructions:!0,include_plugin_usage_instructions:!0,include_apps_usage_instructions:!0,default_reasoning_summary:"none",support_verbosity:!0,default_verbosity:"low",apply_patch_tool_type:"freeform",web_search_tool_type:"text_and_image",truncation_policy:{mode:"tokens",limit:1e4},supports_image_detail_original:!0,context_window:1048576,max_context_window:1048576,comp_hash:"3000",effective_context_window_percent:95,experimental_supported_tools:["send_user_message_async","clock"],input_modalities:["text","image"],supports_search_tool:!0,use_responses_lite:!0,node_repl_auto_review_required:!0,node_repl_disabled:!1,tool_mode:"code_mode_only",multi_agent_version:"v2",multi_agent_reasoning_effort:"medium"};function q(a){let b=a?.kind||a?.type;return m.has(b)?b:"llm"}function r(a){let b=String(("string"==typeof a?a:a?.effort)||"").trim().toLowerCase();return l.includes(b)?b:null}function s(a,b){let c=String(a?.provider||""),d=(0,j.wG)(c),e=new Map;for(let a of Array.isArray(b)?b:[]){let b=a?.id||a?.slug||a?.model||a?.name;if(!b)continue;let f=function(a,b,c){for(let d of new Set([b,c]))if(d&&a.startsWith(`${d}/`))return a.slice(d.length+1);return a}(String(b),c,d);if(!f)continue;let g=q(a),h=function(a,b,c){let d,e=Array.isArray(d=c?.supported_reasoning_levels||c?.supportedReasoningLevels)?[...new Set(d.map(r).filter(Boolean))]:[];return e.length?e:"llm"!==q(c)?[]:(0,k.k)(a,b)||[]}(c,f,a),i={...a,id:f,providerAlias:d,type:g,name:a?.name||a?.display_name||a?.displayName||f,source:"live",...h.length?{reasoningLevels:h}:{}};if(e.set(`${f}|${g}`,i),!("codex"!==c||"llm"!==g||f.endsWith("-review")||n.test(f)))for(let b of h)e.set(`${f}-${b}|${g}`,{...i,id:`${f}-${b}`,name:`${i.name} (${"xhigh"===b?"xHigh":b[0].toUpperCase()+b.slice(1)})`,upstreamModelId:a?.upstreamModelId||f,effortPreset:b})}return[...e.values()]}let t=Promise.resolve();function u(a,{codexDir:b=i().join(g().homedir(),".codex")}={}){let c=async()=>{let c=i().join(b,"models_cache.json"),d={fetched_at:new Date().toISOString(),client_version:o,models:[]};try{d=JSON.parse(await e().readFile(c,"utf8"))}catch(a){if(a?.code!=="ENOENT")throw a}let f=function(a,b){let c=a&&"object"==typeof a?{...a}:{},d=new Map((Array.isArray(c.models)?[...c.models]:[]).map((a,b)=>[a?.slug||a?.id||`__entry_${b}`,a]));for(let a of Array.isArray(b)?b:[]){if(!a?.id||a.effortPreset||"image"===a.type||a.id.endsWith("-review"))continue;let b=function(a){let b=a.slug||`${a.providerAlias}/${a.id}`,c=(a.reasoningLevels||a.supportedReasoningLevels||[]).map(r).filter(Boolean),d=Number(a.contextLength||a.contextWindow||a.context_window)||void 0;return{...p,slug:b,display_name:a.name||a.displayName||a.id||b,description:a.description||`Model ${b} via MiawRouter`,default_reasoning_level:c.includes("medium")?"medium":c[0]||"medium",supported_reasoning_levels:c.map(a=>({effort:a,description:`Reasoning effort: ${a}`})),...d?{context_window:d,max_context_window:d}:{}}}(a),c=d.get(b.slug);d.set(b.slug,c?{...b,...c,supported_reasoning_levels:b.supported_reasoning_levels}:b)}return c.models=[...d.values()],c}(d,a);f.fetched_at=new Date().toISOString(),f.client_version||(f.client_version=o),await e().mkdir(b,{recursive:!0});let g=`${c}.tmp`;return await e().writeFile(g,JSON.stringify(f,null,2)),await e().rename(g,c),f};return t=t.then(c,c)}async function v(a,b={}){if(!a||!1===a.isActive)return{synced:0,skipped:!0};let d=b.resolve||(async a=>{let{resolveProviderConnectionModels:b}=await Promise.all([c.e(5592),c.e(8827),c.e(436),c.e(3943),c.e(3225),c.e(2051),c.e(7828),c.e(5243),c.e(6854)]).then(c.bind(c,93297));return b(a)}),e=b.upsert||(async a=>{let{upsertCustomModels:b}=await c.e(9460).then(c.bind(c,9460));return b(a)}),f=b.writeCache||u;try{let c;try{let g=Promise.resolve(d(a)),h=new Promise((a,d)=>{c=setTimeout(()=>d(Error("model catalog timeout")),b.timeoutMs||3e4)}),i=await Promise.race([g,h]);if(!i||i.error||!Array.isArray(i.models)||0===i.models.length)return{synced:0,skipped:!0,error:i?.error};let j=s(a,i.models);if(!j.length)return{synced:0,skipped:!0};return await e(j),"codex"===a.provider&&await f(j.filter(a=>!a.effortPreset&&"llm"===a.type)),{synced:j.length}}finally{c&&clearTimeout(c)}}catch(a){return{synced:0,failed:!0,error:a?.message||String(a)}}}}};
1
+ "use strict";exports.id=8750,exports.ids=[8750],exports.modules={58750:(a,b,c)=>{c.r(b),c.d(b,{DELETE:()=>E,GET:()=>C,POST:()=>D});var d=c(49796),e=c(23211),f=c(79646),g=c(28354),h=c(79748),i=c.n(h),j=c(33873),k=c.n(j),l=c(21820),m=c.n(l),n=c(52750),o=c(40615),p=c(72239),q=c(65745),r=c(24424);let s=(0,g.promisify)(f.exec),t=()=>k().join(m().homedir(),".codex"),u=()=>k().join(t(),"config.toml"),v=()=>k().join(t(),"auth.json"),w="miawrouter",x=a=>a??{},y=(a,b,c)=>{let d=b.split("."),e=a;for(let a=0;a<d.length-1;a++)(null==e[d[a]]||"object"!=typeof e[d[a]])&&(e[d[a]]={}),e=e[d[a]];e[d[d.length-1]]=c},z=(a,b)=>{let c=b.split("."),d=a;for(let a=0;a<c.length-1;a++)if(null==(d=d?.[c[a]]))return;delete d[c[c.length-1]]},A=async()=>{try{let a="win32"===m().platform(),b=a?{...process.env,PATH:`${process.env.APPDATA}\\npm;${process.env.PATH}`}:process.env;return await s(a?"where codex":"which codex",{windowsHide:!0,env:b}),!0}catch{try{return await i().access(u()),!0}catch{return!1}}},B=async()=>{try{let a=u();return await i().readFile(a,"utf-8")}catch(a){if("ENOENT"===a.code)return null;throw a}};async function C(){try{if(!await A())return e.NextResponse.json({installed:!1,config:null,message:"Codex CLI is not installed"});let a=await B(),b={explorer:"",reviewer:"",planner:"",fast:""};try{if(a){let c=(0,n.M)(a);b={explorer:c?.agents?.explorer?.model||c?.agents?.subagent?.model||"",reviewer:c?.agents?.reviewer?.model||"",planner:c?.agents?.planner?.model||"",fast:c?.agents?.fast?.model||""}}}catch{}return e.NextResponse.json({installed:!0,config:a,subagents:b,hasMiawRouter:!!a&&(a.includes(`model_provider = "${w}"`)||a.includes(`[model_providers.${w}]`)),configPath:u()})}catch(a){return console.log("Error checking codex settings:",a),e.NextResponse.json({error:"Failed to check codex settings"},{status:500})}}async function D(a){try{let{baseUrl:b,apiKey:c,model:d,subagentModel:f,subagents:g}=await a.json();if(!b||!c||!d)return e.NextResponse.json({error:"baseUrl, apiKey and model are required"},{status:400});let h=t(),j=u();await i().mkdir(h,{recursive:!0});let k={};try{let a=await i().readFile(j,"utf-8");k=x((0,n.M)(a))}catch{}k.model=d,k.model_provider=w;let l=b.endsWith("/v1")?b:`${b}/v1`;y(k,`model_providers.${w}`,{name:"MiawRouter",base_url:l,wire_api:"responses",http_headers:{Authorization:`Bearer ${c}`}});let m={explorer:g?.explorer||f||d,reviewer:g?.reviewer||d,planner:g?.planner||d,fast:g?.fast||f||d};y(k,"agents.explorer",{description:"Fast explorer subagent for codebase exploration",model:m.explorer}),y(k,"agents.reviewer",{description:"Reviewer & auditor for adversarial review and verification",model:m.reviewer}),y(k,"agents.planner",{description:"Architectural planner for task decomposition",model:m.planner}),y(k,"agents.fast",{description:"Fast helper subagent for low-latency edits and diffs",model:m.fast}),y(k,"agents.subagent",{description:"Default fallback subagent",model:m.fast||m.explorer});let r=(0,n.q)(k);await i().writeFile(j,r);let s=v(),z={};try{let a=await i().readFile(s,"utf-8");z=JSON.parse(a)}catch{}z.OPENAI_API_KEY=c,z.auth_mode="apikey",await i().writeFile(s,JSON.stringify(z,null,2));try{let a=String(d).indexOf("/"),b=a>0?d.slice(0,a):"codex",c=a>0?d.slice(a+1):d,e=(0,o.rs)(b);await (0,q.Lb)([{providerAlias:b,id:c,name:c,type:"llm",reasoningLevels:(0,p.k)(e,c)||[]}],{codexDir:h})}catch{}return e.NextResponse.json({success:!0,message:"Codex settings applied successfully!",configPath:j})}catch(a){return console.log("Error updating codex settings:",a),e.NextResponse.json({error:"Failed to update codex settings"},{status:500})}}async function E(){try{let a=u(),b={};try{let c=await i().readFile(a,"utf-8");b=x((0,n.M)(c))}catch(a){if("ENOENT"===a.code)return e.NextResponse.json({success:!0,message:"No config file to reset"});throw a}b.model_provider===w&&(delete b.model,delete b.model_provider),z(b,`model_providers.${w}`),z(b,"agents.subagent");let c=(0,n.q)(b);await i().writeFile(a,c);let d=v();try{let a=await i().readFile(d,"utf-8"),b=JSON.parse(a);delete b.OPENAI_API_KEY,delete b.auth_mode,0===Object.keys(b).length?await i().unlink(d):await i().writeFile(d,JSON.stringify(b,null,2))}catch{}return e.NextResponse.json({success:!0,message:"MiawRouter settings removed successfully"})}catch(a){return console.log("Error resetting codex settings:",a),e.NextResponse.json({error:"Failed to reset codex settings"},{status:500})}}(0,r.D)([C,D,E]),(0,d.A)(C,"00aa7ecbdbd2491a5416b91d9d0b4b24f127e8277b",null),(0,d.A)(D,"403036c5dc746a456f830fb79dd033b5ce467b8f54",null),(0,d.A)(E,"006cd0613bb911818fa8928dbec3e5618689959878",null)},65745:(a,b,c)=>{c.d(b,{Lb:()=>u,Qj:()=>s,syncConnectionModelCatalog:()=>v});var d=c(51455),e=c.n(d),f=c(48161),g=c.n(f),h=c(76760),i=c.n(h),j=c(40615),k=c(72239);let l=["none","minimal","low","medium","high","xhigh","max","ultra"],m=new Set(["llm","image","embedding","tts","stt","imageToText","webSearch","webFetch"]),n=RegExp(`-(${l.join("|")})$`,"i"),o="0.153.4",p={shell_type:"bash",visibility:"public",supported_in_api:!0,priority:1,additional_speed_tiers:[],service_tiers:[],availability_nux:null,upgrade:null,model_messages:null,include_skills_usage_instructions:!0,include_plugin_usage_instructions:!0,include_apps_usage_instructions:!0,default_reasoning_summary:"none",support_verbosity:!0,default_verbosity:"low",apply_patch_tool_type:"freeform",web_search_tool_type:"text_and_image",truncation_policy:{mode:"tokens",limit:1e4},supports_image_detail_original:!0,context_window:1048576,max_context_window:1048576,comp_hash:"3000",effective_context_window_percent:95,experimental_supported_tools:["send_user_message_async","clock"],input_modalities:["text","image"],supports_search_tool:!0,use_responses_lite:!0,node_repl_auto_review_required:!0,node_repl_disabled:!1,tool_mode:"code_mode_only",multi_agent_version:"v2",multi_agent_reasoning_effort:"medium"};function q(a){let b=a?.kind||a?.type;return m.has(b)?b:"llm"}function r(a){let b=String(("string"==typeof a?a:a?.effort)||"").trim().toLowerCase();return l.includes(b)?b:null}function s(a,b){let c=String(a?.provider||""),d=(0,j.wG)(c),e=new Map;for(let a of Array.isArray(b)?b:[]){let b=a?.id||a?.slug||a?.model||a?.name;if(!b)continue;let f=function(a,b,c){for(let d of new Set([b,c]))if(d&&a.startsWith(`${d}/`))return a.slice(d.length+1);return a}(String(b),c,d);if(!f)continue;let g=q(a),h=function(a,b,c){let d,e=Array.isArray(d=c?.supported_reasoning_levels||c?.supportedReasoningLevels)?[...new Set(d.map(r).filter(Boolean))]:[];return e.length?e:"llm"!==q(c)?[]:(0,k.k)(a,b)||[]}(c,f,a),i={...a,id:f,providerAlias:d,type:g,name:a?.name||a?.display_name||a?.displayName||f,source:"live",...h.length?{reasoningLevels:h}:{}};if(e.set(`${f}|${g}`,i),!("codex"!==c||"llm"!==g||f.endsWith("-review")||n.test(f)))for(let b of h)e.set(`${f}-${b}|${g}`,{...i,id:`${f}-${b}`,name:`${i.name} (${"xhigh"===b?"xHigh":b[0].toUpperCase()+b.slice(1)})`,upstreamModelId:a?.upstreamModelId||f,effortPreset:b})}return[...e.values()]}let t=Promise.resolve();function u(a,{codexDir:b=i().join(g().homedir(),".codex")}={}){let c=async()=>{let c=i().join(b,"models_cache.json"),d={fetched_at:new Date().toISOString(),client_version:o,models:[]};try{d=JSON.parse(await e().readFile(c,"utf8"))}catch(a){if(a?.code!=="ENOENT")throw a}let f=function(a,b){let c=a&&"object"==typeof a?{...a}:{},d=new Map((Array.isArray(c.models)?[...c.models]:[]).map((a,b)=>[a?.slug||a?.id||`__entry_${b}`,a]));for(let a of Array.isArray(b)?b:[]){if(!a?.id||a.effortPreset||"image"===a.type||a.id.endsWith("-review"))continue;let b=function(a){let b=a.slug||`${a.providerAlias}/${a.id}`,c=(a.reasoningLevels||a.supportedReasoningLevels||[]).map(r).filter(Boolean),d=Number(a.contextLength||a.contextWindow||a.context_window)||void 0;return{...p,slug:b,display_name:a.name||a.displayName||a.id||b,description:a.description||`Model ${b} via MiawRouter`,default_reasoning_level:c.includes("medium")?"medium":c[0]||"medium",supported_reasoning_levels:c.map(a=>({effort:a,description:`Reasoning effort: ${a}`})),...d?{context_window:d,max_context_window:d}:{}}}(a),c=d.get(b.slug);d.set(b.slug,c?{...b,...c,supported_reasoning_levels:b.supported_reasoning_levels}:b)}return c.models=[...d.values()],c}(d,a);f.fetched_at=new Date().toISOString(),f.client_version||(f.client_version=o),await e().mkdir(b,{recursive:!0});let g=`${c}.tmp`;return await e().writeFile(g,JSON.stringify(f,null,2)),await e().rename(g,c),f};return t=t.then(c,c)}async function v(a,b={}){if(!a||!1===a.isActive)return{synced:0,skipped:!0};let d=b.resolve||(async a=>{let{resolveProviderConnectionModels:b}=await Promise.all([c.e(5592),c.e(8827),c.e(436),c.e(3943),c.e(3225),c.e(2051),c.e(7828),c.e(5243),c.e(6854)]).then(c.bind(c,93297));return b(a)}),e=b.upsert||(async a=>{let{upsertCustomModels:b}=await c.e(9460).then(c.bind(c,9460));return b(a)}),f=b.writeCache||u;try{let c;try{let g=Promise.resolve(d(a)),h=new Promise((a,d)=>{c=setTimeout(()=>d(Error("model catalog timeout")),b.timeoutMs||3e4)}),i=await Promise.race([g,h]);if(!i||i.error||!Array.isArray(i.models)||0===i.models.length)return{synced:0,skipped:!0,error:i?.error};let j=s(a,i.models);if(!j.length)return{synced:0,skipped:!0};return await e(j),"codex"===a.provider&&await f(j.filter(a=>!a.effortPreset&&"llm"===a.type)),{synced:j.length}}finally{c&&clearTimeout(c)}}catch(a){return{synced:0,failed:!0,error:a?.message||String(a)}}}}};
@@ -1 +1 @@
1
- {"version":1,"files":["../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../node_modules/better-sqlite3/lib/database.js","../../node_modules/better-sqlite3/lib/index.js","../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../node_modules/better-sqlite3/lib/methods/backup.js","../../node_modules/better-sqlite3/lib/methods/function.js","../../node_modules/better-sqlite3/lib/methods/inspect.js","../../node_modules/better-sqlite3/lib/methods/pragma.js","../../node_modules/better-sqlite3/lib/methods/serialize.js","../../node_modules/better-sqlite3/lib/methods/table.js","../../node_modules/better-sqlite3/lib/methods/transaction.js","../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../node_modules/better-sqlite3/lib/sqlite-error.js","../../node_modules/better-sqlite3/lib/util.js","../../node_modules/better-sqlite3/package.json","../../node_modules/bindings/bindings.js","../../node_modules/bindings/package.json","../../node_modules/file-uri-to-path/index.js","../../node_modules/file-uri-to-path/package.json","../../node_modules/sql.js/dist/sql-wasm.js","../../node_modules/sql.js/package.json","../package.json","chunks/112.js","chunks/1220.js","chunks/1260.js","chunks/1273.js","chunks/1455.js","chunks/146.js","chunks/1580.js","chunks/1595.js","chunks/1660.js","chunks/1707.js","chunks/1719.js","chunks/1955.js","chunks/1998.js","chunks/2051.js","chunks/2253.js","chunks/238.js","chunks/241.js","chunks/2430.js","chunks/2495.js","chunks/2638.js","chunks/2773.js","chunks/2813.js","chunks/2974.js","chunks/318.js","chunks/3191.js","chunks/3225.js","chunks/3535.js","chunks/3546.js","chunks/3593.js","chunks/3755.js","chunks/3879.js","chunks/3943.js","chunks/4018.js","chunks/4037.js","chunks/412.js","chunks/4123.js","chunks/4303.js","chunks/436.js","chunks/4433.js","chunks/4467.js","chunks/4632.js","chunks/4730.js","chunks/4739.js","chunks/4741.js","chunks/4780.js","chunks/4803.js","chunks/507.js","chunks/5243.js","chunks/5258.js","chunks/5433.js","chunks/5485.js","chunks/5573.js","chunks/5592.js","chunks/5615.js","chunks/5699.js","chunks/5731.js","chunks/6030.js","chunks/6070.js","chunks/615.js","chunks/6246.js","chunks/6252.js","chunks/6261.js","chunks/6270.js","chunks/6306.js","chunks/6328.js","chunks/6457.js","chunks/6514.js","chunks/6664.js","chunks/6708.js","chunks/6727.js","chunks/6731.js","chunks/6763.js","chunks/6803.js","chunks/6832.js","chunks/6840.js","chunks/6844.js","chunks/6854.js","chunks/6970.js","chunks/698.js","chunks/7027.js","chunks/7121.js","chunks/7403.js","chunks/7558.js","chunks/772.js","chunks/7774.js","chunks/7813.js","chunks/7814.js","chunks/7828.js","chunks/7843.js","chunks/7965.js","chunks/8039.js","chunks/8062.js","chunks/8126.js","chunks/8252.js","chunks/8469.js","chunks/8499.js","chunks/8520.js","chunks/8537.js","chunks/8567.js","chunks/862.js","chunks/869.js","chunks/8750.js","chunks/8827.js","chunks/8845.js","chunks/8895.js","chunks/8910.js","chunks/8920.js","chunks/8962.js","chunks/9293.js","chunks/9451.js","chunks/9460.js","chunks/9524.js","chunks/9528.js","chunks/9616.js","chunks/9968.js","chunks/9997.js","webpack-runtime.js"]}
1
+ {"version":1,"files":["../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../node_modules/better-sqlite3/lib/database.js","../../node_modules/better-sqlite3/lib/index.js","../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../node_modules/better-sqlite3/lib/methods/backup.js","../../node_modules/better-sqlite3/lib/methods/function.js","../../node_modules/better-sqlite3/lib/methods/inspect.js","../../node_modules/better-sqlite3/lib/methods/pragma.js","../../node_modules/better-sqlite3/lib/methods/serialize.js","../../node_modules/better-sqlite3/lib/methods/table.js","../../node_modules/better-sqlite3/lib/methods/transaction.js","../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../node_modules/better-sqlite3/lib/sqlite-error.js","../../node_modules/better-sqlite3/lib/util.js","../../node_modules/better-sqlite3/package.json","../../node_modules/bindings/bindings.js","../../node_modules/bindings/package.json","../../node_modules/file-uri-to-path/index.js","../../node_modules/file-uri-to-path/package.json","../../node_modules/sql.js/dist/sql-wasm.js","../../node_modules/sql.js/package.json","../package.json","chunks/112.js","chunks/1220.js","chunks/1260.js","chunks/1273.js","chunks/1455.js","chunks/146.js","chunks/1580.js","chunks/1595.js","chunks/1660.js","chunks/1707.js","chunks/1719.js","chunks/1955.js","chunks/1998.js","chunks/2051.js","chunks/2253.js","chunks/238.js","chunks/241.js","chunks/2430.js","chunks/2495.js","chunks/2638.js","chunks/2773.js","chunks/2813.js","chunks/2974.js","chunks/318.js","chunks/3191.js","chunks/3225.js","chunks/3535.js","chunks/3546.js","chunks/3593.js","chunks/3755.js","chunks/3879.js","chunks/3943.js","chunks/4037.js","chunks/412.js","chunks/4123.js","chunks/4303.js","chunks/436.js","chunks/4433.js","chunks/4467.js","chunks/4632.js","chunks/4730.js","chunks/4739.js","chunks/4741.js","chunks/4780.js","chunks/4803.js","chunks/507.js","chunks/5243.js","chunks/5258.js","chunks/5433.js","chunks/5485.js","chunks/5573.js","chunks/5592.js","chunks/5615.js","chunks/5699.js","chunks/5731.js","chunks/6030.js","chunks/6070.js","chunks/615.js","chunks/6246.js","chunks/6252.js","chunks/6261.js","chunks/6270.js","chunks/6306.js","chunks/6328.js","chunks/6457.js","chunks/6514.js","chunks/6664.js","chunks/6708.js","chunks/6727.js","chunks/6731.js","chunks/6763.js","chunks/6803.js","chunks/6832.js","chunks/6840.js","chunks/6844.js","chunks/6854.js","chunks/6970.js","chunks/698.js","chunks/7027.js","chunks/7121.js","chunks/7403.js","chunks/7558.js","chunks/772.js","chunks/7774.js","chunks/7813.js","chunks/7814.js","chunks/7828.js","chunks/7843.js","chunks/7937.js","chunks/7965.js","chunks/8039.js","chunks/8062.js","chunks/8126.js","chunks/8252.js","chunks/8469.js","chunks/8499.js","chunks/8520.js","chunks/8537.js","chunks/8567.js","chunks/862.js","chunks/869.js","chunks/8750.js","chunks/8827.js","chunks/8845.js","chunks/8895.js","chunks/8910.js","chunks/8920.js","chunks/8962.js","chunks/9293.js","chunks/9451.js","chunks/9460.js","chunks/9524.js","chunks/9528.js","chunks/9616.js","chunks/9968.js","chunks/9997.js","webpack-runtime.js"]}
@@ -1 +1 @@
1
- globalThis.__BUILD_MANIFEST={polyfillFiles:["static/chunks/polyfills-42372ed130431b0a.js"],devFiles:[],lowPriorityFiles:["static/X4uxXfKI78mMCnlqFsTAr/_buildManifest.js","static/X4uxXfKI78mMCnlqFsTAr/_ssgManifest.js"],rootMainFiles:["static/chunks/webpack-cfe64bcd232c635c.js","static/chunks/4bd1b696-8a4ab4fdf0ae305a.js","static/chunks/3794-6cecce02b123eb1f.js","static/chunks/main-app-fa3e3fb218f9eade.js"],rootMainFilesTree:{},pages:{"/_app":[]}};
1
+ globalThis.__BUILD_MANIFEST={polyfillFiles:["static/chunks/polyfills-42372ed130431b0a.js"],devFiles:[],lowPriorityFiles:["static/DryEkcB2pIbzN1YYgNcUS/_buildManifest.js","static/DryEkcB2pIbzN1YYgNcUS/_ssgManifest.js"],rootMainFiles:["static/chunks/webpack-cfe64bcd232c635c.js","static/chunks/4bd1b696-8a4ab4fdf0ae305a.js","static/chunks/3794-6cecce02b123eb1f.js","static/chunks/main-app-fa3e3fb218f9eade.js"],rootMainFilesTree:{},pages:{"/_app":[]}};