@rsalmn/extremerouter 0.8.7 → 0.8.8
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.
- package/app/.next-cli-build/BUILD_ID +1 -1
- package/app/.next-cli-build/app-path-routes-manifest.json +15 -13
- package/app/.next-cli-build/build-manifest.json +2 -2
- package/app/.next-cli-build/prerender-manifest.json +3 -3
- package/app/.next-cli-build/routes-manifest.json +14 -0
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/alerts/page.js +2 -2
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/alerts/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/alerts/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js +2 -2
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js +2 -2
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js +2 -2
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js +3 -3
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js +2 -2
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js +2 -2
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/health/page.js +2 -2
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/health/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/health/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js +3 -3
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js +2 -2
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js +2 -2
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/page.js +2 -2
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js +2 -2
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js +2 -2
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/overview/page.js +2 -2
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/overview/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/overview/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js +2 -2
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/playground/page.js +2 -2
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/playground/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/playground/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js +2 -2
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js +2 -2
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js +2 -2
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js +2 -2
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page.js +3 -3
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js +2 -2
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page.js +2 -2
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/smart-routing/page.js +2 -2
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/smart-routing/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/smart-routing/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/swarm/page.js +2 -2
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/swarm/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/swarm/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page.js +2 -2
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js +2 -2
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js +2 -2
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/_global-error/page.js +3 -3
- package/app/.next-cli-build/server/app/_global-error/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/_global-error.html +1 -1
- package/app/.next-cli-build/server/app/_global-error.rsc +1 -1
- package/app/.next-cli-build/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/_not-found/page.js +2 -2
- package/app/.next-cli-build/server/app/_not-found/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/_not-found.html +1 -1
- package/app/.next-cli-build/server/app/_not-found.rsc +6 -6
- package/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/_not-found.segments/_index.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/api/alerts/test/route.js +2 -2
- package/app/.next-cli-build/server/app/api/alerts/test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/login/route.js +1 -1
- package/app/.next-cli-build/server/app/api/auth/login/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/logout/route.js +1 -1
- package/app/.next-cli-build/server/app/api/auth/logout/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js +1 -1
- package/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/oidc/start/route.js +1 -1
- package/app/.next-cli-build/server/app/api/auth/oidc/start/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/oidc/test/route.js +1 -1
- package/app/.next-cli-build/server/app/api/auth/oidc/test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/reset-password/route.js +1 -1
- package/app/.next-cli-build/server/app/api/auth/reset-password/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/status/route.js +1 -1
- package/app/.next-cli-build/server/app/api/auth/status/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/breaker/route.js +1 -1
- package/app/.next-cli-build/server/app/api/breaker/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cache/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cache/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js +4 -4
- package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js +3 -3
- package/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/combos/[id]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/combos/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/combos/lab/route.js +1 -1
- package/app/.next-cli-build/server/app/api/combos/lab/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/combos/route.js +1 -1
- package/app/.next-cli-build/server/app/api/combos/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/combos/simulate/route.js +1 -1
- package/app/.next-cli-build/server/app/api/combos/simulate/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/combos/validate-roles/route.js +1 -1
- package/app/.next-cli-build/server/app/api/combos/validate-roles/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/dashboard/stream/route.js +2 -2
- package/app/.next-cli-build/server/app/api/dashboard/stream/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/headroom/start/route.js +1 -1
- package/app/.next-cli-build/server/app/api/headroom/start/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/headroom/status/route.js +1 -1
- package/app/.next-cli-build/server/app/api/headroom/status/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/headroom/stop/route.js +2 -2
- package/app/.next-cli-build/server/app/api/headroom/stop/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/health/overview/route.js +1 -1
- package/app/.next-cli-build/server/app/api/health/overview/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/health/providers/route.js +1 -1
- package/app/.next-cli-build/server/app/api/health/providers/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/health/route.js +1 -1
- package/app/.next-cli-build/server/app/api/health/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/health/stream/route.js +2 -2
- package/app/.next-cli-build/server/app/api/health/stream/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/init/route.js +1 -1
- package/app/.next-cli-build/server/app/api/init/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/keys/[id]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/keys/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/keys/route.js +1 -1
- package/app/.next-cli-build/server/app/api/keys/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/locale/route.js +1 -1
- package/app/.next-cli-build/server/app/api/locale/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js +1 -1
- package/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js +3 -3
- package/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/alias/route.js +1 -1
- package/app/.next-cli-build/server/app/api/models/alias/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/availability/route.js +1 -1
- package/app/.next-cli-build/server/app/api/models/availability/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/catalog-sync/route.js +1 -1
- package/app/.next-cli-build/server/app/api/models/catalog-sync/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/custom/route.js +1 -1
- package/app/.next-cli-build/server/app/api/models/custom/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/disabled/route.js +1 -1
- package/app/.next-cli-build/server/app/api/models/disabled/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/route.js +1 -1
- package/app/.next-cli-build/server/app/api/models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/test/route.js +1 -1
- package/app/.next-cli-build/server/app/api/models/test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/1min/import/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/1min/import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/codex/bulk-import/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/codex/bulk-import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js +2 -2
- package/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/freebuff/import/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/freebuff/import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kimi-desktop/auto-import/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kimi-desktop/auto-import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kimi-desktop/import/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kimi-desktop/import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kimi-desktop/quota/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kimi-desktop/quota/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/api-key/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/api-key/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/import-cli-proxy/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/import-cli-proxy/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/qwen/import/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/qwen/import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/wp-studio/import/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/wp-studio/import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/zcode/import/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/zcode/import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/zed/auto-import/route.js +2 -2
- package/app/.next-cli-build/server/app/api/oauth/zed/auto-import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/zed/import/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/zed/import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pricing/route.js +1 -1
- package/app/.next-cli-build/server/app/api/pricing/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/provider-nodes/route.js +1 -1
- package/app/.next-cli-build/server/app/api/provider-nodes/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js +1 -1
- package/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/agnes-profile/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/agnes-profile/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/felo-profile/route.js +2 -2
- package/app/.next-cli-build/server/app/api/providers/[id]/felo-profile/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/freebuff-profile/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/freebuff-profile/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/health-timeline/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/health-timeline/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/inxora-profile/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/inxora-profile/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/models/route.js +2 -2
- package/app/.next-cli-build/server/app/api/providers/[id]/models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/onemin-api-profile/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/onemin-api-profile/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/onemin-profile/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/onemin-profile/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/qwencloud-profile/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/qwencloud-profile/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/test/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/v0-profile/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/v0-profile/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/vault-pool/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/vault-pool/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/zai-profile/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/zai-profile/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/zenmux-plans/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/zenmux-plans/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/capture/launch/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/capture/launch/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/capture/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/capture/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/client/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/client/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/felo-capture/launch/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/felo-capture/launch/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/felo-capture/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/felo-capture/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/kilo/free-models/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/kilo/free-models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/suggested-models/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/suggested-models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/test-batch/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/test-batch/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/validate/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/validate/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js +2 -2
- package/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js +2 -2
- package/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/route.js +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js +2 -2
- package/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/install/route.js +2 -2
- package/app/.next-cli-build/server/app/api/pxpipe/install/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/status/route.js +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/status/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/settings/database/route.js +1 -1
- package/app/.next-cli-build/server/app/api/settings/database/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/settings/proxy-test/route.js +1 -1
- package/app/.next-cli-build/server/app/api/settings/proxy-test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/settings/require-login/route.js +1 -1
- package/app/.next-cli-build/server/app/api/settings/require-login/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/settings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/shutdown/route.js +1 -1
- package/app/.next-cli-build/server/app/api/shutdown/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/smart-routing/active/route.js +1 -1
- package/app/.next-cli-build/server/app/api/smart-routing/active/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/smart-routing/history/route.js +2 -2
- package/app/.next-cli-build/server/app/api/smart-routing/history/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/smart-routing/lab/route.js +2 -2
- package/app/.next-cli-build/server/app/api/smart-routing/lab/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/smart-routing/stream/route.js +2 -2
- package/app/.next-cli-build/server/app/api/smart-routing/stream/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/swarm/active/route.js +1 -1
- package/app/.next-cli-build/server/app/api/swarm/active/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/swarm/stream/route.js +2 -2
- package/app/.next-cli-build/server/app/api/swarm/stream/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tags/route.js +1 -1
- package/app/.next-cli-build/server/app/api/tags/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/translator/console-logs/route.js +1 -1
- package/app/.next-cli-build/server/app/api/translator/console-logs/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js +2 -2
- package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/translator/load/route.js +1 -1
- package/app/.next-cli-build/server/app/api/translator/load/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/translator/save/route.js +1 -1
- package/app/.next-cli-build/server/app/api/translator/save/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/translator/send/route.js +1 -1
- package/app/.next-cli-build/server/app/api/translator/send/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/translator/translate/route.js +1 -1
- package/app/.next-cli-build/server/app/api/translator/translate/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/disable/route.js +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/disable/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/enable/route.js +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/enable/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/status/route.js +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/status/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js +2 -2
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/[connectionId]/codex-reset-credits/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/[connectionId]/codex-reset-credits/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/chart/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/chart/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/history/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/history/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/leaderboard/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/leaderboard/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/logs/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/logs/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/meta/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/meta/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/providers/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/providers/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/request-details/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/request-details/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/request-logs/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/request-logs/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/retry-stats/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/retry-stats/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/stats/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/stats/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/stream/route.js +2 -2
- package/app/.next-cli-build/server/app/api/usage/stream/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/api/chat/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/api/chat/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/audio/voices/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/audio/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/embeddings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/embeddings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/images/generations/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/images/generations/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/media/results/[id]/route.js +1 -0
- package/app/.next-cli-build/server/app/api/v1/media/results/[id]/route.js.nft.json +1 -0
- package/app/.next-cli-build/server/app/api/v1/media/results/[id]/route_client-reference-manifest.js +1 -0
- package/app/.next-cli-build/server/app/api/v1/messages/count_tokens/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/messages/count_tokens/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/messages/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/messages/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/models/[kind]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/models/[kind]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/models/info/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/models/info/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/models/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/responses/compact/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/responses/compact/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/responses/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/responses/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/search/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/search/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/video/generations/route.js +1 -0
- package/app/.next-cli-build/server/app/api/v1/video/generations/route.js.nft.json +1 -0
- package/app/.next-cli-build/server/app/api/v1/video/generations/route_client-reference-manifest.js +1 -0
- package/app/.next-cli-build/server/app/api/v1/web/fetch/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/web/fetch/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1beta/models/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1beta/models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/version/route.js +1 -1
- package/app/.next-cli-build/server/app/api/version/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/version/shutdown/route.js +1 -1
- package/app/.next-cli-build/server/app/api/version/shutdown/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/version/update/route.js +1 -1
- package/app/.next-cli-build/server/app/api/version/update/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/callback/page.js +2 -2
- package/app/.next-cli-build/server/app/callback/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/callback/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/callback.html +1 -1
- package/app/.next-cli-build/server/app/callback.rsc +6 -6
- package/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/callback.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/callback.segments/_index.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/callback.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/callback.segments/callback/__PAGE__.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/callback.segments/callback.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing/page.js +2 -2
- package/app/.next-cli-build/server/app/dashboard/settings/pricing/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_index.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/favicon.ico/route.js +1 -1
- package/app/.next-cli-build/server/app/favicon.ico/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/index.html +1 -1
- package/app/.next-cli-build/server/app/index.rsc +6 -6
- package/app/.next-cli-build/server/app/index.segments/__PAGE__.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/index.segments/_full.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/index.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/index.segments/_index.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/index.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/landing/page.js +2 -2
- package/app/.next-cli-build/server/app/landing/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/landing/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/landing.html +1 -1
- package/app/.next-cli-build/server/app/landing.rsc +6 -6
- package/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/landing.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/landing.segments/_index.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/landing.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/landing.segments/landing/__PAGE__.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/landing.segments/landing.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/login/page.js +2 -2
- package/app/.next-cli-build/server/app/login/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/login/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/login.html +1 -1
- package/app/.next-cli-build/server/app/login.rsc +7 -7
- package/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/login.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/login.segments/_index.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/login.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/login.segments/login.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/manifest.webmanifest/route.js +2 -2
- package/app/.next-cli-build/server/app/manifest.webmanifest/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/page.js +2 -2
- package/app/.next-cli-build/server/app/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app-paths-manifest.json +15 -13
- package/app/.next-cli-build/server/chunks/1194.js +1 -1
- package/app/.next-cli-build/server/chunks/1350.js +3 -3
- package/app/.next-cli-build/server/chunks/1411.js +1 -1
- package/app/.next-cli-build/server/chunks/1429.js +1 -1
- package/app/.next-cli-build/server/chunks/1719.js +1 -1
- package/app/.next-cli-build/server/chunks/212.js +1 -1
- package/app/.next-cli-build/server/chunks/2436.js +1 -0
- package/app/.next-cli-build/server/chunks/3520.js +1 -1
- package/app/.next-cli-build/server/chunks/3552.js +1 -1
- package/app/.next-cli-build/server/chunks/4046.js +1 -1
- package/app/.next-cli-build/server/chunks/412.js +1 -1
- package/app/.next-cli-build/server/chunks/4161.js +1 -0
- package/app/.next-cli-build/server/chunks/4502.js +6 -6
- package/app/.next-cli-build/server/chunks/4828.js +1 -0
- package/app/.next-cli-build/server/chunks/{3841.js → 4987.js} +1 -1
- package/app/.next-cli-build/server/chunks/5050.js +2 -2
- package/app/.next-cli-build/server/chunks/5253.js +1 -1
- package/app/.next-cli-build/server/chunks/5330.js +9 -9
- package/app/.next-cli-build/server/chunks/5473.js +1 -1
- package/app/.next-cli-build/server/chunks/5604.js +1 -1
- package/app/.next-cli-build/server/chunks/5612.js +1 -1
- package/app/.next-cli-build/server/chunks/5615.js +1 -1
- package/app/.next-cli-build/server/chunks/5628.js +1 -1
- package/app/.next-cli-build/server/chunks/5961.js +1 -1
- package/app/.next-cli-build/server/chunks/6007.js +10 -0
- package/app/.next-cli-build/server/chunks/6157.js +1 -0
- package/app/.next-cli-build/server/chunks/6182.js +1 -1
- package/app/.next-cli-build/server/chunks/6488.js +1 -1
- package/app/.next-cli-build/server/chunks/6777.js +1 -1
- package/app/.next-cli-build/server/chunks/7247.js +1 -0
- package/app/.next-cli-build/server/chunks/7765.js +2 -2
- package/app/.next-cli-build/server/chunks/809.js +1 -1
- package/app/.next-cli-build/server/chunks/8238.js +1 -1
- package/app/.next-cli-build/server/chunks/8240.js +1 -0
- package/app/.next-cli-build/server/chunks/8266.js +1 -1
- package/app/.next-cli-build/server/chunks/8271.js +1 -1
- package/app/.next-cli-build/server/chunks/8802.js +2 -2
- package/app/.next-cli-build/server/chunks/885.js +7 -7
- package/app/.next-cli-build/server/chunks/8851.js +3 -0
- package/app/.next-cli-build/server/chunks/8895.js +6 -6
- package/app/.next-cli-build/server/chunks/9715.js +1 -0
- package/app/.next-cli-build/server/middleware-build-manifest.js +1 -1
- package/app/.next-cli-build/server/middleware.js +3 -3
- package/app/.next-cli-build/server/pages/404.html +1 -1
- package/app/.next-cli-build/server/pages/500.html +1 -1
- package/app/.next-cli-build/server/server-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/server-reference-manifest.json +1 -1
- package/app/.next-cli-build/static/chunks/1321-738b3efba6f43f03.js +1 -0
- package/app/.next-cli-build/static/chunks/5497-97801e653d366579.js +7 -0
- package/app/.next-cli-build/static/chunks/705-1b66113f1f9bdd89.js +1 -0
- package/app/.next-cli-build/static/chunks/9086-5e0c8ccb81f25cbb.js +1 -0
- package/app/.next-cli-build/static/chunks/{9622-d0f22be4f1ef8011.js → 9622-1dc5485471326b33.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/alerts/{page-3527fe022102a692.js → page-5da9d88aea0f0c4d.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/basic-chat/{page-fe59538aa4add719.js → page-af18b8bd5a604e31.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/cli-tools/[toolId]/{page-1849f671db0f9fe9.js → page-c933ec2b61961be3.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/cli-tools/{page-0e903eb34158c8a8.js → page-3b6ddb5ae1f382fc.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/combos/{page-8406e79b31e512bb.js → page-6e960c6e7b31b9df.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/console-log/{page-81ef4c324f201832.js → page-dd4edb101f50cc0f.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/endpoint/page-f1add2aaae4a459c.js +1 -0
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/health/{page-d71cb9f910cb5d13.js → page-2ac0245eea32c9aa.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/[id]/{page-94341b277cf27462.js → page-e0b2567bb9fe606d.js} +7 -7
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/{page-558f5601f8df1d4d.js → page-9da68f29ab52796d.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/combo/[id]/{page-6effc5c0f2b1d72e.js → page-2c80d26d992e4bb2.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/page-7cdd74503baa001a.js +1 -0
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/web/{page-95375c7b40f99306.js → page-ebc169fccd95e5d8.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/mitm/{page-4549c187375b9192.js → page-50b3f8c8ed3358f2.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/overview/{page-bb459e518dfa9f70.js → page-c4728000c2a09214.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/page-86eaf12ef68c60ba.js +1 -0
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/playground/{page-625485e32264e15b.js → page-c43d594bf432dbb3.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/profile/{page-09b1b5beae8435cd.js → page-8147c101767a32a1.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/[id]/{page-776433cfd87f123a.js → page-f20fce2b984f4ef3.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/new/{page-1f67fe5d69805df2.js → page-99b2fb0411fa61e4.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/{page-5d9d7d47216375ea.js → page-3231355c17df9913.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/proxy-pools/{page-c561cab29785310a.js → page-c619835a47dd125d.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/quota/{page-140fef4b235b4792.js → page-46f5c7b65b5bb9ad.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/skills/{page-acf6cde3210c179a.js → page-fb7fe2c2ce8ee710.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/token-saver/{page-c3ae0ab7f0d0634d.js → page-971ad40322c4940b.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/translator/{page-cb12854a23416b01.js → page-33f472a9351a93f8.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/usage/page-52a5ff6e854d82e7.js +1 -0
- package/app/.next-cli-build/static/chunks/app/(dashboard)/{layout-66efb163e888cd6b.js → layout-6605206f3a2e2db9.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/_global-error/page-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/alerts/test/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/auth/login/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/auth/logout/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/auth/oidc/callback/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/auth/oidc/start/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/auth/oidc/test/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/auth/reset-password/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/auth/status/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/breaker/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cache/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/all-statuses/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/claude-settings/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/cline-settings/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/codex-settings/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/copilot-settings/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-registry/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-tools/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-settings/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/deepseek-tui-settings/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/droid-settings/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/hermes-settings/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/jcode-settings/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/kilo-settings/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/openclaw-settings/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/opencode-settings/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/combos/[id]/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/combos/lab/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/combos/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/combos/simulate/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/combos/validate-roles/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/dashboard/stream/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/headroom/start/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/headroom/status/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/headroom/stop/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/health/overview/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/health/providers/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/health/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/health/stream/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/init/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/keys/[id]/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/keys/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/locale/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/message/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/sse/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/deepgram/voices/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/inworld/voices/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/minimax/voices/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/voices/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/models/alias/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/models/availability/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/models/catalog-sync/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/models/custom/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/models/disabled/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/models/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/models/test/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/1min/import/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/[provider]/[action]/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/codex/bulk-import/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/codex/import-token/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/cursor/auto-import/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/cursor/import/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/freebuff/import/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/gitlab/pat/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/iflow/cookie/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/kimi-desktop/auto-import/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/kimi-desktop/import/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/kimi-desktop/quota/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/api-key/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/auto-import/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import-cli-proxy/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-authorize/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-exchange/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/qwen/import/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/wp-studio/import/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/zcode/import/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/zed/auto-import/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/zed/import/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/pricing/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/provider-nodes/[id]/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/provider-nodes/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/provider-nodes/validate/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/agnes-profile/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/felo-profile/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/freebuff-profile/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/health-timeline/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/inxora-profile/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/models/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/onemin-api-profile/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/onemin-profile/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/qwencloud-profile/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/test/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/test-models/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/v0-profile/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/vault-pool/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/zai-profile/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/zenmux-plans/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/capture/launch/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/capture/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/client/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/felo-capture/launch/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/felo-capture/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/kilo/free-models/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/suggested-models/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/test-batch/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/validate/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/test/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/proxy-pools/cloudflare-deploy/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/proxy-pools/deno-deploy/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/proxy-pools/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/proxy-pools/vercel-deploy/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/pxpipe/install/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/pxpipe/status/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/settings/database/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/settings/proxy-test/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/settings/require-login/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/settings/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/shutdown/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/smart-routing/active/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/smart-routing/history/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/smart-routing/lab/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/smart-routing/stream/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/swarm/active/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/swarm/stream/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/tags/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/translator/console-logs/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/translator/console-logs/stream/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/translator/load/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/translator/save/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/translator/send/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/translator/translate/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/tunnel/disable/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/tunnel/enable/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/tunnel/status/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-check/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-disable/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-enable/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-install/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/codex-reset-credits/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/usage/chart/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/usage/history/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/usage/leaderboard/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/usage/logs/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/usage/meta/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/usage/providers/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/usage/request-details/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/usage/request-logs/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/usage/retry-stats/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/usage/stats/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/usage/stream/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/api/chat/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/audio/speech/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/audio/transcriptions/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/audio/voices/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/chat/completions/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/embeddings/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/images/generations/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/media/results/[id]/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/messages/count_tokens/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/messages/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/models/[kind]/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/models/info/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/models/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/responses/compact/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/responses/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/search/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/video/generations/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/web/fetch/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1beta/models/[...path]/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1beta/models/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/version/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/version/shutdown/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/version/update/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/dashboard/settings/pricing/{page-baf12d16760e9b90.js → page-cb505396f61fd853.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/{layout-155acd4a482252b8.js → layout-43c49c1c04131398.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/login/{page-089f2be5081e9c05.js → page-783218bde9da4df5.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/manifest.webmanifest/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/page-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/app-error-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/forbidden-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/not-found-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/unauthorized-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/css/4311ce5e9ab1213e.css +1 -0
- package/app/.next-cli-build/static/zahf-uMWnrDSCrrfcee0d/_buildManifest.js +1 -0
- package/app/package.json +1 -1
- package/app/public/favicon.svg +70 -8
- package/app/public/icons/icon-192.svg +73 -3
- package/app/public/icons/icon-512.svg +72 -3
- package/app/public/providers/xkiro.svg +11 -0
- package/app/public/vercel.svg +73 -1
- package/app/src/mitm/server.js +27 -27
- package/package.json +1 -1
- package/src/cli/tray/icon.ico +0 -0
- package/src/cli/tray/icon.png +0 -0
- package/app/.next-cli-build/server/chunks/1891.js +0 -10
- package/app/.next-cli-build/server/chunks/3735.js +0 -1
- package/app/.next-cli-build/server/chunks/5699.js +0 -1
- package/app/.next-cli-build/server/chunks/6878.js +0 -1
- package/app/.next-cli-build/server/chunks/7016.js +0 -3
- package/app/.next-cli-build/server/chunks/7410.js +0 -1
- package/app/.next-cli-build/server/chunks/7815.js +0 -1
- package/app/.next-cli-build/server/chunks/8048.js +0 -1
- package/app/.next-cli-build/static/BmLJ5bmQbpsF-jvZIwr9t/_buildManifest.js +0 -1
- package/app/.next-cli-build/static/chunks/1321-184fe0dd34faf680.js +0 -1
- package/app/.next-cli-build/static/chunks/2563-a547c8ef699e1791.js +0 -1
- package/app/.next-cli-build/static/chunks/5497-9caed03337b37e47.js +0 -7
- package/app/.next-cli-build/static/chunks/705-eaa2de0fd5964be4.js +0 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/endpoint/page-72670cb4cac6b97d.js +0 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/page-05b05e6f6136829d.js +0 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/page-cc5141ff81040e89.js +0 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/usage/page-55b0738c2d201462.js +0 -1
- package/app/.next-cli-build/static/chunks/app/_global-error/page-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/alerts/test/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/auth/login/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/auth/logout/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/auth/oidc/callback/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/auth/oidc/start/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/auth/oidc/test/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/auth/reset-password/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/auth/status/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/breaker/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cache/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/all-statuses/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/claude-settings/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/cline-settings/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/codex-settings/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/copilot-settings/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-registry/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-tools/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-settings/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/deepseek-tui-settings/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/droid-settings/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/hermes-settings/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/jcode-settings/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/kilo-settings/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/openclaw-settings/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/opencode-settings/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/combos/[id]/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/combos/lab/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/combos/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/combos/simulate/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/combos/validate-roles/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/dashboard/stream/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/headroom/start/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/headroom/status/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/headroom/stop/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/health/overview/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/health/providers/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/health/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/health/stream/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/init/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/keys/[id]/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/keys/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/locale/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/message/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/sse/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/deepgram/voices/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/inworld/voices/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/minimax/voices/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/voices/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/models/alias/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/models/availability/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/models/catalog-sync/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/models/custom/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/models/disabled/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/models/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/models/test/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/1min/import/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/[provider]/[action]/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/codex/bulk-import/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/codex/import-token/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/cursor/auto-import/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/cursor/import/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/freebuff/import/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/gitlab/pat/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/iflow/cookie/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/kimi-desktop/auto-import/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/kimi-desktop/import/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/kimi-desktop/quota/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/api-key/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/auto-import/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import-cli-proxy/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-authorize/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-exchange/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/qwen/import/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/wp-studio/import/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/zcode/import/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/zed/auto-import/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/zed/import/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/pricing/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/provider-nodes/[id]/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/provider-nodes/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/provider-nodes/validate/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/agnes-profile/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/felo-profile/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/freebuff-profile/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/health-timeline/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/inxora-profile/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/models/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/onemin-api-profile/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/onemin-profile/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/qwencloud-profile/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/test/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/test-models/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/v0-profile/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/vault-pool/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/zai-profile/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/zenmux-plans/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/capture/launch/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/capture/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/client/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/felo-capture/launch/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/felo-capture/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/kilo/free-models/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/suggested-models/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/test-batch/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/validate/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/test/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/proxy-pools/cloudflare-deploy/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/proxy-pools/deno-deploy/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/proxy-pools/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/proxy-pools/vercel-deploy/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/pxpipe/install/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/pxpipe/status/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/settings/database/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/settings/proxy-test/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/settings/require-login/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/settings/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/shutdown/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/smart-routing/active/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/smart-routing/history/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/smart-routing/lab/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/smart-routing/stream/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/swarm/active/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/swarm/stream/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/tags/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/translator/console-logs/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/translator/console-logs/stream/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/translator/load/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/translator/save/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/translator/send/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/translator/translate/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/tunnel/disable/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/tunnel/enable/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/tunnel/status/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-check/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-disable/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-enable/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-install/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/codex-reset-credits/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/usage/chart/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/usage/history/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/usage/leaderboard/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/usage/logs/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/usage/meta/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/usage/providers/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/usage/request-details/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/usage/request-logs/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/usage/retry-stats/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/usage/stats/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/usage/stream/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/api/chat/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/audio/speech/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/audio/transcriptions/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/audio/voices/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/chat/completions/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/embeddings/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/images/generations/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/messages/count_tokens/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/messages/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/models/[kind]/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/models/info/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/models/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/responses/compact/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/responses/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/search/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/web/fetch/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1beta/models/[...path]/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1beta/models/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/version/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/version/shutdown/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/version/update/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/manifest.webmanifest/route-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/page-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/app-error-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/forbidden-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/not-found-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/unauthorized-bf747ebfcd7e601c.js +0 -1
- package/app/.next-cli-build/static/css/8a8ea9ee79a01730.css +0 -1
- /package/app/.next-cli-build/static/{BmLJ5bmQbpsF-jvZIwr9t → zahf-uMWnrDSCrrfcee0d}/_ssgManifest.js +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";exports.id=4161,exports.ids=[1998,4161],exports.modules={19225:(a,b,c)=>{a.exports=c(44870)},24467:(a,b,c)=>{c.d(b,{DS:()=>r,GK:()=>m,MX:()=>l,RF:()=>s,X6:()=>f,Yh:()=>u,aS:()=>p,gI:()=>h,hy:()=>i,i5:()=>o,j8:()=>n,qK:()=>t});var d=c(78474);global._circuitBreakers||(global._circuitBreakers=new Map,global._breakerEmitter=new d.EventEmitter,global._breakerEmitter.setMaxListeners(50));let e=global._circuitBreakers,f=global._breakerEmitter,g={enabled:!0,failureThreshold:5,windowMs:6e4,cooldownMs:3e4,halfOpenMaxCalls:1};function h(a,b){let c=b&&"object"==typeof b?b:{};if(!c.connectionProxyEnabled)return a;let d=c.connectionProxyPoolId||"",e=c.connectionProxyUrl||"";return`${a}:proxy:${d||e}`}function i(a){let b=Number(a)||0;return 0===b||429===b||b>=500}function j(a){let b=e.get(a);return b||(b={key:a,state:"closed",failures:[],openedAt:null,cooldownEndsAt:null,halfOpenCalls:0,lastActivityAt:Date.now()},e.set(a,b)),b}function k(a){let b=e.get(a);b&&f.emit("breaker:update",{provider:b.key,state:b.state,failures:b.failures.length,openedAt:b.openedAt,cooldownEndsAt:b.cooldownEndsAt})}function l(a,b={},c=null){let d={...g,...b?.circuitBreaker||{}};if(!d.enabled)return!1;let e=c||a,f=j(e);f.lastActivityAt=Date.now();let h=Date.now();if("open"===f.state)if(!f.cooldownEndsAt||!(h>=f.cooldownEndsAt))return!0;else f.state="halfOpen",f.halfOpenCalls=0,k(e);if("halfOpen"===f.state){if(f.halfOpenCalls>=d.halfOpenMaxCalls)return!0;f.halfOpenCalls++}return!1}function m(a,b={},c=null){let d={...g,...b?.circuitBreaker||{}};if(!d.enabled)return!1;let f=e.get(c||a);if(!f)return!1;let h=Date.now();return"open"===f.state?!f.cooldownEndsAt||!(h>=f.cooldownEndsAt):"halfOpen"===f.state&&f.halfOpenCalls>=d.halfOpenMaxCalls}function n(a,b={},c=null){if(!({...g,...b?.circuitBreaker||{}}).enabled)return;let d=c||a,e=j(d);e.lastActivityAt=Date.now(),("closed"!==e.state||e.failures.length>0)&&(e.state="closed",e.failures=[],e.openedAt=null,e.cooldownEndsAt=null,e.halfOpenCalls=0,k(d))}function o(a,b,c={},d=null){let e={...g,...c?.circuitBreaker||{}};if(!e.enabled)return;let f=d||a,h=j(f);h.lastActivityAt=Date.now();let i=Date.now();if("halfOpen"===h.state){h.state="open",h.openedAt=i,h.cooldownEndsAt=i+e.cooldownMs,h.halfOpenCalls=0,h.failures=[{ts:i,status:b}],k(f);return}if("closed"===h.state){h.failures.push({ts:i,status:b});let a=i-e.windowMs;h.failures=h.failures.filter(b=>b.ts>=a),h.failures.length>=e.failureThreshold&&(h.state="open",h.openedAt=i,h.cooldownEndsAt=i+e.cooldownMs,k(f))}}function p(a,b=null){let c=e.get(b||a);!c||(c.lastActivityAt=Date.now(),"halfOpen"===c.state&&c.halfOpenCalls>0&&c.halfOpenCalls--)}let q=0;function r(){let a=Date.now();!function(a){if(a-q<6e4)return;q=a;let b=a-6e5;for(let[a,c]of e)"closed"===c.state&&(c.lastActivityAt||0)<b&&e.delete(a)}(a);let b=[];for(let c of e.values()){let d=c.state,e=null;"open"===c.state&&c.cooldownEndsAt&&0===(e=Math.max(0,c.cooldownEndsAt-a))&&(d="halfOpen"),b.push({provider:c.key,state:d,failures:c.failures.length,openedAt:c.openedAt,cooldownEndsAt:c.cooldownEndsAt,cooldownRemainingMs:e})}return b}function s(a,b=null){let c=e.get(b||a);return c&&"open"===c.state&&c.cooldownEndsAt?c.cooldownEndsAt:null}function t(){return 0!==e.size&&(e.clear(),!0)}function u(a,b=null){if(b){let a=e.get(b);return!!a&&(a.state="closed",a.failures=[],a.openedAt=null,a.cooldownEndsAt=null,a.halfOpenCalls=0,k(b),!0)}let c=!1;for(let[b,d]of e)(b===a||b.startsWith(`${a}:`))&&(d.state="closed",d.failures=[],d.openedAt=null,d.cooldownEndsAt=null,d.halfOpenCalls=0,k(b),c=!0);return c}},39326:(a,b,c)=>{c.d(b,{B:()=>f});var d=c(71998);function e(a){return null==a?"":String(a).trim()}async function f(a={}){try{let b=e(a?.proxyPoolId),c="__none__"===b?"":b,f=function(a={}){let b=a?.connectionProxyEnabled===!0,c=e(a?.connectionProxyUrl);return{connectionProxyEnabled:b,connectionProxyUrl:c,connectionNoProxy:e(a?.connectionNoProxy)}}(a);if(c){let a=await (0,d.hr)(c),b=e(a?.proxyUrl),f=e(a?.noProxy);if(a&&!0===a.isActive&&b){if("vercel"===a.type||"cloudflare"===a.type||"deno"===a.type)return{source:a.type,proxyPoolId:c,proxyPool:a,connectionProxyEnabled:!1,connectionProxyUrl:"",connectionNoProxy:f,strictProxy:!0===a.strictProxy,vercelRelayUrl:b};return{source:"pool",proxyPoolId:c,proxyPool:a,connectionProxyEnabled:!0,connectionProxyUrl:b,connectionNoProxy:f,strictProxy:!0===a.strictProxy}}}if(f.connectionProxyEnabled&&f.connectionProxyUrl)return{source:"legacy",proxyPoolId:c||null,proxyPool:null,...f};return{source:"none",proxyPoolId:c||null,proxyPool:null,...f}}catch(a){return console.error("[resolveConnectionProxyConfig] Failed to resolve proxy config:",a),{source:"error",proxyPoolId:null,proxyPool:null,connectionProxyEnabled:!1,connectionProxyUrl:"",connectionNoProxy:"",strictProxy:!1}}}},50122:(a,b,c)=>{c.d(b,{k:()=>e});let d=[];for(let a=0;a<256;++a)d.push((a+256).toString(16).slice(1));function e(a,b=0){return(d[a[b+0]]+d[a[b+1]]+d[a[b+2]]+d[a[b+3]]+"-"+d[a[b+4]]+d[a[b+5]]+"-"+d[a[b+6]]+d[a[b+7]]+"-"+d[a[b+8]]+d[a[b+9]]+"-"+d[a[b+10]]+d[a[b+11]]+d[a[b+12]]+d[a[b+13]]+d[a[b+14]]+d[a[b+15]]).toLowerCase()}},71998:(a,b,c)=>{c.d(b,{Fh:()=>d.Fh,L9:()=>d.L9,Mc:()=>d.Mc,OM:()=>d.OM,P:()=>d.getProviderConnections,Pc:()=>d.Pc,Q_:()=>d.Q_,Qu:()=>d.Qu,S8:()=>d.S8,Yd:()=>d.Yd,ZO:()=>d.ZO,c:()=>d.c,createProviderConnection:()=>d.iE,fK:()=>d.fK,fv:()=>d.fv,ho:()=>d.ho,hr:()=>d.hr,i0:()=>d.i0,o5:()=>d.o5,op:()=>d.op,rj:()=>d.updateProviderConnection,uL:()=>d.uL,ui:()=>d.ui,uv:()=>d.uv});var d=c(89718)},80238:(a,b,c)=>{c.d(b,{Pt:()=>n,Tr:()=>o,c1:()=>l,kI:()=>p,vk:()=>m});var d=c(89718),e=c(39326),f=c(12557),g=c(3662),h=c(40615),i=c(24467),j=c(7803);let k=new Map;async function l(a,b=null,g=null,m={}){let n,o,p,q,r=b instanceof Set?b:b?new Set([b]):new Set,s=m?.preferredConnectionId||null,t=(0,h.rs)(a),u=(p=(o=k.get(t))?o.tail:Promise.resolve(),q=new Promise(a=>{n=a}),k.set(t,{tail:q,release:n}),{wait:p,release:()=>{n(),k.get(t)?.tail===q&&k.delete(t)}});try{let b;if(await u.wait,h.IS[t]?.noAuth){let a=((await (0,d.mt)()).providerStrategies||{})[t]||{},b=a.rotateStrategy||"none",f=a.proxyPoolId||"";if("none"!==b&&b)try{let a=(await (0,d.ui)({isActive:!0})).map(a=>a.id).filter(Boolean);if(a.length>=2){let{pickProxyPoolId:d}=await c.e(6638).then(c.bind(c,26638));f=d(a,b,t)||f}}catch{}let g=await (0,e.B)({proxyPoolId:f});return{id:"noauth",connectionName:"Public",isActive:!0,accessToken:"public",providerSpecificData:{connectionProxyEnabled:g.connectionProxyEnabled,connectionProxyUrl:g.connectionProxyUrl,connectionNoProxy:g.connectionNoProxy,connectionProxyPoolId:g.proxyPoolId||null,vercelRelayUrl:g.vercelRelayUrl||""}}}let k=await (0,d.mt)();if((0,i.MX)(a,k)){j.warn("AUTH",`${a} | circuit breaker OPEN — skipping all accounts`);let b=(0,i.RF)(a)||Date.now()+3e4;return{allRateLimited:!0,rateLimitedUntil:b,retryAfter:new Date(b).toISOString(),retryAfterHuman:(0,f.Qo)(b),lastError:"Circuit breaker open",breakerOpen:!0}}let l=await (0,d.getProviderConnections)({provider:t,isActive:!0});if(j.debug("AUTH",`${a} | total connections: ${l.length}, excludeIds: ${r.size>0?[...r].join(","):"none"}, model: ${g||"any"}`),0===l.length){try{let{getAdminCredential:b}=await c.e(7524).then(c.bind(c,37524)),d=b(t);if(d)return j.info("AUTH",`${a} | using vault key ${d.keyName} (no user connection)`),{connectionId:"vault",id:"vault",connectionName:`Vault \xb7 ${d.keyName}`,authType:"apikey",apiKey:d.key,accessToken:null,refreshToken:null,providerSpecificData:{},isActive:!0}}catch{}return j.warn("AUTH",`No credentials for ${a}`),null}let m=l.filter(a=>!(r.has(a.id)||(0,f.Bl)(a,g)));if(j.debug("AUTH",`${a} | available: ${m.length}/${l.length}`),l.forEach(a=>{let b=r.has(a.id),c=(0,f.Bl)(a,g);if(b||c){let d=(0,f.kJ)(a);j.debug("AUTH",` → ${a.id?.slice(0,8)} | ${b?"excluded":""} ${c?`modelLocked(${g}) until ${d}`:""}`)}}),0===m.length){let b=l.filter(a=>(0,f.Bl)(a,g)),c=b.map(a=>(0,f.kJ)(a)).filter(Boolean).sort()[0]||null;if(c){let d=b[0];return j.warn("AUTH",`${a} | all ${l.length} accounts locked for ${g||"all"} (${(0,f.Qo)(c)}) | lastError=${d?.lastError?.slice(0,50)}`),{allRateLimited:!0,retryAfter:c,retryAfterHuman:(0,f.Qo)(c),lastError:d?.lastError||null,lastErrorCode:d?.errorCode||null}}return j.warn("AUTH",`${a} | all ${l.length} accounts unavailable`),null}let n=await (0,d.mt)(),o=(n.providerStrategies||{})[t]||{},p=o.fallbackStrategy||n.fallbackStrategy||"fill-first";if(s&&(b=m.find(a=>a.id===s))&&j.info("AUTH",`${a} | pinned to ${b.id?.slice(0,8)} (${b.name||b.email||"unnamed"})`),b);else if("round-robin"===p){let a=o.stickyRoundRobinLimit||n.stickyRoundRobinLimit||3,c=[...m].sort((a,b)=>a.lastUsedAt||b.lastUsedAt?a.lastUsedAt?b.lastUsedAt?new Date(b.lastUsedAt)-new Date(a.lastUsedAt):-1:1:(a.priority||999)-(b.priority||999))[0],e=c?.consecutiveUseCount||0;c&&c.lastUsedAt&&e<a?(b=c,await (0,d.updateProviderConnection)(b.id,{lastUsedAt:new Date().toISOString(),consecutiveUseCount:(b.consecutiveUseCount||0)+1})):(b=[...m].sort((a,b)=>a.lastUsedAt||b.lastUsedAt?a.lastUsedAt?b.lastUsedAt?new Date(a.lastUsedAt)-new Date(b.lastUsedAt):1:-1:(a.priority||999)-(b.priority||999))[0],await (0,d.updateProviderConnection)(b.id,{lastUsedAt:new Date().toISOString(),consecutiveUseCount:1}))}else b=m[0];let q=await (0,e.B)(b.providerSpecificData||{}),v=(0,i.gI)(t,q);if((0,i.MX)(a,k,v)){j.warn("AUTH",`${a} | breaker OPEN for proxy key "${v}" — skipping account`);let b=(0,i.RF)(a,v)||Date.now()+3e4;return{allRateLimited:!0,rateLimitedUntil:b,retryAfter:new Date(b).toISOString(),retryAfterHuman:(0,f.Qo)(b),lastError:`Circuit breaker open (${v})`,breakerOpen:!0}}return{authType:b.authType,apiKey:b.apiKey,accessToken:b.accessToken,refreshToken:b.refreshToken,idToken:b.idToken,expiresAt:b.expiresAt,expiresIn:b.expiresIn,lastRefreshAt:b.lastRefreshAt,projectId:b.projectId,connectionName:b.displayName||b.name||b.email||b.id,copilotToken:b.providerSpecificData?.copilotToken,providerSpecificData:{...b.providerSpecificData||{},connectionProxyEnabled:q.connectionProxyEnabled,connectionProxyUrl:q.connectionProxyUrl,connectionNoProxy:q.connectionNoProxy,connectionProxyPoolId:q.proxyPoolId||null,vercelRelayUrl:q.vercelRelayUrl||""},connectionId:b.id,testStatus:b.testStatus,lastError:b.lastError,_connection:b}}finally{u.release()}}async function m(a,b,e,h=null,i=null,k=null,l=null){let n,o,p;if(!a||"noauth"===a||499===b)return{shouldFallback:!1,cooldownMs:0};if("vault"===a){try{let{markVaultKeyRateLimited:a}=await c.e(7524).then(c.bind(c,37524));if(h){let c=k&&k>Date.now()?Math.min(k-Date.now(),g.fh):6e4;a(h,l,c),j.info("AUTH",`${h} | vault key rate-limited [${b}] key=${l||"(last-issued)"}, rotating in ${Math.round(c/1e3)}s`)}}catch{}return{shouldFallback:!0,cooldownMs:0}}let q=(await (0,d.getProviderConnections)({provider:h})).find(b=>b.id===a),r=q?.backoffLevel||0;if(k&&k>Date.now()){n=!0;let a=h&&g.gd[h]||g.fh;o=Math.min(k-Date.now(),a),p=0}else({shouldFallback:n,cooldownMs:o,newBackoffLevel:p}=(0,f.hk)(b,e,r));if(!n)return{shouldFallback:!1,cooldownMs:0};if("kimchi"===h&&(0,f.Fw)(b,e)){let b=(0,f.CR)();await (0,d.updateProviderConnection)(a,b);let c=q?.displayName||q?.name||q?.email||a.slice(0,8);return j.warn("AUTH",`${c} Kimchi quota exhausted — deactivated until ${b.rateLimitedUntil}`),{shouldFallback:!0,cooldownMs:0,quotaExhausted:!0}}let s="string"==typeof e?e.slice(0,100):"Provider error",t=(0,f.S5)(i,o);await (0,d.updateProviderConnection)(a,{...t,testStatus:"unavailable",lastError:s,errorCode:b,lastErrorAt:new Date().toISOString(),backoffLevel:p??r});let u=Object.keys(t)[0],v=q?.displayName||q?.name||q?.email||a.slice(0,8);if(j.warn("AUTH",`${v} locked ${u} for ${Math.round(o/1e3)}s [${b}]`),h&&b&&s&&console.error(`❌ ${h} [${b}]: ${s}`),h&&(429===b||403===b))try{let{dispatchAlert:a}=await c.e(9573).then(c.bind(c,49573));a("rate_limited",{provider:h,status:b,model:u,message:`Provider "${h}" rate-limited (HTTP ${b}) — ${s}. Account "${v}" locked for ${Math.round(o/1e3)}s.`})}catch{}return{shouldFallback:!0,cooldownMs:o}}async function n(a,b,c=null){if(!a||"noauth"===a||"vault"===a)return;let e=b._connection||b,f=Date.now(),g=Object.keys(e).filter(a=>a.startsWith("modelLock_"));if(!e.testStatus&&!e.lastError&&0===g.length)return;let h=g.filter(a=>{if(c&&a===`modelLock_${c}`||c&&"modelLock___all"===a)return!0;let b=e[a];return b&&new Date(b).getTime()<=f});if(0===h.length&&"unavailable"!==e.testStatus&&!e.lastError)return;let i=g.filter(a=>{if(h.includes(a))return!1;let b=e[a];return b&&new Date(b).getTime()>f}),j=Object.fromEntries(h.map(a=>[a,null]));0===i.length&&Object.assign(j,{testStatus:"active",lastError:null,lastErrorAt:null,backoffLevel:0}),await (0,d.updateProviderConnection)(a,j)}function o(a){let b=a.headers.get("Authorization");if(b?.startsWith("Bearer "))return b.slice(7);let c=a.headers.get("x-api-key");return c||null}async function p(a){return!!a&&await (0,d.ek)(a)}},92280:(a,b,c)=>{Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(28208),e=c(47617),f=c(62018);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}},94755:(a,b,c)=>{c.d(b,{A:()=>i});var d=c(77598);let e={randomUUID:d.randomUUID},f=new Uint8Array(256),g=f.length;var h=c(50122);let i=function(a,b,c){if(e.randomUUID&&!b&&!a)return e.randomUUID();var i=a,j=c;let k=(i=i||{}).random??i.rng?.()??(g>f.length-16&&((0,d.randomFillSync)(f),g=0),f.slice(g,g+=16));if(k.length<16)throw Error("Random bytes length must be >= 16");if(k[6]=15&k[6]|64,k[8]=63&k[8]|128,b){if((j=j||0)<0||j+16>b.length)throw RangeError(`UUID byte range ${j}:${j+15} is out of buffer bounds`);for(let a=0;a<16;++a)b[j+a]=k[a];return b}return(0,h.k)(k)}}};
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
"use strict";exports.id=4502,exports.ids=[4502],exports.modules={24467:(a,b,c)=>{c.d(b,{DS:()=>r,GK:()=>m,MX:()=>l,RF:()=>s,X6:()=>f,Yh:()=>u,aS:()=>p,gI:()=>h,hy:()=>i,i5:()=>o,j8:()=>n,qK:()=>t});var d=c(78474);global._circuitBreakers||(global._circuitBreakers=new Map,global._breakerEmitter=new d.EventEmitter,global._breakerEmitter.setMaxListeners(50));let e=global._circuitBreakers,f=global._breakerEmitter,g={enabled:!0,failureThreshold:5,windowMs:6e4,cooldownMs:3e4,halfOpenMaxCalls:1};function h(a,b){let c=b&&"object"==typeof b?b:{};if(!c.connectionProxyEnabled)return a;let d=c.connectionProxyPoolId||"",e=c.connectionProxyUrl||"";return`${a}:proxy:${d||e}`}function i(a){let b=Number(a)||0;return 0===b||429===b||b>=500}function j(a){let b=e.get(a);return b||(b={key:a,state:"closed",failures:[],openedAt:null,cooldownEndsAt:null,halfOpenCalls:0,lastActivityAt:Date.now()},e.set(a,b)),b}function k(a){let b=e.get(a);b&&f.emit("breaker:update",{provider:b.key,state:b.state,failures:b.failures.length,openedAt:b.openedAt,cooldownEndsAt:b.cooldownEndsAt})}function l(a,b={},c=null){let d={...g,...b?.circuitBreaker||{}};if(!d.enabled)return!1;let e=c||a,f=j(e);f.lastActivityAt=Date.now();let h=Date.now();if("open"===f.state)if(!f.cooldownEndsAt||!(h>=f.cooldownEndsAt))return!0;else f.state="halfOpen",f.halfOpenCalls=0,k(e);if("halfOpen"===f.state){if(f.halfOpenCalls>=d.halfOpenMaxCalls)return!0;f.halfOpenCalls++}return!1}function m(a,b={},c=null){let d={...g,...b?.circuitBreaker||{}};if(!d.enabled)return!1;let f=e.get(c||a);if(!f)return!1;let h=Date.now();return"open"===f.state?!f.cooldownEndsAt||!(h>=f.cooldownEndsAt):"halfOpen"===f.state&&f.halfOpenCalls>=d.halfOpenMaxCalls}function n(a,b={},c=null){if(!({...g,...b?.circuitBreaker||{}}).enabled)return;let d=c||a,e=j(d);e.lastActivityAt=Date.now(),("closed"!==e.state||e.failures.length>0)&&(e.state="closed",e.failures=[],e.openedAt=null,e.cooldownEndsAt=null,e.halfOpenCalls=0,k(d))}function o(a,b,c={},d=null){let e={...g,...c?.circuitBreaker||{}};if(!e.enabled)return;let f=d||a,h=j(f);h.lastActivityAt=Date.now();let i=Date.now();if("halfOpen"===h.state){h.state="open",h.openedAt=i,h.cooldownEndsAt=i+e.cooldownMs,h.halfOpenCalls=0,h.failures=[{ts:i,status:b}],k(f);return}if("closed"===h.state){h.failures.push({ts:i,status:b});let a=i-e.windowMs;h.failures=h.failures.filter(b=>b.ts>=a),h.failures.length>=e.failureThreshold&&(h.state="open",h.openedAt=i,h.cooldownEndsAt=i+e.cooldownMs,k(f))}}function p(a,b=null){let c=e.get(b||a);!c||(c.lastActivityAt=Date.now(),"halfOpen"===c.state&&c.halfOpenCalls>0&&c.halfOpenCalls--)}let q=0;function r(){let a=Date.now();!function(a){if(a-q<6e4)return;q=a;let b=a-6e5;for(let[a,c]of e)"closed"===c.state&&(c.lastActivityAt||0)<b&&e.delete(a)}(a);let b=[];for(let c of e.values()){let d=c.state,e=null;"open"===c.state&&c.cooldownEndsAt&&0===(e=Math.max(0,c.cooldownEndsAt-a))&&(d="halfOpen"),b.push({provider:c.key,state:d,failures:c.failures.length,openedAt:c.openedAt,cooldownEndsAt:c.cooldownEndsAt,cooldownRemainingMs:e})}return b}function s(a,b=null){let c=e.get(b||a);return c&&"open"===c.state&&c.cooldownEndsAt?c.cooldownEndsAt:null}function t(){return 0!==e.size&&(e.clear(),!0)}function u(a,b=null){if(b){let a=e.get(b);return!!a&&(a.state="closed",a.failures=[],a.openedAt=null,a.cooldownEndsAt=null,a.halfOpenCalls=0,k(b),!0)}let c=!1;for(let[b,d]of e)(b===a||b.startsWith(`${a}:`))&&(d.state="closed",d.failures=[],d.openedAt=null,d.cooldownEndsAt=null,d.halfOpenCalls=0,k(b),c=!0);return c}},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(200),global._swarmRuns=new Map,global._swarmEmitTimers={});let f=global._swarmEmitter,g=global._swarmRuns,h=global._swarmEmitTimers;function i(a,b,c=120){let d=b?.worker!==void 0?`:w${b.worker}`:"",e=`${a}:${b?.runId||""}${d}`;h[e]&&clearTimeout(h[e]),h[e]=setTimeout(()=>{delete h[e],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()].filter(([,a])=>"done"===a.status||"error"===a.status).sort((a,b)=>a[1].startedAt-b[1].startedAt);for(;g.size>50&&a.length>0;)g.delete(a.shift()[0])}return i("swarm:start",{type:"swarm:start",runId:k,comboName:a,promptPreview:m.promptPreview,workerCount:m.workerCount,status:"running"},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),"workers"===b&&"number"==typeof c.workerCount&&(d.workerCount=c.workerCount),i("swarm:stage",{type:"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];if(!e||"done"===e.status)return;e.status="done",e.completedAt=Date.now(),e.durationMs=e.startedAt?e.completedAt-e.startedAt:null;let{workers:f,...h}=c;Object.assign(e,h),f&&(e.summary={workerResults:f}),i("swarm:stage",{type:"swarm:stage",runId:a,stage:b,status:"done",durationMs:e.durationMs,...h})}function m(a,b,c,d={}){let e=g.get(a);if(!e)return;for(;e.stages.workers.workers.length<=b;)e.stages.workers.workers.push({index:e.stages.workers.workers.length,status:"pending",model:null,durationMs:null});let f=e.stages.workers.workers[b];f&&("running"!==c||f.startedAt||(f.startedAt=Date.now()),"done"!==c&&"error"!==c||f.completedAt||(f.completedAt=Date.now(),f.durationMs=f.startedAt?f.completedAt-f.startedAt:null),f.status=c,Object.assign(f,d),i("swarm:stage",{type:"swarm:stage",runId:a,stage:"workers",worker:b,status:c,durationMs:f.durationMs,...d}))}function n(a,b){let c=g.get(a);c&&"done"!==c.status&&"error"!==c.status&&(c.status="error",c.error=String(b?.message||b||"unknown"),c.completedAt=Date.now(),c.totalDurationMs=c.completedAt-c.startedAt,i("swarm:error",{type:"swarm:error",runId:a,error:c.error,status:"error",totalDurationMs:c.totalDurationMs},0))}function o(a,b={}){let c=g.get(a);c&&"done"!==c.status&&"error"!==c.status&&(c.status="done",c.completedAt=Date.now(),c.totalDurationMs=c.completedAt-c.startedAt,Object.assign(c,b),i("swarm:complete",{type:"swarm:complete",runId:a,status:"done",totalDurationMs:c.totalDurationMs,...b},0))}function p(a=20){return[...g.values()].sort((a,b)=>b.startedAt-a.startedAt).slice(0,a).map(a=>structuredClone(a))}},50304:(a,b,c)=>{c.d(b,{Fk:()=>n,Jb:()=>s,Xf:()=>l,bt:()=>q,iT:()=>f,kA:()=>r,kc:()=>p,mU:()=>o});var d=c(78474),e=c(77598);global._smartRoutingEmitter||(global._smartRoutingEmitter=new d.EventEmitter,global._smartRoutingEmitter.setMaxListeners(200),global._smartRoutingRuns=new Map,global._smartRoutingEmitTimers={},global._smartRoutingPersistPending=new Map,global._smartRoutingPersistTimer=null);let f=global._smartRoutingEmitter,g=global._smartRoutingRuns,h=global._smartRoutingEmitTimers,i=global._smartRoutingPersistPending;function j(a){if(a&&a.runId)try{i.set(a.runId,a),i.size>=50?(global._smartRoutingPersistTimer&&(clearTimeout(global._smartRoutingPersistTimer),global._smartRoutingPersistTimer=null),k().catch(()=>{})):global._smartRoutingPersistTimer||(global._smartRoutingPersistTimer=setTimeout(()=>{global._smartRoutingPersistTimer=null,k().catch(()=>{})},2e3))}catch{}}async function k(){if(0===i.size)return;let a=[...i.values()];i.clear();try{let{persistRuns:b}=await c.e(5253).then(c.bind(c,55253));await b(a)}catch(b){for(let b of a)i.set(b.runId,b);console.warn("[smartRoutingTelemetry] persist failed (will retry on next flush):",b?.message||b)}}async function l({limit:a=50}={}){if(g.size>0)return!1;try{let{loadRecentRuns:b}=await c.e(5253).then(c.bind(c,55253)),d=await b({limit:a});for(let a of d)a?.runId&&!g.has(a.runId)&&g.set(a.runId,a);return d.length>0}catch(a){return console.warn("[smartRoutingTelemetry] hydrate from DB failed:",a?.message||a),!1}}function m(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 n({comboName:a,promptPreview:b,lastUserMessage:c}){let d=(0,e.randomUUID)(),f=Date.now(),h={runId:d,comboName:a,promptPreview:(b||"").slice(0,200),lastUserMessage:(c||"").slice(0,4e3),routing:null,servedModel:null,status:"running",error:null,startedAt:f,completedAt:null,totalDurationMs:null};if(g.set(d,h),g.size>50){let a=[...g.entries()].filter(([,a])=>"done"===a.status||"error"===a.status).sort((a,b)=>a[1].startedAt-b[1].startedAt);for(;g.size>50&&a.length>0;)g.delete(a.shift()[0])}return m("smart:start",{type:"smart:start",runId:d,comboName:a,promptPreview:h.promptPreview,status:"running"},0),j(h),h}function o(a,b){let c=g.get(a);if(!c)return;let d={reason:b?.reason||"general",order:Array.isArray(b?.order)?b.order:[],excludedCookies:Array.isArray(b?.excludedCookies)?b.excludedCookies:[],cookiePool:Array.isArray(b?.cookiePool)?b.cookiePool:[],normalPool:Array.isArray(b?.normalPool)?b.normalPool:[],intent:b?.intent||null};c.routing=d,m("smart:route",{type:"smart:route",runId:a,routing:d,status:"running"},0),j(c)}function p(a,b){let c=g.get(a);c&&(c.servedModel=b,m("smart:served",{type:"smart:served",runId:a,servedModel:b,status:"running"},0),j(c))}function q(a,b){let c=g.get(a);c&&"done"!==c.status&&"error"!==c.status&&(c.status="error",c.error=String(b?.message||b||"unknown"),c.completedAt=Date.now(),c.totalDurationMs=c.completedAt-c.startedAt,m("smart:error",{type:"smart:error",runId:a,error:c.error,servedModel:c.servedModel,status:"error",totalDurationMs:c.totalDurationMs},0),j(c))}function r(a,b={}){let c=g.get(a);c&&"done"!==c.status&&"error"!==c.status&&(c.status="done",c.completedAt=Date.now(),c.totalDurationMs=c.completedAt-c.startedAt,Object.assign(c,b),m("smart:complete",{type:"smart:complete",runId:a,servedModel:c.servedModel,status:"done",totalDurationMs:c.totalDurationMs,...b},0),j(c))}function s(a=20){return[...g.values()].sort((a,b)=>b.startedAt-a.startedAt).slice(0,a).map(a=>structuredClone(a))}let t=async()=>{try{await k()}catch{}};process.off("beforeExit",t),process.off("SIGINT",t),process.off("SIGTERM",t),process.off("exit",t),process.on("beforeExit",t),process.on("SIGINT",t),process.on("SIGTERM",t),process.on("exit",t)},82121:(a,b,c)=>{c.d(b,{sm:()=>Z,zH:()=>ah,Ci:()=>$,Jn:()=>ae,dW:()=>ak,t8:()=>ab,Vt:()=>ag,$x:()=>X,Vu:()=>ad,Ni:()=>ao,Pr:()=>af,vt:()=>am,O6:()=>al,je:()=>O,UP:()=>ac,wj:()=>aj});var d=c(12557),e=c(43659),f=c(53552),g=c(26922),h=c(24467),i=c(31589),j=c(40669);function k(a,b,c){let d,e=new AbortController,f=()=>e.abort(c?.reason||Error("parent aborted"));return c?.aborted?f():c?.addEventListener("abort",f,{once:!0}),{promise:new Promise(c=>{d=setTimeout(()=>{e.abort(Error("combo task timeout")),c({__timeout:!0})},b),Promise.resolve().then(()=>a(e.signal)).then(a=>c(a)).catch(a=>c({__error:a})).finally(()=>clearTimeout(d))}),signal:e.signal,abort(a="combo task cancelled"){e.signal.aborted||e.abort(Error(a))},cleanup(){clearTimeout(d),c?.removeEventListener("abort",f)}}}var l=c(14170);function m(a){return a?.request?.contents?l.h.ANTIGRAVITY:Array.isArray(a?.contents)?l.h.GEMINI:a?.input===void 0||a?.messages?a?.anthropic_version||a?.system!==void 0?l.h.CLAUDE:l.h.OPENAI:l.h.OPENAI_RESPONSES}function n(a,b,c=m(a)){let d={...a};if(c===l.h.ANTIGRAVITY){let c={...a.request||{}};c.contents=[...c.contents||[],{role:"user",parts:[{text:b}]}],d.request=c}else c===l.h.GEMINI?d.contents=[...a.contents||[],{role:"user",parts:[{text:b}]}]:c===l.h.OPENAI_RESPONSES?d.input=[..."string"==typeof a.input?[{role:"user",content:a.input}]:[...a.input||[]],{role:"user",content:[{type:"input_text",text:b}]}]:d.messages=[...a.messages||[],{role:"user",content:b}];return d}function o(a){return(a||[]).filter(Boolean).map(a=>{if("string"==typeof a||!a||"object"!=typeof a)return a;if(a.functionCall)return`[Called tool: ${a.functionCall.name||"tool"}]`;if(a.functionResponse){let b=a.functionResponse.response,c="string"==typeof b?b:JSON.stringify(b);return`[Tool result: ${c||""}]`}return void 0!==a.text?a.text:a})}function p(a){return(a||[]).filter(Boolean).map(a=>{if("tool"===a.role||"function"===a.role)return{role:"assistant",content:`[Tool result: ${(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)||"";return{...c,content:`${e}${e?"\n":""}[Called tools: ${d}]`}}if(Array.isArray(a.content)&&a.content.some(a=>a?.type==="tool_use"||a?.type==="tool_result")){let b=a.content.map(a=>a?.text||(a?.type==="tool_use"?`[Called tool: ${a.name||"tool"}]`:a?.type==="tool_result"?`[Tool result: ${(0,g.kU)(a.content)}]`:"")).filter(Boolean).join("\n");return{...a,content:b}}return a})}function q(a,b=m(a)){let{tools:c,tool_choice:d,...e}=a,f={...e,stream:!1};return b===l.h.OPENAI_RESPONSES?Array.isArray(f.input)&&(f.input=p(f.input)):b===l.h.ANTIGRAVITY?f.request={...f.request||{},tools:void 0,contents:Array.isArray(f.request.contents)?f.request.contents.map(a=>({...a,parts:o(a.parts)})):f.request.contents}:b===l.h.GEMINI?f.contents=Array.isArray(f.contents)?f.contents.map(a=>({...a,parts:o(a.parts)})):f.contents:Array.isArray(f.messages)&&(f.messages=p(f.messages)),f}function r(a,b){let c=String(a||"");return c.length<=b?c:`${c.slice(0,b)}
|
|
2
|
-
[truncated by combo budget]`}var s=c(783),t=c(50304);let
|
|
1
|
+
"use strict";exports.id=4502,exports.ids=[4502],exports.modules={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(200),global._swarmRuns=new Map,global._swarmEmitTimers={});let f=global._swarmEmitter,g=global._swarmRuns,h=global._swarmEmitTimers;function i(a,b,c=120){let d=b?.worker!==void 0?`:w${b.worker}`:"",e=`${a}:${b?.runId||""}${d}`;h[e]&&clearTimeout(h[e]),h[e]=setTimeout(()=>{delete h[e],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()].filter(([,a])=>"done"===a.status||"error"===a.status).sort((a,b)=>a[1].startedAt-b[1].startedAt);for(;g.size>50&&a.length>0;)g.delete(a.shift()[0])}return i("swarm:start",{type:"swarm:start",runId:k,comboName:a,promptPreview:m.promptPreview,workerCount:m.workerCount,status:"running"},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),"workers"===b&&"number"==typeof c.workerCount&&(d.workerCount=c.workerCount),i("swarm:stage",{type:"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];if(!e||"done"===e.status)return;e.status="done",e.completedAt=Date.now(),e.durationMs=e.startedAt?e.completedAt-e.startedAt:null;let{workers:f,...h}=c;Object.assign(e,h),f&&(e.summary={workerResults:f}),i("swarm:stage",{type:"swarm:stage",runId:a,stage:b,status:"done",durationMs:e.durationMs,...h})}function m(a,b,c,d={}){let e=g.get(a);if(!e)return;for(;e.stages.workers.workers.length<=b;)e.stages.workers.workers.push({index:e.stages.workers.workers.length,status:"pending",model:null,durationMs:null});let f=e.stages.workers.workers[b];f&&("running"!==c||f.startedAt||(f.startedAt=Date.now()),"done"!==c&&"error"!==c||f.completedAt||(f.completedAt=Date.now(),f.durationMs=f.startedAt?f.completedAt-f.startedAt:null),f.status=c,Object.assign(f,d),i("swarm:stage",{type:"swarm:stage",runId:a,stage:"workers",worker:b,status:c,durationMs:f.durationMs,...d}))}function n(a,b){let c=g.get(a);c&&"done"!==c.status&&"error"!==c.status&&(c.status="error",c.error=String(b?.message||b||"unknown"),c.completedAt=Date.now(),c.totalDurationMs=c.completedAt-c.startedAt,i("swarm:error",{type:"swarm:error",runId:a,error:c.error,status:"error",totalDurationMs:c.totalDurationMs},0))}function o(a,b={}){let c=g.get(a);c&&"done"!==c.status&&"error"!==c.status&&(c.status="done",c.completedAt=Date.now(),c.totalDurationMs=c.completedAt-c.startedAt,Object.assign(c,b),i("swarm:complete",{type:"swarm:complete",runId:a,status:"done",totalDurationMs:c.totalDurationMs,...b},0))}function p(a=20){return[...g.values()].sort((a,b)=>b.startedAt-a.startedAt).slice(0,a).map(a=>structuredClone(a))}},50304:(a,b,c)=>{c.d(b,{Fk:()=>n,Jb:()=>s,Xf:()=>l,bt:()=>q,iT:()=>f,kA:()=>r,kc:()=>p,mU:()=>o});var d=c(78474),e=c(77598);global._smartRoutingEmitter||(global._smartRoutingEmitter=new d.EventEmitter,global._smartRoutingEmitter.setMaxListeners(200),global._smartRoutingRuns=new Map,global._smartRoutingEmitTimers={},global._smartRoutingPersistPending=new Map,global._smartRoutingPersistTimer=null);let f=global._smartRoutingEmitter,g=global._smartRoutingRuns,h=global._smartRoutingEmitTimers,i=global._smartRoutingPersistPending;function j(a){if(a&&a.runId)try{i.set(a.runId,a),i.size>=50?(global._smartRoutingPersistTimer&&(clearTimeout(global._smartRoutingPersistTimer),global._smartRoutingPersistTimer=null),k().catch(()=>{})):global._smartRoutingPersistTimer||(global._smartRoutingPersistTimer=setTimeout(()=>{global._smartRoutingPersistTimer=null,k().catch(()=>{})},2e3))}catch{}}async function k(){if(0===i.size)return;let a=[...i.values()];i.clear();try{let{persistRuns:b}=await c.e(5253).then(c.bind(c,55253));await b(a)}catch(b){for(let b of a)i.set(b.runId,b);console.warn("[smartRoutingTelemetry] persist failed (will retry on next flush):",b?.message||b)}}async function l({limit:a=50}={}){if(g.size>0)return!1;try{let{loadRecentRuns:b}=await c.e(5253).then(c.bind(c,55253)),d=await b({limit:a});for(let a of d)a?.runId&&!g.has(a.runId)&&g.set(a.runId,a);return d.length>0}catch(a){return console.warn("[smartRoutingTelemetry] hydrate from DB failed:",a?.message||a),!1}}function m(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 n({comboName:a,promptPreview:b,lastUserMessage:c}){let d=(0,e.randomUUID)(),f=Date.now(),h={runId:d,comboName:a,promptPreview:(b||"").slice(0,200),lastUserMessage:(c||"").slice(0,4e3),routing:null,servedModel:null,status:"running",error:null,startedAt:f,completedAt:null,totalDurationMs:null};if(g.set(d,h),g.size>50){let a=[...g.entries()].filter(([,a])=>"done"===a.status||"error"===a.status).sort((a,b)=>a[1].startedAt-b[1].startedAt);for(;g.size>50&&a.length>0;)g.delete(a.shift()[0])}return m("smart:start",{type:"smart:start",runId:d,comboName:a,promptPreview:h.promptPreview,status:"running"},0),j(h),h}function o(a,b){let c=g.get(a);if(!c)return;let d={reason:b?.reason||"general",order:Array.isArray(b?.order)?b.order:[],excludedCookies:Array.isArray(b?.excludedCookies)?b.excludedCookies:[],cookiePool:Array.isArray(b?.cookiePool)?b.cookiePool:[],normalPool:Array.isArray(b?.normalPool)?b.normalPool:[],intent:b?.intent||null};c.routing=d,m("smart:route",{type:"smart:route",runId:a,routing:d,status:"running"},0),j(c)}function p(a,b){let c=g.get(a);c&&(c.servedModel=b,m("smart:served",{type:"smart:served",runId:a,servedModel:b,status:"running"},0),j(c))}function q(a,b){let c=g.get(a);c&&"done"!==c.status&&"error"!==c.status&&(c.status="error",c.error=String(b?.message||b||"unknown"),c.completedAt=Date.now(),c.totalDurationMs=c.completedAt-c.startedAt,m("smart:error",{type:"smart:error",runId:a,error:c.error,servedModel:c.servedModel,status:"error",totalDurationMs:c.totalDurationMs},0),j(c))}function r(a,b={}){let c=g.get(a);c&&"done"!==c.status&&"error"!==c.status&&(c.status="done",c.completedAt=Date.now(),c.totalDurationMs=c.completedAt-c.startedAt,Object.assign(c,b),m("smart:complete",{type:"smart:complete",runId:a,servedModel:c.servedModel,status:"done",totalDurationMs:c.totalDurationMs,...b},0),j(c))}function s(a=20){return[...g.values()].sort((a,b)=>b.startedAt-a.startedAt).slice(0,a).map(a=>structuredClone(a))}let t=async()=>{try{await k()}catch{}};process.off("beforeExit",t),process.off("SIGINT",t),process.off("SIGTERM",t),process.off("exit",t),process.on("beforeExit",t),process.on("SIGINT",t),process.on("SIGTERM",t),process.on("exit",t)},82121:(a,b,c)=>{c.d(b,{sm:()=>_,zH:()=>aj,Ci:()=>aa,Jn:()=>ag,dW:()=>am,t8:()=>ad,Vt:()=>ai,$x:()=>Z,Vu:()=>af,Ni:()=>aq,Pr:()=>ah,vt:()=>ao,O6:()=>an,je:()=>Q,UP:()=>ae,wj:()=>al});var d=c(12557),e=c(43659),f=c(53552),g=c(26922),h=c(24467),i=c(31589),j=c(40669);function k(a,b,c){let d,e=new AbortController,f=()=>e.abort(c?.reason||Error("parent aborted"));return c?.aborted?f():c?.addEventListener("abort",f,{once:!0}),{promise:new Promise(c=>{d=setTimeout(()=>{e.abort(Error("combo task timeout")),c({__timeout:!0})},b),Promise.resolve().then(()=>a(e.signal)).then(a=>c(a)).catch(a=>c({__error:a})).finally(()=>clearTimeout(d))}),signal:e.signal,abort(a="combo task cancelled"){e.signal.aborted||e.abort(Error(a))},cleanup(){clearTimeout(d),c?.removeEventListener("abort",f)}}}var l=c(14170);function m(a){return a?.request?.contents?l.h.ANTIGRAVITY:Array.isArray(a?.contents)?l.h.GEMINI:a?.input===void 0||a?.messages?a?.anthropic_version||a?.system!==void 0?l.h.CLAUDE:l.h.OPENAI:l.h.OPENAI_RESPONSES}function n(a,b,c=m(a)){let d={...a};if(c===l.h.ANTIGRAVITY){let c={...a.request||{}};c.contents=[...c.contents||[],{role:"user",parts:[{text:b}]}],d.request=c}else c===l.h.GEMINI?d.contents=[...a.contents||[],{role:"user",parts:[{text:b}]}]:c===l.h.OPENAI_RESPONSES?d.input=[..."string"==typeof a.input?[{role:"user",content:a.input}]:[...a.input||[]],{role:"user",content:[{type:"input_text",text:b}]}]:d.messages=[...a.messages||[],{role:"user",content:b}];return d}function o(a){return(a||[]).filter(Boolean).map(a=>{if("string"==typeof a||!a||"object"!=typeof a)return a;if(a.functionCall)return`[Called tool: ${a.functionCall.name||"tool"}]`;if(a.functionResponse){let b=a.functionResponse.response,c="string"==typeof b?b:JSON.stringify(b);return`[Tool result: ${c||""}]`}return void 0!==a.text?a.text:a})}function p(a){return(a||[]).filter(Boolean).map(a=>{if("tool"===a.role||"function"===a.role)return{role:"assistant",content:`[Tool result: ${(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)||"";return{...c,content:`${e}${e?"\n":""}[Called tools: ${d}]`}}if(Array.isArray(a.content)&&a.content.some(a=>a?.type==="tool_use"||a?.type==="tool_result")){let b=a.content.map(a=>a?.text||(a?.type==="tool_use"?`[Called tool: ${a.name||"tool"}]`:a?.type==="tool_result"?`[Tool result: ${(0,g.kU)(a.content)}]`:"")).filter(Boolean).join("\n");return{...a,content:b}}return a})}function q(a,b=m(a)){let{tools:c,tool_choice:d,...e}=a,f={...e,stream:!1};return b===l.h.OPENAI_RESPONSES?Array.isArray(f.input)&&(f.input=p(f.input)):b===l.h.ANTIGRAVITY?f.request={...f.request||{},tools:void 0,contents:Array.isArray(f.request.contents)?f.request.contents.map(a=>({...a,parts:o(a.parts)})):f.request.contents}:b===l.h.GEMINI?f.contents=Array.isArray(f.contents)?f.contents.map(a=>({...a,parts:o(a.parts)})):f.contents:Array.isArray(f.messages)&&(f.messages=p(f.messages)),f}function r(a,b){let c=String(a||"");return c.length<=b?c:`${c.slice(0,b)}
|
|
2
|
+
[truncated by combo budget]`}var s=c(783),t=c(50304),u=c(47370),v=c(71799);let w=[/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 x(a){return!!a&&"string"==typeof a&&!(a.length<80)&&w.some(b=>b.test(a))}function y(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"||!x("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&&x(b.system))delete b.system;else if(Array.isArray(b.system)){let a=b.system.filter(a=>!(a?.type==="text"&&x(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&&x(Array.isArray(c.parts)?c.parts.map(a=>a?.text||"").join("\n"):"")&&delete b[a]}return b}let z={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 A(a){let b=z[a?.role]||z.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 B=c(36701);let C={workerHardTimeoutMs:9e4,workerQuorum:2,stragglerGraceMs:1e4,managerTimeoutMs:6e4,minWorkers:2,maxWorkers:8},D="=== 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 E(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 F(a){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=>{let b=a.output||"(worker did not produce output)";return`### Subtask ${a.id}: ${a.title}
|
|
3
3
|
Role: ${a.role}
|
|
4
4
|
Instruction: ${a.instruction}
|
|
5
5
|
|
|
6
6
|
#### Worker Output
|
|
7
|
-
${b}`}).join("\n\n---\n\n"),"=== END ===\n\nNow write the technical audit report. Be concrete and specific. Reference subtask IDs."].join("\n")}function
|
|
7
|
+
${b}`}).join("\n\n---\n\n"),"=== END ===\n\nNow write the technical audit report. Be concrete and specific. Reference subtask IDs."].join("\n")}function G(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 H(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 I(a){if(!a)return null;let b=a.replace(/```json\s*/gi,"").replace(/```/g,"").trim(),c=b.indexOf("{"),d=b.lastIndexOf("}");if(-1!==c&&-1!==d&&d>c)try{let a=JSON.parse(b.slice(c,d+1));if(Array.isArray(a.subtasks)&&a.subtasks.length>0)return a}catch{}let e=[];for(let a of function*(a){let b=0,c=-1,d=!1,e=!1;for(let f=0;f<a.length;f++){let g=a[f];if(e){e=!1;continue}if("\\"===g){e=!0;continue}if('"'===g){d=!d;continue}!d&&("{"===g?(0===b&&(c=f),b++):"}"===g&&0==--b&&c>=0&&(yield a.slice(c,f+1),c=-1))}}(b))if(/"id"\s*:/.test(a))try{let b=JSON.parse(a);b&&(b.title||b.instruction||b.role)&&e.push({id:"number"==typeof b.id?b.id:e.length+1,title:b.title||`Subtask ${e.length+1}`,role:b.role||"default",instruction:b.instruction||b.title||""})}catch{}return e.length>0?{assessment:"(recovered from truncated output)",subtasks:e}:null}function J(a){let{tools:b,tool_choice:c,...d}=a,e={...d,stream:!1};return Array.isArray(e.messages)&&(e.messages=Z(e.messages)),e}let K=new Map;async function L({runId:a,body:b,managerModel:c,handleSingleModel:d,cfg:e,log:f}){(0,B._5)(a,"gatekeeper",{model:c}),H(b);let g=aj(y(J(b)),D);try{let b=await al(d(g,c,{isPanel:!0,role:"gatekeeper"}),e.managerTimeoutMs);if(b?.__timeout||b?.__error)return(0,B.SH)(a,"gatekeeper",{verdict:"complex"}),M(c,f),"complex";let h=ai(await b.response.clone().json().catch(()=>({}))),i=/VERDICT:\s*SIMPLE/i.test(h)?"simple":"complex";return(0,B.SH)(a,"gatekeeper",{verdict:i}),K.delete(c),f?.info?.("SWARM",`Gatekeeper verdict: ${i}`),i}catch(b){return f?.warn?.("SWARM",`Gatekeeper error, assuming complex: ${b?.message||b}`),(0,B.SH)(a,"gatekeeper",{verdict:"complex"}),M(c,f),"complex"}}function M(a,b){let c=(K.get(a)||0)+1;K.set(a,c),3===c&&b?.warn?.("SWARM",`Gatekeeper has failed ${c} consecutive times for ${a}. Every request is falling through to a full swarm pipeline — the manager model may be degraded.`)}async function N({runId:a,body:b,managerModel:c,handleSingleModel:d,cfg:e,log:f}){(0,B._5)(a,"manager",{model:c});let g=H(b),h=aj(y(J(b)),E(g));try{let b=await al(d(h,c,{isPanel:!0,role:"manager"}),e.managerTimeoutMs);if(b?.__timeout||b?.__error)return(0,B.SH)(a,"manager",{strategy:null}),null;let g=ai(await b.response.clone().json().catch(()=>({}))),i=I(g);return(0,B.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,B.SH)(a,"manager",{strategy:null}),null}}async function O({runId:a,strategy:b,models:c,body:d,handleSingleModel:e,cfg:f,log:g,runBudget:h}){(0,B._5)(a,"workers",{workerCount:b.subtasks.length});let i=b.subtasks,j=c.filter(Boolean);if(0===j.length)return(0,B.SH)(a,"workers",{workers:[]}),[];let k=i.map((b,c)=>{let g=j[c%j.length],i=aj(J(d),A(b));return(0,B.gF)(a,c,"running",{model:g}),al(e(i,g,{isPanel:!0,role:"worker"}),f.workerHardTimeoutMs).then(async d=>{if(d?.__timeout||d?.__error)return(0,B.gF)(a,c,"error",{model:g}),{ok:!1,text:""};if(!ag(d))return(0,B.gF)(a,c,"error",{model:g,status:d?.status??d?.response?.status}),{ok:!1,text:""};let e=ai(await d.response.clone().json().catch(()=>({}))),f=h?h.clampOutput(e):e;return e&&!f?((0,B.gF)(a,c,"error",{model:g,reason:"over_budget"}),{ok:!1,text:""}):((0,B.gF)(a,c,"done",{model:g,outputLen:f.length}),{ok:!0,text:f,subtask:b})}).catch(()=>((0,B.gF)(a,c,"error",{model:g}),{ok:!1,text:""}))}),l=await am(k,{minPanel:Math.min(f.workerQuorum,k.length),stragglerGraceMs:f.stragglerGraceMs,panelHardTimeoutMs:f.workerHardTimeoutMs}),m=[];for(let a=0;a<l.length;a++){let b=l[a];b&&b.ok&&m.push({subtask:i[a],text:b.text})}return(0,B.SH)(a,"workers",{workers:l.map((a,b)=>({index:b,ok:!!a?.ok}))}),m}async function P({runId:a,strategy:b,workerOutputs:c,staffModel:d,auditModel:e,body:f,handleSingleModel:g,cfg:h,log:i,runBudget:j}){let k=d||e;if(!k)return(0,B.SH)(a,"audit",{skipped:!0}),null;(0,B._5)(a,"audit",{model:k});let l=b.subtasks.map(a=>{let b=c.find(b=>b.subtask===a);return{...a,output:b?.text||"(no output)"}}),m=aj(y(J(f)),F(l));try{let b=await al(g(m,k,{isPanel:!0,role:"audit"}),h.managerTimeoutMs);if(b?.__timeout||b?.__error)return(0,B.SH)(a,"audit",{skipped:!0}),null;let c=ai(await b.response.clone().json().catch(()=>({})));return(0,B.SH)(a,"audit",{reportLen:c.length}),j?j.clampOutput(c):c}catch(b){return i?.warn?.("SWARM",`Staff audit error: ${b?.message||b}`),(0,B.SH)(a,"audit",{skipped:!0}),null}}async function Q({body:a,models:b,handleSingleModel:c,log:d,comboName:e,managerModel:f,staffModel:g,auditModel:h,workerCount:j,swarmTuning:k,telemetry:l=!0,signal:m,runBudget:n,principalId:o,autoScale:p}){let q=b.filter(Boolean);if(0===q.length)return new Response(JSON.stringify({error:"Swarm requires at least one worker model"}),{status:400});let r={...C,...k||{}},s=(f||"").trim()||q[0],t=H(a);if(1===q.length&&!f&&!g&&!h)return(await c(a,q[0],{role:"manager"})).response;let u=(0,i.Ub)("swarm",{managerModel:f,staffModel:g,auditModel:h},q);if(u.length>0){let a=u.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 v=l?(0,B._s)({comboName:e,promptPreview:t,managerModel:s,staffModel:g,auditModel:h,workerCount:j||r.minWorkers}):null,w=v?.runId;try{let b,e=l?await L({runId:w,body:a,managerModel:s,handleSingleModel:c,cfg:r,log:d}):await R({body:a,managerModel:s,handleSingleModel:c,cfg:r,log:d});if("simple"===e)return d?.info?.("SWARM","Gatekeeper bypass — simple request, direct answer"),w&&(0,B.kA)(w,{bypassed:!0}),(await c(a,s,{role:"manager"})).response;let f=l?await N({runId:w,body:a,managerModel:s,handleSingleModel:c,cfg:r,log:d}):await S({body:a,managerModel:s,handleSingleModel:c,cfg:r,log:d});if(!f||!Array.isArray(f.subtasks)||0===f.subtasks.length)return d?.warn?.("SWARM","Strategy decomposition failed — falling back to direct answer"),w&&(0,B.kA)(w,{fallback:!0}),(await c(a,s,{role:"manager"})).response;p?.enabled?(b=Math.min(Math.max(f.subtasks.length,p.minWorkers||1),p.maxWorkers||r.maxWorkers),d?.info?.("SWARM",`Auto-scale: ${f.subtasks.length} subtasks → ${b} workers (${p.minWorkers||1}–${p.maxWorkers||r.maxWorkers})`)):b="number"==typeof j&&j>0?Math.min(j,r.maxWorkers):r.maxWorkers;let i=f.subtasks.slice(0,b),k=l?await O({runId:w,strategy:{subtasks:i},models:q,body:a,handleSingleModel:c,cfg:r,log:d,runBudget:n}):await T({strategy:{subtasks:i},models:q,body:a,handleSingleModel:c,cfg:r,log:d,runBudget:n});if(k.length<r.minWorkers){if(d?.warn?.("SWARM",`Only ${k.length}/${i.length} workers succeeded — fallback`),w&&(0,B.kA)(w,{fallback:!0}),1===k.length){let b=k[0].text||"";return(await c(aj(a,`The specialist worker produced this answer for the subtask "${k[0].subtask?.title||""}". Output it verbatim to the user, adjusting only for formatting if needed:
|
|
8
8
|
|
|
9
|
-
${b}`),s,{role:"manager"})).response}return(await c(a,s,{role:"manager"})).response}let m=l?await N({runId:w,strategy:{subtasks:i},workerOutputs:k,staffModel:g,auditModel:h,body:a,handleSingleModel:c,cfg:r,log:d,runBudget:n}):await S({strategy:{subtasks:i},workerOutputs:k,staffModel:g,auditModel:h,body:a,handleSingleModel:c,cfg:r,log:d,runBudget:n}),o=m?E(m,t):E(k.map(a=>a.text).join("\n\n---\n\n"),t),u=ah(a,o);if(d?.info?.("SWARM",`Synthesizing final answer from ${k.length} worker outputs`),w){(0,z._5)(w,"synthesis",{model:s});let a=(await c(u,s,{role:"manager"})).response;if(a?.body){let b=a.body,c=new ReadableStream({start(a){let c=b.getReader(),d=()=>c.read().then(({done:b,value:c})=>{if(b){a.close(),(0,z.SH)(w,"synthesis"),(0,z.kA)(w,{workerCount:k.length});return}return a.enqueue(c),d()}).catch(()=>{try{a.close()}catch{}(0,z.SH)(w,"synthesis"),(0,z.kA)(w,{workerCount:k.length})});d()},cancel(a){(0,z.SH)(w,"synthesis"),(0,z.kA)(w,{workerCount:k.length})}});return new Response(c,{status:a.status,statusText:a.statusText,headers:a.headers})}return(0,z.SH)(w,"synthesis"),(0,z.kA)(w,{workerCount:k.length}),a}return(await c(u,s,{role:"manager"})).response}catch(b){return d?.error?.("SWARM",`Swarm failed: ${b?.message||b}`),w&&(0,z.bt)(w,b),(await c(a,s,{role:"manager"})).response}}async function P({body:a,managerModel:b,handleSingleModel:c,cfg:d,log:e}){let f=ah(w(H(a)),B);try{let a=await aj(c(f,b,{isPanel:!0,role:"gatekeeper"}),d.managerTimeoutMs);if(a?.__timeout||a?.__error)return"complex";let e=ag(await a.response.clone().json().catch(()=>({})));return/VERDICT:\s*SIMPLE/i.test(e)?"simple":"complex"}catch{return"complex"}}async function Q({body:a,managerModel:b,handleSingleModel:c,cfg:d,log:e}){let f=F(a),g=ah(w(H(a)),C(f));try{let a=await aj(c(g,b,{isPanel:!0,role:"manager"}),d.managerTimeoutMs);if(a?.__timeout||a?.__error)return null;let e=ag(await a.response.clone().json().catch(()=>({})));return G(e)}catch{return null}}async function R({strategy:a,models:b,body:c,handleSingleModel:d,cfg:e,log:f,runBudget:g}){let h=b.filter(Boolean);if(0===h.length)return[];let i=a.subtasks.map((a,b)=>{let f=h[b%h.length];return aj(d(ah(H(c),y(a)),f,{isPanel:!0,role:"worker"}),e.workerHardTimeoutMs).then(async b=>{if(b?.__timeout||b?.__error||!b?.success)return{ok:!1,text:""};let c=ag(await b.response.clone().json().catch(()=>({}))),d=g?g.clampOutput(c):c;return c&&!d?{ok:!1,text:""}:{ok:!0,text:d,subtask:a}}).catch(()=>({ok:!1,text:""}))}),j=await ak(i,{minPanel:Math.min(e.workerQuorum,i.length),stragglerGraceMs:e.stragglerGraceMs,panelHardTimeoutMs:e.workerHardTimeoutMs}),k=[];for(let a of j)a&&a.ok&&a.text&&k.push({subtask:a.subtask,text:a.text});return k}async function S({strategy:a,workerOutputs:b,staffModel:c,auditModel:d,body:e,handleSingleModel:f,cfg:g,log:h,runBudget:i}){let j=c||d;if(!j)return null;let k=a.subtasks.map(a=>{let c=b.find(b=>b.subtask===a);return{...a,output:c?.text||"(no output)"}}),l=ah(w(H(e)),D(k));try{let a=await aj(f(l,j,{isPanel:!0,role:"audit"}),g.managerTimeoutMs);if(a?.__timeout||a?.__error)return null;let b=ag(await a.response.clone().json().catch(()=>({})));return i?i.clampOutput(b):b}catch{return null}}let T=new Set(["vision","pdf","audioInput","videoInput"]);async function U(a,b){if(!Array.isArray(a)||a.length<=1)return{active:a||[],skipped:[]};let d=[],e=[];for(let f of a){let a="string"==typeof f?f.indexOf("/"):-1,g=a>0?f.slice(0,a):"",i=g?(0,j.g2)(g):"";if(i&&(0,h.GK)(i,b))e.push(f);else if(i){let a=null;try{let{getProviderHealth:b}=await c.e(5628).then(c.bind(c,15628));a=b(i)}catch{}a&&a.total>=10&&null!==a.successRate&&a.successRate<.5?e.push(f):d.push(f)}else d.push(f)}return 0===d.length?{active:a,skipped:[]}:{active:d,skipped:e}}let V="[Called tools: ",W="[Tool result: ";function X(a){return a.filter(a=>a).map(a=>{if("tool"===a.role||"function"===a.role)return{role:"assistant",content:`${W}${(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":""}${V}${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":""}${V}${c.join(", ")}]`),d.length>0&&(f=`${f}${f?"\n":""}${W}${d.join("\n")}]`),{...e,content:f}}}return a})}function Y(a){let b="string"==typeof a?a.indexOf("/"):-1,c=b>0?(0,j.g2)(a.slice(0,b)):"",d=b>0?a.slice(b+1):a;return(0,f.getCapabilitiesForModel)(c,d)}let Z="oc/mimo-v2.5-free";function $(a,b,c=""){if(!Array.isArray(a)||0===a.length)return a;let d=[...b||[]].filter(a=>T.has(a));if(0===d.length)return a;let e=a=>{let b=Y(a);return d.every(a=>!0===b[a])};return a.some(e)||!c||a.includes(c)||!e(c)?a:[c,...a]}let _=new Map;function aa(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 ab(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"),("audio_url"===c||"audio"===c||"input_audio"===c)&&b.add("audioInput"),("video_url"===c||"video"===c||"input_video"===c)&&b.add("videoInput"),("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"),"string"==typeof d&&(d.startsWith("audio/")||"application/ogg"===d)&&b.add("audioInput"),"string"==typeof d&&(d.startsWith("video/")||"application/mp4"===d)&&b.add("videoInput"),"application/pdf"===d&&b.add("pdf")},d=a=>{if(Array.isArray(a))for(let b of a)c(b)};for(let b of aa(a.messages))d(b.content);for(let b of aa(a.input))d(b.content);for(let b of aa(a.contents||a.request?.contents))d(b.parts);return b}function ac(a){a?_.delete(a):_.clear()}function ad(a,b){if(a.includes("/"))return null;let c=(Array.isArray(b)?b:b?.combos||[]).find(b=>b.name===a);return c&&c.models&&c.models.length>0?c.models:null}function ae(a){if(!a||!a.response)return!1;if(/^text\/event-stream/.test(a.response.headers?.get?.("content-type")||""))return!0===a.success;let b=a.canonicalAttempt;return b?!0===b.logicalSuccess:!0===a.success}async function af({body:a,models:b,handleSingleModel:c,log:f,comboName:g,comboStrategy:h,comboStickyLimit:i=1,autoSwitch:j=!0,breakerSettings:k=null,signal:l,runBudget:m,onModelServed:n}){if("fusion"===h||"swarm"===h||"cascade"===h)return f.warn("COMBO",`Combo "${g}" strategy ${h} not supported here (fallback/round-robin only)`),new Response(JSON.stringify({error:{message:`Combo strategy "${h}" is only supported for chat requests`,type:"invalid_request_error",code:"combo_strategy_not_supported"}}),{status:400,headers:{"Content-Type":"application/json"}});let o=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=_.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?_.set(f,{index:(i+1)%a.length,consecutiveUseCount:0}):_.set(f,{index:i,consecutiveUseCount:k}),j}(b,g,h,i);if(k){let{active:a,skipped:b}=await U(o,k);b.length>0&&(f.info("COMBO",`breaker pre-filter: skipped ${b.length} open-breaker model(s) [${b.join(", ")}]`),o=a)}if(j){let b=ab(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=>T.has(a)),d=[...b].filter(a=>!T.has(a));return a.map((a,b)=>{let e;return{m:a,i:b,t:(e=Y(a),c.every(a=>!0===e[a])?+!d.every(a=>!0===e[a]):2)}}).sort((a,b)=>a.t-b.t||a.i-b.i).map(a=>a.m)}(o,b);a[0]!==o[0]&&f.info("COMBO",`auto-switch for [${[...b].join(",")}] → ${a[0]}`),o=a}}let p=null,q=null,r=null;for(let b=0;b<o.length;b++){let e=o[b];f.info("COMBO",`Trying model ${b+1}/${o.length}: ${e}`);try{let b,g=await c(a,e,{role:"worker"});if(ae(g))return f.info("COMBO",`Model ${e} succeeded`),"function"==typeof n&&n(e),g.response;let h=g.status??g.response?.status,i=g.error||"",j=null;try{let a=await g.response.clone().json();i=a?.error?.message||a?.error||a?.message||i,j=a?.retryAfter||null}catch{}if(j&&(!q||new Date(j)<new Date(q))&&(q=j),"string"!=typeof i)try{i=JSON.stringify(i)}catch{i=String(i)}let k=0,l=g.canonicalAttempt,m=l&&"unknown"!==l.completionState?l.policy:null;if(m)(b=!0!==m.stopProgression&&!0===m.fallbackEligible)&&(k=(0,d.hk)(h,i).cooldownMs);else{f.warn("COMBO",`Legacy fallback bridge used (no finalized canonical policy) for ${e}`,{status:h});let a=[400,405,406,413,415,422].includes(h);({shouldFallback:b,cooldownMs:k}=a?{shouldFallback:!1,cooldownMs:0}:(0,d.hk)(h,i))}if(!b)return f.warn("COMBO",`Model ${e} failed (no fallback)`,{status:h}),g.response;k&&k>0&&k<=5e3&&(503===h||502===h||504===h)&&(f.info("COMBO",`Model ${e} transient ${h}, waiting ${k}ms before next`),await new Promise(a=>setTimeout(a,k))),p=i||String(h),r||(r=h),f.warn("COMBO",`Model ${e} failed, trying next`,{status:h})}catch(a){p=a.message||String(a),r||(r=500),f.warn("COMBO",`Model ${e} threw error, trying next`,{error:p})}}let s=p&&p.toLowerCase().includes("no credentials"),t=null==r||0===r||r>=400,u=s?503:t&&r||503,v=p||"All combo models unavailable";if(q){let a=(0,d.Qo)(q);return f.warn("COMBO",`All models failed | ${v} (${a})`),(0,e.wO)(u,v,q,a)}return f.warn("COMBO",`All models failed | ${v}`),new Response(JSON.stringify({error:{message:v,type:"server_error",code:"all_models_failed"}}),{status:u,headers:{"Content-Type":"application/json"}})}function ag(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 ah(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 ai={minPanel:2,stragglerGraceMs:8e3,panelHardTimeoutMs:9e4};function aj(a,b,c){return"function"==typeof a?k(a,b,c).promise: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 ak(a,{minPanel:b,stragglerGraceMs:c,panelHardTimeoutMs:d,onFinish:e}){return new Promise(f=>{let g=Array(a.length),h=0,i=0,j=!1,k=null,l=()=>{j||(j=!0,clearTimeout(m),k&&clearTimeout(k),e?.(),f(g))},m=setTimeout(l,d);a.forEach((d,e)=>{Promise.resolve(d).then(a=>{g[e]=a}).catch(a=>{g[e]={__error:a}}).finally(()=>{h++;let d=g[e];if(d&&(!0===d.success||void 0===d.success&&!0===d.ok)&&i++,h===a.length)return l();i>=b&&!k&&(k=setTimeout(l,c))})})})}async function al({body:a,models:b,handleSingleModel:c,log:d,comboName:e,config:f,signal:g,runBudget:h,breakerSettings:i,telemetry:j=!0}){let k,l=Array.isArray(b)?b.filter(Boolean):[];if(0===l.length)return new Response(JSON.stringify({error:{message:"Smart Routing combo has no models"}}),{status:400,headers:{"Content-Type":"application/json"}});let m=(0,s.a$)(a),n=j?(0,t.Fk)({comboName:e,promptPreview:m,lastUserMessage:m}).runId:null,o=(a,...b)=>{n&&a(n,...b)},p=null,q=(0,s.lN)({config:f,handleSingleModel:c,log:d,onIntent:a=>{p=a}});try{k=await (0,s.MS)({body:a,members:l,config:f,resolveIntent:q})}catch(a){d.warn("SMART",`Combo "${e}" routing failed (${a?.message||a}) — using default order`),k={order:l,reason:"general",details:{}},o(t.bt,`routing failed: ${a?.message||a}`)}let{order:r,reason:u,details:v}=k;d.info("SMART",`Combo "${e}" routing=${u} → [${r.join(", ")}]`),v?.excludedCookies?.length&&d.info("SMART",`Combo "${e}" tool_calling: excluded cookie models [${v.excludedCookies.join(", ")}]`),o(t.mU,{reason:u,order:r,...v,intent:p});try{let b=await af({body:a,models:r,handleSingleModel:c,log:d,comboName:e,comboStrategy:"fallback",breakerSettings:i,signal:g,runBudget:h,onModelServed:a=>o(t.kc,a)});if(!n)return b;if(!b.ok){let a=b.statusText||"all models failed";try{let c=await b.clone().json();a=c?.error?.message||a}catch{}return(0,t.bt)(n,a||"all models failed"),b}if(b.body){let a=b.body,c=new ReadableStream({start(b){let c=a.getReader(),d=()=>c.read().then(({done:a,value:c})=>{if(a){b.close(),(0,t.kA)(n);return}return b.enqueue(c),d()}).catch(()=>{try{b.close()}catch{}(0,t.kA)(n)});d()},cancel(){(0,t.kA)(n)}});return new Response(c,{status:b.status,statusText:b.statusText,headers:b.headers})}return(0,t.kA)(n),b}catch(a){throw n&&(0,t.bt)(n,a?.message||a),a}}async function am({body:a,models:b,handleSingleModel:c,log:d,comboName:e,judgeModel:f,tuning:g,signal:h,runBudget:j}){let l,o=Array.isArray(b)?b.filter(Boolean):[];if(0===o.length)return new Response(JSON.stringify({error:{message:"Fusion combo has no models"}}),{status:400,headers:{"Content-Type":"application/json"}});if(1===o.length)return(await c(a,o[0],{role:"judge"})).response;let p=(0,i.Ub)("fusion",{judgeModel:f},o);if(p.length>0){let a=p.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 s={...ai,...g||{}},t=Math.min(Math.max(2,s.minPanel),o.length),u=f&&f.trim()?f.trim():o[0];d.info("FUSION",`Combo "${e}" | panel=${o.length} [${o.join(", ")}] | judge=${u} | quorum=${t}`);let v=async(a,b)=>{let c=k(a,s.panelHardTimeoutMs,h),e=await c.promise;if(c.cleanup(),e?.__error?.name==="AbortError")throw e.__error;return e?.__timeout?(d.warn("FUSION",`${b} timed out after ${s.panelHardTimeoutMs}ms`),new Response(JSON.stringify({error:{message:`${b} timed out`}}),{status:504,headers:{"Content-Type":"application/json"}})):e?.__error?(d.warn("FUSION",`${b} error: ${e.__error?.message||e.__error}`),new Response(JSON.stringify({error:{message:`${b} failed: ${e.__error?.message||"unknown error"}`}}),{status:502,headers:{"Content-Type":"application/json"}})):e},w=m(a),x=q(a,w),y=o.map(a=>k(b=>c(x,a,{isPanel:!0,signal:b,trafficClass:"panel",role:"panel"}),s.panelHardTimeoutMs,h)),z=Date.now(),A=await ak(y.map(a=>a.promise),{...s,minPanel:t,onFinish:()=>y.forEach(a=>a.abort("fusion panel closed"))});y.forEach(a=>a.cleanup()),d.info("FUSION",`fan-out collected in ${Date.now()-z}ms`);let B=[];for(let a=0;a<A.length;a++){let b=A[a],c=o[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(!ae(b)){d.warn("FUSION",`Panel ${c} failed`,{status:b.status??b.response?.status});continue}try{let a=await b.response.clone().json(),e=ag(a);if(e){let a=j?j.clampOutput(e):e;if(!a){d.warn("FUSION",`Panel ${c} exceeded output budget`);continue}B.push({model:c,text:a,res:b}),d.info("FUSION",`Panel ${c} ok (${e.length} chars)`)}else d.warn("FUSION",`Panel ${c} returned empty content`)}catch(a){d.warn("FUSION",`Panel ${c} unparseable`,{error:a.message||String(a)})}}if(0===B.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===B.length)return a?.stream===!0?(d.info("FUSION",`Only ${B[0].model} succeeded — re-running with stream:true to honor client SSE request (no fusion)`),v(b=>c(a,B[0].model,{role:"panel",signal:b,trafficClass:"user"}).then(a=>a.response),`Re-run ${B[0].model}`)):(d.info("FUSION",`Only ${B[0].model} succeeded — returning its response directly (no fusion, no re-run)`),B[0].res.response);let C=j?.limits?.maxOutputChars||12e4,D=n(a,r((l=B.map((a,b)=>`[Source ${b+1}]
|
|
10
|
-
${a.text}`).join("\n\n"),[`You are the JUDGE in a model-fusion panel. ${B.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 ===",l,"=== END PANEL RESPONSES ===\n\nNow write the final answer to the user's original request."].join("\n")),C),w);return d.info("FUSION",`Judging ${B.length} answers with ${u}`),v(a=>c(D,u,{role:"judge",signal:a,trafficClass:"user"}).then(a=>a.response),`Judge ${u}`)}let
|
|
9
|
+
${b}`),s,{role:"manager"})).response}return(await c(a,s,{role:"manager"})).response}let m=l?await P({runId:w,strategy:{subtasks:i},workerOutputs:k,staffModel:g,auditModel:h,body:a,handleSingleModel:c,cfg:r,log:d,runBudget:n}):await U({strategy:{subtasks:i},workerOutputs:k,staffModel:g,auditModel:h,body:a,handleSingleModel:c,cfg:r,log:d,runBudget:n}),o=m?G(m,t):G(k.map(a=>a.text).join("\n\n---\n\n"),t),u=aj(a,o);if(d?.info?.("SWARM",`Synthesizing final answer from ${k.length} worker outputs`),w){(0,B._5)(w,"synthesis",{model:s});let a=(await c(u,s,{role:"manager"})).response;if(a?.body){let b=a.body,c=new ReadableStream({start(a){let c=b.getReader(),d=()=>c.read().then(({done:b,value:c})=>{if(b){a.close(),(0,B.SH)(w,"synthesis"),(0,B.kA)(w,{workerCount:k.length});return}return a.enqueue(c),d()}).catch(()=>{try{a.close()}catch{}(0,B.SH)(w,"synthesis"),(0,B.kA)(w,{workerCount:k.length})});d()},cancel(a){(0,B.SH)(w,"synthesis"),(0,B.kA)(w,{workerCount:k.length})}});return new Response(c,{status:a.status,statusText:a.statusText,headers:a.headers})}return(0,B.SH)(w,"synthesis"),(0,B.kA)(w,{workerCount:k.length}),a}return(await c(u,s,{role:"manager"})).response}catch(b){return d?.error?.("SWARM",`Swarm failed: ${b?.message||b}`),w&&(0,B.bt)(w,b),(await c(a,s,{role:"manager"})).response}}async function R({body:a,managerModel:b,handleSingleModel:c,cfg:d,log:e}){let f=aj(y(J(a)),D);try{let a=await al(c(f,b,{isPanel:!0,role:"gatekeeper"}),d.managerTimeoutMs);if(a?.__timeout||a?.__error)return"complex";let e=ai(await a.response.clone().json().catch(()=>({})));return/VERDICT:\s*SIMPLE/i.test(e)?"simple":"complex"}catch{return"complex"}}async function S({body:a,managerModel:b,handleSingleModel:c,cfg:d,log:e}){let f=H(a),g=aj(y(J(a)),E(f));try{let a=await al(c(g,b,{isPanel:!0,role:"manager"}),d.managerTimeoutMs);if(a?.__timeout||a?.__error)return null;let e=ai(await a.response.clone().json().catch(()=>({})));return I(e)}catch{return null}}async function T({strategy:a,models:b,body:c,handleSingleModel:d,cfg:e,log:f,runBudget:g}){let h=b.filter(Boolean);if(0===h.length)return[];let i=a.subtasks.map((a,b)=>{let f=h[b%h.length];return al(d(aj(J(c),A(a)),f,{isPanel:!0,role:"worker"}),e.workerHardTimeoutMs).then(async b=>{if(b?.__timeout||b?.__error||!b?.success)return{ok:!1,text:""};let c=ai(await b.response.clone().json().catch(()=>({}))),d=g?g.clampOutput(c):c;return c&&!d?{ok:!1,text:""}:{ok:!0,text:d,subtask:a}}).catch(()=>({ok:!1,text:""}))}),j=await am(i,{minPanel:Math.min(e.workerQuorum,i.length),stragglerGraceMs:e.stragglerGraceMs,panelHardTimeoutMs:e.workerHardTimeoutMs}),k=[];for(let a of j)a&&a.ok&&a.text&&k.push({subtask:a.subtask,text:a.text});return k}async function U({strategy:a,workerOutputs:b,staffModel:c,auditModel:d,body:e,handleSingleModel:f,cfg:g,log:h,runBudget:i}){let j=c||d;if(!j)return null;let k=a.subtasks.map(a=>{let c=b.find(b=>b.subtask===a);return{...a,output:c?.text||"(no output)"}}),l=aj(y(J(e)),F(k));try{let a=await al(f(l,j,{isPanel:!0,role:"audit"}),g.managerTimeoutMs);if(a?.__timeout||a?.__error)return null;let b=ai(await a.response.clone().json().catch(()=>({})));return i?i.clampOutput(b):b}catch{return null}}let V=new Set(["vision","pdf","audioInput","videoInput"]);async function W(a,b){if(!Array.isArray(a)||a.length<=1)return{active:a||[],skipped:[]};let d=[],e=[];for(let f of a){let a="string"==typeof f?f.indexOf("/"):-1,g=a>0?f.slice(0,a):"",i=g?(0,j.g2)(g):"";if(i&&(0,h.GK)(i,b))e.push(f);else if(i){let a=null;try{let{getProviderHealth:b}=await c.e(5628).then(c.bind(c,15628));a=b(i)}catch{}a&&a.total>=10&&null!==a.successRate&&a.successRate<.5?e.push(f):d.push(f)}else d.push(f)}return 0===d.length?{active:a,skipped:[]}:{active:d,skipped:e}}let X="[Called tools: ",Y="[Tool result: ";function Z(a){return a.filter(a=>a).map(a=>{if("tool"===a.role||"function"===a.role)return{role:"assistant",content:`${Y}${(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":""}${X}${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":""}${X}${c.join(", ")}]`),d.length>0&&(f=`${f}${f?"\n":""}${Y}${d.join("\n")}]`),{...e,content:f}}}return a})}function $(a){let b="string"==typeof a?a.indexOf("/"):-1,c=b>0?(0,j.g2)(a.slice(0,b)):"",d=b>0?a.slice(b+1):a;return(0,f.getCapabilitiesForModel)(c,d)}let _="oc/mimo-v2.5-free";function aa(a,b,c=""){if(!Array.isArray(a)||0===a.length)return a;let d=[...b||[]].filter(a=>V.has(a));if(0===d.length)return a;let e=a=>{let b=$(a);return d.every(a=>!0===b[a])};return a.some(e)||!c||a.includes(c)||!e(c)?a:[c,...a]}let ab=new Map;function ac(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 ad(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"),("audio_url"===c||"audio"===c||"input_audio"===c)&&b.add("audioInput"),("video_url"===c||"video"===c||"input_video"===c)&&b.add("videoInput"),("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"),"string"==typeof d&&(d.startsWith("audio/")||"application/ogg"===d)&&b.add("audioInput"),"string"==typeof d&&(d.startsWith("video/")||"application/mp4"===d)&&b.add("videoInput"),"application/pdf"===d&&b.add("pdf")},d=a=>{if(Array.isArray(a))for(let b of a)c(b)};for(let b of ac(a.messages))d(b.content);for(let b of ac(a.input))d(b.content);for(let b of ac(a.contents||a.request?.contents))d(b.parts);return b}function ae(a){a?ab.delete(a):ab.clear()}function af(a,b){if(a.includes("/"))return null;let c=(Array.isArray(b)?b:b?.combos||[]).find(b=>b.name===a);return c&&c.models&&c.models.length>0?c.models:null}function ag(a){if(!a||!a.response)return!1;if(/^text\/event-stream/.test(a.response.headers?.get?.("content-type")||""))return!0===a.success;let b=a.canonicalAttempt;return b?!0===b.logicalSuccess:!0===a.success}async function ah({body:a,models:b,handleSingleModel:c,log:f,comboName:g,comboStrategy:h,comboStickyLimit:i=1,autoSwitch:j=!0,breakerSettings:k=null,signal:l,runBudget:m,onModelServed:n}){if("fusion"===h||"swarm"===h||"cascade"===h)return f.warn("COMBO",`Combo "${g}" strategy ${h} not supported here (fallback/round-robin only)`),new Response(JSON.stringify({error:{message:`Combo strategy "${h}" is only supported for chat requests`,type:"invalid_request_error",code:"combo_strategy_not_supported"}}),{status:400,headers:{"Content-Type":"application/json"}});let o=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=ab.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?ab.set(f,{index:(i+1)%a.length,consecutiveUseCount:0}):ab.set(f,{index:i,consecutiveUseCount:k}),j}(b,g,h,i);if(k){let{active:a,skipped:b}=await W(o,k);b.length>0&&(f.info("COMBO",`breaker pre-filter: skipped ${b.length} open-breaker model(s) [${b.join(", ")}]`),o=a)}if(j){let b=ad(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=>V.has(a)),d=[...b].filter(a=>!V.has(a));return a.map((a,b)=>{let e;return{m:a,i:b,t:(e=$(a),c.every(a=>!0===e[a])?+!d.every(a=>!0===e[a]):2)}}).sort((a,b)=>a.t-b.t||a.i-b.i).map(a=>a.m)}(o,b);a[0]!==o[0]&&f.info("COMBO",`auto-switch for [${[...b].join(",")}] → ${a[0]}`),o=a}}let p=null,q=null,r=null,s=null,t=async({forensic:a,result:b=null,attempt:c=null,fallbackDecision:d})=>{if(!a?.attemptId||!a?.requestId)return;let e={...a,status:b?.status??b?.response?.status??null,classification:c?.classification||null,reason:c?.reason||null,outcome:c?.outcome||null,logicalSuccess:c?.logicalSuccess===!0,completionState:c?.completionState||null,completionType:c?.completionType||null,terminalState:c?.terminalState||null,terminalType:c?.terminalType||null,finishReason:c?.finishReason||null,usableOutput:c?.usableOutput===!0,fallbackDecision:d,streamObservability:b?.streamObservability||null,canonicalAttempt:c||null};await (0,u.ox)({id:a.requestId,provider:a.physicalProviderId||null,model:a.physicalModel||null,status:c?(0,v.YI)(c):e.status>=400?"error":"incomplete",combo:{name:g,strategy:h},correlation:a,attempts:[e]}).catch(()=>{})};for(let b=0;b<o.length;b++){let e=o[b];f.info("COMBO",`Trying model ${b+1}/${o.length}: ${e}`);try{let g,h=await c(a,e,{role:"worker",candidateIndex:b,candidateOrder:[...o]}),i=h?.correlation,j=h?.canonicalAttempt;if(ag(h))return await t({forensic:i,result:h,attempt:j,fallbackDecision:"served"}),f.info("COMBO",`Model ${e} succeeded`),"function"==typeof n&&n(e),h.response;let k=h.status??h.response?.status,l=h.error||"",m=null;try{let a=await h.response.clone().json();l=a?.error?.message||a?.error||a?.message||l,m=a?.retryAfter||null}catch{}if(m&&(!q||new Date(m)<new Date(q))&&(q=m),"string"!=typeof l)try{l=JSON.stringify(l)}catch{l=String(l)}let u=0,v=j&&"unknown"!==j.completionState?j.policy:null;if(v)(g=!0!==v.stopProgression&&!0===v.fallbackEligible)&&(u=(0,d.hk)(k,l).cooldownMs);else{f.warn("COMBO",`Legacy fallback bridge used (no finalized canonical policy) for ${e}`,{status:k});let a=[400,405,406,413,415,422].includes(k);({shouldFallback:g,cooldownMs:u}=a?{shouldFallback:!1,cooldownMs:0}:(0,d.hk)(k,l))}if(!g)return await t({forensic:i,result:h,attempt:j,fallbackDecision:"stopped"}),f.warn("COMBO",`Model ${e} failed (no fallback)`,{status:k}),h.response;u&&u>0&&u<=5e3&&(503===k||502===k||504===k)&&(f.info("COMBO",`Model ${e} transient ${k}, waiting ${u}ms before next`),await new Promise(a=>setTimeout(a,u))),await t({forensic:i,result:h,attempt:j,fallbackDecision:"fallback"}),p=l||String(k),r||(r=k),s=`${i?.physicalModel||e}: ${j?.classification||"failed"}${j?.reason?`/${j.reason}`:""}${j?.finishReason?` (finish_reason=${j.finishReason})`:""}`,f.warn("COMBO",`Model ${e} failed, trying next`,{status:k})}catch(a){p=a.message||String(a),r||(r=500),f.warn("COMBO",`Model ${e} threw error, trying next`,{error:p}),await t({forensic:a?.forensic,result:{status:500},attempt:{classification:"transport_failure",reason:"execution_exception",outcome:"failure",logicalSuccess:!1,completionState:"failure",completionType:"execution_exception",errorSeen:!0},fallbackDecision:b<o.length-1?"fallback":"stopped"})}}let w=p&&p.toLowerCase().includes("no credentials"),x=null==r||0===r||r>=400,y=w?503:x&&r||503,z=p&&p!==String(r)?p:s?`All combo models failed — last candidate ${s}`:"All combo models unavailable";if(q){let a=(0,d.Qo)(q);return f.warn("COMBO",`All models failed | ${z} (${a})`),(0,e.wO)(y,z,q,a)}return f.warn("COMBO",`All models failed | ${z}`),new Response(JSON.stringify({error:{message:z,type:"server_error",code:"all_models_failed"}}),{status:y,headers:{"Content-Type":"application/json"}})}function ai(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 aj(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 ak={minPanel:2,stragglerGraceMs:8e3,panelHardTimeoutMs:9e4};function al(a,b,c){return"function"==typeof a?k(a,b,c).promise: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 am(a,{minPanel:b,stragglerGraceMs:c,panelHardTimeoutMs:d,onFinish:e}){return new Promise(f=>{let g=Array(a.length),h=0,i=0,j=!1,k=null,l=()=>{j||(j=!0,clearTimeout(m),k&&clearTimeout(k),e?.(),f(g))},m=setTimeout(l,d);a.forEach((d,e)=>{Promise.resolve(d).then(a=>{g[e]=a}).catch(a=>{g[e]={__error:a}}).finally(()=>{h++;let d=g[e];if(d&&(!0===d.success||void 0===d.success&&!0===d.ok)&&i++,h===a.length)return l();i>=b&&!k&&(k=setTimeout(l,c))})})})}async function an({body:a,models:b,handleSingleModel:c,log:d,comboName:e,config:f,signal:g,runBudget:h,breakerSettings:i,telemetry:j=!0}){let k,l=Array.isArray(b)?b.filter(Boolean):[];if(0===l.length)return new Response(JSON.stringify({error:{message:"Smart Routing combo has no models"}}),{status:400,headers:{"Content-Type":"application/json"}});let m=(0,s.a$)(a),n=j?(0,t.Fk)({comboName:e,promptPreview:m,lastUserMessage:m}).runId:null,o=(a,...b)=>{n&&a(n,...b)},p=null,q=(0,s.lN)({config:f,handleSingleModel:c,log:d,onIntent:a=>{p=a}});try{k=await (0,s.MS)({body:a,members:l,config:f,resolveIntent:q})}catch(a){d.warn("SMART",`Combo "${e}" routing failed (${a?.message||a}) — using default order`),k={order:l,reason:"general",details:{}},o(t.bt,`routing failed: ${a?.message||a}`)}let{order:r,reason:u,details:v}=k;d.info("SMART",`Combo "${e}" routing=${u} → [${r.join(", ")}]`),v?.excludedCookies?.length&&d.info("SMART",`Combo "${e}" tool_calling: excluded cookie models [${v.excludedCookies.join(", ")}]`),o(t.mU,{reason:u,order:r,...v,intent:p});try{let b=await ah({body:a,models:r,handleSingleModel:c,log:d,comboName:e,comboStrategy:"fallback",breakerSettings:i,signal:g,runBudget:h,onModelServed:a=>o(t.kc,a)});if(!n)return b;if(!b.ok){let a=b.statusText||"all models failed";try{let c=await b.clone().json();a=c?.error?.message||a}catch{}return(0,t.bt)(n,a||"all models failed"),b}if(b.body){let a=b.body,c=new ReadableStream({start(b){let c=a.getReader(),d=()=>c.read().then(({done:a,value:c})=>{if(a){b.close(),(0,t.kA)(n);return}return b.enqueue(c),d()}).catch(()=>{try{b.close()}catch{}(0,t.kA)(n)});d()},cancel(){(0,t.kA)(n)}});return new Response(c,{status:b.status,statusText:b.statusText,headers:b.headers})}return(0,t.kA)(n),b}catch(a){throw n&&(0,t.bt)(n,a?.message||a),a}}async function ao({body:a,models:b,handleSingleModel:c,log:d,comboName:e,judgeModel:f,tuning:g,signal:h,runBudget:j}){let l,o=Array.isArray(b)?b.filter(Boolean):[];if(0===o.length)return new Response(JSON.stringify({error:{message:"Fusion combo has no models"}}),{status:400,headers:{"Content-Type":"application/json"}});if(1===o.length)return(await c(a,o[0],{role:"judge"})).response;let p=(0,i.Ub)("fusion",{judgeModel:f},o);if(p.length>0){let a=p.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 s={...ak,...g||{}},t=Math.min(Math.max(2,s.minPanel),o.length),u=f&&f.trim()?f.trim():o[0];d.info("FUSION",`Combo "${e}" | panel=${o.length} [${o.join(", ")}] | judge=${u} | quorum=${t}`);let v=async(a,b)=>{let c=k(a,s.panelHardTimeoutMs,h),e=await c.promise;if(c.cleanup(),e?.__error?.name==="AbortError")throw e.__error;return e?.__timeout?(d.warn("FUSION",`${b} timed out after ${s.panelHardTimeoutMs}ms`),new Response(JSON.stringify({error:{message:`${b} timed out`}}),{status:504,headers:{"Content-Type":"application/json"}})):e?.__error?(d.warn("FUSION",`${b} error: ${e.__error?.message||e.__error}`),new Response(JSON.stringify({error:{message:`${b} failed: ${e.__error?.message||"unknown error"}`}}),{status:502,headers:{"Content-Type":"application/json"}})):e},w=m(a),x=q(a,w),y=o.map(a=>k(b=>c(x,a,{isPanel:!0,signal:b,trafficClass:"panel",role:"panel"}),s.panelHardTimeoutMs,h)),z=Date.now(),A=await am(y.map(a=>a.promise),{...s,minPanel:t,onFinish:()=>y.forEach(a=>a.abort("fusion panel closed"))});y.forEach(a=>a.cleanup()),d.info("FUSION",`fan-out collected in ${Date.now()-z}ms`);let B=[];for(let a=0;a<A.length;a++){let b=A[a],c=o[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(!ag(b)){d.warn("FUSION",`Panel ${c} failed`,{status:b.status??b.response?.status});continue}try{let a=await b.response.clone().json(),e=ai(a);if(e){let a=j?j.clampOutput(e):e;if(!a){d.warn("FUSION",`Panel ${c} exceeded output budget`);continue}B.push({model:c,text:a,res:b}),d.info("FUSION",`Panel ${c} ok (${e.length} chars)`)}else d.warn("FUSION",`Panel ${c} returned empty content`)}catch(a){d.warn("FUSION",`Panel ${c} unparseable`,{error:a.message||String(a)})}}if(0===B.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===B.length)return a?.stream===!0?(d.info("FUSION",`Only ${B[0].model} succeeded — re-running with stream:true to honor client SSE request (no fusion)`),v(b=>c(a,B[0].model,{role:"panel",signal:b,trafficClass:"user"}).then(a=>a.response),`Re-run ${B[0].model}`)):(d.info("FUSION",`Only ${B[0].model} succeeded — returning its response directly (no fusion, no re-run)`),B[0].res.response);let C=j?.limits?.maxOutputChars||12e4,D=n(a,r((l=B.map((a,b)=>`[Source ${b+1}]
|
|
10
|
+
${a.text}`).join("\n\n"),[`You are the JUDGE in a model-fusion panel. ${B.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 ===",l,"=== END PANEL RESPONSES ===\n\nNow write the final answer to the user's original request."].join("\n")),C),w);return d.info("FUSION",`Judging ${B.length} answers with ${u}`),v(a=>c(D,u,{role:"judge",signal:a,trafficClass:"user"}).then(a=>a.response),`Judge ${u}`)}let ap={confidenceThreshold:70,confidencePrompt:"Rate your confidence in this answer from 0 to 100. End your response with exactly: CONFIDENCE: <number>",escalatePrompt:"A prior model gave the following answer with low confidence. Review it, correct any issues, and provide a better answer.",maxStages:3};async function aq({body:a,models:b,handleSingleModel:c,log:d,comboName:e,tuning:f,signal:g,runBudget:h}){let i=Array.isArray(b)?b.filter(Boolean):[];if(0===i.length)return new Response(JSON.stringify({error:{message:"Cascade combo has no models"}}),{status:400,headers:{"Content-Type":"application/json"}});let j={...ap,...f||{}},k=Math.min(Math.max(1,j.maxStages),i.length),l=m(a),o=q(a,l),p=null,s=null;for(let a=0;a<k;a++){var t;let b,e=i[a],f=a===k-1,m=o;m=null!=p?n(m,`${j.escalatePrompt}
|
|
11
11
|
|
|
12
12
|
--- Prior Answer (${s}) ---
|
|
13
13
|
${r(p,6e4)}
|
|
14
14
|
--- End Prior Answer ---
|
|
15
15
|
|
|
16
|
-
${j.confidencePrompt}`,l):n(m,j.confidencePrompt,l),d.info("CASCADE",`Stage ${a+1}/${k}: ${e}${p?" (escalated)":""}`);try{b=await c(m,e,{isPanel:!0,role:"worker",signal:g})}catch(b){if(b?.name==="AbortError")throw b;if(d.warn("CASCADE",`Stage ${a+1} (${e}) threw: ${b?.message||b}`),f)return new Response(JSON.stringify({error:{message:`Cascade failed at final stage: ${b?.message||"unknown"}`}}),{status:502,headers:{"Content-Type":"application/json"}});p=null,s=e;continue}if(b?.__timeout||b?.__error){if(d.warn("CASCADE",`Stage ${a+1} (${e}) ${b.__timeout?"timed out":"errored"}`),f)return new Response(JSON.stringify({error:{message:"Cascade failed at final stage"}}),{status:502,headers:{"Content-Type":"application/json"}});p=null,s=e;continue}if(!
|
|
16
|
+
${j.confidencePrompt}`,l):n(m,j.confidencePrompt,l),d.info("CASCADE",`Stage ${a+1}/${k}: ${e}${p?" (escalated)":""}`);try{b=await c(m,e,{isPanel:!0,role:"worker",signal:g})}catch(b){if(b?.name==="AbortError")throw b;if(d.warn("CASCADE",`Stage ${a+1} (${e}) threw: ${b?.message||b}`),f)return new Response(JSON.stringify({error:{message:`Cascade failed at final stage: ${b?.message||"unknown"}`}}),{status:502,headers:{"Content-Type":"application/json"}});p=null,s=e;continue}if(b?.__timeout||b?.__error){if(d.warn("CASCADE",`Stage ${a+1} (${e}) ${b.__timeout?"timed out":"errored"}`),f)return new Response(JSON.stringify({error:{message:"Cascade failed at final stage"}}),{status:502,headers:{"Content-Type":"application/json"}});p=null,s=e;continue}if(!ag(b)){if(d.warn("CASCADE",`Stage ${a+1} (${e}) returned status ${b?.status??b?.response?.status}`),f)return b.response;p=null,s=e;continue}if(f)return d.info("CASCADE",`Final stage (${e}) returning`),b.response;let q="";try{let a=await b.response.clone().json().catch(()=>({}));(q=ai(a))&&h&&(q=h.clampOutput(q))}catch{}let u=function(a){if(!a||"string"!=typeof a)return -1;let b=a.match(/CONFIDENCE:\s*(\d{1,3})\s*$/i);if(!b)return -1;let c=Number.parseInt(b[1],10);return Number.isFinite(c)&&c>=0&&c<=100?c:-1}(q);if(d.info("CASCADE",`Stage ${a+1} (${e}) confidence=${u}`),u>=0&&u>=j.confidenceThreshold)return d.info("CASCADE",`Stage ${a+1} confident (${u} ≥ ${j.confidenceThreshold}) — returning`),b.response;p=((t=q)&&"string"==typeof t?t.replace(/\s*CONFIDENCE:\s*\d{1,3}\s*$/i,"").trim():t)||q,s=e}return new Response(JSON.stringify({error:{message:"Cascade exhausted all stages"}}),{status:502,headers:{"Content-Type":"application/json"}})}}};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";exports.id=4828,exports.ids=[4828],exports.modules={12557:(a,b,c)=>{c.d(b,{Bl:()=>m,CR:()=>g,Fw:()=>f,Qo:()=>i,S5:()=>o,hk:()=>e,kJ:()=>n,zZ:()=>h});var d=c(3662);function e(a,b,c=0){if(499===a)return{shouldFallback:!1,cooldownMs:0};let f=b?("string"==typeof b?b:JSON.stringify(b)).toLowerCase():"";for(let b of d.t2)if(b.text&&f&&f.includes(b.text)||b.status&&b.status===a){if(b.backoff){let a=Math.min(c+1,d.EQ.maxLevel);return{shouldFallback:!0,cooldownMs:function(a=0){let b=Math.max(0,a-1);return Math.min(d.EQ.base*Math.pow(2,b),d.EQ.max)}(a),newBackoffLevel:a}}return{shouldFallback:!0,cooldownMs:b.cooldownMs}}return{shouldFallback:!0,cooldownMs:d.wf}}function f(a,b){if(402===a)return!0;let c="string"==typeof b?b:(()=>{try{return JSON.stringify(b)}catch{return String(b)}})();return/out of credits|credits.*(?:top up|billing|exhausted)|quota.*(?:exhausted|exceeded|reached)/i.test(c)}function g(a=new Date){let b=function(a=new Date){let b=new Date(a.getTime());return new Date(Date.UTC(b.getUTCFullYear(),b.getUTCMonth(),b.getUTCDate()+1,0,0,0,0))}(a);return{isActive:!1,rateLimitedUntil:b.toISOString(),testStatus:"quota_exhausted",lastErrorType:"quota_exhausted",errorCode:402,quotaExhaustedAt:a.toISOString(),quotaResetsAt:b.toISOString()}}function h(){return{isActive:!0,rateLimitedUntil:null,testStatus:"active",quotaExhaustedAt:null,quotaResetsAt:null}}function i(a){if(!a)return"";let b=new Date(a).getTime()-Date.now();if(b<=0)return"reset after 0s";let c=Math.ceil(b/1e3),d=Math.floor(c/3600),e=Math.floor(c%3600/60),f=c%60,g=[];return d>0&&g.push(`${d}h`),e>0&&g.push(`${e}m`),(f>0||0===g.length)&&g.push(`${f}s`),`reset after ${g.join(" ")}`}let j="modelLock_",k=`${j}__all`;function l(a){return a?`${j}${a}`:k}function m(a,b){let c=a[l(b)]||a[k];return!!c&&new Date(c).getTime()>Date.now()}function n(a){if(!a)return null;let b=null,c=Date.now();for(let[d,e]of Object.entries(a)){if(!d.startsWith(j)||!e)continue;let a=new Date(e).getTime();a<=c||(!b||a<b)&&(b=a)}return b?new Date(b).toISOString():null}function o(a,b){return{[l(a)]:new Date(Date.now()+b).toISOString()}}},18552:(a,b,c)=>{c.d(b,{PL:()=>i});var d=c(71553),e=c(76924);function f(a){let b=a.split(".");if(4!==b.length)return!0;let c=b.map(a=>Number.parseInt(a,10));if(c.some(a=>Number.isNaN(a)||a<0||a>255))return!0;let[d,e]=c;return 10===d||127===d||0===d||172===d&&e>=16&&e<=31||192===d&&168===e||169===d&&254===e||100===d&&e>=64&&e<=127||!1}function g(a){return String(a||"").toLowerCase().replace(/^\[|\]$/g,"").replace(/\.$/,"")}async function h(a){let b=g(a);if(!b||e.Xc.has(b))return null;try{let a=await (0,d.lookup)(b,{all:!0});if(!a.length||a.some(a=>(function(a){if(!a)return!0;let b=String(a).replace(/^\[|\]$/g,"").toLowerCase();if(b.includes(":")){if("::1"===b||"::"===b||b.startsWith("fc")||b.startsWith("fd")||b.startsWith("fe80"))return!0;let a=b.match(/::ffff:(\d+\.\d+\.\d+\.\d+)$/);return!!a&&f(a[1])}return f(b)})(a.address)))return null;return a}catch{return null}}async function i(a,b={}){let{signal:c,timeoutMs:d=e.MT,maxBytes:f,allowedTypes:j,headers:k}=b,l=f??0x20000000;if("string"!=typeof a||!a.startsWith("http://")&&!a.startsWith("https://"))return null;let m=g(new URL(a).hostname);if(e.Xc.has(m)||!await h(m))return null;let n=new AbortController,o=c?null:setTimeout(()=>n.abort(),d),p=c||n.signal,q=null;c&&(q=()=>n.abort(),c.addEventListener("abort",q,{once:!0}));try{let b=await fetch(a,{signal:p,redirect:"manual",...k&&"object"==typeof k?{headers:k}:{}});if(b.status>=300||!b.ok||!b.body)return null;let c=(b.headers.get("content-type")||"").split(";")[0].trim().toLowerCase();if(!c||!(j??e.s5).has(c))return null;let d=b.body.getReader(),f=[],g=0;for(;;){let{done:a,value:b}=await d.read();if(a)break;if((g+=b.length)>l){try{await d.cancel()}catch{}return null}f.push(b)}return{buffer:Buffer.concat(f),mimeType:c,url:a}}catch{return null}finally{clearTimeout(o),c&&q&&c.removeEventListener("abort",q)}}},70224:(a,b,c)=>{let d;c.d(b,{Cy:()=>k,ZK:()=>i,bX:()=>j});var e=c(77598),f=c(18552);let g=Symbol.for("extremerouter.mediaResultStore.map"),h=((d=globalThis)[g]&&d[g]instanceof Map||(d[g]=new Map),d[g]);function i(a){return`/api/v1/media/results/${a}`}function j({provider:a,mediaType:b="video",source:c,connectionId:d,contentType:f,ttlMs:g=18e5}){let i=(0,e.randomUUID)(),k=Date.now()+g;return h.set(i,{id:i,provider:a,mediaType:b,source:c,connectionId:d,contentType:f,expiresAt:k,createdAt:Date.now()}),{id:i,expiresAt:k}}async function k(a,b={}){let{nowMs:c=Date.now()}=b,d=h.get(a);if(!d)return{ok:!1,status:404,message:"Media result not found"};if("number"==typeof d.expiresAt&&c>d.expiresAt)return h.delete(a),{ok:!1,status:410,message:"Media result expired"};if("string"!=typeof d.source?.url||!d.source.url)return{ok:!1,status:502,message:"Media result has no source artifact"};let e=null,g=b.getCredentials;if(g)try{e=await g(d.provider,null,null,{preferredConnectionId:d.connectionId})}catch{e=null}let i={},j=e?.apiKey||e?.accessToken;e&&j&&(i.Authorization=`Bearer ${j}`);let l=await (0,f.PL)(d.source.url,{headers:i});return l?{ok:!0,buffer:l.buffer,mimeType:l.mimeType}:{ok:!1,status:502,message:"Failed to retrieve media artifact"}}}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";exports.id=
|
|
1
|
+
"use strict";exports.id=4987,exports.ids=[4987],exports.modules={783:(a,b,c)=>{c.d(b,{B0:()=>i,MS:()=>n,YJ:()=>h,a$:()=>j,lN:()=>m,xO:()=>k});var d=c(72436),e=c(40669);let f=["riset","research","cari sumber","sumber terpercaya","terbaru","compare","bandingkan","cite","summarize article","rangkum artikel","berita","trend","studi","jurnal","menurut data","investigate","look up","search the web","find information","web search"],g=new Set(d.default.filter(a=>"webCookie"===a.category).map(a=>a.id));function h(a){if("string"!=typeof a||!a)return!1;let b=a.indexOf("/"),c=b>0?a.slice(0,b):a;return g.has((0,e.g2)(c))}function i(a){if(!a||"object"!=typeof a)return!1;let b=Array.isArray(a.tools)&&a.tools.length>0,c=Array.isArray(a.request?.tools)&&a.request.tools.length>0,d=a.tool_choice,e=Array.isArray(a.functions)&&a.functions.length>0;return b||c||null!=d&&"none"!==d&&!1!==d&&"null"!==d||e}function j(a){if(!a||"object"!=typeof a)return"";let b=a.messages||a.input||(Array.isArray(a.contents)?a.contents:null);if(!Array.isArray(b))return"";for(let a=b.length-1;a>=0;a--){let d=b[a];if(d&&"object"==typeof d&&("user"===d.role||"human"===d.role)){var c;let a="string"==typeof(c=d.content)?c:Array.isArray(c)?c.map(a=>a&&"object"==typeof a?"string"==typeof a.text?a.text:"string"==typeof a.content?a.content:"":"").join("\n"):"";if(a.trim())return a}}return""}function k(a,b={}){let c=Array.isArray(b.keywords)?b.keywords:f,d=!1!==b.urlPatternBoost,e="string"==typeof a?a.toLowerCase():"";if(!e.trim())return{intent:"general",confidence:.4,signal:"empty"};let g=/https?:\/\/[^\s]+/.test(e),h=c.some(a=>e.includes(a));return h||d&&g?{intent:"research",confidence:.75,signal:h?"keyword":"url"}:{intent:"general",confidence:.4,signal:"none"}}async function l(a,b,c){let d=await a({model:b,messages:[{role:"user",content:c}],stream:!1},b,{role:"classifier",isPanel:!0,signal:AbortSignal.timeout(15e3)});if(!d?.success)throw Error(`classifier returned status ${d?.status??d?.response?.status}`);let e=await d.response.clone().json();return"research"===(String(e?.choices?.[0]?.message?.content??e?.choices?.[0]?.text??e?.content??e?.output?.[0]?.content?.[0]?.text??"").trim().toLowerCase().match(/[a-z]+/)||[""])[0]?"research":"general"}function m({config:a,handleSingleModel:b,log:c,onIntent:d}){let e=a&&a.intentDetection||{},f=e.llmClassifierFallback||{},g=Number.isFinite(e.confidenceThreshold)?e.confidenceThreshold:.6,h=a=>{try{d?.(a)}catch{}};return async a=>{let d=k(a,e);if(d.confidence>=g||!f.enabled||!b||!String(a||"").trim())return h({intent:d.intent,source:"heuristic",signal:d.signal,confidence:d.confidence,classifierModel:null}),d.intent;let i=f.model||"kr/claude-haiku-4.5",j=(f.promptTemplate||"Classify the following user task as one of: research, coding, general. Respond with a single word.\n\nTask: {{userPrompt}}").replace("{{userPrompt}}",String(a));try{let a=await l(b,i,j);if("research"===a)return c?.info?.("SMART",`intent classifier (${i}) → research`),h({intent:"research",source:"classifier",signal:d.signal,confidence:d.confidence,classifierModel:i}),"research";return h({intent:"general",source:"classifier",signal:d.signal,confidence:d.confidence,classifierModel:i}),"general"}catch(a){return c?.warn?.("SMART",`intent classifier failed (${a?.message||a}) — treating as ${d.intent}`),h({intent:d.intent,source:"heuristic",signal:d.signal,confidence:d.confidence,classifierModel:null}),d.intent}}}async function n({body:a,members:b,config:c,resolveIntent:d}){let e=Array.isArray(b)?b.filter(Boolean):[];if(0===e.length)return{order:[],reason:"general",details:{}};if(i(a)){let a=e.filter(a=>!h(a));return a.length>0?{order:a,reason:"tool_calling",details:{excludedCookies:e.filter(a=>!!h(a))}}:{order:e,reason:"tool_calling_pool_empty_fallback",details:{note:"no tool-calling-capable model in combo"}}}let f=j(a),g="general";if("function"==typeof d)try{g=await d(f)}catch(a){g="general"}else{let a=c&&c.intentDetection||{},b=k(f,a);g=b.confidence>=(a.confidenceThreshold??.6)?b.intent:"general"}if("research"===g){let a=!1!==(c&&c.cookiePoolEnabled)?e.filter(a=>h(a)):[],b=e.filter(a=>!h(a));return a.length>0?{order:[...a,...b],reason:"research_cookie_primary",details:{cookiePool:a,normalPool:b}}:{order:e,reason:"research_cookie_pool_empty",details:{note:"no cookie provider in combo; using default order"}}}return{order:e,reason:"general",details:{}}}},31589:(a,b,c)=>{c.d(b,{Ub:()=>l});var d=c(72436),e=c(40669);let f=Object.freeze({toolUse:!0,fileAccess:!0,streaming:!0,multiTurn:!0,controlRole:!0,reliableJson:!0}),g=Object.freeze({toolUse:!1,fileAccess:!1,streaming:!1,multiTurn:!1,controlRole:!1,reliableJson:!1}),h={webCookie:Object.freeze({toolUse:!1,fileAccess:!1,streaming:!0,multiTurn:!0,controlRole:!1,reliableJson:!1})},i=Object.freeze({manager:{controlRole:!0,reliableJson:!0,multiTurn:!0},staff:{controlRole:!0,reliableJson:!0,multiTurn:!0},audit:{controlRole:!0,reliableJson:!0,multiTurn:!0},judge:{controlRole:!0,reliableJson:!0,multiTurn:!0}}),j=new Map;for(let a of d.default)if(a.capabilities&&"object"==typeof a.capabilities)j.set(a.id,{...f,...a.capabilities});else{let b=h[a.category];j.set(a.id,b?{...b}:{...f})}function k(a,b){if(!a||"string"!=typeof a)return!0;let c=a.indexOf("/"),d=c>=0?a.slice(0,c):a;return function(a,b){let c,d=i[b];if(!d)return!0;let f=(c=(0,e.g2)(a),j.get(c)||{...g});for(let[a,b]of Object.entries(d))if(b&&!f[a])return!1;return!0}((0,e.g2)(d),b)}function l(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&&!k(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&&!k(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}}};
|