@rsalmn/extremerouter 0.7.6 → 0.7.7

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 (884) hide show
  1. package/app/.next-cli-build/BUILD_ID +1 -1
  2. package/app/.next-cli-build/app-path-routes-manifest.json +17 -12
  3. package/app/.next-cli-build/build-manifest.json +2 -2
  4. package/app/.next-cli-build/routes-manifest.json +34 -0
  5. package/app/.next-cli-build/server/app/(dashboard)/dashboard/alerts/page.js +2 -2
  6. package/app/.next-cli-build/server/app/(dashboard)/dashboard/alerts/page.js.nft.json +1 -1
  7. package/app/.next-cli-build/server/app/(dashboard)/dashboard/alerts/page_client-reference-manifest.js +1 -1
  8. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js +2 -2
  9. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js.nft.json +1 -1
  10. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
  11. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js +3 -3
  12. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js.nft.json +1 -1
  13. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page_client-reference-manifest.js +1 -1
  14. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js +2 -2
  15. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json +1 -1
  16. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  17. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js +2 -2
  18. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js.nft.json +1 -1
  19. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  20. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js +2 -2
  21. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js.nft.json +1 -1
  22. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
  23. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js +2 -2
  24. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json +1 -1
  25. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  26. package/app/.next-cli-build/server/app/(dashboard)/dashboard/health/page.js +2 -2
  27. package/app/.next-cli-build/server/app/(dashboard)/dashboard/health/page.js.nft.json +1 -1
  28. package/app/.next-cli-build/server/app/(dashboard)/dashboard/health/page_client-reference-manifest.js +1 -1
  29. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js +2 -2
  30. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js.nft.json +1 -1
  31. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js +1 -1
  32. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js +2 -2
  33. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js.nft.json +1 -1
  34. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page_client-reference-manifest.js +1 -1
  35. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js +3 -3
  36. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js.nft.json +1 -1
  37. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page_client-reference-manifest.js +1 -1
  38. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js +2 -2
  39. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js.nft.json +1 -1
  40. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page_client-reference-manifest.js +1 -1
  41. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js +2 -2
  42. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js.nft.json +1 -1
  43. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
  44. package/app/.next-cli-build/server/app/(dashboard)/dashboard/overview/page.js +2 -2
  45. package/app/.next-cli-build/server/app/(dashboard)/dashboard/overview/page.js.nft.json +1 -1
  46. package/app/.next-cli-build/server/app/(dashboard)/dashboard/overview/page_client-reference-manifest.js +1 -1
  47. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js +2 -2
  48. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
  49. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  50. package/app/.next-cli-build/server/app/(dashboard)/dashboard/playground/page.js +2 -2
  51. package/app/.next-cli-build/server/app/(dashboard)/dashboard/playground/page.js.nft.json +1 -1
  52. package/app/.next-cli-build/server/app/(dashboard)/dashboard/playground/page_client-reference-manifest.js +1 -1
  53. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js +2 -2
  54. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js.nft.json +1 -1
  55. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  56. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js +3 -3
  57. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json +1 -1
  58. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  59. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js +2 -2
  60. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js.nft.json +1 -1
  61. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  62. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js +2 -2
  63. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js.nft.json +1 -1
  64. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  65. package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page.js +3 -3
  66. package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page.js.nft.json +1 -1
  67. package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
  68. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js +2 -2
  69. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js.nft.json +1 -1
  70. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
  71. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page.js +2 -2
  72. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page.js.nft.json +1 -1
  73. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page_client-reference-manifest.js +1 -1
  74. package/app/.next-cli-build/server/app/(dashboard)/dashboard/swarm/page.js +2 -2
  75. package/app/.next-cli-build/server/app/(dashboard)/dashboard/swarm/page.js.nft.json +1 -1
  76. package/app/.next-cli-build/server/app/(dashboard)/dashboard/swarm/page_client-reference-manifest.js +1 -1
  77. package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page.js +2 -2
  78. package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page.js.nft.json +1 -1
  79. package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page_client-reference-manifest.js +1 -1
  80. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js +2 -2
  81. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js.nft.json +1 -1
  82. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  83. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js +2 -2
  84. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js.nft.json +1 -1
  85. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  86. package/app/.next-cli-build/server/app/_global-error/page.js +3 -3
  87. package/app/.next-cli-build/server/app/_global-error/page.js.nft.json +1 -1
  88. package/app/.next-cli-build/server/app/_global-error/page_client-reference-manifest.js +1 -1
  89. package/app/.next-cli-build/server/app/_global-error.html +1 -1
  90. package/app/.next-cli-build/server/app/_global-error.rsc +1 -1
  91. package/app/.next-cli-build/server/app/_global-error.segments/_full.segment.rsc +1 -1
  92. package/app/.next-cli-build/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  93. package/app/.next-cli-build/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  94. package/app/.next-cli-build/server/app/_global-error.segments/_head.segment.rsc +1 -1
  95. package/app/.next-cli-build/server/app/_global-error.segments/_index.segment.rsc +1 -1
  96. package/app/.next-cli-build/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  97. package/app/.next-cli-build/server/app/_not-found/page.js +2 -2
  98. package/app/.next-cli-build/server/app/_not-found/page.js.nft.json +1 -1
  99. package/app/.next-cli-build/server/app/_not-found/page_client-reference-manifest.js +1 -1
  100. package/app/.next-cli-build/server/app/_not-found.html +1 -1
  101. package/app/.next-cli-build/server/app/_not-found.rsc +5 -5
  102. package/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +5 -5
  103. package/app/.next-cli-build/server/app/_not-found.segments/_head.segment.rsc +1 -1
  104. package/app/.next-cli-build/server/app/_not-found.segments/_index.segment.rsc +5 -5
  105. package/app/.next-cli-build/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  106. package/app/.next-cli-build/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  107. package/app/.next-cli-build/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  108. package/app/.next-cli-build/server/app/api/alerts/test/route.js +2 -2
  109. package/app/.next-cli-build/server/app/api/alerts/test/route.js.nft.json +1 -1
  110. package/app/.next-cli-build/server/app/api/auth/login/route.js +1 -1
  111. package/app/.next-cli-build/server/app/api/auth/login/route.js.nft.json +1 -1
  112. package/app/.next-cli-build/server/app/api/auth/logout/route.js +1 -1
  113. package/app/.next-cli-build/server/app/api/auth/logout/route.js.nft.json +1 -1
  114. package/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js +1 -1
  115. package/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js.nft.json +1 -1
  116. package/app/.next-cli-build/server/app/api/auth/oidc/start/route.js +1 -1
  117. package/app/.next-cli-build/server/app/api/auth/oidc/start/route.js.nft.json +1 -1
  118. package/app/.next-cli-build/server/app/api/auth/oidc/test/route.js +1 -1
  119. package/app/.next-cli-build/server/app/api/auth/oidc/test/route.js.nft.json +1 -1
  120. package/app/.next-cli-build/server/app/api/auth/reset-password/route.js +1 -1
  121. package/app/.next-cli-build/server/app/api/auth/reset-password/route.js.nft.json +1 -1
  122. package/app/.next-cli-build/server/app/api/auth/status/route.js +1 -1
  123. package/app/.next-cli-build/server/app/api/auth/status/route.js.nft.json +1 -1
  124. package/app/.next-cli-build/server/app/api/cache/route.js +1 -1
  125. package/app/.next-cli-build/server/app/api/cache/route.js.nft.json +1 -1
  126. package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js +2 -2
  127. package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js.nft.json +1 -1
  128. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js +2 -2
  129. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js.nft.json +1 -1
  130. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js +1 -1
  131. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js.nft.json +1 -1
  132. package/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js +2 -2
  133. package/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js.nft.json +1 -1
  134. package/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js +1 -1
  135. package/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js.nft.json +1 -1
  136. package/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js +1 -1
  137. package/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js.nft.json +1 -1
  138. package/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js +1 -1
  139. package/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js.nft.json +1 -1
  140. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js +1 -1
  141. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js.nft.json +1 -1
  142. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js +1 -1
  143. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js.nft.json +1 -1
  144. package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js +1 -1
  145. package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js.nft.json +1 -1
  146. package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js +2 -2
  147. package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js.nft.json +1 -1
  148. package/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js +2 -2
  149. package/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js.nft.json +1 -1
  150. package/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js +1 -1
  151. package/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js.nft.json +1 -1
  152. package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js +1 -1
  153. package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js.nft.json +1 -1
  154. package/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js +1 -1
  155. package/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js.nft.json +1 -1
  156. package/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js +1 -1
  157. package/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js.nft.json +1 -1
  158. package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js +1 -1
  159. package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js.nft.json +1 -1
  160. package/app/.next-cli-build/server/app/api/combos/[id]/route.js +1 -1
  161. package/app/.next-cli-build/server/app/api/combos/[id]/route.js.nft.json +1 -1
  162. package/app/.next-cli-build/server/app/api/combos/route.js +1 -1
  163. package/app/.next-cli-build/server/app/api/combos/route.js.nft.json +1 -1
  164. package/app/.next-cli-build/server/app/api/combos/validate-roles/route.js +1 -0
  165. package/app/.next-cli-build/server/app/api/combos/validate-roles/route.js.nft.json +1 -0
  166. package/app/.next-cli-build/server/app/api/combos/validate-roles/route_client-reference-manifest.js +1 -0
  167. package/app/.next-cli-build/server/app/api/dashboard/stream/route.js +2 -2
  168. package/app/.next-cli-build/server/app/api/dashboard/stream/route.js.nft.json +1 -1
  169. package/app/.next-cli-build/server/app/api/headroom/start/route.js +1 -1
  170. package/app/.next-cli-build/server/app/api/headroom/start/route.js.nft.json +1 -1
  171. package/app/.next-cli-build/server/app/api/headroom/status/route.js +1 -1
  172. package/app/.next-cli-build/server/app/api/headroom/status/route.js.nft.json +1 -1
  173. package/app/.next-cli-build/server/app/api/headroom/stop/route.js +2 -2
  174. package/app/.next-cli-build/server/app/api/headroom/stop/route.js.nft.json +1 -1
  175. package/app/.next-cli-build/server/app/api/health/providers/route.js +1 -1
  176. package/app/.next-cli-build/server/app/api/health/providers/route.js.nft.json +1 -1
  177. package/app/.next-cli-build/server/app/api/health/route.js +1 -1
  178. package/app/.next-cli-build/server/app/api/health/route.js.nft.json +1 -1
  179. package/app/.next-cli-build/server/app/api/health/stream/route.js +2 -2
  180. package/app/.next-cli-build/server/app/api/health/stream/route.js.nft.json +1 -1
  181. package/app/.next-cli-build/server/app/api/init/route.js +1 -1
  182. package/app/.next-cli-build/server/app/api/init/route.js.nft.json +1 -1
  183. package/app/.next-cli-build/server/app/api/keys/[id]/route.js +1 -1
  184. package/app/.next-cli-build/server/app/api/keys/[id]/route.js.nft.json +1 -1
  185. package/app/.next-cli-build/server/app/api/keys/route.js +1 -1
  186. package/app/.next-cli-build/server/app/api/keys/route.js.nft.json +1 -1
  187. package/app/.next-cli-build/server/app/api/locale/route.js +1 -1
  188. package/app/.next-cli-build/server/app/api/locale/route.js.nft.json +1 -1
  189. package/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js +2 -2
  190. package/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js.nft.json +1 -1
  191. package/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js +2 -2
  192. package/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js.nft.json +1 -1
  193. package/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js +1 -1
  194. package/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js.nft.json +1 -1
  195. package/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js +1 -1
  196. package/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js.nft.json +1 -1
  197. package/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js +1 -1
  198. package/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js.nft.json +1 -1
  199. package/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js +1 -1
  200. package/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js.nft.json +1 -1
  201. package/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js +1 -1
  202. package/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js.nft.json +1 -1
  203. package/app/.next-cli-build/server/app/api/models/alias/route.js +1 -1
  204. package/app/.next-cli-build/server/app/api/models/alias/route.js.nft.json +1 -1
  205. package/app/.next-cli-build/server/app/api/models/availability/route.js +1 -1
  206. package/app/.next-cli-build/server/app/api/models/availability/route.js.nft.json +1 -1
  207. package/app/.next-cli-build/server/app/api/models/custom/route.js +1 -1
  208. package/app/.next-cli-build/server/app/api/models/custom/route.js.nft.json +1 -1
  209. package/app/.next-cli-build/server/app/api/models/disabled/route.js +1 -1
  210. package/app/.next-cli-build/server/app/api/models/disabled/route.js.nft.json +1 -1
  211. package/app/.next-cli-build/server/app/api/models/route.js +1 -1
  212. package/app/.next-cli-build/server/app/api/models/route.js.nft.json +1 -1
  213. package/app/.next-cli-build/server/app/api/models/test/route.js +1 -1
  214. package/app/.next-cli-build/server/app/api/models/test/route.js.nft.json +1 -1
  215. package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js +1 -1
  216. package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -1
  217. package/app/.next-cli-build/server/app/api/oauth/codex/bulk-import/route.js +1 -1
  218. package/app/.next-cli-build/server/app/api/oauth/codex/bulk-import/route.js.nft.json +1 -1
  219. package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js +1 -1
  220. package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js.nft.json +1 -1
  221. package/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js +2 -2
  222. package/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js.nft.json +1 -1
  223. package/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js +1 -1
  224. package/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js.nft.json +1 -1
  225. package/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js +1 -1
  226. package/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js.nft.json +1 -1
  227. package/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js +1 -1
  228. package/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js.nft.json +1 -1
  229. package/app/.next-cli-build/server/app/api/oauth/kiro/api-key/route.js +1 -1
  230. package/app/.next-cli-build/server/app/api/oauth/kiro/api-key/route.js.nft.json +1 -1
  231. package/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route.js +1 -1
  232. package/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route.js.nft.json +1 -1
  233. package/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js +1 -1
  234. package/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js.nft.json +1 -1
  235. package/app/.next-cli-build/server/app/api/oauth/kiro/import-cli-proxy/route.js +1 -1
  236. package/app/.next-cli-build/server/app/api/oauth/kiro/import-cli-proxy/route.js.nft.json +1 -1
  237. package/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js +1 -1
  238. package/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js.nft.json +1 -1
  239. package/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js +1 -1
  240. package/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js.nft.json +1 -1
  241. package/app/.next-cli-build/server/app/api/oauth/zed/auto-import/route.js +3 -0
  242. package/app/.next-cli-build/server/app/api/oauth/zed/auto-import/route.js.nft.json +1 -0
  243. package/app/.next-cli-build/server/app/api/oauth/zed/auto-import/route_client-reference-manifest.js +1 -0
  244. package/app/.next-cli-build/server/app/api/oauth/zed/import/route.js +1 -0
  245. package/app/.next-cli-build/server/app/api/oauth/zed/import/route.js.nft.json +1 -0
  246. package/app/.next-cli-build/server/app/api/oauth/zed/import/route_client-reference-manifest.js +1 -0
  247. package/app/.next-cli-build/server/app/api/pricing/route.js +1 -1
  248. package/app/.next-cli-build/server/app/api/pricing/route.js.nft.json +1 -1
  249. package/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js +1 -1
  250. package/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js.nft.json +1 -1
  251. package/app/.next-cli-build/server/app/api/provider-nodes/route.js +1 -1
  252. package/app/.next-cli-build/server/app/api/provider-nodes/route.js.nft.json +1 -1
  253. package/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js +1 -1
  254. package/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js.nft.json +1 -1
  255. package/app/.next-cli-build/server/app/api/providers/[id]/freebuff-profile/route.js +1 -1
  256. package/app/.next-cli-build/server/app/api/providers/[id]/freebuff-profile/route.js.nft.json +1 -1
  257. package/app/.next-cli-build/server/app/api/providers/[id]/health-timeline/route.js +1 -1
  258. package/app/.next-cli-build/server/app/api/providers/[id]/health-timeline/route.js.nft.json +1 -1
  259. package/app/.next-cli-build/server/app/api/providers/[id]/inxora-profile/route.js +1 -1
  260. package/app/.next-cli-build/server/app/api/providers/[id]/inxora-profile/route.js.nft.json +1 -1
  261. package/app/.next-cli-build/server/app/api/providers/[id]/models/route.js +1 -1
  262. package/app/.next-cli-build/server/app/api/providers/[id]/models/route.js.nft.json +1 -1
  263. package/app/.next-cli-build/server/app/api/providers/[id]/onemin-api-profile/route.js +1 -0
  264. package/app/.next-cli-build/server/app/api/providers/[id]/onemin-api-profile/route.js.nft.json +1 -0
  265. package/app/.next-cli-build/server/app/api/providers/[id]/onemin-api-profile/route_client-reference-manifest.js +1 -0
  266. package/app/.next-cli-build/server/app/api/providers/[id]/onemin-profile/route.js +1 -0
  267. package/app/.next-cli-build/server/app/api/providers/[id]/onemin-profile/route.js.nft.json +1 -0
  268. package/app/.next-cli-build/server/app/api/providers/[id]/onemin-profile/route_client-reference-manifest.js +1 -0
  269. package/app/.next-cli-build/server/app/api/providers/[id]/qwencloud-profile/route.js +1 -1
  270. package/app/.next-cli-build/server/app/api/providers/[id]/qwencloud-profile/route.js.nft.json +1 -1
  271. package/app/.next-cli-build/server/app/api/providers/[id]/route.js +1 -1
  272. package/app/.next-cli-build/server/app/api/providers/[id]/route.js.nft.json +1 -1
  273. package/app/.next-cli-build/server/app/api/providers/[id]/test/route.js +1 -1
  274. package/app/.next-cli-build/server/app/api/providers/[id]/test/route.js.nft.json +1 -1
  275. package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js +1 -1
  276. package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js.nft.json +1 -1
  277. package/app/.next-cli-build/server/app/api/providers/[id]/v0-profile/route.js +1 -1
  278. package/app/.next-cli-build/server/app/api/providers/[id]/v0-profile/route.js.nft.json +1 -1
  279. package/app/.next-cli-build/server/app/api/providers/[id]/vault-pool/route.js +1 -1
  280. package/app/.next-cli-build/server/app/api/providers/[id]/vault-pool/route.js.nft.json +1 -1
  281. package/app/.next-cli-build/server/app/api/providers/[id]/zenmux-plans/route.js +1 -1
  282. package/app/.next-cli-build/server/app/api/providers/[id]/zenmux-plans/route.js.nft.json +1 -1
  283. package/app/.next-cli-build/server/app/api/providers/client/route.js +1 -1
  284. package/app/.next-cli-build/server/app/api/providers/client/route.js.nft.json +1 -1
  285. package/app/.next-cli-build/server/app/api/providers/kilo/free-models/route.js +1 -1
  286. package/app/.next-cli-build/server/app/api/providers/kilo/free-models/route.js.nft.json +1 -1
  287. package/app/.next-cli-build/server/app/api/providers/route.js +1 -1
  288. package/app/.next-cli-build/server/app/api/providers/route.js.nft.json +1 -1
  289. package/app/.next-cli-build/server/app/api/providers/suggested-models/route.js +1 -1
  290. package/app/.next-cli-build/server/app/api/providers/suggested-models/route.js.nft.json +1 -1
  291. package/app/.next-cli-build/server/app/api/providers/test-batch/route.js +1 -1
  292. package/app/.next-cli-build/server/app/api/providers/test-batch/route.js.nft.json +1 -1
  293. package/app/.next-cli-build/server/app/api/providers/validate/route.js +1 -1
  294. package/app/.next-cli-build/server/app/api/providers/validate/route.js.nft.json +1 -1
  295. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js +1 -1
  296. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js.nft.json +1 -1
  297. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js +1 -1
  298. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js.nft.json +1 -1
  299. package/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js +2 -2
  300. package/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js.nft.json +1 -1
  301. package/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js +2 -2
  302. package/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js.nft.json +1 -1
  303. package/app/.next-cli-build/server/app/api/proxy-pools/route.js +1 -1
  304. package/app/.next-cli-build/server/app/api/proxy-pools/route.js.nft.json +1 -1
  305. package/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js +2 -2
  306. package/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js.nft.json +1 -1
  307. package/app/.next-cli-build/server/app/api/pxpipe/install/route.js +2 -2
  308. package/app/.next-cli-build/server/app/api/pxpipe/install/route.js.nft.json +1 -1
  309. package/app/.next-cli-build/server/app/api/pxpipe/status/route.js +2 -2
  310. package/app/.next-cli-build/server/app/api/pxpipe/status/route.js.nft.json +1 -1
  311. package/app/.next-cli-build/server/app/api/settings/database/route.js +1 -1
  312. package/app/.next-cli-build/server/app/api/settings/database/route.js.nft.json +1 -1
  313. package/app/.next-cli-build/server/app/api/settings/proxy-test/route.js +1 -1
  314. package/app/.next-cli-build/server/app/api/settings/proxy-test/route.js.nft.json +1 -1
  315. package/app/.next-cli-build/server/app/api/settings/require-login/route.js +1 -1
  316. package/app/.next-cli-build/server/app/api/settings/require-login/route.js.nft.json +1 -1
  317. package/app/.next-cli-build/server/app/api/settings/route.js +1 -1
  318. package/app/.next-cli-build/server/app/api/settings/route.js.nft.json +1 -1
  319. package/app/.next-cli-build/server/app/api/shutdown/route.js +1 -1
  320. package/app/.next-cli-build/server/app/api/shutdown/route.js.nft.json +1 -1
  321. package/app/.next-cli-build/server/app/api/swarm/active/route.js +1 -1
  322. package/app/.next-cli-build/server/app/api/swarm/active/route.js.nft.json +1 -1
  323. package/app/.next-cli-build/server/app/api/swarm/stream/route.js +2 -2
  324. package/app/.next-cli-build/server/app/api/swarm/stream/route.js.nft.json +1 -1
  325. package/app/.next-cli-build/server/app/api/tags/route.js +1 -1
  326. package/app/.next-cli-build/server/app/api/tags/route.js.nft.json +1 -1
  327. package/app/.next-cli-build/server/app/api/translator/console-logs/route.js +1 -1
  328. package/app/.next-cli-build/server/app/api/translator/console-logs/route.js.nft.json +1 -1
  329. package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js +2 -2
  330. package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js.nft.json +1 -1
  331. package/app/.next-cli-build/server/app/api/translator/load/route.js +1 -1
  332. package/app/.next-cli-build/server/app/api/translator/load/route.js.nft.json +1 -1
  333. package/app/.next-cli-build/server/app/api/translator/save/route.js +1 -1
  334. package/app/.next-cli-build/server/app/api/translator/save/route.js.nft.json +1 -1
  335. package/app/.next-cli-build/server/app/api/translator/send/route.js +1 -1
  336. package/app/.next-cli-build/server/app/api/translator/send/route.js.nft.json +1 -1
  337. package/app/.next-cli-build/server/app/api/translator/translate/route.js +1 -1
  338. package/app/.next-cli-build/server/app/api/translator/translate/route.js.nft.json +1 -1
  339. package/app/.next-cli-build/server/app/api/tunnel/disable/route.js +1 -1
  340. package/app/.next-cli-build/server/app/api/tunnel/disable/route.js.nft.json +1 -1
  341. package/app/.next-cli-build/server/app/api/tunnel/enable/route.js +1 -1
  342. package/app/.next-cli-build/server/app/api/tunnel/enable/route.js.nft.json +1 -1
  343. package/app/.next-cli-build/server/app/api/tunnel/status/route.js +1 -1
  344. package/app/.next-cli-build/server/app/api/tunnel/status/route.js.nft.json +1 -1
  345. package/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js +1 -1
  346. package/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js.nft.json +1 -1
  347. package/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js +1 -1
  348. package/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js.nft.json +1 -1
  349. package/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js +1 -1
  350. package/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js.nft.json +1 -1
  351. package/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js +1 -1
  352. package/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js.nft.json +1 -1
  353. package/app/.next-cli-build/server/app/api/usage/[connectionId]/codex-reset-credits/route.js +1 -1
  354. package/app/.next-cli-build/server/app/api/usage/[connectionId]/codex-reset-credits/route.js.nft.json +1 -1
  355. package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js +1 -1
  356. package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
  357. package/app/.next-cli-build/server/app/api/usage/chart/route.js +1 -1
  358. package/app/.next-cli-build/server/app/api/usage/chart/route.js.nft.json +1 -1
  359. package/app/.next-cli-build/server/app/api/usage/history/route.js +1 -1
  360. package/app/.next-cli-build/server/app/api/usage/history/route.js.nft.json +1 -1
  361. package/app/.next-cli-build/server/app/api/usage/leaderboard/route.js +1 -1
  362. package/app/.next-cli-build/server/app/api/usage/leaderboard/route.js.nft.json +1 -1
  363. package/app/.next-cli-build/server/app/api/usage/logs/route.js +1 -1
  364. package/app/.next-cli-build/server/app/api/usage/logs/route.js.nft.json +1 -1
  365. package/app/.next-cli-build/server/app/api/usage/meta/route.js +1 -1
  366. package/app/.next-cli-build/server/app/api/usage/meta/route.js.nft.json +1 -1
  367. package/app/.next-cli-build/server/app/api/usage/providers/route.js +1 -1
  368. package/app/.next-cli-build/server/app/api/usage/providers/route.js.nft.json +1 -1
  369. package/app/.next-cli-build/server/app/api/usage/request-details/route.js +1 -1
  370. package/app/.next-cli-build/server/app/api/usage/request-details/route.js.nft.json +1 -1
  371. package/app/.next-cli-build/server/app/api/usage/request-logs/route.js +1 -1
  372. package/app/.next-cli-build/server/app/api/usage/request-logs/route.js.nft.json +1 -1
  373. package/app/.next-cli-build/server/app/api/usage/retry-stats/route.js +1 -1
  374. package/app/.next-cli-build/server/app/api/usage/retry-stats/route.js.nft.json +1 -1
  375. package/app/.next-cli-build/server/app/api/usage/stats/route.js +1 -1
  376. package/app/.next-cli-build/server/app/api/usage/stats/route.js.nft.json +1 -1
  377. package/app/.next-cli-build/server/app/api/usage/stream/route.js +2 -2
  378. package/app/.next-cli-build/server/app/api/usage/stream/route.js.nft.json +1 -1
  379. package/app/.next-cli-build/server/app/api/v1/api/chat/route.js +1 -1
  380. package/app/.next-cli-build/server/app/api/v1/api/chat/route.js.nft.json +1 -1
  381. package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js +1 -1
  382. package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js.nft.json +1 -1
  383. package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js +1 -1
  384. package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js.nft.json +1 -1
  385. package/app/.next-cli-build/server/app/api/v1/audio/voices/route.js +1 -1
  386. package/app/.next-cli-build/server/app/api/v1/audio/voices/route.js.nft.json +1 -1
  387. package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js +1 -1
  388. package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
  389. package/app/.next-cli-build/server/app/api/v1/embeddings/route.js +1 -1
  390. package/app/.next-cli-build/server/app/api/v1/embeddings/route.js.nft.json +1 -1
  391. package/app/.next-cli-build/server/app/api/v1/images/generations/route.js +2 -2
  392. package/app/.next-cli-build/server/app/api/v1/images/generations/route.js.nft.json +1 -1
  393. package/app/.next-cli-build/server/app/api/v1/messages/count_tokens/route.js +1 -1
  394. package/app/.next-cli-build/server/app/api/v1/messages/count_tokens/route.js.nft.json +1 -1
  395. package/app/.next-cli-build/server/app/api/v1/messages/route.js +1 -1
  396. package/app/.next-cli-build/server/app/api/v1/messages/route.js.nft.json +1 -1
  397. package/app/.next-cli-build/server/app/api/v1/models/[kind]/route.js +1 -1
  398. package/app/.next-cli-build/server/app/api/v1/models/[kind]/route.js.nft.json +1 -1
  399. package/app/.next-cli-build/server/app/api/v1/models/info/route.js +1 -1
  400. package/app/.next-cli-build/server/app/api/v1/models/info/route.js.nft.json +1 -1
  401. package/app/.next-cli-build/server/app/api/v1/models/route.js +1 -1
  402. package/app/.next-cli-build/server/app/api/v1/models/route.js.nft.json +1 -1
  403. package/app/.next-cli-build/server/app/api/v1/responses/compact/route.js +1 -1
  404. package/app/.next-cli-build/server/app/api/v1/responses/compact/route.js.nft.json +1 -1
  405. package/app/.next-cli-build/server/app/api/v1/responses/route.js +1 -1
  406. package/app/.next-cli-build/server/app/api/v1/responses/route.js.nft.json +1 -1
  407. package/app/.next-cli-build/server/app/api/v1/route.js +1 -1
  408. package/app/.next-cli-build/server/app/api/v1/route.js.nft.json +1 -1
  409. package/app/.next-cli-build/server/app/api/v1/search/route.js +1 -1
  410. package/app/.next-cli-build/server/app/api/v1/search/route.js.nft.json +1 -1
  411. package/app/.next-cli-build/server/app/api/v1/web/fetch/route.js +1 -1
  412. package/app/.next-cli-build/server/app/api/v1/web/fetch/route.js.nft.json +1 -1
  413. package/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js +1 -1
  414. package/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
  415. package/app/.next-cli-build/server/app/api/v1beta/models/route.js +1 -1
  416. package/app/.next-cli-build/server/app/api/v1beta/models/route.js.nft.json +1 -1
  417. package/app/.next-cli-build/server/app/api/version/route.js +1 -1
  418. package/app/.next-cli-build/server/app/api/version/route.js.nft.json +1 -1
  419. package/app/.next-cli-build/server/app/api/version/shutdown/route.js +1 -1
  420. package/app/.next-cli-build/server/app/api/version/shutdown/route.js.nft.json +1 -1
  421. package/app/.next-cli-build/server/app/api/version/update/route.js +1 -1
  422. package/app/.next-cli-build/server/app/api/version/update/route.js.nft.json +1 -1
  423. package/app/.next-cli-build/server/app/callback/page.js +2 -2
  424. package/app/.next-cli-build/server/app/callback/page.js.nft.json +1 -1
  425. package/app/.next-cli-build/server/app/callback/page_client-reference-manifest.js +1 -1
  426. package/app/.next-cli-build/server/app/callback.html +1 -1
  427. package/app/.next-cli-build/server/app/callback.rsc +5 -5
  428. package/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +5 -5
  429. package/app/.next-cli-build/server/app/callback.segments/_head.segment.rsc +1 -1
  430. package/app/.next-cli-build/server/app/callback.segments/_index.segment.rsc +5 -5
  431. package/app/.next-cli-build/server/app/callback.segments/_tree.segment.rsc +2 -2
  432. package/app/.next-cli-build/server/app/callback.segments/callback/__PAGE__.segment.rsc +1 -1
  433. package/app/.next-cli-build/server/app/callback.segments/callback.segment.rsc +1 -1
  434. package/app/.next-cli-build/server/app/dashboard/settings/pricing/page.js +2 -2
  435. package/app/.next-cli-build/server/app/dashboard/settings/pricing/page.js.nft.json +1 -1
  436. package/app/.next-cli-build/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  437. package/app/.next-cli-build/server/app/dashboard/settings/pricing.html +1 -1
  438. package/app/.next-cli-build/server/app/dashboard/settings/pricing.rsc +5 -5
  439. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +5 -5
  440. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_head.segment.rsc +1 -1
  441. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_index.segment.rsc +5 -5
  442. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +2 -2
  443. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +1 -1
  444. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing.segment.rsc +1 -1
  445. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings.segment.rsc +1 -1
  446. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard.segment.rsc +1 -1
  447. package/app/.next-cli-build/server/app/favicon.ico/route.js +1 -1
  448. package/app/.next-cli-build/server/app/favicon.ico/route.js.nft.json +1 -1
  449. package/app/.next-cli-build/server/app/index.html +1 -1
  450. package/app/.next-cli-build/server/app/index.rsc +5 -5
  451. package/app/.next-cli-build/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  452. package/app/.next-cli-build/server/app/index.segments/_full.segment.rsc +5 -5
  453. package/app/.next-cli-build/server/app/index.segments/_head.segment.rsc +1 -1
  454. package/app/.next-cli-build/server/app/index.segments/_index.segment.rsc +5 -5
  455. package/app/.next-cli-build/server/app/index.segments/_tree.segment.rsc +2 -2
  456. package/app/.next-cli-build/server/app/landing/page.js +2 -2
  457. package/app/.next-cli-build/server/app/landing/page.js.nft.json +1 -1
  458. package/app/.next-cli-build/server/app/landing/page_client-reference-manifest.js +1 -1
  459. package/app/.next-cli-build/server/app/landing.html +1 -1
  460. package/app/.next-cli-build/server/app/landing.rsc +5 -5
  461. package/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +5 -5
  462. package/app/.next-cli-build/server/app/landing.segments/_head.segment.rsc +1 -1
  463. package/app/.next-cli-build/server/app/landing.segments/_index.segment.rsc +5 -5
  464. package/app/.next-cli-build/server/app/landing.segments/_tree.segment.rsc +2 -2
  465. package/app/.next-cli-build/server/app/landing.segments/landing/__PAGE__.segment.rsc +1 -1
  466. package/app/.next-cli-build/server/app/landing.segments/landing.segment.rsc +1 -1
  467. package/app/.next-cli-build/server/app/login/page.js +2 -2
  468. package/app/.next-cli-build/server/app/login/page.js.nft.json +1 -1
  469. package/app/.next-cli-build/server/app/login/page_client-reference-manifest.js +1 -1
  470. package/app/.next-cli-build/server/app/login.html +1 -1
  471. package/app/.next-cli-build/server/app/login.rsc +6 -6
  472. package/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +6 -6
  473. package/app/.next-cli-build/server/app/login.segments/_head.segment.rsc +1 -1
  474. package/app/.next-cli-build/server/app/login.segments/_index.segment.rsc +5 -5
  475. package/app/.next-cli-build/server/app/login.segments/_tree.segment.rsc +2 -2
  476. package/app/.next-cli-build/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
  477. package/app/.next-cli-build/server/app/login.segments/login.segment.rsc +1 -1
  478. package/app/.next-cli-build/server/app/manifest.webmanifest/route.js +2 -2
  479. package/app/.next-cli-build/server/app/manifest.webmanifest/route.js.nft.json +1 -1
  480. package/app/.next-cli-build/server/app/page.js +2 -2
  481. package/app/.next-cli-build/server/app/page.js.nft.json +1 -1
  482. package/app/.next-cli-build/server/app/page_client-reference-manifest.js +1 -1
  483. package/app/.next-cli-build/server/app-paths-manifest.json +17 -12
  484. package/app/.next-cli-build/server/chunks/1350.js +1 -1
  485. package/app/.next-cli-build/server/chunks/1719.js +1 -1
  486. package/app/.next-cli-build/server/chunks/1914.js +1 -0
  487. package/app/.next-cli-build/server/chunks/212.js +1 -1
  488. package/app/.next-cli-build/server/chunks/2231.js +1 -1
  489. package/app/.next-cli-build/server/chunks/2701.js +1 -1
  490. package/app/.next-cli-build/server/chunks/2722.js +2 -2
  491. package/app/.next-cli-build/server/chunks/2926.js +75 -0
  492. package/app/.next-cli-build/server/chunks/318.js +19 -12
  493. package/app/.next-cli-build/server/chunks/3535.js +1 -1
  494. package/app/.next-cli-build/server/chunks/4040.js +3 -3
  495. package/app/.next-cli-build/server/chunks/412.js +1 -1
  496. package/app/.next-cli-build/server/chunks/5612.js +1 -1
  497. package/app/.next-cli-build/server/chunks/5615.js +1 -1
  498. package/app/.next-cli-build/server/chunks/5699.js +1 -1
  499. package/app/.next-cli-build/server/chunks/5961.js +1 -1
  500. package/app/.next-cli-build/server/chunks/6070.js +1 -1
  501. package/app/.next-cli-build/server/chunks/615.js +1 -1
  502. package/app/.next-cli-build/server/chunks/6182.js +2 -2
  503. package/app/.next-cli-build/server/chunks/6316.js +2 -2
  504. package/app/.next-cli-build/server/chunks/7674.js +9 -0
  505. package/app/.next-cli-build/server/chunks/8084.js +1 -0
  506. package/app/.next-cli-build/server/chunks/8238.js +1 -1
  507. package/app/.next-cli-build/server/chunks/8271.js +1 -1
  508. package/app/.next-cli-build/server/chunks/8895.js +5 -5
  509. package/app/.next-cli-build/server/chunks/9630.js +1 -1
  510. package/app/.next-cli-build/server/chunks/9703.js +1 -1
  511. package/app/.next-cli-build/server/chunks/9846.js +9 -0
  512. package/app/.next-cli-build/server/middleware-build-manifest.js +1 -1
  513. package/app/.next-cli-build/server/middleware.js +1 -1
  514. package/app/.next-cli-build/server/pages/404.html +1 -1
  515. package/app/.next-cli-build/server/pages/500.html +1 -1
  516. package/app/.next-cli-build/static/chunks/1321-6a34c5faf11383f6.js +1 -0
  517. package/app/.next-cli-build/static/chunks/{1636-47ea773ffa2d3a4b.js → 1636-25599a8426fd97ed.js} +1 -1
  518. package/app/.next-cli-build/static/chunks/5497-ffa6b6463e401ac2.js +7 -0
  519. package/app/.next-cli-build/static/chunks/{6069-6b96289a846b5144.js → 6069-bd1f2f41043f8c30.js} +10 -10
  520. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/combos/page-262aee689cd6eb34.js +1 -0
  521. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/overview/{page-d75417b0f8c41834.js → page-640703af38ea9eed.js} +1 -1
  522. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-cd819afe3da4581e.js +10 -0
  523. package/app/.next-cli-build/static/chunks/app/(dashboard)/{layout-1927a7bec7dfec9e.js → layout-fbd9ba3da73c1af0.js} +1 -1
  524. package/app/.next-cli-build/static/chunks/app/_global-error/page-200d63272da34918.js +1 -0
  525. package/app/.next-cli-build/static/chunks/app/api/alerts/test/route-200d63272da34918.js +1 -0
  526. package/app/.next-cli-build/static/chunks/app/api/auth/login/route-200d63272da34918.js +1 -0
  527. package/app/.next-cli-build/static/chunks/app/api/auth/logout/route-200d63272da34918.js +1 -0
  528. package/app/.next-cli-build/static/chunks/app/api/auth/oidc/callback/route-200d63272da34918.js +1 -0
  529. package/app/.next-cli-build/static/chunks/app/api/auth/oidc/start/route-200d63272da34918.js +1 -0
  530. package/app/.next-cli-build/static/chunks/app/api/auth/oidc/test/route-200d63272da34918.js +1 -0
  531. package/app/.next-cli-build/static/chunks/app/api/auth/reset-password/route-200d63272da34918.js +1 -0
  532. package/app/.next-cli-build/static/chunks/app/api/auth/status/route-200d63272da34918.js +1 -0
  533. package/app/.next-cli-build/static/chunks/app/api/cache/route-200d63272da34918.js +1 -0
  534. package/app/.next-cli-build/static/chunks/app/api/cli-tools/all-statuses/route-200d63272da34918.js +1 -0
  535. package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-200d63272da34918.js +1 -0
  536. package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/route-200d63272da34918.js +1 -0
  537. package/app/.next-cli-build/static/chunks/app/api/cli-tools/claude-settings/route-200d63272da34918.js +1 -0
  538. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cline-settings/route-200d63272da34918.js +1 -0
  539. package/app/.next-cli-build/static/chunks/app/api/cli-tools/codex-settings/route-200d63272da34918.js +1 -0
  540. package/app/.next-cli-build/static/chunks/app/api/cli-tools/copilot-settings/route-200d63272da34918.js +1 -0
  541. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-registry/route-200d63272da34918.js +1 -0
  542. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-tools/route-200d63272da34918.js +1 -0
  543. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-settings/route-200d63272da34918.js +1 -0
  544. package/app/.next-cli-build/static/chunks/app/api/cli-tools/deepseek-tui-settings/route-200d63272da34918.js +1 -0
  545. package/app/.next-cli-build/static/chunks/app/api/cli-tools/droid-settings/route-200d63272da34918.js +1 -0
  546. package/app/.next-cli-build/static/chunks/app/api/cli-tools/hermes-settings/route-200d63272da34918.js +1 -0
  547. package/app/.next-cli-build/static/chunks/app/api/cli-tools/jcode-settings/route-200d63272da34918.js +1 -0
  548. package/app/.next-cli-build/static/chunks/app/api/cli-tools/kilo-settings/route-200d63272da34918.js +1 -0
  549. package/app/.next-cli-build/static/chunks/app/api/cli-tools/openclaw-settings/route-200d63272da34918.js +1 -0
  550. package/app/.next-cli-build/static/chunks/app/api/cli-tools/opencode-settings/route-200d63272da34918.js +1 -0
  551. package/app/.next-cli-build/static/chunks/app/api/combos/[id]/route-200d63272da34918.js +1 -0
  552. package/app/.next-cli-build/static/chunks/app/api/combos/route-200d63272da34918.js +1 -0
  553. package/app/.next-cli-build/static/chunks/app/api/combos/validate-roles/route-200d63272da34918.js +1 -0
  554. package/app/.next-cli-build/static/chunks/app/api/dashboard/stream/route-200d63272da34918.js +1 -0
  555. package/app/.next-cli-build/static/chunks/app/api/headroom/start/route-200d63272da34918.js +1 -0
  556. package/app/.next-cli-build/static/chunks/app/api/headroom/status/route-200d63272da34918.js +1 -0
  557. package/app/.next-cli-build/static/chunks/app/api/headroom/stop/route-200d63272da34918.js +1 -0
  558. package/app/.next-cli-build/static/chunks/app/api/health/providers/route-200d63272da34918.js +1 -0
  559. package/app/.next-cli-build/static/chunks/app/api/health/route-200d63272da34918.js +1 -0
  560. package/app/.next-cli-build/static/chunks/app/api/health/stream/route-200d63272da34918.js +1 -0
  561. package/app/.next-cli-build/static/chunks/app/api/init/route-200d63272da34918.js +1 -0
  562. package/app/.next-cli-build/static/chunks/app/api/keys/[id]/route-200d63272da34918.js +1 -0
  563. package/app/.next-cli-build/static/chunks/app/api/keys/route-200d63272da34918.js +1 -0
  564. package/app/.next-cli-build/static/chunks/app/api/locale/route-200d63272da34918.js +1 -0
  565. package/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/message/route-200d63272da34918.js +1 -0
  566. package/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/sse/route-200d63272da34918.js +1 -0
  567. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/deepgram/voices/route-200d63272da34918.js +1 -0
  568. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-200d63272da34918.js +1 -0
  569. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/inworld/voices/route-200d63272da34918.js +1 -0
  570. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/minimax/voices/route-200d63272da34918.js +1 -0
  571. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/voices/route-200d63272da34918.js +1 -0
  572. package/app/.next-cli-build/static/chunks/app/api/models/alias/route-200d63272da34918.js +1 -0
  573. package/app/.next-cli-build/static/chunks/app/api/models/availability/route-200d63272da34918.js +1 -0
  574. package/app/.next-cli-build/static/chunks/app/api/models/custom/route-200d63272da34918.js +1 -0
  575. package/app/.next-cli-build/static/chunks/app/api/models/disabled/route-200d63272da34918.js +1 -0
  576. package/app/.next-cli-build/static/chunks/app/api/models/route-200d63272da34918.js +1 -0
  577. package/app/.next-cli-build/static/chunks/app/api/models/test/route-200d63272da34918.js +1 -0
  578. package/app/.next-cli-build/static/chunks/app/api/oauth/[provider]/[action]/route-200d63272da34918.js +1 -0
  579. package/app/.next-cli-build/static/chunks/app/api/oauth/codex/bulk-import/route-200d63272da34918.js +1 -0
  580. package/app/.next-cli-build/static/chunks/app/api/oauth/codex/import-token/route-200d63272da34918.js +1 -0
  581. package/app/.next-cli-build/static/chunks/app/api/oauth/cursor/auto-import/route-200d63272da34918.js +1 -0
  582. package/app/.next-cli-build/static/chunks/app/api/oauth/cursor/import/route-200d63272da34918.js +1 -0
  583. package/app/.next-cli-build/static/chunks/app/api/oauth/gitlab/pat/route-200d63272da34918.js +1 -0
  584. package/app/.next-cli-build/static/chunks/app/api/oauth/iflow/cookie/route-200d63272da34918.js +1 -0
  585. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/api-key/route-200d63272da34918.js +1 -0
  586. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/auto-import/route-200d63272da34918.js +1 -0
  587. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import/route-200d63272da34918.js +1 -0
  588. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import-cli-proxy/route-200d63272da34918.js +1 -0
  589. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-authorize/route-200d63272da34918.js +1 -0
  590. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-exchange/route-200d63272da34918.js +1 -0
  591. package/app/.next-cli-build/static/chunks/app/api/oauth/zed/auto-import/route-200d63272da34918.js +1 -0
  592. package/app/.next-cli-build/static/chunks/app/api/oauth/zed/import/route-200d63272da34918.js +1 -0
  593. package/app/.next-cli-build/static/chunks/app/api/pricing/route-200d63272da34918.js +1 -0
  594. package/app/.next-cli-build/static/chunks/app/api/provider-nodes/[id]/route-200d63272da34918.js +1 -0
  595. package/app/.next-cli-build/static/chunks/app/api/provider-nodes/route-200d63272da34918.js +1 -0
  596. package/app/.next-cli-build/static/chunks/app/api/provider-nodes/validate/route-200d63272da34918.js +1 -0
  597. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/freebuff-profile/route-200d63272da34918.js +1 -0
  598. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/health-timeline/route-200d63272da34918.js +1 -0
  599. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/inxora-profile/route-200d63272da34918.js +1 -0
  600. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/models/route-200d63272da34918.js +1 -0
  601. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/onemin-api-profile/route-200d63272da34918.js +1 -0
  602. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/onemin-profile/route-200d63272da34918.js +1 -0
  603. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/qwencloud-profile/route-200d63272da34918.js +1 -0
  604. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/route-200d63272da34918.js +1 -0
  605. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/test/route-200d63272da34918.js +1 -0
  606. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/test-models/route-200d63272da34918.js +1 -0
  607. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/v0-profile/route-200d63272da34918.js +1 -0
  608. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/vault-pool/route-200d63272da34918.js +1 -0
  609. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/zenmux-plans/route-200d63272da34918.js +1 -0
  610. package/app/.next-cli-build/static/chunks/app/api/providers/client/route-200d63272da34918.js +1 -0
  611. package/app/.next-cli-build/static/chunks/app/api/providers/kilo/free-models/route-200d63272da34918.js +1 -0
  612. package/app/.next-cli-build/static/chunks/app/api/providers/route-200d63272da34918.js +1 -0
  613. package/app/.next-cli-build/static/chunks/app/api/providers/suggested-models/route-200d63272da34918.js +1 -0
  614. package/app/.next-cli-build/static/chunks/app/api/providers/test-batch/route-200d63272da34918.js +1 -0
  615. package/app/.next-cli-build/static/chunks/app/api/providers/validate/route-200d63272da34918.js +1 -0
  616. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/route-200d63272da34918.js +1 -0
  617. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/test/route-200d63272da34918.js +1 -0
  618. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/cloudflare-deploy/route-200d63272da34918.js +1 -0
  619. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/deno-deploy/route-200d63272da34918.js +1 -0
  620. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/route-200d63272da34918.js +1 -0
  621. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/vercel-deploy/route-200d63272da34918.js +1 -0
  622. package/app/.next-cli-build/static/chunks/app/api/pxpipe/install/route-200d63272da34918.js +1 -0
  623. package/app/.next-cli-build/static/chunks/app/api/pxpipe/status/route-200d63272da34918.js +1 -0
  624. package/app/.next-cli-build/static/chunks/app/api/settings/database/route-200d63272da34918.js +1 -0
  625. package/app/.next-cli-build/static/chunks/app/api/settings/proxy-test/route-200d63272da34918.js +1 -0
  626. package/app/.next-cli-build/static/chunks/app/api/settings/require-login/route-200d63272da34918.js +1 -0
  627. package/app/.next-cli-build/static/chunks/app/api/settings/route-200d63272da34918.js +1 -0
  628. package/app/.next-cli-build/static/chunks/app/api/shutdown/route-200d63272da34918.js +1 -0
  629. package/app/.next-cli-build/static/chunks/app/api/swarm/active/route-200d63272da34918.js +1 -0
  630. package/app/.next-cli-build/static/chunks/app/api/swarm/stream/route-200d63272da34918.js +1 -0
  631. package/app/.next-cli-build/static/chunks/app/api/tags/route-200d63272da34918.js +1 -0
  632. package/app/.next-cli-build/static/chunks/app/api/translator/console-logs/route-200d63272da34918.js +1 -0
  633. package/app/.next-cli-build/static/chunks/app/api/translator/console-logs/stream/route-200d63272da34918.js +1 -0
  634. package/app/.next-cli-build/static/chunks/app/api/translator/load/route-200d63272da34918.js +1 -0
  635. package/app/.next-cli-build/static/chunks/app/api/translator/save/route-200d63272da34918.js +1 -0
  636. package/app/.next-cli-build/static/chunks/app/api/translator/send/route-200d63272da34918.js +1 -0
  637. package/app/.next-cli-build/static/chunks/app/api/translator/translate/route-200d63272da34918.js +1 -0
  638. package/app/.next-cli-build/static/chunks/app/api/tunnel/disable/route-200d63272da34918.js +1 -0
  639. package/app/.next-cli-build/static/chunks/app/api/tunnel/enable/route-200d63272da34918.js +1 -0
  640. package/app/.next-cli-build/static/chunks/app/api/tunnel/status/route-200d63272da34918.js +1 -0
  641. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-check/route-200d63272da34918.js +1 -0
  642. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-disable/route-200d63272da34918.js +1 -0
  643. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-enable/route-200d63272da34918.js +1 -0
  644. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-install/route-200d63272da34918.js +1 -0
  645. package/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/codex-reset-credits/route-200d63272da34918.js +1 -0
  646. package/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/route-200d63272da34918.js +1 -0
  647. package/app/.next-cli-build/static/chunks/app/api/usage/chart/route-200d63272da34918.js +1 -0
  648. package/app/.next-cli-build/static/chunks/app/api/usage/history/route-200d63272da34918.js +1 -0
  649. package/app/.next-cli-build/static/chunks/app/api/usage/leaderboard/route-200d63272da34918.js +1 -0
  650. package/app/.next-cli-build/static/chunks/app/api/usage/logs/route-200d63272da34918.js +1 -0
  651. package/app/.next-cli-build/static/chunks/app/api/usage/meta/route-200d63272da34918.js +1 -0
  652. package/app/.next-cli-build/static/chunks/app/api/usage/providers/route-200d63272da34918.js +1 -0
  653. package/app/.next-cli-build/static/chunks/app/api/usage/request-details/route-200d63272da34918.js +1 -0
  654. package/app/.next-cli-build/static/chunks/app/api/usage/request-logs/route-200d63272da34918.js +1 -0
  655. package/app/.next-cli-build/static/chunks/app/api/usage/retry-stats/route-200d63272da34918.js +1 -0
  656. package/app/.next-cli-build/static/chunks/app/api/usage/stats/route-200d63272da34918.js +1 -0
  657. package/app/.next-cli-build/static/chunks/app/api/usage/stream/route-200d63272da34918.js +1 -0
  658. package/app/.next-cli-build/static/chunks/app/api/v1/api/chat/route-200d63272da34918.js +1 -0
  659. package/app/.next-cli-build/static/chunks/app/api/v1/audio/speech/route-200d63272da34918.js +1 -0
  660. package/app/.next-cli-build/static/chunks/app/api/v1/audio/transcriptions/route-200d63272da34918.js +1 -0
  661. package/app/.next-cli-build/static/chunks/app/api/v1/audio/voices/route-200d63272da34918.js +1 -0
  662. package/app/.next-cli-build/static/chunks/app/api/v1/chat/completions/route-200d63272da34918.js +1 -0
  663. package/app/.next-cli-build/static/chunks/app/api/v1/embeddings/route-200d63272da34918.js +1 -0
  664. package/app/.next-cli-build/static/chunks/app/api/v1/images/generations/route-200d63272da34918.js +1 -0
  665. package/app/.next-cli-build/static/chunks/app/api/v1/messages/count_tokens/route-200d63272da34918.js +1 -0
  666. package/app/.next-cli-build/static/chunks/app/api/v1/messages/route-200d63272da34918.js +1 -0
  667. package/app/.next-cli-build/static/chunks/app/api/v1/models/[kind]/route-200d63272da34918.js +1 -0
  668. package/app/.next-cli-build/static/chunks/app/api/v1/models/info/route-200d63272da34918.js +1 -0
  669. package/app/.next-cli-build/static/chunks/app/api/v1/models/route-200d63272da34918.js +1 -0
  670. package/app/.next-cli-build/static/chunks/app/api/v1/responses/compact/route-200d63272da34918.js +1 -0
  671. package/app/.next-cli-build/static/chunks/app/api/v1/responses/route-200d63272da34918.js +1 -0
  672. package/app/.next-cli-build/static/chunks/app/api/v1/route-200d63272da34918.js +1 -0
  673. package/app/.next-cli-build/static/chunks/app/api/v1/search/route-200d63272da34918.js +1 -0
  674. package/app/.next-cli-build/static/chunks/app/api/v1/web/fetch/route-200d63272da34918.js +1 -0
  675. package/app/.next-cli-build/static/chunks/app/api/v1beta/models/[...path]/route-200d63272da34918.js +1 -0
  676. package/app/.next-cli-build/static/chunks/app/api/v1beta/models/route-200d63272da34918.js +1 -0
  677. package/app/.next-cli-build/static/chunks/app/api/version/route-200d63272da34918.js +1 -0
  678. package/app/.next-cli-build/static/chunks/app/api/version/shutdown/route-200d63272da34918.js +1 -0
  679. package/app/.next-cli-build/static/chunks/app/api/version/update/route-200d63272da34918.js +1 -0
  680. package/app/.next-cli-build/static/chunks/app/manifest.webmanifest/route-200d63272da34918.js +1 -0
  681. package/app/.next-cli-build/static/chunks/app/page-200d63272da34918.js +1 -0
  682. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/app-error-200d63272da34918.js +1 -0
  683. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/forbidden-200d63272da34918.js +1 -0
  684. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/not-found-200d63272da34918.js +1 -0
  685. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/unauthorized-200d63272da34918.js +1 -0
  686. package/app/.next-cli-build/static/css/78539cadb589145c.css +1 -0
  687. package/app/.next-cli-build/static/jvjk_lCzF7LBW1SV_GCaU/_buildManifest.js +1 -0
  688. package/app/cli/.build-home/AppData/Roaming/extremerouter/db/backups/upgrade-0.7.6-to-0.7.7-0.7.7-20260726-222052/data.sqlite +0 -0
  689. package/app/cli/.build-home/AppData/Roaming/extremerouter/db/data.sqlite-shm +0 -0
  690. package/app/cli/.build-home/AppData/Roaming/extremerouter/db/data.sqlite-wal +0 -0
  691. package/app/package.json +1 -1
  692. package/app/public/providers/1min.png +0 -0
  693. package/app/public/providers/alibaba-cn.svg +11 -11
  694. package/app/public/providers/alibaba.svg +11 -11
  695. package/app/public/providers/bynara.svg +22 -22
  696. package/app/public/providers/featherless.svg +8 -8
  697. package/app/public/providers/forge.svg +9 -9
  698. package/app/public/providers/freebuff-web.svg +6 -6
  699. package/app/public/providers/hcnsec.svg +10 -10
  700. package/app/public/providers/inxorastudio-web.svg +4 -4
  701. package/app/public/providers/inxorastudio.svg +4 -4
  702. package/app/public/providers/moonshot.svg +8 -8
  703. package/app/public/providers/openvecta.svg +7 -7
  704. package/app/public/providers/perplexity-agent.svg +13 -13
  705. package/app/public/providers/qwen-cloud.svg +1 -8
  706. package/app/public/providers/qwencloud.svg +6 -6
  707. package/app/public/providers/tokenrouter.svg +15 -15
  708. package/app/public/providers/zed.svg +11 -0
  709. package/app/public/providers/zenmux-free.svg +9 -9
  710. package/app/src/lib/network/pickProxyPoolId.js +38 -38
  711. package/app/src/mitm/server.js +45 -30
  712. package/package.json +66 -66
  713. package/app/.next-cli-build/server/chunks/1173.js +0 -75
  714. package/app/.next-cli-build/server/chunks/4055.js +0 -9
  715. package/app/.next-cli-build/server/chunks/5217.js +0 -9
  716. package/app/.next-cli-build/server/chunks/788.js +0 -1
  717. package/app/.next-cli-build/server/chunks/964.js +0 -1
  718. package/app/.next-cli-build/static/GZ-78K5tlyWItqwZpG22j/_buildManifest.js +0 -1
  719. package/app/.next-cli-build/static/chunks/1321-27f4790ac6ad4567.js +0 -1
  720. package/app/.next-cli-build/static/chunks/5497-c5c5e821654f54c1.js +0 -7
  721. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/combos/page-783ab7461aca504e.js +0 -1
  722. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-c9e6d2b03ed95619.js +0 -10
  723. package/app/.next-cli-build/static/chunks/app/_global-error/page-e4e5f60bd2215699.js +0 -1
  724. package/app/.next-cli-build/static/chunks/app/api/alerts/test/route-e4e5f60bd2215699.js +0 -1
  725. package/app/.next-cli-build/static/chunks/app/api/auth/login/route-e4e5f60bd2215699.js +0 -1
  726. package/app/.next-cli-build/static/chunks/app/api/auth/logout/route-e4e5f60bd2215699.js +0 -1
  727. package/app/.next-cli-build/static/chunks/app/api/auth/oidc/callback/route-e4e5f60bd2215699.js +0 -1
  728. package/app/.next-cli-build/static/chunks/app/api/auth/oidc/start/route-e4e5f60bd2215699.js +0 -1
  729. package/app/.next-cli-build/static/chunks/app/api/auth/oidc/test/route-e4e5f60bd2215699.js +0 -1
  730. package/app/.next-cli-build/static/chunks/app/api/auth/reset-password/route-e4e5f60bd2215699.js +0 -1
  731. package/app/.next-cli-build/static/chunks/app/api/auth/status/route-e4e5f60bd2215699.js +0 -1
  732. package/app/.next-cli-build/static/chunks/app/api/cache/route-e4e5f60bd2215699.js +0 -1
  733. package/app/.next-cli-build/static/chunks/app/api/cli-tools/all-statuses/route-e4e5f60bd2215699.js +0 -1
  734. package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-e4e5f60bd2215699.js +0 -1
  735. package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/route-e4e5f60bd2215699.js +0 -1
  736. package/app/.next-cli-build/static/chunks/app/api/cli-tools/claude-settings/route-e4e5f60bd2215699.js +0 -1
  737. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cline-settings/route-e4e5f60bd2215699.js +0 -1
  738. package/app/.next-cli-build/static/chunks/app/api/cli-tools/codex-settings/route-e4e5f60bd2215699.js +0 -1
  739. package/app/.next-cli-build/static/chunks/app/api/cli-tools/copilot-settings/route-e4e5f60bd2215699.js +0 -1
  740. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-registry/route-e4e5f60bd2215699.js +0 -1
  741. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-tools/route-e4e5f60bd2215699.js +0 -1
  742. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-settings/route-e4e5f60bd2215699.js +0 -1
  743. package/app/.next-cli-build/static/chunks/app/api/cli-tools/deepseek-tui-settings/route-e4e5f60bd2215699.js +0 -1
  744. package/app/.next-cli-build/static/chunks/app/api/cli-tools/droid-settings/route-e4e5f60bd2215699.js +0 -1
  745. package/app/.next-cli-build/static/chunks/app/api/cli-tools/hermes-settings/route-e4e5f60bd2215699.js +0 -1
  746. package/app/.next-cli-build/static/chunks/app/api/cli-tools/jcode-settings/route-e4e5f60bd2215699.js +0 -1
  747. package/app/.next-cli-build/static/chunks/app/api/cli-tools/kilo-settings/route-e4e5f60bd2215699.js +0 -1
  748. package/app/.next-cli-build/static/chunks/app/api/cli-tools/openclaw-settings/route-e4e5f60bd2215699.js +0 -1
  749. package/app/.next-cli-build/static/chunks/app/api/cli-tools/opencode-settings/route-e4e5f60bd2215699.js +0 -1
  750. package/app/.next-cli-build/static/chunks/app/api/combos/[id]/route-e4e5f60bd2215699.js +0 -1
  751. package/app/.next-cli-build/static/chunks/app/api/combos/route-e4e5f60bd2215699.js +0 -1
  752. package/app/.next-cli-build/static/chunks/app/api/dashboard/stream/route-e4e5f60bd2215699.js +0 -1
  753. package/app/.next-cli-build/static/chunks/app/api/headroom/start/route-e4e5f60bd2215699.js +0 -1
  754. package/app/.next-cli-build/static/chunks/app/api/headroom/status/route-e4e5f60bd2215699.js +0 -1
  755. package/app/.next-cli-build/static/chunks/app/api/headroom/stop/route-e4e5f60bd2215699.js +0 -1
  756. package/app/.next-cli-build/static/chunks/app/api/health/providers/route-e4e5f60bd2215699.js +0 -1
  757. package/app/.next-cli-build/static/chunks/app/api/health/route-e4e5f60bd2215699.js +0 -1
  758. package/app/.next-cli-build/static/chunks/app/api/health/stream/route-e4e5f60bd2215699.js +0 -1
  759. package/app/.next-cli-build/static/chunks/app/api/init/route-e4e5f60bd2215699.js +0 -1
  760. package/app/.next-cli-build/static/chunks/app/api/keys/[id]/route-e4e5f60bd2215699.js +0 -1
  761. package/app/.next-cli-build/static/chunks/app/api/keys/route-e4e5f60bd2215699.js +0 -1
  762. package/app/.next-cli-build/static/chunks/app/api/locale/route-e4e5f60bd2215699.js +0 -1
  763. package/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/message/route-e4e5f60bd2215699.js +0 -1
  764. package/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/sse/route-e4e5f60bd2215699.js +0 -1
  765. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/deepgram/voices/route-e4e5f60bd2215699.js +0 -1
  766. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-e4e5f60bd2215699.js +0 -1
  767. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/inworld/voices/route-e4e5f60bd2215699.js +0 -1
  768. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/minimax/voices/route-e4e5f60bd2215699.js +0 -1
  769. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/voices/route-e4e5f60bd2215699.js +0 -1
  770. package/app/.next-cli-build/static/chunks/app/api/models/alias/route-e4e5f60bd2215699.js +0 -1
  771. package/app/.next-cli-build/static/chunks/app/api/models/availability/route-e4e5f60bd2215699.js +0 -1
  772. package/app/.next-cli-build/static/chunks/app/api/models/custom/route-e4e5f60bd2215699.js +0 -1
  773. package/app/.next-cli-build/static/chunks/app/api/models/disabled/route-e4e5f60bd2215699.js +0 -1
  774. package/app/.next-cli-build/static/chunks/app/api/models/route-e4e5f60bd2215699.js +0 -1
  775. package/app/.next-cli-build/static/chunks/app/api/models/test/route-e4e5f60bd2215699.js +0 -1
  776. package/app/.next-cli-build/static/chunks/app/api/oauth/[provider]/[action]/route-e4e5f60bd2215699.js +0 -1
  777. package/app/.next-cli-build/static/chunks/app/api/oauth/codex/bulk-import/route-e4e5f60bd2215699.js +0 -1
  778. package/app/.next-cli-build/static/chunks/app/api/oauth/codex/import-token/route-e4e5f60bd2215699.js +0 -1
  779. package/app/.next-cli-build/static/chunks/app/api/oauth/cursor/auto-import/route-e4e5f60bd2215699.js +0 -1
  780. package/app/.next-cli-build/static/chunks/app/api/oauth/cursor/import/route-e4e5f60bd2215699.js +0 -1
  781. package/app/.next-cli-build/static/chunks/app/api/oauth/gitlab/pat/route-e4e5f60bd2215699.js +0 -1
  782. package/app/.next-cli-build/static/chunks/app/api/oauth/iflow/cookie/route-e4e5f60bd2215699.js +0 -1
  783. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/api-key/route-e4e5f60bd2215699.js +0 -1
  784. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/auto-import/route-e4e5f60bd2215699.js +0 -1
  785. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import/route-e4e5f60bd2215699.js +0 -1
  786. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import-cli-proxy/route-e4e5f60bd2215699.js +0 -1
  787. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-authorize/route-e4e5f60bd2215699.js +0 -1
  788. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-exchange/route-e4e5f60bd2215699.js +0 -1
  789. package/app/.next-cli-build/static/chunks/app/api/pricing/route-e4e5f60bd2215699.js +0 -1
  790. package/app/.next-cli-build/static/chunks/app/api/provider-nodes/[id]/route-e4e5f60bd2215699.js +0 -1
  791. package/app/.next-cli-build/static/chunks/app/api/provider-nodes/route-e4e5f60bd2215699.js +0 -1
  792. package/app/.next-cli-build/static/chunks/app/api/provider-nodes/validate/route-e4e5f60bd2215699.js +0 -1
  793. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/freebuff-profile/route-e4e5f60bd2215699.js +0 -1
  794. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/health-timeline/route-e4e5f60bd2215699.js +0 -1
  795. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/inxora-profile/route-e4e5f60bd2215699.js +0 -1
  796. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/models/route-e4e5f60bd2215699.js +0 -1
  797. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/qwencloud-profile/route-e4e5f60bd2215699.js +0 -1
  798. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/route-e4e5f60bd2215699.js +0 -1
  799. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/test/route-e4e5f60bd2215699.js +0 -1
  800. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/test-models/route-e4e5f60bd2215699.js +0 -1
  801. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/v0-profile/route-e4e5f60bd2215699.js +0 -1
  802. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/vault-pool/route-e4e5f60bd2215699.js +0 -1
  803. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/zenmux-plans/route-e4e5f60bd2215699.js +0 -1
  804. package/app/.next-cli-build/static/chunks/app/api/providers/client/route-e4e5f60bd2215699.js +0 -1
  805. package/app/.next-cli-build/static/chunks/app/api/providers/kilo/free-models/route-e4e5f60bd2215699.js +0 -1
  806. package/app/.next-cli-build/static/chunks/app/api/providers/route-e4e5f60bd2215699.js +0 -1
  807. package/app/.next-cli-build/static/chunks/app/api/providers/suggested-models/route-e4e5f60bd2215699.js +0 -1
  808. package/app/.next-cli-build/static/chunks/app/api/providers/test-batch/route-e4e5f60bd2215699.js +0 -1
  809. package/app/.next-cli-build/static/chunks/app/api/providers/validate/route-e4e5f60bd2215699.js +0 -1
  810. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/route-e4e5f60bd2215699.js +0 -1
  811. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/test/route-e4e5f60bd2215699.js +0 -1
  812. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/cloudflare-deploy/route-e4e5f60bd2215699.js +0 -1
  813. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/deno-deploy/route-e4e5f60bd2215699.js +0 -1
  814. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/route-e4e5f60bd2215699.js +0 -1
  815. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/vercel-deploy/route-e4e5f60bd2215699.js +0 -1
  816. package/app/.next-cli-build/static/chunks/app/api/pxpipe/install/route-e4e5f60bd2215699.js +0 -1
  817. package/app/.next-cli-build/static/chunks/app/api/pxpipe/status/route-e4e5f60bd2215699.js +0 -1
  818. package/app/.next-cli-build/static/chunks/app/api/settings/database/route-e4e5f60bd2215699.js +0 -1
  819. package/app/.next-cli-build/static/chunks/app/api/settings/proxy-test/route-e4e5f60bd2215699.js +0 -1
  820. package/app/.next-cli-build/static/chunks/app/api/settings/require-login/route-e4e5f60bd2215699.js +0 -1
  821. package/app/.next-cli-build/static/chunks/app/api/settings/route-e4e5f60bd2215699.js +0 -1
  822. package/app/.next-cli-build/static/chunks/app/api/shutdown/route-e4e5f60bd2215699.js +0 -1
  823. package/app/.next-cli-build/static/chunks/app/api/swarm/active/route-e4e5f60bd2215699.js +0 -1
  824. package/app/.next-cli-build/static/chunks/app/api/swarm/stream/route-e4e5f60bd2215699.js +0 -1
  825. package/app/.next-cli-build/static/chunks/app/api/tags/route-e4e5f60bd2215699.js +0 -1
  826. package/app/.next-cli-build/static/chunks/app/api/translator/console-logs/route-e4e5f60bd2215699.js +0 -1
  827. package/app/.next-cli-build/static/chunks/app/api/translator/console-logs/stream/route-e4e5f60bd2215699.js +0 -1
  828. package/app/.next-cli-build/static/chunks/app/api/translator/load/route-e4e5f60bd2215699.js +0 -1
  829. package/app/.next-cli-build/static/chunks/app/api/translator/save/route-e4e5f60bd2215699.js +0 -1
  830. package/app/.next-cli-build/static/chunks/app/api/translator/send/route-e4e5f60bd2215699.js +0 -1
  831. package/app/.next-cli-build/static/chunks/app/api/translator/translate/route-e4e5f60bd2215699.js +0 -1
  832. package/app/.next-cli-build/static/chunks/app/api/tunnel/disable/route-e4e5f60bd2215699.js +0 -1
  833. package/app/.next-cli-build/static/chunks/app/api/tunnel/enable/route-e4e5f60bd2215699.js +0 -1
  834. package/app/.next-cli-build/static/chunks/app/api/tunnel/status/route-e4e5f60bd2215699.js +0 -1
  835. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-check/route-e4e5f60bd2215699.js +0 -1
  836. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-disable/route-e4e5f60bd2215699.js +0 -1
  837. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-enable/route-e4e5f60bd2215699.js +0 -1
  838. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-install/route-e4e5f60bd2215699.js +0 -1
  839. package/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/codex-reset-credits/route-e4e5f60bd2215699.js +0 -1
  840. package/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/route-e4e5f60bd2215699.js +0 -1
  841. package/app/.next-cli-build/static/chunks/app/api/usage/chart/route-e4e5f60bd2215699.js +0 -1
  842. package/app/.next-cli-build/static/chunks/app/api/usage/history/route-e4e5f60bd2215699.js +0 -1
  843. package/app/.next-cli-build/static/chunks/app/api/usage/leaderboard/route-e4e5f60bd2215699.js +0 -1
  844. package/app/.next-cli-build/static/chunks/app/api/usage/logs/route-e4e5f60bd2215699.js +0 -1
  845. package/app/.next-cli-build/static/chunks/app/api/usage/meta/route-e4e5f60bd2215699.js +0 -1
  846. package/app/.next-cli-build/static/chunks/app/api/usage/providers/route-e4e5f60bd2215699.js +0 -1
  847. package/app/.next-cli-build/static/chunks/app/api/usage/request-details/route-e4e5f60bd2215699.js +0 -1
  848. package/app/.next-cli-build/static/chunks/app/api/usage/request-logs/route-e4e5f60bd2215699.js +0 -1
  849. package/app/.next-cli-build/static/chunks/app/api/usage/retry-stats/route-e4e5f60bd2215699.js +0 -1
  850. package/app/.next-cli-build/static/chunks/app/api/usage/stats/route-e4e5f60bd2215699.js +0 -1
  851. package/app/.next-cli-build/static/chunks/app/api/usage/stream/route-e4e5f60bd2215699.js +0 -1
  852. package/app/.next-cli-build/static/chunks/app/api/v1/api/chat/route-e4e5f60bd2215699.js +0 -1
  853. package/app/.next-cli-build/static/chunks/app/api/v1/audio/speech/route-e4e5f60bd2215699.js +0 -1
  854. package/app/.next-cli-build/static/chunks/app/api/v1/audio/transcriptions/route-e4e5f60bd2215699.js +0 -1
  855. package/app/.next-cli-build/static/chunks/app/api/v1/audio/voices/route-e4e5f60bd2215699.js +0 -1
  856. package/app/.next-cli-build/static/chunks/app/api/v1/chat/completions/route-e4e5f60bd2215699.js +0 -1
  857. package/app/.next-cli-build/static/chunks/app/api/v1/embeddings/route-e4e5f60bd2215699.js +0 -1
  858. package/app/.next-cli-build/static/chunks/app/api/v1/images/generations/route-e4e5f60bd2215699.js +0 -1
  859. package/app/.next-cli-build/static/chunks/app/api/v1/messages/count_tokens/route-e4e5f60bd2215699.js +0 -1
  860. package/app/.next-cli-build/static/chunks/app/api/v1/messages/route-e4e5f60bd2215699.js +0 -1
  861. package/app/.next-cli-build/static/chunks/app/api/v1/models/[kind]/route-e4e5f60bd2215699.js +0 -1
  862. package/app/.next-cli-build/static/chunks/app/api/v1/models/info/route-e4e5f60bd2215699.js +0 -1
  863. package/app/.next-cli-build/static/chunks/app/api/v1/models/route-e4e5f60bd2215699.js +0 -1
  864. package/app/.next-cli-build/static/chunks/app/api/v1/responses/compact/route-e4e5f60bd2215699.js +0 -1
  865. package/app/.next-cli-build/static/chunks/app/api/v1/responses/route-e4e5f60bd2215699.js +0 -1
  866. package/app/.next-cli-build/static/chunks/app/api/v1/route-e4e5f60bd2215699.js +0 -1
  867. package/app/.next-cli-build/static/chunks/app/api/v1/search/route-e4e5f60bd2215699.js +0 -1
  868. package/app/.next-cli-build/static/chunks/app/api/v1/web/fetch/route-e4e5f60bd2215699.js +0 -1
  869. package/app/.next-cli-build/static/chunks/app/api/v1beta/models/[...path]/route-e4e5f60bd2215699.js +0 -1
  870. package/app/.next-cli-build/static/chunks/app/api/v1beta/models/route-e4e5f60bd2215699.js +0 -1
  871. package/app/.next-cli-build/static/chunks/app/api/version/route-e4e5f60bd2215699.js +0 -1
  872. package/app/.next-cli-build/static/chunks/app/api/version/shutdown/route-e4e5f60bd2215699.js +0 -1
  873. package/app/.next-cli-build/static/chunks/app/api/version/update/route-e4e5f60bd2215699.js +0 -1
  874. package/app/.next-cli-build/static/chunks/app/manifest.webmanifest/route-e4e5f60bd2215699.js +0 -1
  875. package/app/.next-cli-build/static/chunks/app/page-e4e5f60bd2215699.js +0 -1
  876. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/app-error-e4e5f60bd2215699.js +0 -1
  877. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/forbidden-e4e5f60bd2215699.js +0 -1
  878. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/not-found-e4e5f60bd2215699.js +0 -1
  879. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/unauthorized-e4e5f60bd2215699.js +0 -1
  880. package/app/.next-cli-build/static/css/b0fc55ef939fe0cb.css +0 -1
  881. package/app/public/providers/qwen-cloud-token-plan.svg +0 -8
  882. /package/app/.next-cli-build/static/{GZ-78K5tlyWItqwZpG22j → jvjk_lCzF7LBW1SV_GCaU}/_ssgManifest.js +0 -0
  883. /package/app/cli/.build-home/AppData/Roaming/extremerouter/db/backups/{upgrade-0.7.1-to-0.7.2-0.7.2-20260718-105318 → upgrade-0.7.5-to-0.7.6-0.7.6-20260725-174113}/data.sqlite +0 -0
  884. /package/app/cli/.build-home/AppData/Roaming/extremerouter/db/backups/{upgrade-0.7.2-to-0.7.3-0.7.3-20260719-100408 → upgrade-0.7.6-to-0.7.7-0.7.7-20260726-222051}/data.sqlite +0 -0
@@ -1 +1 @@
1
- "use strict";exports.id=3535,exports.ids=[3535],exports.modules={13808:(a,b,c)=>{c.d(b,{$N:()=>f,OK:()=>g,Zl:()=>h,lz:()=>i});var d=c(55511),e=c.n(d);function f(a=32){return e().randomBytes(a).toString("base64url")}function g(a){return e().createHash("sha256").update(a).digest("base64url")}function h(){return e().randomBytes(32).toString("base64url")}function i(a=32){let b=f(a),c=g(b);return{codeVerifier:b,codeChallenge:c,state:h()}}},73159:(a,b,c)=>{c.d(b,{Ue:()=>k,oT:()=>l});var d=c(26070);let e=d.xq.xai?.clientId,f="https://auth.x.ai",g="/oauth2/authorize",h="/oauth2/token",i="/.well-known/openid-configuration",j="/callback",k=96,l={clientId:e,issuer:f,authEndpointPath:g,tokenEndpointPath:h,discoveryPath:i,authorizeUrl:`${f}${g}`,tokenUrl:`${f}${h}`,discoveryUrl:`${f}${i}`,scope:"openid profile email offline_access grok-cli:access api:access",apiBaseUrl:"https://api.x.ai/v1",redirectUri:`http://127.0.0.1:56121${j}`,loopbackPort:56121,callbackPath:j,pkceVerifierBytes:96,refreshLeadSeconds:300,userAgent:"grok-cli/extremerouter",codeChallengeMethod:"S256"}},92990:(a,b,c)=>{c.d(b,{DI:()=>i,Hp:()=>k,LT:()=>j,MZ:()=>v,Nl:()=>z,Nu:()=>p,OV:()=>h,S6:()=>s,Td:()=>A,Tx:()=>q,WN:()=>t,Ww:()=>B,YT:()=>n,ZL:()=>m,cD:()=>o,f7:()=>y,hF:()=>l,lB:()=>w,t:()=>u,w1:()=>x});var d=c(21820),e=c(74129),f=c(26070);function g(){let a=(0,d.platform)(),b=(0,d.arch)();return"darwin"===a?"arm64"===b?2:1:"linux"===a?"arm64"===b?4:3:5*("win32"===a)}let h={...f.sr.claude},i={...f.sr.codex},j={...e.w3,...f.sr["gemini-cli"]},k={...f.sr.qwen},l={...f.sr.qoder},m={...f.sr.iflow},n={...e.XP,...f.sr.antigravity,loadCodeAssistClientMetadata:JSON.stringify({ideType:9,platform:g(),pluginType:2})};function o(){return{ideType:9,platform:g(),pluginType:2}}({...f.sr.openai});let p={...f.sr.github},q={...f.sr.kiro},r=/^[a-z]{2}-[a-z]+-\d{1,2}$/;function s(a){if("string"!=typeof a||!r.test(a))throw Error("Invalid region");return a}let t={...f.sr.cursor,tokenStoragePaths:{linux:"~/.config/Cursor/User/globalStorage/state.vscdb",macos:"/Users/<user>/Library/Application Support/Cursor/User/globalStorage/state.vscdb",windows:"%APPDATA%\\Cursor\\User\\globalStorage\\state.vscdb"}},u={...f.sr["kimi-coding"],clientId:process.env.KIMI_CODING_OAUTH_CLIENT_ID||f.xq["kimi-coding"]?.clientId},v={...f.sr.kilocode},w={...f.sr.cline},x={...f.sr.clinepass},y={...f.sr.gitlab},z={...f.sr["codebuddy-cn"]},A={...f.sr.kimchi},B=3e5}};
1
+ "use strict";exports.id=3535,exports.ids=[3535],exports.modules={13808:(a,b,c)=>{c.d(b,{$N:()=>f,OK:()=>g,Zl:()=>h,lz:()=>i});var d=c(55511),e=c.n(d);function f(a=32){return e().randomBytes(a).toString("base64url")}function g(a){return e().createHash("sha256").update(a).digest("base64url")}function h(){return e().randomBytes(32).toString("base64url")}function i(a=32){let b=f(a),c=g(b);return{codeVerifier:b,codeChallenge:c,state:h()}}},73159:(a,b,c)=>{c.d(b,{Ue:()=>k,oT:()=>l});var d=c(26070);let e=d.xq.xai?.clientId,f="https://auth.x.ai",g="/oauth2/authorize",h="/oauth2/token",i="/.well-known/openid-configuration",j="/callback",k=96,l={clientId:e,issuer:f,authEndpointPath:g,tokenEndpointPath:h,discoveryPath:i,authorizeUrl:`${f}${g}`,tokenUrl:`${f}${h}`,discoveryUrl:`${f}${i}`,scope:"openid profile email offline_access grok-cli:access api:access",apiBaseUrl:"https://api.x.ai/v1",redirectUri:`http://127.0.0.1:56121${j}`,loopbackPort:56121,callbackPath:j,pkceVerifierBytes:96,refreshLeadSeconds:300,userAgent:"grok-cli/extremerouter",codeChallengeMethod:"S256"}},92990:(a,b,c)=>{c.d(b,{DI:()=>i,Hp:()=>k,LT:()=>j,MZ:()=>v,Nl:()=>z,Nu:()=>p,OV:()=>h,S6:()=>s,Td:()=>A,Tx:()=>q,WN:()=>t,Ww:()=>C,YT:()=>n,ZL:()=>m,cD:()=>o,f7:()=>y,hF:()=>l,lB:()=>w,t:()=>u,vg:()=>B,w1:()=>x});var d=c(21820),e=c(74129),f=c(26070);function g(){let a=(0,d.platform)(),b=(0,d.arch)();return"darwin"===a?"arm64"===b?2:1:"linux"===a?"arm64"===b?4:3:5*("win32"===a)}let h={...f.sr.claude},i={...f.sr.codex},j={...e.w3,...f.sr["gemini-cli"]},k={...f.sr.qwen},l={...f.sr.qoder},m={...f.sr.iflow},n={...e.XP,...f.sr.antigravity,loadCodeAssistClientMetadata:JSON.stringify({ideType:9,platform:g(),pluginType:2})};function o(){return{ideType:9,platform:g(),pluginType:2}}({...f.sr.openai});let p={...f.sr.github},q={...f.sr.kiro},r=/^[a-z]{2}-[a-z]+-\d{1,2}$/;function s(a){if("string"!=typeof a||!r.test(a))throw Error("Invalid region");return a}let t={...f.sr.cursor,tokenStoragePaths:{linux:"~/.config/Cursor/User/globalStorage/state.vscdb",macos:"/Users/<user>/Library/Application Support/Cursor/User/globalStorage/state.vscdb",windows:"%APPDATA%\\Cursor\\User\\globalStorage\\state.vscdb"}},u={...f.sr["kimi-coding"],clientId:process.env.KIMI_CODING_OAUTH_CLIENT_ID||f.xq["kimi-coding"]?.clientId},v={...f.sr.kilocode},w={...f.sr.cline},x={...f.sr.clinepass},y={...f.sr.gitlab},z={...f.sr["codebuddy-cn"]},A={...f.sr.kimchi},B={...f.sr.zed,tokenStoragePaths:{linux:"~/.local/share/zed/ (or libsecret keyring)",macos:"macOS Keychain (zed)",windows:"Windows Credential Manager"}},C=3e5}};
@@ -1,7 +1,7 @@
1
- "use strict";exports.id=4040,exports.ids=[4040],exports.modules={34040:(a,b,c)=>{c.d(b,{zH:()=>R,dW:()=>U,Vt:()=>Q,$x:()=>K,Vu:()=>O,Pr:()=>P,vt:()=>V,je:()=>B,UP:()=>N,wj:()=>T});var d=c(12557),e=c(43659),f=c(66306),g=c(26922),h=c(24467),i=c(97616);let j=[/you are (an? )?(expert|senior|principal|staff)?\s*(coding|programming|software|ai)\s*(assistant|agent|engineer|companion|specialist)/i,/you are (claude|cursor|cline|copilot|windsurf|aider|roo|cody|continue)/i,/your (primary )?(task|role|job|goal) is to (help|assist|act as)/i,/follow the user[''']?s instructions/i,/you are operating as (a |an )?(pair|interactive|autonomous)/i,/write (clean|idiomatic|production)[- ]ready code/i,/you have access to (a set of |various )?tools/i,/<environment|<context|<system_prompt>/i];function k(a){return!!a&&"string"==typeof a&&!(a.length<80)&&j.some(b=>b.test(a))}function l(a){if(!a)return a;let b={...a};for(let a of["messages","input"])Array.isArray(b[a])&&(b[a]=b[a].filter(a=>{var b;return a?.role!=="system"&&a?.role!=="developer"||!k("string"==typeof(b=a.content)?b:Array.isArray(b)?b.map(a=>"string"==typeof a?a:a?.text||"").join("\n"):"")}));if("string"==typeof b.system&&k(b.system))delete b.system;else if(Array.isArray(b.system)){let a=b.system.filter(a=>!(a?.type==="text"&&k(a.text)));b.system=a.length>0?a:void 0,void 0===b.system&&delete b.system}for(let a of["system_instruction","systemInstruction"]){let c=b[a];c&&k(Array.isArray(c.parts)?c.parts.map(a=>a?.text||"").join("\n"):"")&&delete b[a]}return b}let m={default:"You are a specialist worker in a swarm. Focus exclusively on your assigned subtask. Produce complete, production-ready output. Do not attempt other subtasks.",architecture:"You are a software architect. Design the structure, interfaces, and module boundaries for your assigned component. Prioritize clean separation of concerns.","game-logic":"You are a game-logic specialist. Implement mechanics, state machines, and rules with correctness and balance in mind.","data-layer":"You are a data/persistence specialist. Implement storage, schemas, serialization, and access patterns with integrity and performance in mind.",ui:"You are a UI/UX specialist. Build accessible, responsive interfaces with clean component structure.",testing:"You are a testing specialist. Write thorough tests covering happy paths, edge cases, and failure modes.",security:"You are a security specialist. Harden inputs, prevent injection/XSS, and enforce least-privilege.",devops:"You are a DevOps specialist. Handle deployment, configuration, and operational concerns."};function n(a){let b=m[a?.role]||m.default,c=a?.instruction||a?.title||"Complete your assigned subtask.";return["=== SWARM WORKER DIRECTIVE ===",b,"",`Subtask: ${a?.title||"Untitled"}`,"",c,"\nOutput ONLY your work for this subtask. Do not reference other workers or the orchestrator.\n=== END DIRECTIVE ==="].join("\n")}var o=c(36701);let p={workerHardTimeoutMs:9e4,workerQuorum:2,stragglerGraceMs:1e4,managerTimeoutMs:6e4,minWorkers:2,maxWorkers:8},q="=== SWARM GATEKEEPER ===\nYou are the GATEKEEPER of a hierarchical swarm. Classify the user's most recent request as SIMPLE or COMPLEX.\n\nSIMPLE = greeting, small talk, a factual question, a one-line clarification, or anything answerable in under ~50 tokens without decomposition.\nCOMPLEX = a coding task, multi-step build request, design problem, debugging session, or anything benefiting from decomposition into parallel specialist work.\n\nRespond with EXACTLY one line, nothing else:\nVERDICT: SIMPLE\nor\nVERDICT: COMPLEX";function r(a){return['=== SWARM MANAGER (STRATEGY) ===\nYou are the MANAGER of a hierarchical swarm. Analyze the user\'s request and produce a high-level execution strategy that decomposes it into independent parallel subtasks.\n\nRespond with ONLY a JSON object (no markdown fences, no prose) of this exact shape:\n{\n "assessment": "<1-2 sentence summary of what the request needs>",\n "subtasks": [\n { "id": 1, "title": "<short title>", "role": "<architecture|game-logic|data-layer|ui|testing|security|devops|default>", "instruction": "<detailed instruction for the specialist worker>" }\n ]\n}\n\nRules:\n- Aim for 2-5 subtasks. Each must be independently executable in parallel.\n- `role` must be one of the listed values; pick the best specialist fit.\n- `instruction` must be self-contained — a worker sees only its own subtask.\n- Do NOT include integration/assembly as a subtask; the Staff auditor + Manager synthesis handle that.\n\n=== USER REQUEST ===',a].join("\n")}function s(a,b){return["=== SWARM STAFF (AUDIT) ===\nYou are the STAFF auditor of a hierarchical swarm. Specialist workers have independently completed their assigned subtasks. Your job is to produce a TECHNICAL AUDIT REPORT that the Manager will use to synthesize the final answer.\n\nFor each worker output, evaluate:\n- Completeness: did it fulfill the subtask instruction?\n- Correctness: any bugs, type errors, logic flaws, or missing edge cases?\n- Consistency: naming conflicts, duplicated logic, or mismatched interfaces with other workers?\n- Integration risks: what will need reconciliation when combining outputs?\n\nThen provide a CONSOLIDATION PLAN: the order in which outputs should be merged, what conflicts to resolve, and what gaps remain.\n\n=== SUBTASKS & WORKER OUTPUTS ===",a.map((a,c)=>{let d=b[c]||"(worker did not produce output)";return`### Subtask ${a.id}: ${a.title}
1
+ "use strict";exports.id=4040,exports.ids=[4040],exports.modules={31589:(a,b,c)=>{c.d(b,{Ub:()=>j});var d=c(70568);let e=Object.freeze({toolUse:!0,fileAccess:!0,streaming:!0,multiTurn:!0}),f={webCookie:Object.freeze({toolUse:!1,fileAccess:!1,streaming:!0,multiTurn:!0})},g=Object.freeze({manager:{toolUse:!0,fileAccess:!0},staff:{toolUse:!0,fileAccess:!0},audit:{toolUse:!0,fileAccess:!0},judge:{toolUse:!0,fileAccess:!0}}),h=new Map;for(let a of d.A)if(a.capabilities&&"object"==typeof a.capabilities)h.set(a.id,{...e,...a.capabilities});else{let b=f[a.category];h.set(a.id,b?{...b}:{...e})}function i(a,b){if(!a||"string"!=typeof a)return!0;let c=a.indexOf("/");var d=c>=0?a.slice(0,c):a;let f=g[b];if(!f)return!0;let i=h.get(d)||{...e};for(let[a,b]of Object.entries(f))if(b&&!i[a])return!1;return!0}function j(a,b,c=[]){let d=[],e=Array.isArray(c)&&c.length>0?c[0]:"";if("swarm"===a){for(let{role:a,model:c}of[{role:"manager",model:b?.managerModel||e},{role:"staff",model:b?.staffModel||e},{role:"audit",model:b?.auditModel||e}])if(c&&!i(c,a)){let b=c.split("/")[0];d.push({role:a,model:c,reason:`Provider "${b}" cannot serve as ${a} — web cookie providers lack tool use and file access required for control roles.`})}}else if("fusion"===a){let a=b?.judgeModel||e;if(a&&!i(a,"judge")){let b=a.split("/")[0];d.push({role:"judge",model:a,reason:`Provider "${b}" cannot serve as judge — web cookie providers lack tool use and file access required for the judge role.`})}}return d}},34040:(a,b,c)=>{c.d(b,{zH:()=>S,dW:()=>V,Vt:()=>R,$x:()=>L,Vu:()=>P,Pr:()=>Q,vt:()=>W,je:()=>C,UP:()=>O,wj:()=>U});var d=c(12557),e=c(43659),f=c(66306),g=c(26922),h=c(24467),i=c(31589),j=c(70568);let k=[/you are (an? )?(expert|senior|principal|staff)?\s*(coding|programming|software|ai)\s*(assistant|agent|engineer|companion|specialist)/i,/you are (claude|cursor|cline|copilot|windsurf|aider|roo|cody|continue)/i,/your (primary )?(task|role|job|goal) is to (help|assist|act as)/i,/follow the user[''']?s instructions/i,/you are operating as (a |an )?(pair|interactive|autonomous)/i,/write (clean|idiomatic|production)[- ]ready code/i,/you have access to (a set of |various )?tools/i,/<environment|<context|<system_prompt>/i];function l(a){return!!a&&"string"==typeof a&&!(a.length<80)&&k.some(b=>b.test(a))}function m(a){if(!a)return a;let b={...a};for(let a of["messages","input"])Array.isArray(b[a])&&(b[a]=b[a].filter(a=>{var b;return a?.role!=="system"&&a?.role!=="developer"||!l("string"==typeof(b=a.content)?b:Array.isArray(b)?b.map(a=>"string"==typeof a?a:a?.text||"").join("\n"):"")}));if("string"==typeof b.system&&l(b.system))delete b.system;else if(Array.isArray(b.system)){let a=b.system.filter(a=>!(a?.type==="text"&&l(a.text)));b.system=a.length>0?a:void 0,void 0===b.system&&delete b.system}for(let a of["system_instruction","systemInstruction"]){let c=b[a];c&&l(Array.isArray(c.parts)?c.parts.map(a=>a?.text||"").join("\n"):"")&&delete b[a]}return b}let n={default:"You are a specialist worker in a swarm. Focus exclusively on your assigned subtask. Produce complete, production-ready output. Do not attempt other subtasks.",architecture:"You are a software architect. Design the structure, interfaces, and module boundaries for your assigned component. Prioritize clean separation of concerns.","game-logic":"You are a game-logic specialist. Implement mechanics, state machines, and rules with correctness and balance in mind.","data-layer":"You are a data/persistence specialist. Implement storage, schemas, serialization, and access patterns with integrity and performance in mind.",ui:"You are a UI/UX specialist. Build accessible, responsive interfaces with clean component structure.",testing:"You are a testing specialist. Write thorough tests covering happy paths, edge cases, and failure modes.",security:"You are a security specialist. Harden inputs, prevent injection/XSS, and enforce least-privilege.",devops:"You are a DevOps specialist. Handle deployment, configuration, and operational concerns."};function o(a){let b=n[a?.role]||n.default,c=a?.instruction||a?.title||"Complete your assigned subtask.";return["=== SWARM WORKER DIRECTIVE ===",b,"",`Subtask: ${a?.title||"Untitled"}`,"",c,"\nOutput ONLY your work for this subtask. Do not reference other workers or the orchestrator.\n=== END DIRECTIVE ==="].join("\n")}var p=c(36701);let q={workerHardTimeoutMs:9e4,workerQuorum:2,stragglerGraceMs:1e4,managerTimeoutMs:6e4,minWorkers:2,maxWorkers:8},r="=== SWARM GATEKEEPER ===\nYou are the GATEKEEPER of a hierarchical swarm. Classify the user's most recent request as SIMPLE or COMPLEX.\n\nSIMPLE = greeting, small talk, a factual question, a one-line clarification, or anything answerable in under ~50 tokens without decomposition.\nCOMPLEX = a coding task, multi-step build request, design problem, debugging session, or anything benefiting from decomposition into parallel specialist work.\n\nRespond with EXACTLY one line, nothing else:\nVERDICT: SIMPLE\nor\nVERDICT: COMPLEX";function s(a){return['=== SWARM MANAGER (STRATEGY) ===\nYou are the MANAGER of a hierarchical swarm. Analyze the user\'s request and produce a high-level execution strategy that decomposes it into independent parallel subtasks.\n\nRespond with ONLY a JSON object (no markdown fences, no prose) of this exact shape:\n{\n "assessment": "<1-2 sentence summary of what the request needs>",\n "subtasks": [\n { "id": 1, "title": "<short title>", "role": "<architecture|game-logic|data-layer|ui|testing|security|devops|default>", "instruction": "<detailed instruction for the specialist worker>" }\n ]\n}\n\nRules:\n- Aim for 2-5 subtasks. Each must be independently executable in parallel.\n- `role` must be one of the listed values; pick the best specialist fit.\n- `instruction` must be self-contained — a worker sees only its own subtask.\n- Do NOT include integration/assembly as a subtask; the Staff auditor + Manager synthesis handle that.\n\n=== USER REQUEST ===',a].join("\n")}function t(a,b){return["=== SWARM STAFF (AUDIT) ===\nYou are the STAFF auditor of a hierarchical swarm. Specialist workers have independently completed their assigned subtasks. Your job is to produce a TECHNICAL AUDIT REPORT that the Manager will use to synthesize the final answer.\n\nFor each worker output, evaluate:\n- Completeness: did it fulfill the subtask instruction?\n- Correctness: any bugs, type errors, logic flaws, or missing edge cases?\n- Consistency: naming conflicts, duplicated logic, or mismatched interfaces with other workers?\n- Integration risks: what will need reconciliation when combining outputs?\n\nThen provide a CONSOLIDATION PLAN: the order in which outputs should be merged, what conflicts to resolve, and what gaps remain.\n\n=== SUBTASKS & WORKER OUTPUTS ===",a.map((a,c)=>{let d=b[c]||"(worker did not produce output)";return`### Subtask ${a.id}: ${a.title}
2
2
  Role: ${a.role}
3
3
  Instruction: ${a.instruction}
4
4
 
5
5
  #### Worker Output
6
- ${d}`}).join("\n\n---\n\n"),"=== END ===\n\nNow write the technical audit report. Be concrete and specific. Reference subtask IDs."].join("\n")}function t(a,b){return["=== SWARM MANAGER (SYNTHESIS) ===\nYou are the MANAGER producing the FINAL ANSWER. A Staff auditor has reviewed the parallel worker outputs and produced a technical audit report below. Synthesize ONE cohesive, complete, production-quality answer for the user's original request.\n\nRules:\n- Resolve any conflicts the auditor flagged.\n- Integrate all worker outputs into a single coherent result (codebase, explanation, or both).\n- Do NOT mention the swarm, workers, audit, or that multiple agents were used. The user sees only your final answer.\n- Match the user's language and intent exactly.\n\n=== TECHNICAL AUDIT REPORT ===",a,"=== END AUDIT ===\n\n=== ORIGINAL USER REQUEST ===",b,"\nNow produce the final answer."].join("\n")}function u(a){for(let b of["messages","input"])if(Array.isArray(a[b]))for(let c=a[b].length-1;c>=0;c--){let d=a[b][c];if(d?.role==="user"){if("string"==typeof d.content)return d.content;if(Array.isArray(d.content))return d.content.map(a=>"string"==typeof a?a:a?.text||"").join("")}}if(Array.isArray(a.contents)){let b=a.contents[a.contents.length-1];if(b?.role==="user"&&Array.isArray(b.parts))return b.parts.map(a=>a?.text||"").join("")}return""}function v(a){let b;if(!a)return null;let c=a.replace(/```json\s*/gi,"").replace(/```/g,"").trim(),d=c.indexOf("{"),e=c.lastIndexOf("}");if(-1!==d&&-1!==e&&e>d)try{let a=JSON.parse(c.slice(d,e+1));if(Array.isArray(a.subtasks)&&a.subtasks.length>0)return a}catch{}let f=[],g=/\{[^{}]*?"id"\s*:\s*\d+[^{}]*?\}/gs;for(;null!==(b=g.exec(c));){let a=b[0];try{let b=JSON.parse(a);b&&(b.title||b.instruction||b.role)&&f.push({id:"number"==typeof b.id?b.id:f.length+1,title:b.title||`Subtask ${f.length+1}`,role:b.role||"default",instruction:b.instruction||b.title||""})}catch{}}return f.length>0?{assessment:"(recovered from truncated output)",subtasks:f}:null}function w(a){let{tools:b,tool_choice:c,...d}=a,e={...d,stream:!1};return Array.isArray(e.messages)&&(e.messages=K(e.messages)),e}async function x({runId:a,body:b,managerModel:c,handleSingleModel:d,cfg:e,log:f}){(0,o._5)(a,"gatekeeper",{model:c}),u(b);let g=R(l(w(b)),q);try{let b=await T(d(g,c,!0),e.managerTimeoutMs);if(b?.__timeout||b?.__error)return(0,o.SH)(a,"gatekeeper",{verdict:"complex"}),"complex";let h=Q(await b.clone().json().catch(()=>({}))),i=/VERDICT:\s*SIMPLE/i.test(h)?"simple":"complex";return(0,o.SH)(a,"gatekeeper",{verdict:i}),f?.info?.("SWARM",`Gatekeeper verdict: ${i}`),i}catch(b){return f?.warn?.("SWARM",`Gatekeeper error, assuming complex: ${b?.message||b}`),(0,o.SH)(a,"gatekeeper",{verdict:"complex"}),"complex"}}async function y({runId:a,body:b,managerModel:c,handleSingleModel:d,cfg:e,log:f}){(0,o._5)(a,"manager",{model:c});let g=u(b),h=R(l(w(b)),r(g));try{let b=await T(d(h,c,!0),e.managerTimeoutMs);if(b?.__timeout||b?.__error)return(0,o.SH)(a,"manager",{strategy:null}),null;let g=Q(await b.clone().json().catch(()=>({}))),i=v(g);return(0,o.SH)(a,"manager",{strategy:i?{subtaskCount:i.subtasks.length}:null}),i||f?.warn?.("SWARM","Manager produced unparseable strategy"),i}catch(b){return f?.warn?.("SWARM",`Manager strategy error: ${b?.message||b}`),(0,o.SH)(a,"manager",{strategy:null}),null}}async function z({runId:a,strategy:b,models:c,body:d,handleSingleModel:e,cfg:f,log:g}){(0,o._5)(a,"workers",{workerCount:b.subtasks.length});let h=b.subtasks,i=c.filter(Boolean);if(0===i.length)return(0,o.SH)(a,"workers",{workers:[]}),[];let j=h.map((b,c)=>{let g=i[c%i.length],h=R(w(d),n(b));return(0,o.gF)(a,c,"running",{model:g}),T(e(h,g,!0),f.workerHardTimeoutMs).then(async d=>{if(d?.__timeout||d?.__error)return(0,o.gF)(a,c,"error",{model:g}),{ok:!1,text:""};let e=Q(await d.clone().json().catch(()=>({})));return(0,o.gF)(a,c,"done",{model:g,outputLen:e.length}),{ok:!0,text:e,subtask:b}}).catch(()=>((0,o.gF)(a,c,"error",{model:g}),{ok:!1,text:""}))}),k=await U(j,{minPanel:Math.min(f.workerQuorum,j.length),stragglerGraceMs:f.stragglerGraceMs,panelHardTimeoutMs:f.workerHardTimeoutMs}),l=[];for(let a=0;a<k.length;a++){let b=k[a];b&&b.ok&&l.push({subtask:h[a],text:b.text})}return(0,o.SH)(a,"workers",{workers:k.map((a,b)=>({index:b,ok:!!a?.ok}))}),l}async function A({runId:a,strategy:b,workerOutputs:c,staffModel:d,auditModel:e,body:f,handleSingleModel:g,cfg:h,log:i}){let j=d||e;if(!j)return(0,o.SH)(a,"audit",{skipped:!0}),null;(0,o._5)(a,"audit",{model:j});let k=b.subtasks.map((a,b)=>{let d=c.find(b=>b.subtask?.id===a.id);return{...a,output:d?.text||"(no output)"}}),m=R(l(w(f)),s(k,c.map(a=>a.text)));try{let b=await T(g(m,j,!0),h.managerTimeoutMs);if(b?.__timeout||b?.__error)return(0,o.SH)(a,"audit",{skipped:!0}),null;let c=Q(await b.clone().json().catch(()=>({})));return(0,o.SH)(a,"audit",{reportLen:c.length}),c}catch(b){return i?.warn?.("SWARM",`Staff audit error: ${b?.message||b}`),(0,o.SH)(a,"audit",{skipped:!0}),null}}async function B({body:a,models:b,handleSingleModel:c,log:d,comboName:e,managerModel:f,staffModel:g,auditModel:h,workerCount:i,swarmTuning:j,telemetry:k=!0}){let l=b.filter(Boolean);if(0===l.length)return new Response(JSON.stringify({error:"Swarm requires at least one worker model"}),{status:400});let m={...p,...j||{}},n=(f||"").trim()||l[0],q=u(a);if(1===l.length&&!f&&!g&&!h)return c(a,l[0]);let r=k?(0,o._s)({comboName:e,promptPreview:q,managerModel:n,staffModel:g,auditModel:h,workerCount:i||m.minWorkers}):null,s=r?.runId;try{let b=k?await x({runId:s,body:a,managerModel:n,handleSingleModel:c,cfg:m,log:d}):await C({body:a,managerModel:n,handleSingleModel:c,cfg:m,log:d});if("simple"===b)return d?.info?.("SWARM","Gatekeeper bypass — simple request, direct answer"),s&&(0,o.kA)(s,{bypassed:!0}),c(a,n);let e=k?await y({runId:s,body:a,managerModel:n,handleSingleModel:c,cfg:m,log:d}):await D({body:a,managerModel:n,handleSingleModel:c,cfg:m,log:d});if(!e||!Array.isArray(e.subtasks)||0===e.subtasks.length)return d?.warn?.("SWARM","Strategy decomposition failed — falling back to direct answer"),s&&(0,o.kA)(s,{fallback:!0}),c(a,n);let f="number"==typeof i&&i>0?Math.min(i,m.maxWorkers):m.maxWorkers,j=e.subtasks.slice(0,f),p=k?await z({runId:s,strategy:{subtasks:j},models:l,body:a,handleSingleModel:c,cfg:m,log:d}):await E({strategy:{subtasks:j},models:l,body:a,handleSingleModel:c,cfg:m,log:d});if(p.length<m.minWorkers){if(d?.warn?.("SWARM",`Only ${p.length}/${j.length} workers succeeded — fallback`),s&&(0,o.kA)(s,{fallback:!0}),1===p.length)return c(R(a,"The specialist worker produced this answer. Output it verbatim to the user."),n);return c(a,n)}let r=k?await A({runId:s,strategy:{subtasks:j},workerOutputs:p,staffModel:g,auditModel:h,body:a,handleSingleModel:c,cfg:m,log:d}):await F({strategy:{subtasks:j},workerOutputs:p,staffModel:g,auditModel:h,body:a,handleSingleModel:c,cfg:m,log:d}),u=r?t(r,q):t(p.map(a=>a.text).join("\n\n---\n\n"),q),v=R(a,u);if(d?.info?.("SWARM",`Synthesizing final answer from ${p.length} worker outputs`),s){(0,o._5)(s,"synthesis",{model:n});let a=await c(v,n);return(0,o.SH)(s,"synthesis"),(0,o.kA)(s,{workerCount:p.length}),a}return c(v,n)}catch(b){return d?.error?.("SWARM",`Swarm failed: ${b?.message||b}`),s&&(0,o.bt)(s,b),c(a,n)}}async function C({body:a,managerModel:b,handleSingleModel:c,cfg:d,log:e}){let f=R(l(w(a)),q);try{let a=await T(c(f,b,!0),d.managerTimeoutMs);if(a?.__timeout||a?.__error)return"complex";let e=Q(await a.clone().json().catch(()=>({})));return/VERDICT:\s*SIMPLE/i.test(e)?"simple":"complex"}catch{return"complex"}}async function D({body:a,managerModel:b,handleSingleModel:c,cfg:d,log:e}){let f=u(a),g=R(l(w(a)),r(f));try{let a=await T(c(g,b,!0),d.managerTimeoutMs);if(a?.__timeout||a?.__error)return null;let e=Q(await a.clone().json().catch(()=>({})));return v(e)}catch{return null}}async function E({strategy:a,models:b,body:c,handleSingleModel:d,cfg:e}){let f=b.filter(Boolean);if(0===f.length)return[];let g=a.subtasks.map((a,b)=>{let g=f[b%f.length];return T(d(R(w(c),n(a)),g,!0),e.workerHardTimeoutMs)}),h=await U(g,{minPanel:Math.min(e.workerQuorum,g.length),stragglerGraceMs:e.stragglerGraceMs,panelHardTimeoutMs:e.workerHardTimeoutMs}),i=[];for(let b=0;b<h.length;b++){let c=h[b];if(c&&!c.__timeout&&!c.__error){let d=Q(await c.clone().json().catch(()=>({})));d&&i.push({subtask:a.subtasks[b],text:d})}}return i}async function F({strategy:a,workerOutputs:b,staffModel:c,auditModel:d,body:e,handleSingleModel:f,cfg:g}){let h=c||d;if(!h)return null;let i=a.subtasks.map((a,c)=>{let d=b.find(b=>b.subtask?.id===a.id);return{...a,output:d?.text||"(no output)"}}),j=R(l(w(e)),s(i,b.map(a=>a.text)));try{let a=await T(f(j,h,!0),g.managerTimeoutMs);if(a?.__timeout||a?.__error)return null;return Q(await a.clone().json().catch(()=>({})))}catch{return null}}let G=new Set(["vision","pdf","audioInput","videoInput"]),H=new Map;for(let a of i.A){if(a.alias&&H.set(a.alias,a.id),Array.isArray(a.aliases))for(let b of a.aliases)H.set(b,a.id);H.set(a.id,a.id)}let I="[Called tools: ",J="[Tool result: ";function K(a){return a.filter(a=>a).map(a=>{if("tool"===a.role||"function"===a.role)return{role:"assistant",content:`${J}${(0,g.kU)(a.content)||String(a.content??"")}]`};if("assistant"===a.role&&Array.isArray(a.tool_calls)){let{tool_calls:b,...c}=a,d=b.map(a=>a?.function?.name||a?.name||"tool").join(", "),e=(0,g.kU)(c.content)||("string"==typeof c.content?c.content:"");return{...c,content:`${e}${e?"\n":""}${I}${d}]`}}if(Array.isArray(a.content)){let b=a.content.some(a=>"tool_use"===a.type),c=a.content.some(a=>"tool_result"===a.type);if(b||c){let b=[],c=[],d=[];for(let e of a.content)"text"===e.type&&e.text&&b.push(e.text),"tool_use"===e.type&&c.push(e.name||"tool"),"tool_result"===e.type&&d.push((0,g.kU)(e.content)||String(e.content??""));let{...e}=a,f=b.join("\n");return c.length>0&&(f=`${f}${f?"\n":""}${I}${c.join(", ")}]`),d.length>0&&(f=`${f}${f?"\n":""}${J}${d.join("\n")}]`),{...e,content:f}}}return a})}let L=new Map;function M(a){if(!Array.isArray(a)||0===a.length)return[];let b=a=>"assistant"===a||"model"===a,c=a.length-1;for(;c>=0&&!b(a[c]?.role);)c--;return a.slice(c+1)}function N(a){a?L.delete(a):L.clear()}function O(a,b){if(a.includes("/"))return null;let c=(Array.isArray(b)?b:b?.combos||[]).find(b=>b.name===a);return c&&c.models&&c.models.length>0?c.models:null}async function P({body:a,models:b,handleSingleModel:c,log:g,comboName:i,comboStrategy:j,comboStickyLimit:k=1,autoSwitch:l=!0,breakerSettings:m=null}){let n=function(a,b,c,d=1){let e;if(!a||a.length<=1||"round-robin"!==c)return a;let f=b||"__default__",g=Number.isFinite(e=Number.parseInt(d,10))&&e>0?e:1,h=L.get(f)||{index:0,consecutiveUseCount:0},i=h.index%a.length,j=function(a,b){let c=[...a];for(let a=0;a<b;a++){let a=c.shift();c.push(a)}return c}(a,i),k=h.consecutiveUseCount+1;return k>=g?L.set(f,{index:(i+1)%a.length,consecutiveUseCount:0}):L.set(f,{index:i,consecutiveUseCount:k}),j}(b,i,j,k);if(m){let{active:a,skipped:b}=function(a,b){if(!Array.isArray(a)||a.length<=1)return{active:a||[],skipped:[]};let c=[],d=[];for(let e of a){let a="string"==typeof e?e.indexOf("/"):-1,f=a>0?e.slice(0,a):"",g=f?H.get(f)||f:"";g&&(0,h.GK)(g,b)?d.push(e):c.push(e)}return 0===c.length?{active:a,skipped:[]}:{active:c,skipped:d}}(n,m);b.length>0&&(g.info("COMBO",`breaker pre-filter: skipped ${b.length} open-breaker model(s) [${b.join(", ")}]`),n=a)}if(l){let b=function(a){let b=new Set;if(!a||"object"!=typeof a)return b;let c=a=>{if(!a||"object"!=typeof a)return;let c=a.type;("image_url"===c||"image"===c||"input_image"===c)&&b.add("vision"),("file"===c||"document"===c||"input_file"===c)&&b.add("pdf");let d=a.inlineData?.mimeType||a.fileData?.mimeType;"string"==typeof d&&d.startsWith("image/")&&b.add("vision"),"application/pdf"===d&&b.add("pdf")},d=a=>{if(Array.isArray(a))for(let b of a)c(b)};for(let b of M(a.messages))d(b.content);for(let b of M(a.input))d(b.content);for(let b of M(a.contents||a.request?.contents))d(b.parts);return b}(a);if(b.size>0){let a=function(a,b){if(!b||0===b.size||!Array.isArray(a)||a.length<=1)return a;let c=[...b].filter(a=>G.has(a)),d=[...b].filter(a=>!G.has(a));return a.map((a,b)=>{let e,g,h,i;return{m:a,i:b,t:(g=(e="string"==typeof a?a.indexOf("/"):-1)>0?a.slice(0,e):"",h=e>0?a.slice(e+1):a,i=(0,f.nl)(g,h),c.every(a=>!0===i[a])?+!d.every(a=>!0===i[a]):2)}}).sort((a,b)=>a.t-b.t||a.i-b.i).map(a=>a.m)}(n,b);a[0]!==n[0]&&g.info("COMBO",`auto-switch for [${[...b].join(",")}] → ${a[0]}`),n=a}}let o=null,p=null,q=null;for(let b=0;b<n.length;b++){let e=n[b];g.info("COMBO",`Trying model ${b+1}/${n.length}: ${e}`);try{let b=await c(a,e);if(b.ok)return g.info("COMBO",`Model ${e} succeeded`),b;let f=b.statusText||"",h=null;try{let a=await b.clone().json();f=a?.error?.message||a?.error||a?.message||f,h=a?.retryAfter||null}catch{}if(h&&(!p||new Date(h)<new Date(p))&&(p=h),"string"!=typeof f)try{f=JSON.stringify(f)}catch{f=String(f)}let{shouldFallback:i,cooldownMs:j}=(0,d.hk)(b.status,f);if(!i)return g.warn("COMBO",`Model ${e} failed (no fallback)`,{status:b.status}),b;j&&j>0&&j<=5e3&&(503===b.status||502===b.status||504===b.status)&&(g.info("COMBO",`Model ${e} transient ${b.status}, waiting ${j}ms before next`),await new Promise(a=>setTimeout(a,j))),o=f||String(b.status),q||(q=b.status),g.warn("COMBO",`Model ${e} failed, trying next`,{status:b.status})}catch(a){o=a.message||String(a),q||(q=500),g.warn("COMBO",`Model ${e} threw error, trying next`,{error:o})}}let r=o&&o.toLowerCase().includes("no credentials")?503:q||503,s=o||"All combo models unavailable";if(p){let a=(0,d.Qo)(p);return g.warn("COMBO",`All models failed | ${s} (${a})`),(0,e.wO)(r,s,p,a)}return g.warn("COMBO",`All models failed | ${s}`),new Response(JSON.stringify({error:{message:s}}),{status:r,headers:{"Content-Type":"application/json"}})}function Q(a){if(!a||"object"!=typeof a)return"";let b=a.choices?.[0];if(b){let a=b.message??b.delta??{},c=(0,g.kU)(a.content);if(c.trim())return c;if("string"==typeof b.text&&b.text.trim())return b.text}let c=(0,g.kU)(a.content);if(c.trim())return c;let d=a.candidates?.[0]?.content?.parts;if(Array.isArray(d)){let a=d.map(a=>a?.text||"").join("");if(a.trim())return a}if(Array.isArray(a.output)){let b=a.output.flatMap(a=>Array.isArray(a.content)?a.content.map(a=>a?.text||""):[]).join("");if(b.trim())return b}return""}function R(a,b){let c={...a};return Array.isArray(a.messages)?c.messages=[...a.messages,{role:"user",content:b}]:Array.isArray(a.input)?c.input=[...a.input,{role:"user",content:b}]:Array.isArray(a.contents)?c.contents=[...a.contents,{role:"user",parts:[{text:b}]}]:c.messages=[{role:"user",content:b}],c}let S={minPanel:2,stragglerGraceMs:8e3,panelHardTimeoutMs:9e4};function T(a,b){return new Promise(c=>{let d=setTimeout(()=>c({__timeout:!0}),b);Promise.resolve(a).then(a=>{clearTimeout(d),c(a)}).catch(a=>{clearTimeout(d),c({__error:a})})})}function U(a,{minPanel:b,stragglerGraceMs:c,panelHardTimeoutMs:d}){return new Promise(e=>{let f=Array(a.length),g=0,h=0,i=!1,j=null,k=()=>{i||(i=!0,clearTimeout(l),j&&clearTimeout(j),e(f))},l=setTimeout(k,d);a.forEach((d,e)=>{Promise.resolve(d).then(a=>{f[e]=a}).catch(a=>{f[e]={__error:a}}).finally(()=>{if(g++,f[e]&&f[e].ok&&h++,g===a.length)return k();h>=b&&!j&&(j=setTimeout(k,c))})})})}async function V({body:a,models:b,handleSingleModel:c,log:d,comboName:e,judgeModel:f,tuning:g}){let h,i=Array.isArray(b)?b.filter(Boolean):[];if(0===i.length)return new Response(JSON.stringify({error:{message:"Fusion combo has no models"}}),{status:400,headers:{"Content-Type":"application/json"}});if(1===i.length)return c(a,i[0]);let j={...S,...g||{}},k=Math.min(Math.max(2,j.minPanel),i.length),l=f&&f.trim()?f.trim():i[0];d.info("FUSION",`Combo "${e}" | panel=${i.length} [${i.join(", ")}] | judge=${l} | quorum=${k}`);let{tools:m,tool_choice:n,...o}=a,p={...o,stream:!1};Array.isArray(p.messages)?p.messages=K(p.messages):Array.isArray(p.input)&&(p.input=K(p.input));let q=Date.now(),r=i.map(a=>T(c(p,a,!0),j.panelHardTimeoutMs)),s=await U(r,{...j,minPanel:k});d.info("FUSION",`fan-out collected in ${Date.now()-q}ms`);let t=[];for(let a=0;a<s.length;a++){let b=s[a],c=i[a];if(!b){d.warn("FUSION",`Panel ${c} dropped (straggler/timeout)`);continue}if(b.__timeout){d.warn("FUSION",`Panel ${c} timed out`);continue}if(b.__error){d.warn("FUSION",`Panel ${c} threw`,{error:b.__error?.message||String(b.__error)});continue}if(!b.ok){d.warn("FUSION",`Panel ${c} failed`,{status:b.status});continue}try{let a=await b.clone().json(),e=Q(a);e?(t.push({model:c,text:e,res:b}),d.info("FUSION",`Panel ${c} ok (${e.length} chars)`)):d.warn("FUSION",`Panel ${c} returned empty content`)}catch(a){d.warn("FUSION",`Panel ${c} unparseable`,{error:a.message||String(a)})}}if(0===t.length)return d.warn("FUSION","All panel models failed"),new Response(JSON.stringify({error:{message:"All fusion panel models failed"}}),{status:503,headers:{"Content-Type":"application/json"}});if(1===t.length)return a?.stream===!0?(d.info("FUSION",`Only ${t[0].model} succeeded — re-running with stream:true to honor client SSE request (no fusion)`),c(a,t[0].model)):(d.info("FUSION",`Only ${t[0].model} succeeded — returning its response directly (no fusion, no re-run)`),t[0].res);let u=R(a,(h=t.map((a,b)=>`[Source ${b+1}]
7
- ${a.text}`).join("\n\n"),[`You are the JUDGE in a model-fusion panel. ${t.length} expert models independently answered the user's most recent request. Their responses are below, anonymized by source.`,"\nDo NOT mention that multiple models were used, and do NOT refer to the sources. Produce ONE authoritative final answer addressed directly to the user.\n\nFirst, internally analyze the panel along these dimensions: consensus (points most sources agree on — treat as higher-confidence), contradictions (where they disagree — resolve with your own judgment), partial coverage, unique insights only one source surfaced, and blind spots every source missed. Then write the best possible final answer grounded in that analysis — more complete and correct than any single response, with no filler.\n\n=== PANEL RESPONSES ===",h,"=== END PANEL RESPONSES ===\n\nNow write the final answer to the user's original request."].join("\n")));return d.info("FUSION",`Judging ${t.length} answers with ${l}`),c(u,l)}},36701:(a,b,c)=>{c.d(b,{SH:()=>l,ZW:()=>p,_5:()=>k,_s:()=>j,bt:()=>n,gF:()=>m,kA:()=>o,ni:()=>f});var d=c(78474),e=c(77598);global._swarmEmitter||(global._swarmEmitter=new d.EventEmitter,global._swarmEmitter.setMaxListeners(100),global._swarmRuns=new Map,global._swarmEmitTimers={});let f=global._swarmEmitter,g=global._swarmRuns,h=global._swarmEmitTimers;function i(a,b,c=120){let d=`${a}:${b?.runId||""}`;h[d]&&clearTimeout(h[d]),h[d]=setTimeout(()=>{delete h[d],f.emit(a,b)},c)}function j({comboName:a,promptPreview:b,managerModel:c,staffModel:d,auditModel:f,workerCount:h}){let k=(0,e.randomUUID)(),l=Date.now(),m={runId:k,comboName:a,promptPreview:(b||"").slice(0,200),managerModel:c,staffModel:d,auditModel:f,workerCount:h||0,status:"running",startedAt:l,completedAt:null,totalDurationMs:null,stages:{gatekeeper:{status:"pending",startedAt:null,completedAt:null,durationMs:null,model:c,verdict:null},manager:{status:"pending",startedAt:null,completedAt:null,durationMs:null,model:c,strategy:null},workers:{status:"pending",startedAt:null,completedAt:null,durationMs:null,workers:[]},audit:{status:"pending",startedAt:null,completedAt:null,durationMs:null,model:d||f},synthesis:{status:"pending",startedAt:null,completedAt:null,durationMs:null,model:c}}};for(let a=0;a<(h||0);a++)m.stages.workers.workers.push({index:a,status:"pending",model:null,durationMs:null});if(g.set(k,m),g.size>50){let a=[...g.entries()].sort((a,b)=>a[1].startedAt-b[1].startedAt)[0];a&&g.delete(a[0])}return i("swarm:start",{runId:k,comboName:a,promptPreview:m.promptPreview,workerCount:m.workerCount},0),m}function k(a,b,c={}){let d=g.get(a);if(!d)return;let e=d.stages[b];e&&(e.status="running",e.startedAt=Date.now(),Object.assign(e,c),i("swarm:stage",{runId:a,stage:b,status:"running",...c}))}function l(a,b,c={}){let d=g.get(a);if(!d)return;let e=d.stages[b];e&&(e.status="done",e.completedAt=Date.now(),e.durationMs=e.startedAt?e.completedAt-e.startedAt:null,Object.assign(e,c),i("swarm:stage",{runId:a,stage:b,status:"done",durationMs:e.durationMs,...c}))}function m(a,b,c,d={}){let e=g.get(a);if(!e)return;let f=e.stages.workers.workers[b];f&&(f.status=c,Object.assign(f,d),i("swarm:stage",{runId:a,stage:"workers",worker:b,status:c,...d}))}function n(a,b){let c=g.get(a);c&&(c.status="error",c.error=String(b?.message||b||"unknown"),c.completedAt=Date.now(),c.totalDurationMs=c.completedAt-c.startedAt,i("swarm:error",{runId:a,error:c.error,totalDurationMs:c.totalDurationMs},0))}function o(a,b={}){let c=g.get(a);c&&(c.status="done",c.completedAt=Date.now(),c.totalDurationMs=c.completedAt-c.startedAt,Object.assign(c,b),i("swarm:complete",{runId:a,totalDurationMs:c.totalDurationMs,...b},0))}function p(a=20){return[...g.values()].sort((a,b)=>b.startedAt-a.startedAt).slice(0,a)}}};
6
+ ${d}`}).join("\n\n---\n\n"),"=== END ===\n\nNow write the technical audit report. Be concrete and specific. Reference subtask IDs."].join("\n")}function u(a,b){return["=== SWARM MANAGER (SYNTHESIS) ===\nYou are the MANAGER producing the FINAL ANSWER. A Staff auditor has reviewed the parallel worker outputs and produced a technical audit report below. Synthesize ONE cohesive, complete, production-quality answer for the user's original request.\n\nRules:\n- Resolve any conflicts the auditor flagged.\n- Integrate all worker outputs into a single coherent result (codebase, explanation, or both).\n- Do NOT mention the swarm, workers, audit, or that multiple agents were used. The user sees only your final answer.\n- Match the user's language and intent exactly.\n\n=== TECHNICAL AUDIT REPORT ===",a,"=== END AUDIT ===\n\n=== ORIGINAL USER REQUEST ===",b,"\nNow produce the final answer."].join("\n")}function v(a){for(let b of["messages","input"])if(Array.isArray(a[b]))for(let c=a[b].length-1;c>=0;c--){let d=a[b][c];if(d?.role==="user"){if("string"==typeof d.content)return d.content;if(Array.isArray(d.content))return d.content.map(a=>"string"==typeof a?a:a?.text||"").join("")}}if(Array.isArray(a.contents)){let b=a.contents[a.contents.length-1];if(b?.role==="user"&&Array.isArray(b.parts))return b.parts.map(a=>a?.text||"").join("")}return""}function w(a){let b;if(!a)return null;let c=a.replace(/```json\s*/gi,"").replace(/```/g,"").trim(),d=c.indexOf("{"),e=c.lastIndexOf("}");if(-1!==d&&-1!==e&&e>d)try{let a=JSON.parse(c.slice(d,e+1));if(Array.isArray(a.subtasks)&&a.subtasks.length>0)return a}catch{}let f=[],g=/\{[^{}]*?"id"\s*:\s*\d+[^{}]*?\}/gs;for(;null!==(b=g.exec(c));){let a=b[0];try{let b=JSON.parse(a);b&&(b.title||b.instruction||b.role)&&f.push({id:"number"==typeof b.id?b.id:f.length+1,title:b.title||`Subtask ${f.length+1}`,role:b.role||"default",instruction:b.instruction||b.title||""})}catch{}}return f.length>0?{assessment:"(recovered from truncated output)",subtasks:f}:null}function x(a){let{tools:b,tool_choice:c,...d}=a,e={...d,stream:!1};return Array.isArray(e.messages)&&(e.messages=L(e.messages)),e}async function y({runId:a,body:b,managerModel:c,handleSingleModel:d,cfg:e,log:f}){(0,p._5)(a,"gatekeeper",{model:c}),v(b);let g=S(m(x(b)),r);try{let b=await U(d(g,c,!0),e.managerTimeoutMs);if(b?.__timeout||b?.__error)return(0,p.SH)(a,"gatekeeper",{verdict:"complex"}),"complex";let h=R(await b.clone().json().catch(()=>({}))),i=/VERDICT:\s*SIMPLE/i.test(h)?"simple":"complex";return(0,p.SH)(a,"gatekeeper",{verdict:i}),f?.info?.("SWARM",`Gatekeeper verdict: ${i}`),i}catch(b){return f?.warn?.("SWARM",`Gatekeeper error, assuming complex: ${b?.message||b}`),(0,p.SH)(a,"gatekeeper",{verdict:"complex"}),"complex"}}async function z({runId:a,body:b,managerModel:c,handleSingleModel:d,cfg:e,log:f}){(0,p._5)(a,"manager",{model:c});let g=v(b),h=S(m(x(b)),s(g));try{let b=await U(d(h,c,!0),e.managerTimeoutMs);if(b?.__timeout||b?.__error)return(0,p.SH)(a,"manager",{strategy:null}),null;let g=R(await b.clone().json().catch(()=>({}))),i=w(g);return(0,p.SH)(a,"manager",{strategy:i?{subtaskCount:i.subtasks.length}:null}),i||f?.warn?.("SWARM","Manager produced unparseable strategy"),i}catch(b){return f?.warn?.("SWARM",`Manager strategy error: ${b?.message||b}`),(0,p.SH)(a,"manager",{strategy:null}),null}}async function A({runId:a,strategy:b,models:c,body:d,handleSingleModel:e,cfg:f,log:g}){(0,p._5)(a,"workers",{workerCount:b.subtasks.length});let h=b.subtasks,i=c.filter(Boolean);if(0===i.length)return(0,p.SH)(a,"workers",{workers:[]}),[];let j=h.map((b,c)=>{let g=i[c%i.length],h=S(x(d),o(b));return(0,p.gF)(a,c,"running",{model:g}),U(e(h,g,!0),f.workerHardTimeoutMs).then(async d=>{if(d?.__timeout||d?.__error)return(0,p.gF)(a,c,"error",{model:g}),{ok:!1,text:""};let e=R(await d.clone().json().catch(()=>({})));return(0,p.gF)(a,c,"done",{model:g,outputLen:e.length}),{ok:!0,text:e,subtask:b}}).catch(()=>((0,p.gF)(a,c,"error",{model:g}),{ok:!1,text:""}))}),k=await V(j,{minPanel:Math.min(f.workerQuorum,j.length),stragglerGraceMs:f.stragglerGraceMs,panelHardTimeoutMs:f.workerHardTimeoutMs}),l=[];for(let a=0;a<k.length;a++){let b=k[a];b&&b.ok&&l.push({subtask:h[a],text:b.text})}return(0,p.SH)(a,"workers",{workers:k.map((a,b)=>({index:b,ok:!!a?.ok}))}),l}async function B({runId:a,strategy:b,workerOutputs:c,staffModel:d,auditModel:e,body:f,handleSingleModel:g,cfg:h,log:i}){let j=d||e;if(!j)return(0,p.SH)(a,"audit",{skipped:!0}),null;(0,p._5)(a,"audit",{model:j});let k=b.subtasks.map((a,b)=>{let d=c.find(b=>b.subtask?.id===a.id);return{...a,output:d?.text||"(no output)"}}),l=S(m(x(f)),t(k,c.map(a=>a.text)));try{let b=await U(g(l,j,!0),h.managerTimeoutMs);if(b?.__timeout||b?.__error)return(0,p.SH)(a,"audit",{skipped:!0}),null;let c=R(await b.clone().json().catch(()=>({})));return(0,p.SH)(a,"audit",{reportLen:c.length}),c}catch(b){return i?.warn?.("SWARM",`Staff audit error: ${b?.message||b}`),(0,p.SH)(a,"audit",{skipped:!0}),null}}async function C({body:a,models:b,handleSingleModel:c,log:d,comboName:e,managerModel:f,staffModel:g,auditModel:h,workerCount:j,swarmTuning:k,telemetry:l=!0}){let m=b.filter(Boolean);if(0===m.length)return new Response(JSON.stringify({error:"Swarm requires at least one worker model"}),{status:400});let n={...q,...k||{}},o=(f||"").trim()||m[0],r=v(a);if(1===m.length&&!f&&!g&&!h)return c(a,m[0]);let s=(0,i.Ub)("swarm",{managerModel:f,staffModel:g,auditModel:h},m);if(s.length>0){let a=s.map(a=>a.reason).join(" ");return new Response(JSON.stringify({error:{message:`Swarm role validation failed: ${a}`,type:"capability_error"}}),{status:400,headers:{"Content-Type":"application/json"}})}let t=l?(0,p._s)({comboName:e,promptPreview:r,managerModel:o,staffModel:g,auditModel:h,workerCount:j||n.minWorkers}):null,w=t?.runId;try{let b=l?await y({runId:w,body:a,managerModel:o,handleSingleModel:c,cfg:n,log:d}):await D({body:a,managerModel:o,handleSingleModel:c,cfg:n,log:d});if("simple"===b)return d?.info?.("SWARM","Gatekeeper bypass — simple request, direct answer"),w&&(0,p.kA)(w,{bypassed:!0}),c(a,o);let e=l?await z({runId:w,body:a,managerModel:o,handleSingleModel:c,cfg:n,log:d}):await E({body:a,managerModel:o,handleSingleModel:c,cfg:n,log:d});if(!e||!Array.isArray(e.subtasks)||0===e.subtasks.length)return d?.warn?.("SWARM","Strategy decomposition failed — falling back to direct answer"),w&&(0,p.kA)(w,{fallback:!0}),c(a,o);let f="number"==typeof j&&j>0?Math.min(j,n.maxWorkers):n.maxWorkers,i=e.subtasks.slice(0,f),k=l?await A({runId:w,strategy:{subtasks:i},models:m,body:a,handleSingleModel:c,cfg:n,log:d}):await F({strategy:{subtasks:i},models:m,body:a,handleSingleModel:c,cfg:n,log:d});if(k.length<n.minWorkers){if(d?.warn?.("SWARM",`Only ${k.length}/${i.length} workers succeeded — fallback`),w&&(0,p.kA)(w,{fallback:!0}),1===k.length)return c(S(a,"The specialist worker produced this answer. Output it verbatim to the user."),o);return c(a,o)}let q=l?await B({runId:w,strategy:{subtasks:i},workerOutputs:k,staffModel:g,auditModel:h,body:a,handleSingleModel:c,cfg:n,log:d}):await G({strategy:{subtasks:i},workerOutputs:k,staffModel:g,auditModel:h,body:a,handleSingleModel:c,cfg:n,log:d}),s=q?u(q,r):u(k.map(a=>a.text).join("\n\n---\n\n"),r),t=S(a,s);if(d?.info?.("SWARM",`Synthesizing final answer from ${k.length} worker outputs`),w){(0,p._5)(w,"synthesis",{model:o});let a=await c(t,o);return(0,p.SH)(w,"synthesis"),(0,p.kA)(w,{workerCount:k.length}),a}return c(t,o)}catch(b){return d?.error?.("SWARM",`Swarm failed: ${b?.message||b}`),w&&(0,p.bt)(w,b),c(a,o)}}async function D({body:a,managerModel:b,handleSingleModel:c,cfg:d,log:e}){let f=S(m(x(a)),r);try{let a=await U(c(f,b,!0),d.managerTimeoutMs);if(a?.__timeout||a?.__error)return"complex";let e=R(await a.clone().json().catch(()=>({})));return/VERDICT:\s*SIMPLE/i.test(e)?"simple":"complex"}catch{return"complex"}}async function E({body:a,managerModel:b,handleSingleModel:c,cfg:d,log:e}){let f=v(a),g=S(m(x(a)),s(f));try{let a=await U(c(g,b,!0),d.managerTimeoutMs);if(a?.__timeout||a?.__error)return null;let e=R(await a.clone().json().catch(()=>({})));return w(e)}catch{return null}}async function F({strategy:a,models:b,body:c,handleSingleModel:d,cfg:e}){let f=b.filter(Boolean);if(0===f.length)return[];let g=a.subtasks.map((a,b)=>{let g=f[b%f.length];return U(d(S(x(c),o(a)),g,!0),e.workerHardTimeoutMs)}),h=await V(g,{minPanel:Math.min(e.workerQuorum,g.length),stragglerGraceMs:e.stragglerGraceMs,panelHardTimeoutMs:e.workerHardTimeoutMs}),i=[];for(let b=0;b<h.length;b++){let c=h[b];if(c&&!c.__timeout&&!c.__error){let d=R(await c.clone().json().catch(()=>({})));d&&i.push({subtask:a.subtasks[b],text:d})}}return i}async function G({strategy:a,workerOutputs:b,staffModel:c,auditModel:d,body:e,handleSingleModel:f,cfg:g}){let h=c||d;if(!h)return null;let i=a.subtasks.map((a,c)=>{let d=b.find(b=>b.subtask?.id===a.id);return{...a,output:d?.text||"(no output)"}}),j=S(m(x(e)),t(i,b.map(a=>a.text)));try{let a=await U(f(j,h,!0),g.managerTimeoutMs);if(a?.__timeout||a?.__error)return null;return R(await a.clone().json().catch(()=>({})))}catch{return null}}let H=new Set(["vision","pdf","audioInput","videoInput"]),I=new Map;for(let a of j.A){if(a.alias&&I.set(a.alias,a.id),Array.isArray(a.aliases))for(let b of a.aliases)I.set(b,a.id);I.set(a.id,a.id)}let J="[Called tools: ",K="[Tool result: ";function L(a){return a.filter(a=>a).map(a=>{if("tool"===a.role||"function"===a.role)return{role:"assistant",content:`${K}${(0,g.kU)(a.content)||String(a.content??"")}]`};if("assistant"===a.role&&Array.isArray(a.tool_calls)){let{tool_calls:b,...c}=a,d=b.map(a=>a?.function?.name||a?.name||"tool").join(", "),e=(0,g.kU)(c.content)||("string"==typeof c.content?c.content:"");return{...c,content:`${e}${e?"\n":""}${J}${d}]`}}if(Array.isArray(a.content)){let b=a.content.some(a=>"tool_use"===a.type),c=a.content.some(a=>"tool_result"===a.type);if(b||c){let b=[],c=[],d=[];for(let e of a.content)"text"===e.type&&e.text&&b.push(e.text),"tool_use"===e.type&&c.push(e.name||"tool"),"tool_result"===e.type&&d.push((0,g.kU)(e.content)||String(e.content??""));let{...e}=a,f=b.join("\n");return c.length>0&&(f=`${f}${f?"\n":""}${J}${c.join(", ")}]`),d.length>0&&(f=`${f}${f?"\n":""}${K}${d.join("\n")}]`),{...e,content:f}}}return a})}let M=new Map;function N(a){if(!Array.isArray(a)||0===a.length)return[];let b=a=>"assistant"===a||"model"===a,c=a.length-1;for(;c>=0&&!b(a[c]?.role);)c--;return a.slice(c+1)}function O(a){a?M.delete(a):M.clear()}function P(a,b){if(a.includes("/"))return null;let c=(Array.isArray(b)?b:b?.combos||[]).find(b=>b.name===a);return c&&c.models&&c.models.length>0?c.models:null}async function Q({body:a,models:b,handleSingleModel:c,log:g,comboName:i,comboStrategy:j,comboStickyLimit:k=1,autoSwitch:l=!0,breakerSettings:m=null}){let n=function(a,b,c,d=1){let e;if(!a||a.length<=1||"round-robin"!==c)return a;let f=b||"__default__",g=Number.isFinite(e=Number.parseInt(d,10))&&e>0?e:1,h=M.get(f)||{index:0,consecutiveUseCount:0},i=h.index%a.length,j=function(a,b){let c=[...a];for(let a=0;a<b;a++){let a=c.shift();c.push(a)}return c}(a,i),k=h.consecutiveUseCount+1;return k>=g?M.set(f,{index:(i+1)%a.length,consecutiveUseCount:0}):M.set(f,{index:i,consecutiveUseCount:k}),j}(b,i,j,k);if(m){let{active:a,skipped:b}=function(a,b){if(!Array.isArray(a)||a.length<=1)return{active:a||[],skipped:[]};let c=[],d=[];for(let e of a){let a="string"==typeof e?e.indexOf("/"):-1,f=a>0?e.slice(0,a):"",g=f?I.get(f)||f:"";g&&(0,h.GK)(g,b)?d.push(e):c.push(e)}return 0===c.length?{active:a,skipped:[]}:{active:c,skipped:d}}(n,m);b.length>0&&(g.info("COMBO",`breaker pre-filter: skipped ${b.length} open-breaker model(s) [${b.join(", ")}]`),n=a)}if(l){let b=function(a){let b=new Set;if(!a||"object"!=typeof a)return b;let c=a=>{if(!a||"object"!=typeof a)return;let c=a.type;("image_url"===c||"image"===c||"input_image"===c)&&b.add("vision"),("file"===c||"document"===c||"input_file"===c)&&b.add("pdf");let d=a.inlineData?.mimeType||a.fileData?.mimeType;"string"==typeof d&&d.startsWith("image/")&&b.add("vision"),"application/pdf"===d&&b.add("pdf")},d=a=>{if(Array.isArray(a))for(let b of a)c(b)};for(let b of N(a.messages))d(b.content);for(let b of N(a.input))d(b.content);for(let b of N(a.contents||a.request?.contents))d(b.parts);return b}(a);if(b.size>0){let a=function(a,b){if(!b||0===b.size||!Array.isArray(a)||a.length<=1)return a;let c=[...b].filter(a=>H.has(a)),d=[...b].filter(a=>!H.has(a));return a.map((a,b)=>{let e,g,h,i;return{m:a,i:b,t:(g=(e="string"==typeof a?a.indexOf("/"):-1)>0?a.slice(0,e):"",h=e>0?a.slice(e+1):a,i=(0,f.nl)(g,h),c.every(a=>!0===i[a])?+!d.every(a=>!0===i[a]):2)}}).sort((a,b)=>a.t-b.t||a.i-b.i).map(a=>a.m)}(n,b);a[0]!==n[0]&&g.info("COMBO",`auto-switch for [${[...b].join(",")}] → ${a[0]}`),n=a}}let o=null,p=null,q=null;for(let b=0;b<n.length;b++){let e=n[b];g.info("COMBO",`Trying model ${b+1}/${n.length}: ${e}`);try{let b=await c(a,e);if(b.ok)return g.info("COMBO",`Model ${e} succeeded`),b;let f=b.statusText||"",h=null;try{let a=await b.clone().json();f=a?.error?.message||a?.error||a?.message||f,h=a?.retryAfter||null}catch{}if(h&&(!p||new Date(h)<new Date(p))&&(p=h),"string"!=typeof f)try{f=JSON.stringify(f)}catch{f=String(f)}let{shouldFallback:i,cooldownMs:j}=(0,d.hk)(b.status,f);if(!i)return g.warn("COMBO",`Model ${e} failed (no fallback)`,{status:b.status}),b;j&&j>0&&j<=5e3&&(503===b.status||502===b.status||504===b.status)&&(g.info("COMBO",`Model ${e} transient ${b.status}, waiting ${j}ms before next`),await new Promise(a=>setTimeout(a,j))),o=f||String(b.status),q||(q=b.status),g.warn("COMBO",`Model ${e} failed, trying next`,{status:b.status})}catch(a){o=a.message||String(a),q||(q=500),g.warn("COMBO",`Model ${e} threw error, trying next`,{error:o})}}let r=o&&o.toLowerCase().includes("no credentials")?503:q||503,s=o||"All combo models unavailable";if(p){let a=(0,d.Qo)(p);return g.warn("COMBO",`All models failed | ${s} (${a})`),(0,e.wO)(r,s,p,a)}return g.warn("COMBO",`All models failed | ${s}`),new Response(JSON.stringify({error:{message:s}}),{status:r,headers:{"Content-Type":"application/json"}})}function R(a){if(!a||"object"!=typeof a)return"";let b=a.choices?.[0];if(b){let a=b.message??b.delta??{},c=(0,g.kU)(a.content);if(c.trim())return c;if("string"==typeof b.text&&b.text.trim())return b.text}let c=(0,g.kU)(a.content);if(c.trim())return c;let d=a.candidates?.[0]?.content?.parts;if(Array.isArray(d)){let a=d.map(a=>a?.text||"").join("");if(a.trim())return a}if(Array.isArray(a.output)){let b=a.output.flatMap(a=>Array.isArray(a.content)?a.content.map(a=>a?.text||""):[]).join("");if(b.trim())return b}return""}function S(a,b){let c={...a};return Array.isArray(a.messages)?c.messages=[...a.messages,{role:"user",content:b}]:Array.isArray(a.input)?c.input=[...a.input,{role:"user",content:b}]:Array.isArray(a.contents)?c.contents=[...a.contents,{role:"user",parts:[{text:b}]}]:c.messages=[{role:"user",content:b}],c}let T={minPanel:2,stragglerGraceMs:8e3,panelHardTimeoutMs:9e4};function U(a,b){return new Promise(c=>{let d=setTimeout(()=>c({__timeout:!0}),b);Promise.resolve(a).then(a=>{clearTimeout(d),c(a)}).catch(a=>{clearTimeout(d),c({__error:a})})})}function V(a,{minPanel:b,stragglerGraceMs:c,panelHardTimeoutMs:d}){return new Promise(e=>{let f=Array(a.length),g=0,h=0,i=!1,j=null,k=()=>{i||(i=!0,clearTimeout(l),j&&clearTimeout(j),e(f))},l=setTimeout(k,d);a.forEach((d,e)=>{Promise.resolve(d).then(a=>{f[e]=a}).catch(a=>{f[e]={__error:a}}).finally(()=>{if(g++,f[e]&&f[e].ok&&h++,g===a.length)return k();h>=b&&!j&&(j=setTimeout(k,c))})})})}async function W({body:a,models:b,handleSingleModel:c,log:d,comboName:e,judgeModel:f,tuning:g}){let h,j=Array.isArray(b)?b.filter(Boolean):[];if(0===j.length)return new Response(JSON.stringify({error:{message:"Fusion combo has no models"}}),{status:400,headers:{"Content-Type":"application/json"}});if(1===j.length)return c(a,j[0]);let k=(0,i.Ub)("fusion",{judgeModel:f},j);if(k.length>0){let a=k.map(a=>a.reason).join(" ");return new Response(JSON.stringify({error:{message:`Fusion role validation failed: ${a}`,type:"capability_error"}}),{status:400,headers:{"Content-Type":"application/json"}})}let l={...T,...g||{}},m=Math.min(Math.max(2,l.minPanel),j.length),n=f&&f.trim()?f.trim():j[0];d.info("FUSION",`Combo "${e}" | panel=${j.length} [${j.join(", ")}] | judge=${n} | quorum=${m}`);let{tools:o,tool_choice:p,...q}=a,r={...q,stream:!1};Array.isArray(r.messages)?r.messages=L(r.messages):Array.isArray(r.input)&&(r.input=L(r.input));let s=Date.now(),t=j.map(a=>U(c(r,a,!0),l.panelHardTimeoutMs)),u=await V(t,{...l,minPanel:m});d.info("FUSION",`fan-out collected in ${Date.now()-s}ms`);let v=[];for(let a=0;a<u.length;a++){let b=u[a],c=j[a];if(!b){d.warn("FUSION",`Panel ${c} dropped (straggler/timeout)`);continue}if(b.__timeout){d.warn("FUSION",`Panel ${c} timed out`);continue}if(b.__error){d.warn("FUSION",`Panel ${c} threw`,{error:b.__error?.message||String(b.__error)});continue}if(!b.ok){d.warn("FUSION",`Panel ${c} failed`,{status:b.status});continue}try{let a=await b.clone().json(),e=R(a);e?(v.push({model:c,text:e,res:b}),d.info("FUSION",`Panel ${c} ok (${e.length} chars)`)):d.warn("FUSION",`Panel ${c} returned empty content`)}catch(a){d.warn("FUSION",`Panel ${c} unparseable`,{error:a.message||String(a)})}}if(0===v.length)return d.warn("FUSION","All panel models failed"),new Response(JSON.stringify({error:{message:"All fusion panel models failed"}}),{status:503,headers:{"Content-Type":"application/json"}});if(1===v.length)return a?.stream===!0?(d.info("FUSION",`Only ${v[0].model} succeeded — re-running with stream:true to honor client SSE request (no fusion)`),c(a,v[0].model)):(d.info("FUSION",`Only ${v[0].model} succeeded — returning its response directly (no fusion, no re-run)`),v[0].res);let w=S(a,(h=v.map((a,b)=>`[Source ${b+1}]
7
+ ${a.text}`).join("\n\n"),[`You are the JUDGE in a model-fusion panel. ${v.length} expert models independently answered the user's most recent request. Their responses are below, anonymized by source.`,"\nDo NOT mention that multiple models were used, and do NOT refer to the sources. Produce ONE authoritative final answer addressed directly to the user.\n\nFirst, internally analyze the panel along these dimensions: consensus (points most sources agree on — treat as higher-confidence), contradictions (where they disagree — resolve with your own judgment), partial coverage, unique insights only one source surfaced, and blind spots every source missed. Then write the best possible final answer grounded in that analysis — more complete and correct than any single response, with no filler.\n\n=== PANEL RESPONSES ===",h,"=== END PANEL RESPONSES ===\n\nNow write the final answer to the user's original request."].join("\n")));return d.info("FUSION",`Judging ${v.length} answers with ${n}`),c(w,n)}},36701:(a,b,c)=>{c.d(b,{SH:()=>l,ZW:()=>p,_5:()=>k,_s:()=>j,bt:()=>n,gF:()=>m,kA:()=>o,ni:()=>f});var d=c(78474),e=c(77598);global._swarmEmitter||(global._swarmEmitter=new d.EventEmitter,global._swarmEmitter.setMaxListeners(100),global._swarmRuns=new Map,global._swarmEmitTimers={});let f=global._swarmEmitter,g=global._swarmRuns,h=global._swarmEmitTimers;function i(a,b,c=120){let d=`${a}:${b?.runId||""}`;h[d]&&clearTimeout(h[d]),h[d]=setTimeout(()=>{delete h[d],f.emit(a,b)},c)}function j({comboName:a,promptPreview:b,managerModel:c,staffModel:d,auditModel:f,workerCount:h}){let k=(0,e.randomUUID)(),l=Date.now(),m={runId:k,comboName:a,promptPreview:(b||"").slice(0,200),managerModel:c,staffModel:d,auditModel:f,workerCount:h||0,status:"running",startedAt:l,completedAt:null,totalDurationMs:null,stages:{gatekeeper:{status:"pending",startedAt:null,completedAt:null,durationMs:null,model:c,verdict:null},manager:{status:"pending",startedAt:null,completedAt:null,durationMs:null,model:c,strategy:null},workers:{status:"pending",startedAt:null,completedAt:null,durationMs:null,workers:[]},audit:{status:"pending",startedAt:null,completedAt:null,durationMs:null,model:d||f},synthesis:{status:"pending",startedAt:null,completedAt:null,durationMs:null,model:c}}};for(let a=0;a<(h||0);a++)m.stages.workers.workers.push({index:a,status:"pending",model:null,durationMs:null});if(g.set(k,m),g.size>50){let a=[...g.entries()].sort((a,b)=>a[1].startedAt-b[1].startedAt)[0];a&&g.delete(a[0])}return i("swarm:start",{runId:k,comboName:a,promptPreview:m.promptPreview,workerCount:m.workerCount},0),m}function k(a,b,c={}){let d=g.get(a);if(!d)return;let e=d.stages[b];e&&(e.status="running",e.startedAt=Date.now(),Object.assign(e,c),i("swarm:stage",{runId:a,stage:b,status:"running",...c}))}function l(a,b,c={}){let d=g.get(a);if(!d)return;let e=d.stages[b];e&&(e.status="done",e.completedAt=Date.now(),e.durationMs=e.startedAt?e.completedAt-e.startedAt:null,Object.assign(e,c),i("swarm:stage",{runId:a,stage:b,status:"done",durationMs:e.durationMs,...c}))}function m(a,b,c,d={}){let e=g.get(a);if(!e)return;let f=e.stages.workers.workers[b];f&&(f.status=c,Object.assign(f,d),i("swarm:stage",{runId:a,stage:"workers",worker:b,status:c,...d}))}function n(a,b){let c=g.get(a);c&&(c.status="error",c.error=String(b?.message||b||"unknown"),c.completedAt=Date.now(),c.totalDurationMs=c.completedAt-c.startedAt,i("swarm:error",{runId:a,error:c.error,totalDurationMs:c.totalDurationMs},0))}function o(a,b={}){let c=g.get(a);c&&(c.status="done",c.completedAt=Date.now(),c.totalDurationMs=c.completedAt-c.startedAt,Object.assign(c,b),i("swarm:complete",{runId:a,totalDurationMs:c.totalDurationMs,...b},0))}function p(a=20){return[...g.values()].sort((a,b)=>b.startedAt-a.startedAt).slice(0,a)}}};