vansrouter 0.91.21 → 0.91.22
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 +17 -17
- 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 +6 -6
- 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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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-fitness/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-fitness/page_client-reference-manifest.js +1 -1
- 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.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.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.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.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.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.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.nft.json +1 -1
- package/app/.next-cli-build/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/_global-error.html +1 -1
- package/app/.next-cli-build/server/app/_global-error.rsc +1 -1
- package/app/.next-cli-build/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/_not-found/page.js.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 +3 -3
- package/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +3 -3
- 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 +3 -3
- 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 +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.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.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 +5 -5
- 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 +1 -1
- 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.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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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/devin-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/devin-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/grok-build-settings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/grok-build-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 +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/combos/[id]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/combos/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/combos/route.js +1 -1
- package/app/.next-cli-build/server/app/api/combos/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/headroom/extras/route.js.nft.json +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.nft.json +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.nft.json +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.nft.json +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.nft.json +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.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js.nft.json +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.nft.json +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.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.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/availability/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/catalog-sync/route.js.nft.json +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.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.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.nft.json +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.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/route.js.nft.json +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.nft.json +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.nft.json +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.nft.json +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.nft.json +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.nft.json +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.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/models/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/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.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/bulk/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/bulk/route.js.nft.json +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.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.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.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]/fitness/clear/route.js +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/[id]/fitness/clear/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 +1 -1
- 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 +1 -1
- 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/fitness/clear-all/route.js +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/fitness/clear-all/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/fitness/route.js +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/fitness/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 +1 -1
- 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.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/install/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/logs/route.js.nft.json +1 -1
- 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.nft.json +1 -1
- 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.nft.json +1 -1
- 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.nft.json +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.nft.json +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.nft.json +1 -1
- 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.nft.json +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.nft.json +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.nft.json +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.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js +2 -2
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/[connectionId]/codex-reset-credits/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/[connectionId]/codex-reset-credits/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/chart/route.js.nft.json +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.nft.json +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.nft.json +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.nft.json +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.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.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.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.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/videos/[id]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/videos/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/videos/edits/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/videos/edits/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/videos/extensions/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/videos/extensions/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/videos/generations/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/videos/generations/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.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.nft.json +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.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 +3 -3
- package/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +3 -3
- 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 +3 -3
- package/app/.next-cli-build/server/app/callback.segments/_tree.segment.rsc +1 -1
- 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 +5 -5
- 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 +5 -5
- 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 +3 -3
- package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/cli-tools.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/cli-tools.rsc +6 -6
- 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 +6 -6
- 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 +3 -3
- package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/combos.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/combos.rsc +5 -5
- 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 +5 -5
- 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 +3 -3
- package/app/.next-cli-build/server/app/dashboard/combos.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/endpoint.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/endpoint.rsc +6 -6
- 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 +6 -6
- 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 +3 -3
- package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_tree.segment.rsc +1 -1
- 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 +5 -5
- 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 +5 -5
- 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 +3 -3
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/mitm.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/mitm.rsc +5 -5
- 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 +5 -5
- 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 +3 -3
- package/app/.next-cli-build/server/app/dashboard/mitm.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/profile.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/profile.rsc +5 -5
- 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 +5 -5
- 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 +3 -3
- package/app/.next-cli-build/server/app/dashboard/profile.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/providers/new.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/providers/new.rsc +5 -5
- 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 +5 -5
- 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 +3 -3
- package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/providers.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/providers.rsc +5 -5
- 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 +5 -5
- 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 +3 -3
- package/app/.next-cli-build/server/app/dashboard/providers.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/proxy-fitness.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/proxy-fitness.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/proxy-fitness.segments/!KGRhc2hib2FyZCk/dashboard/proxy-fitness/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/proxy-fitness.segments/!KGRhc2hib2FyZCk/dashboard/proxy-fitness.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/proxy-fitness.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/proxy-fitness.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/proxy-fitness.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/proxy-fitness.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/proxy-fitness.segments/_index.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/proxy-fitness.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.rsc +5 -5
- 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 +5 -5
- 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 +3 -3
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/pxpipe.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/pxpipe.rsc +5 -5
- 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 +5 -5
- 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 +3 -3
- package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/quota.html +2 -2
- package/app/.next-cli-build/server/app/dashboard/quota.rsc +6 -6
- 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 +6 -6
- 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 +3 -3
- package/app/.next-cli-build/server/app/dashboard/quota.segments/_tree.segment.rsc +1 -1
- 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 +3 -3
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +3 -3
- 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 +3 -3
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +1 -1
- 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 +5 -5
- 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 +5 -5
- 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 +3 -3
- package/app/.next-cli-build/server/app/dashboard/skills.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/token-saver.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/token-saver.rsc +5 -5
- 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 +5 -5
- 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 +3 -3
- package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/translator.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/translator.rsc +5 -5
- 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 +5 -5
- 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 +3 -3
- package/app/.next-cli-build/server/app/dashboard/translator.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/usage.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/usage.rsc +5 -5
- 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 +5 -5
- 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 +3 -3
- package/app/.next-cli-build/server/app/dashboard/usage.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard.html +1 -1
- package/app/.next-cli-build/server/app/dashboard.rsc +5 -5
- 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 +5 -5
- 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 +3 -3
- package/app/.next-cli-build/server/app/dashboard.segments/_tree.segment.rsc +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.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 +3 -3
- package/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +3 -3
- 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 +3 -3
- package/app/.next-cli-build/server/app/landing.segments/_tree.segment.rsc +1 -1
- 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.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 +4 -4
- package/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +4 -4
- 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 +3 -3
- package/app/.next-cli-build/server/app/login.segments/_tree.segment.rsc +1 -1
- 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.nft.json +1 -1
- package/app/.next-cli-build/server/app/masuk/page.js +1 -1
- 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 +17 -17
- package/app/.next-cli-build/server/chunks/1685.js +2 -2
- package/app/.next-cli-build/server/chunks/1688.js +2 -2
- package/app/.next-cli-build/server/chunks/2411.js +1 -1
- package/app/.next-cli-build/server/chunks/2445.js +1 -1
- package/app/.next-cli-build/server/chunks/2549.js +1 -0
- package/app/.next-cli-build/server/chunks/2557.js +4 -10
- package/app/.next-cli-build/server/chunks/2764.js +1 -1
- package/app/.next-cli-build/server/chunks/2927.js +2 -2
- package/app/.next-cli-build/server/chunks/3040.js +2 -2
- package/app/.next-cli-build/server/chunks/32.js +2 -2
- package/app/.next-cli-build/server/chunks/3405.js +1 -1
- package/app/.next-cli-build/server/chunks/3519.js +1 -1
- package/app/.next-cli-build/server/chunks/3736.js +1 -1
- package/app/.next-cli-build/server/chunks/3787.js +1 -1
- package/app/.next-cli-build/server/chunks/4004.js +1 -1
- package/app/.next-cli-build/server/chunks/4029.js +2 -2
- package/app/.next-cli-build/server/chunks/4105.js +1 -1
- package/app/.next-cli-build/server/chunks/4502.js +13 -13
- package/app/.next-cli-build/server/chunks/4539.js +2 -2
- package/app/.next-cli-build/server/chunks/4574.js +44 -44
- package/app/.next-cli-build/server/chunks/4836.js +1 -1
- package/app/.next-cli-build/server/chunks/5006.js +1 -1
- package/app/.next-cli-build/server/chunks/5009.js +1 -1
- package/app/.next-cli-build/server/chunks/5050.js +1 -1
- package/app/.next-cli-build/server/chunks/5198.js +1 -1
- package/app/.next-cli-build/server/chunks/5302.js +1 -1
- package/app/.next-cli-build/server/chunks/5538.js +1 -0
- package/app/.next-cli-build/server/chunks/5598.js +1 -1
- package/app/.next-cli-build/server/chunks/6165.js +1 -1
- package/app/.next-cli-build/server/chunks/622.js +1 -0
- package/app/.next-cli-build/server/chunks/635.js +1 -0
- package/app/.next-cli-build/server/chunks/6385.js +1 -1
- package/app/.next-cli-build/server/chunks/6723.js +1 -1
- package/app/.next-cli-build/server/chunks/7006.js +2 -2
- package/app/.next-cli-build/server/chunks/7104.js +1 -1
- package/app/.next-cli-build/server/chunks/7425.js +1 -1
- package/app/.next-cli-build/server/chunks/7693.js +2 -2
- package/app/.next-cli-build/server/chunks/7938.js +2 -2
- package/app/.next-cli-build/server/chunks/7950.js +1 -1
- package/app/.next-cli-build/server/chunks/8691.js +2 -2
- package/app/.next-cli-build/server/chunks/8695.js +1 -1
- package/app/.next-cli-build/server/chunks/8772.js +1 -0
- package/app/.next-cli-build/server/chunks/912.js +1 -1
- package/app/.next-cli-build/server/chunks/9770.js +1 -0
- package/app/.next-cli-build/server/chunks/9784.js +1 -1
- package/app/.next-cli-build/server/chunks/9808.js +7 -0
- package/app/.next-cli-build/server/chunks/9974.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 +3 -3
- package/app/.next-cli-build/server/pages/404.html +1 -1
- package/app/.next-cli-build/server/pages/500.html +1 -1
- package/app/.next-cli-build/server/server-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/server-reference-manifest.json +1 -1
- package/app/.next-cli-build/static/chunks/1049.aa4f733370082c0d.js +7 -0
- package/app/.next-cli-build/static/chunks/{2940-b6dd0c5879412cea.js → 2940-0706a20a7c56dae1.js} +1 -1
- package/app/.next-cli-build/static/chunks/4385-8a145d343c888113.js +1 -0
- package/app/.next-cli-build/static/chunks/4964.6c8742ba86d45244.js +7 -0
- package/app/.next-cli-build/static/chunks/{5331.049b1512362de1f4.js → 5331.6cd97e3af09b08eb.js} +1 -1
- package/app/.next-cli-build/static/chunks/5479-0397a316e918cfaf.js +1 -0
- package/app/.next-cli-build/static/chunks/{9131-f4afa0414d45c1d1.js → 9131-e475ca6f20af6320.js} +1 -1
- package/app/.next-cli-build/static/chunks/{webpack-81a7adaed327dd6b.js → webpack-092d669f441fbd84.js} +1 -1
- package/app/custom-server.js +37 -37
- package/app/package.json +1 -3
- package/app/src/lib/db/adapters/betterSqliteAdapter.js +12 -4
- package/app/src/lib/db/adapters/nodeSqliteAdapter.js +12 -3
- package/app/src/lib/db/adapters/sqljsAdapter.js +13 -6
- package/app/src/lib/db/migrate.js +299 -299
- package/app/src/shared/services/quotaAutoPing.js +313 -313
- package/hooks/sqliteRuntime.js +188 -188
- package/package.json +1 -1
- package/src/cli/api/client.js +556 -556
- package/src/cli/commands/xaiVideo.js +300 -300
- package/src/cli/menus/combos.js +0 -103
- package/src/cli/menus/providers.js +868 -858
- package/src/cli/menus/settings.js +204 -204
- package/src/cli/utils/modelSelector.js +189 -51
- package/app/.next-cli-build/server/chunks/2732.js +0 -1
- package/app/.next-cli-build/server/chunks/3539.js +0 -1
- package/app/.next-cli-build/server/chunks/4816.js +0 -1
- package/app/.next-cli-build/server/chunks/6793.js +0 -1
- package/app/.next-cli-build/server/chunks/6931.js +0 -1
- package/app/.next-cli-build/server/chunks/9162.js +0 -1
- package/app/.next-cli-build/server/chunks/9614.js +0 -7
- package/app/.next-cli-build/server/chunks/9787.js +0 -1
- package/app/.next-cli-build/static/chunks/1049.adc9916d5a6b95f8.js +0 -7
- package/app/.next-cli-build/static/chunks/4385-ce7b55264de51d47.js +0 -1
- package/app/.next-cli-build/static/chunks/5479-20746781c1de7eb2.js +0 -1
- package/app/.next-cli-build/static/chunks/9078.ea6aeb4af0c25e5d.js +0 -7
- /package/app/.next-cli-build/static/{yvUSImiXUeMIOPHHzKVq_ → 4VmP0yWnLncSA5CQqLYsu}/_buildManifest.js +0 -0
- /package/app/.next-cli-build/static/{yvUSImiXUeMIOPHHzKVq_ → 4VmP0yWnLncSA5CQqLYsu}/_ssgManifest.js +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
"use strict";exports.id=7693,exports.ids=[7693],exports.modules={37693:(a,b,c)=>{c.d(b,{runMigrationOnce:()=>x});var d=c(73024),e=c.n(d),f=c(76760),g=c.n(f),h=c(73468),i=c(78785);let j=[{version:1,name:"initial",up(a){for(let[b,c]of Object.entries(i.CG))for(let d of(a.exec((0,i.zE)(b,c)),c.indexes||[]))a.exec(d)}},{version:2,name:"fix-empty-allowed-lists",up(a){let b=a.all("PRAGMA table_info(apiKeys)"),c=Array.isArray(b)?b.map(a=>a.name):[];c.includes("allowedProviders")&&a.exec("UPDATE apiKeys SET allowedProviders = NULL WHERE allowedProviders = '[]'"),c.includes("allowedCombos")&&a.exec("UPDATE apiKeys SET allowedCombos = NULL WHERE allowedCombos = '[]'"),c.includes("allowedKinds")&&a.exec("UPDATE apiKeys SET allowedKinds = NULL WHERE allowedKinds = '[]'")}},{version:3,name:"add-allowed-lists-columns",up(a){let b=a.all("PRAGMA table_info(apiKeys)"),c=Array.isArray(b)?b.map(a=>a.name):[];c.includes("allowedProviders")||a.exec("ALTER TABLE apiKeys ADD COLUMN allowedProviders TEXT"),c.includes("allowedCombos")||a.exec("ALTER TABLE apiKeys ADD COLUMN allowedCombos TEXT"),c.includes("allowedKinds")||a.exec("ALTER TABLE apiKeys ADD COLUMN allowedKinds TEXT")}},{version:4,name:"add-request-details-apikey",up(a){let b=new Set(a.all("PRAGMA table_info(requestDetails)").map(a=>a.name));b.has("apiKey")||a.exec("ALTER TABLE requestDetails ADD COLUMN apiKey TEXT"),b.has("apiKeyName")||a.exec("ALTER TABLE requestDetails ADD COLUMN apiKeyName TEXT")}},{version:7,name:"add-combo-context-length",up(a){a.all("PRAGMA table_info(combos)").some(a=>"context_length"===a.name)||a.exec("ALTER TABLE combos ADD COLUMN context_length INTEGER")}},{version:8,name:"add-proxy-pool-fitness",up(a){let b=i.CG.proxyPoolFitness;for(let c of(a.exec((0,i.zE)("proxyPoolFitness",b)),b.indexes||[]))a.exec(c)}}].sort((a,b)=>a.version-b.version);function k(a,b,c=null){let d=a.get("SELECT value FROM _meta WHERE key = ?",[b]);return d?d.value:c}function l(a,b,c){a.run("INSERT INTO _meta(key, value) VALUES(?, ?) ON CONFLICT(key) DO UPDATE SET value = excluded.value",[b,String(c)])}let m=null;function n(){if(m)return m;try{let a=g().join(process.cwd(),"package.json");m=JSON.parse(e().readFileSync(a,"utf-8")).version||"0.0.0"}catch{m="0.0.0"}return m}let o=["requestDetails"];function p(a){(0,h.Jh)();let b=n(),c=`${a}-${b}-${function(a=new Date){let b=a=>String(a).padStart(2,"0");return`${a.getFullYear()}${b(a.getMonth()+1)}${b(a.getDate())}-${b(a.getHours())}${b(a.getMinutes())}${b(a.getSeconds())}`}()}`,d=g().join(h.KQ,c);return e().mkdirSync(d,{recursive:!0}),d}function q(){if(e().existsSync(h.KQ))for(let a of e().readdirSync(h.KQ,{withFileTypes:!0}).filter(a=>a.isDirectory()).map(a=>({name:a.name,full:g().join(h.KQ,a.name),mtime:e().statSync(g().join(h.KQ,a.name)).mtimeMs})).sort((a,b)=>b.mtime-a.mtime).slice(3))try{e().rmSync(a.full,{recursive:!0,force:!0})}catch{}}var r=c(90118);let s=g().join(h.HG,".migrated-from-json"),t=new WeakSet;class u extends Error{constructor(a,b){super(a),this.name="MigrationAborted",this.droppedRows=b}}function v(a,b,c,d,e){let f=[];for(let a of c)try{d(a)}catch(b){f.push({...e(a),reason:b.message})}let g=a.get(`SELECT COUNT(*) as c FROM ${b}`)?.c??0;if(g!==c.length)throw console.warn(`[DB][migrate] ${b} row-count mismatch: expected ${c.length}, got ${g}. Dropped:`,f),new u(`${b} row-count mismatch: expected ${c.length}, got ${g}`,f)}function w(a){if(!e().existsSync(a))return null;try{return JSON.parse(e().readFileSync(a,"utf-8"))}catch{return null}}async function x(a){if(t.has(a))return;let b=function(a){try{let b=a.get("SELECT COUNT(*) as c FROM _meta");return!b||0===b.c}catch{return!0}}(a);q(),a.exec((0,i.zE)("_meta",i.CG._meta));let c=parseInt(k(a,"backupSchemaVersion","0"),10)||0;if(!b&&c<i.f$)try{let b=p(`schema-${c}-to-${i.f$}`);!function(a,b,c="data.sqlite"){let d=g().join(b,c);try{e().rmSync(d,{force:!0})}catch{}let f=d.replace(/'/g,"''");a.exec(`ATTACH DATABASE '${f}' AS bak`);try{let b=new Set(o),c=a.all("SELECT name, sql FROM main.sqlite_master WHERE type='table' AND name NOT LIKE 'sqlite_%'").filter(a=>!b.has(a.name));a.transaction(()=>{for(let b of c){let c=b.sql.replace(/CREATE TABLE\s+/i,"CREATE TABLE bak.");a.exec(c),a.exec(`INSERT INTO bak.${b.name} SELECT * FROM main.${b.name}`)}})}finally{try{a.exec("DETACH DATABASE bak")}catch{}}}(a,b),q(),console.log(`[DB][migrate] pre-schema backup ${c} → ${i.f$}: ${b}`)}catch(a){console.warn(`[DB][migrate] pre-schema backup failed (continuing): ${a.message}`)}!function(a){a.exec((0,i.zE)("_meta",i.CG._meta));let b=parseInt(k(a,"schemaVersion","0"),10)||0;if(b>=(j.length?j[j.length-1].version:0))return;let c=j.filter(a=>a.version>b);for(let b of c)a.transaction(()=>{b.up(a),l(a,"schemaVersion",b.version)}),b.version,console.log(`[DB][migrate] applied #${b.version} ${b.name}`);c.length}(a);for(let[b,c]of Object.entries(i.CG)){a.exec((0,i.zE)(b,c));let d=new Set(a.all(`PRAGMA table_info(${b})`).map(a=>a.name));for(let[e,f]of Object.entries(c.columns))if(!d.has(e)){let c=f.replace(/PRIMARY KEY( AUTOINCREMENT)?/i,"").replace(/UNIQUE/i,"").trim();try{a.exec(`ALTER TABLE ${b} ADD COLUMN ${e} ${c}`),console.log(`[DB][sync] +column ${b}.${e}`)}catch(a){console.warn(`[DB][sync] add column ${b}.${e} failed: ${a.message}`)}}for(let b of c.indexes||[])try{a.exec(b)}catch{}}l(a,"backupSchemaVersion",i.f$);let d=e().existsSync(s),f=w(h.Or.main),m=w(h.Or.usage),x=w(h.Or.disabled),y=w(h.Or.details);if(b&&(f||m||x||y)&&!d){let b=Date.now(),c=p("migrate-from-json");for(let a of Object.values(h.Or))!function(a,b,c=null){if(!e().existsSync(a))return;let d=c||g().basename(a),f=g().join(b,d);e().copyFileSync(a,f)}(a,c);try{a.transaction(()=>{if(f&&"object"==typeof f){for(let[b,c]of(f.settings&&a.run("INSERT INTO settings(id, data) VALUES(1, ?) ON CONFLICT(id) DO UPDATE SET data = excluded.data",[(0,r.s)(f.settings)]),v(a,"providerConnections",f.providerConnections||[],b=>{let{id:c,provider:d,authType:e,name:f,email:g,priority:h,isActive:i,createdAt:j,updatedAt:k,...l}=b;a.run("INSERT OR REPLACE INTO providerConnections(id, provider, authType, name, email, priority, isActive, data, createdAt, updatedAt) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?)",[c,d,e||"oauth",f||null,g||null,h||null,+(!1!==i),(0,r.s)(l),j||new Date().toISOString(),k||new Date().toISOString()])},a=>({id:a.id??null,provider:a.provider??null,name:a.name??null})),v(a,"providerNodes",f.providerNodes||[],b=>{let{id:c,type:d,name:e,createdAt:f,updatedAt:g,...h}=b;a.run("INSERT OR REPLACE INTO providerNodes(id, type, name, data, createdAt, updatedAt) VALUES(?, ?, ?, ?, ?, ?)",[c,d||null,e||null,(0,r.s)(h),f||new Date().toISOString(),g||new Date().toISOString()])},a=>({id:a.id??null,type:a.type??null,name:a.name??null})),v(a,"proxyPools",f.proxyPools||[],b=>{let{id:c,isActive:d,testStatus:e,createdAt:f,updatedAt:g,...h}=b;a.run("INSERT OR REPLACE INTO proxyPools(id, isActive, testStatus, data, createdAt, updatedAt) VALUES(?, ?, ?, ?, ?, ?)",[c,+(!1!==d),e||"unknown",(0,r.s)(h),f||new Date().toISOString(),g||new Date().toISOString()])},a=>({id:a.id??null})),v(a,"apiKeys",f.apiKeys||[],b=>{a.run("INSERT OR REPLACE INTO apiKeys(id, key, name, machineId, isActive, createdAt) VALUES(?, ?, ?, ?, ?, ?)",[b.id,b.key,b.name||null,b.machineId||null,+(!1!==b.isActive),b.createdAt||new Date().toISOString()])},a=>({id:a.id??null,name:a.name??null})),v(a,"combos",f.combos||[],b=>{a.run("INSERT OR REPLACE INTO combos(id, name, kind, models, context_length, createdAt, updatedAt) VALUES(?, ?, ?, ?, ?, ?, ?)",[b.id,b.name,b.kind||null,(0,r.s)(b.models||[]),b.context_length??null,b.createdAt||new Date().toISOString(),b.updatedAt||new Date().toISOString()])},a=>({id:a.id??null,name:a.name??null})),Object.entries(f.modelAliases||{})))a.run("INSERT OR REPLACE INTO kv(scope, key, value) VALUES('modelAliases', ?, ?)",[b,(0,r.s)(c)]);for(let b of f.customModels||[]){let c=`${b.providerAlias}|${b.id}|${b.type||"llm"}`;a.run("INSERT OR REPLACE INTO kv(scope, key, value) VALUES('customModels', ?, ?)",[c,(0,r.s)(b)])}for(let[b,c]of Object.entries(f.mitmAlias||{}))a.run("INSERT OR REPLACE INTO kv(scope, key, value) VALUES('mitmAlias', ?, ?)",[b,(0,r.s)(c||{})]);for(let[b,c]of Object.entries(f.pricing||{}))a.run("INSERT OR REPLACE INTO kv(scope, key, value) VALUES('pricing', ?, ?)",[b,(0,r.s)(c||{})])}if(m&&"object"==typeof m){for(let b of m.history||[]){let c=b.tokens||{};a.run("INSERT INTO usageHistory(timestamp, provider, model, connectionId, apiKey, endpoint, promptTokens, completionTokens, cost, status, tokens, meta) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)",[b.timestamp||new Date().toISOString(),b.provider||null,b.model||null,b.connectionId||null,b.apiKey||null,b.endpoint||null,c.prompt_tokens||c.input_tokens||0,c.completion_tokens||c.output_tokens||0,b.cost||0,b.status||"ok",(0,r.s)(c),(0,r.s)({})])}for(let[b,c]of Object.entries(m.dailySummary||{}))a.run("INSERT OR REPLACE INTO usageDaily(dateKey, data) VALUES(?, ?)",[b,(0,r.s)(c)]);"number"==typeof m.totalRequestsLifetime&&l(a,"totalRequestsLifetime",m.totalRequestsLifetime)}if(x&&"object"==typeof x.disabled)for(let[b,c]of Object.entries(x.disabled))a.run("INSERT OR REPLACE INTO kv(scope, key, value) VALUES('disabledModels', ?, ?)",[b,(0,r.s)(c||[])]);if(y&&Array.isArray(y.records))for(let b of y.records)a.run("INSERT OR REPLACE INTO requestDetails(id, timestamp, provider, model, connectionId, status, data) VALUES(?, ?, ?, ?, ?, ?, ?)",[b.id,b.timestamp||new Date().toISOString(),b.provider||null,b.model||null,b.connectionId||null,b.status||null,(0,r.s)(b)]);l(a,"appVersion",n()),l(a,"backupSchemaVersion",i.f$),l(a,"migratedAt",new Date().toISOString())})}catch(b){if(t.delete(a),b instanceof u)return void console.error(`[DB][migrate] aborted: ${b.message} | legacy JSON kept | backup: ${c}`);throw b}try{e().writeFileSync(s,new Date().toISOString())}catch{}t.add(a),q(),console.log(`[DB][migrate] JSON → SQLite in ${Date.now()-b}ms | legacy JSON kept at DATA_DIR | backup: ${c}`);return}let z=n();k(a,"appVersion",null)!==z&&l(a,"appVersion",z),t.add(a)}},78785:(a,b,c)=>{c.d(b,{CG:()=>f,f$:()=>d,oG:()=>e,zE:()=>g});let d=8,e=`
|
|
1
|
+
"use strict";exports.id=7693,exports.ids=[7693],exports.modules={37693:(a,b,c)=>{c.d(b,{runMigrationOnce:()=>x});var d=c(73024),e=c.n(d),f=c(76760),g=c.n(f),h=c(73468),i=c(78785);let j=[{version:1,name:"initial",up(a){for(let[b,c]of Object.entries(i.CG))for(let d of(a.exec((0,i.zE)(b,c)),c.indexes||[]))a.exec(d)}},{version:2,name:"fix-empty-allowed-lists",up(a){let b=a.all("PRAGMA table_info(apiKeys)"),c=Array.isArray(b)?b.map(a=>a.name):[];c.includes("allowedProviders")&&a.exec("UPDATE apiKeys SET allowedProviders = NULL WHERE allowedProviders = '[]'"),c.includes("allowedCombos")&&a.exec("UPDATE apiKeys SET allowedCombos = NULL WHERE allowedCombos = '[]'"),c.includes("allowedKinds")&&a.exec("UPDATE apiKeys SET allowedKinds = NULL WHERE allowedKinds = '[]'")}},{version:3,name:"add-allowed-lists-columns",up(a){let b=a.all("PRAGMA table_info(apiKeys)"),c=Array.isArray(b)?b.map(a=>a.name):[];c.includes("allowedProviders")||a.exec("ALTER TABLE apiKeys ADD COLUMN allowedProviders TEXT"),c.includes("allowedCombos")||a.exec("ALTER TABLE apiKeys ADD COLUMN allowedCombos TEXT"),c.includes("allowedKinds")||a.exec("ALTER TABLE apiKeys ADD COLUMN allowedKinds TEXT")}},{version:4,name:"add-request-details-apikey",up(a){let b=new Set(a.all("PRAGMA table_info(requestDetails)").map(a=>a.name));b.has("apiKey")||a.exec("ALTER TABLE requestDetails ADD COLUMN apiKey TEXT"),b.has("apiKeyName")||a.exec("ALTER TABLE requestDetails ADD COLUMN apiKeyName TEXT")}},{version:7,name:"add-combo-context-length",up(a){a.all("PRAGMA table_info(combos)").some(a=>"context_length"===a.name)||a.exec("ALTER TABLE combos ADD COLUMN context_length INTEGER")}},{version:8,name:"add-proxy-pool-fitness",up(a){let b=i.CG.proxyPoolFitness;for(let c of(a.exec((0,i.zE)("proxyPoolFitness",b)),b.indexes||[]))a.exec(c)}}].sort((a,b)=>a.version-b.version);function k(a,b,c=null){let d=a.get("SELECT value FROM _meta WHERE key = ?",[b]);return d?d.value:c}function l(a,b,c){a.run("INSERT INTO _meta(key, value) VALUES(?, ?) ON CONFLICT(key) DO UPDATE SET value = excluded.value",[b,String(c)])}let m=null;function n(){if(m)return m;try{let a=g().join(process.cwd(),"package.json");m=JSON.parse(e().readFileSync(a,"utf-8")).version||"0.0.0"}catch{m="0.0.0"}return m}let o=["requestDetails"];function p(a){(0,h.Jh)();let b=n(),c=`${a}-${b}-${function(a=new Date){let b=a=>String(a).padStart(2,"0");return`${a.getFullYear()}${b(a.getMonth()+1)}${b(a.getDate())}-${b(a.getHours())}${b(a.getMinutes())}${b(a.getSeconds())}`}()}`,d=g().join(h.KQ,c);return e().mkdirSync(d,{recursive:!0}),d}function q(){if(e().existsSync(h.KQ))for(let a of e().readdirSync(h.KQ,{withFileTypes:!0}).filter(a=>a.isDirectory()).map(a=>({name:a.name,full:g().join(h.KQ,a.name),mtime:e().statSync(g().join(h.KQ,a.name)).mtimeMs})).sort((a,b)=>b.mtime-a.mtime).slice(1))try{e().rmSync(a.full,{recursive:!0,force:!0})}catch{}}var r=c(90118);let s=g().join(h.HG,".migrated-from-json"),t=new WeakSet;class u extends Error{constructor(a,b){super(a),this.name="MigrationAborted",this.droppedRows=b}}function v(a,b,c,d,e){let f=[];for(let a of c)try{d(a)}catch(b){f.push({...e(a),reason:b.message})}let g=a.get(`SELECT COUNT(*) as c FROM ${b}`)?.c??0;if(g!==c.length)throw console.warn(`[DB][migrate] ${b} row-count mismatch: expected ${c.length}, got ${g}. Dropped:`,f),new u(`${b} row-count mismatch: expected ${c.length}, got ${g}`,f)}function w(a){if(!e().existsSync(a))return null;try{return JSON.parse(e().readFileSync(a,"utf-8"))}catch{return null}}async function x(a){if(t.has(a))return;let b=function(a){try{let b=a.get("SELECT COUNT(*) as c FROM _meta");return!b||0===b.c}catch{return!0}}(a);q(),a.exec((0,i.zE)("_meta",i.CG._meta));let c=parseInt(k(a,"backupSchemaVersion","0"),10)||0;if(!b&&c<i.f$)try{let b=p(`schema-${c}-to-${i.f$}`);!function(a,b,c="data.sqlite"){let d=g().join(b,c);try{e().rmSync(d,{force:!0})}catch{}let f=d.replace(/'/g,"''");a.exec(`ATTACH DATABASE '${f}' AS bak`);try{let b=new Set(o),c=a.all("SELECT name, sql FROM main.sqlite_master WHERE type='table' AND name NOT LIKE 'sqlite_%'").filter(a=>!b.has(a.name));a.transaction(()=>{for(let b of c){let c=b.sql.replace(/CREATE TABLE\s+/i,"CREATE TABLE bak.");a.exec(c),a.exec(`INSERT INTO bak.${b.name} SELECT * FROM main.${b.name}`)}})}finally{try{a.exec("DETACH DATABASE bak")}catch{}}}(a,b),q(),console.log(`[DB][migrate] pre-schema backup ${c} → ${i.f$}: ${b}`)}catch(a){console.warn(`[DB][migrate] pre-schema backup failed (continuing): ${a.message}`)}!function(a){a.exec((0,i.zE)("_meta",i.CG._meta));let b=parseInt(k(a,"schemaVersion","0"),10)||0;if(b>=(j.length?j[j.length-1].version:0))return;let c=j.filter(a=>a.version>b);for(let b of c)a.transaction(()=>{b.up(a),l(a,"schemaVersion",b.version)}),b.version,console.log(`[DB][migrate] applied #${b.version} ${b.name}`);c.length}(a);for(let[b,c]of Object.entries(i.CG)){a.exec((0,i.zE)(b,c));let d=new Set(a.all(`PRAGMA table_info(${b})`).map(a=>a.name));for(let[e,f]of Object.entries(c.columns))if(!d.has(e)){let c=f.replace(/PRIMARY KEY( AUTOINCREMENT)?/i,"").replace(/UNIQUE/i,"").trim();try{a.exec(`ALTER TABLE ${b} ADD COLUMN ${e} ${c}`),console.log(`[DB][sync] +column ${b}.${e}`)}catch(a){console.warn(`[DB][sync] add column ${b}.${e} failed: ${a.message}`)}}for(let b of c.indexes||[])try{a.exec(b)}catch{}}l(a,"backupSchemaVersion",i.f$);let d=e().existsSync(s),f=w(h.Or.main),m=w(h.Or.usage),x=w(h.Or.disabled),y=w(h.Or.details);if(b&&(f||m||x||y)&&!d){let b=Date.now(),c=p("migrate-from-json");for(let a of Object.values(h.Or))!function(a,b,c=null){if(!e().existsSync(a))return;let d=c||g().basename(a),f=g().join(b,d);e().copyFileSync(a,f)}(a,c);try{a.transaction(()=>{if(f&&"object"==typeof f){for(let[b,c]of(f.settings&&a.run("INSERT INTO settings(id, data) VALUES(1, ?) ON CONFLICT(id) DO UPDATE SET data = excluded.data",[(0,r.s)(f.settings)]),v(a,"providerConnections",f.providerConnections||[],b=>{let{id:c,provider:d,authType:e,name:f,email:g,priority:h,isActive:i,createdAt:j,updatedAt:k,...l}=b;a.run("INSERT OR REPLACE INTO providerConnections(id, provider, authType, name, email, priority, isActive, data, createdAt, updatedAt) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?)",[c,d,e||"oauth",f||null,g||null,h||null,+(!1!==i),(0,r.s)(l),j||new Date().toISOString(),k||new Date().toISOString()])},a=>({id:a.id??null,provider:a.provider??null,name:a.name??null})),v(a,"providerNodes",f.providerNodes||[],b=>{let{id:c,type:d,name:e,createdAt:f,updatedAt:g,...h}=b;a.run("INSERT OR REPLACE INTO providerNodes(id, type, name, data, createdAt, updatedAt) VALUES(?, ?, ?, ?, ?, ?)",[c,d||null,e||null,(0,r.s)(h),f||new Date().toISOString(),g||new Date().toISOString()])},a=>({id:a.id??null,type:a.type??null,name:a.name??null})),v(a,"proxyPools",f.proxyPools||[],b=>{let{id:c,isActive:d,testStatus:e,createdAt:f,updatedAt:g,...h}=b;a.run("INSERT OR REPLACE INTO proxyPools(id, isActive, testStatus, data, createdAt, updatedAt) VALUES(?, ?, ?, ?, ?, ?)",[c,+(!1!==d),e||"unknown",(0,r.s)(h),f||new Date().toISOString(),g||new Date().toISOString()])},a=>({id:a.id??null})),v(a,"apiKeys",f.apiKeys||[],b=>{a.run("INSERT OR REPLACE INTO apiKeys(id, key, name, machineId, isActive, createdAt) VALUES(?, ?, ?, ?, ?, ?)",[b.id,b.key,b.name||null,b.machineId||null,+(!1!==b.isActive),b.createdAt||new Date().toISOString()])},a=>({id:a.id??null,name:a.name??null})),v(a,"combos",f.combos||[],b=>{a.run("INSERT OR REPLACE INTO combos(id, name, kind, models, context_length, createdAt, updatedAt) VALUES(?, ?, ?, ?, ?, ?, ?)",[b.id,b.name,b.kind||null,(0,r.s)(b.models||[]),b.context_length??null,b.createdAt||new Date().toISOString(),b.updatedAt||new Date().toISOString()])},a=>({id:a.id??null,name:a.name??null})),Object.entries(f.modelAliases||{})))a.run("INSERT OR REPLACE INTO kv(scope, key, value) VALUES('modelAliases', ?, ?)",[b,(0,r.s)(c)]);for(let b of f.customModels||[]){let c=`${b.providerAlias}|${b.id}|${b.type||"llm"}`;a.run("INSERT OR REPLACE INTO kv(scope, key, value) VALUES('customModels', ?, ?)",[c,(0,r.s)(b)])}for(let[b,c]of Object.entries(f.mitmAlias||{}))a.run("INSERT OR REPLACE INTO kv(scope, key, value) VALUES('mitmAlias', ?, ?)",[b,(0,r.s)(c||{})]);for(let[b,c]of Object.entries(f.pricing||{}))a.run("INSERT OR REPLACE INTO kv(scope, key, value) VALUES('pricing', ?, ?)",[b,(0,r.s)(c||{})])}if(m&&"object"==typeof m){for(let b of m.history||[]){let c=b.tokens||{};a.run("INSERT INTO usageHistory(timestamp, provider, model, connectionId, apiKey, endpoint, promptTokens, completionTokens, cost, status, tokens, meta) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)",[b.timestamp||new Date().toISOString(),b.provider||null,b.model||null,b.connectionId||null,b.apiKey||null,b.endpoint||null,c.prompt_tokens||c.input_tokens||0,c.completion_tokens||c.output_tokens||0,b.cost||0,b.status||"ok",(0,r.s)(c),(0,r.s)({})])}for(let[b,c]of Object.entries(m.dailySummary||{}))a.run("INSERT OR REPLACE INTO usageDaily(dateKey, data) VALUES(?, ?)",[b,(0,r.s)(c)]);"number"==typeof m.totalRequestsLifetime&&l(a,"totalRequestsLifetime",m.totalRequestsLifetime)}if(x&&"object"==typeof x.disabled)for(let[b,c]of Object.entries(x.disabled))a.run("INSERT OR REPLACE INTO kv(scope, key, value) VALUES('disabledModels', ?, ?)",[b,(0,r.s)(c||[])]);if(y&&Array.isArray(y.records))for(let b of y.records)a.run("INSERT OR REPLACE INTO requestDetails(id, timestamp, provider, model, connectionId, status, data) VALUES(?, ?, ?, ?, ?, ?, ?)",[b.id,b.timestamp||new Date().toISOString(),b.provider||null,b.model||null,b.connectionId||null,b.status||null,(0,r.s)(b)]);l(a,"appVersion",n()),l(a,"backupSchemaVersion",i.f$),l(a,"migratedAt",new Date().toISOString())})}catch(b){if(t.delete(a),b instanceof u)return void console.error(`[DB][migrate] aborted: ${b.message} | legacy JSON kept | backup: ${c}`);throw b}try{e().writeFileSync(s,new Date().toISOString())}catch{}t.add(a),q(),console.log(`[DB][migrate] JSON → SQLite in ${Date.now()-b}ms | legacy JSON kept at DATA_DIR | backup: ${c}`);return}let z=n();k(a,"appVersion",null)!==z&&l(a,"appVersion",z),t.add(a)}},78785:(a,b,c)=>{c.d(b,{CG:()=>f,f$:()=>d,oG:()=>e,zE:()=>g});let d=8,e=`
|
|
2
2
|
PRAGMA journal_mode = WAL;
|
|
3
|
-
PRAGMA synchronous = NORMAL;
|
|
3
|
+
PRAGMA synchronous = ${process.env.SQLITE_SYNCHRONOUS||"NORMAL"};
|
|
4
4
|
PRAGMA temp_store = MEMORY;
|
|
5
5
|
PRAGMA mmap_size = 30000000;
|
|
6
6
|
PRAGMA cache_size = -64000;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use strict";exports.id=7938,exports.ids=[7938],exports.modules={26985:(a,b,c)=>{c.d(b,{CG:()=>f,f$:()=>d,oG:()=>e,zE:()=>g});let d=8,e=`
|
|
2
2
|
PRAGMA journal_mode = WAL;
|
|
3
|
-
PRAGMA synchronous = NORMAL;
|
|
3
|
+
PRAGMA synchronous = ${process.env.SQLITE_SYNCHRONOUS||"NORMAL"};
|
|
4
4
|
PRAGMA temp_store = MEMORY;
|
|
5
5
|
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)"]},proxyPoolFitness:{columns:{poolId:"TEXT NOT NULL",scope:"TEXT NOT NULL",until:"INTEGER NOT NULL",reason:"TEXT",createdAt:"TEXT NOT NULL",updatedAt:"TEXT NOT NULL"},primaryKey:"PRIMARY KEY (poolId, scope)",indexes:["CREATE INDEX IF NOT EXISTS idx_ppf_pool ON proxyPoolFitness(poolId)","CREATE INDEX IF NOT EXISTS idx_ppf_scope ON proxyPoolFitness(scope)","CREATE INDEX IF NOT EXISTS idx_ppf_until ON proxyPoolFitness(until)"]},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",context_length:"INTEGER",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",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)"]},cachedProviderModels:{columns:{providerId:"TEXT NOT NULL",modelId:"TEXT NOT NULL",kind:"TEXT DEFAULT 'llm'",ownedBy:"TEXT NOT NULL",capabilities:"TEXT",updatedAt:"INTEGER NOT NULL"},primaryKey:"PRIMARY KEY (providerId, modelId)",indexes:["CREATE INDEX IF NOT EXISTS idx_cpm_kind ON cachedProviderModels(kind)","CREATE INDEX IF NOT EXISTS idx_cpm_provider ON cachedProviderModels(providerId)"]}};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(", ")})`}},67938:(a,b,c)=>{c.d(b,{createBetterSqliteAdapter:()=>g});var d=c(87550),e=c.n(d),f=c(26985);function g(a){let b=new(e())(a);b.exec(f.oG);let c=new Map;function d(a){let d=c.get(a);return d||(d=b.prepare(a),c.set(a,d)),d}let g=setInterval(()=>{try{b.pragma("wal_checkpoint(TRUNCATE)")}catch{}},6e4);function h(){try{b.pragma("wal_checkpoint(TRUNCATE)")}catch{}try{c.clear()}catch{}try{b.close()}catch{}}
|
|
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)"]},proxyPoolFitness:{columns:{poolId:"TEXT NOT NULL",scope:"TEXT NOT NULL",until:"INTEGER NOT NULL",reason:"TEXT",createdAt:"TEXT NOT NULL",updatedAt:"TEXT NOT NULL"},primaryKey:"PRIMARY KEY (poolId, scope)",indexes:["CREATE INDEX IF NOT EXISTS idx_ppf_pool ON proxyPoolFitness(poolId)","CREATE INDEX IF NOT EXISTS idx_ppf_scope ON proxyPoolFitness(scope)","CREATE INDEX IF NOT EXISTS idx_ppf_until ON proxyPoolFitness(until)"]},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",context_length:"INTEGER",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",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)"]},cachedProviderModels:{columns:{providerId:"TEXT NOT NULL",modelId:"TEXT NOT NULL",kind:"TEXT DEFAULT 'llm'",ownedBy:"TEXT NOT NULL",capabilities:"TEXT",updatedAt:"INTEGER NOT NULL"},primaryKey:"PRIMARY KEY (providerId, modelId)",indexes:["CREATE INDEX IF NOT EXISTS idx_cpm_kind ON cachedProviderModels(kind)","CREATE INDEX IF NOT EXISTS idx_cpm_provider ON cachedProviderModels(providerId)"]}};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(", ")})`}},67938:(a,b,c)=>{c.d(b,{createBetterSqliteAdapter:()=>g});var d=c(87550),e=c.n(d),f=c(26985);function g(a){let b=new(e())(a);b.exec(f.oG);let c=new Map;function d(a){let d=c.get(a);return d||(d=b.prepare(a),c.set(a,d)),d}let g=setInterval(()=>{try{b.pragma("wal_checkpoint(TRUNCATE)")}catch{}},6e4);"function"==typeof g.unref&&g.unref();let h=()=>l(),i=()=>{h(),process.exit(0)},j=()=>{h(),process.exit(0)},k=!1;function l(){if(!k){k=!0,process.removeListener("beforeExit",h),process.removeListener("SIGINT",i),process.removeListener("SIGTERM",j);try{b.pragma("wal_checkpoint(TRUNCATE)")}catch{}try{c.clear()}catch{}try{b.close()}catch{}}}return process.once("beforeExit",h),process.once("SIGINT",i),process.once("SIGTERM",j),{driver:"better-sqlite3",run:(a,b=[])=>d(a).run(...b),get:(a,b=[])=>d(a).get(...b),all:(a,b=[])=>d(a).all(...b),exec:a=>b.exec(a),transaction:a=>b.transaction(a)(),checkpoint(){try{b.pragma("wal_checkpoint(TRUNCATE)")}catch{}},close(){clearInterval(g),l()},raw:b}}}};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";exports.id=7950,exports.ids=[7950],exports.modules={47950:(a,b,c)=>{c.d(b,{PX:()=>Q,qB:()=>I,Oi:()=>U,Uw:()=>V});var d=c(67259),e=c(91253),f=c(94164),g=c(76489),h=c(84397),i=c(26415),j=c(2607),k=c(22830),l=c(91392);let m=new Map;async function n(a,b){let c=new AbortController,d=setTimeout(()=>c.abort(),1e4);try{let d=await (0,j.proxyAwareFetch)("https://api.githubcopilot.com/models",{method:"GET",headers:{Authorization:`Bearer ${a}`,"Content-Type":"application/json","Copilot-Integration-Id":"vscode-chat","editor-version":`vscode/${k.x0.VSCODE_VERSION}`,"editor-plugin-version":`copilot-chat/${k.x0.COPILOT_CHAT_VERSION}`,"user-agent":k.x0.USER_AGENT,"x-github-api-version":k.x0.API_VERSION},cache:"no-store",signal:b||c.signal});if(!d.ok){let a=Error(`Copilot /models returned ${d.status}`);throw a.status=d.status,a}let e=await d.json();return Array.isArray(e?.data)?e.data:[]}finally{clearTimeout(d)}}async function o(a,b={}){let c,d=a?.providerSpecificData?.copilotToken||a?.accessToken;if(!d)return b.log?.debug?.("COPILOT_MODELS","No copilotToken/accessToken; skipping live fetch"),null;let e=a?.providerSpecificData?.copilotToken||a?.accessToken||"copilot-anonymous",f=Date.now();if(!b.forceRefresh){let a=m.get(e);if(a&&a.expiresAt>f)return{models:a.models}}try{c=await n(d,b.signal)}catch(d){if(!d||401!==d.status&&403!==d.status||!a.accessToken)return b.log?.warn?.("COPILOT_MODELS",`Live model fetch failed: ${d?.message||d}`),null;{b.log?.info?.("COPILOT_MODELS",`Got ${d.status}; refreshing Copilot token`);let e=await (0,l.jR)(a.accessToken);if(!e?.token)return b.log?.warn?.("COPILOT_MODELS","Token refresh did not return a token"),null;if("function"==typeof b.onCredentialsRefreshed)try{await b.onCredentialsRefreshed({copilotToken:e.token,copilotTokenExpiresAt:e.expiresAt})}catch(a){b.log?.warn?.("COPILOT_MODELS",`onCredentialsRefreshed failed: ${a?.message||a}`)}try{c=await n(e.token,b.signal)}catch(a){return b.log?.warn?.("COPILOT_MODELS",`Retry after refresh failed: ${a?.message||a}`),null}}}let g=function(a){let b=new Set,c=[];for(let d of a){if(!d||"object"!=typeof d||d.capabilities?.type!=="chat"||d.policy&&"enabled"!==d.policy.state)continue;let a=d.id;!a||b.has(a)||(b.add(a),c.push({id:a,name:d.name||a}))}return c}(c);return g.length?(m.set(e,{expiresAt:f+3e5,models:g}),{models:g}):null}var p=c(56726);async function q(a){let b=!!a?.apiKey,c=b?a.apiKey:a?.accessToken;if(!c)return null;let d=new AbortController,e=setTimeout(()=>d.abort(),5e3);try{let a=b?{Accept:"application/json",Authorization:`Bearer ${c}`}:(0,p.w$)(c,{Accept:"application/json"}),e=await fetch("https://api.cline.bot/api/v1/models",{method:"GET",headers:a,signal:d.signal});if(!e.ok)return null;let f=await e.json(),g=Array.isArray(f)?f:f?.data;if(!Array.isArray(g))return null;let h=g.filter(a=>"string"==typeof a?.id&&a.id.startsWith("cline-pass/")).map(a=>({id:a.id.slice(11),name:a.name||a.id.slice(11)}));return h.length?{models:h}:null}catch{return null}finally{clearTimeout(e)}}var r=c(21135),s=c(7160),t=c(83950),u=c(8188),v=c(99974),w=c(97774);let x=/[-_][0-9a-f]{8,}$/i,y=["llm","tts","embedding","image","imageToText","stt","webSearch","webFetch"],z={image:"image",tts:"tts",embedding:"embedding",stt:"stt",imageToText:"imageToText"},A={kiro:async a=>{let b=await (0,h.c)({accessToken:a.accessToken,refreshToken:a.refreshToken,providerSpecificData:a.providerSpecificData||{}},{log:console});return b?.models?.length?{models:b.models}:null},qoder:async a=>{let b=await (0,i.EV)({accessToken:a.accessToken,refreshToken:a.refreshToken,email:a.email,displayName:a.displayName,providerSpecificData:a.providerSpecificData||{}});return b?.models?.length?{models:b.models.map(a=>({id:a.id,name:a.name}))}:null},github:async a=>{let b=await o({accessToken:a.accessToken,refreshToken:a.refreshToken,providerSpecificData:a.providerSpecificData||{}},{log:console,onCredentialsRefreshed:async b=>{await (0,t.vN)(a.id,{copilotToken:b.copilotToken,copilotTokenExpiresAt:b.copilotTokenExpiresAt,existingProviderSpecificData:a.providerSpecificData||{}})}});return b?.models?.length?{models:b.models}:null},clinepass:async a=>{let b=await q({accessToken:a.accessToken,apiKey:a.apiKey});return b?.models?.length?{models:b.models}:null},"grok-cli":async a=>{let b=await (0,u.BZ)(a.providerSpecificData||{}),c=await (0,r.M)({...a,connectionId:a.id},{log:console,proxyOptions:{connectionProxyEnabled:!0===b.connectionProxyEnabled,connectionProxyUrl:b.connectionProxyUrl||"",connectionNoProxy:b.connectionNoProxy||"",vercelRelayUrl:b.vercelRelayUrl||"",strictProxy:!0===b.strictProxy},onCredentialsRefreshed:async b=>{await (0,t.vN)(a.id,{...b,existingProviderSpecificData:a.providerSpecificData||{}})}});return c?.models?.length?{models:c.models}:null},cursor:async a=>{let b=await (0,s.FD)({accessToken:a.accessToken,providerSpecificData:a.providerSpecificData||{}},{log:console});return b?.models?.length?{models:b.models}:null}};function B(a){let b=a?.kind||a?.type;return b&&z[b]||"llm"}function C(a,b,c,d,e=()=>!1){if(b&&c){if(d.has("tts"))if(Array.isArray(b.ttsConfig?.models))for(let d of b.ttsConfig.models)d?.id&&!e(c,d.id)&&a.push({id:`${c}/${d.id}`,object:"model",kind:"tts",owned_by:c});else b.ttsConfig&&a.push({id:`${c}/tts`,object:"model",kind:"tts",owned_by:c});if(d.has("stt"))if(Array.isArray(b.sttConfig?.models))for(let d of b.sttConfig.models)d?.id&&!e(c,d.id)&&a.push({id:`${c}/${d.id}`,object:"model",kind:"stt",owned_by:c});else b.sttConfig&&a.push({id:`${c}/stt`,object:"model",kind:"stt",owned_by:c});if(d.has("image")&&Array.isArray(b.imageConfig?.models))for(let d of b.imageConfig.models)d?.id&&!e(c,d.id)&&a.push({id:`${c}/${d.id}`,object:"model",kind:"image",owned_by:c});if(d.has("embedding")&&Array.isArray(b.embeddingConfig?.models))for(let d of b.embeddingConfig.models)d?.id&&!e(c,d.id)&&a.push({id:`${c}/${d.id}`,object:"model",kind:"embedding",owned_by:c});d.has("webSearch")&&(b.searchConfig||b.searchViaChat||b.serviceKinds?.includes("webSearch"))&&a.push({id:`${c}/search`,object:"model",kind:"webSearch",owned_by:c}),d.has("webFetch")&&(b.fetchConfig||b.serviceKinds?.includes("webFetch"))&&a.push({id:`${c}/fetch`,object:"model",kind:"webFetch",owned_by:c})}}function D(a){let b=String(a).toLowerCase();return/embed/.test(b)?"embedding":/tts|speech|audio|voice/.test(b)?"tts":/image|imagen|dall-?e|flux|sdxl|sd-|stable-diffusion/.test(b)?"image":"llm"}function E(a,b){let c=e.AI_PROVIDERS[a];return(Array.isArray(c?.serviceKinds)&&c.serviceKinds.length>0?c.serviceKinds:["llm"]).some(a=>b.has(a))}let F={},G={},H=new Map;async function I(a,b){let c=b?.modelsFetcher;if(!c?.url)return[];let d=Date.now();if(F[a]&&d<(G[a]||0))return F[a];try{let e,f,g=new AbortController,h=setTimeout(()=>g.abort(),8e3),i=await fetch(c.url,{method:"GET",headers:{"Content-Type":"application/json"},cache:"no-store",signal:g.signal});if(clearTimeout(h),!i.ok)return G[a]>d?F[a]:[];let j=await i.json();if(Array.isArray(j))e=j;else if(Array.isArray(j?.data))e=j.data;else if(j?.models&&"object"==typeof j.models&&!Array.isArray(j.models))e=Object.values(j.models);else if(Array.isArray(j?.results))e=j.results;else if(j&&"object"==typeof j){let c=b?.id||a,d=b?.alias||b?.uiAlias,f=j[c]||j[d]||j[a],g=f?.models;e=g&&"object"==typeof g&&!Array.isArray(g)?Object.values(g):[]}else e=j?.models||j?.results||[];f="opencode-free"===c.type?e.reduce((a,b)=>{let c=b?.id||b?.name||b?.model;return"string"==typeof c&&""!==c.trim()&&c.endsWith("-free")&&a.push(c),a},[]):e.reduce((a,b)=>{let c=b?.id||b?.name||b?.model;return"string"==typeof c&&""!==c.trim()&&a.push(c),a},[]);let k=Array.from(new Set(f));return F[a]=k,G[a]=d+3e5,k}catch{return F[a]||[]}}globalThis._compatibleModelsCache||(globalThis._compatibleModelsCache=new Map);let J=globalThis._compatibleModelsCache;async function K(a){if(!a?.apiKey)return[];let b="string"==typeof a?.providerSpecificData?.baseUrl?a.providerSpecificData.baseUrl.trim().replace(/\/$/,""):"";if(!b)return[];let c=`${a.provider}:${b}:${a.apiKey}`,d=Date.now(),f=J.get(c);if(f&&f.expiresAt>d)return f.ids;let g=`${b}/models`,h={"Content-Type":"application/json"};if((0,e.mq)(a.provider))h.Authorization=`Bearer ${a.apiKey}`;else{if(!(0,e.gb)(a.provider))return[];g.endsWith("/messages/models")?g=g.slice(0,-9):g.endsWith("/messages")&&(g=`${g.slice(0,-9)}/models`),h["x-api-key"]=a.apiKey,h["anthropic-version"]="2023-06-01",h.Authorization=`Bearer ${a.apiKey}`}try{let a=new AbortController,b=setTimeout(()=>a.abort(),5e3),e=await (0,w.x2)(g,{method:"GET",headers:h,cache:"no-store",signal:a.signal});if(clearTimeout(b),!e.ok)return[];let f=await e.json(),i=Array.isArray(f)?f:f?.data||f?.models||f?.results||[],j=Array.from(new Set(i.reduce((a,b)=>{let c=b?.id||b?.name||b?.model;return"string"==typeof c&&""!==c.trim()&&a.push(c),a},[])));return J.set(c,{ids:j,expiresAt:d+3e5}),j}catch{return J.get(c)?.ids||[]}}async function L(){let[a,b,c,d,e]=await Promise.allSettled([(0,f.getProviderConnections)(),(0,f.Uv)(),(0,f.uv)(),(0,f.OM)(),(0,g.vF)()]),h="fulfilled"===a.status&&Array.isArray(a.value)?a.value.filter(a=>a?.isActive!==!1):[],i="fulfilled"===b.status&&Array.isArray(b.value)?b.value:[],j="fulfilled"===c.status&&Array.isArray(c.value)?c.value:[],k="fulfilled"===d.status&&d.value?d.value:{},l="fulfilled"===e.status&&e.value?e.value:{},m="fulfilled"===a.status||"fulfilled"===b.status,n=new Map;for(let a of h)n.has(a.provider)||n.set(a.provider,a);return{connections:h,combos:i,customModels:j,modelAliases:k,isDisabled:(a,b)=>Array.isArray(l[a])&&l[a].includes(b),activeConnectionByProvider:n,dbAvailable:m}}async function M(a,b,c,f,g,h,i,j={}){let k=!0===j.skipDynamicFetch;a=new Set(a);let l=[];for(let c of b){if(!function(a,b){let c=a?.kind||"llm";return b.has(c)}(c,a))continue;let b={id:`combo/${c.name}`,object:"model",owned_by:"combo"};("webSearch"===c.kind||"webFetch"===c.kind)&&(b.kind=c.kind),l.push(b)}if(i){let b=[...h.entries()].filter(([b])=>E(b,a));for(let d of(await Promise.allSettled(b.map(([b,d])=>N(b,d,a,c,f,g,k)))))"fulfilled"===d.status&&Array.isArray(d.value)&&l.push(...d.value)}else{let b=Object.fromEntries(Object.entries(d.Xg).map(([a,b])=>[b,a]));for(let[c,e]of Object.entries(d.vq))if(E(b[c]||c,a))for(let b of e)a.has(B(b))&&(g(c,b.id)||l.push({id:`${c}/${b.id}`,object:"model",owned_by:c}));for(let[b,c]of Object.entries(e.AI_PROVIDERS)){if(!E(b,a))continue;let d=(0,e.wG)(b)||c.alias||b;C(l,c,d,a,g)}for(let b of c){if(!b?.id||b.type&&"llm"!==b.type||!a.has("llm"))continue;let c=b.providerAlias;if(!c)continue;let d=String(b.id).trim();d&&l.push({id:`${c}/${d}`,object:"model",owned_by:c})}}let m=Object.entries(e.AI_PROVIDERS).filter(([b,c])=>!h.has(b)&&E(b,a)&&(c.noAuth||a.has("webSearch")&&(c.searchConfig||c.searchViaChat)||a.has("webFetch")&&c.fetchConfig));for(let b of(await Promise.allSettled(m.map(([b,d])=>O(b,d,a,c,f,g)))))"fulfilled"===b.status&&Array.isArray(b.value)&&l.push(...b.value);return l}async function N(a,b,c,f,g,h,i=!1){let j=[],k=d.Xg[a]||a,l=(b?.providerSpecificData?.prefix||(0,e.wG)(a)||k).trim(),m=d.vq[k]||[],n=b?.providerSpecificData?.enabledModels,o=Array.isArray(n)&&n.length>0,p=(0,e.mq)(a)||(0,e.gb)(a),q=e.AI_PROVIDERS[a]?.passthroughModels===!0,r=new Map(m.map(a=>[a.id,B(a)])),s=o?Array.from(new Set(n.filter(a=>"string"==typeof a&&""!==a.trim()))):m.map(a=>a.id);!p||0!==s.length||x.test(a)||i||(s=await K(b));let t=e.AI_PROVIDERS[a];t?.noAuth&&t?.modelsFetcher&&(s=Array.from(new Set([...s,...await I(a,t)]))),q&&0===s.length&&(s=m.map(a=>a.id)),q&&!o&&(s=m.map(a=>a.id));let u=A[a],w=new Map,y=null;if(u&&!o&&!i)try{let c=await u(b);if(c?.models?.length){let d=c.models.map(a=>a.id).filter(a=>"string"==typeof a&&""!==a.trim());for(let a of(s=Array.from(new Set([...s,...d])),c.models))a.id&&a.capabilities&&w.set(a.id,a.capabilities);y=c.kind||null,H.set(`${a}:${b.id}`,{models:c.models,kind:y,expiresAt:Date.now()+3e5})}}catch(d){console.log(`Live model fetch failed for ${a}: ${d?.message||d}`);let c=H.get(`${a}:${b.id}`);if(c?.expiresAt>Date.now()){for(let a of(s=Array.from(new Set([...s,...c.models.map(a=>a.id).filter(a=>"string"==typeof a&&""!==a.trim())])),c.models))a.id&&a.capabilities&&w.set(a.id,a.capabilities);y=c.kind}}let z=s.reduce((b,c)=>{let d=c;return d.startsWith(`${l}/`)?d=d.slice(l.length+1):d.startsWith(`${k}/`)?d=d.slice(k.length+1):d.startsWith(`${a}/`)&&(d=d.slice(a.length+1)),"string"==typeof d&&""!==d.trim()&&b.push(d),b},[]),E=new Map;for(let b of Array.from(new Set([...z,...f.reduce((b,e)=>{if(!e?.id)return b;let f=(0,d.CP)(e)||"llm";if(!c.has(f)&&!("imageToText"===f&&c.has("llm")))return b;let g=e.providerAlias;if(g!==k&&g!==l&&g!==a)return b;let h=String(e.id).trim();return""!==h&&(E.set(h,f),b.push(h)),b},[]),...Object.values(g||{}).reduce((b,c)=>{let d;return"string"==typeof c&&c.includes("/")&&(c.startsWith(`${l}/`)||c.startsWith(`${k}/`)||c.startsWith(`${a}/`))&&"string"==typeof(d=c.startsWith(`${l}/`)?c.slice(l.length+1):c.startsWith(`${k}/`)?c.slice(k.length+1):c.slice(a.length+1))&&""!==d.trim()&&b.push(d),b},[])]))){let d=E.get(b),e=r.get(b)||d||D(b),f="imageToText"===e&&c.has("llm");if(!c.has(e)&&!f||h(l,b)||h(k,b))continue;let g={id:`${l}/${b}`,object:"model",owned_by:l},i=w.get(b)||(0,v.capabilitiesFromServiceKind)(d||y)||("llm"===e?(0,v.getCapabilitiesForModel)(a,b):null);i&&(g.capabilities=i),j.push(g)}return C(j,t,l,c,(a,b)=>h(l,b)||h(k,b)),j}async function O(a,b,c,f,g,h){let i=[],j=(0,e.wG)(a)||b.alias||a,k=new Map((d.vq[j]||[]).map(a=>[a.id,B(a)])),l=(d.vq[j]||[]).map(a=>a.id),m=[];for(let d of(b.modelsFetcher&&(m=await I(a,b)),Array.from(new Set([...l,...m,...f.reduce((b,c)=>{if(!c?.id||c.type&&"llm"!==c.type)return b;let d=c.providerAlias;if(d!==j&&d!==a)return b;let e=String(c.id).trim();return""!==e&&b.push(e),b},[]),...Object.values(g||{}).reduce((b,c)=>{let d;return"string"==typeof c&&c.includes("/")&&(c.startsWith(`${j}/`)||c.startsWith(`${a}/`))&&"string"==typeof(d=c.startsWith(`${j}/`)?c.slice(j.length+1):c.slice(a.length+1))&&""!==d.trim()&&b.push(d),b},[])])))){let a=k.get(d)||D(d);c.has(a)&&(h(j,d)||i.push({id:`${j}/${d}`,object:"model",owned_by:j}))}return C(i,b,j,c,h),i}globalThis._modelsListCache||(globalThis._modelsListCache=new Map);let P=globalThis._modelsListCache;async function Q(a,b={}){let c=Array.isArray(a)?a.slice().sort().join(","):String(a),d=`${c}:${!0===b.skipDynamicFetch?"skip":"noskip"}`,e=Date.now(),g=P.get(d);if(g&&g.expiresAt>e)return g.models;let{combos:h,customModels:i,modelAliases:j,isDisabled:k,activeConnectionByProvider:l,dbAvailable:m}=await L(),n=await M(a,h,i,j,k,l,m,b),o=new Set,p=[];for(let a of n){if(!a?.id||o.has(a.id))continue;o.add(a.id);let b={id:a.id,object:"model",owned_by:a.owned_by||(a.id.includes("/")?a.id.split("/")[0]:"combo")};a.kind&&(b.kind=a.kind),a.capabilities&&(b.capabilities=a.capabilities);let c=a.capabilities||{};("llm"===a.kind||!a.kind)&&(Number.isFinite(c.contextWindow)&&(b.context_length=c.contextWindow),Number.isFinite(c.maxOutput)&&(b.max_completion_tokens=c.maxOutput)),p.push(b)}if(0===p.length){let a=await (0,f.wA)();if(a.length>0)for(let b of a)o.has(b.id)||(o.add(b.id),p.push(b))}return P.set(d,{models:p,expiresAt:e+15e3}),p.length>0&&(0,f.XH)(p).catch(()=>{}),p}let R=null,S=0;async function T(){let a=Date.now();if(R&&a<S)return R;let{combos:b,customModels:c,modelAliases:d,isDisabled:e,activeConnectionByProvider:f,dbAvailable:g}=await L(),h=await M(y,b,c,d,e,f,g),i=new Set;for(let a of h)a?.id&&i.add(a.id);return R=i,S=a+3e4,i}function U(){R=null,S=0,P.clear(),J.clear()}async function V(a,b=null){if(!b||(await T()).has(a))return!0;if("string"==typeof a&&a.includes("/")){let b,c=a.indexOf("/"),d=a.slice(0,c),f=a.slice(c+1);return!!(b=(0,e.zt)(d))&&!!("search"===f&&(b.searchConfig||b.searchViaChat||b.serviceKinds?.includes("webSearch"))||"fetch"===f&&(b.fetchConfig||b.serviceKinds?.includes("webFetch"))||"stt"===f&&(b.sttConfig||b.serviceKinds?.includes("stt"))||"tts"===f&&(b.ttsConfig||b.serviceKinds?.includes("tts"))||"image"===f&&(b.imageConfig||b.serviceKinds?.includes("image"))||b.ttsConfig?.models?.some(a=>a.id===f)||b.sttConfig?.models?.some(a=>a.id===f)||b.imageConfig?.models?.some(a=>a.id===f)||b.embeddingConfig?.models?.some(a=>a.id===f))}return!1}},67259:(a,b,c)=>{c.d(b,{CP:()=>f,Xg:()=>d.Xg,eh:()=>e,vq:()=>d.PROVIDER_MODELS});var d=c(85577);Object.entries(c(91253).AI_PROVIDERS).filter(([,a])=>a.passthroughModels).map(([a])=>a);let e=Object.entries(d.PROVIDER_MODELS).flatMap(([a,b])=>b.map(b=>({provider:a,model:b.id,name:b.name}))),f=(a,b=null)=>a?.kind||a?.type||b},76489:(a,b,c)=>{c.d(b,{oF:()=>d.oF,tm:()=>d.tm,vF:()=>d.vF});var d=c(38599)},97774:(a,b,c)=>{c.d(b,{PA:()=>n,_S:()=>p,x2:()=>o});var d=c(71553),e=c.n(d),f=c(13398);let g=new Set(["localhost","ip6-localhost","ip6-loopback"]),h=[".internal",".local",".localhost"],i=new Set(["http:","https:"]);function j(a){let b=a.split(".");if(4!==b.length)return null;let c=0;for(let a of b){if(!/^\d{1,3}$/.test(a))return null;let b=Number(a);if(b>255)return null;c=256*c+b}return c>>>0}let k=[[0,8],[j("10.0.0.0"),8],[j("127.0.0.0"),8],[j("169.254.0.0"),16],[j("172.16.0.0"),12],[j("192.168.0.0"),16],[j("100.64.0.0"),10],[j("224.0.0.0"),4],[j("240.0.0.0"),4]];function l(a){let b=j(a);return null!==b&&k.some(([a,c])=>{let d=0xffffffff<<32-c>>>0;return(b&d)==(a&d)})}function m(a){let b=a.replace(/^\[|\]$/g,"").toLowerCase(),c=b.match(/^::ffff:(\d+\.\d+\.\d+\.\d+)$/);return c?l(c[1]):"::1"===b||"::"===b||b.startsWith("::ffff:")||b.startsWith("fe80:")||b.startsWith("fc")||b.startsWith("fd")}async function n(a){let b,c=new URL(a),d=c.hostname.toLowerCase();if(!i.has(c.protocol)||c.username||c.password)throw Error("Blocked URL: unsupported target");if(g.has(d)||h.some(a=>d.endsWith(a)))throw Error("Blocked URL: internal host");if(l(d)||d.includes(":")&&m(d))throw Error("Blocked URL: private IP");try{b=await e().lookup(d,{all:!0,verbatim:!0})}catch{throw Error("Blocked URL: DNS lookup failed")}if(!b.length||b.some(({address:a})=>l(a)||a.includes(":")&&m(a)))throw Error("Blocked URL: private IP");return{url:c,addresses:b}}async function o(a,b={}){let{url:c,addresses:d}=await n(a),e=d[0],g=new f.g6({connect:{lookup(a,b,c){c(null,e.address,e.family)}}});try{return await (0,f.hd)(c,{...b,dispatcher:g})}finally{await g.close()}}let p=`function assertTrustedTarget(rawUrl) {
|
|
1
|
+
"use strict";exports.id=7950,exports.ids=[7950],exports.modules={47950:(a,b,c)=>{c.d(b,{PX:()=>Q,qB:()=>I,Oi:()=>U,Uw:()=>V});var d=c(67259),e=c(91253),f=c(94164),g=c(76489),h=c(84397),i=c(26415),j=c(2607),k=c(22830),l=c(91392);let m=new Map;async function n(a,b){let c=new AbortController,d=setTimeout(()=>c.abort(),1e4);try{let d=await (0,j.proxyAwareFetch)("https://api.githubcopilot.com/models",{method:"GET",headers:{Authorization:`Bearer ${a}`,"Content-Type":"application/json","Copilot-Integration-Id":"vscode-chat","editor-version":`vscode/${k.x0.VSCODE_VERSION}`,"editor-plugin-version":`copilot-chat/${k.x0.COPILOT_CHAT_VERSION}`,"user-agent":k.x0.USER_AGENT,"x-github-api-version":k.x0.API_VERSION},cache:"no-store",signal:b||c.signal});if(!d.ok){let a=Error(`Copilot /models returned ${d.status}`);throw a.status=d.status,a}let e=await d.json();return Array.isArray(e?.data)?e.data:[]}finally{clearTimeout(d)}}async function o(a,b={}){let c,d=a?.providerSpecificData?.copilotToken||a?.accessToken;if(!d)return b.log?.debug?.("COPILOT_MODELS","No copilotToken/accessToken; skipping live fetch"),null;let e=a?.providerSpecificData?.copilotToken||a?.accessToken||"copilot-anonymous",f=Date.now();if(!b.forceRefresh){let a=m.get(e);if(a&&a.expiresAt>f)return{models:a.models}}try{c=await n(d,b.signal)}catch(d){if(!d||401!==d.status&&403!==d.status||!a.accessToken)return b.log?.warn?.("COPILOT_MODELS",`Live model fetch failed: ${d?.message||d}`),null;{b.log?.info?.("COPILOT_MODELS",`Got ${d.status}; refreshing Copilot token`);let e=await (0,l.jR)(a.accessToken);if(!e?.token)return b.log?.warn?.("COPILOT_MODELS","Token refresh did not return a token"),null;if("function"==typeof b.onCredentialsRefreshed)try{await b.onCredentialsRefreshed({copilotToken:e.token,copilotTokenExpiresAt:e.expiresAt})}catch(a){b.log?.warn?.("COPILOT_MODELS",`onCredentialsRefreshed failed: ${a?.message||a}`)}try{c=await n(e.token,b.signal)}catch(a){return b.log?.warn?.("COPILOT_MODELS",`Retry after refresh failed: ${a?.message||a}`),null}}}let g=function(a){let b=new Set,c=[];for(let d of a){if(!d||"object"!=typeof d||d.capabilities?.type!=="chat"||d.policy&&"enabled"!==d.policy.state)continue;let a=d.id;!a||b.has(a)||(b.add(a),c.push({id:a,name:d.name||a}))}return c}(c);return g.length?(m.set(e,{expiresAt:f+3e5,models:g}),{models:g}):null}var p=c(56726);async function q(a){let b=!!a?.apiKey,c=b?a.apiKey:a?.accessToken;if(!c)return null;let d=new AbortController,e=setTimeout(()=>d.abort(),5e3);try{let a=b?{Accept:"application/json",Authorization:`Bearer ${c}`}:(0,p.w$)(c,{Accept:"application/json"}),e=await fetch("https://api.cline.bot/api/v1/models",{method:"GET",headers:a,signal:d.signal});if(!e.ok)return null;let f=await e.json(),g=Array.isArray(f)?f:f?.data;if(!Array.isArray(g))return null;let h=g.filter(a=>"string"==typeof a?.id&&a.id.startsWith("cline-pass/")).map(a=>({id:a.id.slice(11),name:a.name||a.id.slice(11)}));return h.length?{models:h}:null}catch{return null}finally{clearTimeout(e)}}var r=c(21135),s=c(7160),t=c(83950),u=c(8188),v=c(99974),w=c(97774);let x=/[-_][0-9a-f]{8,}$/i,y=["llm","tts","embedding","image","imageToText","stt","video","webSearch","webFetch"],z={image:"image",video:"video",tts:"tts",embedding:"embedding",stt:"stt",imageToText:"imageToText"},A={kiro:async a=>{let b=await (0,h.c)({accessToken:a.accessToken,refreshToken:a.refreshToken,providerSpecificData:a.providerSpecificData||{}},{log:console});return b?.models?.length?{models:b.models}:null},qoder:async a=>{let b=await (0,i.EV)({accessToken:a.accessToken,refreshToken:a.refreshToken,email:a.email,displayName:a.displayName,providerSpecificData:a.providerSpecificData||{}});return b?.models?.length?{models:b.models.map(a=>({id:a.id,name:a.name}))}:null},github:async a=>{let b=await o({accessToken:a.accessToken,refreshToken:a.refreshToken,providerSpecificData:a.providerSpecificData||{}},{log:console,onCredentialsRefreshed:async b=>{await (0,t.vN)(a.id,{copilotToken:b.copilotToken,copilotTokenExpiresAt:b.copilotTokenExpiresAt,existingProviderSpecificData:a.providerSpecificData||{}})}});return b?.models?.length?{models:b.models}:null},clinepass:async a=>{let b=await q({accessToken:a.accessToken,apiKey:a.apiKey});return b?.models?.length?{models:b.models}:null},"grok-cli":async a=>{let b=await (0,u.BZ)(a.providerSpecificData||{}),c=await (0,r.M)({...a,connectionId:a.id},{log:console,proxyOptions:{connectionProxyEnabled:!0===b.connectionProxyEnabled,connectionProxyUrl:b.connectionProxyUrl||"",connectionNoProxy:b.connectionNoProxy||"",vercelRelayUrl:b.vercelRelayUrl||"",strictProxy:!0===b.strictProxy},onCredentialsRefreshed:async b=>{await (0,t.vN)(a.id,{...b,existingProviderSpecificData:a.providerSpecificData||{}})}});return c?.models?.length?{models:c.models}:null},cursor:async a=>{let b=await (0,s.FD)({accessToken:a.accessToken,providerSpecificData:a.providerSpecificData||{}},{log:console});return b?.models?.length?{models:b.models}:null}};function B(a){let b=a?.kind||a?.type;return b&&z[b]||"llm"}function C(a,b,c,d,e=()=>!1){if(b&&c){if(d.has("tts"))if(Array.isArray(b.ttsConfig?.models))for(let d of b.ttsConfig.models)d?.id&&!e(c,d.id)&&a.push({id:`${c}/${d.id}`,object:"model",kind:"tts",owned_by:c});else b.ttsConfig&&a.push({id:`${c}/tts`,object:"model",kind:"tts",owned_by:c});if(d.has("stt"))if(Array.isArray(b.sttConfig?.models))for(let d of b.sttConfig.models)d?.id&&!e(c,d.id)&&a.push({id:`${c}/${d.id}`,object:"model",kind:"stt",owned_by:c});else b.sttConfig&&a.push({id:`${c}/stt`,object:"model",kind:"stt",owned_by:c});if(d.has("image")&&Array.isArray(b.imageConfig?.models))for(let d of b.imageConfig.models)d?.id&&!e(c,d.id)&&a.push({id:`${c}/${d.id}`,object:"model",kind:"image",owned_by:c});if(d.has("embedding")&&Array.isArray(b.embeddingConfig?.models))for(let d of b.embeddingConfig.models)d?.id&&!e(c,d.id)&&a.push({id:`${c}/${d.id}`,object:"model",kind:"embedding",owned_by:c});d.has("webSearch")&&(b.searchConfig||b.searchViaChat||b.serviceKinds?.includes("webSearch"))&&a.push({id:`${c}/search`,object:"model",kind:"webSearch",owned_by:c}),d.has("webFetch")&&(b.fetchConfig||b.serviceKinds?.includes("webFetch"))&&a.push({id:`${c}/fetch`,object:"model",kind:"webFetch",owned_by:c})}}function D(a){let b=String(a).toLowerCase();return/embed/.test(b)?"embedding":/tts|speech|audio|voice/.test(b)?"tts":/image|imagen|dall-?e|flux|sdxl|sd-|stable-diffusion/.test(b)?"image":"llm"}function E(a,b){let c=e.AI_PROVIDERS[a];return(Array.isArray(c?.serviceKinds)&&c.serviceKinds.length>0?c.serviceKinds:["llm"]).some(a=>b.has(a))}let F={},G={},H=new Map;async function I(a,b){let c=b?.modelsFetcher;if(!c?.url)return[];let d=Date.now();if(F[a]&&d<(G[a]||0))return F[a];try{let e,f,g=new AbortController,h=setTimeout(()=>g.abort(),8e3),i=await fetch(c.url,{method:"GET",headers:{"Content-Type":"application/json"},cache:"no-store",signal:g.signal});if(clearTimeout(h),!i.ok)return G[a]>d?F[a]:[];let j=await i.json();if(Array.isArray(j))e=j;else if(Array.isArray(j?.data))e=j.data;else if(j?.models&&"object"==typeof j.models&&!Array.isArray(j.models))e=Object.values(j.models);else if(Array.isArray(j?.results))e=j.results;else if(j&&"object"==typeof j){let c=b?.id||a,d=b?.alias||b?.uiAlias,f=j[c]||j[d]||j[a],g=f?.models;e=g&&"object"==typeof g&&!Array.isArray(g)?Object.values(g):[]}else e=j?.models||j?.results||[];f="opencode-free"===c.type?e.reduce((a,b)=>{let c=b?.id||b?.name||b?.model;return"string"==typeof c&&""!==c.trim()&&c.endsWith("-free")&&a.push(c),a},[]):e.reduce((a,b)=>{let c=b?.id||b?.name||b?.model;return"string"==typeof c&&""!==c.trim()&&a.push(c),a},[]);let k=Array.from(new Set(f));return F[a]=k,G[a]=d+3e5,k}catch{return F[a]||[]}}globalThis._compatibleModelsCache||(globalThis._compatibleModelsCache=new Map);let J=globalThis._compatibleModelsCache;async function K(a){if(!a?.apiKey)return[];let b="string"==typeof a?.providerSpecificData?.baseUrl?a.providerSpecificData.baseUrl.trim().replace(/\/$/,""):"";if(!b)return[];let c=`${a.provider}:${b}:${a.apiKey}`,d=Date.now(),f=J.get(c);if(f&&f.expiresAt>d)return f.ids;let g=`${b}/models`,h={"Content-Type":"application/json"};if((0,e.mq)(a.provider))h.Authorization=`Bearer ${a.apiKey}`;else{if(!(0,e.gb)(a.provider))return[];g.endsWith("/messages/models")?g=g.slice(0,-9):g.endsWith("/messages")&&(g=`${g.slice(0,-9)}/models`),h["x-api-key"]=a.apiKey,h["anthropic-version"]="2023-06-01",h.Authorization=`Bearer ${a.apiKey}`}try{let a=new AbortController,b=setTimeout(()=>a.abort(),5e3),e=await (0,w.x2)(g,{method:"GET",headers:h,cache:"no-store",signal:a.signal});if(clearTimeout(b),!e.ok)return[];let f=await e.json(),i=Array.isArray(f)?f:f?.data||f?.models||f?.results||[],j=Array.from(new Set(i.reduce((a,b)=>{let c=b?.id||b?.name||b?.model;return"string"==typeof c&&""!==c.trim()&&a.push(c),a},[])));return J.set(c,{ids:j,expiresAt:d+3e5}),j}catch{return J.get(c)?.ids||[]}}async function L(){let[a,b,c,d,e]=await Promise.allSettled([(0,f.getProviderConnections)(),(0,f.Uv)(),(0,f.uv)(),(0,f.OM)(),(0,g.vF)()]),h="fulfilled"===a.status&&Array.isArray(a.value)?a.value.filter(a=>a?.isActive!==!1):[],i="fulfilled"===b.status&&Array.isArray(b.value)?b.value:[],j="fulfilled"===c.status&&Array.isArray(c.value)?c.value:[],k="fulfilled"===d.status&&d.value?d.value:{},l="fulfilled"===e.status&&e.value?e.value:{},m="fulfilled"===a.status||"fulfilled"===b.status,n=new Map;for(let a of h)n.has(a.provider)||n.set(a.provider,a);return{connections:h,combos:i,customModels:j,modelAliases:k,isDisabled:(a,b)=>Array.isArray(l[a])&&l[a].includes(b),activeConnectionByProvider:n,dbAvailable:m}}async function M(a,b,c,f,g,h,i,j={}){let k=!0===j.skipDynamicFetch;a=new Set(a);let l=[];for(let c of b){if(!function(a,b){let c=a?.kind||"llm";return b.has(c)}(c,a))continue;let b={id:`combo/${c.name}`,object:"model",owned_by:"combo"};("webSearch"===c.kind||"webFetch"===c.kind)&&(b.kind=c.kind),l.push(b)}if(i){let b=[...h.entries()].filter(([b])=>E(b,a));for(let d of(await Promise.allSettled(b.map(([b,d])=>N(b,d,a,c,f,g,k)))))"fulfilled"===d.status&&Array.isArray(d.value)&&l.push(...d.value)}else{let b=Object.fromEntries(Object.entries(d.Xg).map(([a,b])=>[b,a]));for(let[c,e]of Object.entries(d.vq))if(E(b[c]||c,a))for(let b of e)a.has(B(b))&&(g(c,b.id)||l.push({id:`${c}/${b.id}`,object:"model",owned_by:c}));for(let[b,c]of Object.entries(e.AI_PROVIDERS)){if(!E(b,a))continue;let d=(0,e.wG)(b)||c.alias||b;C(l,c,d,a,g)}for(let b of c){if(!b?.id||b.type&&"llm"!==b.type||!a.has("llm"))continue;let c=b.providerAlias;if(!c)continue;let d=String(b.id).trim();d&&l.push({id:`${c}/${d}`,object:"model",owned_by:c})}}let m=Object.entries(e.AI_PROVIDERS).filter(([b,c])=>!h.has(b)&&E(b,a)&&(c.noAuth||a.has("webSearch")&&(c.searchConfig||c.searchViaChat)||a.has("webFetch")&&c.fetchConfig));for(let b of(await Promise.allSettled(m.map(([b,d])=>O(b,d,a,c,f,g)))))"fulfilled"===b.status&&Array.isArray(b.value)&&l.push(...b.value);return l}async function N(a,b,c,f,g,h,i=!1){let j=[],k=d.Xg[a]||a,l=(b?.providerSpecificData?.prefix||(0,e.wG)(a)||k).trim(),m=d.vq[k]||[],n=b?.providerSpecificData?.enabledModels,o=Array.isArray(n)&&n.length>0,p=(0,e.mq)(a)||(0,e.gb)(a),q=e.AI_PROVIDERS[a]?.passthroughModels===!0,r=new Map(m.map(a=>[a.id,B(a)])),s=o?Array.from(new Set(n.filter(a=>"string"==typeof a&&""!==a.trim()))):m.map(a=>a.id);!p||0!==s.length||x.test(a)||i||(s=await K(b));let t=e.AI_PROVIDERS[a];t?.noAuth&&t?.modelsFetcher&&(s=Array.from(new Set([...s,...await I(a,t)]))),q&&0===s.length&&(s=m.map(a=>a.id)),q&&!o&&(s=m.map(a=>a.id));let u=A[a],w=new Map,y=null;if(u&&!o&&!i)try{let c=await u(b);if(c?.models?.length){let d=c.models.map(a=>a.id).filter(a=>"string"==typeof a&&""!==a.trim());for(let a of(s=Array.from(new Set([...s,...d])),c.models))a.id&&a.capabilities&&w.set(a.id,a.capabilities);y=c.kind||null,H.set(`${a}:${b.id}`,{models:c.models,kind:y,expiresAt:Date.now()+3e5})}}catch(d){console.log(`Live model fetch failed for ${a}: ${d?.message||d}`);let c=H.get(`${a}:${b.id}`);if(c?.expiresAt>Date.now()){for(let a of(s=Array.from(new Set([...s,...c.models.map(a=>a.id).filter(a=>"string"==typeof a&&""!==a.trim())])),c.models))a.id&&a.capabilities&&w.set(a.id,a.capabilities);y=c.kind}}let z=s.reduce((b,c)=>{let d=c;return d.startsWith(`${l}/`)?d=d.slice(l.length+1):d.startsWith(`${k}/`)?d=d.slice(k.length+1):d.startsWith(`${a}/`)&&(d=d.slice(a.length+1)),"string"==typeof d&&""!==d.trim()&&b.push(d),b},[]),E=new Map;for(let b of Array.from(new Set([...z,...f.reduce((b,e)=>{if(!e?.id)return b;let f=(0,d.CP)(e)||"llm";if(!c.has(f)&&!("imageToText"===f&&c.has("llm")))return b;let g=e.providerAlias;if(g!==k&&g!==l&&g!==a)return b;let h=String(e.id).trim();return""!==h&&(E.set(h,f),b.push(h)),b},[]),...Object.values(g||{}).reduce((b,c)=>{let d;return"string"==typeof c&&c.includes("/")&&(c.startsWith(`${l}/`)||c.startsWith(`${k}/`)||c.startsWith(`${a}/`))&&"string"==typeof(d=c.startsWith(`${l}/`)?c.slice(l.length+1):c.startsWith(`${k}/`)?c.slice(k.length+1):c.slice(a.length+1))&&""!==d.trim()&&b.push(d),b},[])]))){let d=E.get(b),e=r.get(b)||d||D(b),f="imageToText"===e&&c.has("llm");if(!c.has(e)&&!f||h(l,b)||h(k,b))continue;let g={id:`${l}/${b}`,object:"model",owned_by:l},i=w.get(b)||(0,v.capabilitiesFromServiceKind)(d||y)||("llm"===e?(0,v.getCapabilitiesForModel)(a,b):null);i&&(g.capabilities=i),j.push(g)}return C(j,t,l,c,(a,b)=>h(l,b)||h(k,b)),j}async function O(a,b,c,f,g,h){let i=[],j=(0,e.wG)(a)||b.alias||a,k=new Map((d.vq[j]||[]).map(a=>[a.id,B(a)])),l=(d.vq[j]||[]).map(a=>a.id),m=[];for(let d of(b.modelsFetcher&&(m=await I(a,b)),Array.from(new Set([...l,...m,...f.reduce((b,c)=>{if(!c?.id||c.type&&"llm"!==c.type)return b;let d=c.providerAlias;if(d!==j&&d!==a)return b;let e=String(c.id).trim();return""!==e&&b.push(e),b},[]),...Object.values(g||{}).reduce((b,c)=>{let d;return"string"==typeof c&&c.includes("/")&&(c.startsWith(`${j}/`)||c.startsWith(`${a}/`))&&"string"==typeof(d=c.startsWith(`${j}/`)?c.slice(j.length+1):c.slice(a.length+1))&&""!==d.trim()&&b.push(d),b},[])])))){let a=k.get(d)||D(d);c.has(a)&&(h(j,d)||i.push({id:`${j}/${d}`,object:"model",owned_by:j}))}return C(i,b,j,c,h),i}globalThis._modelsListCache||(globalThis._modelsListCache=new Map);let P=globalThis._modelsListCache;async function Q(a,b={}){let c=Array.isArray(a)?a.slice().sort().join(","):String(a),d=`${c}:${!0===b.skipDynamicFetch?"skip":"noskip"}`,e=Date.now(),g=P.get(d);if(g&&g.expiresAt>e)return g.models;let{combos:h,customModels:i,modelAliases:j,isDisabled:k,activeConnectionByProvider:l,dbAvailable:m}=await L(),n=await M(a,h,i,j,k,l,m,b),o=new Set,p=[];for(let a of n){if(!a?.id||o.has(a.id))continue;o.add(a.id);let b={id:a.id,object:"model",owned_by:a.owned_by||(a.id.includes("/")?a.id.split("/")[0]:"combo")};a.kind&&(b.kind=a.kind),a.capabilities&&(b.capabilities=a.capabilities);let c=a.capabilities||{};("llm"===a.kind||!a.kind)&&(Number.isFinite(c.contextWindow)&&(b.context_length=c.contextWindow),Number.isFinite(c.maxOutput)&&(b.max_completion_tokens=c.maxOutput)),p.push(b)}if(0===p.length){let a=await (0,f.wA)();if(a.length>0)for(let b of a)o.has(b.id)||(o.add(b.id),p.push(b))}return P.set(d,{models:p,expiresAt:e+15e3}),p.length>0&&(0,f.XH)(p).catch(()=>{}),p}let R=null,S=0;async function T(){let a=Date.now();if(R&&a<S)return R;let{combos:b,customModels:c,modelAliases:d,isDisabled:e,activeConnectionByProvider:f,dbAvailable:g}=await L(),h=await M(y,b,c,d,e,f,g),i=new Set;for(let a of h)a?.id&&i.add(a.id);return R=i,S=a+3e4,i}function U(){R=null,S=0,P.clear(),J.clear()}async function V(a,b=null){if(!b||(await T()).has(a))return!0;if("string"==typeof a&&a.includes("/")){let b,c=a.indexOf("/"),d=a.slice(0,c),f=a.slice(c+1);return!!(b=(0,e.zt)(d))&&!!("search"===f&&(b.searchConfig||b.searchViaChat||b.serviceKinds?.includes("webSearch"))||"fetch"===f&&(b.fetchConfig||b.serviceKinds?.includes("webFetch"))||"stt"===f&&(b.sttConfig||b.serviceKinds?.includes("stt"))||"tts"===f&&(b.ttsConfig||b.serviceKinds?.includes("tts"))||"image"===f&&(b.imageConfig||b.serviceKinds?.includes("image"))||"video"===f&&(b.videoConfig||b.serviceKinds?.includes("video"))||b.ttsConfig?.models?.some(a=>a.id===f)||b.sttConfig?.models?.some(a=>a.id===f)||b.imageConfig?.models?.some(a=>a.id===f)||b.embeddingConfig?.models?.some(a=>a.id===f))}return!1}},67259:(a,b,c)=>{c.d(b,{CP:()=>f,Xg:()=>d.Xg,eh:()=>e,vq:()=>d.PROVIDER_MODELS});var d=c(85577);Object.entries(c(91253).AI_PROVIDERS).filter(([,a])=>a.passthroughModels).map(([a])=>a);let e=Object.entries(d.PROVIDER_MODELS).flatMap(([a,b])=>b.map(b=>({provider:a,model:b.id,name:b.name}))),f=(a,b=null)=>a?.kind||a?.type||b},76489:(a,b,c)=>{c.d(b,{oF:()=>d.oF,tm:()=>d.tm,vF:()=>d.vF});var d=c(38599)},97774:(a,b,c)=>{c.d(b,{PA:()=>n,_S:()=>p,x2:()=>o});var d=c(71553),e=c.n(d),f=c(13398);let g=new Set(["localhost","ip6-localhost","ip6-loopback"]),h=[".internal",".local",".localhost"],i=new Set(["http:","https:"]);function j(a){let b=a.split(".");if(4!==b.length)return null;let c=0;for(let a of b){if(!/^\d{1,3}$/.test(a))return null;let b=Number(a);if(b>255)return null;c=256*c+b}return c>>>0}let k=[[0,8],[j("10.0.0.0"),8],[j("127.0.0.0"),8],[j("169.254.0.0"),16],[j("172.16.0.0"),12],[j("192.168.0.0"),16],[j("100.64.0.0"),10],[j("224.0.0.0"),4],[j("240.0.0.0"),4]];function l(a){let b=j(a);return null!==b&&k.some(([a,c])=>{let d=0xffffffff<<32-c>>>0;return(b&d)==(a&d)})}function m(a){let b=a.replace(/^\[|\]$/g,"").toLowerCase(),c=b.match(/^::ffff:(\d+\.\d+\.\d+\.\d+)$/);return c?l(c[1]):"::1"===b||"::"===b||b.startsWith("::ffff:")||b.startsWith("fe80:")||b.startsWith("fc")||b.startsWith("fd")}async function n(a){let b,c=new URL(a),d=c.hostname.toLowerCase();if(!i.has(c.protocol)||c.username||c.password)throw Error("Blocked URL: unsupported target");if(g.has(d)||h.some(a=>d.endsWith(a)))throw Error("Blocked URL: internal host");if(l(d)||d.includes(":")&&m(d))throw Error("Blocked URL: private IP");try{b=await e().lookup(d,{all:!0,verbatim:!0})}catch{throw Error("Blocked URL: DNS lookup failed")}if(!b.length||b.some(({address:a})=>l(a)||a.includes(":")&&m(a)))throw Error("Blocked URL: private IP");return{url:c,addresses:b}}async function o(a,b={}){let{url:c,addresses:d}=await n(a),e=d[0],g=new f.g6({connect:{lookup(a,b,c){c(null,e.address,e.family)}}});try{return await (0,f.hd)(c,{...b,dispatcher:g})}finally{await g.close()}}let p=`function assertTrustedTarget(rawUrl) {
|
|
2
2
|
const parsed = new URL(rawUrl);
|
|
3
3
|
const host = parsed.hostname.toLowerCase();
|
|
4
4
|
if (!["http:", "https:"].includes(parsed.protocol) || parsed.username || parsed.password) {
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use strict";exports.id=8691,exports.ids=[8691],exports.modules={26985:(a,b,c)=>{c.d(b,{CG:()=>f,f$:()=>d,oG:()=>e,zE:()=>g});let d=8,e=`
|
|
2
2
|
PRAGMA journal_mode = WAL;
|
|
3
|
-
PRAGMA synchronous = NORMAL;
|
|
3
|
+
PRAGMA synchronous = ${process.env.SQLITE_SYNCHRONOUS||"NORMAL"};
|
|
4
4
|
PRAGMA temp_store = MEMORY;
|
|
5
5
|
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)"]},proxyPoolFitness:{columns:{poolId:"TEXT NOT NULL",scope:"TEXT NOT NULL",until:"INTEGER NOT NULL",reason:"TEXT",createdAt:"TEXT NOT NULL",updatedAt:"TEXT NOT NULL"},primaryKey:"PRIMARY KEY (poolId, scope)",indexes:["CREATE INDEX IF NOT EXISTS idx_ppf_pool ON proxyPoolFitness(poolId)","CREATE INDEX IF NOT EXISTS idx_ppf_scope ON proxyPoolFitness(scope)","CREATE INDEX IF NOT EXISTS idx_ppf_until ON proxyPoolFitness(until)"]},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",context_length:"INTEGER",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",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)"]},cachedProviderModels:{columns:{providerId:"TEXT NOT NULL",modelId:"TEXT NOT NULL",kind:"TEXT DEFAULT 'llm'",ownedBy:"TEXT NOT NULL",capabilities:"TEXT",updatedAt:"INTEGER NOT NULL"},primaryKey:"PRIMARY KEY (providerId, modelId)",indexes:["CREATE INDEX IF NOT EXISTS idx_cpm_kind ON cachedProviderModels(kind)","CREATE INDEX IF NOT EXISTS idx_cpm_provider ON cachedProviderModels(providerId)"]}};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(", ")})`}},28691:(a,b,c)=>{c.d(b,{createSqlJsAdapter:()=>k});var d=c(73024),e=c.n(d),f=c(46293),g=c.n(f),h=c(26985);let i=null;async function j(){return i||(i=await g()())}async function k(a){let b=await j(),c=e().existsSync(a)?e().readFileSync(a):null,d=new b.Database(c);d.exec(h.oG);let f=!1,g=null;function i(){let b=d.export();e().writeFileSync(a,Buffer.from(b)),f=!1}function k(){f=!0,g&&clearTimeout(g),g=setTimeout(()=>{if(g=null,f)try{i()}catch(a){console.error("[sqljs] save failed:",a)}},100)}function l(a){if(!(!a||Array.isArray(a)&&0===a.length))return a}let m=()=>{if(f)try{i()}catch{}};return process.
|
|
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)"]},proxyPoolFitness:{columns:{poolId:"TEXT NOT NULL",scope:"TEXT NOT NULL",until:"INTEGER NOT NULL",reason:"TEXT",createdAt:"TEXT NOT NULL",updatedAt:"TEXT NOT NULL"},primaryKey:"PRIMARY KEY (poolId, scope)",indexes:["CREATE INDEX IF NOT EXISTS idx_ppf_pool ON proxyPoolFitness(poolId)","CREATE INDEX IF NOT EXISTS idx_ppf_scope ON proxyPoolFitness(scope)","CREATE INDEX IF NOT EXISTS idx_ppf_until ON proxyPoolFitness(until)"]},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",context_length:"INTEGER",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",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)"]},cachedProviderModels:{columns:{providerId:"TEXT NOT NULL",modelId:"TEXT NOT NULL",kind:"TEXT DEFAULT 'llm'",ownedBy:"TEXT NOT NULL",capabilities:"TEXT",updatedAt:"INTEGER NOT NULL"},primaryKey:"PRIMARY KEY (providerId, modelId)",indexes:["CREATE INDEX IF NOT EXISTS idx_cpm_kind ON cachedProviderModels(kind)","CREATE INDEX IF NOT EXISTS idx_cpm_provider ON cachedProviderModels(providerId)"]}};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(", ")})`}},28691:(a,b,c)=>{c.d(b,{createSqlJsAdapter:()=>k});var d=c(73024),e=c.n(d),f=c(46293),g=c.n(f),h=c(26985);let i=null;async function j(){return i||(i=await g()())}async function k(a){let b=await j(),c=e().existsSync(a)?e().readFileSync(a):null,d=new b.Database(c);d.exec(h.oG);let f=!1,g=null;function i(){let b=d.export();e().writeFileSync(a,Buffer.from(b)),f=!1}function k(){f=!0,g&&clearTimeout(g),g=setTimeout(()=>{if(g=null,f)try{i()}catch(a){console.error("[sqljs] save failed:",a)}},100)}function l(a){if(!(!a||Array.isArray(a)&&0===a.length))return a}let m=!1,n=()=>{if(!m&&f)try{i()}catch{}},o=()=>{n(),process.exit(0)},p=()=>{n(),process.exit(0)};return process.once("beforeExit",n),process.once("SIGINT",o),process.once("SIGTERM",p),{driver:"sql.js",run:function(a,b=[]){let c=d.prepare(a);try{c.bind(l(b)),c.step();let a=d.getRowsModified(),e=d.exec("SELECT last_insert_rowid() as id")[0]?.values?.[0]?.[0]??null;return k(),{changes:a,lastInsertRowid:e}}finally{c.free()}},get:function(a,b=[]){let c=d.prepare(a);try{if(c.bind(l(b)),c.step())return c.getAsObject();return}finally{c.free()}},all:function(a,b=[]){let c=d.prepare(a);try{c.bind(l(b));let a=[];for(;c.step();)a.push(c.getAsObject());return a}finally{c.free()}},exec:function(a){d.exec(a),k()},transaction:function(a){let b=`sp_${Math.random().toString(36).slice(2)}`;d.exec(`SAVEPOINT ${b}`);try{let c=a();return d.exec(`RELEASE ${b}`),k(),c}catch(a){try{d.exec(`ROLLBACK TO ${b}`),d.exec(`RELEASE ${b}`)}catch{}throw a}},close:function(){m||(g&&clearTimeout(g),process.removeListener("beforeExit",n),process.removeListener("SIGINT",o),process.removeListener("SIGTERM",p),f&&i(),m=!0,d.close())},raw:d}}}};
|