vansrouter 0.9.0 → 0.9.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 +8 -7
- package/app/.next-cli-build/build-manifest.json +3 -3
- package/app/.next-cli-build/prerender-manifest.json +3 -3
- package/app/.next-cli-build/react-loadable-manifest.json +1 -1
- package/app/.next-cli-build/routes-manifest.json +8 -0
- 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 +5 -5
- 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 +2 -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/media-providers/[kind]/[id]/page.js +3 -3
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js +2 -2
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js +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/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/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 +3 -3
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js +2 -2
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js +2 -2
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page.js +3 -3
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page.js +2 -2
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/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/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 +2 -2
- package/app/.next-cli-build/server/app/_global-error.segments/_full.segment.rsc +2 -2
- 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 +2 -2
- 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 +5 -5
- package/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +5 -5
- 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 +5 -5
- 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/auth/check/route.js +1 -1
- package/app/.next-cli-build/server/app/api/auth/check/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/cli-tools/all-statuses/route.js +4 -4
- package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js +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 +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/combos/[id]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/combos/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/combos/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/headroom/extras/route.js +1 -1
- package/app/.next-cli-build/server/app/api/headroom/extras/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/headroom/proxy/[...path]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/headroom/proxy/[...path]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/headroom/restart/route.js +1 -1
- package/app/.next-cli-build/server/app/api/headroom/restart/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 +1 -1
- 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/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/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/[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/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]/gcp-projects/route.js +1 -0
- package/app/.next-cli-build/server/app/api/providers/[id]/gcp-projects/route.js.nft.json +1 -0
- package/app/.next-cli-build/server/app/api/providers/[id]/gcp-projects/route_client-reference-manifest.js +1 -0
- 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]/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/circuit-breakers/[name]/reset/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/circuit-breakers/[name]/reset/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/circuit-breakers/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/circuit-breakers/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/health/route.js +2 -2
- package/app/.next-cli-build/server/app/api/pxpipe/health/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/install/route.js +2 -2
- package/app/.next-cli-build/server/app/api/pxpipe/install/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/logs/route.js +2 -2
- package/app/.next-cli-build/server/app/api/pxpipe/logs/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/restart/route.js +2 -2
- package/app/.next-cli-build/server/app/api/pxpipe/restart/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/start/route.js +2 -2
- package/app/.next-cli-build/server/app/api/pxpipe/start/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/stats/route.js +2 -2
- package/app/.next-cli-build/server/app/api/pxpipe/stats/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/pxpipe/stop/route.js +2 -2
- package/app/.next-cli-build/server/app/api/pxpipe/stop/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/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 +3 -3
- 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/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/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/[id]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/request-details/[id]/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/stats/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/stats/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/stream/route.js +2 -2
- package/app/.next-cli-build/server/app/api/usage/stream/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/api/chat/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/api/chat/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/audio/voices/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/audio/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/embeddings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/embeddings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/images/generations/route.js +2 -2
- 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 +5 -5
- package/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +5 -5
- 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 +5 -5
- 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/basic-chat.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/basic-chat.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_full.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_index.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/cli-tools.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/cli-tools.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_full.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_index.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/combos.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/combos.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/combos.segments/_full.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/combos.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/combos.segments/_index.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/combos.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/endpoint.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/endpoint.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_full.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_index.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_full.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_index.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/mitm.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/mitm.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/mitm.segments/_full.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/mitm.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/mitm.segments/_index.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/mitm.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/profile.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/profile.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/profile.segments/_full.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/profile.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/profile.segments/_index.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/profile.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/providers/new.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/providers/new.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_full.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_index.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/providers.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/providers.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/providers.segments/_full.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/providers.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/providers.segments/_index.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/providers.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_index.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/pxpipe.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/pxpipe.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard/pxpipe/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard/pxpipe.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_full.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_index.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/quota.html +2 -2
- package/app/.next-cli-build/server/app/dashboard/quota.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/quota.segments/_full.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/quota.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/quota.segments/_index.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/quota.segments/_tree.segment.rsc +2 -2
- 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 +5 -5
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +5 -5
- 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 +5 -5
- 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/dashboard/skills.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/skills.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/skills.segments/_full.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/skills.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/skills.segments/_index.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/skills.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/token-saver.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/token-saver.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_full.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_index.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/translator.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/translator.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/translator.segments/_full.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/translator.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/translator.segments/_index.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/translator.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/usage.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/usage.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/usage.segments/_full.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/usage.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/usage.segments/_index.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/usage.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard.html +1 -1
- package/app/.next-cli-build/server/app/dashboard.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard.segments/_full.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard.segments/_index.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard.segments/_tree.segment.rsc +2 -2
- 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/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 +5 -5
- package/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +5 -5
- 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 +5 -5
- 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 +6 -6
- package/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +6 -6
- 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 +5 -5
- 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 +1 -1
- package/app/.next-cli-build/server/app/manifest.webmanifest/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/masuk/page.js +2 -2
- package/app/.next-cli-build/server/app/masuk/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/masuk/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app-paths-manifest.json +8 -7
- package/app/.next-cli-build/server/chunks/1548.js +63 -0
- package/app/.next-cli-build/server/chunks/1688.js +1 -1
- package/app/.next-cli-build/server/chunks/2056.js +1 -1
- package/app/.next-cli-build/server/chunks/2445.js +1 -1
- package/app/.next-cli-build/server/chunks/2554.js +4 -4
- package/app/.next-cli-build/server/chunks/2557.js +4 -4
- package/app/.next-cli-build/server/chunks/3040.js +1 -1
- package/app/.next-cli-build/server/chunks/3405.js +1 -1
- package/app/.next-cli-build/server/chunks/3711.js +2 -2
- package/app/.next-cli-build/server/chunks/3736.js +1 -1
- package/app/.next-cli-build/server/chunks/383.js +1 -1
- package/app/.next-cli-build/server/chunks/3950.js +1 -1
- package/app/.next-cli-build/server/chunks/4418.js +5 -5
- package/app/.next-cli-build/server/chunks/4539.js +1 -1
- package/app/.next-cli-build/server/chunks/4574.js +4 -4
- package/app/.next-cli-build/server/chunks/5006.js +1 -1
- package/app/.next-cli-build/server/chunks/5638.js +9 -0
- package/app/.next-cli-build/server/chunks/575.js +2 -2
- package/app/.next-cli-build/server/chunks/6159.js +1 -1
- package/app/.next-cli-build/server/chunks/6165.js +1 -1
- package/app/.next-cli-build/server/chunks/{9582.js → 6795.js} +2 -2
- package/app/.next-cli-build/server/chunks/7006.js +1 -1
- package/app/.next-cli-build/server/chunks/7164.js +1 -1
- package/app/.next-cli-build/server/chunks/7938.js +1 -1
- package/app/.next-cli-build/server/chunks/8057.js +9 -0
- package/app/.next-cli-build/server/chunks/8691.js +1 -1
- package/app/.next-cli-build/server/chunks/883.js +1 -1
- package/app/.next-cli-build/server/chunks/9633.js +1 -1
- package/app/.next-cli-build/server/chunks/9673.js +1 -1
- package/app/.next-cli-build/server/chunks/9984.js +1 -1
- package/app/.next-cli-build/server/middleware-build-manifest.js +1 -1
- package/app/.next-cli-build/server/middleware-react-loadable-manifest.js +1 -1
- package/app/.next-cli-build/server/middleware.js +1 -1
- package/app/.next-cli-build/server/pages/404.html +1 -1
- package/app/.next-cli-build/server/pages/500.html +1 -1
- package/app/.next-cli-build/server/server-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/server-reference-manifest.json +1 -1
- package/app/.next-cli-build/static/chunks/2940-7bfb9676e41c3baa.js +1 -0
- package/app/.next-cli-build/static/chunks/3657.512c2a8e4d8a3378.js +1 -0
- package/app/.next-cli-build/static/chunks/3700-1638d20a87ed45e9.js +23 -0
- package/app/.next-cli-build/static/chunks/4385-d76278174392bc6b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/mitm/{page-f9d0971a0b2822bd.js → page-d057378e9d6e3055.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-fbb93561483790fe.js +12 -0
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/usage/page-56b08e5cfa9b0979.js +1 -0
- package/app/.next-cli-build/static/chunks/app/_global-error/{page-6c97512bccbd0b3b.js → page-b4e2d712d7cc7da0.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/api/auth/check/{route-6c97512bccbd0b3b.js → route-b4e2d712d7cc7da0.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/api/auth/login/{route-6c97512bccbd0b3b.js → route-b4e2d712d7cc7da0.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/api/auth/logout/{route-6c97512bccbd0b3b.js → route-b4e2d712d7cc7da0.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/api/auth/oidc/callback/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/auth/oidc/start/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/auth/oidc/test/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/auth/reset-password/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/auth/status/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/all-statuses/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/claude-settings/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/cline-settings/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/codex-settings/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/copilot-settings/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-registry/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-tools/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-settings/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/deepseek-tui-settings/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/droid-settings/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/hermes-settings/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/jcode-settings/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/kilo-settings/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/openclaw-settings/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/opencode-settings/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/combos/[id]/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/combos/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/headroom/extras/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/headroom/proxy/[...path]/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/headroom/restart/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/headroom/start/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/headroom/status/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/headroom/stop/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/health/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/init/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/keys/[id]/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/keys/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/locale/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/message/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/sse/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/deepgram/voices/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/inworld/voices/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/minimax/voices/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/voices/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/models/alias/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/models/availability/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/models/custom/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/models/disabled/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/models/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/models/test/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/[provider]/[action]/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/codex/bulk-import/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/codex/import-token/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/cursor/auto-import/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/cursor/import/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/gitlab/pat/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/iflow/cookie/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/api-key/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/auto-import/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import-cli-proxy/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-authorize/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-exchange/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/pricing/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/provider-nodes/[id]/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/provider-nodes/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/provider-nodes/validate/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/gcp-projects/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/models/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/test/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/test-models/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/circuit-breakers/[name]/reset/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/circuit-breakers/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/client/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/kilo/free-models/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/suggested-models/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/test-batch/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/validate/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/test/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/proxy-pools/cloudflare-deploy/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/proxy-pools/deno-deploy/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/proxy-pools/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/proxy-pools/vercel-deploy/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/pxpipe/health/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/pxpipe/install/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/pxpipe/logs/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/pxpipe/restart/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/pxpipe/start/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/pxpipe/stats/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/pxpipe/status/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/pxpipe/stop/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/settings/database/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/settings/proxy-test/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/settings/require-login/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/settings/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/shutdown/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/tags/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/translator/console-logs/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/translator/console-logs/stream/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/translator/load/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/translator/save/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/translator/send/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/translator/translate/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/tunnel/disable/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/tunnel/enable/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/tunnel/status/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-check/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-disable/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-enable/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-install/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/codex-reset-credits/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/usage/chart/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/usage/history/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/usage/logs/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/usage/providers/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/usage/request-details/[id]/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/usage/request-details/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/usage/request-logs/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/usage/stats/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/usage/stream/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/api/chat/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/audio/speech/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/audio/transcriptions/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/audio/voices/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/chat/completions/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/embeddings/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/images/generations/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/messages/count_tokens/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/messages/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/models/[kind]/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/models/info/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/models/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/responses/compact/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/responses/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/search/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/web/fetch/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1beta/models/[...path]/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1beta/models/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/version/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/version/shutdown/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/version/update/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/manifest.webmanifest/route-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/app-error-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/forbidden-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/not-found-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/unauthorized-b4e2d712d7cc7da0.js +1 -0
- package/app/.next-cli-build/static/chunks/webpack-dcde53305cf97d3a.js +1 -0
- package/app/.next-cli-build/static/css/5279f70cd3c74275.css +1 -0
- package/app/_nm/.pnpm/ansi-styles@4.3.0/node_modules/ansi-styles/index.js +163 -0
- package/app/_nm/.pnpm/ansi-styles@4.3.0/node_modules/ansi-styles/package.json +56 -0
- package/app/_nm/.pnpm/ansi-styles@4.3.0/node_modules/color-convert/conversions.js +839 -0
- package/app/_nm/.pnpm/ansi-styles@4.3.0/node_modules/color-convert/index.js +81 -0
- package/app/_nm/.pnpm/ansi-styles@4.3.0/node_modules/color-convert/package.json +48 -0
- package/app/_nm/.pnpm/ansi-styles@4.3.0/node_modules/color-convert/route.js +97 -0
- package/app/_nm/.pnpm/chalk@4.1.2/node_modules/ansi-styles/index.js +163 -0
- package/app/_nm/.pnpm/chalk@4.1.2/node_modules/ansi-styles/package.json +56 -0
- package/app/_nm/.pnpm/chalk@4.1.2/node_modules/chalk/package.json +68 -0
- package/app/_nm/.pnpm/chalk@4.1.2/node_modules/chalk/source/index.js +229 -0
- package/app/_nm/.pnpm/chalk@4.1.2/node_modules/chalk/source/templates.js +134 -0
- package/app/_nm/.pnpm/chalk@4.1.2/node_modules/chalk/source/util.js +39 -0
- package/app/_nm/.pnpm/chalk@4.1.2/node_modules/supports-color/index.js +135 -0
- package/app/_nm/.pnpm/chalk@4.1.2/node_modules/supports-color/package.json +53 -0
- package/app/_nm/.pnpm/color-convert@2.0.1/node_modules/color-convert/conversions.js +839 -0
- package/app/_nm/.pnpm/color-convert@2.0.1/node_modules/color-convert/index.js +81 -0
- package/app/_nm/.pnpm/color-convert@2.0.1/node_modules/color-convert/package.json +48 -0
- package/app/_nm/.pnpm/color-convert@2.0.1/node_modules/color-convert/route.js +97 -0
- package/app/_nm/.pnpm/color-convert@2.0.1/node_modules/color-name/index.js +152 -0
- package/app/_nm/.pnpm/color-convert@2.0.1/node_modules/color-name/package.json +28 -0
- package/app/_nm/.pnpm/color-name@1.1.4/node_modules/color-name/index.js +152 -0
- package/app/_nm/.pnpm/color-name@1.1.4/node_modules/color-name/package.json +28 -0
- package/app/_nm/.pnpm/dompurify@3.2.7/node_modules/dompurify/dist/purify.cjs.js +1359 -0
- package/app/_nm/.pnpm/dompurify@3.2.7/node_modules/dompurify/package.json +171 -0
- package/app/_nm/.pnpm/has-flag@4.0.0/node_modules/has-flag/index.js +8 -0
- package/app/_nm/.pnpm/has-flag@4.0.0/node_modules/has-flag/package.json +46 -0
- package/app/_nm/.pnpm/supports-color@7.2.0/node_modules/has-flag/index.js +8 -0
- package/app/_nm/.pnpm/supports-color@7.2.0/node_modules/has-flag/package.json +46 -0
- package/app/_nm/.pnpm/supports-color@7.2.0/node_modules/supports-color/index.js +135 -0
- package/app/_nm/.pnpm/supports-color@7.2.0/node_modules/supports-color/package.json +53 -0
- package/app/_nm/chalk/package.json +68 -0
- package/app/_nm/chalk/source/index.js +229 -0
- package/app/_nm/chalk/source/templates.js +134 -0
- package/app/_nm/chalk/source/util.js +39 -0
- package/app/_nm/dompurify/dist/purify.cjs.js +1359 -0
- package/app/_nm/dompurify/package.json +171 -0
- package/app/package.json +4 -1
- package/package.json +1 -1
- package/app/.next-cli-build/server/chunks/3141.js +0 -9
- package/app/.next-cli-build/server/chunks/7204.js +0 -63
- package/app/.next-cli-build/server/chunks/8121.js +0 -9
- package/app/.next-cli-build/static/chunks/2940-118a55e898443060.js +0 -1
- package/app/.next-cli-build/static/chunks/3657.ebdbf7a663552b39.js +0 -1
- package/app/.next-cli-build/static/chunks/3700-15225430a8d2ad27.js +0 -23
- package/app/.next-cli-build/static/chunks/4385-7038414df0ff9f94.js +0 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-c8313893c058d947.js +0 -12
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/usage/page-81fc749f0faf82dc.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/auth/oidc/callback/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/auth/oidc/start/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/auth/oidc/test/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/auth/reset-password/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/auth/status/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/all-statuses/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/claude-settings/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/cline-settings/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/codex-settings/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/copilot-settings/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-registry/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-tools/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-settings/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/deepseek-tui-settings/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/droid-settings/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/hermes-settings/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/jcode-settings/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/kilo-settings/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/openclaw-settings/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/opencode-settings/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/combos/[id]/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/combos/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/headroom/extras/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/headroom/proxy/[...path]/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/headroom/restart/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/headroom/start/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/headroom/status/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/headroom/stop/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/health/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/init/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/keys/[id]/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/keys/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/locale/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/message/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/sse/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/deepgram/voices/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/inworld/voices/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/minimax/voices/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/voices/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/models/alias/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/models/availability/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/models/custom/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/models/disabled/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/models/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/models/test/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/[provider]/[action]/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/codex/bulk-import/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/codex/import-token/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/cursor/auto-import/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/cursor/import/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/gitlab/pat/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/iflow/cookie/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/api-key/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/auto-import/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import-cli-proxy/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-authorize/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-exchange/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/pricing/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/provider-nodes/[id]/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/provider-nodes/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/provider-nodes/validate/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/models/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/test/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/test-models/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/circuit-breakers/[name]/reset/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/circuit-breakers/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/client/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/kilo/free-models/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/suggested-models/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/test-batch/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/validate/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/test/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/proxy-pools/cloudflare-deploy/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/proxy-pools/deno-deploy/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/proxy-pools/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/proxy-pools/vercel-deploy/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/pxpipe/health/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/pxpipe/install/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/pxpipe/logs/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/pxpipe/restart/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/pxpipe/start/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/pxpipe/stats/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/pxpipe/status/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/pxpipe/stop/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/settings/database/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/settings/proxy-test/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/settings/require-login/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/settings/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/shutdown/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/tags/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/translator/console-logs/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/translator/console-logs/stream/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/translator/load/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/translator/save/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/translator/send/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/translator/translate/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/tunnel/disable/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/tunnel/enable/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/tunnel/status/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-check/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-disable/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-enable/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-install/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/codex-reset-credits/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/usage/chart/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/usage/history/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/usage/logs/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/usage/providers/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/usage/request-details/[id]/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/usage/request-details/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/usage/request-logs/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/usage/stats/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/usage/stream/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/api/chat/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/audio/speech/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/audio/transcriptions/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/audio/voices/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/chat/completions/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/embeddings/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/images/generations/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/messages/count_tokens/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/messages/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/models/[kind]/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/models/info/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/models/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/responses/compact/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/responses/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/search/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/web/fetch/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1beta/models/[...path]/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1beta/models/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/version/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/version/shutdown/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/version/update/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/manifest.webmanifest/route-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/app-error-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/forbidden-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/not-found-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/unauthorized-6c97512bccbd0b3b.js +0 -1
- package/app/.next-cli-build/static/chunks/webpack-66c60e327317b84e.js +0 -1
- package/app/.next-cli-build/static/css/2bcf8360fd5b65f9.css +0 -1
- /package/app/.next-cli-build/static/{u1Z2OfE631HIwJogDw7Zo → DgZGtay5XqIXdPv9nJfvo}/_buildManifest.js +0 -0
- /package/app/.next-cli-build/static/{u1Z2OfE631HIwJogDw7Zo → DgZGtay5XqIXdPv9nJfvo}/_ssgManifest.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";exports.id=2445,exports.ids=[1253,2445],exports.modules={5505:(a,b,c)=>{c.d(b,{UQ:()=>r,CR:()=>p,S5:()=>x,hk:()=>l,Fr:()=>B,Z6:()=>q,Qo:()=>m,kJ:()=>w,xK:()=>D,lE:()=>o,Bl:()=>v,qG:()=>C,iF:()=>y,p8:()=>A});var d=c(63448),e=c(97810),f=c(39764),g=c(91253);function h(a,b){let c=process.env[a];if(null==c||""===c)return b;let d=Number(c);return Number.isFinite(d)&&d>0?d:b}let i={oauth:{providerFailureThreshold:h("VANSROUTER_PROVIDER_FAILURE_OAUTH_THRESHOLD",10),providerFailureWindowMs:h("VANSROUTER_PROVIDER_FAILURE_OAUTH_WINDOW_MS",9e5),providerCooldownMs:h("VANSROUTER_PROVIDER_FAILURE_OAUTH_COOLDOWN_MS",3e5)},apikey:{providerFailureThreshold:h("VANSROUTER_PROVIDER_FAILURE_APIKEY_THRESHOLD",5),providerFailureWindowMs:h("VANSROUTER_PROVIDER_FAILURE_APIKEY_WINDOW_MS",3e4),providerCooldownMs:h("VANSROUTER_PROVIDER_FAILURE_APIKEY_COOLDOWN_MS",3e4)},local:{providerFailureThreshold:h("VANSROUTER_PROVIDER_FAILURE_LOCAL_THRESHOLD",2),providerFailureWindowMs:h("VANSROUTER_PROVIDER_FAILURE_LOCAL_WINDOW_MS",3e5),providerCooldownMs:h("VANSROUTER_PROVIDER_FAILURE_LOCAL_COOLDOWN_MS",6e4)}},j=new Map;function k(a,b){return Array.isArray(a)?a.some(a=>String(a).toLowerCase()===b):!!a&&"object"==typeof a&&Object.keys(a).some(a=>String(a).toLowerCase()===b)}function l(a,b,c=0){let e=b?("string"==typeof b?b:JSON.stringify(b)).toLowerCase():"";for(let b of d.t2)if(b.text&&e&&e.includes(b.text)||b.status&&b.status===a){if(b.backoff){let a=Math.min(c+1,d.EQ.maxLevel);return{shouldFallback:!0,cooldownMs:function(a=0){let b=Math.max(0,a-1);return Math.min(d.EQ.base*Math.pow(2,b),d.EQ.max)}(a),newBackoffLevel:a}}return{shouldFallback:!0,cooldownMs:b.cooldownMs}}return{shouldFallback:!0,cooldownMs:d.wf}}function m(a){if(!a)return"";let b=new Date(a).getTime()-Date.now();if(b<=0)return"reset after 0s";let c=Math.ceil(b/1e3),d=Math.floor(c/3600),e=Math.floor(c%3600/60),f=c%60,g=[];return d>0&&g.push(`${d}h`),e>0&&g.push(`${e}m`),(f>0||0===g.length)&&g.push(`${f}s`),`reset after ${g.join(" ")}`}let n=[/credits?.{0,20}exhausted/i,/quota.{0,20}exhausted/i,/no remaining credits/i,/insufficient[ _-]?credits/i,/payment.{0,10}required/i,/has exhausted its credits/i];function o(a,b){if(!b||"kimchi"!==a)return!1;let c="string"==typeof b?b:(()=>{try{return JSON.stringify(b)}catch{return String(b)}})();return n.some(a=>a.test(c))}function p(a=new Date){let b=function(a=new Date){let b=new Date(a.getTime());return new Date(1===b.getUTCDate()?Date.UTC(b.getUTCFullYear(),b.getUTCMonth(),1,0,0,0,0):Date.UTC(b.getUTCFullYear(),b.getUTCMonth()+1,1,0,0,0,0))}(a);return{isActive:!1,rateLimitedUntil:b.toISOString(),testStatus:"quota_exhausted",lastErrorType:"quota_exhausted",errorCode:402,quotaExhaustedAt:a.toISOString(),quotaResetsAt:b.toISOString()}}function q(a,b){if(!b||"kimchi"===a)return null;let c="string"==typeof b?b:(()=>{try{return JSON.stringify(b)}catch{return String(b)}})(),d=(0,f._c)({status:429,body:c});return"daily_quota"!==d.kind?null:d}function r(a,b=new Date){if(!a)return{};let c=function(a=new Date){return Math.max(new Date(Date.UTC(a.getUTCFullYear(),a.getUTCMonth(),a.getUTCDate()+1,0,0,0,0)).getTime()-a.getTime(),1e3)}(b);return{[u(a)]:new Date(b.getTime()+c).toISOString()}}let s="modelLock_",t=`${s}__all`;function u(a){return a?`${s}${a}`:t}function v(a,b){let c=a[u(b)]||a[t];return!!c&&new Date(c).getTime()>Date.now()}function w(a){if(!a)return null;let b=null,c=Date.now();for(let[d,e]of Object.entries(a)){if(!d.startsWith(s)||!e)continue;let a=new Date(e).getTime();a<=c||(!b||a<b)&&(b=a)}return b?new Date(b).toISOString():null}function x(a,b){return{[u(a)]:new Date(Date.now()+b).toISOString()}}function y(a,b="direct"){if(!a)return!1;let c=(0,e.qF)(`${a}:${b}`);return!!c&&!c.canExecute()}let z=new Map;function A(a,b,c,d,f,h="direct"){if(!a)return;if(f){let b=`${a}:${h}:${f}`,c=Date.now(),d=z.get(b);if(d&&c-d<5e3)return;if(z.set(b,c),z.size>1e4){let a=Math.floor(1e3);for(let b of Array.from(z.keys()).slice(0,a))z.delete(b)}}if(b&&!e.rz.has(b))return;let l=i[function(a){if(!a)return"apikey";if(j.has(a))return j.get(a);let b=String(a).toLowerCase(),c="apikey";return k(g.zN,b)?c="oauth":k(g.fg,b)?c="apikey":("ollama"===b||"local"===b||"lmstudio"===b||"kobold"===b)&&(c="local"),j.set(a,c),c}(a)]??i.apikey,m=`${a}:${h}`,n=(0,e.qF)(m,{failureThreshold:l.providerFailureThreshold,failureWindowMs:l.providerFailureWindowMs,resetTimeout:l.providerCooldownMs});!n||n.canExecute()&&(n._onFailure({statusCode:b,message:c}),n.canExecute()||d?.warn?.(`[ProviderFailure] ${m}: circuit breaker opened after ${n.failureCount} failures`))}function B(a,b="direct"){a&&(0,e.Nc)(`${a}:${b}`)}function C(a){if(!a)return!1;let b=(0,e.NO)().filter(b=>{let c=b.name||"";return c===a||c.startsWith(`${a}:`)});return 0!==b.length&&b.every(a=>{let b=(0,e.qF)(a.name);return!!(b&&!b.canExecute())})}function D(a){if(!a)return 0;let b=(0,e.NO)(),c=1/0;for(let d of b){let b=d.name||"";if(b!==a&&!b.startsWith(`${a}:`))continue;let f=(0,e.qF)(d.name);if(f&&!f.canExecute()){let a=f.getRetryAfterMs();a>0&&a<c&&(c=a)}}return c===1/0?0:c}},15261:(a,b,c)=>{c.d(b,{A1:()=>h,VO:()=>j,lR:()=>k,wO:()=>i,yj:()=>f,zL:()=>g});var d=c(63448),e=c(98757);function f(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 g(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 f="";try{let a=JSON.parse(c),{error:d}=(0,e.K)(a,b?.getProvider?.()||b?.provider);f=d?d.message:a.error?.message||a.message||a.error||c}catch{f=c}let h=("string"==typeof f?f:JSON.stringify(f))||d.O[a.status]||`Upstream error: ${a.status}`;return{statusCode:a.status,message:h}}function h(a,b,c,d=!1){return{success:!1,status:a,error:b,resetsAtMs:c,policyError:d,response:f(a,b)}}function i(a,b,c,d){let e=Math.max(Math.ceil((new Date(c).getTime()-Date.now())/1e3),1);return new Response(JSON.stringify({error:{message:`${b} (${d})`}}),{status:a,headers:{"Content-Type":"application/json","Retry-After":String(e)}})}function j(a,b){if(!a||!b)return a;let c=new Headers(a.headers);return c.set("X-VansRoute-Selected-Connection-Id",b),new Response(a.body,{status:a.status,statusText:a.statusText,headers:c})}function k(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}`}},39764:(a,b,c)=>{c.d(b,{_c:()=>g});let d=[/today'?s quota/i,/daily quota (exhaust|exceed|reached|used)/i,/daily limit (exhaust|exceed|reached|used)/i,/per.?day (limit|quota)/i,/daily.*exhaust/i,/exhaust.*daily/i,/daily.*cap/i,/cap.*daily/i,/reset.*tomorrow/i,/try again tomorrow/i,/come back tomorrow/i],e=[/monthly.*limit/i,/monthly.*quota/i,/per.?month.*limit/i,/quota.*exceed/i,/exceed.*quota/i,/insufficient.*quota/i,/billing.*cap/i,/credit.*exhaust/i,/out of credits/i,/hard.?limit/i,/plan.*limit/i,/resource.*exhaust/i,/check.*quota/i,/individual quota reached/i,/enable overages/i,/402.*billing/i,/billing.*required/i,/payment.*required/i];function f(a){if("string"==typeof a)return a;if(null==a)return"";try{return JSON.stringify(a)}catch{return""}}function g(a){let b,c;return a?(b=f(a.body))&&d.some(a=>a.test(b))?{kind:"daily_quota",cooldownMs:function(a=new Date){return Math.max(1,new Date(Date.UTC(a.getUTCFullYear(),a.getUTCMonth(),a.getUTCDate()+1,0,0,0,0)).getTime()-a.getTime())}()}:(c=f(a.body))&&e.some(a=>a.test(c))?{kind:"quota_exhausted",cooldownMs:36e5}:{kind:"rate_limit",cooldownMs:6e4}:{kind:"rate_limit",cooldownMs:6e4}}},91253:(a,b,c)=>{c.d(b,{AI_PROVIDERS:()=>s,js:()=>w,DI:()=>n,fg:()=>k,Pd:()=>o,IS:()=>h,nJ:()=>i,zN:()=>j,JH:()=>m,jO:()=>y,wb:()=>x,br:()=>l,wG:()=>v,zt:()=>t,gb:()=>q,gC:()=>r,mq:()=>p,rs:()=>u});var d=c(52056);let e="⚠️ Risk Notice: This provider uses a subscription/OAuth session not officially licensed for proxy/router use. Account may be restricted or banned. Use at your own risk.";Object.fromEntries(d.A.filter(a=>a.display).map(a=>{let b;return[a.id,"RISK_NOTICE"===(b=a.display).deprecationNotice?{...b,deprecationNotice:e}:b]}));let f=["serviceKinds","ttsConfig","sttConfig","embeddingConfig","imageConfig","imageToTextConfig","videoConfig","musicConfig","searchViaChat","searchConfig","fetchConfig","modelsFetcher","mediaPriority","hiddenKinds"],g=a=>Object.fromEntries(d.A.filter(b=>b.category===a).map(a=>[a.id,function(a){let b={};for(let c of(a.media&&Object.assign(b,a.media),f))void 0!==a[c]&&(b[c]=a[c]);let c={...a.display||{}};return"RISK_NOTICE"===c.deprecationNotice&&(c.deprecationNotice=e),{...c,id:a.id,alias:a.uiAlias||a.alias,...a.hidden?{hidden:!0}:{},...b,...void 0!==a.priority?{priority:a.priority}:{},...a.hasFree?{hasFree:!0}:{},...a.thinkingConfig?{thinkingConfig:a.thinkingConfig}:{},...a.regions?{regions:a.regions,defaultRegion:a.defaultRegion}:{},...a.hasProviderSpecificData?{hasProviderSpecificData:!0}:{},...a.noAuth?{noAuth:!0}:{},...a.passthroughModels?{passthroughModels:!0}:{},...a.hasOAuth?{hasOAuth:!0}:{},...a.authModes?{authModes:a.authModes}:{},...a.authType?{authType:a.authType}:{},...a.authHint?{authHint:a.authHint}:{}}}(a)])),h=g("free"),i=g("freeTier"),j=g("oauth"),k=g("apikey"),l=g("webCookie"),m="openai-compatible-",n="anthropic-compatible-",o="custom-embedding-";function p(a){return"string"==typeof a&&a.startsWith(m)}function q(a){return"string"==typeof a&&a.startsWith(n)}function r(a){return"string"==typeof a&&a.startsWith(o)}let s={...h,...i,...j,...k,...l};function t(a){for(let b of Object.values(s))if(b.alias===a||b.id===a)return b;return null}function u(a){let b=t(a);return b?.id||a}function v(a){let b=s[a];return b?.alias||a}let w=Object.values(s).reduce((a,b)=>(a[b.alias]=b.id,a),{});Object.values(s).reduce((a,b)=>(a[b.id]=b.alias,a),{});let x=d.A.filter(a=>a.features?.usage).map(a=>a.id),y=d.A.filter(a=>a.features?.usageApikey).map(a=>a.id)},97810:(a,b,c)=>{c.d(b,{NO:()=>l,Nc:()=>m,qF:()=>k,rz:()=>h});let d="CLOSED",e="DEGRADED",f="OPEN",g="HALF_OPEN",h=new Set([408,500,502,503,504]);class i{constructor(a,b={}){this.name=a,this.state=d,this.failureCount=0,this.successCount=0,this.lastFailureTime=null,this.lastStateChange=Date.now(),this.openedAt=null,this.resetTimeoutMs=b.resetTimeout||3e4,this.failureThreshold=b.failureThreshold||5,this.failureWindowMs=b.failureWindowMs||0,this.failureTimestamps=[],this.halfOpenRequests=b.halfOpenRequests||1,this.halfOpenRemaining=0,this.maxBackoffMultiplier=b.maxBackoffMultiplier||16,this.backoffEscalationCount=b.backoffEscalationCount||3,this.openProbeCycles=0,this.degradationThreshold=b.degradationThreshold||Math.floor(.6*this.failureThreshold),this.cooldownByKind=b.cooldownByKind||{},this.classifyError=b.classifyError||null,this.isFailure=b.isFailure||null,this.kindThresholds=b.kindThresholds||{},this._transitionHistory=[]}_transition(a){let b=this.state;this.state=a,this.lastStateChange=Date.now(),this._transitionHistory.push({from:b,to:a,at:new Date().toISOString()}),this._transitionHistory.length>20&&this._transitionHistory.shift(),a===f?(this.openedAt=Date.now(),this.halfOpenRemaining=0):a===g?this.halfOpenRemaining=this.halfOpenRequests:a===d&&(this.failureCount=0,this.successCount=0,this.openProbeCycles=0,this.openedAt=null)}canExecute(){let a=Date.now();if(this.state===d||this.state===e)return!0;if(this.state===f){let b=a-(this.openedAt||a),c=Math.min(Math.pow(2,Math.floor(this.openProbeCycles/this.backoffEscalationCount)),this.maxBackoffMultiplier);return b>=this.resetTimeoutMs*c&&(this._transition(g),!0)}return this.state!==g||this.halfOpenRemaining>0&&(this.halfOpenRemaining--,!0)}_onSuccess(){this.successCount++,this.state===g?this._transition(d):this.state===e&&this.successCount>=this.failureThreshold&&this._transition(d)}_pruneFailureTimestamps(){if(!this.failureWindowMs||this.failureWindowMs<=0)return;let a=Date.now()-this.failureWindowMs,b=this.failureTimestamps.findIndex(b=>b>=a);b>0?this.failureTimestamps=this.failureTimestamps.slice(b):-1===b&&(this.failureTimestamps=[])}_countFailuresInWindow(){return!this.failureWindowMs||this.failureWindowMs<=0?this.failureCount:(this._pruneFailureTimestamps(),this.failureTimestamps.length)}_onFailure(a){if(this.isFailure&&!this.isFailure(a))return;if(this.failureCount++,this.lastFailureTime=Date.now(),this.failureWindowMs>0&&(this.failureTimestamps.push(Date.now()),this._pruneFailureTimestamps()),this.state===g){this.openProbeCycles++,this._transition(f);return}if(this.state===f)return;let b=this.classifyError?this.classifyError(a):"transient",c=this.kindThresholds[b];if(c?.immediateOpen)return void this._transition(f);let h=c?.threshold||this.failureThreshold,i=this._countFailuresInWindow();i>=h?this._transition(f):i>=this.degradationThreshold&&this.state===d&&this._transition(e)}getRetryAfterMs(){if(this.state!==f||!this.openedAt)return 0;let a=Math.min(Math.pow(2,Math.floor(this.openProbeCycles/this.backoffEscalationCount)),this.maxBackoffMultiplier),b=this.resetTimeoutMs*a-(Date.now()-(this.openedAt||Date.now()));return b>0?b:0}reset(){this._transition(d)}getStatus(){return{name:this.name,state:this.state,failureCount:this.failureCount,successCount:this.successCount,lastFailureTime:this.lastFailureTime,retryAfterMs:this.getRetryAfterMs(),openedAt:this.openedAt,transitions:this._transitionHistory.slice(-5)}}}let j=new Map;function k(a,b){if(!a)return null;let c=j.get(a);return c?(b&&(null!=b.failureThreshold&&(c.failureThreshold=b.failureThreshold),null!=b.resetTimeout&&(c.resetTimeoutMs=b.resetTimeout),null!=b.degradationThreshold&&(c.degradationThreshold=b.degradationThreshold),b.cooldownByKind&&(c.cooldownByKind=b.cooldownByKind),b.classifyError&&(c.classifyError=b.classifyError),b.isFailure&&(c.isFailure=b.isFailure),b.kindThresholds&&(c.kindThresholds=b.kindThresholds),null!=b.maxBackoffMultiplier&&(c.maxBackoffMultiplier=b.maxBackoffMultiplier),null!=b.backoffEscalationCount&&(c.backoffEscalationCount=b.backoffEscalationCount)),c):b?(c=new i(a,b),j.set(a,c),c):null}function l(){return Array.from(j.values()).map(a=>a.getStatus())}function m(a){let b=j.get(a);b&&b.reset()}},98757:(a,b,c)=>{c.d(b,{K:()=>d});function d(a,b){return!("clinepass"!==b||!a||"object"!=typeof a||Array.isArray(a))&&"success"in a?!1===a.success?{body:null,error:{message:"string"==typeof a.error?a.error:a.error?.message||a.message||"Upstream error",status:a.statusCode||null}}:!0===a.success&&"data"in a&&null!==a.data&&"object"==typeof a.data?{body:a.data,error:null}:{body:a,error:null}:{body:a,error:null}}}};
|
|
1
|
+
"use strict";exports.id=2445,exports.ids=[1253,2445],exports.modules={5505:(a,b,c)=>{c.d(b,{UQ:()=>r,CR:()=>p,S5:()=>x,hk:()=>l,Fr:()=>B,Z6:()=>q,Qo:()=>m,kJ:()=>w,xK:()=>D,lE:()=>o,Bl:()=>v,qG:()=>C,iF:()=>y,p8:()=>A});var d=c(63448),e=c(97810),f=c(39764),g=c(91253);function h(a,b){let c=process.env[a];if(null==c||""===c)return b;let d=Number(c);return Number.isFinite(d)&&d>0?d:b}let i={oauth:{providerFailureThreshold:h("VANSROUTER_PROVIDER_FAILURE_OAUTH_THRESHOLD",10),providerFailureWindowMs:h("VANSROUTER_PROVIDER_FAILURE_OAUTH_WINDOW_MS",9e5),providerCooldownMs:h("VANSROUTER_PROVIDER_FAILURE_OAUTH_COOLDOWN_MS",3e5)},apikey:{providerFailureThreshold:h("VANSROUTER_PROVIDER_FAILURE_APIKEY_THRESHOLD",5),providerFailureWindowMs:h("VANSROUTER_PROVIDER_FAILURE_APIKEY_WINDOW_MS",3e4),providerCooldownMs:h("VANSROUTER_PROVIDER_FAILURE_APIKEY_COOLDOWN_MS",3e4)},local:{providerFailureThreshold:h("VANSROUTER_PROVIDER_FAILURE_LOCAL_THRESHOLD",2),providerFailureWindowMs:h("VANSROUTER_PROVIDER_FAILURE_LOCAL_WINDOW_MS",3e5),providerCooldownMs:h("VANSROUTER_PROVIDER_FAILURE_LOCAL_COOLDOWN_MS",6e4)}},j=new Map;function k(a,b){return Array.isArray(a)?a.some(a=>String(a).toLowerCase()===b):!!a&&"object"==typeof a&&Object.keys(a).some(a=>String(a).toLowerCase()===b)}function l(a,b,c=0){let e=b?("string"==typeof b?b:JSON.stringify(b)).toLowerCase():"";for(let b of d.t2)if(b.text&&e&&e.includes(b.text)||b.status&&b.status===a){if(!1===b.shouldFallback)return{shouldFallback:!1,cooldownMs:0};if(b.backoff){let a=Math.min(c+1,d.EQ.maxLevel);return{shouldFallback:!0,cooldownMs:function(a=0){let b=Math.max(0,a-1);return Math.min(d.EQ.base*Math.pow(2,b),d.EQ.max)}(a),newBackoffLevel:a}}return{shouldFallback:!0,cooldownMs:b.cooldownMs}}return{shouldFallback:!0,cooldownMs:d.wf}}function m(a){if(!a)return"";let b=new Date(a).getTime()-Date.now();if(b<=0)return"reset after 0s";let c=Math.ceil(b/1e3),d=Math.floor(c/3600),e=Math.floor(c%3600/60),f=c%60,g=[];return d>0&&g.push(`${d}h`),e>0&&g.push(`${e}m`),(f>0||0===g.length)&&g.push(`${f}s`),`reset after ${g.join(" ")}`}let n=[/credits?.{0,20}exhausted/i,/quota.{0,20}exhausted/i,/no remaining credits/i,/insufficient[ _-]?credits/i,/payment.{0,10}required/i,/has exhausted its credits/i];function o(a,b){if(!b||"kimchi"!==a)return!1;let c="string"==typeof b?b:(()=>{try{return JSON.stringify(b)}catch{return String(b)}})();return n.some(a=>a.test(c))}function p(a=new Date){let b=function(a=new Date){let b=new Date(a.getTime());return new Date(1===b.getUTCDate()?Date.UTC(b.getUTCFullYear(),b.getUTCMonth(),1,0,0,0,0):Date.UTC(b.getUTCFullYear(),b.getUTCMonth()+1,1,0,0,0,0))}(a);return{isActive:!1,rateLimitedUntil:b.toISOString(),testStatus:"quota_exhausted",lastErrorType:"quota_exhausted",errorCode:402,quotaExhaustedAt:a.toISOString(),quotaResetsAt:b.toISOString()}}function q(a,b){if(!b||"kimchi"===a)return null;let c="string"==typeof b?b:(()=>{try{return JSON.stringify(b)}catch{return String(b)}})(),d=(0,f._c)({status:429,body:c});return"daily_quota"!==d.kind?null:d}function r(a,b=new Date){if(!a)return{};let c=function(a=new Date){return Math.max(new Date(Date.UTC(a.getUTCFullYear(),a.getUTCMonth(),a.getUTCDate()+1,0,0,0,0)).getTime()-a.getTime(),1e3)}(b);return{[u(a)]:new Date(b.getTime()+c).toISOString()}}let s="modelLock_",t=`${s}__all`;function u(a){return a?`${s}${a}`:t}function v(a,b){let c=a[u(b)]||a[t];return!!c&&new Date(c).getTime()>Date.now()}function w(a){if(!a)return null;let b=null,c=Date.now();for(let[d,e]of Object.entries(a)){if(!d.startsWith(s)||!e)continue;let a=new Date(e).getTime();a<=c||(!b||a<b)&&(b=a)}return b?new Date(b).toISOString():null}function x(a,b){return{[u(a)]:new Date(Date.now()+b).toISOString()}}function y(a,b="direct"){if(!a)return!1;let c=(0,e.qF)(`${a}:${b}`);return!!c&&!c.canExecute()}let z=new Map;function A(a,b,c,d,f,h="direct"){if(!a)return;if(f){let b=`${a}:${h}:${f}`,c=Date.now(),d=z.get(b);if(d&&c-d<5e3)return;if(z.set(b,c),z.size>1e4){let a=Math.floor(1e3);for(let b of Array.from(z.keys()).slice(0,a))z.delete(b)}}if(b&&!e.rz.has(b))return;let l=i[function(a){if(!a)return"apikey";if(j.has(a))return j.get(a);let b=String(a).toLowerCase(),c="apikey";return k(g.zN,b)?c="oauth":k(g.fg,b)?c="apikey":("ollama"===b||"local"===b||"lmstudio"===b||"kobold"===b)&&(c="local"),j.set(a,c),c}(a)]??i.apikey,m=`${a}:${h}`,n=(0,e.qF)(m,{failureThreshold:l.providerFailureThreshold,failureWindowMs:l.providerFailureWindowMs,resetTimeout:l.providerCooldownMs});!n||n.canExecute()&&(n._onFailure({statusCode:b,message:c}),n.canExecute()||d?.warn?.(`[ProviderFailure] ${m}: circuit breaker opened after ${n.failureCount} failures`))}function B(a,b="direct"){a&&(0,e.Nc)(`${a}:${b}`)}function C(a){if(!a)return!1;let b=(0,e.NO)().filter(b=>{let c=b.name||"";return c===a||c.startsWith(`${a}:`)});return 0!==b.length&&b.every(a=>{let b=(0,e.qF)(a.name);return!!(b&&!b.canExecute())})}function D(a){if(!a)return 0;let b=(0,e.NO)(),c=1/0;for(let d of b){let b=d.name||"";if(b!==a&&!b.startsWith(`${a}:`))continue;let f=(0,e.qF)(d.name);if(f&&!f.canExecute()){let a=f.getRetryAfterMs();a>0&&a<c&&(c=a)}}return c===1/0?0:c}},15261:(a,b,c)=>{c.d(b,{A1:()=>h,VO:()=>j,lR:()=>k,wO:()=>i,yj:()=>f,zL:()=>g});var d=c(63448),e=c(98757);function f(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 g(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 f="";try{let a=JSON.parse(c),{error:d}=(0,e.K)(a,b?.getProvider?.()||b?.provider);f=d?d.message:a.error?.message||a.message||a.error||c}catch{f=c}let h=("string"==typeof f?f:JSON.stringify(f))||d.O[a.status]||`Upstream error: ${a.status}`;return{statusCode:a.status,message:h}}function h(a,b,c,d=!1){return{success:!1,status:a,error:b,resetsAtMs:c,policyError:d,response:f(a,b)}}function i(a,b,c,d){let e=Math.max(Math.ceil((new Date(c).getTime()-Date.now())/1e3),1);return new Response(JSON.stringify({error:{message:`${b} (${d})`}}),{status:a,headers:{"Content-Type":"application/json","Retry-After":String(e)}})}function j(a,b){if(!a||!b)return a;let c=new Headers(a.headers);return c.set("X-VansRoute-Selected-Connection-Id",b),new Response(a.body,{status:a.status,statusText:a.statusText,headers:c})}function k(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}`}},39764:(a,b,c)=>{c.d(b,{_c:()=>g});let d=[/today'?s quota/i,/daily quota (exhaust|exceed|reached|used)/i,/daily limit (exhaust|exceed|reached|used)/i,/per.?day (limit|quota)/i,/daily.*exhaust/i,/exhaust.*daily/i,/daily.*cap/i,/cap.*daily/i,/reset.*tomorrow/i,/try again tomorrow/i,/come back tomorrow/i],e=[/monthly.*limit/i,/monthly.*quota/i,/per.?month.*limit/i,/quota.*exceed/i,/exceed.*quota/i,/insufficient.*quota/i,/billing.*cap/i,/credit.*exhaust/i,/out of credits/i,/hard.?limit/i,/plan.*limit/i,/resource.*exhaust/i,/check.*quota/i,/individual quota reached/i,/enable overages/i,/402.*billing/i,/billing.*required/i,/payment.*required/i];function f(a){if("string"==typeof a)return a;if(null==a)return"";try{return JSON.stringify(a)}catch{return""}}function g(a){let b,c;return a?(b=f(a.body))&&d.some(a=>a.test(b))?{kind:"daily_quota",cooldownMs:function(a=new Date){return Math.max(1,new Date(Date.UTC(a.getUTCFullYear(),a.getUTCMonth(),a.getUTCDate()+1,0,0,0,0)).getTime()-a.getTime())}()}:(c=f(a.body))&&e.some(a=>a.test(c))?{kind:"quota_exhausted",cooldownMs:36e5}:{kind:"rate_limit",cooldownMs:6e4}:{kind:"rate_limit",cooldownMs:6e4}}},91253:(a,b,c)=>{c.d(b,{AI_PROVIDERS:()=>s,js:()=>w,DI:()=>n,fg:()=>k,Pd:()=>o,IS:()=>h,nJ:()=>i,zN:()=>j,JH:()=>m,jO:()=>y,wb:()=>x,br:()=>l,wG:()=>v,zt:()=>t,gb:()=>q,gC:()=>r,mq:()=>p,rs:()=>u});var d=c(52056);let e="⚠️ Risk Notice: This provider uses a subscription/OAuth session not officially licensed for proxy/router use. Account may be restricted or banned. Use at your own risk.";Object.fromEntries(d.A.filter(a=>a.display).map(a=>{let b;return[a.id,"RISK_NOTICE"===(b=a.display).deprecationNotice?{...b,deprecationNotice:e}:b]}));let f=["serviceKinds","ttsConfig","sttConfig","embeddingConfig","imageConfig","imageToTextConfig","videoConfig","musicConfig","searchViaChat","searchConfig","fetchConfig","modelsFetcher","mediaPriority","hiddenKinds"],g=a=>Object.fromEntries(d.A.filter(b=>b.category===a).map(a=>[a.id,function(a){let b={};for(let c of(a.media&&Object.assign(b,a.media),f))void 0!==a[c]&&(b[c]=a[c]);let c={...a.display||{}};return"RISK_NOTICE"===c.deprecationNotice&&(c.deprecationNotice=e),{...c,id:a.id,alias:a.uiAlias||a.alias,...a.hidden?{hidden:!0}:{},...b,...void 0!==a.priority?{priority:a.priority}:{},...a.hasFree?{hasFree:!0}:{},...a.thinkingConfig?{thinkingConfig:a.thinkingConfig}:{},...a.regions?{regions:a.regions,defaultRegion:a.defaultRegion}:{},...a.hasProviderSpecificData?{hasProviderSpecificData:!0}:{},...a.noAuth?{noAuth:!0}:{},...a.passthroughModels?{passthroughModels:!0}:{},...a.hasOAuth?{hasOAuth:!0}:{},...a.authModes?{authModes:a.authModes}:{},...a.authType?{authType:a.authType}:{},...a.authHint?{authHint:a.authHint}:{}}}(a)])),h=g("free"),i=g("freeTier"),j=g("oauth"),k=g("apikey"),l=g("webCookie"),m="openai-compatible-",n="anthropic-compatible-",o="custom-embedding-";function p(a){return"string"==typeof a&&a.startsWith(m)}function q(a){return"string"==typeof a&&a.startsWith(n)}function r(a){return"string"==typeof a&&a.startsWith(o)}let s={...h,...i,...j,...k,...l};function t(a){for(let b of Object.values(s))if(b.alias===a||b.id===a)return b;return null}function u(a){let b=t(a);return b?.id||a}function v(a){let b=s[a];return b?.alias||a}let w=Object.values(s).reduce((a,b)=>(a[b.alias]=b.id,a),{});Object.values(s).reduce((a,b)=>(a[b.id]=b.alias,a),{});let x=d.A.filter(a=>a.features?.usage).map(a=>a.id),y=d.A.filter(a=>a.features?.usageApikey).map(a=>a.id)},97810:(a,b,c)=>{c.d(b,{NO:()=>l,Nc:()=>m,qF:()=>k,rz:()=>h});let d="CLOSED",e="DEGRADED",f="OPEN",g="HALF_OPEN",h=new Set([408,500,502,503,504]);class i{constructor(a,b={}){this.name=a,this.state=d,this.failureCount=0,this.successCount=0,this.lastFailureTime=null,this.lastStateChange=Date.now(),this.openedAt=null,this.resetTimeoutMs=b.resetTimeout||3e4,this.failureThreshold=b.failureThreshold||5,this.failureWindowMs=b.failureWindowMs||0,this.failureTimestamps=[],this.halfOpenRequests=b.halfOpenRequests||1,this.halfOpenRemaining=0,this.maxBackoffMultiplier=b.maxBackoffMultiplier||16,this.backoffEscalationCount=b.backoffEscalationCount||3,this.openProbeCycles=0,this.degradationThreshold=b.degradationThreshold||Math.floor(.6*this.failureThreshold),this.cooldownByKind=b.cooldownByKind||{},this.classifyError=b.classifyError||null,this.isFailure=b.isFailure||null,this.kindThresholds=b.kindThresholds||{},this._transitionHistory=[]}_transition(a){let b=this.state;this.state=a,this.lastStateChange=Date.now(),this._transitionHistory.push({from:b,to:a,at:new Date().toISOString()}),this._transitionHistory.length>20&&this._transitionHistory.shift(),a===f?(this.openedAt=Date.now(),this.halfOpenRemaining=0):a===g?this.halfOpenRemaining=this.halfOpenRequests:a===d&&(this.failureCount=0,this.successCount=0,this.openProbeCycles=0,this.openedAt=null)}canExecute(){let a=Date.now();if(this.state===d||this.state===e)return!0;if(this.state===f){let b=a-(this.openedAt||a),c=Math.min(Math.pow(2,Math.floor(this.openProbeCycles/this.backoffEscalationCount)),this.maxBackoffMultiplier);return b>=this.resetTimeoutMs*c&&(this._transition(g),!0)}return this.state!==g||this.halfOpenRemaining>0&&(this.halfOpenRemaining--,!0)}_onSuccess(){this.successCount++,this.state===g?this._transition(d):this.state===e&&this.successCount>=this.failureThreshold&&this._transition(d)}_pruneFailureTimestamps(){if(!this.failureWindowMs||this.failureWindowMs<=0)return;let a=Date.now()-this.failureWindowMs,b=this.failureTimestamps.findIndex(b=>b>=a);b>0?this.failureTimestamps=this.failureTimestamps.slice(b):-1===b&&(this.failureTimestamps=[])}_countFailuresInWindow(){return!this.failureWindowMs||this.failureWindowMs<=0?this.failureCount:(this._pruneFailureTimestamps(),this.failureTimestamps.length)}_onFailure(a){if(this.isFailure&&!this.isFailure(a))return;if(this.failureCount++,this.lastFailureTime=Date.now(),this.failureWindowMs>0&&(this.failureTimestamps.push(Date.now()),this._pruneFailureTimestamps()),this.state===g){this.openProbeCycles++,this._transition(f);return}if(this.state===f)return;let b=this.classifyError?this.classifyError(a):"transient",c=this.kindThresholds[b];if(c?.immediateOpen)return void this._transition(f);let h=c?.threshold||this.failureThreshold,i=this._countFailuresInWindow();i>=h?this._transition(f):i>=this.degradationThreshold&&this.state===d&&this._transition(e)}getRetryAfterMs(){if(this.state!==f||!this.openedAt)return 0;let a=Math.min(Math.pow(2,Math.floor(this.openProbeCycles/this.backoffEscalationCount)),this.maxBackoffMultiplier),b=this.resetTimeoutMs*a-(Date.now()-(this.openedAt||Date.now()));return b>0?b:0}reset(){this._transition(d)}getStatus(){return{name:this.name,state:this.state,failureCount:this.failureCount,successCount:this.successCount,lastFailureTime:this.lastFailureTime,retryAfterMs:this.getRetryAfterMs(),openedAt:this.openedAt,transitions:this._transitionHistory.slice(-5)}}}let j=new Map;function k(a,b){if(!a)return null;let c=j.get(a);return c?(b&&(null!=b.failureThreshold&&(c.failureThreshold=b.failureThreshold),null!=b.resetTimeout&&(c.resetTimeoutMs=b.resetTimeout),null!=b.degradationThreshold&&(c.degradationThreshold=b.degradationThreshold),b.cooldownByKind&&(c.cooldownByKind=b.cooldownByKind),b.classifyError&&(c.classifyError=b.classifyError),b.isFailure&&(c.isFailure=b.isFailure),b.kindThresholds&&(c.kindThresholds=b.kindThresholds),null!=b.maxBackoffMultiplier&&(c.maxBackoffMultiplier=b.maxBackoffMultiplier),null!=b.backoffEscalationCount&&(c.backoffEscalationCount=b.backoffEscalationCount)),c):b?(c=new i(a,b),j.set(a,c),c):null}function l(){return Array.from(j.values()).map(a=>a.getStatus())}function m(a){let b=j.get(a);b&&b.reset()}},98757:(a,b,c)=>{c.d(b,{K:()=>d});function d(a,b){return!("clinepass"!==b||!a||"object"!=typeof a||Array.isArray(a))&&"success"in a?!1===a.success?{body:null,error:{message:"string"==typeof a.error?a.error:a.error?.message||a.message||"Upstream error",status:a.statusCode||null}}:!0===a.success&&"data"in a&&null!==a.data&&"object"==typeof a.data?{body:a.data,error:null}:{body:a,error:null}:{body:a,error:null}}}};
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
exports.id=2554,exports.ids=[2554],exports.modules={13018:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,88844,23))},35411:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>d});let d=(0,c(35732).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/VansRouter/VansRouter/src/app/(dashboard)/error.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/VansRouter/VansRouter/src/app/(dashboard)/error.js","default")},45961:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>g});var d=c(66238);c(71183);var e=c(84725),f=c.n(e);function g({error:a,reset:b}){return(0,d.jsx)("section",{className:"flex min-h-[calc(100vh-9rem)] items-center justify-center",children:(0,d.jsxs)("div",{className:"w-full max-w-lg rounded-lg border border-border bg-surface p-6 shadow-soft",children:[(0,d.jsx)("div",{className:"mb-4 flex h-11 w-11 items-center justify-center rounded-lg bg-red-500/10 text-red-600 dark:text-red-400",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[24px]",children:"warning"})}),(0,d.jsx)("h1",{className:"text-xl font-semibold text-text-main",children:"Dashboard error"}),(0,d.jsx)("p",{className:"mt-2 text-sm leading-6 text-text-muted",children:"This dashboard view failed to render. Retry the view or head back to the dashboard home."}),a?.message?(0,d.jsx)("pre",{className:"mt-4 max-h-36 overflow-auto rounded-md border border-border bg-surface-2 p-3 text-xs text-text-muted",children:a.message}):null,(0,d.jsxs)("div",{className:"mt-6 flex flex-wrap gap-3",children:[(0,d.jsxs)("button",{type:"button",onClick:b,className:"inline-flex items-center gap-2 rounded-md bg-primary px-4 py-2 text-sm font-medium text-white transition-colors hover:bg-primary-hover",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"refresh"}),"Try again"]}),(0,d.jsxs)(f(),{href:"/dashboard",className:"inline-flex items-center gap-2 rounded-md border border-border bg-surface px-4 py-2 text-sm font-medium text-text-main transition-colors hover:bg-surface-2",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"home"}),"Dashboard"]})]})]})})}},47298:(a,b,c)=>{Promise.resolve().then(c.bind(c,43736))},60390:(a,b,c)=>{"use strict";c.d(b,{dM:()=>e,wn:()=>d});let d={antigravity:{id:"antigravity",name:"Antigravity",image:"/providers/antigravity.
|
|
1
|
+
exports.id=2554,exports.ids=[2554],exports.modules={13018:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,88844,23))},35411:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>d});let d=(0,c(35732).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/VansRouter/VansRouter/src/app/(dashboard)/error.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/VansRouter/VansRouter/src/app/(dashboard)/error.js","default")},45961:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>g});var d=c(66238);c(71183);var e=c(84725),f=c.n(e);function g({error:a,reset:b}){return(0,d.jsx)("section",{className:"flex min-h-[calc(100vh-9rem)] items-center justify-center",children:(0,d.jsxs)("div",{className:"w-full max-w-lg rounded-lg border border-border bg-surface p-6 shadow-soft",children:[(0,d.jsx)("div",{className:"mb-4 flex h-11 w-11 items-center justify-center rounded-lg bg-red-500/10 text-red-600 dark:text-red-400",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[24px]",children:"warning"})}),(0,d.jsx)("h1",{className:"text-xl font-semibold text-text-main",children:"Dashboard error"}),(0,d.jsx)("p",{className:"mt-2 text-sm leading-6 text-text-muted",children:"This dashboard view failed to render. Retry the view or head back to the dashboard home."}),a?.message?(0,d.jsx)("pre",{className:"mt-4 max-h-36 overflow-auto rounded-md border border-border bg-surface-2 p-3 text-xs text-text-muted",children:a.message}):null,(0,d.jsxs)("div",{className:"mt-6 flex flex-wrap gap-3",children:[(0,d.jsxs)("button",{type:"button",onClick:b,className:"inline-flex items-center gap-2 rounded-md bg-primary px-4 py-2 text-sm font-medium text-white transition-colors hover:bg-primary-hover",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"refresh"}),"Try again"]}),(0,d.jsxs)(f(),{href:"/dashboard",className:"inline-flex items-center gap-2 rounded-md border border-border bg-surface px-4 py-2 text-sm font-medium text-text-main transition-colors hover:bg-surface-2",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"home"}),"Dashboard"]})]})]})})}},47298:(a,b,c)=>{Promise.resolve().then(c.bind(c,43736))},60390:(a,b,c)=>{"use strict";c.d(b,{dM:()=>e,wn:()=>d});let d={antigravity:{id:"antigravity",name:"Antigravity",image:"/providers/antigravity.webp",color:"#4285F4",description:"Google Antigravity IDE with MITM",configType:"mitm",mitmDomain:"daily-cloudcode-pa.googleapis.com",modelAliases:["gemini-3.5-flash-low","gemini-3-flash-agent","gemini-3.5-flash-extra-low","gemini-3.1-pro-low","gemini-pro-agent","claude-sonnet-4-6","claude-opus-4-6-thinking","gpt-oss-120b-medium","gemini-3-flash"],defaultModels:[{id:"gemini-3.5-flash-low",name:"Gemini 3.5 Flash (Medium) / Default",alias:"gemini-3.5-flash-low",mandatory:!0},{id:"gemini-3-flash-agent",name:"Gemini 3.5 Flash (High)",alias:"gemini-3-flash-agent"},{id:"gemini-3.5-flash-extra-low",name:"Gemini 3.5 Flash (Low)",alias:"gemini-3.5-flash-extra-low"},{id:"gemini-3.1-pro-low",name:"Gemini 3.1 Pro (Low)",alias:"gemini-3.1-pro-low"},{id:"gemini-pro-agent",name:"Gemini 3.1 Pro (High)",alias:"gemini-pro-agent"},{id:"claude-sonnet-4-6",name:"Claude Sonnet 4.6 (Thinking)",alias:"claude-sonnet-4-6"},{id:"claude-opus-4-6-thinking",name:"Claude Opus 4.6 (Thinking)",alias:"claude-opus-4-6-thinking"},{id:"gpt-oss-120b-medium",name:"GPT-OSS 120B (Medium)",alias:"gpt-oss-120b-medium"},{id:"gemini-3-flash",name:"Gemini 3 Flash (Command)",alias:"gemini-3-flash"}]},copilot:{id:"copilot",name:"GitHub Copilot",image:"/providers/copilot.webp",color:"#1F6FEB",description:"GitHub Copilot IDE with MITM",configType:"mitm",mitmDomain:"api.individual.githubcopilot.com",modelAliases:["gpt-5-mini","gpt-5.4-nano","claude-haiku-4.5","gpt-4o","gpt-4.1"],defaultModels:[{id:"gpt-5-mini",name:"GPT-5 mini",alias:"gpt-5-mini"},{id:"gpt-5.4-nano",name:"GPT-5.4 nano",alias:"gpt-5.4-nano"},{id:"claude-haiku-4.5",name:"Claude Haiku 4.5",alias:"claude-haiku-4.5"},{id:"gpt-4o",name:"GPT-4o",alias:"gpt-4o"},{id:"gpt-4.1",name:"GPT-4.1",alias:"gpt-4.1"}]},kiro:{id:"kiro",name:"Kiro",image:"/providers/kiro.webp",color:"#FF6B00",description:"Kiro IDE with MITM",configType:"mitm",mitmDomain:"q.us-east-1.amazonaws.com",defaultModels:[{id:"claude-sonnet-5",name:"Claude Sonnet 5",alias:"claude-sonnet-5"},{id:"claude-sonnet-4.5",name:"Claude Sonnet 4.5",alias:"claude-sonnet-4.5"},{id:"claude-sonnet-4",name:"Claude Sonnet 4",alias:"claude-sonnet-4"},{id:"claude-haiku-4.5",name:"Claude Haiku 4.5",alias:"claude-haiku-4.5"},{id:"deepseek-3.2",name:"DeepSeek 3.2",alias:"deepseek-3.2"},{id:"minimax-m2.1",name:"MiniMax M2.1",alias:"minimax-m2.1"},{id:"simple-task",name:"Qwen3 Coder Next",alias:"simple-task"}]}},e={claude:{id:"claude",name:"Claude Code",image:"/providers/claude.webp",color:"#D97757",description:"Anthropic Claude Code CLI",configType:"env",envVars:{baseUrl:"ANTHROPIC_BASE_URL",model:"ANTHROPIC_MODEL",opusModel:"ANTHROPIC_DEFAULT_OPUS_MODEL",sonnetModel:"ANTHROPIC_DEFAULT_SONNET_MODEL",fableModel:"ANTHROPIC_DEFAULT_FABLE_MODEL",haikuModel:"ANTHROPIC_DEFAULT_HAIKU_MODEL"},modelAliases:["default","sonnet","opus","fable","haiku","opusplan"],settingsFile:"~/.claude/settings.json",defaultModels:[{id:"fable",name:"Claude Fable",alias:"fable",envKey:"ANTHROPIC_DEFAULT_FABLE_MODEL",defaultValue:"cc/claude-fable-5"},{id:"opus",name:"Claude Opus",alias:"opus",envKey:"ANTHROPIC_DEFAULT_OPUS_MODEL",defaultValue:"cc/claude-opus-4-8"},{id:"sonnet",name:"Claude Sonnet",alias:"sonnet",envKey:"ANTHROPIC_DEFAULT_SONNET_MODEL",defaultValue:"cc/claude-sonnet-5"},{id:"haiku",name:"Claude Haiku",alias:"haiku",envKey:"ANTHROPIC_DEFAULT_HAIKU_MODEL",defaultValue:"cc/claude-haiku-4-5-20251001"}]},openclaw:{id:"openclaw",name:"Open Claw",image:"/providers/openclaw.webp",color:"#FF6B35",description:"Open Claw AI Assistant",configType:"custom"},codex:{id:"codex",name:"OpenAI Codex CLI / App",image:"/providers/codex.webp",color:"#10A37F",description:"OpenAI Codex CLI",configType:"custom"},opencode:{id:"opencode",name:"OpenCode",image:"/providers/opencode.webp",color:"#E87040",description:"OpenCode AI Terminal Assistant",configType:"custom"},cowork:{id:"cowork",name:"Claude Cowork",image:"/providers/claude.webp",color:"#D97757",description:"Claude Desktop Cowork (third-party inference)",configType:"custom"},hermes:{id:"hermes",name:"Hermes Agent",image:"/providers/hermes.webp",color:"#8B5CF6",description:"Nous Research self-improving AI agent",configType:"custom"},droid:{id:"droid",name:"Factory Droid",image:"/providers/droid.webp",color:"#00D4FF",description:"Factory Droid AI Assistant",configType:"custom"},cursor:{id:"cursor",name:"Cursor",image:"/providers/cursor.webp",color:"#000000",description:"Cursor AI Code Editor",configType:"guide",requiresExternalUrl:!0,notes:[{type:"warning",text:"Requires Cursor Pro account to use this feature."},{type:"cloudCheck",text:"Cursor routes requests through its own server, so local endpoint is not supported. Please enable Tunnel or Cloud Endpoint in Settings."}],guideSteps:[{step:1,title:"Open Settings",desc:"Go to Settings → Models"},{step:2,title:"Enable OpenAI API",desc:'Enable "OpenAI API key" option'},{step:3,title:"Base URL",value:"{{baseUrl}}",copyable:!0},{step:4,title:"API Key",type:"apiKeySelector"},{step:5,title:"Add Custom Model",desc:'Click "View All Model" → "Add Custom Model"'},{step:6,title:"Select Model",type:"modelSelector"}]},cline:{id:"cline",name:"Cline",image:"/providers/cline.webp",color:"#00D1B2",description:"Cline AI Coding Assistant",configType:"custom"},kilo:{id:"kilo",name:"Kilo Code",image:"/providers/kilocode.webp",color:"#FF6B6B",description:"Kilo Code AI Assistant",configType:"custom"},roo:{id:"roo",name:"Roo",image:"/providers/roo.webp",color:"#FF6B6B",description:"Roo AI Assistant",configType:"guide",guideSteps:[{step:1,title:"Open Settings",desc:"Go to Roo Settings panel"},{step:2,title:"Select Provider",desc:"Choose API Provider → Ollama"},{step:3,title:"Base URL",value:"{{baseUrl}}",copyable:!0},{step:4,title:"API Key",type:"apiKeySelector"},{step:5,title:"Select Model",type:"modelSelector"}]},continue:{id:"continue",name:"Continue",image:"/providers/continue.webp",color:"#7C3AED",description:"Continue AI Assistant",configType:"guide",guideSteps:[{step:1,title:"Open Config",desc:"Open Continue configuration file"},{step:2,title:"API Key",type:"apiKeySelector"},{step:3,title:"Select Model",type:"modelSelector"},{step:4,title:"Add Model Config",desc:"Add the following configuration to your models array:"}],codeBlock:{language:"json",code:`{
|
|
2
2
|
"apiBase": "{{baseUrl}}",
|
|
3
3
|
"title": "{{model}}",
|
|
4
4
|
"model": "{{model}}",
|
|
5
5
|
"provider": "openai",
|
|
6
6
|
"apiKey": "{{apiKey}}"
|
|
7
|
-
}`}},amp:{id:"amp",name:"Amp CLI",image:"/providers/amp.
|
|
7
|
+
}`}},amp:{id:"amp",name:"Amp CLI",image:"/providers/amp.webp",color:"#F97316",description:"Sourcegraph Amp coding assistant CLI",docsUrl:"/docs?section=cli-tools&tool=amp",configType:"guide",defaultCommand:"amp",modelAliases:["g25p","g25f","cs45","g54"],notes:[{type:"info",text:"Use 9Router model aliases to keep Amp shorthand mappings stable across provider updates."},{type:"warning",text:"Suggested shorthand examples: g25p → gemini/gemini-2.5-pro, g25f → gemini/gemini-2.5-flash, cs45 → cc/claude-sonnet-4-5-20250929."}],guideSteps:[{step:1,title:"Install Amp",desc:"Install the Amp CLI using the package manager supported by your environment."},{step:2,title:"API Key",type:"apiKeySelector"},{step:3,title:"Base URL",value:"{{baseUrl}}",copyable:!0},{step:4,title:"Select Model",type:"modelSelector"},{step:5,title:"Add Shorthands",desc:"Map Amp shorthand names such as g25p or cs45 to 9Router aliases in your local config."}],codeBlock:{language:"bash",code:`export OPENAI_API_KEY="{{apiKey}}"
|
|
8
8
|
export OPENAI_BASE_URL="{{baseUrl}}"
|
|
9
9
|
amp --model "{{model}}"
|
|
10
10
|
# Example shorthand aliases you can map locally:
|
|
11
11
|
# g25p -> gemini/gemini-2.5-pro
|
|
12
|
-
# cs45 -> cc/claude-sonnet-4-5-20250929`}},qwen:{id:"qwen",name:"Qwen Code",image:"/providers/qwen.
|
|
12
|
+
# cs45 -> cc/claude-sonnet-4-5-20250929`}},qwen:{id:"qwen",name:"Qwen Code",image:"/providers/qwen.webp",color:"#10B981",description:"Alibaba Qwen Code CLI — supports OpenAI, Anthropic & Gemini providers via 9Router",docsUrl:"https://qwenlm.github.io/qwen-code-docs/en/users/configuration/model-providers/",configType:"guide",defaultCommand:"qwen",notes:[{type:"info",text:"Qwen Code supports multiple provider types (openai, anthropic, gemini) via modelProviders in settings.json. 9Router works as an OpenAI-compatible endpoint."},{type:"info",text:"Any model available in 9Router can be used — not just Qwen models. Select from Qwen, Claude, Gemini, GPT, and more."},{type:"warning",text:"Config path: Linux/macOS ~/.qwen/settings.json • Windows %USERPROFILE%\\.qwen\\settings.json"},{type:"error",text:"Qwen OAuth free tier was discontinued on 2026-04-15. Use 9Router with alicode/openrouter/anthropic/gemini providers instead."}],modelAliases:["coder-model","qwen3-coder-plus","qwen3-coder-flash","vision-model","claude-sonnet-4-6","claude-opus-4-6-thinking","gemini-3-flash","gemini-3.1-pro-high"],defaultModels:[{id:"coder-model",name:"Coder Model (Qwen 3.6 Plus)",alias:"coder-model",envKey:"OPENAI_MODEL",defaultValue:"coder-model",isTopLevel:!0},{id:"qwen3-coder-plus",name:"Qwen 3 Coder Plus",alias:"qwen3-coder-plus",envKey:"OPENAI_MODEL",defaultValue:"qwen3-coder-plus"},{id:"qwen3-coder-flash",name:"Qwen 3 Coder Flash",alias:"qwen3-coder-flash",envKey:"OPENAI_MODEL",defaultValue:"qwen3-coder-flash"},{id:"vision-model",name:"Vision Model (Multimodal)",alias:"vision-model",envKey:"OPENAI_MODEL",defaultValue:"vision-model"},{id:"claude-sonnet-4-6",name:"Claude Sonnet 4.6",alias:"claude-sonnet-4-6",envKey:"OPENAI_MODEL",defaultValue:"claude-sonnet-4-6"},{id:"claude-opus-4-6-thinking",name:"Claude Opus 4.6 Thinking",alias:"claude-opus-4-6-thinking",envKey:"OPENAI_MODEL",defaultValue:"claude-opus-4-6-thinking"},{id:"gemini-3.1-pro-high",name:"Gemini 3.1 Pro High",alias:"gemini-3.1-pro-high",envKey:"OPENAI_MODEL",defaultValue:"gemini-3.1-pro-high"},{id:"gemini-3-flash",name:"Gemini 3 Flash",alias:"gemini-3-flash",envKey:"OPENAI_MODEL",defaultValue:"gemini-3-flash"}],guideSteps:[{step:1,title:"Install Qwen Code",desc:"npm install -g @qwen-code/qwen-code"},{step:2,title:"API Key",type:"apiKeySelector"},{step:3,title:"Base URL",value:"{{baseUrl}}",copyable:!0},{step:4,title:"Select Model",type:"modelSelector"},{step:5,title:"Save Config",desc:"Copy the JSON below to your ~/.qwen/settings.json file."}],codeBlock:{language:"json",code:`{
|
|
13
13
|
"security": {
|
|
14
14
|
"auth": {
|
|
15
15
|
"selectedType": "openai",
|
|
@@ -20,4 +20,4 @@ amp --model "{{model}}"
|
|
|
20
20
|
"model": {
|
|
21
21
|
"name": "{{model}}"
|
|
22
22
|
}
|
|
23
|
-
}`}},"deepseek-tui":{id:"deepseek-tui",name:"DeepSeek TUI",image:"/providers/deepseek-tui.
|
|
23
|
+
}`}},"deepseek-tui":{id:"deepseek-tui",name:"DeepSeek TUI",image:"/providers/deepseek-tui.webp",color:"#4D6BFE",description:"DeepSeek Terminal Coding Agent (Rust TUI)",docsUrl:"https://github.com/DeepSeek-TUI/DeepSeek-TUI",configType:"custom",defaultCommand:"deepseek",modelAliases:["deepseek-v4-pro","deepseek-v4-flash","deepseek-chat","deepseek-reasoner"],defaultModels:[{id:"deepseek-v4-pro",name:"DeepSeek V4 Pro",alias:"deepseek-v4-pro"},{id:"deepseek-v4-flash",name:"DeepSeek V4 Flash",alias:"deepseek-v4-flash"},{id:"deepseek-chat",name:"DeepSeek V3 Chat",alias:"deepseek-chat"}],notes:[{type:"info",text:"DeepSeek TUI uses ~/.deepseek/config.toml for configuration. 9Router will update the provider to 'openai' mode with your base_url, api_key, and model."},{type:"warning",text:"Config path: Linux/macOS ~/.deepseek/config.toml • Windows %USERPROFILE%\\.deepseek\\config.toml"}]},jcode:{id:"jcode",name:"jcode",image:"/providers/jcode.webp",color:"#FF6B35",description:"High-performance Rust-based coding agent harness",configType:"custom",docsUrl:"https://github.com/1jehuang/jcode",notes:[{type:"info",text:"jcode is a Rust-based coding agent with semantic memory, multi-agent swarms, and extreme performance (27.8 MB RAM, 14ms boot)."},{type:"info",text:"Configure 9router as an OpenAI-compatible provider to route all jcode requests through 9router's optimization layer."},{type:"warning",text:"Requires jcode installed. Install via: curl -fsSL https://raw.githubusercontent.com/1jehuang/jcode/master/scripts/install.sh | bash"}],defaultModels:[{id:"claude-opus-4-7",name:"Claude Opus 4.7",alias:"opus",defaultValue:"cc/claude-opus-4-7"},{id:"claude-sonnet-4-6",name:"Claude Sonnet 4.6",alias:"sonnet",defaultValue:"cc/claude-sonnet-4-6"},{id:"gpt-5.5",name:"GPT 5.5",alias:"gpt5",defaultValue:"cx/gpt-5.5"},{id:"gemini-3.1-pro",name:"Gemini 3.1 Pro",alias:"gemini",defaultValue:"gemini/gemini-3.1-pro"}]}}},61643:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>f});var d=c(1904),e=c(88844);function f({children:a}){return(0,d.jsx)(e.DashboardLayout,{children:a})}},85873:(a,b,c)=>{Promise.resolve().then(c.bind(c,45961))},88844:(a,b,c)=>{let{createProxy:d}=c(78291);a.exports=d("/home/runner/work/VansRouter/VansRouter/src/shared/components/index.js")},95601:(a,b,c)=>{Promise.resolve().then(c.bind(c,35411))}};
|
|
@@ -12,13 +12,13 @@ ${b}`);else if(Array.isArray(a.content)){if(a.content.some(a=>a.text===b))return
|
|
|
12
12
|
|
|
13
13
|
${b}`:b;return}if(Array.isArray(a.system)){if(a.system.some(a=>a.text===b))return;a.system.push({type:"text",text:b});return}a.system=b}function k(a,b){let c=a.request&&"object"==typeof a.request?a.request:a,d=Object.prototype.hasOwnProperty.call(c,"system_instruction")?"system_instruction":"systemInstruction",e=c[d];if(e&&Array.isArray(e.parts)){if(e.parts.some(a=>a.text===b))return;e.parts.push({text:b});return}c[d]={parts:[{text:b}]}}function l(a,b){let c=a?.conversationState?.currentMessage?.userInputMessage;!c||"string"==typeof c.content&&c.content.includes(b)||(c.content="string"==typeof c.content&&c.content?`${b}
|
|
14
14
|
|
|
15
|
-
${c.content}`:b)}},14018:(a,b,c)=>{c.d(b,{
|
|
15
|
+
${c.content}`:b)}},14018:(a,b,c)=>{c.d(b,{DT:()=>q,NE:()=>r});var d=c(69152),e=c(44602),f=c(39621),g=c(77380),h=c(73329),i=c(15261),j=c(92398),k=c(98757),l=c(50996),m=c(92913),n=c(23648),o=c(97781),p=c(15204);function q(a,b){if(!a?.choices?.[0])return a;let c=a.choices[0],d=c.message||{},e=d.content||"",f=d.reasoning_content||"",g=d.tool_calls||[],h=[];for(let a of(f&&h.push({type:"thinking",thinking:f}),e&&h.push({type:"text",text:e}),g)){let b={};try{b=JSON.parse(a.function?.arguments||"{}")}catch{}h.push({type:"tool_use",id:a.id,name:a.function?.name||"",input:b})}let i=c.finish_reason;"stop"===i?i="end_turn":"tool_calls"===i&&(i="tool_use");let j=a.usage||{},k={};return null!=j.prompt_tokens&&(k.input_tokens=j.prompt_tokens,k.output_tokens=j.completion_tokens||0,j.prompt_tokens_details?.cached_tokens&&(k.cache_read_input_tokens=j.prompt_tokens_details.cached_tokens),j.completion_tokens_details?.reasoning_tokens&&(k.output_tokens=(j.completion_tokens||0)+j.completion_tokens_details.reasoning_tokens)),{id:`msg_${(a.id||"").replace("chatcmpl-","")||Date.now()}`,type:"message",role:"assistant",content:h,model:b||a.model||"claude",stop_reason:i,stop_sequence:null,usage:k}}async function r({providerResponse:a,provider:b,model:c,sourceFormat:s,targetFormat:t,body:u,stream:v,translatedBody:w,finalBody:x,requestStartTime:y,connectionId:z,apiKey:A,apiKeyName:B,clientRawRequest:C,onRequestSuccess:D,reqLogger:E,toolNameMap:F,trackDone:G,appendLog:H,pxpipe:I,comboName:J}){let K;if(G(),(a.headers.get("content-type")||"").includes("text/event-stream")){let b=await a.text(),d=(0,l.F)(b,c,(0,p.Qv)(u?.tools));if(!d)return H({status:`FAILED ${j.gx.BAD_GATEWAY}`}),(0,i.A1)(j.gx.BAD_GATEWAY,"Invalid SSE response for non-streaming request");K=d}else try{K=await a.json()}catch(a){return H({status:`FAILED ${j.gx.BAD_GATEWAY}`}),console.error(`[ChatCore] Failed to parse JSON from ${b}:`,a.message),(0,i.A1)(j.gx.BAD_GATEWAY,`Invalid JSON response from ${b}`)}E.logProviderResponse(a.status,a.statusText,a.headers,K),D&&Promise.resolve().then(D).catch(a=>{console.error("[ChatCore] onRequestSuccess failed:",a?.message||a)});{let{body:a,error:c}=(0,k.K)(K,b);if(c)return H({status:`FAILED ${j.gx.BAD_GATEWAY}`}),(0,i.A1)(j.gx.BAD_GATEWAY,c.message);K=a}K=(0,o.kR)(K,F);let L=(0,m.MK)(K);H({tokens:L,status:"200 OK"}),(0,m.qr)({provider:b,model:c,tokens:L,connectionId:z,apiKey:A,endpoint:C?.endpoint,comboName:J});let M=(0,e.nZ)(t,s)?function(a,b,c){if(b===c||b===d.h.OPENAI)return a;if(b===d.h.GEMINI||b===d.h.ANTIGRAVITY||b===d.h.GEMINI_CLI||b===d.h.VERTEX){let b=a.response||a;if(!b?.candidates?.[0])return a;let c=b.candidates[0],d=c.content,e=b.usageMetadata||a.usageMetadata,f="",g="",h=[];if(d?.parts)for(let a of d.parts){!0===a.thought&&a.text?g+=a.text:void 0!==a.text&&(f+=a.text),a.functionCall&&h.push({id:`call_${a.functionCall.name}_${Date.now()}_${h.length}`,type:"function",function:{name:a.functionCall.name,arguments:JSON.stringify(a.functionCall.args||{})}});let b=a.inlineData||a.inline_data;if(b?.data){let a=b.mimeType||b.mime_type||"image/png";f+=`
|
|
16
16
|

|
|
17
|
-
`}}let i={role:"assistant"};f&&(i.content=f),g&&(i.reasoning_content=g),h.length>0&&(i.tool_calls=h),i.content||i.tool_calls||(i.content="");let j=(c.finishReason||"stop").toLowerCase();"stop"===j&&h.length>0&&(j="tool_calls");let k={id:`chatcmpl-${b.responseId||Date.now()}`,object:"chat.completion",created:Math.floor(new Date(b.createTime||Date.now()).getTime()/1e3),model:b.modelVersion||"gemini",choices:[{index:0,message:i,finish_reason:j}]};return e&&(k.usage={prompt_tokens:(e.promptTokenCount||0)+(e.thoughtsTokenCount||0),completion_tokens:e.candidatesTokenCount||0,total_tokens:e.totalTokenCount||0},e.thoughtsTokenCount>0&&(k.usage.completion_tokens_details={reasoning_tokens:e.thoughtsTokenCount})),k}if(b===d.h.CLAUDE){if(a.choices||a.content&&!Array.isArray(a.content))return a;let b="",c="",d=[];for(let e of a.content||[])"text"===e.type?b+=(e.text??"").replace(/^\s*```\s*json\s*\n?/i,"").replace(/\n?\s*```\s*$/i,""):"thinking"===e.type?c+=e.thinking||"":"tool_use"===e.type&&d.push({id:e.id,type:"function",function:{name:e.name,arguments:JSON.stringify(e.input||{})}});let e={role:"assistant"};b&&(e.content=b),c&&(e.reasoning_content=c),d.length>0&&(e.tool_calls=d),e.content||e.tool_calls||(e.content="");let f=a.stop_reason||"stop";"end_turn"===f&&(f="stop"),"tool_use"===f&&(f="tool_calls");let g={id:`chatcmpl-${a.id||Date.now()}`,object:"chat.completion",created:Math.floor(Date.now()/1e3),model:a.model||"claude",choices:[{index:0,message:e,finish_reason:f}]};return a.usage&&(g.usage={prompt_tokens:a.usage.input_tokens||0,completion_tokens:a.usage.output_tokens||0,total_tokens:(a.usage.input_tokens||0)+(a.usage.output_tokens||0)}),g}return b===d.h.OLLAMA?(0,f._)(a):a}(I,s,r):I;if(/kimi-k2\./i.test(c||"")&&Array.isArray(K?.choices))for(let a of K.choices){let b=a?.message;if(!b||"assistant"!==b.role)continue;let{message:c,hasTools:d}=(0,g.vH)(b);d&&(a.message=c)}if(K?.choices?.[0]){let a=K.choices[0],b=a.message;Array.isArray(b?.tool_calls)&&b.tool_calls.length>0&&"tool_calls"!==a.finish_reason&&(a.finish_reason="tool_calls")}if(K.object||(K.object="chat.completion"),K.created||(K.created=Math.floor(Date.now()/1e3)),delete K.prompt_filter_results,K?.choices)for(let a of K.choices)delete a.content_filter_results;if(K?.usage&&(K.usage=(0,h.WL)((0,h.O9)(K.usage),r)),K?.choices)for(let a of K.choices){let b=a?.message;b&&(b.reasoning_content&&b.content&&delete b.reasoning_content,b.provider_specific_fields?.reasoning_content&&b.content&&delete b.provider_specific_fields.reasoning_content,b.provider_specific_fields?.reasoning&&b.content&&delete b.provider_specific_fields.reasoning)}D.logConvertedResponse(K);let L=Date.now()-x;return(0,n.ox)((0,m.$R)({provider:b,model:c,connectionId:y,apiKey:z,apiKeyName:A,latency:{ttft:L,total:L},tokens:J||{prompt_tokens:0,completion_tokens:0},request:(0,m.Fo)(t,u),providerRequest:w||v||null,providerResponse:I||null,response:{content:K?.choices?.[0]?.message?.content||K?.content||null,thinking:K?.choices?.[0]?.message?.reasoning_content||K?.reasoning_content||null,finish_reason:K?.choices?.[0]?.finish_reason||"unknown"},pxpipe:H,status:"success"},{endpoint:B?.endpoint||null})).catch(a=>{console.error("[RequestDetail] Failed to save:",a.message)}),{success:!0,response:new Response(JSON.stringify(K),{headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}})}}},23648:(a,b,c)=>{c.d(b,{BY:()=>d.BY,E5:()=>d.E5,Rw:()=>d.Rw,SL:()=>d.SL,Zx:()=>d.Zx,_V:()=>d._V,j$:()=>d.j$,ox:()=>d.ox,rg:()=>d.rg,sZ:()=>d.sZ,uw:()=>d.uw});var d=c(45479)},34496:(a,b,c)=>{function d(a){return String(a||"").toLowerCase().replace(/\s+/g," ").replace(/[.!?…]+$/g,"").trim()}function e(a){let b=a?.messages;if(!Array.isArray(b)||0===b.length)return{detected:!1,hint:null};let c=function(a){let b=[];for(let c of a)if(c?.role==="assistant"&&Array.isArray(c.tool_calls))for(let a of c.tool_calls)b.push(function(a){let b=a?.function?.name||a?.name||"",c=function(a){try{let b=JSON.parse(a);return JSON.stringify(b,Object.keys(b).sort())}catch{return a||""}}(a?.function?.arguments||a?.arguments||"");return`${b}::${c}`}(a));return b}(b);if(c.length>=3){if(function(a){let b=new Map;for(let c of a)if(b.set(c,(b.get(c)||0)+1),b.get(c)>=3)return c;return null}(c))return{detected:!0,hint:"You have called the same tool with identical arguments multiple times with no new progress. STOP repeating. Summarize findings from existing results or change your strategy."};if(function(a){let b=a.length;for(let c=Math.floor(b/2);c>=2;c--)for(let d=0;d<=b-2*c;d++){let e=a.slice(d,d+c).join("|"),f=0,g=0;for(;g<=b-c;)a.slice(g,g+c).join("|")===e?(f++,g+=c):g++;if(f>=2)return e}return null}(c))return{detected:!0,hint:"You have repeated the same sequence of tool calls multiple times. This is a loop. STOP this pattern immediately. Summarize what you have already found or take a completely different approach."}}let e=function(a){let b=function(a){let b=[];for(let c of a)if(c?.role==="assistant"){let a=c?"string"==typeof c.content?c.content:Array.isArray(c.content)?c.content.filter(a=>a&&"string"==typeof a.text).map(a=>a.text).join(" "):"":"";a.length>=12&&b.push(a)}return b}(a);if(b.length<3)return{detected:!1,hint:null};let c=new Map;for(let a of b){let b=d(a);if(b.length<12)continue;let e=(c.get(b)||0)+1;if(c.set(b,e),e>=3)return{detected:!0,hint:"You have repeated the same response multiple times without making progress. This is a text loop — you are NOT moving forward. STOP repeating yourself. Either call a tool to act, or give your final answer now with the information you already have."}}let e=new Map;for(let a of b)for(let b of String(a||"").split(/[\n.!?…]+/).map(a=>d(a)).filter(a=>a.length>=12)){let a=(e.get(b)||0)+1;if(e.set(b,a),a>=3)return{detected:!0,hint:"You keep repeating the same planning statement without acting on it. STOP planning in circles. Either execute a tool call NOW, or provide your final answer with current knowledge. Do not restate your plan again."}}return{detected:!1,hint:null}}(b);return e.detected?e:{detected:!1,hint:null}}c.d(b,{k:()=>e})},36110:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{wk:()=>L});var e=c(217),f=c(54729),g=c(44602),h=c(69152),i=c(42966),j=c(67860),k=c(78963),l=c(91392),m=c(86954),n=c(85577),o=c(13946),p=c(15261),q=c(92398),r=c(83571),s=c(23648),t=c(63548),u=c(92913),v=c(50996),w=c(14018),x=c(60137),y=c(92201),z=c(94054),A=c(61210),B=c(34496),C=c(63192),D=c(56764),E=c(8789),F=c(72152),G=c(69188),H=c(7916),I=c(81297),J=c(80117),K=a([t]);t=(K.then?(await K)():K)[0];let M=new Set(["kimchi","nvidia"]);async function L({body:a,modelInfo:b,credentials:c,log:d,onCredentialsRefreshed:K,onRequestSuccess:N,onDisconnect:O,clientRawRequest:P,connectionId:Q,userAgent:R,apiKey:S,apiKeyName:T=null,ccFilterNaming:U,rtkEnabled:V,headroomEnabled:W,headroomUrl:X,headroomCompressUserMessages:Y,cavemanEnabled:Z,cavemanLevel:$,ponytailEnabled:_,ponytailLevel:aa,pxpipeEnabled:ab=!1,pxpipeMinChars:ac=1e3,pxpipeTimeoutMs:ad=1e4,pxpipeTransform:ae="png",onPxpipeEvent:af=null,sourceFormatOverride:ag,providerThinking:ah,clientSignal:ai}){var aj;let ak,al,am,an,ao,ap,{provider:aq,model:ar,accountCount:as=0}=b,at=Date.now(),au=ag||(0,f.Tz)(a),av=(0,r.c)(a,ar,R,U);if(av)return av;let aw=n.Xg[aq]||aq,ax=(0,n.ux)(aw,ar),ay=(0,f.oF)(aq,au),az=ax||ay?.format||(0,f.jJ)(aq);ay&&c&&(c.runtimeTransport=ay);let aA=(0,n.cY)(aw,ar),aB=(0,n.kt)(aw,ar);if(ah?.mode&&"auto"!==ah.mode){let b=(0,H.nl)(aq,ar);if(b?.reasoning){let c=ah.mode;"on"!==c||a.thinking?"off"!==c||a.thinking?a.reasoning_effort||(a={...a,reasoning_effort:c}):!1!==b.thinkingCanDisable&&(a={...a,thinking:{type:"disabled"}}):a={...a,thinking:{type:"enabled",budget_tokens:1e4}}}}let aC=!0===a.stream||au===h.h.ANTIGRAVITY||au===h.h.GEMINI||au===h.h.GEMINI_CLI,aD=o.xq[aq]?.forceStream===!0,aE=!!aD||!1!==a.stream,aF="nvidia"===aq&&/kimi-k2\.[67]/i.test(ar||"")&&!0===aE,aG=!aF&&aE;aF&&d?.debug?.("STREAMCOERCE",`${aq}/${ar} | stream=true → false (upstream)`);let aH=(0,n.OA)(aw,ar);("imageGen"===aH||/image|imagen|image-generation/i.test(ar))&&("antigravity"===aq||"gemini-cli"===aq)&&(aE=!1);let aI=(0,z.J)(P?.headers||{},a);"deepseek-tui"===aI&&!0!==a.stream&&(aE=!1);let aJ=P?.headers?.accept||"",aK=aJ.includes("application/json"),aL=aJ.includes("text/event-stream");!aK||aL||!0===a.stream||aD||(aE=!1);let aM=await (0,m.q)(au,az,ar);P&&aM.logClientRawRequest(P.endpoint,P.body,P.headers),aM.logRawRequest(a),d?.debug?.("FORMAT",`${au} → ${az} | stream=${aE}`);let aN=(0,z.J)(P?.headers||{},a),aO=(0,z.Q)(aN,aq);if(c&&(c.rawHeaders=P?.headers||{}),!aO){let b=(0,H.nl)(aq,ar);(0,I.X)(a,au,b)&&d?.debug?.("MODALITY",`stripped unsupported media for ${aq}/${ar}`);try{let b=await (0,J.C)(a,au,az,{signal:void 0});b>0&&d?.debug?.("MODALITY",`prefetched ${b} remote image(s) for ${az}`)}catch(a){d?.warn?.("MODALITY",`image prefetch failed: ${a.message}`)}}if(aO)d?.debug?.("PASSTHROUGH",`${aN} → ${aq} | native lossless`),ak={...a,model:aB},"claude"===aN&&(0,i.u)(ak,aB);else{if(!(ak=(0,g.GH)(au,az,aB,a,aG,c,aq,aM,aA,Q,aN)))return(0,s.uw)(ar,aq,Q,!1,!0),(0,p.A1)(q.gx.BAD_REQUEST,`Failed to translate request for ${au} → ${az}`);al=ak._toolNameMap,delete ak._toolNameMap,ak.model=aB}if(aF&&(ak.stream=!1),"claude"===aN&&Array.isArray(ak.tools)){let{tools:a,stripped:b}=(0,A.F)(ak.tools);b.length>0&&(ak.tools=a,d?.debug?.("TOOLDEDUP",`stripped ${b.length}: ${b.slice(0,3).join(", ")}${b.length>3?"...":""}`))}let aP=aO?au:az;"tts"===(0,n.OA)(aw,ar)&&ak.messages&&(ak.messages=ak.messages.filter(a=>"tool"!==a.role),delete ak.tools);let aQ=(0,F.BI)(ak,V),aR=(0,F.fT)(aQ);aR&&console.log(aR);let aS={},aT=await (0,G.SI)(ak,{enabled:W,url:X,model:aB,format:aP,compressUserMessages:Y,diagnostics:aS}),aU=(0,G.Nv)(aT),aV=(0,G.O2)(aS);if(aU?(d?.info?.("HEADROOM",`${aU}${aV?` | ${aV}`:""}`),(0,G.cB)(aT,aS)&&d?.warn?.("HEADROOM",`reported token delta, but outbound JSON shrank <5%; provider may bill near-original payload | ${aV}`)):W&&d?.warn?.("HEADROOM",`skipped: ${aS.reason||"compression unavailable"}${aS.endpoint?` (${aS.endpoint})`:""}`),Z&&$&&((0,C.p)(ak,aP,$),d?.debug?.("CAVEMAN",`${$} | ${aP}`)),_&&aa&&((0,D.U)(ak,aP,aa),d?.debug?.("PONYTAIL",`${aa} | ${aP}`)),M.has(aq)&&((0,E.o5)(ak,aP,(aj=ak.tools,Array.isArray(aj)?aj.map(a=>a?.function?.name||a?.name).filter(a=>"string"==typeof a&&a.trim()):[])),d?.debug?.("TOOLPROTO",`${aq}/${ar} | ${aP}`)),!function(a,b,c,d,e){let f=(0,B.k)(a);if(!f.detected)return;(0,E.sH)(a,b);let g=a?.messages;if(Array.isArray(g)){let a=null;for(let b=g.length-1;b>=0;b--){let c=g[b];if(c&&("user"===c.role||"tool"===c.role)||c&&"assistant"===c.role&&b===g.length-1){a=c;break}}if(a){let b=`
|
|
17
|
+
`}}let i={role:"assistant"};f&&(i.content=f),g&&(i.reasoning_content=g),h.length>0&&(i.tool_calls=h),i.content||i.tool_calls||(i.content="");let j=(c.finishReason||"stop").toLowerCase();"stop"===j&&h.length>0&&(j="tool_calls");let k={id:`chatcmpl-${b.responseId||Date.now()}`,object:"chat.completion",created:Math.floor(new Date(b.createTime||Date.now()).getTime()/1e3),model:b.modelVersion||"gemini",choices:[{index:0,message:i,finish_reason:j}]};return e&&(k.usage={prompt_tokens:(e.promptTokenCount||0)+(e.thoughtsTokenCount||0),completion_tokens:e.candidatesTokenCount||0,total_tokens:e.totalTokenCount||0},e.thoughtsTokenCount>0&&(k.usage.completion_tokens_details={reasoning_tokens:e.thoughtsTokenCount})),k}if(b===d.h.CLAUDE){if(a.choices||a.content&&!Array.isArray(a.content))return a;let b="",c="",d=[];for(let e of a.content||[])"text"===e.type?b+=(e.text??"").replace(/^\s*```\s*json\s*\n?/i,"").replace(/\n?\s*```\s*$/i,""):"thinking"===e.type?c+=e.thinking||"":"tool_use"===e.type&&d.push({id:e.id,type:"function",function:{name:e.name,arguments:JSON.stringify(e.input||{})}});let e={role:"assistant"};b&&(e.content=b),c&&(e.reasoning_content=c),d.length>0&&(e.tool_calls=d),e.content||e.tool_calls||(e.content="");let f=a.stop_reason||"stop";"end_turn"===f&&(f="stop"),"tool_use"===f&&(f="tool_calls");let g={id:`chatcmpl-${a.id||Date.now()}`,object:"chat.completion",created:Math.floor(Date.now()/1e3),model:a.model||"claude",choices:[{index:0,message:e,finish_reason:f}]};return a.usage&&(g.usage={prompt_tokens:a.usage.prompt_tokens||a.usage.input_tokens||0,completion_tokens:a.usage.completion_tokens||a.usage.output_tokens||0,total_tokens:a.usage.total_tokens||(a.usage.prompt_tokens||a.usage.input_tokens||0)+(a.usage.completion_tokens||a.usage.output_tokens||0)},a.usage.completion_tokens_details&&(g.usage.completion_tokens_details=a.usage.completion_tokens_details)),g}return b===d.h.OLLAMA?(0,f._)(a):a}(K,t,s):K,N=!1,O=M;if(s===d.h.CLAUDE&&t!==d.h.CLAUDE){let a=q(M,c);O=(0,o.kR)(a,F),N=!0}if(!N){if(/kimi-k2\./i.test(c||"")&&Array.isArray(M?.choices))for(let a of M.choices){let b=a?.message;if(!b||"assistant"!==b.role)continue;let{message:c,hasTools:d}=(0,g.vH)(b);d&&(a.message=c)}if(M?.choices?.[0]){let a=M.choices[0],b=a.message;Array.isArray(b?.tool_calls)&&b.tool_calls.length>0&&"tool_calls"!==a.finish_reason&&(a.finish_reason="tool_calls")}if(M.object||(M.object="chat.completion"),M.created||(M.created=Math.floor(Date.now()/1e3)),delete M.prompt_filter_results,M?.choices)for(let a of M.choices)delete a.content_filter_results;if(M?.usage&&(M.usage=(0,h.WL)((0,h.O9)(M.usage),s)),M?.choices)for(let a of M.choices){let b=a?.message;b&&(b.reasoning_content&&b.content&&delete b.reasoning_content,b.provider_specific_fields?.reasoning_content&&b.content&&delete b.provider_specific_fields.reasoning_content,b.provider_specific_fields?.reasoning&&b.content&&delete b.provider_specific_fields.reasoning)}}E.logConvertedResponse(O);let P=Date.now()-y,Q=O?.choices?.[0]?.message?.content||(Array.isArray(O?.content)?O.content.find(a=>"text"===a.type)?.text||"":null)||"",R=O?.choices?.[0]?.message?.reasoning_content||(Array.isArray(O?.content)?O.content.find(a=>"thinking"===a.type)?.thinking:null)||null,S=O?.choices?.[0]?.finish_reason||O?.stop_reason||"unknown";return(0,n.ox)((0,m.$R)({provider:b,model:c,connectionId:z,apiKey:A,apiKeyName:B,latency:{ttft:P,total:P},tokens:L||{prompt_tokens:0,completion_tokens:0},request:(0,m.Fo)(u,v),providerRequest:x||w||null,providerResponse:K||null,response:{content:Q,thinking:R,finish_reason:S},pxpipe:I,status:"success"},{endpoint:C?.endpoint||null})).catch(a=>{console.error("[RequestDetail] Failed to save:",a.message)}),{success:!0,response:new Response(JSON.stringify(O),{headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}})}}},23648:(a,b,c)=>{c.d(b,{BY:()=>d.BY,E5:()=>d.E5,Rw:()=>d.Rw,SL:()=>d.SL,Zx:()=>d.Zx,_V:()=>d._V,j$:()=>d.j$,ox:()=>d.ox,rg:()=>d.rg,sZ:()=>d.sZ,uw:()=>d.uw});var d=c(45479)},34496:(a,b,c)=>{function d(a){return String(a||"").toLowerCase().replace(/\s+/g," ").replace(/[.!?…]+$/g,"").trim()}function e(a){let b=a?.messages;if(!Array.isArray(b)||0===b.length)return{detected:!1,hint:null};let c=function(a){let b=[];for(let c of a)if(c?.role==="assistant"&&Array.isArray(c.tool_calls))for(let a of c.tool_calls)b.push(function(a){let b=a?.function?.name||a?.name||"",c=function(a){try{let b=JSON.parse(a);return JSON.stringify(b,Object.keys(b).sort())}catch{return a||""}}(a?.function?.arguments||a?.arguments||"");return`${b}::${c}`}(a));return b}(b);if(c.length>=3){if(function(a){let b=new Map;for(let c of a)if(b.set(c,(b.get(c)||0)+1),b.get(c)>=3)return c;return null}(c))return{detected:!0,hint:"You have called the same tool with identical arguments multiple times with no new progress. STOP repeating. Summarize findings from existing results or change your strategy."};if(function(a){let b=a.length;for(let c=Math.floor(b/2);c>=2;c--)for(let d=0;d<=b-2*c;d++){let e=a.slice(d,d+c).join("|"),f=0,g=0;for(;g<=b-c;)a.slice(g,g+c).join("|")===e?(f++,g+=c):g++;if(f>=2)return e}return null}(c))return{detected:!0,hint:"You have repeated the same sequence of tool calls multiple times. This is a loop. STOP this pattern immediately. Summarize what you have already found or take a completely different approach."}}let e=function(a){let b=function(a){let b=[];for(let c of a)if(c?.role==="assistant"){let a=c?"string"==typeof c.content?c.content:Array.isArray(c.content)?c.content.filter(a=>a&&"string"==typeof a.text).map(a=>a.text).join(" "):"":"";a.length>=12&&b.push(a)}return b}(a);if(b.length<3)return{detected:!1,hint:null};let c=new Map;for(let a of b){let b=d(a);if(b.length<12)continue;let e=(c.get(b)||0)+1;if(c.set(b,e),e>=3)return{detected:!0,hint:"You have repeated the same response multiple times without making progress. This is a text loop — you are NOT moving forward. STOP repeating yourself. Either call a tool to act, or give your final answer now with the information you already have."}}let e=new Map;for(let a of b)for(let b of String(a||"").split(/[\n.!?…]+/).map(a=>d(a)).filter(a=>a.length>=12)){let a=(e.get(b)||0)+1;if(e.set(b,a),a>=3)return{detected:!0,hint:"You keep repeating the same planning statement without acting on it. STOP planning in circles. Either execute a tool call NOW, or provide your final answer with current knowledge. Do not restate your plan again."}}return{detected:!1,hint:null}}(b);return e.detected?e:{detected:!1,hint:null}}c.d(b,{k:()=>e})},36110:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{wk:()=>L});var e=c(217),f=c(54729),g=c(44602),h=c(69152),i=c(42966),j=c(67860),k=c(78963),l=c(91392),m=c(86954),n=c(85577),o=c(13946),p=c(15261),q=c(92398),r=c(83571),s=c(23648),t=c(63548),u=c(92913),v=c(50996),w=c(14018),x=c(60137),y=c(92201),z=c(94054),A=c(61210),B=c(34496),C=c(63192),D=c(56764),E=c(8789),F=c(72152),G=c(69188),H=c(7916),I=c(81297),J=c(80117),K=a([t]);t=(K.then?(await K)():K)[0];let M=new Set(["kimchi","nvidia"]);async function L({body:a,modelInfo:b,credentials:c,log:d,onCredentialsRefreshed:K,onRequestSuccess:N,onDisconnect:O,clientRawRequest:P,connectionId:Q,userAgent:R,apiKey:S,apiKeyName:T=null,ccFilterNaming:U,rtkEnabled:V,headroomEnabled:W,headroomUrl:X,headroomCompressUserMessages:Y,cavemanEnabled:Z,cavemanLevel:$,ponytailEnabled:_,ponytailLevel:aa,pxpipeEnabled:ab=!1,pxpipeMinChars:ac=1e3,pxpipeTimeoutMs:ad=1e4,pxpipeTransform:ae="png",onPxpipeEvent:af=null,sourceFormatOverride:ag,providerThinking:ah,clientSignal:ai}){var aj;let ak,al,am,an,ao,ap,{provider:aq,model:ar,accountCount:as=0}=b,at=Date.now(),au=ag||(0,f.Tz)(a),av=(0,r.c)(a,ar,R,U);if(av)return av;let aw=n.Xg[aq]||aq,ax=(0,n.ux)(aw,ar),ay=(0,f.oF)(aq,au),az=ax||ay?.format||(0,f.jJ)(aq);ay&&c&&(c.runtimeTransport=ay);let aA=(0,n.cY)(aw,ar),aB=(0,n.kt)(aw,ar);if(ah?.mode&&"auto"!==ah.mode){let b=(0,H.nl)(aq,ar);if(b?.reasoning){let c=ah.mode;"on"!==c||a.thinking?"off"!==c||a.thinking?a.reasoning_effort||(a={...a,reasoning_effort:c}):!1!==b.thinkingCanDisable&&(a={...a,thinking:{type:"disabled"}}):a={...a,thinking:{type:"enabled",budget_tokens:1e4}}}}let aC=!0===a.stream||au===h.h.ANTIGRAVITY||au===h.h.GEMINI||au===h.h.GEMINI_CLI,aD=o.xq[aq]?.forceStream===!0,aE=!!aD||!1!==a.stream,aF="nvidia"===aq&&/kimi-k2\.[67]/i.test(ar||"")&&!0===aE,aG=!aF&&aE;aF&&d?.debug?.("STREAMCOERCE",`${aq}/${ar} | stream=true → false (upstream)`);let aH=(0,n.OA)(aw,ar);("imageGen"===aH||/image|imagen|image-generation/i.test(ar))&&("antigravity"===aq||"gemini-cli"===aq)&&(aE=!1);let aI=(0,z.J)(P?.headers||{},a);"deepseek-tui"===aI&&!0!==a.stream&&(aE=!1);let aJ=P?.headers?.accept||"",aK=aJ.includes("application/json"),aL=aJ.includes("text/event-stream");!aK||aL||!0===a.stream||aD||(aE=!1);let aM=await (0,m.q)(au,az,ar);P&&aM.logClientRawRequest(P.endpoint,P.body,P.headers),aM.logRawRequest(a),d?.debug?.("FORMAT",`${au} → ${az} | stream=${aE}`);let aN=(0,z.J)(P?.headers||{},a),aO=(0,z.Q)(aN,aq);if(c&&(c.rawHeaders=P?.headers||{}),!aO){let b=(0,H.nl)(aq,ar);(0,I.X)(a,au,b)&&d?.debug?.("MODALITY",`stripped unsupported media for ${aq}/${ar}`);try{let b=await (0,J.C)(a,au,az,{signal:void 0});b>0&&d?.debug?.("MODALITY",`prefetched ${b} remote image(s) for ${az}`)}catch(a){d?.warn?.("MODALITY",`image prefetch failed: ${a.message}`)}}if(aO)d?.debug?.("PASSTHROUGH",`${aN} → ${aq} | native lossless`),ak={...a,model:aB},"claude"===aN&&(0,i.u)(ak,aB);else{if(!(ak=(0,g.GH)(au,az,aB,a,aG,c,aq,aM,aA,Q,aN)))return(0,s.uw)(ar,aq,Q,!1,!0),(0,p.A1)(q.gx.BAD_REQUEST,`Failed to translate request for ${au} → ${az}`);al=ak._toolNameMap,delete ak._toolNameMap,ak.model=aB}if(aF&&(ak.stream=!1),"claude"===aN&&Array.isArray(ak.tools)){let{tools:a,stripped:b}=(0,A.F)(ak.tools);b.length>0&&(ak.tools=a,d?.debug?.("TOOLDEDUP",`stripped ${b.length}: ${b.slice(0,3).join(", ")}${b.length>3?"...":""}`))}let aP=aO?au:az;"tts"===(0,n.OA)(aw,ar)&&ak.messages&&(ak.messages=ak.messages.filter(a=>"tool"!==a.role),delete ak.tools);let aQ=(0,F.BI)(ak,V),aR=(0,F.fT)(aQ);aR&&console.log(aR);let aS={},aT=await (0,G.SI)(ak,{enabled:W,url:X,model:aB,format:aP,compressUserMessages:Y,diagnostics:aS}),aU=(0,G.Nv)(aT),aV=(0,G.O2)(aS);if(aU?(d?.info?.("HEADROOM",`${aU}${aV?` | ${aV}`:""}`),(0,G.cB)(aT,aS)&&d?.warn?.("HEADROOM",`reported token delta, but outbound JSON shrank <5%; provider may bill near-original payload | ${aV}`)):W&&d?.warn?.("HEADROOM",`skipped: ${aS.reason||"compression unavailable"}${aS.endpoint?` (${aS.endpoint})`:""}`),Z&&$&&((0,C.p)(ak,aP,$),d?.debug?.("CAVEMAN",`${$} | ${aP}`)),_&&aa&&((0,D.U)(ak,aP,aa),d?.debug?.("PONYTAIL",`${aa} | ${aP}`)),M.has(aq)&&((0,E.o5)(ak,aP,(aj=ak.tools,Array.isArray(aj)?aj.map(a=>a?.function?.name||a?.name).filter(a=>"string"==typeof a&&a.trim()):[])),d?.debug?.("TOOLPROTO",`${aq}/${ar} | ${aP}`)),!function(a,b,c,d,e){let f=(0,B.k)(a);if(!f.detected)return;(0,E.sH)(a,b);let g=a?.messages;if(Array.isArray(g)){let a=null;for(let b=g.length-1;b>=0;b--){let c=g[b];if(c&&("user"===c.role||"tool"===c.role)||c&&"assistant"===c.role&&b===g.length-1){a=c;break}}if(a){let b=`
|
|
18
18
|
|
|
19
|
-
[ROUTER NOTE: ${f.hint}]`;"string"==typeof a.content?a.content.includes("[ROUTER NOTE:")||(a.content+=b):Array.isArray(a.content)?a.content.some(a=>a.text&&a.text.includes("[ROUTER NOTE:"))||a.content.push({type:"text",text:b}):a.content=b.trimStart()}}e?.warn?.("LOOPGUARD",`${c}/${d} | loop detected, hint injected`)}(ak,aP,aq,ar,d),/(?:^|[/_-])kimi(?:[/_-]|$)|(?:^|[/_-])kimi-k2\.(?:6|7)(?:\b|[-_/])/i.test(`${aq}/${ar}`)&&((0,E.sH)(ak,aP),d?.debug?.("TERMINATION",`${aq}/${ar} | ${aP}`)),ah?.mode&&"auto"!==ah.mode){let a=(0,H.nl)(aq,ar);if(a?.reasoning){let b=ah.mode;"off"===b?(ak.reasoning_effort="none",!1!==a.thinkingCanDisable&&(ak.thinking={type:"disabled"}),d?.debug?.("THINKING",`${aq}/${ar} | disabled`)):"on"===b?(ak.thinking={type:"enabled",budget_tokens:1e4},d?.debug?.("THINKING",`${aq}/${ar} | enabled (10k budget)`)):(ak.reasoning_effort=b,d?.debug?.("THINKING",`${aq}/${ar} | effort=${b}`))}}let aW=null;if(ab){let a=await (0,e.H)(ak,{enabled:!0,format:aP,model:aB,minChars:ac,timeoutMs:ad,transform:ae});aW=a.summary,a.body&&(ak=a.body);let b=(0,e._)(aW);b?d?.info?.("PXPIPE",b):d?.debug?.("PXPIPE",`skipped: ${aW.reason}${aW.detail?` (${aW.detail})`:""}`);try{af?.({provider:aq,model:ar,...aW})}catch{}}let aX=(0,t.SB)(aq);(0,s.uw)(ar,aq,Q,!0),(0,s.E5)({model:ar,provider:aq,connectionId:Q,status:"PENDING"}).catch(()=>{});let aY=ak.messages?.length||ak.input?.length||ak.contents?.length||ak.request?.contents?.length||0;d?.debug?.("REQUEST",`${aq.toUpperCase()} | ${ar} | ${aY} msgs`);let aZ=(0,k.jd)({onDisconnect:a=>{(0,s.uw)(ar,aq,Q,!1),O&&O(a)},onError:()=>(0,s.uw)(ar,aq,Q,!1),log:d,provider:aq,model:ar});ai&&(ai.aborted?aZ.abort():ai.addEventListener("abort",()=>aZ.abort(),{once:!0}));let a$={connectionProxyEnabled:c?.providerSpecificData?.connectionProxyEnabled===!0,connectionProxyUrl:c?.providerSpecificData?.connectionProxyUrl||"",connectionNoProxy:c?.providerSpecificData?.connectionNoProxy||"",vercelRelayUrl:c?.providerSpecificData?.vercelRelayUrl||""};if(a$.vercelRelayUrl){let a=c?.connectionName||c?.connectionId||"unknown",b=c?.providerSpecificData?.connectionProxyPoolId||"none";d?.info?.("PROXY",`${aq.toUpperCase()} | ${ar} | conn=${a} | pool=${b} | vercel-relay=${a$.vercelRelayUrl}`)}else if(a$.connectionProxyEnabled&&a$.connectionProxyUrl){let a=a$.connectionProxyUrl;try{let b=new URL(a$.connectionProxyUrl),c=b.hostname||"",d=b.port?`:${b.port}`:"",e=b.protocol||"http:";a=`${e}//${c}${d}`}catch{}let b=c?.providerSpecificData?.connectionProxyPoolId||"none",e=c?.connectionName||c?.connectionId||"unknown";d?.info?.("PROXY",`${aq.toUpperCase()} | ${ar} | conn=${e} | pool=${b} | url=${a}`)}if(a$.connectionProxyEnabled&&a$.connectionNoProxy){let a=c?.connectionName||c?.connectionId||"unknown";d?.debug?.("PROXY",`${aq.toUpperCase()} | ${ar} | conn=${a} | no_proxy=${a$.connectionNoProxy}`)}try{let a=await aX.execute({model:ar,body:ak,stream:aG,credentials:c,signal:aZ.signal,log:d,proxyOptions:a$,accountCount:as});am=a.response,an=a.url,ao=a.headers,ap=a.transformedBody,aM.logTargetRequest(an,ao,ap)}catch(c){if((0,s.uw)(ar,aq,Q,!1,!0),(0,s.E5)({model:ar,provider:aq,connectionId:Q,status:`FAILED ${"AbortError"===c.name?499:q.gx.BAD_GATEWAY}`}).catch(()=>{}),(0,s.ox)((0,u.$R)({provider:aq,model:ar,connectionId:Q,apiKey:S,apiKeyName:T,latency:{ttft:0,total:Date.now()-at},tokens:{prompt_tokens:0,completion_tokens:0},request:(0,u.Fo)(a,aG),providerRequest:ak||null,response:{error:c.message||String(c),status:"AbortError"===c.name?499:502,thinking:null},pxpipe:aW,status:"error"})).catch(()=>{}),"AbortError"===c.name)return aZ.handleError(c),(0,p.A1)(499,"Request aborted");let b=(0,p.lR)(c,aq,ar,q.gx.BAD_GATEWAY);return console.log(`${j.lm.red}[ERROR] ${b}${j.lm.reset}`),(0,p.A1)(q.gx.BAD_GATEWAY,b)}if(!aX.noAuth&&(am.status===q.gx.UNAUTHORIZED||am.status===q.gx.FORBIDDEN))try{let a=await (0,l.qZ)(()=>aX.refreshCredentials(c,d),3,d);if(a?.accessToken||a?.copilotToken){if(d?.info?.("TOKEN",`${aq.toUpperCase()} | refreshed`),Object.assign(c,a),K)try{await K(a)}catch(a){d?.warn?.("TOKEN",`onCredentialsRefreshed failed: ${a.message}`)}try{let a=await aX.execute({model:ar,body:ak,stream:aG,credentials:c,signal:aZ.signal,log:d,proxyOptions:a$,accountCount:as});a.response.ok&&(am=a.response,an=a.url)}catch{d?.warn?.("TOKEN",`${aq.toUpperCase()} | retry after refresh failed`)}}else d?.warn?.("TOKEN",`${aq.toUpperCase()} | refresh failed`)}catch(a){d?.warn?.("TOKEN",`${aq.toUpperCase()} | refresh threw: ${a.message}`)}if(!am.ok){(0,s.uw)(ar,aq,Q,!1,!0);let{statusCode:b,message:c,resetsAtMs:d}=await (0,p.zL)(am,aX);(0,s.E5)({model:ar,provider:aq,connectionId:Q,status:`FAILED ${b}`}).catch(()=>{}),(0,s.ox)((0,u.$R)({provider:aq,model:ar,connectionId:Q,apiKey:S,apiKeyName:T,latency:{ttft:0,total:Date.now()-at},tokens:{prompt_tokens:0,completion_tokens:0},request:(0,u.Fo)(a,aG),providerRequest:ap||ak||null,response:{error:c,status:b,thinking:null},pxpipe:aW,status:"error"})).catch(()=>{});let e=(0,p.lR)(Error(c),aq,ar,b);return console.log(`${j.lm.red}[ERROR] ${e}${j.lm.reset}`),aM.logError(Error(c),ap||ak),(0,p.A1)(b,e,d)}let a_={provider:aq,model:ar,body:a,stream:aE,translatedBody:ak,finalBody:ap,requestStartTime:at,connectionId:Q,apiKey:S,apiKeyName:T,clientRawRequest:P,onRequestSuccess:N,pxpipe:aW},a0=a=>(0,s.E5)({model:ar,provider:aq,connectionId:Q,...a}).catch(()=>{}),a1=()=>(0,s.uw)(ar,aq,Q,!1);if(aF&&aC){let a=await (0,w.
|
|
19
|
+
[ROUTER NOTE: ${f.hint}]`;"string"==typeof a.content?a.content.includes("[ROUTER NOTE:")||(a.content+=b):Array.isArray(a.content)?a.content.some(a=>a.text&&a.text.includes("[ROUTER NOTE:"))||a.content.push({type:"text",text:b}):a.content=b.trimStart()}}e?.warn?.("LOOPGUARD",`${c}/${d} | loop detected, hint injected`)}(ak,aP,aq,ar,d),/(?:^|[/_-])kimi(?:[/_-]|$)|(?:^|[/_-])kimi-k2\.(?:6|7)(?:\b|[-_/])/i.test(`${aq}/${ar}`)&&((0,E.sH)(ak,aP),d?.debug?.("TERMINATION",`${aq}/${ar} | ${aP}`)),ah?.mode&&"auto"!==ah.mode){let a=(0,H.nl)(aq,ar);if(a?.reasoning){let b=ah.mode;"off"===b?(ak.reasoning_effort="none",!1!==a.thinkingCanDisable&&(ak.thinking={type:"disabled"}),d?.debug?.("THINKING",`${aq}/${ar} | disabled`)):"on"===b?(ak.thinking={type:"enabled",budget_tokens:1e4},d?.debug?.("THINKING",`${aq}/${ar} | enabled (10k budget)`)):(ak.reasoning_effort=b,d?.debug?.("THINKING",`${aq}/${ar} | effort=${b}`))}}let aW=null;if(ab){let a=await (0,e.H)(ak,{enabled:!0,format:aP,model:aB,minChars:ac,timeoutMs:ad,transform:ae});aW=a.summary,a.body&&(ak=a.body);let b=(0,e._)(aW);b?d?.info?.("PXPIPE",b):d?.debug?.("PXPIPE",`skipped: ${aW.reason}${aW.detail?` (${aW.detail})`:""}`);try{af?.({provider:aq,model:ar,...aW})}catch{}}let aX=(0,t.SB)(aq);(0,s.uw)(ar,aq,Q,!0),(0,s.E5)({model:ar,provider:aq,connectionId:Q,status:"PENDING"}).catch(()=>{});let aY=ak.messages?.length||ak.input?.length||ak.contents?.length||ak.request?.contents?.length||0;d?.debug?.("REQUEST",`${aq.toUpperCase()} | ${ar} | ${aY} msgs`);let aZ=(0,k.jd)({onDisconnect:a=>{(0,s.uw)(ar,aq,Q,!1),O&&O(a)},onError:()=>(0,s.uw)(ar,aq,Q,!1),log:d,provider:aq,model:ar});ai&&(ai.aborted?aZ.abort():ai.addEventListener("abort",()=>aZ.abort(),{once:!0}));let a$={connectionProxyEnabled:c?.providerSpecificData?.connectionProxyEnabled===!0,connectionProxyUrl:c?.providerSpecificData?.connectionProxyUrl||"",connectionNoProxy:c?.providerSpecificData?.connectionNoProxy||"",vercelRelayUrl:c?.providerSpecificData?.vercelRelayUrl||""};if(a$.vercelRelayUrl){let a=c?.connectionName||c?.connectionId||"unknown",b=c?.providerSpecificData?.connectionProxyPoolId||"none";d?.info?.("PROXY",`${aq.toUpperCase()} | ${ar} | conn=${a} | pool=${b} | vercel-relay=${a$.vercelRelayUrl}`)}else if(a$.connectionProxyEnabled&&a$.connectionProxyUrl){let a=a$.connectionProxyUrl;try{let b=new URL(a$.connectionProxyUrl),c=b.hostname||"",d=b.port?`:${b.port}`:"",e=b.protocol||"http:";a=`${e}//${c}${d}`}catch{}let b=c?.providerSpecificData?.connectionProxyPoolId||"none",e=c?.connectionName||c?.connectionId||"unknown";d?.info?.("PROXY",`${aq.toUpperCase()} | ${ar} | conn=${e} | pool=${b} | url=${a}`)}if(a$.connectionProxyEnabled&&a$.connectionNoProxy){let a=c?.connectionName||c?.connectionId||"unknown";d?.debug?.("PROXY",`${aq.toUpperCase()} | ${ar} | conn=${a} | no_proxy=${a$.connectionNoProxy}`)}try{let a=await aX.execute({model:ar,body:ak,stream:aG,credentials:c,signal:aZ.signal,log:d,proxyOptions:a$,accountCount:as});am=a.response,an=a.url,ao=a.headers,ap=a.transformedBody,aM.logTargetRequest(an,ao,ap)}catch(c){if((0,s.uw)(ar,aq,Q,!1,!0),(0,s.E5)({model:ar,provider:aq,connectionId:Q,status:`FAILED ${"AbortError"===c.name?499:q.gx.BAD_GATEWAY}`}).catch(()=>{}),(0,s.ox)((0,u.$R)({provider:aq,model:ar,connectionId:Q,apiKey:S,apiKeyName:T,latency:{ttft:0,total:Date.now()-at},tokens:{prompt_tokens:0,completion_tokens:0},request:(0,u.Fo)(a,aG),providerRequest:ak||null,response:{error:c.message||String(c),status:"AbortError"===c.name?499:502,thinking:null},pxpipe:aW,status:"error"})).catch(()=>{}),"AbortError"===c.name)return aZ.handleError(c),(0,p.A1)(499,"Request aborted");let b=(0,p.lR)(c,aq,ar,q.gx.BAD_GATEWAY);return console.log(`${j.lm.red}[ERROR] ${b}${j.lm.reset}`),(0,p.A1)(q.gx.BAD_GATEWAY,b)}if(!aX.noAuth&&(am.status===q.gx.UNAUTHORIZED||am.status===q.gx.FORBIDDEN))try{let a=await (0,l.qZ)(()=>aX.refreshCredentials(c,d),3,d);if(a?.accessToken||a?.copilotToken){if(d?.info?.("TOKEN",`${aq.toUpperCase()} | refreshed`),Object.assign(c,a),K)try{await K(a)}catch(a){d?.warn?.("TOKEN",`onCredentialsRefreshed failed: ${a.message}`)}try{let a=await aX.execute({model:ar,body:ak,stream:aG,credentials:c,signal:aZ.signal,log:d,proxyOptions:a$,accountCount:as});a.response.ok&&(am=a.response,an=a.url)}catch{d?.warn?.("TOKEN",`${aq.toUpperCase()} | retry after refresh failed`)}}else d?.warn?.("TOKEN",`${aq.toUpperCase()} | refresh failed`)}catch(a){d?.warn?.("TOKEN",`${aq.toUpperCase()} | refresh threw: ${a.message}`)}if(!am.ok){(0,s.uw)(ar,aq,Q,!1,!0);let{statusCode:b,message:c,resetsAtMs:d}=await (0,p.zL)(am,aX);(0,s.E5)({model:ar,provider:aq,connectionId:Q,status:`FAILED ${b}`}).catch(()=>{}),(0,s.ox)((0,u.$R)({provider:aq,model:ar,connectionId:Q,apiKey:S,apiKeyName:T,latency:{ttft:0,total:Date.now()-at},tokens:{prompt_tokens:0,completion_tokens:0},request:(0,u.Fo)(a,aG),providerRequest:ap||ak||null,response:{error:c,status:b,thinking:null},pxpipe:aW,status:"error"})).catch(()=>{});let e=(0,p.lR)(Error(c),aq,ar,b);return console.log(`${j.lm.red}[ERROR] ${e}${j.lm.reset}`),aM.logError(Error(c),ap||ak),(0,p.A1)(b,e,d)}let a_={provider:aq,model:ar,body:a,stream:aE,translatedBody:ak,finalBody:ap,requestStartTime:at,connectionId:Q,apiKey:S,apiKeyName:T,clientRawRequest:P,onRequestSuccess:N,pxpipe:aW},a0=a=>(0,s.E5)({model:ar,provider:aq,connectionId:Q,...a}).catch(()=>{}),a1=()=>(0,s.uw)(ar,aq,Q,!1);if(aF&&aC){let a=await (0,w.NE)({...a_,stream:aG,providerResponse:am,sourceFormat:au,targetFormat:az,reqLogger:aM,toolNameMap:al,trackDone:a1,appendLog:a0});if(!a.success)return a;let b=await a.response.json(),c=(0,y.y)(b);return aZ.handleComplete(),{success:!0,response:c}}if(!aC&&aD){let a=await (0,v.I)({...a_,providerResponse:am,sourceFormat:au,toolNameMap:al,trackDone:a1,appendLog:a0});if(a)return aZ.handleComplete(),a}if(!aE){let a=await (0,w.NE)({...a_,providerResponse:am,sourceFormat:au,targetFormat:az,reqLogger:aM,toolNameMap:al,trackDone:a1,appendLog:a0});if("clinepass"===aq&&!a?.success&&/empty/i.test(a?.error||"")){d?.warn?.("RETRY","clinepass returned empty content, retrying once after 2s"),await new Promise(a=>setTimeout(a,2e3));try{let b=await aX.execute({model:ar,body:ak,stream:!1,credentials:c,signal:aZ.signal,log:d,proxyOptions:a$});b?.response?.ok&&(am=b.response,a=await (0,w.NE)({...a_,providerResponse:am,sourceFormat:au,targetFormat:az,reqLogger:aM,toolNameMap:al,trackDone:a1,appendLog:a0}))}catch(a){d?.warn?.("RETRY",`clinepass retry failed: ${a.message}`)}}return aZ.handleComplete(),a}let{onStreamComplete:a2,streamDetailId:a3}=(0,x.$)({...a_});return(0,x.M)({...a_,providerResponse:am,sourceFormat:au,targetFormat:az,userAgent:R,reqLogger:aM,toolNameMap:al,streamController:aZ,onStreamComplete:a2,streamDetailId:a3,pxpipe:aW})}d()}catch(a){d(a)}})},46646:(a,b,c)=>{c.d(b,{Hr:()=>j,nu:()=>h,u9:()=>k,yx:()=>g});var d=c(69152),e=c(30794);let f=new Set(["response.completed","response.done","response.failed","error"]);function g(a,b){return a||(b&&"string"==typeof b.type?b.type:null)}function h(a,b){let c=g(a,b);if(f.has(c))return!0;let d=b?.response?.status;return"completed"===d||"failed"===d}let i=new TextEncoder;function j(){return i.encode(`${k()}data: [DONE]
|
|
20
20
|
|
|
21
|
-
`)}function k(){return(0,e.v8)({event:"response.failed",data:{type:"response.failed",response:{id:`resp_${Date.now()}`,status:"failed",error:{type:"stream_error",code:"stream_disconnected",message:"stream closed before response.completed"}}}},d.h.OPENAI_RESPONSES)}},50996:(a,b,c)=>{function d(a,b){let c;if(!a.trim())return;let d=a.match(/^event:\s*(.+)$/m),e=a.match(/^data:\s*(.+)$/m);if(!d||!e)return;let f=d[1].trim(),g=e[1].trim();if("[DONE]"!==g){try{c=JSON.parse(g)}catch{return}"response.created"===f?(b.responseId=c.response?.id||b.responseId,b.created=c.response?.created_at||b.created):"response.output_item.done"===f?b.items.set(c.output_index??0,c.item):"response.completed"===f||"response.done"===f?(b.status="completed",c.response?.usage&&(b.usage.input_tokens=c.response.usage.input_tokens||0,b.usage.output_tokens=c.response.usage.output_tokens||0,b.usage.total_tokens=c.response.usage.total_tokens||0)):"response.failed"===f&&(b.status="failed")}}c.d(b,{I:()=>q,F:()=>p});let e={input_tokens:0,output_tokens:0,total_tokens:0};async function f(a){if(!a||"function"!=typeof a.getReader)return{id:`resp_${Date.now()}`,object:"response",created_at:Math.floor(Date.now()/1e3),status:"failed",output:[],usage:{...e}};let b=new TextDecoder,c="",f={responseId:"",created:Math.floor(Date.now()/1e3),status:"in_progress",usage:{...e},items:new Map};for await(let e of a){let a=(c+=b.decode(e,{stream:!0})).split("\n\n");for(let b of(c=a.pop()||"",a))d(b,f)}c.trim()&&d(c,f);let g=[],h=f.items.size>0?Math.max(...f.items.keys()):-1;for(let a=0;a<=h;a++)g.push(f.items.get(a)||{type:"message",content:[],role:"assistant"});return{id:f.responseId||`resp_${Date.now()}_${Math.random().toString(36).slice(2,8)}`,object:"response",created_at:f.created,status:f.status||"completed",output:g,usage:f.usage}}var g=c(15261),h=c(92398),i=c(69152),j=c(13946),k=c(92913),l=c(15204),m=c(23648);let n=a=>j.xq[a]?.format===i.h.OPENAI_RESPONSES;function o(a){if(!a?.content||!Array.isArray(a.content))return"";let b=a.content.find(a=>"output_text"===a.type);if("string"==typeof b?.text)return b.text;let c=a.content.find(a=>"string"==typeof a.text);return"string"==typeof c?.text?c.text:""}function p(a,b,c=null){let d=[];for(let b of String(a||"").split("\n")){let a=b.trim();if(!a.startsWith("data:"))continue;let c=a.slice(5).trim();if(c&&"[DONE]"!==c)try{d.push(JSON.parse(c))}catch{}}if(0===d.length)return null;let e=d[0],f=[],g=[],h=new Map,i="stop",j=null;for(let a of d){let b=a?.choices?.[0],c=b?.delta||{};if("string"==typeof c.content&&c.content.length>0&&f.push(c.content),"string"==typeof c.reasoning_content&&c.reasoning_content.length>0&&g.push(c.reasoning_content),b?.finish_reason&&(i=b.finish_reason),a?.usage&&"object"==typeof a.usage&&(j=a.usage),Array.isArray(c.tool_calls))for(let a of c.tool_calls){let b=a.index??0;h.has(b)||h.set(b,{id:a.id||"",type:"function",function:{name:"",arguments:""}});let c=h.get(b);a.id&&(c.id=a.id),a.function?.name&&(c.function.name+=a.function.name),a.function?.arguments&&(c.function.arguments+=a.function.arguments)}}let k={role:"assistant",content:f.join("")||(h.size>0?null:"")};if(g.length>0&&(k.reasoning_content=g.join("")),h.size>0){let a=[...h.entries()].sort((a,b)=>a[0]-b[0]).map(([,a])=>a);if(c&&c.length>0)for(let b of a)b.function?.name&&(b.function.name=(0,l.vh)(b.function.name,c));k.tool_calls=a}let m={id:e.id||`chatcmpl-${Date.now()}`,object:"chat.completion",created:e.created||Math.floor(Date.now()/1e3),model:e.model||b||"unknown",choices:[{index:0,message:k,finish_reason:i}]};return j&&(m.usage=j),m}async function q({providerResponse:a,sourceFormat:b,provider:c,model:d,body:e,stream:j,translatedBody:r,finalBody:s,requestStartTime:t,connectionId:u,apiKey:v,apiKeyName:w,clientRawRequest:x,onRequestSuccess:y,trackDone:z,appendLog:A}){let B=a.headers.get("content-type")||"";if(!(B.includes("text/event-stream")||""===B&&n(c)))return null;z();let C={provider:c,model:d,connectionId:u,apiKey:v,apiKeyName:w,request:(0,k.Fo)(e,j),providerRequest:s||r||null};if(n(c)||b===i.h.OPENAI_RESPONSES)try{let e,g=await f(a.body);y&&await y();let h=g.usage||{};A({tokens:h,status:"200 OK"}),(0,k.qr)({provider:c,model:d,tokens:h,connectionId:u,apiKey:v,endpoint:x?.endpoint});let{msgItem:j,textContent:l}=function(a){if(!Array.isArray(a))return{msgItem:null,textContent:null};let b=a.filter(a=>a?.type==="message");if(0===b.length)return{msgItem:null,textContent:null};for(let a=b.length-1;a>=0;a--){let c=o(b[a]);if(c.length>0)return{msgItem:b[a],textContent:c}}let c=b[b.length-1];return{msgItem:c,textContent:o(c)}}(g.output),n=Date.now()-t;if((0,m.ox)((0,k.$R)({...C,latency:{ttft:n,total:n},tokens:{prompt_tokens:h.input_tokens||0,completion_tokens:h.output_tokens||0},response:{content:l,thinking:null,finish_reason:g.status||"unknown"},status:"success"},{endpoint:x?.endpoint||null})).catch(()=>{}),b===i.h.OPENAI_RESPONSES)return{success:!0,response:new Response(JSON.stringify(g),{headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}})};let p=h.input_tokens||0,q=h.output_tokens||0,r=(g.output||[]).filter(a=>"function_call"===a.type).map((a,b)=>({id:a.call_id||`call_${a.name}_${Date.now()}_${b}`,type:"function",function:{name:a.name,arguments:"string"==typeof a.arguments?a.arguments:JSON.stringify(a.arguments||{})}})),s=r.length>0;if(b===i.h.ANTIGRAVITY||b===i.h.GEMINI||b===i.h.GEMINI_CLI)e={response:{candidates:[{content:{role:"model",parts:[{text:l||""}]},finishReason:"STOP",index:0}],usageMetadata:{promptTokenCount:p,candidatesTokenCount:q,totalTokenCount:p+q},modelVersion:d,responseId:g.id||`resp_${Date.now()}`}};else{let a={role:"assistant",content:l||(s?null:"")};s&&(a.tool_calls=r);let b="completed"===g.status||"done"===g.status,c=s?"tool_calls":b?"stop":g.status||"stop";e={id:g.id||`chatcmpl-${Date.now()}`,object:"chat.completion",created:g.created_at||Math.floor(Date.now()/1e3),model:g.model||d,choices:[{index:0,message:a,finish_reason:c}],usage:{prompt_tokens:p,completion_tokens:q,total_tokens:p+q}}}return{success:!0,response:new Response(JSON.stringify(e),{headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}})}}catch(a){return console.error("[ChatCore] Responses API SSE→JSON failed:",a),(0,g.A1)(h.gx.BAD_GATEWAY,"Failed to convert streaming response to JSON")}try{let b=await a.text(),f=p(b,d,(0,l.Qv)(e?.tools));if(!f)return(0,g.A1)(h.gx.BAD_GATEWAY,"Invalid SSE response for non-streaming request");y&&await y();let i=f.usage||{};A({tokens:i,status:"200 OK"}),(0,k.qr)({provider:c,model:d,tokens:i,connectionId:u,apiKey:v,endpoint:x?.endpoint});let j=Date.now()-t;if((0,m.ox)((0,k.$R)({...C,latency:{ttft:j,total:j},tokens:i,response:{content:f.choices?.[0]?.message?.content||null,thinking:f.choices?.[0]?.message?.reasoning_content||null,finish_reason:f.choices?.[0]?.finish_reason||"unknown"},status:"success"},{endpoint:x?.endpoint||null})).catch(()=>{}),f?.choices)for(let a of f.choices)a?.message?.reasoning_content&&a.message.content&&delete a.message.reasoning_content;return{success:!0,response:new Response(JSON.stringify(f),{headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}})}}catch(a){return console.error("[ChatCore] Chat Completions SSE→JSON failed:",a),(0,g.A1)(h.gx.BAD_GATEWAY,"Failed to convert streaming response to JSON")}}},56764:(a,b,c)=>{c.d(b,{U:()=>l});var d=c(5761);let e="You are a lazy senior developer. Lazy means efficient, not careless. The best code is the code never written. Before writing code, stop at the first rung that holds: 1. Does this need to exist at all? Speculative need = skip it, say so in one line (YAGNI). 2. Stdlib does it? Use it. 3. Native platform feature covers it? Use it (native input over a picker lib, CSS over JS, DB constraint over app code). 4. Already-installed dependency solves it? Use it. Never add a new dependency for what a few lines can do. 5. Can it be one line? One line. 6. Only then: the minimum code that works.",f="No unrequested abstractions (no interface with one implementation, no factory for one product, no config for a value that never changes). No boilerplate or scaffolding 'for later'. Deletion over addition. Boring over clever. Fewest files possible; shortest working diff wins. Two stdlib options the same size? Take the one correct on edge cases — lazy means less code, not the flimsier algorithm. Mark deliberate simplifications with a `ponytail:` comment naming the ceiling and upgrade path (e.g. `// ponytail: global lock, per-account locks if throughput matters`).",g="Never simplify away: input validation at trust boundaries, error handling that prevents data loss, security, accessibility, or anything explicitly requested. If the user insists on the full version, build it without re-arguing.",h="now is 2026, Be skeptical: never claim 'fixed', 'working', or 'correct' without concrete proof (test output, diff, reproducible verification). If a test passes, verify it tests what you think it tests. Check for side effects. Never fabricate reports ('all tests pass' without running them). Distinguish pre-existing bugs from ones you caused — run tests BEFORE and AFTER, diff the results. Report honestly: if broken and can't fix, say so. If skipped, explain why. If caveats, state them. Verify before declaring done — run relevant tests AFTER changes, show actual output.",i="Code first. Then at most three short lines: what was skipped and when to add it. Pattern: [code] then skipped: [X], add when [Y]. If the explanation is longer than the code, delete the explanation.",j="ACTIVE EVERY RESPONSE. No drift back to over-building. Still active if unsure.",k={lite:[e,"Level: lite. Build what's asked, but name the lazier alternative in one line — the user picks.",f,i,g,h,j].join(" "),full:[e,"Level: full. The ladder is enforced — stdlib and native first, shortest diff, shortest explanation. Ship the lazy version and question unrequested scope in the same response.",f,i,g,h,j].join(" "),ultra:[e,"Level: ultra. YAGNI extremist. Deletion before addition. Ship the one-liner and challenge the rest of the requirement in the same breath. No feature until a profiler or a real requirement demands it.",f,i,g,h,j].join(" ")};function l(a,b,c){(0,d.J)(a,b,k[c])}},60137:(a,b,c)=>{c.d(b,{$:()=>r,M:()=>q});var d=c(69152),e=c(44602),f=c(67860),g=c(77380),h=c(78963),i=c(13946),j=c(92398),k=c(46646),l=c(92913),m=c(23648),n=c(2933);async function o(a){if(!a||"function"!=typeof a.getReader)return{empty:!0};let b=a.getReader();try{let{done:a,value:c}=await b.read();if(a)return{empty:!0};return{empty:!1,firstChunk:c,reader:b}}catch(a){throw b.cancel?.().catch(()=>{}),a}}let p={[d.h.OPENAI_RESPONSES]:d.h.OPENAI_RESPONSES,[d.h.CLAUDE]:d.h.CLAUDE,[d.h.ANTIGRAVITY]:d.h.ANTIGRAVITY,[d.h.GEMINI]:d.h.ANTIGRAVITY,[d.h.GEMINI_CLI]:d.h.ANTIGRAVITY};async function q({providerResponse:a,provider:b,model:c,sourceFormat:r,targetFormat:s,userAgent:t,body:u,stream:v,translatedBody:w,finalBody:x,requestStartTime:y,connectionId:z,apiKey:A,apiKeyName:B,clientRawRequest:C,onRequestSuccess:D,reqLogger:E,toolNameMap:F,streamController:G,onStreamComplete:H,streamDetailId:I,pxpipe:J}){let K;D&&Promise.resolve().then(D).catch(a=>{console.error("[ChatCore] onRequestSuccess failed:",a?.message||a)});let L=(a.headers.get("content-type")||"").toLowerCase();!L||L.includes("text/event-stream")||L.includes("application/json")||console.warn("[STREAM] "+b+" | "+c+" | unexpected Content-Type: "+L);try{K=await o(a.body)}catch(a){return{success:!1,status:502,errorCode:"STREAM_EARLY_EOF",error:a?.message||String(a)}}if(K.empty)return{success:!1,status:502,errorCode:"STREAM_EARLY_EOF",error:"Upstream closed stream before any useful content"};let M=function({provider:a,sourceFormat:b,targetFormat:c,userAgent:h,reqLogger:j,toolNameMap:k,model:l,connectionId:m,body:n,onStreamComplete:o,apiKey:q}){let r=h?.toLowerCase().includes("droid")||h?.toLowerCase().includes("codex-cli"),s=i.xq[a]?.format===d.h.OPENAI_RESPONSES&&c===d.h.OPENAI_RESPONSES&&!r,t=/kimi-k2\./i.test(l||"");if(s){let c=p[b]||d.h.OPENAI;return(0,f.i5)(d.h.OPENAI_RESPONSES,c,a,j,k,l,m,n,o,q,t?g.vH:null)}return(0,e.nZ)(c,b)?(0,f.i5)(c,b,a,j,k,l,m,n,o,q,t?g.vH:null):(0,f.l2)(a,j,l,m,n,o,q,t?g.vH:null)}({provider:b,sourceFormat:r,targetFormat:s,userAgent:t,reqLogger:E,toolNameMap:F,model:c,connectionId:z,body:u,onStreamComplete:H,apiKey:A}),N=r===d.h.OPENAI_RESPONSES&&s===d.h.OPENAI_RESPONSES?k.Hr:null,O=i.xq[b]?.stallTimeoutMs||j.xM,P=new Response(function({firstChunk:a,reader:b}){let c=!1;return new ReadableStream({async pull(d){if(!c){d.enqueue(a),c=!0;return}try{let{done:a,value:c}=await b.read();a?(d.close(),b.releaseLock?.()):d.enqueue(c)}catch(a){d.error(a),b.cancel?.().catch(()=>{})}},cancel(a){b.cancel?.(a).catch(()=>{})}})}(K),{status:a.status,statusText:a.statusText,headers:a.headers}),Q=(0,h.Jb)(P,M,G,N,O);return(0,m.ox)((0,l.$R)({provider:b,model:c,connectionId:z,apiKey:A,apiKeyName:B,latency:{ttft:0,total:Date.now()-y},tokens:{prompt_tokens:0,completion_tokens:0},request:(0,l.Fo)(u,v),providerRequest:x||w||null,providerResponse:"[Streaming - raw response not captured]",response:{content:"[Streaming in progress...]",thinking:null,type:"streaming"},pxpipe:J,status:"success"},{id:I})).catch(a=>{console.error("[RequestDetail] Failed to save streaming request:",a.message)}),{success:!0,response:new Response(Q,{headers:n.RK})}}function r({provider:a,model:b,connectionId:c,apiKey:d,apiKeyName:e,requestStartTime:f,body:g,stream:h,finalBody:i,translatedBody:j,clientRawRequest:k,pxpipe:n}){let o=`${Date.now()}-${Math.random().toString(36).slice(2,11)}`;return{onStreamComplete:(p,q,r)=>{let s={ttft:r?r-f:Date.now()-f,total:Date.now()-f},t=p?.content||"[Empty streaming response]",u=p?.thinking||null;(0,m.ox)((0,l.$R)({provider:a,model:b,connectionId:c,apiKey:d,apiKeyName:e,latency:s,tokens:q||{prompt_tokens:0,completion_tokens:0},request:(0,l.Fo)(g,h),providerRequest:i||j||null,providerResponse:t,response:{content:t,thinking:u,type:"streaming"},pxpipe:n,status:"success"},{id:o})).catch(a=>{console.error("[RequestDetail] Failed to update streaming content:",a.message)}),(0,l.qr)({provider:a,model:b,tokens:q,connectionId:c,apiKey:d,endpoint:k?.endpoint,label:"STREAM USAGE"})},streamDetailId:o}}},61210:(a,b,c)=>{c.d(b,{F:()=>g});let d=[{triggers:["mcp__exa__web_search_exa","mcp__exa__web_fetch_exa"],strip:["WebSearch","WebFetch","mcp__workspace__web_fetch"]},{triggers:["mcp__tavily__tavily_search","mcp__tavily__tavily_extract"],strip:["WebSearch","WebFetch","mcp__workspace__web_fetch"]},{triggers:[/^mcp__browsermcp__/],strip:[/^mcp__Claude_in_Chrome__/]}];function e(a){return a?.name||a?.function?.name||""}function f(a,b){return"string"==typeof b?a===b:b instanceof RegExp&&b.test(a)}function g(a){if(!Array.isArray(a)||0===a.length)return{tools:a,stripped:[]};let b=a.map(e),c=new Set;for(let a of d)if(b.some(b=>a.triggers.some(a=>f(b,a))))for(let d of b)a.strip.some(a=>f(d,a))&&c.add(d);return 0===c.size?{tools:a,stripped:[]}:{tools:a.filter(a=>!c.has(e(a))),stripped:Array.from(c)}}},63192:(a,b,c)=>{c.d(b,{p:()=>n});var d=c(5761);let e="Code blocks, file paths, commands, errors, URLs: keep exact. Security warnings, irreversible action confirmations, multi-step ordered sequences: write normal. Resume terse style after.",f='Not: "Sure! I\'d be happy to help you with that. The issue you\'re experiencing is likely caused by..." Yes: "Bug in auth middleware. Token expiry check use `<` not `<=`. Fix:"',g="Auto-Clarity: drop caveman for security warnings, irreversible actions, multi-step sequences where fragment ambiguity risks misread, or when user repeats a question. Resume after the clear part.",h="ACTIVE EVERY RESPONSE. No revert after many turns. No filler drift. Still active if unsure.",i="No invented abbreviations. Standard well-known tech acronyms (DB, API, HTTP, URL, JSON, ID, OS, CPU) OK. Names of code symbols, function names, API names, error strings: keep verbatim.",j="Preserve the user's dominant language. User wrote Vietnamese, reply Vietnamese. User wrote English, reply English. Wenyan/classical-Chinese levels override this language-preservation rule. Code identifiers, error strings, file paths, commands: keep in their original form regardless of language.",k='No self-reference. Do not name or announce the style (no "caveman mode", no "me caveman think", no "compressed mode active"). Just respond.',l='No decorative emoji. No narrating tool calls ("I will now search", "I used X to find Y"). No status phrases ("Sure!", "Of course!", "I\'d be happy to"). No causal arrow shorthand ("A -> B -> fails"). State the thing, the action, the reason. Then next step.',m={lite:["Respond tersely. Keep grammar and full sentences but drop filler, hedging and pleasantries (just/really/basically/sure/of course/I'd be happy to). Pattern: state the thing, the action, the reason. Then next step.",f,e,g,h,i,j,k,l].join(" "),full:["Respond like terse caveman. All technical substance stay exact, only fluff die. Drop: articles (a/an/the), filler (just/really/basically/actually/simply), pleasantries, hedging. Fragments OK. Short synonyms (big not extensive, fix not implement a solution for). Pattern: [thing] [action] [reason]. [next step].",f,e,g,h,i,j,k,l].join(" "),ultra:["Respond ultra-terse. Maximum compression. Telegraphic. Strip conjunctions. One word when one word enough. Pattern: [thing] [action] [reason]. [next step].",f,e,g,h,i,j,k,l].join(" "),"wenyan-lite":["Respond semi-classical. Drop filler/hedging but keep grammar structure, classical register. Use classical Chinese sentence patterns where natural. Keep English for technical terms.",f,e,g,h,i,j,k,l].join(" "),wenyan:["Respond classical Chinese (文言文). Maximum classical terseness. 80-90% character reduction. Classical sentence patterns, verbs precede objects, subjects often omitted, classical particles (之/乃/為/其). Keep English for code, commands, function names, API names, error strings.",f,e,g,h,i,j,k,l].join(" "),"wenyan-ultra":["Respond extreme classical compression (文言文 ultra). Maximum compression, ultra terse. Same classical rules as wenyan-full but even more compressed. One classical particle per clause.",f,e,g,h,i,j,k,l].join(" ")};function n(a,b,c){(0,d.J)(a,b,m[c])}},67860:(a,b,c)=>{c.d(b,{i5:()=>q,l2:()=>r,lm:()=>g.lm,v8:()=>h.v8});var d=c(44602),e=c(69152),f=c(23648),g=c(73329),h=c(30794),i=c(46646),j=c(25440),k=c(15204);function l(a,b,c,d,f,g){var i;if(!b||0===b.length||f!==e.h.OPENAI)return!1;let j=(i=c?.messageId,{id:i?.startsWith("chatcmpl-")?i:`chatcmpl-${i||Date.now()}`,object:"chat.completion.chunk",created:Math.floor(Date.now()/1e3),model:d||null,choices:[{index:0,delta:{tool_calls:b},finish_reason:"tool_calls"}]}),k=(0,h.v8)(j,e.h.OPENAI);return g?.appendConvertedChunk?.(k),a.enqueue(m.encode(k)),!0}c(2933);let m=new TextEncoder,n="translate",o="passthrough";function p(a={}){let{mode:b=n,targetFormat:c,sourceFormat:q,provider:r=null,reqLogger:s=null,toolNameMap:t=null,model:u=null,connectionId:v=null,body:w=null,onStreamComplete:x=null,apiKey:y=null,normalizeKimiToolCalls:z=null}=a,A="",B=null,C=w?.tools?(0,k.Qv)(w.tools):null,D=new TextDecoder("utf-8",{fatal:!1}),E=b===n?{...(0,d.Ws)(q),provider:r,toolNameMap:t,model:u}:null,F=0,G="",H="",I=null,J=0,K=0,L={},M=/kimi-k2\./i.test(u||""),N=null,O=!1,P=null,Q=!1,R=!1,S=!1;return new TransformStream({transform(a,f){I||(I=Date.now());let p=D.decode(a,{stream:!0});A+=p,s?.appendProviderChunk?.(p);let r=A.split("\n");for(let a of(A=r.pop()||"",r)){let p=a.trim();if(j.T&&p&&(J++,p.startsWith("event:"))){let a=p.slice(6).trim();L[a]=(L[a]||0)+1}if(b===n&&c===e.h.OPENAI_RESPONSES&&p.startsWith("event:")&&(P=p.slice(6).trim()),b===o){let b,c=!1;if(p.startsWith("data:")&&"[DONE]"!==p.slice(5).trim())try{let a=JSON.parse(p.slice(5).trim()),d=(0,h.A4)(a),f=!1;if(void 0!==a.choices&&(a.object||(a.object="chat.completion.chunk",f=!0),a.created||(a.created=Math.floor(Date.now()/1e3),f=!0)),void 0!==a.prompt_filter_results&&(delete a.prompt_filter_results,f=!0),a?.choices)for(let b of a.choices)void 0!==b.content_filter_results&&(delete b.content_filter_results,f=!0);if(C&&C.length>0&&Array.isArray(a.choices))for(let b of a.choices){let a=b?.delta;if(Array.isArray(a?.tool_calls)){for(let b of a.tool_calls)if(b.function?.name){let a=(0,k.vh)(b.function.name,C);a!==b.function.name&&(b.function.name=a,f=!0)}}}if(a?.choices)for(let b of a.choices)b.delta?.tool_calls&&Array.isArray(b.delta.tool_calls)&&0===b.delta.tool_calls.length&&(delete b.delta.tool_calls,f=!0);if(!(0,h.c2)(a,e.h.OPENAI))continue;let i=a.choices?.[0]?.delta,j=i?.content,l=i?.reasoning_content;j&&"string"==typeof j&&(F+=j.length,G+=j),l&&"string"==typeof l&&(F+=l.length,H+=l);let m=(0,g.f5)(a);m&&(B=(0,g._L)(B,m));let n=a.choices?.[0]?.finish_reason;if(n&&!(0,g.Gh)(a.usage)){let d=(0,g.OF)(w,F,e.h.OPENAI);a.usage=(0,g.WL)(d,e.h.OPENAI),b=`data: ${JSON.stringify(a)}
|
|
21
|
+
`)}function k(){return(0,e.v8)({event:"response.failed",data:{type:"response.failed",response:{id:`resp_${Date.now()}`,status:"failed",error:{type:"stream_error",code:"stream_disconnected",message:"stream closed before response.completed"}}}},d.h.OPENAI_RESPONSES)}},50996:(a,b,c)=>{function d(a,b){let c;if(!a.trim())return;let d=a.match(/^event:\s*(.+)$/m),e=a.match(/^data:\s*(.+)$/m);if(!d||!e)return;let f=d[1].trim(),g=e[1].trim();if("[DONE]"!==g){try{c=JSON.parse(g)}catch{return}"response.created"===f?(b.responseId=c.response?.id||b.responseId,b.created=c.response?.created_at||b.created):"response.output_item.done"===f?b.items.set(c.output_index??0,c.item):"response.completed"===f||"response.done"===f?(b.status="completed",c.response?.usage&&(b.usage.input_tokens=c.response.usage.input_tokens||0,b.usage.output_tokens=c.response.usage.output_tokens||0,b.usage.total_tokens=c.response.usage.total_tokens||0)):"response.failed"===f&&(b.status="failed")}}c.d(b,{I:()=>s,F:()=>r});let e={input_tokens:0,output_tokens:0,total_tokens:0};async function f(a){if(!a||"function"!=typeof a.getReader)return{id:`resp_${Date.now()}`,object:"response",created_at:Math.floor(Date.now()/1e3),status:"failed",output:[],usage:{...e}};let b=new TextDecoder,c="",f={responseId:"",created:Math.floor(Date.now()/1e3),status:"in_progress",usage:{...e},items:new Map};for await(let e of a){let a=(c+=b.decode(e,{stream:!0})).split("\n\n");for(let b of(c=a.pop()||"",a))d(b,f)}c.trim()&&d(c,f);let g=[],h=f.items.size>0?Math.max(...f.items.keys()):-1;for(let a=0;a<=h;a++)g.push(f.items.get(a)||{type:"message",content:[],role:"assistant"});return{id:f.responseId||`resp_${Date.now()}_${Math.random().toString(36).slice(2,8)}`,object:"response",created_at:f.created,status:f.status||"completed",output:g,usage:f.usage}}var g=c(15261),h=c(92398),i=c(69152),j=c(13946),k=c(92913),l=c(15204),m=c(14018),n=c(97781),o=c(23648);let p=a=>j.xq[a]?.format===i.h.OPENAI_RESPONSES;function q(a){if(!a?.content||!Array.isArray(a.content))return"";let b=a.content.find(a=>"output_text"===a.type);if("string"==typeof b?.text)return b.text;let c=a.content.find(a=>"string"==typeof a.text);return"string"==typeof c?.text?c.text:""}function r(a,b,c=null){let d=[];for(let b of String(a||"").split("\n")){let a=b.trim();if(!a.startsWith("data:"))continue;let c=a.slice(5).trim();if(c&&"[DONE]"!==c)try{d.push(JSON.parse(c))}catch{}}if(0===d.length)return null;let e=d[0],f=[],g=[],h=new Map,i="stop",j=null;for(let a of d){let b=a?.choices?.[0],c=b?.delta||{};if("string"==typeof c.content&&c.content.length>0&&f.push(c.content),"string"==typeof c.reasoning_content&&c.reasoning_content.length>0&&g.push(c.reasoning_content),b?.finish_reason&&(i=b.finish_reason),a?.usage&&"object"==typeof a.usage&&(j=a.usage),Array.isArray(c.tool_calls))for(let a of c.tool_calls){let b=a.index??0;h.has(b)||h.set(b,{id:a.id||"",type:"function",function:{name:"",arguments:""}});let c=h.get(b);a.id&&(c.id=a.id),a.function?.name&&(c.function.name+=a.function.name),a.function?.arguments&&(c.function.arguments+=a.function.arguments)}}let k={role:"assistant",content:f.join("")||(h.size>0?null:"")};if(g.length>0&&(k.reasoning_content=g.join("")),h.size>0){let a=[...h.entries()].sort((a,b)=>a[0]-b[0]).map(([,a])=>a);if(c&&c.length>0)for(let b of a)b.function?.name&&(b.function.name=(0,l.vh)(b.function.name,c));k.tool_calls=a}let m={id:e.id||`chatcmpl-${Date.now()}`,object:"chat.completion",created:e.created||Math.floor(Date.now()/1e3),model:e.model||b||"unknown",choices:[{index:0,message:k,finish_reason:i}]};return j&&(m.usage=j),m}async function s({providerResponse:a,sourceFormat:b,provider:c,model:d,body:e,stream:j,translatedBody:t,finalBody:u,requestStartTime:v,connectionId:w,apiKey:x,apiKeyName:y,clientRawRequest:z,onRequestSuccess:A,trackDone:B,appendLog:C,comboName:D,toolNameMap:E}){let F=a.headers.get("content-type")||"";if(!(F.includes("text/event-stream")||""===F&&p(c)))return null;B();let G={provider:c,model:d,connectionId:w,apiKey:x,apiKeyName:y,request:(0,k.Fo)(e,j),providerRequest:u||t||null};if(p(c)||b===i.h.OPENAI_RESPONSES)try{let e,g=await f(a.body);A&&await A();let h=g.usage||{};C({tokens:h,status:"200 OK"}),(0,k.qr)({provider:c,model:d,tokens:h,connectionId:w,apiKey:x,endpoint:z?.endpoint,comboName:D});let{msgItem:j,textContent:l}=function(a){if(!Array.isArray(a))return{msgItem:null,textContent:null};let b=a.filter(a=>a?.type==="message");if(0===b.length)return{msgItem:null,textContent:null};for(let a=b.length-1;a>=0;a--){let c=q(b[a]);if(c.length>0)return{msgItem:b[a],textContent:c}}let c=b[b.length-1];return{msgItem:c,textContent:q(c)}}(g.output),p=Date.now()-v;if((0,o.ox)((0,k.$R)({...G,latency:{ttft:p,total:p},tokens:{prompt_tokens:h.input_tokens||0,completion_tokens:h.output_tokens||0},response:{content:l,thinking:null,finish_reason:g.status||"unknown"},status:"success"},{endpoint:z?.endpoint||null})).catch(()=>{}),b===i.h.OPENAI_RESPONSES)return{success:!0,response:new Response(JSON.stringify(g),{headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}})};let r=h.input_tokens||0,s=h.output_tokens||0,t=(g.output||[]).filter(a=>"function_call"===a.type).map((a,b)=>({id:a.call_id||`call_${a.name}_${Date.now()}_${b}`,type:"function",function:{name:a.name,arguments:"string"==typeof a.arguments?a.arguments:JSON.stringify(a.arguments||{})}})),u=t.length>0;if(b===i.h.ANTIGRAVITY||b===i.h.GEMINI||b===i.h.GEMINI_CLI)e={response:{candidates:[{content:{role:"model",parts:[{text:l||""}]},finishReason:"STOP",index:0}],usageMetadata:{promptTokenCount:r,candidatesTokenCount:s,totalTokenCount:r+s},modelVersion:d,responseId:g.id||`resp_${Date.now()}`}};else if(b===i.h.CLAUDE){let a={id:g.id||`chatcmpl-${Date.now()}`,model:g.model||d,choices:[{index:0,message:{role:"assistant",content:l||(u?null:"")},finish_reason:u?"tool_calls":"stop"}],usage:{prompt_tokens:r,completion_tokens:s}};u&&(a.choices[0].message.tool_calls=t);let b=(0,m.DT)(a,d);e=(0,n.kR)(b,E)}else{let a={role:"assistant",content:l||(u?null:"")};u&&(a.tool_calls=t);let b="completed"===g.status||"done"===g.status,c=u?"tool_calls":b?"stop":g.status||"stop";e={id:g.id||`chatcmpl-${Date.now()}`,object:"chat.completion",created:g.created_at||Math.floor(Date.now()/1e3),model:g.model||d,choices:[{index:0,message:a,finish_reason:c}],usage:{prompt_tokens:r,completion_tokens:s,total_tokens:r+s}}}return{success:!0,response:new Response(JSON.stringify(e),{headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}})}}catch(a){return console.error("[ChatCore] Responses API SSE→JSON failed:",a),(0,g.A1)(h.gx.BAD_GATEWAY,"Failed to convert streaming response to JSON")}try{let f=await a.text(),j=r(f,d,(0,l.Qv)(e?.tools));if(!j)return(0,g.A1)(h.gx.BAD_GATEWAY,"Invalid SSE response for non-streaming request");A&&await A();let p=j.usage||{};C({tokens:p,status:"200 OK"}),(0,k.qr)({provider:c,model:d,tokens:p,connectionId:w,apiKey:x,endpoint:z?.endpoint});let q=Date.now()-v;if((0,o.ox)((0,k.$R)({...G,latency:{ttft:q,total:q},tokens:p,response:{content:j.choices?.[0]?.message?.content||null,thinking:j.choices?.[0]?.message?.reasoning_content||null,finish_reason:j.choices?.[0]?.finish_reason||"unknown"},status:"success"},{endpoint:z?.endpoint||null})).catch(()=>{}),j?.choices)for(let a of j.choices)a?.message?.reasoning_content&&a.message.content&&delete a.message.reasoning_content;let s=j;if(b===i.h.CLAUDE){let a=(0,m.DT)(j,d);s=(0,n.kR)(a,E)}return{success:!0,response:new Response(JSON.stringify(s),{headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}})}}catch(a){return console.error("[ChatCore] Chat Completions SSE→JSON failed:",a),(0,g.A1)(h.gx.BAD_GATEWAY,"Failed to convert streaming response to JSON")}}},56764:(a,b,c)=>{c.d(b,{U:()=>l});var d=c(5761);let e="You are a lazy senior developer. Lazy means efficient, not careless. The best code is the code never written. Before writing code, stop at the first rung that holds: 1. Does this need to exist at all? Speculative need = skip it, say so in one line (YAGNI). 2. Stdlib does it? Use it. 3. Native platform feature covers it? Use it (native input over a picker lib, CSS over JS, DB constraint over app code). 4. Already-installed dependency solves it? Use it. Never add a new dependency for what a few lines can do. 5. Can it be one line? One line. 6. Only then: the minimum code that works.",f="No unrequested abstractions (no interface with one implementation, no factory for one product, no config for a value that never changes). No boilerplate or scaffolding 'for later'. Deletion over addition. Boring over clever. Fewest files possible; shortest working diff wins. Two stdlib options the same size? Take the one correct on edge cases — lazy means less code, not the flimsier algorithm. Mark deliberate simplifications with a `ponytail:` comment naming the ceiling and upgrade path (e.g. `// ponytail: global lock, per-account locks if throughput matters`).",g="Never simplify away: input validation at trust boundaries, error handling that prevents data loss, security, accessibility, or anything explicitly requested. If the user insists on the full version, build it without re-arguing.",h="now is 2026, Be skeptical: never claim 'fixed', 'working', or 'correct' without concrete proof (test output, diff, reproducible verification). If a test passes, verify it tests what you think it tests. Check for side effects. Never fabricate reports ('all tests pass' without running them). Distinguish pre-existing bugs from ones you caused — run tests BEFORE and AFTER, diff the results. Report honestly: if broken and can't fix, say so. If skipped, explain why. If caveats, state them. Verify before declaring done — run relevant tests AFTER changes, show actual output.",i="Code first. Then at most three short lines: what was skipped and when to add it. Pattern: [code] then skipped: [X], add when [Y]. If the explanation is longer than the code, delete the explanation.",j="ACTIVE EVERY RESPONSE. No drift back to over-building. Still active if unsure.",k={lite:[e,"Level: lite. Build what's asked, but name the lazier alternative in one line — the user picks.",f,i,g,h,j].join(" "),full:[e,"Level: full. The ladder is enforced — stdlib and native first, shortest diff, shortest explanation. Ship the lazy version and question unrequested scope in the same response.",f,i,g,h,j].join(" "),ultra:[e,"Level: ultra. YAGNI extremist. Deletion before addition. Ship the one-liner and challenge the rest of the requirement in the same breath. No feature until a profiler or a real requirement demands it.",f,i,g,h,j].join(" ")};function l(a,b,c){(0,d.J)(a,b,k[c])}},60137:(a,b,c)=>{c.d(b,{$:()=>r,M:()=>q});var d=c(69152),e=c(44602),f=c(67860),g=c(77380),h=c(78963),i=c(13946),j=c(92398),k=c(46646),l=c(92913),m=c(23648),n=c(2933);async function o(a){if(!a||"function"!=typeof a.getReader)return{empty:!0};let b=a.getReader();try{let{done:a,value:c}=await b.read();if(a)return{empty:!0};return{empty:!1,firstChunk:c,reader:b}}catch(a){throw b.cancel?.().catch(()=>{}),a}}let p={[d.h.OPENAI_RESPONSES]:d.h.OPENAI_RESPONSES,[d.h.CLAUDE]:d.h.CLAUDE,[d.h.ANTIGRAVITY]:d.h.ANTIGRAVITY,[d.h.GEMINI]:d.h.ANTIGRAVITY,[d.h.GEMINI_CLI]:d.h.ANTIGRAVITY};async function q({providerResponse:a,provider:b,model:c,sourceFormat:r,targetFormat:s,userAgent:t,body:u,stream:v,translatedBody:w,finalBody:x,requestStartTime:y,connectionId:z,apiKey:A,apiKeyName:B,clientRawRequest:C,onRequestSuccess:D,reqLogger:E,toolNameMap:F,streamController:G,onStreamComplete:H,streamDetailId:I,pxpipe:J}){let K;D&&Promise.resolve().then(D).catch(a=>{console.error("[ChatCore] onRequestSuccess failed:",a?.message||a)});let L=(a.headers.get("content-type")||"").toLowerCase();!L||L.includes("text/event-stream")||L.includes("application/json")||console.warn("[STREAM] "+b+" | "+c+" | unexpected Content-Type: "+L);try{K=await o(a.body)}catch(a){return{success:!1,status:502,errorCode:"STREAM_EARLY_EOF",error:a?.message||String(a)}}if(K.empty)return{success:!1,status:502,errorCode:"STREAM_EARLY_EOF",error:"Upstream closed stream before any useful content"};let M=function({provider:a,sourceFormat:b,targetFormat:c,userAgent:h,reqLogger:j,toolNameMap:k,model:l,connectionId:m,body:n,onStreamComplete:o,apiKey:q}){let r=h?.toLowerCase().includes("droid")||h?.toLowerCase().includes("codex-cli"),s=i.xq[a]?.format===d.h.OPENAI_RESPONSES&&c===d.h.OPENAI_RESPONSES&&!r,t=/kimi-k2\./i.test(l||"");if(s){let c=p[b]||d.h.OPENAI;return(0,f.i5)(d.h.OPENAI_RESPONSES,c,a,j,k,l,m,n,o,q,t?g.vH:null)}return(0,e.nZ)(c,b)?(0,f.i5)(c,b,a,j,k,l,m,n,o,q,t?g.vH:null):(0,f.l2)(a,j,l,m,n,o,q,t?g.vH:null)}({provider:b,sourceFormat:r,targetFormat:s,userAgent:t,reqLogger:E,toolNameMap:F,model:c,connectionId:z,body:u,onStreamComplete:H,apiKey:A}),N=r===d.h.OPENAI_RESPONSES&&s===d.h.OPENAI_RESPONSES?k.Hr:null,O=i.xq[b]?.stallTimeoutMs||j.xM,P=new Response(function({firstChunk:a,reader:b}){let c=!1;return new ReadableStream({async pull(d){if(!c){d.enqueue(a),c=!0;return}try{let{done:a,value:c}=await b.read();a?(d.close(),b.releaseLock?.()):d.enqueue(c)}catch(a){d.error(a),b.cancel?.().catch(()=>{})}},cancel(a){b.cancel?.(a).catch(()=>{})}})}(K),{status:a.status,statusText:a.statusText,headers:a.headers}),Q=(0,h.Jb)(P,M,G,N,O);return(0,m.ox)((0,l.$R)({provider:b,model:c,connectionId:z,apiKey:A,apiKeyName:B,latency:{ttft:0,total:Date.now()-y},tokens:{prompt_tokens:0,completion_tokens:0},request:(0,l.Fo)(u,v),providerRequest:x||w||null,providerResponse:"[Streaming - raw response not captured]",response:{content:"[Streaming in progress...]",thinking:null,type:"streaming"},pxpipe:J,status:"success"},{id:I})).catch(a=>{console.error("[RequestDetail] Failed to save streaming request:",a.message)}),{success:!0,response:new Response(Q,{headers:n.RK})}}function r({provider:a,model:b,connectionId:c,apiKey:d,apiKeyName:e,requestStartTime:f,body:g,stream:h,finalBody:i,translatedBody:j,clientRawRequest:k,pxpipe:n}){let o=`${Date.now()}-${Math.random().toString(36).slice(2,11)}`;return{onStreamComplete:(p,q,r)=>{let s={ttft:r?r-f:Date.now()-f,total:Date.now()-f},t=p?.content||"[Empty streaming response]",u=p?.thinking||null;(0,m.ox)((0,l.$R)({provider:a,model:b,connectionId:c,apiKey:d,apiKeyName:e,latency:s,tokens:q||{prompt_tokens:0,completion_tokens:0},request:(0,l.Fo)(g,h),providerRequest:i||j||null,providerResponse:t,response:{content:t,thinking:u,type:"streaming"},pxpipe:n,status:"success"},{id:o})).catch(a=>{console.error("[RequestDetail] Failed to update streaming content:",a.message)}),(0,l.qr)({provider:a,model:b,tokens:q,connectionId:c,apiKey:d,endpoint:k?.endpoint,label:"STREAM USAGE"})},streamDetailId:o}}},61210:(a,b,c)=>{c.d(b,{F:()=>g});let d=[{triggers:["mcp__exa__web_search_exa","mcp__exa__web_fetch_exa"],strip:["WebSearch","WebFetch","mcp__workspace__web_fetch"]},{triggers:["mcp__tavily__tavily_search","mcp__tavily__tavily_extract"],strip:["WebSearch","WebFetch","mcp__workspace__web_fetch"]},{triggers:[/^mcp__browsermcp__/],strip:[/^mcp__Claude_in_Chrome__/]}];function e(a){return a?.name||a?.function?.name||""}function f(a,b){return"string"==typeof b?a===b:b instanceof RegExp&&b.test(a)}function g(a){if(!Array.isArray(a)||0===a.length)return{tools:a,stripped:[]};let b=a.map(e),c=new Set;for(let a of d)if(b.some(b=>a.triggers.some(a=>f(b,a))))for(let d of b)a.strip.some(a=>f(d,a))&&c.add(d);return 0===c.size?{tools:a,stripped:[]}:{tools:a.filter(a=>!c.has(e(a))),stripped:Array.from(c)}}},63192:(a,b,c)=>{c.d(b,{p:()=>n});var d=c(5761);let e="Code blocks, file paths, commands, errors, URLs: keep exact. Security warnings, irreversible action confirmations, multi-step ordered sequences: write normal. Resume terse style after.",f='Not: "Sure! I\'d be happy to help you with that. The issue you\'re experiencing is likely caused by..." Yes: "Bug in auth middleware. Token expiry check use `<` not `<=`. Fix:"',g="Auto-Clarity: drop caveman for security warnings, irreversible actions, multi-step sequences where fragment ambiguity risks misread, or when user repeats a question. Resume after the clear part.",h="ACTIVE EVERY RESPONSE. No revert after many turns. No filler drift. Still active if unsure.",i="No invented abbreviations. Standard well-known tech acronyms (DB, API, HTTP, URL, JSON, ID, OS, CPU) OK. Names of code symbols, function names, API names, error strings: keep verbatim.",j="Preserve the user's dominant language. User wrote Vietnamese, reply Vietnamese. User wrote English, reply English. Wenyan/classical-Chinese levels override this language-preservation rule. Code identifiers, error strings, file paths, commands: keep in their original form regardless of language.",k='No self-reference. Do not name or announce the style (no "caveman mode", no "me caveman think", no "compressed mode active"). Just respond.',l='No decorative emoji. No narrating tool calls ("I will now search", "I used X to find Y"). No status phrases ("Sure!", "Of course!", "I\'d be happy to"). No causal arrow shorthand ("A -> B -> fails"). State the thing, the action, the reason. Then next step.',m={lite:["Respond tersely. Keep grammar and full sentences but drop filler, hedging and pleasantries (just/really/basically/sure/of course/I'd be happy to). Pattern: state the thing, the action, the reason. Then next step.",f,e,g,h,i,j,k,l].join(" "),full:["Respond like terse caveman. All technical substance stay exact, only fluff die. Drop: articles (a/an/the), filler (just/really/basically/actually/simply), pleasantries, hedging. Fragments OK. Short synonyms (big not extensive, fix not implement a solution for). Pattern: [thing] [action] [reason]. [next step].",f,e,g,h,i,j,k,l].join(" "),ultra:["Respond ultra-terse. Maximum compression. Telegraphic. Strip conjunctions. One word when one word enough. Pattern: [thing] [action] [reason]. [next step].",f,e,g,h,i,j,k,l].join(" "),"wenyan-lite":["Respond semi-classical. Drop filler/hedging but keep grammar structure, classical register. Use classical Chinese sentence patterns where natural. Keep English for technical terms.",f,e,g,h,i,j,k,l].join(" "),wenyan:["Respond classical Chinese (文言文). Maximum classical terseness. 80-90% character reduction. Classical sentence patterns, verbs precede objects, subjects often omitted, classical particles (之/乃/為/其). Keep English for code, commands, function names, API names, error strings.",f,e,g,h,i,j,k,l].join(" "),"wenyan-ultra":["Respond extreme classical compression (文言文 ultra). Maximum compression, ultra terse. Same classical rules as wenyan-full but even more compressed. One classical particle per clause.",f,e,g,h,i,j,k,l].join(" ")};function n(a,b,c){(0,d.J)(a,b,m[c])}},67860:(a,b,c)=>{c.d(b,{i5:()=>q,l2:()=>r,lm:()=>g.lm,v8:()=>h.v8});var d=c(44602),e=c(69152),f=c(23648),g=c(73329),h=c(30794),i=c(46646),j=c(25440),k=c(15204);function l(a,b,c,d,f,g){var i;if(!b||0===b.length||f!==e.h.OPENAI)return!1;let j=(i=c?.messageId,{id:i?.startsWith("chatcmpl-")?i:`chatcmpl-${i||Date.now()}`,object:"chat.completion.chunk",created:Math.floor(Date.now()/1e3),model:d||null,choices:[{index:0,delta:{tool_calls:b},finish_reason:"tool_calls"}]}),k=(0,h.v8)(j,e.h.OPENAI);return g?.appendConvertedChunk?.(k),a.enqueue(m.encode(k)),!0}c(2933);let m=new TextEncoder,n="translate",o="passthrough";function p(a={}){let{mode:b=n,targetFormat:c,sourceFormat:q,provider:r=null,reqLogger:s=null,toolNameMap:t=null,model:u=null,connectionId:v=null,body:w=null,onStreamComplete:x=null,apiKey:y=null,normalizeKimiToolCalls:z=null}=a,A="",B=null,C=w?.tools?(0,k.Qv)(w.tools):null,D=new TextDecoder("utf-8",{fatal:!1}),E=b===n?{...(0,d.Ws)(q),provider:r,toolNameMap:t,model:u}:null,F=0,G="",H="",I=null,J=0,K=0,L={},M=/kimi-k2\./i.test(u||""),N=null,O=!1,P=null,Q=!1,R=!1,S=!1;return new TransformStream({transform(a,f){I||(I=Date.now());let p=D.decode(a,{stream:!0});A+=p,s?.appendProviderChunk?.(p);let r=A.split("\n");for(let a of(A=r.pop()||"",r)){let p=a.trim();if(j.T&&p&&(J++,p.startsWith("event:"))){let a=p.slice(6).trim();L[a]=(L[a]||0)+1}if(b===n&&c===e.h.OPENAI_RESPONSES&&p.startsWith("event:")&&(P=p.slice(6).trim()),b===o){let b,c=!1;if(p.startsWith("data:")&&"[DONE]"!==p.slice(5).trim())try{let a=JSON.parse(p.slice(5).trim()),d=(0,h.A4)(a),f=!1;if(void 0!==a.choices&&(a.object||(a.object="chat.completion.chunk",f=!0),a.created||(a.created=Math.floor(Date.now()/1e3),f=!0)),void 0!==a.prompt_filter_results&&(delete a.prompt_filter_results,f=!0),a?.choices)for(let b of a.choices)void 0!==b.content_filter_results&&(delete b.content_filter_results,f=!0);if(C&&C.length>0&&Array.isArray(a.choices))for(let b of a.choices){let a=b?.delta;if(Array.isArray(a?.tool_calls)){for(let b of a.tool_calls)if(b.function?.name){let a=(0,k.vh)(b.function.name,C);a!==b.function.name&&(b.function.name=a,f=!0)}}}if(a?.choices)for(let b of a.choices)b.delta?.tool_calls&&Array.isArray(b.delta.tool_calls)&&0===b.delta.tool_calls.length&&(delete b.delta.tool_calls,f=!0);if(!(0,h.c2)(a,e.h.OPENAI))continue;let i=a.choices?.[0]?.delta,j=i?.content,l=i?.reasoning_content;j&&"string"==typeof j&&(F+=j.length,G+=j),l&&"string"==typeof l&&(F+=l.length,H+=l);let m=(0,g.f5)(a);m&&(B=(0,g._L)(B,m));let n=a.choices?.[0]?.finish_reason;if(n&&!(0,g.Gh)(a.usage)){let d=(0,g.OF)(w,F,e.h.OPENAI);a.usage=(0,g.WL)(d,e.h.OPENAI),b=`data: ${JSON.stringify(a)}
|
|
22
22
|
`,B=d,c=!0}else if(n&&B){let d=(0,g.O9)(B);a.usage=(0,g.WL)(d,e.h.OPENAI),b=`data: ${JSON.stringify(a)}
|
|
23
23
|
`,c=!0}else(d||f)&&(b=`data: ${JSON.stringify(a)}
|
|
24
24
|
`,c=!0)}catch{continue}c||(b=a.startsWith("data:")&&!a.startsWith("data: ")?"data: "+a.slice(5)+"\n":a+"\n"),s?.appendConvertedChunk?.(b),f.enqueue(m.encode(b));continue}if(!p)continue;let r=(0,h.tV)(p,c);if(!r)continue;let t=c===e.h.OPENAI_RESPONSES,v=t&&q===e.h.OPENAI_RESPONSES,x=t?(0,i.yx)(P,r):null;if(t&&(0,i.nu)(x,r)&&(Q=!0),r&&r.done&&c!==e.h.OLLAMA){if(v&&!Q){let a=(0,i.u9)();s?.appendConvertedChunk?.(a),f.enqueue(m.encode(a)),Q=!0,K++}if(v&&!S){let a="data: [DONE]\n\n";s?.appendConvertedChunk?.(a),f.enqueue(m.encode(a))}S=!0,v&&(R=!0);continue}if(r.delta?.text&&(F+=r.delta.text.length,G+=r.delta.text),r.delta?.thinking&&(F+=r.delta.thinking.length,H+=r.delta.thinking),r.choices?.[0]?.delta?.content&&(F+=r.choices[0].delta.content.length,G+=r.choices[0].delta.content),M&&z&&r.choices?.[0]?.delta?.content){let a=r.choices[0].delta.content,{message:b,hasTools:c}=z({role:"assistant",content:a});c&&(N=b.tool_calls,r.choices[0].delta.content=b.content||void 0,r.choices[0].delta.content||delete r.choices[0].delta.content,F-=a.length,G=G.slice(0,G.length-a.length),b.content&&(F+=b.content.length,G+=b.content))}if(r.choices?.[0]?.delta?.reasoning_content&&(F+=r.choices[0].delta.reasoning_content.length,H+=r.choices[0].delta.reasoning_content),r.candidates?.[0]?.content?.parts)for(let a of r.candidates[0].content.parts)a.text&&"string"==typeof a.text&&(F+=a.text.length,!0===a.thought?H+=a.text:G+=a.text);let y=(0,g.f5)(r);if(y&&(E.usage=(0,g._L)(E.usage,y)),v&&x){let a=(0,h.v8)({event:x,data:r},q);s?.appendConvertedChunk?.(a),f.enqueue(m.encode(a)),P=null,K++;continue}P=null;let A=(0,d.Y8)(c,q,r,E);if(A?._openaiIntermediate)for(let a of A._openaiIntermediate){let b=(0,h.v8)(a,e.h.OPENAI);s?.appendOpenAIChunk?.(b)}if(A?.length>0)for(let a of A){if(null==a)continue;let b="message_delta"===a.type||a.choices?.[0]?.finish_reason;if(N&&b&&q===e.h.OPENAI){l(f,N,E,u,q,s)&&(K++,O=!0);continue}if(!(0,h.c2)(a,q))continue;if(E.finishReason&&b&&!(0,g.Gh)(a.usage)&&F>0){let b=(0,g.OF)(w,F,q);a.usage=(0,g.WL)(b,q),E.usage=b}else if(E.finishReason&&b&&E.usage){let b=(0,g.O9)(E.usage);a.usage=(0,g.WL)(b,q)}let c=(0,h.v8)(a,q);s?.appendConvertedChunk?.(c),f.enqueue(m.encode(c)),K++}}},flush(a){let k=Object.entries(L).map(([a,b])=>`${a}=${b}`).join(",")||"none";(0,j.s)("SSE",`flush | provider=${r} | model=${u} | recvLines=${J} | emitted=${K} | events=[${k}]`),(0,f.uw)(u,r,v,!1);try{let j=D.decode();if(j&&(A+=j),b===o){if(A){let b=A;A.startsWith("data:")&&!A.startsWith("data: ")&&(b="data: "+A.slice(5)),s?.appendConvertedChunk?.(b),a.enqueue(m.encode(b))}!(0,g.Gh)(B)&&F>0&&(B=(0,g.OF)(w,F,e.h.OPENAI)),(0,g.Gh)(B)?(0,g.IF)(r,B,u,v,y):(0,f.E5)({model:u,provider:r,connectionId:v,tokens:null,status:"200 OK"}).catch(()=>{});let b="antigravity"===r||"gemini"===r||"vertex"===r;if(!S&&!b){let b="data: [DONE]\n\n";s?.appendConvertedChunk?.(b),a.enqueue(m.encode(b))}x&&x({content:G,thinking:H},B,I);return}if(A.trim()){let b=(0,h.tV)(A.trim());if(b&&!b.done){let f=(0,d.Y8)(c,q,b,E);if(f?._openaiIntermediate)for(let a of f._openaiIntermediate){let b=(0,h.v8)(a,e.h.OPENAI);s?.appendOpenAIChunk?.(b)}if(f?.length>0)for(let b of f){if(null==b)continue;let c=(0,h.v8)(b,q);s?.appendConvertedChunk?.(c),a.enqueue(m.encode(c))}}}let k=(0,d.Y8)(c,q,null,E);if(k?._openaiIntermediate)for(let a of k._openaiIntermediate){let b=(0,h.v8)(a,e.h.OPENAI);s?.appendOpenAIChunk?.(b)}if(k?.length>0)for(let b of k){if(null==b)continue;let c=(0,h.v8)(b,q);s?.appendConvertedChunk?.(c),a.enqueue(m.encode(c))}if(!O&&M&&z){let{hasTools:b,message:c}=z({role:"assistant",content:G});b&&l(a,c.tool_calls,E,u,q,s)&&(K++,O=!0)}let n=c===e.h.OPENAI_RESPONSES&&q===e.h.OPENAI_RESPONSES;if(n&&!Q){let b=(0,i.u9)();s?.appendConvertedChunk?.(b),a.enqueue(m.encode(b)),Q=!0}if(n&&!R&&!S){let b="data: [DONE]\n\n";s?.appendConvertedChunk?.(b),a.enqueue(m.encode(b)),R=!0,S=!0}!(0,g.Gh)(E?.usage)&&F>0&&(E.usage=(0,g.OF)(w,F,q)),(0,g.Gh)(E?.usage)?(0,g.IF)(E.provider||c,E.usage,u,v,y):(0,f.E5)({model:u,provider:r,connectionId:v,tokens:null,status:"200 OK"}).catch(()=>{}),x&&x({content:G,thinking:H},E?.usage,I)}catch(a){console.log("Error in flush:",a)}}})}function q(a,b,c=null,d=null,e=null,f=null,g=null,h=null,i=null,j=null,k=null){return p({mode:n,targetFormat:a,sourceFormat:b,provider:c,reqLogger:d,toolNameMap:e,model:f,connectionId:g,body:h,onStreamComplete:i,apiKey:j,normalizeKimiToolCalls:k})}function r(a=null,b=null,c=null,d=null,e=null,f=null,g=null,h=null){return p({mode:o,provider:a,reqLogger:b,model:c,connectionId:d,body:e,onStreamComplete:f,apiKey:g,normalizeKimiToolCalls:h})}},69188:(a,b,c)=>{c.d(b,{Nv:()=>m,O2:()=>n,SI:()=>l,cB:()=>o});var d=c(48117),e=c(40657),f=c(59463);function g(a){try{return new TextEncoder().encode(JSON.stringify(a)||"").length}catch{return 0}}function h(a){let b=function(a){if(Array.isArray(a?.messages))return a.messages;if(Array.isArray(a?.input))return a.input;let b=j(a);return b?b.messages:null}(a);return{bodyBytes:g(a),messageBytes:b?g(b):0}}function i(a,b){a&&!a.reason&&(a.reason=b)}function j(a){let b=a?.conversationState;if(!b||"object"!=typeof b)return null;let c=[],d=[],e=(a,b,e,f={})=>{"string"==typeof b&&(c.push({role:a,content:b,...f}),d.push(e))},f=a=>{let b=a?.userInputMessage;if(b){e("system",b.systemInstruction,{object:b,key:"systemInstruction"}),e("user",b.content,{object:b,key:"content"});let a=b.userInputMessageContext?.toolResults;if(Array.isArray(a))for(let b of a){let a=b?.content;if(Array.isArray(a))for(let c of a)e("tool",c?.text,{object:c,key:"text"},b?.toolUseId?{tool_call_id:b.toolUseId}:{})}return}let c=a?.assistantResponseMessage;if(c){let a=(a=>{if(!Array.isArray(a)||0===a.length)return;let b=a.map(a=>({id:a?.toolUseId,type:"function",function:{name:a?.name||"",arguments:JSON.stringify(a?.input||{})}})).filter(a=>a.id||a.function.name);return b.length>0?b:void 0})(c.toolUses);e("assistant",c.content,{object:c,key:"content"},a?{tool_calls:a}:{})}};if(Array.isArray(b.history))for(let a of b.history)f(a);return b.currentMessage&&f(b.currentMessage),c.length>0?{messages:c,targets:d}:null}async function k(a,b,c,d,e,f){let g,h=function(a){try{let b=new URL(a);return b.pathname=`${b.pathname.replace(/\/$/,"")}/v1/compress`,b.hash="",b.toString()}catch{let[b,c=""]=String(a).replace(/#.*$/,"").split("?",2),d=`${b.replace(/\/$/,"")}/v1/compress`;return c?`${d}?${c}`:d}}(a);f.endpoint=function(a){try{let b=new URL(a);return b.username="",b.password="",b.search="",b.hash="",b.toString()}catch{return String(a).replace(/\/\/[^/@\s]+@/,"//").replace(/[?#].*$/,"")}}(h);let j={messages:b,model:c};e&&(j.config={compress_user_messages:!0});try{g=await fetch(h,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(j),signal:AbortSignal.timeout(d)})}catch(d){var k;let a,b,c;return i(f,`request failed: ${(k=d,a=k?.cause,b=a?.code||k?.code,c=String(a?.message||k?.message||String(k)).replace(/\/\/[^/@\s]+@/g,"//").replace(/(https?:\/\/[^\s?#]+)[?#][^\s)]*/g,"$1"),b?`${b}: ${c}`:c)}`),null}if(!g.ok)return i(f,`proxy returned HTTP ${g.status}`),null;let l=await g.json();return Array.isArray(l?.messages)?l:(i(f,"proxy response missing messages[]"),null)}async function l(a,{enabled:b,url:c,model:g,format:m,compressUserMessages:n,timeoutMs:o=3e3,diagnostics:p=null}={}){if(!b)return i(p,"disabled"),null;if(!c)return i(p,"missing proxy URL"),null;if(!a)return i(p,"missing request body"),null;try{if(p&&(p.before=h(a)),"claude"===m){let b=(0,d.t)(g,a,!1);if(!Array.isArray(b?.messages))return i(p,"Claude request did not translate to messages[]"),null;let f=await k(c,b.messages,g,o,n,p||{});if(!f)return null;let j=(0,e.p)(g,{...b,messages:f.messages},!1);return Array.isArray(j?.messages)&&(a.messages=j.messages),j?.system!==void 0&&(a.system=j.system),p&&(p.after=h(a)),f}if("openai-responses"===m){if(Array.isArray(a?.input)&&a.input.some(a=>!(!a||"object"!=typeof a||Array.isArray(a))&&"string"==typeof a.type&&"message"!==a.type))return i(p,"skipped: openai-responses tool/reasoning input is not safe to compress"),null;let b=(0,f.Z)(g,a,!1);if(!Array.isArray(b?.messages))return null;let d=await k(c,b.messages,g,o,n,p||{});if(!d)return null;let e=(0,f.h)(g,{...b,input:void 0,messages:d.messages},!1);return Array.isArray(e?.input)&&(a.input=e.input),p&&(p.after=h(a)),d}if("kiro"===m){let b=j(a);if(!b)return i(p,"Kiro request did not project to messages[]"),null;let d=await k(c,b.messages,g,o,n,p||{});if(!d||!function(a,b,c){if(!Array.isArray(b)||b.length!==a.messages.length)return i(c,"proxy response did not match Kiro message count"),!1;let d=[];for(let e=0;e<a.messages.length;e++){let f=a.messages[e],g=b[e];if(!g||g.role!==f.role)return i(c,"proxy response did not preserve Kiro message order"),!1;let h=function(a){let b=a?.content;if("string"==typeof b)return b;if(!Array.isArray(b))return null;let c=[];for(let a of b)"string"==typeof a?c.push(a):"string"==typeof a?.text&&c.push(a.text);return c.length>0?c.join("\n"):null}(g);if(null===h)return i(c,"proxy response missing Kiro text content"),!1;d.push({target:a.targets[e],text:h})}for(let a of d)a.target.object[a.target.key]=a.text;return!0}(b,d.messages,p))return null;return p&&(p.after=h(a)),d}let b=Array.isArray(a.messages)?"messages":Array.isArray(a.input)?"input":null;if(!b)return i(p,`unsupported ${m||"unknown"} request shape`),null;let l=await k(c,a[b],g,o,n,p||{});if(!l)return null;return a[b]=l.messages,p&&(p.after=h(a)),l}catch(a){return i(p,`unexpected error: ${a?.message||String(a)}`),null}}function m(a){if(!a)return null;let b=a.tokens_before||0,c=a.tokens_after||0,d=a.tokens_saved||0,e=b>0?(d/b*100).toFixed(1):"0";return`reported token delta=${d} before=${b}${c?` after=${c}`:""} (${e}%)`.trim()}function n(a){let b=a?.before,c=a?.after;return b&&c?`body=${b.bodyBytes}B→${c.bodyBytes}B messages=${b.messageBytes}B→${c.messageBytes}B`:""}function o(a,b,c=.05){if(!a?.tokens_saved||a.tokens_saved<=0)return!1;let d=b?.before?.bodyBytes||0,e=b?.after?.bodyBytes||0;return!(d<=0)&&!(e<=0)&&e>=d*(1-c)}},72152:(a,b,c)=>{c.d(b,{BI:()=>F,fT:()=>H});let d=new Set(["node_modules",".git","target","__pycache__",".next","dist","build",".cache",".turbo",".vercel",".pytest_cache",".mypy_cache",".tox",".venv","venv","env","coverage",".nyc_output",".DS_Store","Thumbs.db",".idea",".vscode",".vs","*.egg-info",".eggs"]);function e(a,b=500){let c=[],d="",f=0,g=0,h=!1,i=0,j=0,k=!1;for(let e of a.split("\n")){if(e.startsWith("diff --git")){j>0&&(c.push(` ... (${j} lines truncated)`),k=!0,j=0),d&&(f>0||g>0)&&c.push(` +${f} -${g}`);let a=e.split(" b/");d=a.length>1?a.slice(1).join(" b/"):"unknown",c.push(`
|
|
@@ -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
|
-
`,f={_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",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"},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)"]},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 g(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
|
+
`,f={_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",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",apiKeyName:"TEXT",apiKey:"TEXT",endpoint:"TEXT",promptTokens:"INTEGER DEFAULT 0",completionTokens:"INTEGER DEFAULT 0",cost:"REAL DEFAULT 0",status:"TEXT",tokens:"TEXT",meta:"TEXT"},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)"]},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",apiKey:"TEXT",apiKeyName:"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 g(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
|
-
`,f={_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",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"},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)"]},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 g(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
|
+
`,f={_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",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",apiKeyName:"TEXT",apiKey:"TEXT",endpoint:"TEXT",promptTokens:"INTEGER DEFAULT 0",completionTokens:"INTEGER DEFAULT 0",cost:"REAL DEFAULT 0",status:"TEXT",tokens:"TEXT",meta:"TEXT"},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)"]},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",apiKey:"TEXT",apiKeyName:"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 g(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(", ")})`}}};
|