@rsalmn/extremerouter 0.8.0 → 0.8.2
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 +5 -3
- 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 +12 -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 +3 -3
- 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 +4 -2
- 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 +2 -2
- 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 +3 -3
- 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/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 +4 -4
- 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 +2 -2
- 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/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 +19 -18
- package/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +19 -18
- 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 +8 -7
- 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 -0
- package/app/.next-cli-build/server/app/api/breaker/route.js.nft.json +1 -0
- package/app/.next-cli-build/server/app/api/breaker/route_client-reference-manifest.js +1 -0
- 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 +1 -1
- 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 +1 -1
- 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 +2 -2
- 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 +1 -1
- 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/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/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/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 +2 -2
- 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 +2 -2
- 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/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/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/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 -0
- package/app/.next-cli-build/server/app/api/oauth/qwen/import/route.js.nft.json +1 -0
- package/app/.next-cli-build/server/app/api/oauth/qwen/import/route_client-reference-manifest.js +1 -0
- 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/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]/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 +1 -1
- 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]/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/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/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 +1 -1
- 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 +2 -2
- 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/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 +4 -4
- 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/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/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 +23 -22
- package/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +23 -22
- 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 +8 -7
- 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 +23 -22
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +23 -22
- 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 +8 -7
- 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 +1 -1
- 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 +18 -17
- 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 +18 -17
- 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 +8 -7
- 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 +23 -22
- package/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +23 -22
- 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 +8 -7
- 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 +23 -22
- package/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +23 -22
- 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 +8 -7
- 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 +5 -3
- package/app/.next-cli-build/server/chunks/1051.js +1 -1
- package/app/.next-cli-build/server/chunks/{2342.js → 1194.js} +6 -6
- package/app/.next-cli-build/server/chunks/1350.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/2231.js +1 -1
- package/app/.next-cli-build/server/chunks/2701.js +1 -1
- package/app/.next-cli-build/server/chunks/2926.js +1 -1
- package/app/.next-cli-build/server/chunks/3593.js +1 -1
- package/app/.next-cli-build/server/chunks/412.js +1 -1
- package/app/.next-cli-build/server/chunks/422.js +9 -0
- package/app/.next-cli-build/server/chunks/4502.js +16 -0
- package/app/.next-cli-build/server/chunks/4632.js +1 -1
- package/app/.next-cli-build/server/chunks/4739.js +1 -1
- package/app/.next-cli-build/server/chunks/4780.js +1 -1
- package/app/.next-cli-build/server/chunks/507.js +1 -1
- package/app/.next-cli-build/server/chunks/5258.js +1 -1
- package/app/.next-cli-build/server/chunks/{318.js → 5330.js} +5 -5
- package/app/.next-cli-build/server/chunks/541.js +1 -0
- 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/5699.js +1 -1
- package/app/.next-cli-build/server/chunks/5781.js +2 -2
- package/app/.next-cli-build/server/chunks/5961.js +1 -1
- package/app/.next-cli-build/server/chunks/6070.js +1 -1
- package/app/.next-cli-build/server/chunks/615.js +1 -1
- package/app/.next-cli-build/server/chunks/6316.js +2 -2
- package/app/.next-cli-build/server/chunks/6686.js +1 -0
- package/app/.next-cli-build/server/chunks/698.js +1 -1
- package/app/.next-cli-build/server/chunks/7187.js +1 -0
- package/app/.next-cli-build/server/chunks/7872.js +1 -1
- package/app/.next-cli-build/server/chunks/7965.js +1 -1
- package/app/.next-cli-build/server/chunks/8238.js +1 -1
- package/app/.next-cli-build/server/chunks/8271.js +1 -1
- package/app/.next-cli-build/server/chunks/8520.js +1 -1
- package/app/.next-cli-build/server/chunks/874.js +9 -0
- package/app/.next-cli-build/server/chunks/8895.js +4 -4
- package/app/.next-cli-build/server/chunks/9140.js +1 -0
- package/app/.next-cli-build/server/chunks/9422.js +3 -3
- package/app/.next-cli-build/server/chunks/9630.js +1 -1
- package/app/.next-cli-build/server/chunks/9703.js +5 -5
- package/app/.next-cli-build/server/chunks/9903.js +1 -1
- package/app/.next-cli-build/server/middleware-build-manifest.js +1 -1
- package/app/.next-cli-build/server/middleware.js +4 -4
- 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/S-pbWChrUiCkwFyfx4Su3/_buildManifest.js +1 -0
- package/app/.next-cli-build/static/chunks/1321-aa0d45362a7ebc08.js +1 -0
- package/app/.next-cli-build/static/chunks/5497-b321fb89cc6d6e14.js +7 -0
- package/app/.next-cli-build/static/chunks/8105-204edc780a329497.js +1 -0
- package/app/.next-cli-build/static/chunks/{682-03720d6613bcbd0f.js → 9622-fcd7c93a94eaa38f.js} +6 -6
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/cli-tools/[toolId]/page-cd77e53dbcd46b6c.js +1 -0
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/cli-tools/page-8b043b8296199edb.js +1 -0
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/combos/page-dbf52954681b093c.js +3 -0
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/health/page-ec1dc4e44702257d.js +1 -0
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/mitm/page-a67cd1c5f77da355.js +1 -0
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/playground/page-dc8e49b1fe778d9c.js +1 -0
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-2e82495d63f499e9.js +10 -0
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/quota/page-9a44fa1600f3ff42.js +1 -0
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/token-saver/{page-2592739cbb862828.js → page-2f3b8761d7b32ec0.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/usage/{page-5433f8ac60dd59f0.js → page-bd421513fd2dc28a.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/{layout-df0ed16971ba7386.js → layout-9144cc5f6a208199.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/_global-error/page-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/alerts/test/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/auth/login/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/auth/logout/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/auth/oidc/callback/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/auth/oidc/start/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/auth/oidc/test/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/auth/reset-password/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/auth/status/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/breaker/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cache/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/all-statuses/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/claude-settings/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/cline-settings/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/codex-settings/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/copilot-settings/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-registry/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-tools/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-settings/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/deepseek-tui-settings/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/droid-settings/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/hermes-settings/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/jcode-settings/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/kilo-settings/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/openclaw-settings/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/opencode-settings/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/combos/[id]/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/combos/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/combos/validate-roles/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/dashboard/stream/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/headroom/start/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/headroom/status/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/headroom/stop/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/health/providers/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/health/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/health/stream/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/init/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/keys/[id]/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/keys/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/locale/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/message/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/sse/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/deepgram/voices/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/inworld/voices/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/minimax/voices/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/voices/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/models/alias/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/models/availability/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/models/custom/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/models/disabled/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/models/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/models/test/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/1min/import/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/[provider]/[action]/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/codex/bulk-import/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/codex/import-token/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/cursor/auto-import/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/cursor/import/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/gitlab/pat/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/iflow/cookie/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/api-key/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/auto-import/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import-cli-proxy/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-authorize/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-exchange/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/qwen/import/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/wp-studio/import/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/zed/auto-import/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/zed/import/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/pricing/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/provider-nodes/[id]/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/provider-nodes/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/provider-nodes/validate/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/agnes-profile/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/freebuff-profile/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/health-timeline/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/inxora-profile/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/models/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/onemin-api-profile/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/onemin-profile/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/qwencloud-profile/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/test/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/test-models/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/v0-profile/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/vault-pool/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/zenmux-plans/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/client/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/kilo/free-models/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/suggested-models/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/test-batch/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/validate/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/test/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/proxy-pools/cloudflare-deploy/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/proxy-pools/deno-deploy/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/proxy-pools/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/proxy-pools/vercel-deploy/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/pxpipe/install/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/pxpipe/status/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/settings/database/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/settings/proxy-test/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/settings/require-login/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/settings/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/shutdown/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/swarm/active/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/swarm/stream/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/tags/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/translator/console-logs/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/translator/console-logs/stream/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/translator/load/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/translator/save/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/translator/send/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/translator/translate/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/tunnel/disable/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/tunnel/enable/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/tunnel/status/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-check/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-disable/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-enable/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-install/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/codex-reset-credits/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/usage/chart/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/usage/history/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/usage/leaderboard/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/usage/logs/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/usage/meta/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/usage/providers/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/usage/request-details/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/usage/request-logs/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/usage/retry-stats/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/usage/stats/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/usage/stream/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/api/chat/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/audio/speech/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/audio/transcriptions/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/audio/voices/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/chat/completions/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/embeddings/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/images/generations/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/messages/count_tokens/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/messages/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/models/[kind]/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/models/info/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/models/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/responses/compact/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/responses/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/search/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/web/fetch/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1beta/models/[...path]/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1beta/models/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/version/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/version/shutdown/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/version/update/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/manifest.webmanifest/route-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/app/page-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/app-error-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/forbidden-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/not-found-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/unauthorized-ab464cb25617d9dd.js +1 -0
- package/app/.next-cli-build/static/css/68d66160ca549ddc.css +1 -0
- package/app/cli/.build-home/AppData/Roaming/extremerouter/db/backups/schema-3-to-4-0.8.0-20260802-152036/data.sqlite +0 -0
- package/app/cli/.build-home/AppData/Roaming/extremerouter/db/backups/upgrade-0.8.0-to-0.8.1-0.8.1-20260802-152517/data.sqlite +0 -0
- package/app/cli/.build-home/AppData/Roaming/extremerouter/db/data.sqlite-shm +0 -0
- package/app/cli/.build-home/AppData/Roaming/extremerouter/db/data.sqlite-wal +0 -0
- package/app/node_modules/@emnapi/runtime/dist/emnapi.cjs.js +1381 -0
- package/app/node_modules/@emnapi/runtime/dist/emnapi.cjs.min.js +1 -0
- package/app/node_modules/@emnapi/runtime/index.js +5 -0
- package/app/node_modules/@emnapi/runtime/package.json +48 -0
- package/app/node_modules/{next/node_modules/postcss → postcss}/lib/container.js +106 -51
- package/app/node_modules/{next/node_modules/postcss → postcss}/lib/css-syntax-error.js +47 -14
- package/app/node_modules/postcss/lib/fromJSON.js +107 -0
- package/app/node_modules/{next/node_modules/postcss → postcss}/lib/input.js +67 -33
- package/app/node_modules/{next/node_modules/postcss → postcss}/lib/lazy-result.js +127 -51
- package/app/node_modules/{next/node_modules/postcss → postcss}/lib/list.js +1 -0
- package/app/node_modules/{next/node_modules/postcss → postcss}/lib/map-generator.js +26 -9
- package/app/node_modules/{next/node_modules/postcss → postcss}/lib/no-work-result.js +57 -55
- package/app/node_modules/postcss/lib/node.js +494 -0
- package/app/node_modules/{next/node_modules/postcss → postcss}/lib/parser.js +46 -38
- package/app/node_modules/{next/node_modules/postcss → postcss}/lib/previous-map.js +34 -12
- package/app/node_modules/{next/node_modules/postcss → postcss}/lib/processor.js +7 -7
- package/app/node_modules/{next/node_modules/postcss → postcss}/lib/result.js +5 -5
- package/app/node_modules/{next/node_modules/postcss → postcss}/lib/root.js +16 -1
- package/app/node_modules/{next/node_modules/postcss → postcss}/lib/stringifier.js +140 -32
- package/app/node_modules/{next/node_modules/postcss → postcss}/lib/tokenize.js +6 -2
- package/app/node_modules/{next/node_modules/postcss → postcss}/lib/warning.js +10 -0
- package/app/node_modules/{next/node_modules/postcss → postcss}/package.json +48 -48
- package/app/package.json +92 -87
- package/app/public/providers/1min-api.svg +15 -0
- package/app/public/providers/1min.svg +15 -0
- package/app/public/providers/cline.svg +17 -0
- package/app/public/providers/clinepass.svg +20 -0
- package/app/public/providers/codestral.svg +16 -0
- package/app/public/providers/databricks.svg +21 -0
- package/app/public/providers/deepinfra.svg +18 -0
- package/app/public/providers/grok-web.svg +14 -0
- package/app/public/providers/marathon.svg +18 -0
- package/app/public/providers/qwen2api.svg +16 -0
- package/app/public/providers/unimodel.svg +26 -0
- package/app/public/providers/venice.svg +15 -0
- package/app/public/providers/vercel-ai-gateway.svg +13 -0
- package/app/src/lib/db/migrate.js +286 -286
- package/package.json +1 -1
- package/app/.next-cli-build/server/chunks/1239.js +0 -1
- package/app/.next-cli-build/server/chunks/3992.js +0 -1
- package/app/.next-cli-build/server/chunks/4040.js +0 -9
- package/app/.next-cli-build/server/chunks/4356.js +0 -9
- package/app/.next-cli-build/server/chunks/5983.js +0 -9
- package/app/.next-cli-build/static/chunks/1321-207059925975e2dc.js +0 -1
- package/app/.next-cli-build/static/chunks/5497-c5ee857b78a8cf8a.js +0 -7
- package/app/.next-cli-build/static/chunks/8105-705e80a4c161374b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/cli-tools/[toolId]/page-d722ccf5e0fec340.js +0 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/cli-tools/page-afc62a0533448ca0.js +0 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/combos/page-a91bcaf7425e68a3.js +0 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/health/page-d077213deca8c217.js +0 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/mitm/page-99540bfed3193080.js +0 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/playground/page-0a50de81e7b688fc.js +0 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-53ab489f01e3da19.js +0 -10
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/quota/page-bc16a0312f0a7915.js +0 -1
- package/app/.next-cli-build/static/chunks/app/_global-error/page-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/alerts/test/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/auth/login/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/auth/logout/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/auth/oidc/callback/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/auth/oidc/start/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/auth/oidc/test/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/auth/reset-password/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/auth/status/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cache/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/all-statuses/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/claude-settings/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/cline-settings/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/codex-settings/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/copilot-settings/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-registry/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-tools/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-settings/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/deepseek-tui-settings/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/droid-settings/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/hermes-settings/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/jcode-settings/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/kilo-settings/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/openclaw-settings/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/opencode-settings/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/combos/[id]/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/combos/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/combos/validate-roles/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/dashboard/stream/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/headroom/start/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/headroom/status/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/headroom/stop/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/health/providers/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/health/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/health/stream/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/init/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/keys/[id]/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/keys/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/locale/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/message/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/sse/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/deepgram/voices/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/inworld/voices/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/minimax/voices/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/voices/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/models/alias/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/models/availability/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/models/custom/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/models/disabled/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/models/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/models/test/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/1min/import/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/[provider]/[action]/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/codex/bulk-import/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/codex/import-token/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/cursor/auto-import/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/cursor/import/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/gitlab/pat/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/iflow/cookie/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/api-key/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/auto-import/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import-cli-proxy/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-authorize/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-exchange/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/wp-studio/import/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/zed/auto-import/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/zed/import/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/pricing/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/provider-nodes/[id]/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/provider-nodes/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/provider-nodes/validate/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/agnes-profile/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/freebuff-profile/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/health-timeline/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/inxora-profile/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/models/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/onemin-api-profile/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/onemin-profile/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/qwencloud-profile/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/test/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/test-models/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/v0-profile/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/vault-pool/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/zenmux-plans/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/client/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/kilo/free-models/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/suggested-models/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/test-batch/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/validate/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/test/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/proxy-pools/cloudflare-deploy/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/proxy-pools/deno-deploy/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/proxy-pools/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/proxy-pools/vercel-deploy/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/pxpipe/install/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/pxpipe/status/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/settings/database/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/settings/proxy-test/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/settings/require-login/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/settings/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/shutdown/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/swarm/active/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/swarm/stream/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/tags/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/translator/console-logs/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/translator/console-logs/stream/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/translator/load/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/translator/save/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/translator/send/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/translator/translate/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/tunnel/disable/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/tunnel/enable/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/tunnel/status/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-check/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-disable/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-enable/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-install/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/codex-reset-credits/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/usage/chart/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/usage/history/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/usage/leaderboard/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/usage/logs/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/usage/meta/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/usage/providers/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/usage/request-details/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/usage/request-logs/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/usage/retry-stats/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/usage/stats/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/usage/stream/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/api/chat/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/audio/speech/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/audio/transcriptions/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/audio/voices/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/chat/completions/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/embeddings/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/images/generations/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/messages/count_tokens/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/messages/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/models/[kind]/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/models/info/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/models/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/responses/compact/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/responses/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/search/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/web/fetch/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1beta/models/[...path]/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1beta/models/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/version/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/version/shutdown/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/version/update/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/manifest.webmanifest/route-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/app/page-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/app-error-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/forbidden-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/not-found-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/unauthorized-abffaa46b4637bee.js +0 -1
- package/app/.next-cli-build/static/css/d7d86034708483b4.css +0 -1
- package/app/.next-cli-build/static/lE_TtdkNAUztAcvs6X_vC/_buildManifest.js +0 -1
- package/app/cli/.build-home/AppData/Roaming/extremerouter/db/backups/upgrade-0.7.6-to-0.7.7-0.7.7-20260726-222051/data.sqlite +0 -0
- package/app/cli/.build-home/AppData/Roaming/extremerouter/db/backups/upgrade-0.7.6-to-0.7.7-0.7.7-20260726-222052/data.sqlite +0 -0
- package/app/cli/.build-home/AppData/Roaming/extremerouter/db/backups/upgrade-0.7.7-to-0.7.8-0.7.8-20260727-004850/data.sqlite +0 -0
- package/app/node_modules/next/node_modules/postcss/lib/fromJSON.js +0 -54
- package/app/node_modules/next/node_modules/postcss/lib/node.js +0 -381
- package/app/.next-cli-build/static/{lE_TtdkNAUztAcvs6X_vC → S-pbWChrUiCkwFyfx4Su3}/_ssgManifest.js +0 -0
- package/app/node_modules/{next/node_modules/postcss → postcss}/lib/at-rule.js +0 -0
- package/app/node_modules/{next/node_modules/postcss → postcss}/lib/comment.js +0 -0
- package/app/node_modules/{next/node_modules/postcss → postcss}/lib/declaration.js +4 -4
- package/app/node_modules/{next/node_modules/postcss → postcss}/lib/document.js +0 -0
- package/app/node_modules/{next/node_modules/postcss → postcss}/lib/parse.js +1 -1
- package/app/node_modules/{next/node_modules/postcss → postcss}/lib/postcss.js +12 -12
- package/app/node_modules/{next/node_modules/postcss → postcss}/lib/rule.js +6 -6
- /package/app/node_modules/{next/node_modules/postcss → postcss}/lib/stringify.js +0 -0
- /package/app/node_modules/{next/node_modules/postcss → postcss}/lib/symbols.js +0 -0
- /package/app/node_modules/{next/node_modules/postcss → postcss}/lib/terminal-highlight.js +0 -0
- /package/app/node_modules/{next/node_modules/postcss → postcss}/lib/warn-once.js +0 -0
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";exports.id=422,exports.ids=[422],exports.modules={60422:(a,b,c)=>{c.d(b,{runMigrationOnce:()=>w});var d=c(73024),e=c.n(d),f=c(76760),g=c.n(f),h=c(7841),i=c(76040);let j=[{version:1,name:"initial",up(a){for(let[b,c]of Object.entries(i.CG))for(let d of(a.exec((0,i.zE)(b,c)),c.indexes||[]))a.exec(d)}},{version:2,name:"rename-qwen-token-plan",up(a){a.exec("UPDATE providerConnections SET provider = 'qwen-cloud' WHERE provider = 'qwen-cloud-token-plan';")}},{version:3,name:"qwen-cloud-authtype-fix",up(a){a.exec("UPDATE providerConnections SET authType = 'apikey' WHERE provider = 'qwen-cloud' AND authType != 'apikey';")}},{version:4,name:"combo-production-config",up(a){let b=new Set(a.all("PRAGMA table_info(combos)").map(a=>a.name));b.has("strategyConfig")||a.exec("ALTER TABLE combos ADD COLUMN strategyConfig TEXT NOT NULL DEFAULT '{}'"),b.has("revision")||a.exec("ALTER TABLE combos ADD COLUMN revision INTEGER NOT NULL DEFAULT 1")}},{version:5,name:"add-combo-context-length",up(a){(a.all("PRAGMA table_info(combos)")||[]).map(a=>a.name).includes("context_length")||a.exec("ALTER TABLE combos ADD COLUMN context_length INTEGER DEFAULT NULL")}}].sort((a,b)=>a.version-b.version);var k=c(91117);let l=null;function m(){if(l)return l;try{let a=g().join(process.cwd(),"package.json");l=JSON.parse(e().readFileSync(a,"utf-8")).version||"0.0.0"}catch{l="0.0.0"}return l}function n(a){(0,h.Jh)();let b=m(),c=`${a}-${b}-${function(a=new Date){let b=a=>String(a).padStart(2,"0");return`${a.getFullYear()}${b(a.getMonth()+1)}${b(a.getDate())}-${b(a.getHours())}${b(a.getMinutes())}${b(a.getSeconds())}`}()}`,d=g().join(h.KQ,c);return e().mkdirSync(d,{recursive:!0}),d}function o(a,b,c=null){if(!e().existsSync(a))return null;let d=c||g().basename(a),f=g().join(b,d);return e().copyFileSync(a,f),f}function p(){if(e().existsSync(h.KQ))for(let a of e().readdirSync(h.KQ,{withFileTypes:!0}).filter(a=>a.isDirectory()).map(a=>({name:a.name,full:g().join(h.KQ,a.name),mtime:e().statSync(g().join(h.KQ,a.name)).mtimeMs})).sort((a,b)=>b.mtime-a.mtime).slice(5))try{e().rmSync(a.full,{recursive:!0,force:!0})}catch{}}var q=c(33323);let r=g().join(h.HG,".migrated-from-json"),s=new WeakSet;class t extends Error{constructor(a,b){super(a),this.name="MigrationAborted",this.droppedRows=b}}function u(a,b,c,d,e){let f=[];for(let a of c)try{d(a)}catch(b){f.push({...e(a),reason:b.message})}let g=a.get(`SELECT COUNT(*) as c FROM ${b}`)?.c??0;if(g!==c.length)throw console.warn(`[DB][migrate] ${b} row-count mismatch: expected ${c.length}, got ${g}. Dropped:`,f),new t(`${b} row-count mismatch: expected ${c.length}, got ${g}`,f)}function v(a){if(!e().existsSync(a))return null;try{return JSON.parse(e().readFileSync(a,"utf-8"))}catch{return null}}async function w(a){if(s.has(a))return;s.add(a);let b=function(a){try{let b=a.get("SELECT COUNT(*) as c FROM _meta");return!b||0===b.c}catch{return!0}}(a),c=function(a){a.exec((0,i.zE)("_meta",i.CG._meta));let b=parseInt((0,k.dy)(a,"schemaVersion","0"),10)||0;if(b>=(j.length?j[j.length-1].version:0))return{applied:0,from:b,to:b};let c=j.filter(a=>a.version>b),d=b;for(let b of c)a.transaction(()=>{b.up(a),(0,k.np)(a,"schemaVersion",b.version)}),d=b.version,console.log(`[DB][migrate] applied #${b.version} ${b.name}`);return{applied:c.length,from:b,to:d}}(a);for(let[b,c]of Object.entries(i.CG)){a.exec((0,i.zE)(b,c));let d=new Set(a.all(`PRAGMA table_info(${b})`).map(a=>a.name));for(let[e,f]of Object.entries(c.columns))if(!d.has(e)){let c=f.replace(/PRIMARY KEY( AUTOINCREMENT)?/i,"").replace(/UNIQUE/i,"").trim();try{a.exec(`ALTER TABLE ${b} ADD COLUMN ${e} ${c}`),console.log(`[DB][sync] +column ${b}.${e}`)}catch(a){console.warn(`[DB][sync] add column ${b}.${e} failed: ${a.message}`)}}for(let b of c.indexes||[])try{a.exec(b)}catch{}}let d=e().existsSync(r),f=v(h.Or.main),g=v(h.Or.usage),l=v(h.Or.disabled),w=v(h.Or.details);if(b&&(f||g||l||w)&&!d){let b=Date.now(),c=n("migrate-from-json");for(let a of Object.values(h.Or))o(a,c);try{a.transaction(()=>{if(f&&"object"==typeof f){for(let[b,c]of(f.settings&&a.run("INSERT INTO settings(id, data) VALUES(1, ?) ON CONFLICT(id) DO UPDATE SET data = excluded.data",[(0,q.s)(f.settings)]),u(a,"providerConnections",f.providerConnections||[],b=>{let{id:c,provider:d,authType:e,name:f,email:g,priority:h,isActive:i,createdAt:j,updatedAt:k,...l}=b;a.run("INSERT OR REPLACE INTO providerConnections(id, provider, authType, name, email, priority, isActive, data, createdAt, updatedAt) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?)",[c,d,e||"oauth",f||null,g||null,h||null,+(!1!==i),(0,q.s)(l),j||new Date().toISOString(),k||new Date().toISOString()])},a=>({id:a.id??null,provider:a.provider??null,name:a.name??null})),u(a,"providerNodes",f.providerNodes||[],b=>{let{id:c,type:d,name:e,createdAt:f,updatedAt:g,...h}=b;a.run("INSERT OR REPLACE INTO providerNodes(id, type, name, data, createdAt, updatedAt) VALUES(?, ?, ?, ?, ?, ?)",[c,d||null,e||null,(0,q.s)(h),f||new Date().toISOString(),g||new Date().toISOString()])},a=>({id:a.id??null,type:a.type??null,name:a.name??null})),u(a,"proxyPools",f.proxyPools||[],b=>{let{id:c,isActive:d,testStatus:e,createdAt:f,updatedAt:g,...h}=b;a.run("INSERT OR REPLACE INTO proxyPools(id, isActive, testStatus, data, createdAt, updatedAt) VALUES(?, ?, ?, ?, ?, ?)",[c,+(!1!==d),e||"unknown",(0,q.s)(h),f||new Date().toISOString(),g||new Date().toISOString()])},a=>({id:a.id??null})),u(a,"apiKeys",f.apiKeys||[],b=>{a.run("INSERT OR REPLACE INTO apiKeys(id, key, name, machineId, isActive, createdAt) VALUES(?, ?, ?, ?, ?, ?)",[b.id,b.key,b.name||null,b.machineId||null,+(!1!==b.isActive),b.createdAt||new Date().toISOString()])},a=>({id:a.id??null,name:a.name??null})),u(a,"combos",f.combos||[],b=>{a.run("INSERT OR REPLACE INTO combos(id, name, kind, models, strategyConfig, revision, createdAt, updatedAt) VALUES(?, ?, ?, ?, ?, ?, ?, ?)",[b.id,b.name,b.kind||null,(0,q.s)(b.models||[]),(0,q.s)(b.strategyConfig||{}),Number(b.revision)||1,b.createdAt||new Date().toISOString(),b.updatedAt||new Date().toISOString()])},a=>({id:a.id??null,name:a.name??null})),Object.entries(f.modelAliases||{})))a.run("INSERT OR REPLACE INTO kv(scope, key, value) VALUES('modelAliases', ?, ?)",[b,(0,q.s)(c)]);for(let b of f.customModels||[]){let c=`${b.providerAlias}|${b.id}|${b.type||"llm"}`;a.run("INSERT OR REPLACE INTO kv(scope, key, value) VALUES('customModels', ?, ?)",[c,(0,q.s)(b)])}for(let[b,c]of Object.entries(f.mitmAlias||{}))a.run("INSERT OR REPLACE INTO kv(scope, key, value) VALUES('mitmAlias', ?, ?)",[b,(0,q.s)(c||{})]);for(let[b,c]of Object.entries(f.pricing||{}))a.run("INSERT OR REPLACE INTO kv(scope, key, value) VALUES('pricing', ?, ?)",[b,(0,q.s)(c||{})])}if(g&&"object"==typeof g){for(let b of g.history||[]){let c=b.tokens||{};a.run("INSERT INTO usageHistory(timestamp, provider, model, connectionId, apiKey, endpoint, promptTokens, completionTokens, cost, status, tokens, meta) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)",[b.timestamp||new Date().toISOString(),b.provider||null,b.model||null,b.connectionId||null,b.apiKey||null,b.endpoint||null,c.prompt_tokens||c.input_tokens||0,c.completion_tokens||c.output_tokens||0,b.cost||0,b.status||"ok",(0,q.s)(c),(0,q.s)({})])}for(let[b,c]of Object.entries(g.dailySummary||{}))a.run("INSERT OR REPLACE INTO usageDaily(dateKey, data) VALUES(?, ?)",[b,(0,q.s)(c)]);"number"==typeof g.totalRequestsLifetime&&(0,k.np)(a,"totalRequestsLifetime",g.totalRequestsLifetime)}if(l&&"object"==typeof l.disabled)for(let[b,c]of Object.entries(l.disabled))a.run("INSERT OR REPLACE INTO kv(scope, key, value) VALUES('disabledModels', ?, ?)",[b,(0,q.s)(c||[])]);if(w&&Array.isArray(w.records))for(let b of w.records)a.run("INSERT OR REPLACE INTO requestDetails(id, timestamp, provider, model, connectionId, status, data) VALUES(?, ?, ?, ?, ?, ?, ?)",[b.id,b.timestamp||new Date().toISOString(),b.provider||null,b.model||null,b.connectionId||null,b.status||null,(0,q.s)(b)]);(0,k.np)(a,"appVersion",m()),(0,k.np)(a,"migratedAt",new Date().toISOString())})}catch(a){if(a instanceof t)return void console.error(`[DB][migrate] aborted: ${a.message} | legacy JSON kept | backup: ${c}`);throw a}try{e().writeFileSync(r,new Date().toISOString())}catch{}p(),console.log(`[DB][migrate] JSON → SQLite in ${Date.now()-b}ms | legacy JSON kept at DATA_DIR | backup: ${c}`);return}if(b)return void(0,k.np)(a,"appVersion",m());let x=(0,k.dy)(a,"appVersion",null),y=m();if(x&&x!==y){let b=n(`upgrade-${x}-to-${y}`);try{o(h.AL,b)}catch{}(0,k.np)(a,"appVersion",y),p(),console.log(`[DB][migrate] App ${x} → ${y} | schema ${c.from} → ${c.to} | backup: ${b}`)}else if(c.applied>0){let a=n(`schema-${c.from}-to-${c.to}`);try{o(h.AL,a)}catch{}p()}}},76040:(a,b,c)=>{c.d(b,{CG:()=>e,oG:()=>d,zE:()=>f});let d=`
|
|
2
|
+
PRAGMA journal_mode = WAL;
|
|
3
|
+
PRAGMA synchronous = NORMAL;
|
|
4
|
+
PRAGMA temp_store = MEMORY;
|
|
5
|
+
PRAGMA mmap_size = 30000000;
|
|
6
|
+
PRAGMA cache_size = -64000;
|
|
7
|
+
PRAGMA foreign_keys = ON;
|
|
8
|
+
PRAGMA busy_timeout = 5000;
|
|
9
|
+
`,e={_meta:{columns:{key:"TEXT PRIMARY KEY",value:"TEXT NOT NULL"}},settings:{columns:{id:"INTEGER PRIMARY KEY CHECK (id = 1)",data:"TEXT NOT NULL"}},providerConnections:{columns:{id:"TEXT PRIMARY KEY",provider:"TEXT NOT NULL",authType:"TEXT NOT NULL",name:"TEXT",email:"TEXT",priority:"INTEGER",isActive:"INTEGER DEFAULT 1",data:"TEXT NOT NULL",createdAt:"TEXT NOT NULL",updatedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_pc_provider ON providerConnections(provider)","CREATE INDEX IF NOT EXISTS idx_pc_provider_active ON providerConnections(provider, isActive)","CREATE INDEX IF NOT EXISTS idx_pc_priority ON providerConnections(provider, priority)"]},providerNodes:{columns:{id:"TEXT PRIMARY KEY",type:"TEXT",name:"TEXT",data:"TEXT NOT NULL",createdAt:"TEXT NOT NULL",updatedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_pn_type ON providerNodes(type)"]},proxyPools:{columns:{id:"TEXT PRIMARY KEY",isActive:"INTEGER DEFAULT 1",testStatus:"TEXT",data:"TEXT NOT NULL",createdAt:"TEXT NOT NULL",updatedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_pp_active ON proxyPools(isActive)","CREATE INDEX IF NOT EXISTS idx_pp_status ON proxyPools(testStatus)"]},apiKeys:{columns:{id:"TEXT PRIMARY KEY",key:"TEXT UNIQUE NOT NULL",name:"TEXT",machineId:"TEXT",allowedModels:"TEXT",isActive:"INTEGER DEFAULT 1",createdAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_ak_key ON apiKeys(key)"]},combos:{columns:{id:"TEXT PRIMARY KEY",name:"TEXT UNIQUE NOT NULL",kind:"TEXT",models:"TEXT NOT NULL",strategyConfig:"TEXT NOT NULL DEFAULT '{}'",revision:"INTEGER NOT NULL DEFAULT 1",createdAt:"TEXT NOT NULL",updatedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_combo_name ON combos(name)"]},kv:{columns:{scope:"TEXT NOT NULL",key:"TEXT NOT NULL",value:"TEXT NOT NULL"},primaryKey:"PRIMARY KEY (scope, key)",indexes:["CREATE INDEX IF NOT EXISTS idx_kv_scope ON kv(scope)"]},usageHistory:{columns:{id:"INTEGER PRIMARY KEY AUTOINCREMENT",timestamp:"TEXT NOT NULL",provider:"TEXT",model:"TEXT",connectionId:"TEXT",apiKey:"TEXT",endpoint:"TEXT",promptTokens:"INTEGER DEFAULT 0",completionTokens:"INTEGER DEFAULT 0",cost:"REAL DEFAULT 0",status:"TEXT",tokens:"TEXT",meta:"TEXT",latencyTtftMs:"INTEGER DEFAULT 0",latencyTotalMs:"INTEGER DEFAULT 0"},indexes:["CREATE INDEX IF NOT EXISTS idx_uh_ts ON usageHistory(timestamp DESC)","CREATE INDEX IF NOT EXISTS idx_uh_provider ON usageHistory(provider)","CREATE INDEX IF NOT EXISTS idx_uh_model ON usageHistory(model)","CREATE INDEX IF NOT EXISTS idx_uh_conn ON usageHistory(connectionId)","CREATE INDEX IF NOT EXISTS idx_uh_status ON usageHistory(status)"]},usageDaily:{columns:{dateKey:"TEXT PRIMARY KEY",data:"TEXT NOT NULL"}},requestDetails:{columns:{id:"TEXT PRIMARY KEY",timestamp:"TEXT NOT NULL",provider:"TEXT",model:"TEXT",connectionId:"TEXT",status:"TEXT",data:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_rd_ts ON requestDetails(timestamp DESC)","CREATE INDEX IF NOT EXISTS idx_rd_provider ON requestDetails(provider)","CREATE INDEX IF NOT EXISTS idx_rd_model ON requestDetails(model)","CREATE INDEX IF NOT EXISTS idx_rd_conn ON requestDetails(connectionId)"]}};function f(a,b){let c=Object.entries(b.columns).map(([a,b])=>`${a} ${b}`);return b.primaryKey&&c.push(b.primaryKey),`CREATE TABLE IF NOT EXISTS ${a} (${c.join(", ")})`}}};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";exports.id=4502,exports.ids=[4502],exports.modules={31589:(a,b,c)=>{c.d(b,{Ub:()=>l});var d=c(96970),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.A)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}},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()].sort((a,b)=>a[1].startedAt-b[1].startedAt)[0];a&&g.delete(a[0])}return i("swarm:start",{runId:k,comboName:a,promptPreview:m.promptPreview,workerCount:m.workerCount},0),m}function k(a,b,c={}){let d=g.get(a);if(!d)return;let e=d.stages[b];e&&(e.status="running",e.startedAt=Date.now(),Object.assign(e,c),i("swarm:stage",{runId:a,stage:b,status:"running",...c}))}function l(a,b,c={}){let d=g.get(a);if(!d)return;let e=d.stages[b];e&&"done"!==e.status&&(e.status="done",e.completedAt=Date.now(),e.durationMs=e.startedAt?e.completedAt-e.startedAt:null,Object.assign(e,c),i("swarm:stage",{runId:a,stage:b,status:"done",durationMs:e.durationMs,...c}))}function m(a,b,c,d={}){let e=g.get(a);if(!e)return;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&&(f.status=c,Object.assign(f,d),i("swarm:stage",{runId:a,stage:"workers",worker:b,status:c,...d}))}function n(a,b){let c=g.get(a);c&&"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",{runId:a,error:c.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",{runId:a,totalDurationMs:c.totalDurationMs,...b},0))}function p(a=20){return[...g.values()].sort((a,b)=>b.startedAt-a.startedAt).slice(0,a)}},82121:(a,b,c)=>{c.d(b,{zH:()=>_,dW:()=>ac,Vt:()=>$,$x:()=>U,Vu:()=>Y,Ni:()=>af,Pr:()=>Z,vt:()=>ad,je:()=>L,UP:()=>X,wj:()=>ab});var d=c(12557),e=c(43659),f=c(66306),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("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 p(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=o(f.input)):b===l.h.ANTIGRAVITY?f.request={...f.request||{},tools:void 0}:Array.isArray(f.messages)&&(f.messages=o(f.messages)),f}function q(a,b){let c=String(a||"");return c.length<=b?c:`${c.slice(0,b)}
|
|
2
|
+
[truncated by combo budget]`}let r=[/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 s(a){return!!a&&"string"==typeof a&&!(a.length<80)&&r.some(b=>b.test(a))}function t(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"||!s("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&&s(b.system))delete b.system;else if(Array.isArray(b.system)){let a=b.system.filter(a=>!(a?.type==="text"&&s(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&&s(Array.isArray(c.parts)?c.parts.map(a=>a?.text||"").join("\n"):"")&&delete b[a]}return b}let u={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 v(a){let b=u[a?.role]||u.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 w=c(36701);let x={workerHardTimeoutMs:9e4,workerQuorum:2,stragglerGraceMs:1e4,managerTimeoutMs:6e4,minWorkers:2,maxWorkers:8},y="=== 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 z(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 A(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
|
+
Role: ${a.role}
|
|
4
|
+
Instruction: ${a.instruction}
|
|
5
|
+
|
|
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 B(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 C(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 D(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 E(a){let{tools:b,tool_choice:c,...d}=a,e={...d,stream:!1};return Array.isArray(e.messages)&&(e.messages=U(e.messages)),e}let F=new Map;async function G({runId:a,body:b,managerModel:c,handleSingleModel:d,cfg:e,log:f}){(0,w._5)(a,"gatekeeper",{model:c}),C(b);let g=_(t(E(b)),y);try{let b=await ab(d(g,c,{isPanel:!0,role:"gatekeeper"}),e.managerTimeoutMs);if(b?.__timeout||b?.__error)return(0,w.SH)(a,"gatekeeper",{verdict:"complex"}),H(c,f),"complex";let h=$(await b.clone().json().catch(()=>({}))),i=/VERDICT:\s*SIMPLE/i.test(h)?"simple":"complex";return(0,w.SH)(a,"gatekeeper",{verdict:i}),F.delete(c),f?.info?.("SWARM",`Gatekeeper verdict: ${i}`),i}catch(b){return f?.warn?.("SWARM",`Gatekeeper error, assuming complex: ${b?.message||b}`),(0,w.SH)(a,"gatekeeper",{verdict:"complex"}),H(c,f),"complex"}}function H(a,b){let c=(F.get(a)||0)+1;F.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 I({runId:a,body:b,managerModel:c,handleSingleModel:d,cfg:e,log:f}){(0,w._5)(a,"manager",{model:c});let g=C(b),h=_(t(E(b)),z(g));try{let b=await ab(d(h,c,{isPanel:!0,role:"manager"}),e.managerTimeoutMs);if(b?.__timeout||b?.__error)return(0,w.SH)(a,"manager",{strategy:null}),null;let g=$(await b.clone().json().catch(()=>({}))),i=D(g);return(0,w.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,w.SH)(a,"manager",{strategy:null}),null}}async function J({runId:a,strategy:b,models:c,body:d,handleSingleModel:e,cfg:f,log:g}){(0,w._5)(a,"workers",{workerCount:b.subtasks.length});let h=b.subtasks,i=c.filter(Boolean);if(0===i.length)return(0,w.SH)(a,"workers",{workers:[]}),[];let j=h.map((b,c)=>{let g=i[c%i.length],h=_(E(d),v(b));return(0,w.gF)(a,c,"running",{model:g}),ab(e(h,g,{isPanel:!0,role:"worker"}),f.workerHardTimeoutMs).then(async d=>{if(d?.__timeout||d?.__error)return(0,w.gF)(a,c,"error",{model:g}),{ok:!1,text:""};if(!d?.ok)return(0,w.gF)(a,c,"error",{model:g,status:d?.status}),{ok:!1,text:""};let e=$(await d.clone().json().catch(()=>({})));return(0,w.gF)(a,c,"done",{model:g,outputLen:e.length}),{ok:!0,text:e,subtask:b}}).catch(()=>((0,w.gF)(a,c,"error",{model:g}),{ok:!1,text:""}))}),k=await ac(j,{minPanel:Math.min(f.workerQuorum,j.length),stragglerGraceMs:f.stragglerGraceMs,panelHardTimeoutMs:f.workerHardTimeoutMs}),l=[];for(let a=0;a<k.length;a++){let b=k[a];b&&b.ok&&l.push({subtask:h[a],text:b.text})}return(0,w.SH)(a,"workers",{workers:k.map((a,b)=>({index:b,ok:!!a?.ok}))}),l}async function K({runId:a,strategy:b,workerOutputs:c,staffModel:d,auditModel:e,body:f,handleSingleModel:g,cfg:h,log:i}){let j=d||e;if(!j)return(0,w.SH)(a,"audit",{skipped:!0}),null;(0,w._5)(a,"audit",{model:j});let k=b.subtasks.map(a=>{let b=c.find(b=>b.subtask===a);return{...a,output:b?.text||"(no output)"}}),l=_(t(E(f)),A(k));try{let b=await ab(g(l,j,{isPanel:!0,role:"audit"}),h.managerTimeoutMs);if(b?.__timeout||b?.__error)return(0,w.SH)(a,"audit",{skipped:!0}),null;let c=$(await b.clone().json().catch(()=>({})));return(0,w.SH)(a,"audit",{reportLen:c.length}),c}catch(b){return i?.warn?.("SWARM",`Staff audit error: ${b?.message||b}`),(0,w.SH)(a,"audit",{skipped:!0}),null}}async function L({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={...x,...k||{}},s=(f||"").trim()||q[0],t=C(a);if(1===q.length&&!f&&!g&&!h)return c(a,q[0],{role:"manager"});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,w._s)({comboName:e,promptPreview:t,managerModel:s,staffModel:g,auditModel:h,workerCount:j||r.minWorkers}):null,y=v?.runId;try{let b,e=l?await G({runId:y,body:a,managerModel:s,handleSingleModel:c,cfg:r,log:d}):await M({body:a,managerModel:s,handleSingleModel:c,cfg:r,log:d});if("simple"===e)return d?.info?.("SWARM","Gatekeeper bypass — simple request, direct answer"),y&&(0,w.kA)(y,{bypassed:!0}),c(a,s,{role:"manager"});let f=l?await I({runId:y,body:a,managerModel:s,handleSingleModel:c,cfg:r,log:d}):await N({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"),y&&(0,w.kA)(y,{fallback:!0}),c(a,s,{role:"manager"});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 J({runId:y,strategy:{subtasks:i},models:q,body:a,handleSingleModel:c,cfg:r,log:d}):await O({strategy:{subtasks:i},models:q,body:a,handleSingleModel:c,cfg:r,log:d});if(k.length<r.minWorkers){if(d?.warn?.("SWARM",`Only ${k.length}/${i.length} workers succeeded — fallback`),y&&(0,w.kA)(y,{fallback:!0}),1===k.length){let b=k[0].text||"";return c(_(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
|
+
|
|
9
|
+
${b}`),s,{role:"manager"})}return c(a,s,{role:"manager"})}let m=l?await K({runId:y,strategy:{subtasks:i},workerOutputs:k,staffModel:g,auditModel:h,body:a,handleSingleModel:c,cfg:r,log:d}):await P({strategy:{subtasks:i},workerOutputs:k,staffModel:g,auditModel:h,body:a,handleSingleModel:c,cfg:r,log:d}),n=m?B(m,t):B(k.map(a=>a.text).join("\n\n---\n\n"),t),o=_(a,n);if(d?.info?.("SWARM",`Synthesizing final answer from ${k.length} worker outputs`),y){(0,w._5)(y,"synthesis",{model:s});let a=await c(o,s,{role:"manager"});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,w.SH)(y,"synthesis"),(0,w.kA)(y,{workerCount:k.length});return}return a.enqueue(c),d()}).catch(()=>{try{a.close()}catch{}(0,w.SH)(y,"synthesis"),(0,w.kA)(y,{workerCount:k.length})});d()},cancel(a){(0,w.SH)(y,"synthesis"),(0,w.kA)(y,{workerCount:k.length})}});return new Response(c,{status:a.status,statusText:a.statusText,headers:a.headers})}return(0,w.SH)(y,"synthesis"),(0,w.kA)(y,{workerCount:k.length}),a}return c(o,s,{role:"manager"})}catch(b){return d?.error?.("SWARM",`Swarm failed: ${b?.message||b}`),y&&(0,w.bt)(y,b),c(a,s,{role:"manager"})}}async function M({body:a,managerModel:b,handleSingleModel:c,cfg:d,log:e}){let f=_(t(E(a)),y);try{let a=await ab(c(f,b,{isPanel:!0,role:"gatekeeper"}),d.managerTimeoutMs);if(a?.__timeout||a?.__error)return"complex";let e=$(await a.clone().json().catch(()=>({})));return/VERDICT:\s*SIMPLE/i.test(e)?"simple":"complex"}catch{return"complex"}}async function N({body:a,managerModel:b,handleSingleModel:c,cfg:d,log:e}){let f=C(a),g=_(t(E(a)),z(f));try{let a=await ab(c(g,b,{isPanel:!0,role:"manager"}),d.managerTimeoutMs);if(a?.__timeout||a?.__error)return null;let e=$(await a.clone().json().catch(()=>({})));return D(e)}catch{return null}}async function O({strategy:a,models:b,body:c,handleSingleModel:d,cfg:e}){let f=b.filter(Boolean);if(0===f.length)return[];let g=a.subtasks.map((a,b)=>{let g=f[b%f.length];return ab(d(_(E(c),v(a)),g,{isPanel:!0,role:"worker"}),e.workerHardTimeoutMs).then(async b=>b?.__timeout||b?.__error||!b?.ok?{ok:!1,text:""}:{ok:!0,text:$(await b.clone().json().catch(()=>({}))),subtask:a}).catch(()=>({ok:!1,text:""}))}),h=await ac(g,{minPanel:Math.min(e.workerQuorum,g.length),stragglerGraceMs:e.stragglerGraceMs,panelHardTimeoutMs:e.workerHardTimeoutMs}),i=[];for(let a of h)a&&a.ok&&a.text&&i.push({subtask:a.subtask,text:a.text});return i}async function P({strategy:a,workerOutputs:b,staffModel:c,auditModel:d,body:e,handleSingleModel:f,cfg:g}){let h=c||d;if(!h)return null;let i=a.subtasks.map(a=>{let c=b.find(b=>b.subtask===a);return{...a,output:c?.text||"(no output)"}}),j=_(t(E(e)),A(i));try{let a=await ab(f(j,h,{isPanel:!0,role:"audit"}),g.managerTimeoutMs);if(a?.__timeout||a?.__error)return null;return $(await a.clone().json().catch(()=>({})))}catch{return null}}let Q=new Set(["vision","pdf","audioInput","videoInput"]);async function R(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 S="[Called tools: ",T="[Tool result: ";function U(a){return a.filter(a=>a).map(a=>{if("tool"===a.role||"function"===a.role)return{role:"assistant",content:`${T}${(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":""}${S}${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":""}${S}${c.join(", ")}]`),d.length>0&&(f=`${f}${f?"\n":""}${T}${d.join("\n")}]`),{...e,content:f}}}return a})}let V=new Map;function W(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 X(a){a?V.delete(a):V.clear()}function Y(a,b){if(a.includes("/"))return null;let c=(Array.isArray(b)?b:b?.combos||[]).find(b=>b.name===a);return c&&c.models&&c.models.length>0?c.models:null}async function Z({body:a,models:b,handleSingleModel:c,log:g,comboName:h,comboStrategy:i,comboStickyLimit:k=1,autoSwitch:l=!0,breakerSettings:m=null,signal:n,runBudget:o}){let p=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=V.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?V.set(f,{index:(i+1)%a.length,consecutiveUseCount:0}):V.set(f,{index:i,consecutiveUseCount:k}),j}(b,h,i,k);if(m){let{active:a,skipped:b}=await R(p,m);b.length>0&&(g.info("COMBO",`breaker pre-filter: skipped ${b.length} open-breaker model(s) [${b.join(", ")}]`),p=a)}if(l){let b=function(a){let b=new Set;if(!a||"object"!=typeof a)return b;let c=a=>{if(!a||"object"!=typeof a)return;let c=a.type;("image_url"===c||"image"===c||"input_image"===c)&&b.add("vision"),("file"===c||"document"===c||"input_file"===c)&&b.add("pdf");let d=a.inlineData?.mimeType||a.fileData?.mimeType;"string"==typeof d&&d.startsWith("image/")&&b.add("vision"),"application/pdf"===d&&b.add("pdf")},d=a=>{if(Array.isArray(a))for(let b of a)c(b)};for(let b of W(a.messages))d(b.content);for(let b of W(a.input))d(b.content);for(let b of W(a.contents||a.request?.contents))d(b.parts);return b}(a);if(b.size>0){let a=function(a,b){if(!b||0===b.size||!Array.isArray(a)||a.length<=1)return a;let c=[...b].filter(a=>Q.has(a)),d=[...b].filter(a=>!Q.has(a));return a.map((a,b)=>{let e,g,h,i;return{m:a,i:b,t:(g=(e="string"==typeof a?a.indexOf("/"):-1)>0?(0,j.g2)(a.slice(0,e)):"",h=e>0?a.slice(e+1):a,i=(0,f.nl)(g,h),c.every(a=>!0===i[a])?+!d.every(a=>!0===i[a]):2)}}).sort((a,b)=>a.t-b.t||a.i-b.i).map(a=>a.m)}(p,b);a[0]!==p[0]&&g.info("COMBO",`auto-switch for [${[...b].join(",")}] → ${a[0]}`),p=a}}let q=null,r=null,s=null;for(let b=0;b<p.length;b++){let e=p[b];g.info("COMBO",`Trying model ${b+1}/${p.length}: ${e}`);try{let b=await c(a,e,{role:"worker"});if(b.ok)return g.info("COMBO",`Model ${e} succeeded`),b;let f=b.statusText||"",h=null;try{let a=await b.clone().json();f=a?.error?.message||a?.error||a?.message||f,h=a?.retryAfter||null}catch{}if(h&&(!r||new Date(h)<new Date(r))&&(r=h),"string"!=typeof f)try{f=JSON.stringify(f)}catch{f=String(f)}let{shouldFallback:i,cooldownMs:j}=[400,405,406,413,415,422].includes(b.status)?{shouldFallback:!1,cooldownMs:0}:(0,d.hk)(b.status,f);if(!i)return g.warn("COMBO",`Model ${e} failed (no fallback)`,{status:b.status}),b;j&&j>0&&j<=5e3&&(503===b.status||502===b.status||504===b.status)&&(g.info("COMBO",`Model ${e} transient ${b.status}, waiting ${j}ms before next`),await new Promise(a=>setTimeout(a,j))),q=f||String(b.status),s||(s=b.status),g.warn("COMBO",`Model ${e} failed, trying next`,{status:b.status})}catch(a){q=a.message||String(a),s||(s=500),g.warn("COMBO",`Model ${e} threw error, trying next`,{error:q})}}let t=q&&q.toLowerCase().includes("no credentials")?503:s||503,u=q||"All combo models unavailable";if(r){let a=(0,d.Qo)(r);return g.warn("COMBO",`All models failed | ${u} (${a})`),(0,e.wO)(t,u,r,a)}return g.warn("COMBO",`All models failed | ${u}`),new Response(JSON.stringify({error:{message:u,type:"server_error",code:"all_models_failed"}}),{status:t,headers:{"Content-Type":"application/json"}})}function $(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 _(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 aa={minPanel:2,stragglerGraceMs:8e3,panelHardTimeoutMs:9e4};function ab(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 ac(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(()=>{if(h++,g[e]&&g[e].ok&&i++,h===a.length)return l();i>=b&&!k&&(k=setTimeout(l,c))})})})}async function ad({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 c(a,o[0],{role:"judge"});let r=(0,i.Ub)("fusion",{judgeModel:f},o);if(r.length>0){let a=r.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={...aa,...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=m(a),w=p(a,v),x=o.map(a=>k(b=>c(w,a,{isPanel:!0,signal:b,trafficClass:"panel",role:"panel"}),s.panelHardTimeoutMs,h)),y=Date.now(),z=await ac(x.map(a=>a.promise),{...s,minPanel:t,onFinish:()=>x.forEach(a=>a.abort("fusion panel closed"))});x.forEach(a=>a.cleanup()),d.info("FUSION",`fan-out collected in ${Date.now()-y}ms`);let A=[];for(let a=0;a<z.length;a++){let b=z[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(!b.ok){d.warn("FUSION",`Panel ${c} failed`,{status:b.status});continue}try{let a=await b.clone().json(),e=$(a);if(e){let a=j?j.clampOutput(e):e;if(!a){d.warn("FUSION",`Panel ${c} exceeded output budget`);continue}A.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===A.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===A.length)return a?.stream===!0?(d.info("FUSION",`Only ${A[0].model} succeeded — re-running with stream:true to honor client SSE request (no fusion)`),c(a,A[0].model,{role:"panel",signal:h,trafficClass:"user"})):(d.info("FUSION",`Only ${A[0].model} succeeded — returning its response directly (no fusion, no re-run)`),A[0].res);let B=j?.limits?.maxOutputChars||12e4,C=n(a,q((l=A.map((a,b)=>`[Source ${b+1}]
|
|
10
|
+
${a.text}`).join("\n\n"),[`You are the JUDGE in a model-fusion panel. ${A.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")),B),v);return d.info("FUSION",`Judging ${A.length} answers with ${u}`),c(C,u,{role:"judge",signal:h,trafficClass:"user"})}let ae={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 af({body:a,models:b,handleSingleModel:c,log:d,comboName:e,tuning:f,signal:g}){let h=Array.isArray(b)?b.filter(Boolean):[];if(0===h.length)return new Response(JSON.stringify({error:{message:"Cascade combo has no models"}}),{status:400,headers:{"Content-Type":"application/json"}});let i={...ae,...f||{}},j=Math.min(Math.max(1,i.maxStages),h.length),k=m(a),l=p(a,k),o=null,r=null;for(let a=0;a<j;a++){var s;let b,e=h[a],f=a===j-1,m=l;m=null!=o?n(m,`${i.escalatePrompt}
|
|
11
|
+
|
|
12
|
+
--- Prior Answer (${r}) ---
|
|
13
|
+
${q(o,6e4)}
|
|
14
|
+
--- End Prior Answer ---
|
|
15
|
+
|
|
16
|
+
${i.confidencePrompt}`,k):n(m,i.confidencePrompt,k),d.info("CASCADE",`Stage ${a+1}/${j}: ${e}${o?" (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"}});o=null,r=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"}});o=null,r=e;continue}if(!b?.ok){if(d.warn("CASCADE",`Stage ${a+1} (${e}) returned status ${b?.status}`),f)return b;o=null,r=e;continue}if(f)return d.info("CASCADE",`Final stage (${e}) returning`),b;let p="";try{let a=await b.clone().json().catch(()=>({}));p=$(a)}catch{}let t=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}(p);if(d.info("CASCADE",`Stage ${a+1} (${e}) confidence=${t}`),t>=0&&t>=i.confidenceThreshold)return d.info("CASCADE",`Stage ${a+1} confident (${t} ≥ ${i.confidenceThreshold}) — returning`),b;o=((s=p)&&"string"==typeof s?s.replace(/\s*CONFIDENCE:\s*\d{1,3}\s*$/i,"").trim():s)||p,r=e}return new Response(JSON.stringify({error:{message:"Cascade exhausted all stages"}}),{status:502,headers:{"Content-Type":"application/json"}})}}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";exports.id=4632,exports.ids=[4632],exports.modules={43659:(a,b,c)=>{c.d(b,{A1:()=>g,lR:()=>i,wO:()=>h,yj:()=>e,zL:()=>f});var d=c(3662);function e(a,b){let c;return new Response(JSON.stringify((c=d.LY[a]||(a>=500?{type:"server_error",code:"internal_server_error"}:{type:"invalid_request_error",code:""}),{error:{message:b||d.O[a]||"An error occurred",type:c.type,code:c.code}})),{status:a,headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}})}async function f(a,b=null){let c="";try{c=await a.text()}catch{c=""}if(b&&"function"==typeof b.parseError)try{let e=b.parseError(a,c);if(e&&"object"==typeof e){let b=e.message||d.O[a.status]||`Upstream error: ${a.status}`;return{statusCode:e.status||a.status,message:b,resetsAtMs:e.resetsAtMs}}}catch{}let e="";try{let a=JSON.parse(c);e=a.error?.message||a.message||a.error||c}catch{e=c}let g=("string"==typeof e?e:JSON.stringify(e))||d.O[a.status]||`Upstream error: ${a.status}`;return{statusCode:a.status,message:g}}function g(a,b,c){return{success:!1,status:a,error:b,resetsAtMs:c,response:e(a,b)}}function h(a,b,c,d){let e=Math.max(Math.ceil((new Date(c).getTime()-Date.now())/1e3),1);return new Response(JSON.stringify({error:{message:`${b} (${d})`,type:"server_error",code:"service_unavailable"}}),{status:a,headers:{"Content-Type":"application/json","Retry-After":String(e)}})}function i(a,b,c,d){let e=d||a.code||"FETCH_FAILED",f=a.message||"Unknown error",g=a.cause?.code,h=a.cause?.message,i=g||h?` (cause: ${[g,h].filter(Boolean).join(": ")})`:"";return`[${e}]: ${f}${i}`}},64632:(a,b,c)=>{c.d(b,{Op:()=>S,Nq:()=>E,PE:()=>U});var d=c(4573),e=c(43659),f=c(41004);let g="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Safari/537.36";async function h(a,b="mp3"){let c=await a.arrayBuffer();if(c.byteLength<100)throw Error("Upstream returned empty audio");let e=a.headers.get("content-type")||"",f=b;return e.includes("wav")?f="wav":e.includes("mpeg")||e.includes("mp3")?f="mp3":e.includes("ogg")&&(f="ogg"),{base64:d.Buffer.from(c).toString("base64"),format:f}}async function i(a){let b=await a.text().catch(()=>""),c=`Upstream error (${a.status})`;try{let a=JSON.parse(b);c=a?.error?.message||a?.message||a?.detail?.message||("string"==typeof a?.detail?a.detail:null)||b||c}catch{c=b||c}throw Error(c)}let j={token:null,tokenTime:0},k=0;async function l(){let a=Date.now();if(j.token&&a-j.tokenTime<66e4)return j.token;let b=await fetch("https://translate.google.com/",{headers:{"User-Agent":g}});if(!b.ok)throw Error(`Google translate fetch failed: ${b.status}`);let c=await b.text(),d=c.match(/"FdrFJe":"(.*?)"/)?.[1],e=c.match(/"cfb2h":"(.*?)"/)?.[1];if(!d||!e)throw Error("Failed to parse Google token");return j.token={"f.sid":d,bl:e},j.tokenTime=a,j.token}let m={token:null,tokenTime:0},n=null,o=0;async function p(){let a=Date.now();if(m.token&&a-m.tokenTime<3e5)return m.token;let b=await fetch("https://www.bing.com/translator",{headers:{"User-Agent":g,"Accept-Language":"vi,en-US;q=0.9,en;q=0.8"}});if(!b.ok)throw Error(`Bing translator fetch failed: ${b.status}`);let c=(b.headers.getSetCookie?.()||[]).map(a=>a.split(";")[0]).join("; "),d=(await b.text()).match(/params_AbusePreventionHelper\s*=\s*\[([^,]+),([^,]+),/);if(!d)throw Error("Failed to parse Bing token");return m.token={key:d[1],token:d[2].replace(/"/g,""),cookie:c},m.tokenTime=a,m.token}async function q(a,b,c){let d=b.split("-").slice(0,2).join("-"),e=b.toLowerCase().includes("male")?"Male":"Female",f=`<speak version='1.0' xml:lang='${d}'><voice xml:lang='${d}' xml:gender='${e}' name='${b}'><prosody rate='0.00%'>${a}</prosody></voice></speak>`,h=new URLSearchParams;return h.append("ssml",f),h.append("token",c.token),h.append("key",c.key),fetch("https://www.bing.com/tfettts?isVertical=1&&IG=1&IID=translator.5023&SFX=1",{method:"POST",body:h.toString(),headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"*/*",Origin:"https://www.bing.com",Referer:"https://www.bing.com/translator","User-Agent":g,...c.cookie?{Cookie:c.cookie}:{}}})}async function r(){let a=Date.now();if(n&&a-o<864e5)return n;let b=await fetch("https://speech.platform.bing.com/consumer/speech/synthesize/readaloud/voices/list?trustedclienttoken=6A5AA1D4EAFF4E9FB37E23D68491D6F4",{headers:{"User-Agent":g}});if(!b.ok)throw Error(`Edge TTS voices fetch failed: ${b.status}`);let c=await b.json();return n=c,o=a,c}var s=c(31421),t=c(57975),u=c(51455),v=c(48161),w=c(76760);let x=(0,t.promisify)(s.execFile),y=null;async function z(){let{stdout:a}=await x("say",["-v","?"]),b=[];for(let c of a.split("\n")){let a=c.match(/^([^\s].*?)\s{2,}([a-z]{2}_[A-Z]{2})/);if(!a)continue;let d=a[1].trim(),e=a[2].trim(),f=e.split("_")[0],g=e.split("_")[1];b.push({id:d,name:d,locale:e,lang:f,country:g,gender:""})}return b}async function A(){let{stdout:a}=await x("powershell.exe",["-NoProfile","-NonInteractive","-WindowStyle","Hidden","-Command","Add-Type -AssemblyName System.Speech; $s = New-Object System.Speech.Synthesis.SpeechSynthesizer; $s.GetInstalledVoices() | ForEach-Object { $v = $_.VoiceInfo; [PSCustomObject]@{ Name=$v.Name; Culture=$v.Culture.Name; Gender=$v.Gender } } | ConvertTo-Json -Compress"],{windowsHide:!0}),b=JSON.parse(a.trim()||"[]");return(Array.isArray(b)?b:[b]).map(a=>{let b=a.Culture||"en-US",[c,d=""]=b.split("-");return{id:a.Name,name:a.Name,locale:b.replace("-","_"),lang:c,country:d,gender:({1:"Male",2:"Female",Male:"Male",Female:"Female"})[a.Gender]||""}})}async function B(){if(y)return y;try{let a="win32"===process.platform?await A():await z();return y=a,a}catch{return[]}}async function C(a,b){let c=await (0,u.mkdtemp)((0,w.join)((0,v.tmpdir)(),"tts-")),d=(0,w.join)(c,"out.aiff"),e=(0,w.join)(c,"out.mp3");try{let c=b?["-v",b,"-o",d,a]:["-o",d,a];return await x("say",c),await x("ffmpeg",["-y","-i",d,"-codec:a","libmp3lame","-qscale:a","4",e]),(await (0,u.readFile)(e)).toString("base64")}finally{await (0,u.rm)(c,{recursive:!0,force:!0})}}let D=new Map;async function E(a){if(!a)throw Error("ElevenLabs API key required");let b=Date.now(),c=D.get(a);if(c&&b-c.time<864e5)return c.voices;let d=await fetch("https://api.elevenlabs.io/v1/voices",{headers:{"xi-api-key":a,"Content-Type":"application/json"}});if(!d.ok)throw Error(`ElevenLabs voices fetch failed: ${d.status}`);let e=((await d.json()).voices||[]).map(a=>({...a,lang:a.labels?.language||"en"}));return D.set(a,{voices:e,time:b}),e}var F=c(26070);let G=F.B$.openai?.ttsConfig?.defaultModel,H=F.B$.openrouter?.ttsConfig||{},I=F.B$.gemini?.ttsConfig||{},J=I.baseUrl,K=[...I.models||[],...F.vq["gemini-tts-models"]||[],...(F.vq.gemini||[]).filter(a=>"tts"===(a.kind||a.type))].map(a=>a?.id).filter(Boolean).filter((a,b,c)=>c.indexOf(a)===b),L=K[0]||"gemini-3.1-flash-tts-preview",M="Kore",N=[{id:"Zephyr",lang:"en",gender:"Female"},{id:"Puck",lang:"en",gender:"Male"},{id:"Charon",lang:"en",gender:"Male"},{id:"Kore",lang:"en",gender:"Female"},{id:"Fenrir",lang:"en",gender:"Male"},{id:"Leda",lang:"en",gender:"Female"},{id:"Orus",lang:"en",gender:"Male"},{id:"Aoede",lang:"en",gender:"Female"},{id:"Callirrhoe",lang:"en",gender:"Female"},{id:"Autonoe",lang:"en",gender:"Female"},{id:"Enceladus",lang:"en",gender:"Male"},{id:"Iapetus",lang:"en",gender:"Male"},{id:"Umbriel",lang:"en",gender:"Male"},{id:"Algieba",lang:"en",gender:"Male"},{id:"Despina",lang:"en",gender:"Female"},{id:"Erinome",lang:"en",gender:"Female"},{id:"Algenib",lang:"en",gender:"Male"},{id:"Rasalgethi",lang:"en",gender:"Male"},{id:"Laomedeia",lang:"en",gender:"Female"},{id:"Achernar",lang:"en",gender:"Female"},{id:"Alnilam",lang:"en",gender:"Male"},{id:"Schedar",lang:"en",gender:"Male"},{id:"Gacrux",lang:"en",gender:"Female"},{id:"Pulcherrima",lang:"en",gender:"Female"},{id:"Achird",lang:"en",gender:"Male"},{id:"Zubenelgenubi",lang:"en",gender:"Male"},{id:"Vindemiatrix",lang:"en",gender:"Female"},{id:"Sadachbia",lang:"en",gender:"Male"},{id:"Sadaltager",lang:"en",gender:"Male"},{id:"Sulafat",lang:"en",gender:"Female"}];async function O(){return N.map(a=>({voice_id:a.id,name:a.id,labels:{language:a.lang,gender:a.gender}}))}let P={hyperbolic:async function({baseUrl:a,apiKey:b,text:c}){let d=await fetch(a,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${b}`},body:JSON.stringify({text:c})});return d.ok||await i(d),{base64:(await d.json()).audio,format:"mp3"}},deepgram:async function({baseUrl:a,apiKey:b,text:c,modelId:d}){let e=new URL(a);e.searchParams.set("model",d||"aura-asteria-en");let f=await fetch(e.toString(),{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Token ${b}`},body:JSON.stringify({text:c})});return f.ok||await i(f),h(f,"mp3")},"nvidia-tts":async function({baseUrl:a,apiKey:b,text:c,modelId:d,voiceId:e}){let f=await fetch(a,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${b}`},body:JSON.stringify({input:{text:c},voice:e||"default",model:d})});return f.ok||await i(f),h(f,"wav")},"huggingface-tts":async function({baseUrl:a,apiKey:b,text:c,modelId:d}){if(!d||d.includes(".."))throw Error("Invalid HuggingFace model ID");let e=await fetch(`${a}/${d}`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${b}`},body:JSON.stringify({inputs:c})});return e.ok||await i(e),h(e,"wav")},inworld:async function({baseUrl:a,apiKey:b,text:c,modelId:d,voiceId:e}){let f=await fetch(a,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Basic ${b}`},body:JSON.stringify({text:c,voiceId:e||"Alex",modelId:d||"inworld-tts-1.5-mini",audioConfig:{audioEncoding:"MP3"}})});f.ok||await i(f);let g=await f.json();if(!g.audioContent)throw Error("Inworld TTS returned no audio");return{base64:g.audioContent,format:"mp3"}},cartesia:async function({baseUrl:a,apiKey:b,text:c,modelId:d,voiceId:e}){let f=await fetch(a,{method:"POST",headers:{"Content-Type":"application/json","X-API-Key":b,"Cartesia-Version":"2024-06-10"},body:JSON.stringify({model_id:d||"sonic-2",transcript:c,...e?{voice:{mode:"id",id:e}}:{},output_format:{container:"mp3",bit_rate:128e3,sample_rate:44100}})});return f.ok||await i(f),h(f,"mp3")},playht:async function({baseUrl:a,apiKey:b,text:c,modelId:d,voiceId:e}){let[f,g]=(b||":").split(":"),j=await fetch(a,{method:"POST",headers:{"Content-Type":"application/json",Accept:"audio/mpeg","X-USER-ID":f||"",Authorization:`Bearer ${g||b}`},body:JSON.stringify({text:c,voice:e||"s3://voice-cloning-zero-shot/d9ff78ba-d016-47f6-b0ef-dd630f59414e/female-cs/manifest.json",voice_engine:d||"PlayDialog",output_format:"mp3",speed:1})});return j.ok||await i(j),h(j,"mp3")},coqui:async function({baseUrl:a,text:b,voiceId:c}){let d=await fetch(a,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({text:b,...c?{speaker_id:c}:{}})});return d.ok||await i(d),h(d,"wav")},tortoise:async function({baseUrl:a,text:b,voiceId:c}){let d=await fetch(a,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({text:b,voice:c||"random"})});return d.ok||await i(d),h(d,"wav")},openai:async function({baseUrl:a,apiKey:b,text:c,modelId:d,voiceId:e}){let f={"Content-Type":"application/json"};b&&(f.Authorization=`Bearer ${b}`);let g=await fetch(a,{method:"POST",headers:f,body:JSON.stringify({model:d,input:c,voice:e||"alloy",response_format:"mp3",speed:1})});return g.ok||await i(g),h(g,"mp3")},"minimax-tts":async function({baseUrl:a,apiKey:b,text:c,modelId:e,voiceId:f}){let g=await fetch(a,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${b}`},body:JSON.stringify({model:e||"speech-2.8-hd",text:c,stream:!1,language_boost:"auto",output_format:"hex",voice_setting:{voice_id:f||"English_expressive_narrator",speed:1,vol:1,pitch:0},audio_setting:{sample_rate:32e3,bitrate:128e3,format:"mp3",channel:1}})}),h=await g.text(),i={};if(h)try{i=JSON.parse(h)}catch{i={}}let j=i.base_resp||i.baseResp||{},k=Number(j.status_code??j.statusCode??0),l=j.status_msg||j.statusMsg||i.message||"";if(!g.ok)throw Error(l||h||`MiniMax TTS error (${g.status})`);if(0!==k)throw Error(l||"MiniMax TTS upstream error");return{base64:function(a){let b="string"==typeof a?a.trim():"";if(!b)throw Error("MiniMax TTS returned no audio");if(b.length%2!=0||!/^[0-9a-f]+$/i.test(b))throw Error("MiniMax TTS returned invalid audio");return d.Buffer.from(b,"hex").toString("base64")}(i.data?.audio),format:i.extra_info?.audio_format||i.extraInfo?.audioFormat||"mp3"}}},Q={"google-tts":{noAuth:!0,async synthesize(a,b){let c=b||"en",d=await l(),e=a.replace(/[@^*()\\/\-_+=><"'\u201c\u201d\u3010\u3011]/g," ").replaceAll(", ",". "),f="jQ1olc",g=1e5*++k+Math.floor(1e3+9e3*Math.random()),h=new URLSearchParams({rpcids:f,"f.sid":d["f.sid"],bl:d.bl,hl:c,"soc-app":1,"soc-platform":1,"soc-device":1,_reqid:g,rt:"c"}),i=[e,c,null,"undefined",[0]],j=new URLSearchParams;j.append("f.req",JSON.stringify([[[f,JSON.stringify(i),null,"generic"]]]));let m=await fetch(`https://translate.google.com/_/TranslateWebserverUi/data/batchexecute?${h}`,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Referer:"https://translate.google.com/"},body:j.toString()});if(!m.ok)throw Error(`Google TTS failed: ${m.status}`);let n=JSON.parse(JSON.parse((await m.text()).split("\n")[3])[0][2])[0];if(!n||n.length<100)throw Error("Google TTS returned empty audio");return{base64:n,format:"mp3"}}},"edge-tts":{noAuth:!0,async synthesize(a,b){let c=b||"vi-VN-HoaiMyNeural",e=await p(),f=await q(a,c,e);if((429===f.status||403===f.status)&&(m.token=null,m.tokenTime=0,e=await p(),f=await q(a,c,e)),!f.ok){let a=await f.text().catch(()=>"");throw Error(`Bing TTS failed: ${f.status}${a?" - "+a:""}`)}let g=await f.arrayBuffer();if(g.byteLength<1024)throw Error("Bing TTS returned empty audio");return{base64:d.Buffer.from(g).toString("base64"),format:"mp3"}}},"local-device":{noAuth:!0,synthesize:async(a,b)=>({base64:await C(a,b),format:"mp3"})},elevenlabs:{async synthesize(a,b,c){if(!c?.apiKey)throw Error("ElevenLabs API key required");let e="eleven_flash_v2_5",f=b;b&&b.includes("/")&&([e,f]=b.split("/"));let g=await fetch(`https://api.elevenlabs.io/v1/text-to-speech/${f}`,{method:"POST",headers:{"xi-api-key":c.apiKey,"Content-Type":"application/json"},body:JSON.stringify({text:a,model_id:e,voice_settings:{stability:.5,similarity_boost:.75}})});if(!g.ok){let a=await g.json().catch(()=>({}));throw Error(a?.detail?.message||`ElevenLabs TTS failed: ${g.status}`)}let h=await g.arrayBuffer();if(h.byteLength<1024)throw Error("ElevenLabs TTS returned empty audio");return{base64:d.Buffer.from(h).toString("base64"),format:"mp3"}}},openai:{async synthesize(a,b,c){if(!c?.apiKey)throw Error("No OpenAI API key configured");let e=G,f="alloy";if(b&&b.includes("/")){let a=b.split("/");2===a.length&&([e,f]=a)}else b&&(f=b);let g=(c.baseUrl||"https://api.openai.com").replace(/\/+$/,""),h=await fetch(`${g}/v1/audio/speech`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${c.apiKey}`},body:JSON.stringify({model:e,voice:f,input:a})});if(!h.ok){let a=await h.json().catch(()=>({}));throw Error(a?.error?.message||`OpenAI TTS failed: ${h.status}`)}let i=await h.arrayBuffer();return{base64:d.Buffer.from(i).toString("base64"),format:"mp3"}}},openrouter:{async synthesize(a,b,c){if(!c?.apiKey)throw Error("No OpenRouter API key configured");let d=H.defaultModel,e="alloy";if(b&&b.includes("/")){let a=b.lastIndexOf("/"),c=b.slice(a+1),f=b.slice(0,a);f.includes("/")?(d=f,e=c):e=b}else b&&(e=b);let f=await fetch(H.baseUrl,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${c.apiKey}`,...H.headers||{}},body:JSON.stringify({model:d,modalities:["text","audio"],audio:{voice:e,format:"wav"},stream:!0,messages:[{role:"user",content:a}]})});if(!f.ok){let a=await f.json().catch(()=>({}));throw Error(a?.error?.message||`OpenRouter TTS failed: ${f.status}`)}let g=[],h=f.body.getReader(),i=new TextDecoder,j="";for(;;){let{done:a,value:b}=await h.read();if(a)break;let c=(j+=i.decode(b,{stream:!0})).split("\n");for(let a of(j=c.pop(),c))if(a.startsWith("data: ")&&"data: [DONE]"!==a)try{let b=JSON.parse(a.slice(6)),c=b.choices?.[0]?.delta?.audio?.data;c&&g.push(c)}catch{}}if(0===g.length)throw Error("OpenRouter TTS returned no audio data");return{base64:g.join(""),format:"wav"}}},gemini:{async synthesize(a,b,c,e,f={}){var g,h;let i,j;if(!c?.apiKey)throw Error("No Gemini API key configured");let{modelId:k,voiceId:l}=function(a){if(!a)return{modelId:L,voiceId:M};for(let b of K){if(a===b)return{modelId:b,voiceId:M};if(a.startsWith(`${b}/`))return{modelId:b,voiceId:a.slice(b.length+1)}}return{modelId:L,voiceId:a}}(b),m=`${J}/${k}:generateContent?key=${c.apiKey}`,n=await fetch(m,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({contents:[{parts:[{text:(g=f.language,/:\s/.test(a)?a:g?`Say in ${g}: ${a}`:`Say: ${a}`)}]}],generationConfig:{responseModalities:["AUDIO"],speechConfig:{voiceConfig:{prebuiltVoiceConfig:{voiceName:l}}}}})});if(!n.ok){let a=await n.json().catch(()=>({}));throw Error(a?.error?.message||`Gemini TTS failed: ${n.status}`)}let o=await n.json(),p=o?.candidates?.[0]?.content?.parts?.find(a=>a.inlineData?.data)?.inlineData?.data;if(!p){let a=o?.candidates?.[0]?.finishReason||o?.promptFeedback?.blockReason||"unknown";throw Error(`Gemini TTS returned no audio (finishReason: ${a}, voice: ${l}, model: ${k})`)}return{base64:(i=(h=d.Buffer.from(p,"base64")).length,(j=d.Buffer.alloc(44)).write("RIFF",0),j.writeUInt32LE(36+i,4),j.write("WAVE",8),j.write("fmt ",12),j.writeUInt32LE(16,16),j.writeUInt16LE(1,20),j.writeUInt16LE(1,22),j.writeUInt32LE(24e3,24),j.writeUInt32LE(48e3,28),j.writeUInt16LE(2,32),j.writeUInt16LE(16,34),j.write("data",36),j.writeUInt32LE(i,40),d.Buffer.concat([j,h])).toString("base64"),format:"wav"}}}};async function R(a,b,d,e){let{AI_PROVIDERS:f}=await c.e(615).then(c.bind(c,40615)),g=f[a]?.ttsConfig;if(!g)return null;let h=P[g.format];if(!h)return null;let i=e?.apiKey;if("none"!==g.authType&&!i)throw Error(`${a} API key required`);let{PROVIDER_MODELS:j}=await c.e(5699).then(c.bind(c,45699)),k=(j[a]||[]).filter(a=>"tts"===(a.kind||a.type)),{modelId:l,voiceId:m}=function(a,b="",c="",d=[]){if(!a)return{modelId:b,voiceId:c};for(let b of d.map(a=>a.id||a).filter(Boolean).sort((a,b)=>b.length-a.length)){if(a===b)return{modelId:b,voiceId:c};if(a.startsWith(`${b}/`))return{modelId:b,voiceId:a.slice(b.length+1)}}let e=a.lastIndexOf("/");return e>0?{modelId:a.slice(0,e),voiceId:a.slice(e+1)}:{modelId:b||a,voiceId:c||a}}(d,k[0]?.id||"","",k);return h({baseUrl:g.baseUrl,apiKey:i,text:b,modelId:l,voiceId:m})}let S={"edge-tts":r,"local-device":B,elevenlabs:E,gemini:O};function T(a,b,c){let e=d.Buffer.from(a,"base64");return"json"===c?{success:!0,response:new Response(JSON.stringify({audio:a,format:b}),{headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}})}:{success:!0,response:new Response(e,{headers:{"Content-Type":`audio/${b}`,"Content-Length":String(e.length),"Access-Control-Allow-Origin":"*"}})}}async function U({provider:a,model:b,input:c,credentials:d,responseFormat:g="mp3",language:h}){if(!c?.trim())return(0,e.A1)(f.gx.BAD_REQUEST,"Missing required field: input");try{let i=Q[a]||null;if(i){let a=await i.synthesize(c.trim(),b,d,g,{language:h});if(void 0!==a.success)return a;return T(a.base64,a.format,g)}let j=await R(a,c.trim(),b,d);if(j)return T(j.base64,j.format,g);return(0,e.A1)(f.gx.BAD_REQUEST,`Provider '${a}' does not support TTS via this route.`)}catch(a){return(0,e.A1)(f.gx.BAD_GATEWAY,a.message||"TTS synthesis failed")}}}};
|
|
1
|
+
"use strict";exports.id=4632,exports.ids=[4632],exports.modules={64632:(a,b,c)=>{c.d(b,{Op:()=>S,Nq:()=>E,PE:()=>U});var d=c(4573),e=c(43659),f=c(41004);let g="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Safari/537.36";async function h(a,b="mp3"){let c=await a.arrayBuffer();if(c.byteLength<100)throw Error("Upstream returned empty audio");let e=a.headers.get("content-type")||"",f=b;return e.includes("wav")?f="wav":e.includes("mpeg")||e.includes("mp3")?f="mp3":e.includes("ogg")&&(f="ogg"),{base64:d.Buffer.from(c).toString("base64"),format:f}}async function i(a){let b=await a.text().catch(()=>""),c=`Upstream error (${a.status})`;try{let a=JSON.parse(b);c=a?.error?.message||a?.message||a?.detail?.message||("string"==typeof a?.detail?a.detail:null)||b||c}catch{c=b||c}throw Error(c)}let j={token:null,tokenTime:0},k=0;async function l(){let a=Date.now();if(j.token&&a-j.tokenTime<66e4)return j.token;let b=await fetch("https://translate.google.com/",{headers:{"User-Agent":g}});if(!b.ok)throw Error(`Google translate fetch failed: ${b.status}`);let c=await b.text(),d=c.match(/"FdrFJe":"(.*?)"/)?.[1],e=c.match(/"cfb2h":"(.*?)"/)?.[1];if(!d||!e)throw Error("Failed to parse Google token");return j.token={"f.sid":d,bl:e},j.tokenTime=a,j.token}let m={token:null,tokenTime:0},n=null,o=0;async function p(){let a=Date.now();if(m.token&&a-m.tokenTime<3e5)return m.token;let b=await fetch("https://www.bing.com/translator",{headers:{"User-Agent":g,"Accept-Language":"vi,en-US;q=0.9,en;q=0.8"}});if(!b.ok)throw Error(`Bing translator fetch failed: ${b.status}`);let c=(b.headers.getSetCookie?.()||[]).map(a=>a.split(";")[0]).join("; "),d=(await b.text()).match(/params_AbusePreventionHelper\s*=\s*\[([^,]+),([^,]+),/);if(!d)throw Error("Failed to parse Bing token");return m.token={key:d[1],token:d[2].replace(/"/g,""),cookie:c},m.tokenTime=a,m.token}async function q(a,b,c){let d=b.split("-").slice(0,2).join("-"),e=b.toLowerCase().includes("male")?"Male":"Female",f=`<speak version='1.0' xml:lang='${d}'><voice xml:lang='${d}' xml:gender='${e}' name='${b}'><prosody rate='0.00%'>${a}</prosody></voice></speak>`,h=new URLSearchParams;return h.append("ssml",f),h.append("token",c.token),h.append("key",c.key),fetch("https://www.bing.com/tfettts?isVertical=1&&IG=1&IID=translator.5023&SFX=1",{method:"POST",body:h.toString(),headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"*/*",Origin:"https://www.bing.com",Referer:"https://www.bing.com/translator","User-Agent":g,...c.cookie?{Cookie:c.cookie}:{}}})}async function r(){let a=Date.now();if(n&&a-o<864e5)return n;let b=await fetch("https://speech.platform.bing.com/consumer/speech/synthesize/readaloud/voices/list?trustedclienttoken=6A5AA1D4EAFF4E9FB37E23D68491D6F4",{headers:{"User-Agent":g}});if(!b.ok)throw Error(`Edge TTS voices fetch failed: ${b.status}`);let c=await b.json();return n=c,o=a,c}var s=c(31421),t=c(57975),u=c(51455),v=c(48161),w=c(76760);let x=(0,t.promisify)(s.execFile),y=null;async function z(){let{stdout:a}=await x("say",["-v","?"]),b=[];for(let c of a.split("\n")){let a=c.match(/^([^\s].*?)\s{2,}([a-z]{2}_[A-Z]{2})/);if(!a)continue;let d=a[1].trim(),e=a[2].trim(),f=e.split("_")[0],g=e.split("_")[1];b.push({id:d,name:d,locale:e,lang:f,country:g,gender:""})}return b}async function A(){let{stdout:a}=await x("powershell.exe",["-NoProfile","-NonInteractive","-WindowStyle","Hidden","-Command","Add-Type -AssemblyName System.Speech; $s = New-Object System.Speech.Synthesis.SpeechSynthesizer; $s.GetInstalledVoices() | ForEach-Object { $v = $_.VoiceInfo; [PSCustomObject]@{ Name=$v.Name; Culture=$v.Culture.Name; Gender=$v.Gender } } | ConvertTo-Json -Compress"],{windowsHide:!0}),b=JSON.parse(a.trim()||"[]");return(Array.isArray(b)?b:[b]).map(a=>{let b=a.Culture||"en-US",[c,d=""]=b.split("-");return{id:a.Name,name:a.Name,locale:b.replace("-","_"),lang:c,country:d,gender:({1:"Male",2:"Female",Male:"Male",Female:"Female"})[a.Gender]||""}})}async function B(){if(y)return y;try{let a="win32"===process.platform?await A():await z();return y=a,a}catch{return[]}}async function C(a,b){let c=await (0,u.mkdtemp)((0,w.join)((0,v.tmpdir)(),"tts-")),d=(0,w.join)(c,"out.aiff"),e=(0,w.join)(c,"out.mp3");try{let c=b?["-v",b,"-o",d,a]:["-o",d,a];return await x("say",c),await x("ffmpeg",["-y","-i",d,"-codec:a","libmp3lame","-qscale:a","4",e]),(await (0,u.readFile)(e)).toString("base64")}finally{await (0,u.rm)(c,{recursive:!0,force:!0})}}let D=new Map;async function E(a){if(!a)throw Error("ElevenLabs API key required");let b=Date.now(),c=D.get(a);if(c&&b-c.time<864e5)return c.voices;let d=await fetch("https://api.elevenlabs.io/v1/voices",{headers:{"xi-api-key":a,"Content-Type":"application/json"}});if(!d.ok)throw Error(`ElevenLabs voices fetch failed: ${d.status}`);let e=((await d.json()).voices||[]).map(a=>({...a,lang:a.labels?.language||"en"}));return D.set(a,{voices:e,time:b}),e}var F=c(26070);let G=F.B$.openai?.ttsConfig?.defaultModel,H=F.B$.openrouter?.ttsConfig||{},I=F.B$.gemini?.ttsConfig||{},J=I.baseUrl,K=[...I.models||[],...F.vq["gemini-tts-models"]||[],...(F.vq.gemini||[]).filter(a=>"tts"===(a.kind||a.type))].map(a=>a?.id).filter(Boolean).filter((a,b,c)=>c.indexOf(a)===b),L=K[0]||"gemini-3.1-flash-tts-preview",M="Kore",N=[{id:"Zephyr",lang:"en",gender:"Female"},{id:"Puck",lang:"en",gender:"Male"},{id:"Charon",lang:"en",gender:"Male"},{id:"Kore",lang:"en",gender:"Female"},{id:"Fenrir",lang:"en",gender:"Male"},{id:"Leda",lang:"en",gender:"Female"},{id:"Orus",lang:"en",gender:"Male"},{id:"Aoede",lang:"en",gender:"Female"},{id:"Callirrhoe",lang:"en",gender:"Female"},{id:"Autonoe",lang:"en",gender:"Female"},{id:"Enceladus",lang:"en",gender:"Male"},{id:"Iapetus",lang:"en",gender:"Male"},{id:"Umbriel",lang:"en",gender:"Male"},{id:"Algieba",lang:"en",gender:"Male"},{id:"Despina",lang:"en",gender:"Female"},{id:"Erinome",lang:"en",gender:"Female"},{id:"Algenib",lang:"en",gender:"Male"},{id:"Rasalgethi",lang:"en",gender:"Male"},{id:"Laomedeia",lang:"en",gender:"Female"},{id:"Achernar",lang:"en",gender:"Female"},{id:"Alnilam",lang:"en",gender:"Male"},{id:"Schedar",lang:"en",gender:"Male"},{id:"Gacrux",lang:"en",gender:"Female"},{id:"Pulcherrima",lang:"en",gender:"Female"},{id:"Achird",lang:"en",gender:"Male"},{id:"Zubenelgenubi",lang:"en",gender:"Male"},{id:"Vindemiatrix",lang:"en",gender:"Female"},{id:"Sadachbia",lang:"en",gender:"Male"},{id:"Sadaltager",lang:"en",gender:"Male"},{id:"Sulafat",lang:"en",gender:"Female"}];async function O(){return N.map(a=>({voice_id:a.id,name:a.id,labels:{language:a.lang,gender:a.gender}}))}let P={hyperbolic:async function({baseUrl:a,apiKey:b,text:c}){let d=await fetch(a,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${b}`},body:JSON.stringify({text:c})});return d.ok||await i(d),{base64:(await d.json()).audio,format:"mp3"}},deepgram:async function({baseUrl:a,apiKey:b,text:c,modelId:d}){let e=new URL(a);e.searchParams.set("model",d||"aura-asteria-en");let f=await fetch(e.toString(),{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Token ${b}`},body:JSON.stringify({text:c})});return f.ok||await i(f),h(f,"mp3")},"nvidia-tts":async function({baseUrl:a,apiKey:b,text:c,modelId:d,voiceId:e}){let f=await fetch(a,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${b}`},body:JSON.stringify({input:{text:c},voice:e||"default",model:d})});return f.ok||await i(f),h(f,"wav")},"huggingface-tts":async function({baseUrl:a,apiKey:b,text:c,modelId:d}){if(!d||d.includes(".."))throw Error("Invalid HuggingFace model ID");let e=await fetch(`${a}/${d}`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${b}`},body:JSON.stringify({inputs:c})});return e.ok||await i(e),h(e,"wav")},inworld:async function({baseUrl:a,apiKey:b,text:c,modelId:d,voiceId:e}){let f=await fetch(a,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Basic ${b}`},body:JSON.stringify({text:c,voiceId:e||"Alex",modelId:d||"inworld-tts-1.5-mini",audioConfig:{audioEncoding:"MP3"}})});f.ok||await i(f);let g=await f.json();if(!g.audioContent)throw Error("Inworld TTS returned no audio");return{base64:g.audioContent,format:"mp3"}},cartesia:async function({baseUrl:a,apiKey:b,text:c,modelId:d,voiceId:e}){let f=await fetch(a,{method:"POST",headers:{"Content-Type":"application/json","X-API-Key":b,"Cartesia-Version":"2024-06-10"},body:JSON.stringify({model_id:d||"sonic-2",transcript:c,...e?{voice:{mode:"id",id:e}}:{},output_format:{container:"mp3",bit_rate:128e3,sample_rate:44100}})});return f.ok||await i(f),h(f,"mp3")},playht:async function({baseUrl:a,apiKey:b,text:c,modelId:d,voiceId:e}){let[f,g]=(b||":").split(":"),j=await fetch(a,{method:"POST",headers:{"Content-Type":"application/json",Accept:"audio/mpeg","X-USER-ID":f||"",Authorization:`Bearer ${g||b}`},body:JSON.stringify({text:c,voice:e||"s3://voice-cloning-zero-shot/d9ff78ba-d016-47f6-b0ef-dd630f59414e/female-cs/manifest.json",voice_engine:d||"PlayDialog",output_format:"mp3",speed:1})});return j.ok||await i(j),h(j,"mp3")},coqui:async function({baseUrl:a,text:b,voiceId:c}){let d=await fetch(a,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({text:b,...c?{speaker_id:c}:{}})});return d.ok||await i(d),h(d,"wav")},tortoise:async function({baseUrl:a,text:b,voiceId:c}){let d=await fetch(a,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({text:b,voice:c||"random"})});return d.ok||await i(d),h(d,"wav")},openai:async function({baseUrl:a,apiKey:b,text:c,modelId:d,voiceId:e}){let f={"Content-Type":"application/json"};b&&(f.Authorization=`Bearer ${b}`);let g=await fetch(a,{method:"POST",headers:f,body:JSON.stringify({model:d,input:c,voice:e||"alloy",response_format:"mp3",speed:1})});return g.ok||await i(g),h(g,"mp3")},"minimax-tts":async function({baseUrl:a,apiKey:b,text:c,modelId:e,voiceId:f}){let g=await fetch(a,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${b}`},body:JSON.stringify({model:e||"speech-2.8-hd",text:c,stream:!1,language_boost:"auto",output_format:"hex",voice_setting:{voice_id:f||"English_expressive_narrator",speed:1,vol:1,pitch:0},audio_setting:{sample_rate:32e3,bitrate:128e3,format:"mp3",channel:1}})}),h=await g.text(),i={};if(h)try{i=JSON.parse(h)}catch{i={}}let j=i.base_resp||i.baseResp||{},k=Number(j.status_code??j.statusCode??0),l=j.status_msg||j.statusMsg||i.message||"";if(!g.ok)throw Error(l||h||`MiniMax TTS error (${g.status})`);if(0!==k)throw Error(l||"MiniMax TTS upstream error");return{base64:function(a){let b="string"==typeof a?a.trim():"";if(!b)throw Error("MiniMax TTS returned no audio");if(b.length%2!=0||!/^[0-9a-f]+$/i.test(b))throw Error("MiniMax TTS returned invalid audio");return d.Buffer.from(b,"hex").toString("base64")}(i.data?.audio),format:i.extra_info?.audio_format||i.extraInfo?.audioFormat||"mp3"}}},Q={"google-tts":{noAuth:!0,async synthesize(a,b){let c=b||"en",d=await l(),e=a.replace(/[@^*()\\/\-_+=><"'\u201c\u201d\u3010\u3011]/g," ").replaceAll(", ",". "),f="jQ1olc",g=1e5*++k+Math.floor(1e3+9e3*Math.random()),h=new URLSearchParams({rpcids:f,"f.sid":d["f.sid"],bl:d.bl,hl:c,"soc-app":1,"soc-platform":1,"soc-device":1,_reqid:g,rt:"c"}),i=[e,c,null,"undefined",[0]],j=new URLSearchParams;j.append("f.req",JSON.stringify([[[f,JSON.stringify(i),null,"generic"]]]));let m=await fetch(`https://translate.google.com/_/TranslateWebserverUi/data/batchexecute?${h}`,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Referer:"https://translate.google.com/"},body:j.toString()});if(!m.ok)throw Error(`Google TTS failed: ${m.status}`);let n=JSON.parse(JSON.parse((await m.text()).split("\n")[3])[0][2])[0];if(!n||n.length<100)throw Error("Google TTS returned empty audio");return{base64:n,format:"mp3"}}},"edge-tts":{noAuth:!0,async synthesize(a,b){let c=b||"vi-VN-HoaiMyNeural",e=await p(),f=await q(a,c,e);if((429===f.status||403===f.status)&&(m.token=null,m.tokenTime=0,e=await p(),f=await q(a,c,e)),!f.ok){let a=await f.text().catch(()=>"");throw Error(`Bing TTS failed: ${f.status}${a?" - "+a:""}`)}let g=await f.arrayBuffer();if(g.byteLength<1024)throw Error("Bing TTS returned empty audio");return{base64:d.Buffer.from(g).toString("base64"),format:"mp3"}}},"local-device":{noAuth:!0,synthesize:async(a,b)=>({base64:await C(a,b),format:"mp3"})},elevenlabs:{async synthesize(a,b,c){if(!c?.apiKey)throw Error("ElevenLabs API key required");let e="eleven_flash_v2_5",f=b;b&&b.includes("/")&&([e,f]=b.split("/"));let g=await fetch(`https://api.elevenlabs.io/v1/text-to-speech/${f}`,{method:"POST",headers:{"xi-api-key":c.apiKey,"Content-Type":"application/json"},body:JSON.stringify({text:a,model_id:e,voice_settings:{stability:.5,similarity_boost:.75}})});if(!g.ok){let a=await g.json().catch(()=>({}));throw Error(a?.detail?.message||`ElevenLabs TTS failed: ${g.status}`)}let h=await g.arrayBuffer();if(h.byteLength<1024)throw Error("ElevenLabs TTS returned empty audio");return{base64:d.Buffer.from(h).toString("base64"),format:"mp3"}}},openai:{async synthesize(a,b,c){if(!c?.apiKey)throw Error("No OpenAI API key configured");let e=G,f="alloy";if(b&&b.includes("/")){let a=b.split("/");2===a.length&&([e,f]=a)}else b&&(f=b);let g=(c.baseUrl||"https://api.openai.com").replace(/\/+$/,""),h=await fetch(`${g}/v1/audio/speech`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${c.apiKey}`},body:JSON.stringify({model:e,voice:f,input:a})});if(!h.ok){let a=await h.json().catch(()=>({}));throw Error(a?.error?.message||`OpenAI TTS failed: ${h.status}`)}let i=await h.arrayBuffer();return{base64:d.Buffer.from(i).toString("base64"),format:"mp3"}}},openrouter:{async synthesize(a,b,c){if(!c?.apiKey)throw Error("No OpenRouter API key configured");let d=H.defaultModel,e="alloy";if(b&&b.includes("/")){let a=b.lastIndexOf("/"),c=b.slice(a+1),f=b.slice(0,a);f.includes("/")?(d=f,e=c):e=b}else b&&(e=b);let f=await fetch(H.baseUrl,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${c.apiKey}`,...H.headers||{}},body:JSON.stringify({model:d,modalities:["text","audio"],audio:{voice:e,format:"wav"},stream:!0,messages:[{role:"user",content:a}]})});if(!f.ok){let a=await f.json().catch(()=>({}));throw Error(a?.error?.message||`OpenRouter TTS failed: ${f.status}`)}let g=[],h=f.body.getReader(),i=new TextDecoder,j="";for(;;){let{done:a,value:b}=await h.read();if(a)break;let c=(j+=i.decode(b,{stream:!0})).split("\n");for(let a of(j=c.pop(),c))if(a.startsWith("data: ")&&"data: [DONE]"!==a)try{let b=JSON.parse(a.slice(6)),c=b.choices?.[0]?.delta?.audio?.data;c&&g.push(c)}catch{}}if(0===g.length)throw Error("OpenRouter TTS returned no audio data");return{base64:g.join(""),format:"wav"}}},gemini:{async synthesize(a,b,c,e,f={}){var g,h;let i,j;if(!c?.apiKey)throw Error("No Gemini API key configured");let{modelId:k,voiceId:l}=function(a){if(!a)return{modelId:L,voiceId:M};for(let b of K){if(a===b)return{modelId:b,voiceId:M};if(a.startsWith(`${b}/`))return{modelId:b,voiceId:a.slice(b.length+1)}}return{modelId:L,voiceId:a}}(b),m=`${J}/${k}:generateContent?key=${c.apiKey}`,n=await fetch(m,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({contents:[{parts:[{text:(g=f.language,/:\s/.test(a)?a:g?`Say in ${g}: ${a}`:`Say: ${a}`)}]}],generationConfig:{responseModalities:["AUDIO"],speechConfig:{voiceConfig:{prebuiltVoiceConfig:{voiceName:l}}}}})});if(!n.ok){let a=await n.json().catch(()=>({}));throw Error(a?.error?.message||`Gemini TTS failed: ${n.status}`)}let o=await n.json(),p=o?.candidates?.[0]?.content?.parts?.find(a=>a.inlineData?.data)?.inlineData?.data;if(!p){let a=o?.candidates?.[0]?.finishReason||o?.promptFeedback?.blockReason||"unknown";throw Error(`Gemini TTS returned no audio (finishReason: ${a}, voice: ${l}, model: ${k})`)}return{base64:(i=(h=d.Buffer.from(p,"base64")).length,(j=d.Buffer.alloc(44)).write("RIFF",0),j.writeUInt32LE(36+i,4),j.write("WAVE",8),j.write("fmt ",12),j.writeUInt32LE(16,16),j.writeUInt16LE(1,20),j.writeUInt16LE(1,22),j.writeUInt32LE(24e3,24),j.writeUInt32LE(48e3,28),j.writeUInt16LE(2,32),j.writeUInt16LE(16,34),j.write("data",36),j.writeUInt32LE(i,40),d.Buffer.concat([j,h])).toString("base64"),format:"wav"}}}};async function R(a,b,d,e){let{AI_PROVIDERS:f}=await c.e(615).then(c.bind(c,40615)),g=f[a]?.ttsConfig;if(!g)return null;let h=P[g.format];if(!h)return null;let i=e?.apiKey;if("none"!==g.authType&&!i)throw Error(`${a} API key required`);let{PROVIDER_MODELS:j}=await c.e(5699).then(c.bind(c,45699)),k=(j[a]||[]).filter(a=>"tts"===(a.kind||a.type)),{modelId:l,voiceId:m}=function(a,b="",c="",d=[]){if(!a)return{modelId:b,voiceId:c};for(let b of d.map(a=>a.id||a).filter(Boolean).sort((a,b)=>b.length-a.length)){if(a===b)return{modelId:b,voiceId:c};if(a.startsWith(`${b}/`))return{modelId:b,voiceId:a.slice(b.length+1)}}let e=a.lastIndexOf("/");return e>0?{modelId:a.slice(0,e),voiceId:a.slice(e+1)}:{modelId:b||a,voiceId:c||a}}(d,k[0]?.id||"","",k);return h({baseUrl:g.baseUrl,apiKey:i,text:b,modelId:l,voiceId:m})}let S={"edge-tts":r,"local-device":B,elevenlabs:E,gemini:O};function T(a,b,c){let e=d.Buffer.from(a,"base64");return"json"===c?{success:!0,response:new Response(JSON.stringify({audio:a,format:b}),{headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}})}:{success:!0,response:new Response(e,{headers:{"Content-Type":`audio/${b}`,"Content-Length":String(e.length),"Access-Control-Allow-Origin":"*"}})}}async function U({provider:a,model:b,input:c,credentials:d,responseFormat:g="mp3",language:h}){if(!c?.trim())return(0,e.A1)(f.gx.BAD_REQUEST,"Missing required field: input");try{let i=Q[a]||null;if(i){let a=await i.synthesize(c.trim(),b,d,g,{language:h});if(void 0!==a.success)return a;return T(a.base64,a.format,g)}let j=await R(a,c.trim(),b,d);if(j)return T(j.base64,j.format,g);return(0,e.A1)(f.gx.BAD_REQUEST,`Provider '${a}' does not support TTS via this route.`)}catch(a){return(0,e.A1)(f.gx.BAD_GATEWAY,a.message||"TTS synthesis failed")}}}};
|
|
@@ -6,4 +6,4 @@ PRAGMA mmap_size = 30000000;
|
|
|
6
6
|
PRAGMA cache_size = -64000;
|
|
7
7
|
PRAGMA foreign_keys = ON;
|
|
8
8
|
PRAGMA busy_timeout = 5000;
|
|
9
|
-
`,e={_meta:{columns:{key:"TEXT PRIMARY KEY",value:"TEXT NOT NULL"}},settings:{columns:{id:"INTEGER PRIMARY KEY CHECK (id = 1)",data:"TEXT NOT NULL"}},providerConnections:{columns:{id:"TEXT PRIMARY KEY",provider:"TEXT NOT NULL",authType:"TEXT NOT NULL",name:"TEXT",email:"TEXT",priority:"INTEGER",isActive:"INTEGER DEFAULT 1",data:"TEXT NOT NULL",createdAt:"TEXT NOT NULL",updatedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_pc_provider ON providerConnections(provider)","CREATE INDEX IF NOT EXISTS idx_pc_provider_active ON providerConnections(provider, isActive)","CREATE INDEX IF NOT EXISTS idx_pc_priority ON providerConnections(provider, priority)"]},providerNodes:{columns:{id:"TEXT PRIMARY KEY",type:"TEXT",name:"TEXT",data:"TEXT NOT NULL",createdAt:"TEXT NOT NULL",updatedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_pn_type ON providerNodes(type)"]},proxyPools:{columns:{id:"TEXT PRIMARY KEY",isActive:"INTEGER DEFAULT 1",testStatus:"TEXT",data:"TEXT NOT NULL",createdAt:"TEXT NOT NULL",updatedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_pp_active ON proxyPools(isActive)","CREATE INDEX IF NOT EXISTS idx_pp_status ON proxyPools(testStatus)"]},apiKeys:{columns:{id:"TEXT PRIMARY KEY",key:"TEXT UNIQUE NOT NULL",name:"TEXT",machineId:"TEXT",allowedModels:"TEXT",isActive:"INTEGER DEFAULT 1",createdAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_ak_key ON apiKeys(key)"]},combos:{columns:{id:"TEXT PRIMARY KEY",name:"TEXT UNIQUE NOT NULL",kind:"TEXT",models:"TEXT NOT NULL",createdAt:"TEXT NOT NULL",updatedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_combo_name ON combos(name)"]},kv:{columns:{scope:"TEXT NOT NULL",key:"TEXT NOT NULL",value:"TEXT NOT NULL"},primaryKey:"PRIMARY KEY (scope, key)",indexes:["CREATE INDEX IF NOT EXISTS idx_kv_scope ON kv(scope)"]},usageHistory:{columns:{id:"INTEGER PRIMARY KEY AUTOINCREMENT",timestamp:"TEXT NOT NULL",provider:"TEXT",model:"TEXT",connectionId:"TEXT",apiKey:"TEXT",endpoint:"TEXT",promptTokens:"INTEGER DEFAULT 0",completionTokens:"INTEGER DEFAULT 0",cost:"REAL DEFAULT 0",status:"TEXT",tokens:"TEXT",meta:"TEXT",latencyTtftMs:"INTEGER DEFAULT 0",latencyTotalMs:"INTEGER DEFAULT 0"},indexes:["CREATE INDEX IF NOT EXISTS idx_uh_ts ON usageHistory(timestamp DESC)","CREATE INDEX IF NOT EXISTS idx_uh_provider ON usageHistory(provider)","CREATE INDEX IF NOT EXISTS idx_uh_model ON usageHistory(model)","CREATE INDEX IF NOT EXISTS idx_uh_conn ON usageHistory(connectionId)","CREATE INDEX IF NOT EXISTS idx_uh_status ON usageHistory(status)"]},usageDaily:{columns:{dateKey:"TEXT PRIMARY KEY",data:"TEXT NOT NULL"}},requestDetails:{columns:{id:"TEXT PRIMARY KEY",timestamp:"TEXT NOT NULL",provider:"TEXT",model:"TEXT",connectionId:"TEXT",status:"TEXT",data:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_rd_ts ON requestDetails(timestamp DESC)","CREATE INDEX IF NOT EXISTS idx_rd_provider ON requestDetails(provider)","CREATE INDEX IF NOT EXISTS idx_rd_model ON requestDetails(model)","CREATE INDEX IF NOT EXISTS idx_rd_conn ON requestDetails(connectionId)"]}};function f(a,b){let c=Object.entries(b.columns).map(([a,b])=>`${a} ${b}`);return b.primaryKey&&c.push(b.primaryKey),`CREATE TABLE IF NOT EXISTS ${a} (${c.join(", ")})`}}};
|
|
9
|
+
`,e={_meta:{columns:{key:"TEXT PRIMARY KEY",value:"TEXT NOT NULL"}},settings:{columns:{id:"INTEGER PRIMARY KEY CHECK (id = 1)",data:"TEXT NOT NULL"}},providerConnections:{columns:{id:"TEXT PRIMARY KEY",provider:"TEXT NOT NULL",authType:"TEXT NOT NULL",name:"TEXT",email:"TEXT",priority:"INTEGER",isActive:"INTEGER DEFAULT 1",data:"TEXT NOT NULL",createdAt:"TEXT NOT NULL",updatedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_pc_provider ON providerConnections(provider)","CREATE INDEX IF NOT EXISTS idx_pc_provider_active ON providerConnections(provider, isActive)","CREATE INDEX IF NOT EXISTS idx_pc_priority ON providerConnections(provider, priority)"]},providerNodes:{columns:{id:"TEXT PRIMARY KEY",type:"TEXT",name:"TEXT",data:"TEXT NOT NULL",createdAt:"TEXT NOT NULL",updatedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_pn_type ON providerNodes(type)"]},proxyPools:{columns:{id:"TEXT PRIMARY KEY",isActive:"INTEGER DEFAULT 1",testStatus:"TEXT",data:"TEXT NOT NULL",createdAt:"TEXT NOT NULL",updatedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_pp_active ON proxyPools(isActive)","CREATE INDEX IF NOT EXISTS idx_pp_status ON proxyPools(testStatus)"]},apiKeys:{columns:{id:"TEXT PRIMARY KEY",key:"TEXT UNIQUE NOT NULL",name:"TEXT",machineId:"TEXT",allowedModels:"TEXT",isActive:"INTEGER DEFAULT 1",createdAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_ak_key ON apiKeys(key)"]},combos:{columns:{id:"TEXT PRIMARY KEY",name:"TEXT UNIQUE NOT NULL",kind:"TEXT",models:"TEXT NOT NULL",strategyConfig:"TEXT NOT NULL DEFAULT '{}'",revision:"INTEGER NOT NULL DEFAULT 1",createdAt:"TEXT NOT NULL",updatedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_combo_name ON combos(name)"]},kv:{columns:{scope:"TEXT NOT NULL",key:"TEXT NOT NULL",value:"TEXT NOT NULL"},primaryKey:"PRIMARY KEY (scope, key)",indexes:["CREATE INDEX IF NOT EXISTS idx_kv_scope ON kv(scope)"]},usageHistory:{columns:{id:"INTEGER PRIMARY KEY AUTOINCREMENT",timestamp:"TEXT NOT NULL",provider:"TEXT",model:"TEXT",connectionId:"TEXT",apiKey:"TEXT",endpoint:"TEXT",promptTokens:"INTEGER DEFAULT 0",completionTokens:"INTEGER DEFAULT 0",cost:"REAL DEFAULT 0",status:"TEXT",tokens:"TEXT",meta:"TEXT",latencyTtftMs:"INTEGER DEFAULT 0",latencyTotalMs:"INTEGER DEFAULT 0"},indexes:["CREATE INDEX IF NOT EXISTS idx_uh_ts ON usageHistory(timestamp DESC)","CREATE INDEX IF NOT EXISTS idx_uh_provider ON usageHistory(provider)","CREATE INDEX IF NOT EXISTS idx_uh_model ON usageHistory(model)","CREATE INDEX IF NOT EXISTS idx_uh_conn ON usageHistory(connectionId)","CREATE INDEX IF NOT EXISTS idx_uh_status ON usageHistory(status)"]},usageDaily:{columns:{dateKey:"TEXT PRIMARY KEY",data:"TEXT NOT NULL"}},requestDetails:{columns:{id:"TEXT PRIMARY KEY",timestamp:"TEXT NOT NULL",provider:"TEXT",model:"TEXT",connectionId:"TEXT",status:"TEXT",data:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_rd_ts ON requestDetails(timestamp DESC)","CREATE INDEX IF NOT EXISTS idx_rd_provider ON requestDetails(provider)","CREATE INDEX IF NOT EXISTS idx_rd_model ON requestDetails(model)","CREATE INDEX IF NOT EXISTS idx_rd_conn ON requestDetails(connectionId)"]}};function f(a,b){let c=Object.entries(b.columns).map(([a,b])=>`${a} ${b}`);return b.primaryKey&&c.push(b.primaryKey),`CREATE TABLE IF NOT EXISTS ${a} (${c.join(", ")})`}}};
|
|
@@ -6,4 +6,4 @@ PRAGMA mmap_size = 30000000;
|
|
|
6
6
|
PRAGMA cache_size = -64000;
|
|
7
7
|
PRAGMA foreign_keys = ON;
|
|
8
8
|
PRAGMA busy_timeout = 5000;
|
|
9
|
-
`,e={_meta:{columns:{key:"TEXT PRIMARY KEY",value:"TEXT NOT NULL"}},settings:{columns:{id:"INTEGER PRIMARY KEY CHECK (id = 1)",data:"TEXT NOT NULL"}},providerConnections:{columns:{id:"TEXT PRIMARY KEY",provider:"TEXT NOT NULL",authType:"TEXT NOT NULL",name:"TEXT",email:"TEXT",priority:"INTEGER",isActive:"INTEGER DEFAULT 1",data:"TEXT NOT NULL",createdAt:"TEXT NOT NULL",updatedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_pc_provider ON providerConnections(provider)","CREATE INDEX IF NOT EXISTS idx_pc_provider_active ON providerConnections(provider, isActive)","CREATE INDEX IF NOT EXISTS idx_pc_priority ON providerConnections(provider, priority)"]},providerNodes:{columns:{id:"TEXT PRIMARY KEY",type:"TEXT",name:"TEXT",data:"TEXT NOT NULL",createdAt:"TEXT NOT NULL",updatedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_pn_type ON providerNodes(type)"]},proxyPools:{columns:{id:"TEXT PRIMARY KEY",isActive:"INTEGER DEFAULT 1",testStatus:"TEXT",data:"TEXT NOT NULL",createdAt:"TEXT NOT NULL",updatedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_pp_active ON proxyPools(isActive)","CREATE INDEX IF NOT EXISTS idx_pp_status ON proxyPools(testStatus)"]},apiKeys:{columns:{id:"TEXT PRIMARY KEY",key:"TEXT UNIQUE NOT NULL",name:"TEXT",machineId:"TEXT",allowedModels:"TEXT",isActive:"INTEGER DEFAULT 1",createdAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_ak_key ON apiKeys(key)"]},combos:{columns:{id:"TEXT PRIMARY KEY",name:"TEXT UNIQUE NOT NULL",kind:"TEXT",models:"TEXT NOT NULL",createdAt:"TEXT NOT NULL",updatedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_combo_name ON combos(name)"]},kv:{columns:{scope:"TEXT NOT NULL",key:"TEXT NOT NULL",value:"TEXT NOT NULL"},primaryKey:"PRIMARY KEY (scope, key)",indexes:["CREATE INDEX IF NOT EXISTS idx_kv_scope ON kv(scope)"]},usageHistory:{columns:{id:"INTEGER PRIMARY KEY AUTOINCREMENT",timestamp:"TEXT NOT NULL",provider:"TEXT",model:"TEXT",connectionId:"TEXT",apiKey:"TEXT",endpoint:"TEXT",promptTokens:"INTEGER DEFAULT 0",completionTokens:"INTEGER DEFAULT 0",cost:"REAL DEFAULT 0",status:"TEXT",tokens:"TEXT",meta:"TEXT",latencyTtftMs:"INTEGER DEFAULT 0",latencyTotalMs:"INTEGER DEFAULT 0"},indexes:["CREATE INDEX IF NOT EXISTS idx_uh_ts ON usageHistory(timestamp DESC)","CREATE INDEX IF NOT EXISTS idx_uh_provider ON usageHistory(provider)","CREATE INDEX IF NOT EXISTS idx_uh_model ON usageHistory(model)","CREATE INDEX IF NOT EXISTS idx_uh_conn ON usageHistory(connectionId)","CREATE INDEX IF NOT EXISTS idx_uh_status ON usageHistory(status)"]},usageDaily:{columns:{dateKey:"TEXT PRIMARY KEY",data:"TEXT NOT NULL"}},requestDetails:{columns:{id:"TEXT PRIMARY KEY",timestamp:"TEXT NOT NULL",provider:"TEXT",model:"TEXT",connectionId:"TEXT",status:"TEXT",data:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_rd_ts ON requestDetails(timestamp DESC)","CREATE INDEX IF NOT EXISTS idx_rd_provider ON requestDetails(provider)","CREATE INDEX IF NOT EXISTS idx_rd_model ON requestDetails(model)","CREATE INDEX IF NOT EXISTS idx_rd_conn ON requestDetails(connectionId)"]}};function f(a,b){let c=Object.entries(b.columns).map(([a,b])=>`${a} ${b}`);return b.primaryKey&&c.push(b.primaryKey),`CREATE TABLE IF NOT EXISTS ${a} (${c.join(", ")})`}}};
|
|
9
|
+
`,e={_meta:{columns:{key:"TEXT PRIMARY KEY",value:"TEXT NOT NULL"}},settings:{columns:{id:"INTEGER PRIMARY KEY CHECK (id = 1)",data:"TEXT NOT NULL"}},providerConnections:{columns:{id:"TEXT PRIMARY KEY",provider:"TEXT NOT NULL",authType:"TEXT NOT NULL",name:"TEXT",email:"TEXT",priority:"INTEGER",isActive:"INTEGER DEFAULT 1",data:"TEXT NOT NULL",createdAt:"TEXT NOT NULL",updatedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_pc_provider ON providerConnections(provider)","CREATE INDEX IF NOT EXISTS idx_pc_provider_active ON providerConnections(provider, isActive)","CREATE INDEX IF NOT EXISTS idx_pc_priority ON providerConnections(provider, priority)"]},providerNodes:{columns:{id:"TEXT PRIMARY KEY",type:"TEXT",name:"TEXT",data:"TEXT NOT NULL",createdAt:"TEXT NOT NULL",updatedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_pn_type ON providerNodes(type)"]},proxyPools:{columns:{id:"TEXT PRIMARY KEY",isActive:"INTEGER DEFAULT 1",testStatus:"TEXT",data:"TEXT NOT NULL",createdAt:"TEXT NOT NULL",updatedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_pp_active ON proxyPools(isActive)","CREATE INDEX IF NOT EXISTS idx_pp_status ON proxyPools(testStatus)"]},apiKeys:{columns:{id:"TEXT PRIMARY KEY",key:"TEXT UNIQUE NOT NULL",name:"TEXT",machineId:"TEXT",allowedModels:"TEXT",isActive:"INTEGER DEFAULT 1",createdAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_ak_key ON apiKeys(key)"]},combos:{columns:{id:"TEXT PRIMARY KEY",name:"TEXT UNIQUE NOT NULL",kind:"TEXT",models:"TEXT NOT NULL",strategyConfig:"TEXT NOT NULL DEFAULT '{}'",revision:"INTEGER NOT NULL DEFAULT 1",createdAt:"TEXT NOT NULL",updatedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_combo_name ON combos(name)"]},kv:{columns:{scope:"TEXT NOT NULL",key:"TEXT NOT NULL",value:"TEXT NOT NULL"},primaryKey:"PRIMARY KEY (scope, key)",indexes:["CREATE INDEX IF NOT EXISTS idx_kv_scope ON kv(scope)"]},usageHistory:{columns:{id:"INTEGER PRIMARY KEY AUTOINCREMENT",timestamp:"TEXT NOT NULL",provider:"TEXT",model:"TEXT",connectionId:"TEXT",apiKey:"TEXT",endpoint:"TEXT",promptTokens:"INTEGER DEFAULT 0",completionTokens:"INTEGER DEFAULT 0",cost:"REAL DEFAULT 0",status:"TEXT",tokens:"TEXT",meta:"TEXT",latencyTtftMs:"INTEGER DEFAULT 0",latencyTotalMs:"INTEGER DEFAULT 0"},indexes:["CREATE INDEX IF NOT EXISTS idx_uh_ts ON usageHistory(timestamp DESC)","CREATE INDEX IF NOT EXISTS idx_uh_provider ON usageHistory(provider)","CREATE INDEX IF NOT EXISTS idx_uh_model ON usageHistory(model)","CREATE INDEX IF NOT EXISTS idx_uh_conn ON usageHistory(connectionId)","CREATE INDEX IF NOT EXISTS idx_uh_status ON usageHistory(status)"]},usageDaily:{columns:{dateKey:"TEXT PRIMARY KEY",data:"TEXT NOT NULL"}},requestDetails:{columns:{id:"TEXT PRIMARY KEY",timestamp:"TEXT NOT NULL",provider:"TEXT",model:"TEXT",connectionId:"TEXT",status:"TEXT",data:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_rd_ts ON requestDetails(timestamp DESC)","CREATE INDEX IF NOT EXISTS idx_rd_provider ON requestDetails(provider)","CREATE INDEX IF NOT EXISTS idx_rd_model ON requestDetails(model)","CREATE INDEX IF NOT EXISTS idx_rd_conn ON requestDetails(connectionId)"]}};function f(a,b){let c=Object.entries(b.columns).map(([a,b])=>`${a} ${b}`);return b.primaryKey&&c.push(b.primaryKey),`CREATE TABLE IF NOT EXISTS ${a} (${c.join(", ")})`}}};
|
|
@@ -6,4 +6,4 @@ PRAGMA mmap_size = 30000000;
|
|
|
6
6
|
PRAGMA cache_size = -64000;
|
|
7
7
|
PRAGMA foreign_keys = ON;
|
|
8
8
|
PRAGMA busy_timeout = 5000;
|
|
9
|
-
`,e={_meta:{columns:{key:"TEXT PRIMARY KEY",value:"TEXT NOT NULL"}},settings:{columns:{id:"INTEGER PRIMARY KEY CHECK (id = 1)",data:"TEXT NOT NULL"}},providerConnections:{columns:{id:"TEXT PRIMARY KEY",provider:"TEXT NOT NULL",authType:"TEXT NOT NULL",name:"TEXT",email:"TEXT",priority:"INTEGER",isActive:"INTEGER DEFAULT 1",data:"TEXT NOT NULL",createdAt:"TEXT NOT NULL",updatedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_pc_provider ON providerConnections(provider)","CREATE INDEX IF NOT EXISTS idx_pc_provider_active ON providerConnections(provider, isActive)","CREATE INDEX IF NOT EXISTS idx_pc_priority ON providerConnections(provider, priority)"]},providerNodes:{columns:{id:"TEXT PRIMARY KEY",type:"TEXT",name:"TEXT",data:"TEXT NOT NULL",createdAt:"TEXT NOT NULL",updatedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_pn_type ON providerNodes(type)"]},proxyPools:{columns:{id:"TEXT PRIMARY KEY",isActive:"INTEGER DEFAULT 1",testStatus:"TEXT",data:"TEXT NOT NULL",createdAt:"TEXT NOT NULL",updatedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_pp_active ON proxyPools(isActive)","CREATE INDEX IF NOT EXISTS idx_pp_status ON proxyPools(testStatus)"]},apiKeys:{columns:{id:"TEXT PRIMARY KEY",key:"TEXT UNIQUE NOT NULL",name:"TEXT",machineId:"TEXT",allowedModels:"TEXT",isActive:"INTEGER DEFAULT 1",createdAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_ak_key ON apiKeys(key)"]},combos:{columns:{id:"TEXT PRIMARY KEY",name:"TEXT UNIQUE NOT NULL",kind:"TEXT",models:"TEXT NOT NULL",createdAt:"TEXT NOT NULL",updatedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_combo_name ON combos(name)"]},kv:{columns:{scope:"TEXT NOT NULL",key:"TEXT NOT NULL",value:"TEXT NOT NULL"},primaryKey:"PRIMARY KEY (scope, key)",indexes:["CREATE INDEX IF NOT EXISTS idx_kv_scope ON kv(scope)"]},usageHistory:{columns:{id:"INTEGER PRIMARY KEY AUTOINCREMENT",timestamp:"TEXT NOT NULL",provider:"TEXT",model:"TEXT",connectionId:"TEXT",apiKey:"TEXT",endpoint:"TEXT",promptTokens:"INTEGER DEFAULT 0",completionTokens:"INTEGER DEFAULT 0",cost:"REAL DEFAULT 0",status:"TEXT",tokens:"TEXT",meta:"TEXT",latencyTtftMs:"INTEGER DEFAULT 0",latencyTotalMs:"INTEGER DEFAULT 0"},indexes:["CREATE INDEX IF NOT EXISTS idx_uh_ts ON usageHistory(timestamp DESC)","CREATE INDEX IF NOT EXISTS idx_uh_provider ON usageHistory(provider)","CREATE INDEX IF NOT EXISTS idx_uh_model ON usageHistory(model)","CREATE INDEX IF NOT EXISTS idx_uh_conn ON usageHistory(connectionId)","CREATE INDEX IF NOT EXISTS idx_uh_status ON usageHistory(status)"]},usageDaily:{columns:{dateKey:"TEXT PRIMARY KEY",data:"TEXT NOT NULL"}},requestDetails:{columns:{id:"TEXT PRIMARY KEY",timestamp:"TEXT NOT NULL",provider:"TEXT",model:"TEXT",connectionId:"TEXT",status:"TEXT",data:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_rd_ts ON requestDetails(timestamp DESC)","CREATE INDEX IF NOT EXISTS idx_rd_provider ON requestDetails(provider)","CREATE INDEX IF NOT EXISTS idx_rd_model ON requestDetails(model)","CREATE INDEX IF NOT EXISTS idx_rd_conn ON requestDetails(connectionId)"]}};function f(a,b){let c=Object.entries(b.columns).map(([a,b])=>`${a} ${b}`);return b.primaryKey&&c.push(b.primaryKey),`CREATE TABLE IF NOT EXISTS ${a} (${c.join(", ")})`}},90507:(a,b,c)=>{c.d(b,{createBetterSqliteAdapter:()=>g});var d=c(87550),e=c.n(d),f=c(76040);function g(a){let b=new(e())(a);b.exec(f.oG);let c=new Map;function d(a){let d=c.get(a);return d||(d=b.prepare(a),c.set(a,d)),d}let g=setInterval(()=>{try{b.pragma("wal_checkpoint(TRUNCATE)")}catch{}},6e4);function h(){try{b.pragma("wal_checkpoint(TRUNCATE)")}catch{}try{c.clear()}catch{}try{b.close()}catch{}}"function"==typeof g.unref&&g.unref();let i=()=>h();return process.once("beforeExit",i),process.once("SIGINT",()=>{i(),process.exit(0)}),process.once("SIGTERM",()=>{i(),process.exit(0)}),{driver:"better-sqlite3",run:(a,b=[])=>d(a).run(b),get:(a,b=[])=>d(a).get(b),all:(a,b=[])=>d(a).all(b),exec:a=>b.exec(a),transaction:a=>b.transaction(a)(),checkpoint(){try{b.pragma("wal_checkpoint(TRUNCATE)")}catch{}},close(){clearInterval(g),h()},raw:b}}}};
|
|
9
|
+
`,e={_meta:{columns:{key:"TEXT PRIMARY KEY",value:"TEXT NOT NULL"}},settings:{columns:{id:"INTEGER PRIMARY KEY CHECK (id = 1)",data:"TEXT NOT NULL"}},providerConnections:{columns:{id:"TEXT PRIMARY KEY",provider:"TEXT NOT NULL",authType:"TEXT NOT NULL",name:"TEXT",email:"TEXT",priority:"INTEGER",isActive:"INTEGER DEFAULT 1",data:"TEXT NOT NULL",createdAt:"TEXT NOT NULL",updatedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_pc_provider ON providerConnections(provider)","CREATE INDEX IF NOT EXISTS idx_pc_provider_active ON providerConnections(provider, isActive)","CREATE INDEX IF NOT EXISTS idx_pc_priority ON providerConnections(provider, priority)"]},providerNodes:{columns:{id:"TEXT PRIMARY KEY",type:"TEXT",name:"TEXT",data:"TEXT NOT NULL",createdAt:"TEXT NOT NULL",updatedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_pn_type ON providerNodes(type)"]},proxyPools:{columns:{id:"TEXT PRIMARY KEY",isActive:"INTEGER DEFAULT 1",testStatus:"TEXT",data:"TEXT NOT NULL",createdAt:"TEXT NOT NULL",updatedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_pp_active ON proxyPools(isActive)","CREATE INDEX IF NOT EXISTS idx_pp_status ON proxyPools(testStatus)"]},apiKeys:{columns:{id:"TEXT PRIMARY KEY",key:"TEXT UNIQUE NOT NULL",name:"TEXT",machineId:"TEXT",allowedModels:"TEXT",isActive:"INTEGER DEFAULT 1",createdAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_ak_key ON apiKeys(key)"]},combos:{columns:{id:"TEXT PRIMARY KEY",name:"TEXT UNIQUE NOT NULL",kind:"TEXT",models:"TEXT NOT NULL",strategyConfig:"TEXT NOT NULL DEFAULT '{}'",revision:"INTEGER NOT NULL DEFAULT 1",createdAt:"TEXT NOT NULL",updatedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_combo_name ON combos(name)"]},kv:{columns:{scope:"TEXT NOT NULL",key:"TEXT NOT NULL",value:"TEXT NOT NULL"},primaryKey:"PRIMARY KEY (scope, key)",indexes:["CREATE INDEX IF NOT EXISTS idx_kv_scope ON kv(scope)"]},usageHistory:{columns:{id:"INTEGER PRIMARY KEY AUTOINCREMENT",timestamp:"TEXT NOT NULL",provider:"TEXT",model:"TEXT",connectionId:"TEXT",apiKey:"TEXT",endpoint:"TEXT",promptTokens:"INTEGER DEFAULT 0",completionTokens:"INTEGER DEFAULT 0",cost:"REAL DEFAULT 0",status:"TEXT",tokens:"TEXT",meta:"TEXT",latencyTtftMs:"INTEGER DEFAULT 0",latencyTotalMs:"INTEGER DEFAULT 0"},indexes:["CREATE INDEX IF NOT EXISTS idx_uh_ts ON usageHistory(timestamp DESC)","CREATE INDEX IF NOT EXISTS idx_uh_provider ON usageHistory(provider)","CREATE INDEX IF NOT EXISTS idx_uh_model ON usageHistory(model)","CREATE INDEX IF NOT EXISTS idx_uh_conn ON usageHistory(connectionId)","CREATE INDEX IF NOT EXISTS idx_uh_status ON usageHistory(status)"]},usageDaily:{columns:{dateKey:"TEXT PRIMARY KEY",data:"TEXT NOT NULL"}},requestDetails:{columns:{id:"TEXT PRIMARY KEY",timestamp:"TEXT NOT NULL",provider:"TEXT",model:"TEXT",connectionId:"TEXT",status:"TEXT",data:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_rd_ts ON requestDetails(timestamp DESC)","CREATE INDEX IF NOT EXISTS idx_rd_provider ON requestDetails(provider)","CREATE INDEX IF NOT EXISTS idx_rd_model ON requestDetails(model)","CREATE INDEX IF NOT EXISTS idx_rd_conn ON requestDetails(connectionId)"]}};function f(a,b){let c=Object.entries(b.columns).map(([a,b])=>`${a} ${b}`);return b.primaryKey&&c.push(b.primaryKey),`CREATE TABLE IF NOT EXISTS ${a} (${c.join(", ")})`}},90507:(a,b,c)=>{c.d(b,{createBetterSqliteAdapter:()=>g});var d=c(87550),e=c.n(d),f=c(76040);function g(a){let b=new(e())(a);b.exec(f.oG);let c=new Map;function d(a){let d=c.get(a);return d||(d=b.prepare(a),c.set(a,d)),d}let g=setInterval(()=>{try{b.pragma("wal_checkpoint(TRUNCATE)")}catch{}},6e4);function h(){try{b.pragma("wal_checkpoint(TRUNCATE)")}catch{}try{c.clear()}catch{}try{b.close()}catch{}}"function"==typeof g.unref&&g.unref();let i=()=>h();return process.once("beforeExit",i),process.once("SIGINT",()=>{i(),process.exit(0)}),process.once("SIGTERM",()=>{i(),process.exit(0)}),{driver:"better-sqlite3",run:(a,b=[])=>d(a).run(b),get:(a,b=[])=>d(a).get(b),all:(a,b=[])=>d(a).all(b),exec:a=>b.exec(a),transaction:a=>b.transaction(a)(),checkpoint(){try{b.pragma("wal_checkpoint(TRUNCATE)")}catch{}},close(){clearInterval(g),h()},raw:b}}}};
|
|
@@ -6,4 +6,4 @@ PRAGMA mmap_size = 30000000;
|
|
|
6
6
|
PRAGMA cache_size = -64000;
|
|
7
7
|
PRAGMA foreign_keys = ON;
|
|
8
8
|
PRAGMA busy_timeout = 5000;
|
|
9
|
-
`,e={_meta:{columns:{key:"TEXT PRIMARY KEY",value:"TEXT NOT NULL"}},settings:{columns:{id:"INTEGER PRIMARY KEY CHECK (id = 1)",data:"TEXT NOT NULL"}},providerConnections:{columns:{id:"TEXT PRIMARY KEY",provider:"TEXT NOT NULL",authType:"TEXT NOT NULL",name:"TEXT",email:"TEXT",priority:"INTEGER",isActive:"INTEGER DEFAULT 1",data:"TEXT NOT NULL",createdAt:"TEXT NOT NULL",updatedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_pc_provider ON providerConnections(provider)","CREATE INDEX IF NOT EXISTS idx_pc_provider_active ON providerConnections(provider, isActive)","CREATE INDEX IF NOT EXISTS idx_pc_priority ON providerConnections(provider, priority)"]},providerNodes:{columns:{id:"TEXT PRIMARY KEY",type:"TEXT",name:"TEXT",data:"TEXT NOT NULL",createdAt:"TEXT NOT NULL",updatedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_pn_type ON providerNodes(type)"]},proxyPools:{columns:{id:"TEXT PRIMARY KEY",isActive:"INTEGER DEFAULT 1",testStatus:"TEXT",data:"TEXT NOT NULL",createdAt:"TEXT NOT NULL",updatedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_pp_active ON proxyPools(isActive)","CREATE INDEX IF NOT EXISTS idx_pp_status ON proxyPools(testStatus)"]},apiKeys:{columns:{id:"TEXT PRIMARY KEY",key:"TEXT UNIQUE NOT NULL",name:"TEXT",machineId:"TEXT",allowedModels:"TEXT",isActive:"INTEGER DEFAULT 1",createdAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_ak_key ON apiKeys(key)"]},combos:{columns:{id:"TEXT PRIMARY KEY",name:"TEXT UNIQUE NOT NULL",kind:"TEXT",models:"TEXT NOT NULL",createdAt:"TEXT NOT NULL",updatedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_combo_name ON combos(name)"]},kv:{columns:{scope:"TEXT NOT NULL",key:"TEXT NOT NULL",value:"TEXT NOT NULL"},primaryKey:"PRIMARY KEY (scope, key)",indexes:["CREATE INDEX IF NOT EXISTS idx_kv_scope ON kv(scope)"]},usageHistory:{columns:{id:"INTEGER PRIMARY KEY AUTOINCREMENT",timestamp:"TEXT NOT NULL",provider:"TEXT",model:"TEXT",connectionId:"TEXT",apiKey:"TEXT",endpoint:"TEXT",promptTokens:"INTEGER DEFAULT 0",completionTokens:"INTEGER DEFAULT 0",cost:"REAL DEFAULT 0",status:"TEXT",tokens:"TEXT",meta:"TEXT",latencyTtftMs:"INTEGER DEFAULT 0",latencyTotalMs:"INTEGER DEFAULT 0"},indexes:["CREATE INDEX IF NOT EXISTS idx_uh_ts ON usageHistory(timestamp DESC)","CREATE INDEX IF NOT EXISTS idx_uh_provider ON usageHistory(provider)","CREATE INDEX IF NOT EXISTS idx_uh_model ON usageHistory(model)","CREATE INDEX IF NOT EXISTS idx_uh_conn ON usageHistory(connectionId)","CREATE INDEX IF NOT EXISTS idx_uh_status ON usageHistory(status)"]},usageDaily:{columns:{dateKey:"TEXT PRIMARY KEY",data:"TEXT NOT NULL"}},requestDetails:{columns:{id:"TEXT PRIMARY KEY",timestamp:"TEXT NOT NULL",provider:"TEXT",model:"TEXT",connectionId:"TEXT",status:"TEXT",data:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_rd_ts ON requestDetails(timestamp DESC)","CREATE INDEX IF NOT EXISTS idx_rd_provider ON requestDetails(provider)","CREATE INDEX IF NOT EXISTS idx_rd_model ON requestDetails(model)","CREATE INDEX IF NOT EXISTS idx_rd_conn ON requestDetails(connectionId)"]}};function f(a,b){let c=Object.entries(b.columns).map(([a,b])=>`${a} ${b}`);return b.primaryKey&&c.push(b.primaryKey),`CREATE TABLE IF NOT EXISTS ${a} (${c.join(", ")})`}}};
|
|
9
|
+
`,e={_meta:{columns:{key:"TEXT PRIMARY KEY",value:"TEXT NOT NULL"}},settings:{columns:{id:"INTEGER PRIMARY KEY CHECK (id = 1)",data:"TEXT NOT NULL"}},providerConnections:{columns:{id:"TEXT PRIMARY KEY",provider:"TEXT NOT NULL",authType:"TEXT NOT NULL",name:"TEXT",email:"TEXT",priority:"INTEGER",isActive:"INTEGER DEFAULT 1",data:"TEXT NOT NULL",createdAt:"TEXT NOT NULL",updatedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_pc_provider ON providerConnections(provider)","CREATE INDEX IF NOT EXISTS idx_pc_provider_active ON providerConnections(provider, isActive)","CREATE INDEX IF NOT EXISTS idx_pc_priority ON providerConnections(provider, priority)"]},providerNodes:{columns:{id:"TEXT PRIMARY KEY",type:"TEXT",name:"TEXT",data:"TEXT NOT NULL",createdAt:"TEXT NOT NULL",updatedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_pn_type ON providerNodes(type)"]},proxyPools:{columns:{id:"TEXT PRIMARY KEY",isActive:"INTEGER DEFAULT 1",testStatus:"TEXT",data:"TEXT NOT NULL",createdAt:"TEXT NOT NULL",updatedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_pp_active ON proxyPools(isActive)","CREATE INDEX IF NOT EXISTS idx_pp_status ON proxyPools(testStatus)"]},apiKeys:{columns:{id:"TEXT PRIMARY KEY",key:"TEXT UNIQUE NOT NULL",name:"TEXT",machineId:"TEXT",allowedModels:"TEXT",isActive:"INTEGER DEFAULT 1",createdAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_ak_key ON apiKeys(key)"]},combos:{columns:{id:"TEXT PRIMARY KEY",name:"TEXT UNIQUE NOT NULL",kind:"TEXT",models:"TEXT NOT NULL",strategyConfig:"TEXT NOT NULL DEFAULT '{}'",revision:"INTEGER NOT NULL DEFAULT 1",createdAt:"TEXT NOT NULL",updatedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_combo_name ON combos(name)"]},kv:{columns:{scope:"TEXT NOT NULL",key:"TEXT NOT NULL",value:"TEXT NOT NULL"},primaryKey:"PRIMARY KEY (scope, key)",indexes:["CREATE INDEX IF NOT EXISTS idx_kv_scope ON kv(scope)"]},usageHistory:{columns:{id:"INTEGER PRIMARY KEY AUTOINCREMENT",timestamp:"TEXT NOT NULL",provider:"TEXT",model:"TEXT",connectionId:"TEXT",apiKey:"TEXT",endpoint:"TEXT",promptTokens:"INTEGER DEFAULT 0",completionTokens:"INTEGER DEFAULT 0",cost:"REAL DEFAULT 0",status:"TEXT",tokens:"TEXT",meta:"TEXT",latencyTtftMs:"INTEGER DEFAULT 0",latencyTotalMs:"INTEGER DEFAULT 0"},indexes:["CREATE INDEX IF NOT EXISTS idx_uh_ts ON usageHistory(timestamp DESC)","CREATE INDEX IF NOT EXISTS idx_uh_provider ON usageHistory(provider)","CREATE INDEX IF NOT EXISTS idx_uh_model ON usageHistory(model)","CREATE INDEX IF NOT EXISTS idx_uh_conn ON usageHistory(connectionId)","CREATE INDEX IF NOT EXISTS idx_uh_status ON usageHistory(status)"]},usageDaily:{columns:{dateKey:"TEXT PRIMARY KEY",data:"TEXT NOT NULL"}},requestDetails:{columns:{id:"TEXT PRIMARY KEY",timestamp:"TEXT NOT NULL",provider:"TEXT",model:"TEXT",connectionId:"TEXT",status:"TEXT",data:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_rd_ts ON requestDetails(timestamp DESC)","CREATE INDEX IF NOT EXISTS idx_rd_provider ON requestDetails(provider)","CREATE INDEX IF NOT EXISTS idx_rd_model ON requestDetails(model)","CREATE INDEX IF NOT EXISTS idx_rd_conn ON requestDetails(connectionId)"]}};function f(a,b){let c=Object.entries(b.columns).map(([a,b])=>`${a} ${b}`);return b.primaryKey&&c.push(b.primaryKey),`CREATE TABLE IF NOT EXISTS ${a} (${c.join(", ")})`}}};
|