switchboard-router 0.9.0 → 0.9.1
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/static/chunks/{1321-ba836ca888fbad7c.js → 1321-4326712adc6f965a.js} +1 -1
- package/app/{.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page-995a96a01c24b126.js → .next/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page-772f246688672d59.js} +12 -12
- package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-d8610d9b77a2cae4.js +10 -0
- package/app/.next/static/css/d89fdbc0e71b454e.css +1 -0
- package/app/.next-cli-build/BUILD_ID +1 -1
- package/app/.next-cli-build/app-path-routes-manifest.json +4 -4
- package/app/.next-cli-build/build-manifest.json +2 -2
- package/app/.next-cli-build/prerender-manifest.json +3 -3
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/agent-library/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/agent-library/page_client-reference-manifest.js +1 -1
- 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/combos/routing/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/routing/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 +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/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js.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 +2 -2
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js.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/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/[id]/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/[id]/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/_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 +4 -4
- package/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/api/agent-library/catalog/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/agent-library/doctor/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/agent-library/export/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/agent-library/mcp/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/agent-library/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/agent-library/skills/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/agent-library/sync/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/agent-library/updates/route.js.nft.json +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/aider-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/aider-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js +10 -10
- package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/claude-full-catalog/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/claude-picker-labels/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js +1 -1
- 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/cowork-mcp-registry/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js +1 -1
- 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/droid-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/gemini-cli-settings/route.js +5 -5
- package/app/.next-cli-build/server/app/api/cli-tools/gemini-cli-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/grok-settings/route.js +6 -6
- package/app/.next-cli-build/server/app/api/cli-tools/grok-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js +3 -3
- package/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/pi-settings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/pi-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/picker-labels/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/keys/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/keys/route.js +1 -1
- package/app/.next-cli-build/server/app/api/keys/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/locale/route.js +1 -1
- package/app/.next-cli-build/server/app/api/locale/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js.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.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/mgmt/v1/combos/[id]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/mgmt/v1/combos/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/mgmt/v1/combos/[id]/strategy/route.js +1 -1
- package/app/.next-cli-build/server/app/api/mgmt/v1/combos/[id]/strategy/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/mgmt/v1/combos/route.js +1 -1
- package/app/.next-cli-build/server/app/api/mgmt/v1/combos/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/mgmt/v1/health/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/mgmt/v1/metrics/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/mgmt/v1/providers/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/mgmt/v1/routing/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/mgmt/v1/usage/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/mgmt/v1/version/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/alias/route.js +1 -1
- package/app/.next-cli-build/server/app/api/models/alias/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/availability/route.js +1 -1
- package/app/.next-cli-build/server/app/api/models/availability/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/custom/route.js +1 -1
- package/app/.next-cli-build/server/app/api/models/custom/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/disabled/route.js +1 -1
- package/app/.next-cli-build/server/app/api/models/disabled/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/test/route.js +1 -1
- package/app/.next-cli-build/server/app/api/models/test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/codex/bulk-import/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/codex/bulk-import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/api-key/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/api-key/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/import-cli-proxy/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/import-cli-proxy/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pricing/route.js +1 -1
- package/app/.next-cli-build/server/app/api/pricing/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/provider-nodes/route.js +1 -1
- package/app/.next-cli-build/server/app/api/provider-nodes/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js +1 -1
- package/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/model-probes/batch/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/model-probes/cache/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/model-probes/prepare/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/model-probes/remove-unavailable/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/model-probes/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/model-probes/verify/cancel/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/model-probes/verify/start/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/model-probes/verify/status/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 +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.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/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.nft.json +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/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/routing/feedback/route.js +1 -1
- package/app/.next-cli-build/server/app/api/routing/feedback/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/routing/insights/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/routing/learn/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/routing/stats/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/routing/versions/promote/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/routing/versions/rollback/route.js.nft.json +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/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/skills/[id]/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/token-saver/vault-stats/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/usage/[connectionId]/codex-reset-credits/route.js.nft.json +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/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.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.nft.json +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.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.nft.json +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.nft.json +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.nft.json +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.nft.json +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.nft.json +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.nft.json +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 +4 -4
- package/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/callback.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/callback.segments/callback/__PAGE__.segment.rsc +4 -4
- 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 +4 -4
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/favicon.ico/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/index.html +1 -1
- package/app/.next-cli-build/server/app/index.rsc +4 -4
- package/app/.next-cli-build/server/app/index.segments/__PAGE__.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/index.segments/_full.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/index.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/landing/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/landing/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/landing.html +1 -1
- package/app/.next-cli-build/server/app/landing.rsc +4 -4
- package/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/landing.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/landing.segments/landing/__PAGE__.segment.rsc +4 -4
- 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/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/login.segments/login/__PAGE__.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/manifest.webmanifest/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app-paths-manifest.json +4 -4
- package/app/.next-cli-build/server/chunks/1350.js +1 -1
- package/app/.next-cli-build/server/chunks/194.js +1 -1
- package/app/.next-cli-build/server/chunks/369.js +2 -2
- package/app/.next-cli-build/server/chunks/3735.js +2 -2
- package/app/.next-cli-build/server/chunks/5616.js +1 -1
- package/app/.next-cli-build/server/chunks/5717.js +2 -2
- package/app/.next-cli-build/server/chunks/5781.js +1 -1
- package/app/.next-cli-build/server/chunks/6052.js +1 -1
- package/app/.next-cli-build/server/chunks/6274.js +1 -1
- package/app/.next-cli-build/server/chunks/6328.js +1 -1
- package/app/.next-cli-build/server/chunks/646.js +17 -0
- package/app/.next-cli-build/server/chunks/6985.js +1 -1
- package/app/.next-cli-build/server/chunks/7454.js +1 -1
- package/app/.next-cli-build/server/chunks/869.js +1 -1
- package/app/.next-cli-build/server/chunks/8775.js +1 -1
- package/app/.next-cli-build/server/chunks/8998.js +8 -8
- package/app/.next-cli-build/server/middleware-build-manifest.js +1 -1
- package/app/.next-cli-build/server/middleware.js +2 -2
- package/app/.next-cli-build/server/pages/404.html +1 -1
- package/app/.next-cli-build/server/pages/500.html +1 -1
- package/app/.next-cli-build/server/server-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/server-reference-manifest.json +1 -1
- package/app/.next-cli-build/static/chunks/{1321-ba836ca888fbad7c.js → 1321-4326712adc6f965a.js} +1 -1
- package/app/{.next/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page-995a96a01c24b126.js → .next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page-772f246688672d59.js} +12 -12
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-d8610d9b77a2cae4.js +10 -0
- package/app/.next-cli-build/static/css/d89fdbc0e71b454e.css +1 -0
- package/app/open-sse/identity/tls/bin/darwin/arm64/switchboard-claude-tls +0 -0
- package/app/open-sse/identity/tls/bin/darwin/x64/switchboard-claude-tls +0 -0
- package/app/open-sse/identity/tls/bin/linux/arm64/switchboard-claude-tls +0 -0
- package/app/open-sse/identity/tls/bin/linux/x64/switchboard-claude-tls +0 -0
- package/app/open-sse/identity/tls/bin/win32/arm64/switchboard-claude-tls.exe +0 -0
- package/app/open-sse/identity/tls/bin/win32/x64/switchboard-claude-tls.exe +0 -0
- package/app/package.json +5 -2
- package/package.json +1 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-b7ff5b3522a3bf1f.js +0 -10
- package/app/.next/static/css/23b999cda6943547.css +0 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-b7ff5b3522a3bf1f.js +0 -10
- package/app/.next-cli-build/static/css/23b999cda6943547.css +0 -1
- /package/app/.next/static/{87MOk9ZQAnrFin72qerKV → 0ignrkqK9akTSbGxH0G97}/_buildManifest.js +0 -0
- /package/app/.next/static/{87MOk9ZQAnrFin72qerKV → 0ignrkqK9akTSbGxH0G97}/_ssgManifest.js +0 -0
- /package/app/.next-cli-build/static/{87MOk9ZQAnrFin72qerKV → 0ignrkqK9akTSbGxH0G97}/_buildManifest.js +0 -0
- /package/app/.next-cli-build/static/{87MOk9ZQAnrFin72qerKV → 0ignrkqK9akTSbGxH0G97}/_ssgManifest.js +0 -0
|
@@ -12,4 +12,4 @@
|
|
|
12
12
|
ON CONFLICT(id) DO UPDATE SET
|
|
13
13
|
provider=excluded.provider, authType=excluded.authType, name=excluded.name,
|
|
14
14
|
email=excluded.email, priority=excluded.priority, isActive=excluded.isActive,
|
|
15
|
-
data=excluded.data, updatedAt=excluded.updatedAt`,[c.id,c.provider,c.authType,c.name,c.email,c.priority,c.isActive,c.data,c.createdAt,c.updatedAt])}async function r(a={}){let b=await (0,e.c)(),c=[],d=[];a.provider&&(c.push("provider = ?"),d.push(a.provider)),void 0!==a.isActive&&(c.push("isActive = ?"),d.push(+!!a.isActive));let f=`SELECT * FROM providerConnections${c.length?` WHERE ${c.join(" AND ")}`:""}`,g=b.all(f,d).map(o);return g.sort((a,b)=>(a.priority
|
|
15
|
+
data=excluded.data, updatedAt=excluded.updatedAt`,[c.id,c.provider,c.authType,c.name,c.email,c.priority,c.isActive,c.data,c.createdAt,c.updatedAt])}async function r(a={}){let b=await (0,e.c)(),c=[],d=[];a.provider&&(c.push("provider = ?"),d.push(a.provider)),void 0!==a.isActive&&(c.push("isActive = ?"),d.push(+!!a.isActive));let f=`SELECT * FROM providerConnections${c.length?` WHERE ${c.join(" AND ")}`:""}`,g=b.all(f,d).map(o);return g.sort((a,b)=>(a.priority??999)-(b.priority??999)),g}async function s(a){return o((await (0,e.c)()).get("SELECT * FROM providerConnections WHERE id = ?",[a]))}async function t(a=j){try{let b=Object.create(null),c=Number.isFinite(a)?a:j,d=Date.now();for(let a of(await r())){let e=a.lastQuota,f=Number(e?.at),g=Number(e?.remainingPercentage);if(!Number.isFinite(f)||d-f>c||!Number.isFinite(g))continue;let h=b[a.provider];(!Number.isFinite(h)||g>h)&&(b[a.provider]=g)}return b}catch{return{}}}function u(a,b){let c=a.all("SELECT * FROM providerConnections WHERE provider = ?",[b]).map(o);c.sort((a,b)=>{let c=(a.priority??999)-(b.priority??999);return 0!==c?c:new Date(b.updatedAt||0)-new Date(a.updatedAt||0)}),c.forEach((b,c)=>{a.run("UPDATE providerConnections SET priority = ? WHERE id = ?",[c+1,b.id])})}async function v(a){let b,c=await (0,e.c)(),f=new Date().toISOString();return c.transaction(()=>{let e=c.all("SELECT * FROM providerConnections WHERE provider = ?",[a.provider]).map(o),g=null;if("oauth"===a.authType&&a.email){let b=a.providerSpecificData?.username,c=a.providerSpecificData?.chatgptAccountId;g=e.find(d=>{if("oauth"!==d.authType||d.email!==a.email)return!1;let e=d.providerSpecificData?.chatgptAccountId;if(c&&e)return c===e;if(c&&!e||!c&&e)return!1;let f=d.providerSpecificData?.username;return b&&f?b===f:!b&&!f})}else"apikey"===a.authType&&a.name&&(g=e.find(b=>"apikey"===b.authType&&b.name===a.name));if(g){let d={...g,...a,updatedAt:f};q(c,d),b=d;return}let h=a.name||null;h||"oauth"!==a.authType&&"access_token"!==a.authType||(h=a.email||`Account ${e.length+1}`);let i=a.priority;null==i&&(i=e.reduce((a,b)=>Math.max(a,b.priority||0),0)+1);let j={id:(0,d.A)(),provider:a.provider,authType:a.authType||"oauth",name:h,priority:i,isActive:void 0===a.isActive||a.isActive,createdAt:f,updatedAt:f};for(let b of k)void 0!==a[b]&&null!==a[b]&&(j[b]=a[b]);a.providerSpecificData&&Object.keys(a.providerSpecificData).length>0&&(j.providerSpecificData=a.providerSpecificData),void 0!==a.email&&(j.email=a.email),q(c,j),u(c,a.provider),b=j}),b}async function w(a,b){let c,d=await (0,e.c)();return d.transaction(()=>{let e=d.get("SELECT * FROM providerConnections WHERE id = ?",[a]);if(!e){c=null;return}let f=o(e),g={...f,...b,updatedAt:new Date().toISOString()};q(d,g),f.provider!==g.provider&&(0,i.uQ)(d,f.provider),void 0!==b.priority&&u(d,f.provider),c=g}),c}async function x(a){let b=await (0,e.c)(),c=!1;return b.transaction(()=>{let d=b.get("SELECT provider FROM providerConnections WHERE id = ?",[a]);d&&(b.run("DELETE FROM providerConnections WHERE id = ?",[a]),u(b,d.provider),(0,i.uQ)(b,d.provider),c=!0)}),c}async function y(a){let b=await (0,e.c)(),c=0;return b.transaction(()=>{c=b.get("SELECT COUNT(*) AS n FROM providerConnections WHERE provider = ?",[a])?.n||0,b.run("DELETE FROM providerConnections WHERE provider = ?",[a]),(0,i.uQ)(b,a)}),c}async function z(a){let b=await (0,e.c)();b.transaction(()=>u(b,a))}async function A(){let a=await (0,e.c)(),b=["displayName","email","globalPriority","defaultModel","accessToken","refreshToken","expiresAt","tokenType","scope","projectId","apiKey","testStatus","lastTested","lastError","lastErrorAt","rateLimitedUntil","expiresIn","consecutiveUseCount"],c=0;return a.transaction(()=>{for(let d of a.all("SELECT * FROM providerConnections")){let e=o(d),f=!1;for(let a of b)(null===e[a]||void 0===e[a])&&a in e&&(delete e[a],c++,f=!0);e.providerSpecificData&&0===Object.keys(e.providerSpecificData).length&&(delete e.providerSpecificData,c++,f=!0),f&&q(a,e)}}),c}},38044:(a,b,c)=>{c.d(b,{BA:()=>y,E8:()=>t,MG:()=>q,O0:()=>A,Yh:()=>x,cb:()=>v,lO:()=>z,ue:()=>B,ws:()=>w,wu:()=>r});var d=c(77598),e=c.n(d),f=c(73024),g=c.n(f),h=c(76760),i=c.n(h),j=c(49120);let k="aes-256-gcm",l="enc:v1:",m=i().join(j.nJ,"auth","data-key"),n="switchboard-at-rest-v1",o=null;function p(){if(o)return o;try{let a=g().readFileSync(m);if(32===a.length)return o=a}catch{}try{let a=i().join(j.nJ,"machine-id"),b=n;try{b=g().readFileSync(a,"utf8").trim()+n}catch{}o=b===n?e().randomBytes(32):e().createHash("sha256").update(b).digest()}catch{o=e().randomBytes(32)}try{g().mkdirSync(i().dirname(m),{recursive:!0,mode:448}),g().writeFileSync(m,o,{mode:384})}catch{}return o}function q(a){if(null==a||""===a||"string"!=typeof a||a.startsWith(l))return a;let b=p(),c=e().randomBytes(12),d=e().createCipheriv(k,b,c),f=Buffer.concat([d.update(a,"utf8"),d.final()]),g=d.getAuthTag();return`${l}${c.toString("hex")}:${g.toString("hex")}:${f.toString("hex")}`}function r(a){if(null==a||""===a||"string"!=typeof a||!a.startsWith(l))return a;try{let[b,c,d]=a.slice(l.length).split(":");if(!b||!c||!d)return null;let f=p(),g=e().createDecipheriv(k,f,Buffer.from(b,"hex"));return g.setAuthTag(Buffer.from(c,"hex")),g.update(Buffer.from(d,"hex"),void 0,"utf8")+g.final("utf8")}catch{return null}}function s(a){return e().createHash("sha256").update(`sb-key:${a}`).digest("hex")}function t(a){return a&&"string"==typeof a?a.length<=12?a.slice(0,4)+"…":a.slice(0,10)+"…":""}function u(a){return"string"==typeof a&&/^[a-f0-9]{32}$/.test(a)?e().createHash("sha256").update(`sb-key-lookup:${a}`).digest("hex"):null}function v(a){if("string"!=typeof a)return null;let b=a.split("-");return 4===b.length&&"sk"===b[0]&&b[1]&&/^[a-f0-9]{8}$/.test(b[3])?u(b[2]):null}function w(a,b=v(a)){if(!b)return`v1:${t(a)}:${s(a)}`;let c=e().randomBytes(16),d=e().scryptSync(a,c,32,{N:16384,r:8,p:1,maxmem:0x4000000});return`v2:${b}:${t(a)}:${c.toString("hex")}:${d.toString("hex")}`}function x(a){if("string"!=typeof a||!a.startsWith("v2:"))return a;let b=a.split(":");if(5!==b.length||!/^[a-f0-9]{32}$/.test(b[1]))return a;let c=u(b[1]);return`v2:${c}:${b[2]}:${b[3]}:${b[4]}`}function y(a){if(!a||"string"!=typeof a)return{version:0,lookupDigest:null,prefix:"",hash:null,salt:null,legacy:!0,raw:a};let b=x(a),c=b.split(":");return b.startsWith("v2:")&&5===c.length?{version:2,lookupDigest:/^[a-f0-9]{64}$/.test(c[1])?c[1]:null,prefix:c[2],salt:c[3],hash:c[4],legacy:!1,raw:null}:b.startsWith("v2:")&&4===c.length?{version:2,lookupDigest:null,prefix:c[1],salt:c[2],hash:c[3],legacy:!1,raw:null}:b.startsWith("v1:")&&c.length>=3?{version:1,lookupDigest:null,prefix:c[1],salt:null,hash:c.slice(2).join(":"),legacy:!1,raw:null}:{version:0,lookupDigest:v(b),prefix:t(b),hash:null,salt:null,legacy:!0,raw:b}}function z(a,b){if("string"!=typeof a||"string"!=typeof b)return!1;let c=e().createHash("sha256").update(a).digest(),d=e().createHash("sha256").update(b).digest();return e().timingSafeEqual(c,d)}function A(a,b){if(!b||"string"!=typeof b)return!1;let c=y(a);if(c.legacy)return z(String(c.raw||""),b);if(1===c.version)return!!c.hash&&z(c.hash,s(b));if(!c.salt||!c.hash)return!1;try{let a=e().scryptSync(b,Buffer.from(c.salt,"hex"),32,{N:16384,r:8,p:1,maxmem:0x4000000});return z(a.toString("hex"),c.hash)}catch{return!1}}async function B(a,b){if(!b||"string"!=typeof b)return!1;let c=y(a);if(2!==c.version)return A(a,b);if(!c.salt||!c.hash)return!1;try{let a=await new Promise((a,d)=>{e().scrypt(b,Buffer.from(c.salt,"hex"),32,{N:16384,r:8,p:1,maxmem:0x4000000},(b,c)=>{b?d(b):a(c)})});return z(a.toString("hex"),c.hash)}catch{return!1}}}};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";exports.id=6052,exports.ids=[6052],exports.modules={6547:(a,b,c)=>{c.d(b,{$3:()=>p,$R:()=>h,Dm:()=>r,E$:()=>j,Zb:()=>g,jI:()=>i,ti:()=>m});var d=c(92675),e=c(70628),f=c(13247);let g=["Accept","Authorization","Content-Type","User-Agent","X-Claude-Code-Session-Id","X-Stainless-Arch","X-Stainless-Lang","X-Stainless-OS","X-Stainless-Package-Version","X-Stainless-Retry-Count","X-Stainless-Runtime","X-Stainless-Runtime-Version","X-Stainless-Timeout","anthropic-beta","anthropic-dangerous-direct-browser-access","anthropic-version","x-app","x-client-request-id","Connection","Host","Accept-Encoding","Content-Length"],h=g.filter(a=>"X-Stainless-Timeout"!==a),i={"claude-cli":{id:"claude-cli",tls:"claude-code",alpn:["http/1.1"],headerOrder:g,source:{npm:"@anthropic-ai/claude-code",capture:"claude-code-native",tlsSpec:"claude-code"},headers:function(a){let b=a?.version||"2.1.220",c=a?.entrypoint||"cli";return{"Anthropic-Version":d.b8,"Anthropic-Beta":a?.betas||"claude-code-20250219,oauth-2025-04-20,interleaved-thinking-2025-05-14,context-management-2025-06-27,prompt-caching-scope-2026-01-05,advanced-tool-use-2025-11-20,effort-2025-11-24,structured-outputs-2025-12-15,fast-mode-2026-02-01,redact-thinking-2026-02-12,token-efficient-tools-2026-03-28","Anthropic-Dangerous-Direct-Browser-Access":"true","User-Agent":a?.userAgent||`claude-cli/${b} (external, ${c})`,"X-App":"cli","X-Stainless-Runtime-Version":a?.runtimeVersion||process.version,"X-Stainless-Package-Version":a?.packageVersion||"0.94.0","X-Stainless-Runtime":"node","X-Stainless-Lang":"js","X-Stainless-Arch":a?.arch||(0,e.Tc)(),"X-Stainless-Os":a?.os||(0,e.vv)(),"X-Stainless-Timeout":"600"}}},"codex-cli":{id:"codex-cli",tls:"chrome",alpn:["h2","http/1.1"],headerOrder:["Authorization","Content-Type","originator","session_id","User-Agent","version","chatgpt-account-id"],source:{npm:"@openai/codex"},headers:function(a){let b=a?.version||"0.149.0";return{originator:"codex_cli_rs","User-Agent":`codex_cli_rs/${b}`,version:b}}},"gemini-cli":{id:"gemini-cli",tls:"node",alpn:["h2","http/1.1"],headerOrder:["Content-Type","Authorization","User-Agent","X-Goog-Api-Client","Accept"],source:{npm:"@google/gemini-cli"},headers:function(a){let b=a?.version||"0.56.0",c=a?.upstreamModel||"unknown",d="ia32"===(0,e.LY)()?"x86":(0,e.LY)();return{"User-Agent":`GeminiCLI/${b}/${c} (${(0,e.ol)()}; ${d}; terminal)`,"X-Goog-Api-Client":a?.apiClient||"google-genai-sdk/1.41.0 gl-node/v22.19.0"}}},"openai-node":{id:"openai-node",tls:"node",alpn:["h2","http/1.1"],headerOrder:["Authorization","Content-Type","User-Agent"],source:{npm:"openai"},headers:function(){return{"User-Agent":`OpenAI/NodeJS/${process.version.replace(/^v/,"")}`}}},cline:{id:"cline",tls:"node",alpn:["h2","http/1.1"],headerOrder:["Authorization","Content-Type","HTTP-Referer","X-Title","User-Agent","X-PLATFORM","X-PLATFORM-VERSION","X-CLIENT-TYPE","X-CLIENT-VERSION","X-CORE-VERSION","X-IS-MULTIROOT"],source:{npm:"cline"},headers:function(a){let b=a?.version||"3.0.0";return{"HTTP-Referer":"https://cline.bot","X-Title":"Cline","User-Agent":`Cline/${b}`,"X-PLATFORM":(0,e.ol)()||"unknown","X-PLATFORM-VERSION":process.version||"unknown","X-CLIENT-TYPE":"extension","X-CLIENT-VERSION":b,"X-CORE-VERSION":b,"X-IS-MULTIROOT":"false"}}},chrome:{id:"chrome",tls:"chrome",alpn:["h2","http/1.1"],headerOrder:["User-Agent","Accept","Accept-Language","Accept-Encoding"],source:{capture:"chrome"},headers:function(){return{"User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36"}}},cursor:{id:"cursor",tls:"node",alpn:["h2","http/1.1"],headerOrder:[],source:{capture:"cursor"},headers:()=>({})},antigravity:{id:"antigravity",tls:"node",alpn:["h2","http/1.1"],headerOrder:["Authorization","Content-Type","User-Agent","Accept"],source:{capture:"antigravity"},headers:function(a){let b=a?.version||"1.107.0";return{"User-Agent":`antigravity/${b} ${(0,e.ol)()}/${(0,e.LY)()}`}}},copilot:{id:"copilot",tls:"node",alpn:["h2","http/1.1"],headerOrder:["Authorization","Content-Type","copilot-integration-id","editor-version","editor-plugin-version","user-agent","openai-intent","x-github-api-version"],source:{capture:"github-copilot"},headers:function(a){let b=a?.vscodeVersion||"1.110.0",c=a?.chatVersion||a?.version||"0.38.0";return{"copilot-integration-id":"vscode-chat","editor-version":`vscode/${b}`,"editor-plugin-version":`copilot-chat/${c}`,"user-agent":`GitHubCopilotChat/${c}`,"openai-intent":"conversation-panel","x-github-api-version":a?.apiVersion||"2025-04-01","x-vscode-user-agent-library-version":"electron-fetch","X-Initiator":"user"}}},qwen:{id:"qwen",tls:"node",alpn:["h2","http/1.1"],headerOrder:["Authorization","Content-Type","User-Agent","X-Stainless-Arch","X-Stainless-Os"],source:{capture:"qwen-code"},headers:function(a){let{os:b,arch:c,stainlessOs:d,stainlessArch:f}=a?.qwenOsArch||{os:"win32"===(0,e.ol)()?"windows":"darwin"===(0,e.ol)()?"darwin":"linux",arch:"arm64"===(0,e.LY)()?"arm64":"x64",stainlessOs:(0,e.vv)(),stainlessArch:(0,e.Tc)()},g=a?.version||"0.12.3",h=`QwenCode/${g} (${b}; ${c})`;return{"User-Agent":h,"X-DashScope-UserAgent":h,"X-Stainless-Arch":f,"X-Stainless-Os":d,"X-Stainless-Lang":"js","X-Stainless-Runtime":"node","X-Stainless-Runtime-Version":a?.runtimeVersion||process.version,"X-Stainless-Package-Version":a?.packageVersion||"5.11.0"}}},kimi:{id:"kimi",tls:"node",alpn:["h2","http/1.1"],headerOrder:["Authorization","Content-Type","X-Msh-Version","X-Msh-Device-Model"],source:{capture:"kimi-code"},headers:function(){return{"X-Msh-Version":"2.1.2","X-Msh-Device-Model":`${(0,e.ol)()} ${(0,e.LY)()}`}}},"grok-cli":{id:"grok-cli",tls:"node",alpn:["h2","http/1.1"],headerOrder:["Authorization","Content-Type","User-Agent"],source:{capture:"grok-cli"},headers:function(a){return{"User-Agent":`grok-cli/${a?.version||"1.0.0"}`}}},"grok-build":{id:"grok-build",tls:"node",alpn:["h2","http/1.1"],headerOrder:["Authorization","Content-Type","Accept","User-Agent","x-grok-client-identifier","x-grok-client-version"],source:{capture:"@xai-official/grok 0.2.99"},headers:function(){return{"User-Agent":`grok-shell/${f.uG} (linux; x86_64)`,"x-grok-client-identifier":f.rK,"x-grok-client-version":f.uG}}}};function j(a){return i[a]||i["openai-node"]}let k=new Set(["openai","openai-responses","openai-compat"]),l=new Set(["claude"]);function m(a,b={}){if("string"==typeof a&&a)return a;if(a&&"object"==typeof a&&a.profile)return a.profile;let c=b.format||"",d=b.provider||"";return"claude"===c||l.has(c)||"claude"===d||d.startsWith("anthropic-compatible")?"claude-cli":"codex"===d?"codex-cli":"gemini-cli"===d?"gemini-cli":"antigravity"===d?"antigravity":"github"===d?"copilot":"qwen"===d?"qwen":"cline"===d||"clinepass"===d?"cline":"kimi"===d||"kimi-coding"===d?"kimi":"xai"===d?"grok-cli":"grok-cli"===d?"grok-build":"grok-web"===d?"chrome":"cursor"===d||"cursor"===c?"cursor":(k.has(c),"openai-node")}let n=new Set(["user-agent","anthropic-beta","x-stainless-package-version","x-stainless-runtime-version","x-stainless-os","x-stainless-arch"]),o=new Set(["x-stainless-helper-method","x-stainless-retry-count"]);function p(a,b,c={}){var d;let e,f=j(b),g=(d=c.snapshot,"function"==typeof(e=j(b)).headers?e.headers(d):{...e.headers||{}});!0===c.stream&&"claude-cli"===b?g["X-Stainless-Helper-Method"]="stream":"claude-cli"===b&&delete g["X-Stainless-Helper-Method"],"number"==typeof c.retryCount&&"claude-cli"===b&&(g["X-Stainless-Retry-Count"]=String(c.retryCount));let h=new Map;for(let[b,c]of Object.entries(a||{})){let a=b.toLowerCase();("authorization"===a||"x-api-key"===a||"api-key"===a||"cookie"===a)&&h.set(a,[b,c])}let i=q(a,g),k=c.overlay&&"object"==typeof c.overlay?"claude-cli"===b?function(a,b){let c,d,e={...a||{}},f=0!==(d=Object.values(c=Object.fromEntries([...n].map(a=>{let b;return[a,(b=Object.keys(e||{}).find(b=>b.toLowerCase()===a))?e[b]:void 0]}))).filter(a=>null!=a).length)&&d===n.size&&String(c["user-agent"]).match(/claude-(?:cli|code)\/(\d+\.\d+\.\d+)/i)?.[1]===b?.version;for(let a of Object.keys(e)){let b=a.toLowerCase();(o.has(b)||!f&&n.has(b))&&delete e[a]}return e}(c.overlay,c.snapshot):{...c.overlay}:{};for(let a of Object.keys(k))h.has(a.toLowerCase())&&delete k[a];let l=q(i,k);if("claude-cli"===b){if(!0===c.stream)l["X-Stainless-Helper-Method"]="stream";else for(let a of Object.keys(l))"x-stainless-helper-method"===a.toLowerCase()&&delete l[a];if("number"==typeof c.retryCount){for(let a of Object.keys(l))"x-stainless-retry-count"===a.toLowerCase()&&delete l[a];l["X-Stainless-Retry-Count"]=String(c.retryCount)}}for(let[a,[b,c]]of h){for(let b of Object.keys(l))b.toLowerCase()===a&&delete l[b];l[b]=c}return f?.headerOrder?r(l,f.headerOrder):l}function q(...a){let b={};for(let c of a)for(let[a,d]of Object.entries(c||{})){let c=Object.keys(b).find(b=>b.toLowerCase()===a.toLowerCase());c&&delete b[c],b[a]=d}return b}function r(a,b){if(!b||!b.length)return{...a};let c=new Set,d={},e=new Map;for(let[b,c]of Object.entries(a))e.set(b.toLowerCase(),[b,c]);for(let a of b){let b=e.get(a.toLowerCase());b&&(d[b[0]]=b[1],c.add(a.toLowerCase()))}for(let[b,e]of Object.entries(a))c.has(b.toLowerCase())||(d[b]=e);return d}},35570:(a,b,c)=>{c.d(b,{I2:()=>A,Iq:()=>B,Kn:()=>v,dV:()=>w,zi:()=>x});var d=c(73024),e=c(76760),f=c(77598),g=c(6547),h=c(70628);let i=["claude-cli","codex-cli","gemini-cli"],j=new Map,k=new Map,l=new Set,m=null;function n(){let a=process.env.DATA_DIR||e.join(process.env.HOME||process.env.USERPROFILE||".",".switchboard");return e.join(a,"identity")}function o(a){return e.join(n(),`${a}.json`)}let p=function(){try{return JSON.parse(d.readFileSync(e.join(process.cwd(),"open-sse","identity","snapshots","versions.json"),"utf8"))}catch{try{return JSON.parse(d.readFileSync(new c.U(c(94552)),"utf8"))}catch{return{}}}}();function q(a){let b=p[a],c=b?.version;if(!c)return null;if("claude-cli"!==a)return{version:c,latestVersion:b.latestVersion};let d=b.tlsSpecRev||c;return{version:c,billingVersion:c,tlsSpecRev:d,latestVersion:b.latestVersion,capturedAt:b.capturedAt,entrypoint:"cli",userAgent:`claude-cli/${c} (external, cli)`,packageVersion:b.packageVersion||"0.94.0",runtimeVersion:b.runtimeVersion||"v22.19.0",betas:b.betas||"claude-code-20250219,oauth-2025-04-20"}}function r(a){let b=String(a||"").split(".").map(Number);return 3===b.length&&b.every(Number.isInteger)?b:null}function s(a){let b=String(a?.tlsSpecRev||"").match(/(\d+\.\d+\.\d+)/);return b?.[1]||null}function t(a,b){let c=r(a),d=r(b);if(!c||!d)return 0;for(let a=0;a<3;a++)if(c[a]!==d[a])return c[a]-d[a];return 0}function u(a){return!!(a?.version&&a?.billingVersion===a.version&&s(a)===a.version&&a.version===(z(p["claude-cli"]?.tlsSpecRev)||p["claude-cli"]?.version||null)&&a?.userAgent?.includes(`claude-cli/${a.version}`)&&a?.packageVersion&&a?.runtimeVersion&&a?.betas)}function v(a){return{version:a?.version||null,billingVersion:a?.billingVersion||null,tlsVersion:s(a),userAgentVersion:z(a?.userAgent)}}function w(a){if(j.has(a))return j.get(a);let b=null;try{b=JSON.parse(d.readFileSync(o(a),"utf8"))}catch{b=q(a)}return"claude-cli"!==a||u(b)||(b=q(a)),b&&j.set(a,b),b}function x(a){let b=w(a);return"claude-cli"!==a||u(b)?b:q(a)}function y(a,b){if(b&&"object"==typeof b){j.set(a,b);try{d.mkdirSync(n(),{recursive:!0}),d.writeFileSync(o(a),JSON.stringify(b,null,2))}catch{}}}function z(a){if("string"!=typeof a)return null;let b=a.match(/claude-cli\/(\d+\.\d+\.\d+)/i)||a.match(/codex_cli_rs\/(\d+\.\d+\.\d+)/i)||a.match(/GeminiCLI\/(\d+\.\d+\.\d+)/i)||a.match(/Cline\/(\d+\.\d+\.\d+)/i)||a.match(/antigravity\/(\d+\.\d+\.\d+)/i)||a.match(/QwenCode\/(\d+\.\d+\.\d+)/i)||a.match(/GitHubCopilotChat\/(\d+\.\d+\.\d+)/i);return b?b[1]:null}function A(a,b){let c=function(a){let b={};if(!a)return b;for(let[c,d]of Object.entries(a))b[c.toLowerCase()]=d;return b}(b),d=c["user-agent"],e=z(d);if(!d||!e)return!1;if("claude-cli"===a){let b=c["x-stainless-package-version"],f=c["x-stainless-runtime-version"],g=c["anthropic-beta"];if(!b||!f||!g)return!1;let h=x(a)||{},i=s(h);return i&&e!==i?(C(a,`harvest ${e} does not match TLS capture ${h.tlsSpecRev}`),!1):(y(a,{...h,version:e,billingVersion:e,userAgent:d,packageVersion:b,runtimeVersion:f,betas:g,os:h.os||c["x-stainless-os"],arch:h.arch||c["x-stainless-arch"],entrypoint:/\(external,\s*([^)]+)\)/.exec(d)?.[1]||"cli",harvestedAt:Date.now()}),!0)}if("copilot"===a){let b=String(c["editor-plugin-version"]||"").match(/copilot-chat\/(\d+\.\d+\.\d+)/i)?.[1],f=String(c["editor-version"]||"").match(/vscode\/(\d+\.\d+\.\d+)/i)?.[1],g=c["x-github-api-version"];return!!b&&b===e&&!!f&&!!g&&(y(a,{...w(a),version:e,chatVersion:b,vscodeVersion:f,apiVersion:g,userAgent:d,harvestedAt:Date.now()}),!0)}return y(a,{...w(a),version:e,userAgent:d,harvestedAt:Date.now()}),!0}function B(a){let b=a||"anonymous";if(k.has(b))return k.get(b);let c=(0,f.createHash)("sha256").update(`device:${b}`).digest("hex"),d={buildHash:c.slice(0,3),deviceId:c,accountUuid:`${c.slice(0,8)}-${c.slice(8,12)}-4${c.slice(13,16)}-a${c.slice(17,20)}-${c.slice(20,32)}`,os:(0,h.vv)(),arch:(0,h.Tc)()};return k.set(b,d),d}function C(a,b){l.has(a)||(l.add(a),console.warn(`[IDENTITY_STALE] ${a}: ${b}`))}async function D(a,b){let c=g.jI[a]?.source?.npm;if(!c)return null;let d=await b(`https://registry.npmjs.org/${encodeURIComponent(c)}/latest`,{headers:{Accept:"application/json"}});if(!d.ok)return null;let e=await d.json();return r(e?.version)?e.version:null}async function E(a=globalThis.fetch){"function"==typeof a&&await Promise.all(i.map(async b=>{try{let c=await D(b,a);if(!c)return;let d=x(b)||q(b)||{};if("claude-cli"===b){t(c,d.version)>0&&(y(b,{...d,latestVersion:c,checkedAt:Date.now()}),C(b,`npm ${c} is ahead of captured tuple ${d.version}`));return}if(0>=t(c,d.version))return;let e="codex-cli"===b?`codex_cli_rs/${c}`:d.userAgent;y(b,{...d,version:c,...e?{userAgent:e}:{},checkedAt:Date.now()})}catch{}}))}"1"!==process.env.SWITCHBOARD_DISABLE_IDENTITY_POLL&&queueMicrotask(()=>(function(a=globalThis.fetch){return m||"function"!=typeof a||(E(a),m=setInterval(()=>void E(a),216e5),m.unref?.()),m})())},39211:(a,b,c)=>{c.d(b,{fX:()=>n});let d=/switchboard/i,e=/Switchboard\//i,f="https://github.com/Vijay-Duke/switchboard-router",g=new Set(["authorization","x-api-key","api-key","cookie"]);function h(a){return g.has(String(a).toLowerCase())}function i(a){let b={};for(let[c,g]of a?a instanceof Headers?[...a.entries()]:Object.entries(a):[])null!=g&&!function(a,b){let c=String(a),g=null==b?"":String(b),i=c.toLowerCase();return!!(i.startsWith("x-switchboard-")||"x-client-type"===i&&/^switchboard$/i.test(g.trim())||"x-msh-platform"===i&&/^switchboard$/i.test(g.trim())||"user-agent"===i&&e.test(g)||d.test(c)&&!h(c)||d.test(g)&&!h(c)||g.includes(f))}(c,g)&&(b[c]=String(g));return b}Object.freeze({SWITCHBOARD_RE:d,SWITCHBOARD_UA_RE:e,SWITCHBOARD_GITHUB:f});var j=c(6547),k=c(35570);let l={"claude-cli":"claude-cli/2.1.220 (external, cli)","codex-cli":"codex_cli_rs/0.149.0","gemini-cli":"GeminiCLI/0.56.0/unknown (linux; x64; terminal)",cline:"Cline/3.0.0","openai-node":"OpenAI/NodeJS/22",chrome:"Mozilla/5.0",antigravity:"antigravity/1.107.0 linux/x64",copilot:"GitHubCopilotChat/0.38.0",qwen:"QwenCode/0.12.3 (linux; x64)","grok-cli":"grok-cli/1.0.0","grok-build":"grok-shell/0.2.99"};function m(a){return Object.keys(a).find(a=>"user-agent"===a.toLowerCase())}function n(a,b={}){let c=i(a),d=(0,j.ti)(b.identity,{format:b.format,provider:b.provider}),e=b.snapshot||(0,k.zi)(d),f="claude-cli"===d?(0,k.Iq)(b.credentialId):null,g=(0,j.$3)(c,d,{snapshot:f?{...e,os:f.os,arch:f.arch}:e,overlay:b.overlay,stream:b.stream,retryCount:b.retryCount}),h=(0,j.E$)(d),o=i(g);if("claude-cli"===d&&b.requestPath?.startsWith("/v1/messages/count_tokens")){for(let a of Object.keys(o))"x-stainless-timeout"===a.toLowerCase()&&delete o[a];o=(0,j.Dm)(o,j.$R)}if(!m(o)&&"cursor"!==d){let a=e?.userAgent||l[d]||l["openai-node"];o["User-Agent"]=a}return"claude-cli"===d&&function(a,b){let c=(0,k.Kn)(b),d=m(a),e=String(d?a[d]:"").match(/claude-(?:cli|code)\/(\d+\.\d+\.\d+)/i)?.[1]||null;if(!c.version||c.billingVersion!==c.version||c.tlsVersion!==c.version||c.userAgentVersion!==c.version||e!==c.version)throw Error(`Claude identity mismatch: ua=${e||c.userAgentVersion} version=${c.version} billing=${c.billingVersion} tls=${c.tlsVersion}`)}(o,e),{headers:i(o),profileId:d,tls:h?.tls||"node",alpn:h?.alpn||["h2","http/1.1"],tlsSpecRev:e?.tlsSpecRev}}},46052:(a,b,c)=>{let d;c.d(b,{Fm:()=>L});var e=c(27910),f=c(60290),g=c(39211),h=c(6547),i=c(31421),j=c(51455),k=c(76760),l=c(73136),m=c(57075);let n="2.1.220",o=Object.freeze(["http/1.1"]);Object.freeze(["TLS_AES_128_GCM_SHA256","TLS_AES_256_GCM_SHA384","TLS_CHACHA20_POLY1305_SHA256","TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256","TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256","TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384","TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384","TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256","TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256","TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA","TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA","TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA","TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA","TLS_RSA_WITH_AES_128_GCM_SHA256","TLS_RSA_WITH_AES_256_GCM_SHA384","TLS_RSA_WITH_AES_128_CBC_SHA","TLS_RSA_WITH_AES_256_CBC_SHA"]),Object.freeze(["server_name","extended_master_secret","renegotiation_info","supported_groups:x25519,secp256r1,secp384r1","ec_point_formats:uncompressed","session_ticket","alpn:http/1.1","status_request","signature_algorithms:ecdsa_secp256r1_sha256,rsa_pss_rsae_sha256,rsa_pkcs1_sha256,ecdsa_secp384r1_sha384,rsa_pss_rsae_sha384,rsa_pkcs1_sha384,rsa_pss_rsae_sha512,rsa_pkcs1_sha512,rsa_pkcs1_sha1","signed_certificate_timestamp","key_share:x25519","psk_key_exchange_modes:psk_dhe_ke","supported_versions:TLS1.3,TLS1.2","boring_padding","pre_shared_key"]);let p=k.dirname((0,l.fileURLToPath)("file:///home/runner/work/switchboard-router/switchboard-router/open-sse/identity/tls/claude-code.js")),q="win32"===process.platform?"switchboard-claude-tls.exe":"switchboard-claude-tls",r=[process.env.SWITCHBOARD_CLAUDE_TLS_HELPER,k.join(process.cwd(),"open-sse","identity","tls","bin",process.platform,process.arch,q),k.join(p,"bin",process.platform,process.arch,q)].filter(Boolean);function s(a){let b=Number(a);return Number.isFinite(b)&&b>0?Math.floor(b):null}let t=i.spawn;async function u(){if(d)return d;for(let a of r)try{return await (0,j.access)(a),d=a,a}catch{}throw Error(`Claude Code TLS helper is not installed for ${process.platform}-${process.arch}`)}function v(){return new DOMException("The operation was aborted.","AbortError")}let w=globalThis.fetch,x=new Map,y=new Map,z=async()=>async function(a,b={},c={}){var d,e,f,g;if(c.alpn?.length!==1||"http/1.1"!==c.alpn[0])throw Error("Claude Code TLS transport requires ALPN http/1.1 only");if(b.signal?.aborted)throw v();let h=t(await u(),[],{stdio:["pipe","pipe","pipe"],windowsHide:!0}),i=function(a){if(null==a)return null;if("string"==typeof a)return Buffer.from(a);if(Buffer.isBuffer(a))return a;if(a instanceof Uint8Array)return Buffer.from(a);throw TypeError("Claude Code TLS helper requires a string or byte request body")}(b.body),j={url:String(a),method:b.method||"GET",headers:(d=b.headers)instanceof Headers?[...d.entries()]:Object.entries(d||{}).map(([a,b])=>[a,String(b)]),headerOrder:c.headerOrder||[],proxyUrl:c.proxyUrl||"",tlsSpecRev:n,alpn:o,bodyLength:i?.byteLength||0,timeoutMs:s(b.timeoutMs)??s(c.timeoutMs)??6e4};return h.stdin.write(`${JSON.stringify(j)}
|
|
1
|
+
"use strict";exports.id=6052,exports.ids=[6052],exports.modules={6547:(a,b,c)=>{c.d(b,{$3:()=>p,$R:()=>h,Dm:()=>r,E$:()=>j,Zb:()=>g,jI:()=>i,ti:()=>m});var d=c(92675),e=c(70628),f=c(13247);let g=["Accept","Authorization","Content-Type","User-Agent","X-Claude-Code-Session-Id","X-Stainless-Arch","X-Stainless-Lang","X-Stainless-OS","X-Stainless-Package-Version","X-Stainless-Retry-Count","X-Stainless-Runtime","X-Stainless-Runtime-Version","X-Stainless-Timeout","anthropic-beta","anthropic-dangerous-direct-browser-access","anthropic-version","x-app","x-client-request-id","Connection","Host","Accept-Encoding","Content-Length"],h=g.filter(a=>"X-Stainless-Timeout"!==a),i={"claude-cli":{id:"claude-cli",tls:"claude-code",alpn:["http/1.1"],headerOrder:g,source:{npm:"@anthropic-ai/claude-code",capture:"claude-code-native",tlsSpec:"claude-code"},headers:function(a){let b=a?.version||"2.1.220",c=a?.entrypoint||"cli";return{"Anthropic-Version":d.b8,"Anthropic-Beta":a?.betas||"claude-code-20250219,oauth-2025-04-20,interleaved-thinking-2025-05-14,context-management-2025-06-27,prompt-caching-scope-2026-01-05,advanced-tool-use-2025-11-20,effort-2025-11-24,structured-outputs-2025-12-15,fast-mode-2026-02-01,redact-thinking-2026-02-12,token-efficient-tools-2026-03-28","Anthropic-Dangerous-Direct-Browser-Access":"true","User-Agent":a?.userAgent||`claude-cli/${b} (external, ${c})`,"X-App":"cli","X-Stainless-Runtime-Version":a?.runtimeVersion||process.version,"X-Stainless-Package-Version":a?.packageVersion||"0.94.0","X-Stainless-Runtime":"node","X-Stainless-Lang":"js","X-Stainless-Arch":a?.arch||(0,e.Tc)(),"X-Stainless-Os":a?.os||(0,e.vv)(),"X-Stainless-Timeout":"600"}}},"codex-cli":{id:"codex-cli",tls:"chrome",alpn:["h2","http/1.1"],headerOrder:["Authorization","Content-Type","originator","session_id","User-Agent","version","chatgpt-account-id"],source:{npm:"@openai/codex"},headers:function(a){let b=a?.version||"0.149.0";return{originator:"codex_cli_rs","User-Agent":`codex_cli_rs/${b}`,version:b}}},"gemini-cli":{id:"gemini-cli",tls:"node",alpn:["h2","http/1.1"],headerOrder:["Content-Type","Authorization","User-Agent","X-Goog-Api-Client","Accept"],source:{npm:"@google/gemini-cli"},headers:function(a){let b=a?.version||"0.56.0",c=a?.upstreamModel||"unknown",d="ia32"===(0,e.LY)()?"x86":(0,e.LY)();return{"User-Agent":`GeminiCLI/${b}/${c} (${(0,e.ol)()}; ${d}; terminal)`,"X-Goog-Api-Client":a?.apiClient||"google-genai-sdk/1.41.0 gl-node/v22.19.0"}}},"openai-node":{id:"openai-node",tls:"node",alpn:["h2","http/1.1"],headerOrder:["Authorization","Content-Type","User-Agent"],source:{npm:"openai"},headers:function(){return{"User-Agent":`OpenAI/NodeJS/${process.version.replace(/^v/,"")}`}}},cline:{id:"cline",tls:"node",alpn:["h2","http/1.1"],headerOrder:["Authorization","Content-Type","HTTP-Referer","X-Title","User-Agent","X-PLATFORM","X-PLATFORM-VERSION","X-CLIENT-TYPE","X-CLIENT-VERSION","X-CORE-VERSION","X-IS-MULTIROOT"],source:{npm:"cline"},headers:function(a){let b=a?.version||"3.0.0";return{"HTTP-Referer":"https://cline.bot","X-Title":"Cline","User-Agent":`Cline/${b}`,"X-PLATFORM":(0,e.ol)()||"unknown","X-PLATFORM-VERSION":process.version||"unknown","X-CLIENT-TYPE":"extension","X-CLIENT-VERSION":b,"X-CORE-VERSION":b,"X-IS-MULTIROOT":"false"}}},chrome:{id:"chrome",tls:"chrome",alpn:["h2","http/1.1"],headerOrder:["User-Agent","Accept","Accept-Language","Accept-Encoding"],source:{capture:"chrome"},headers:function(){return{"User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36"}}},cursor:{id:"cursor",tls:"node",alpn:["h2","http/1.1"],headerOrder:[],source:{capture:"cursor"},headers:()=>({})},antigravity:{id:"antigravity",tls:"node",alpn:["h2","http/1.1"],headerOrder:["Authorization","Content-Type","User-Agent","Accept"],source:{capture:"antigravity"},headers:function(a){let b=a?.version||"1.107.0";return{"User-Agent":`antigravity/${b} ${(0,e.ol)()}/${(0,e.LY)()}`}}},copilot:{id:"copilot",tls:"node",alpn:["h2","http/1.1"],headerOrder:["Authorization","Content-Type","copilot-integration-id","editor-version","editor-plugin-version","user-agent","openai-intent","x-github-api-version"],source:{capture:"github-copilot"},headers:function(a){let b=a?.vscodeVersion||"1.110.0",c=a?.chatVersion||a?.version||"0.38.0";return{"copilot-integration-id":"vscode-chat","editor-version":`vscode/${b}`,"editor-plugin-version":`copilot-chat/${c}`,"user-agent":`GitHubCopilotChat/${c}`,"openai-intent":"conversation-panel","x-github-api-version":a?.apiVersion||"2025-04-01","x-vscode-user-agent-library-version":"electron-fetch","X-Initiator":"user"}}},qwen:{id:"qwen",tls:"node",alpn:["h2","http/1.1"],headerOrder:["Authorization","Content-Type","User-Agent","X-Stainless-Arch","X-Stainless-Os"],source:{capture:"qwen-code"},headers:function(a){let{os:b,arch:c,stainlessOs:d,stainlessArch:f}=a?.qwenOsArch||{os:"win32"===(0,e.ol)()?"windows":"darwin"===(0,e.ol)()?"darwin":"linux",arch:"arm64"===(0,e.LY)()?"arm64":"x64",stainlessOs:(0,e.vv)(),stainlessArch:(0,e.Tc)()},g=a?.version||"0.12.3",h=`QwenCode/${g} (${b}; ${c})`;return{"User-Agent":h,"X-DashScope-UserAgent":h,"X-Stainless-Arch":f,"X-Stainless-Os":d,"X-Stainless-Lang":"js","X-Stainless-Runtime":"node","X-Stainless-Runtime-Version":a?.runtimeVersion||process.version,"X-Stainless-Package-Version":a?.packageVersion||"5.11.0"}}},kimi:{id:"kimi",tls:"node",alpn:["h2","http/1.1"],headerOrder:["Authorization","Content-Type","X-Msh-Version","X-Msh-Device-Model"],source:{capture:"kimi-code"},headers:function(){return{"X-Msh-Version":"2.1.2","X-Msh-Device-Model":`${(0,e.ol)()} ${(0,e.LY)()}`}}},"grok-cli":{id:"grok-cli",tls:"node",alpn:["h2","http/1.1"],headerOrder:["Authorization","Content-Type","User-Agent"],source:{capture:"grok-cli"},headers:function(a){return{"User-Agent":`grok-cli/${a?.version||"1.0.0"}`}}},"grok-build":{id:"grok-build",tls:"node",alpn:["h2","http/1.1"],headerOrder:["Authorization","Content-Type","Accept","User-Agent","x-grok-client-identifier","x-grok-client-version"],source:{capture:"@xai-official/grok 0.2.99"},headers:function(){return{"User-Agent":`grok-shell/${f.uG} (linux; x86_64)`,"x-grok-client-identifier":f.rK,"x-grok-client-version":f.uG}}}};function j(a){return i[a]||i["openai-node"]}let k=new Set(["openai","openai-responses","openai-compat"]),l=new Set(["claude"]);function m(a,b={}){if("string"==typeof a&&a)return a;if(a&&"object"==typeof a&&a.profile)return a.profile;let c=b.format||"",d=b.provider||"";return"claude"===c||l.has(c)||"claude"===d||d.startsWith("anthropic-compatible")?"claude-cli":"codex"===d?"codex-cli":"gemini-cli"===d?"gemini-cli":"antigravity"===d?"antigravity":"github"===d?"copilot":"qwen"===d?"qwen":"cline"===d||"clinepass"===d?"cline":"kimi"===d||"kimi-coding"===d?"kimi":"xai"===d?"grok-cli":"grok-cli"===d?"grok-build":"grok-web"===d?"chrome":"cursor"===d||"cursor"===c?"cursor":(k.has(c),"openai-node")}let n=new Set(["user-agent","anthropic-beta","x-stainless-package-version","x-stainless-runtime-version","x-stainless-os","x-stainless-arch"]),o=new Set(["x-stainless-helper-method","x-stainless-retry-count"]);function p(a,b,c={}){var d;let e,f=j(b),g=(d=c.snapshot,"function"==typeof(e=j(b)).headers?e.headers(d):{...e.headers||{}});!0===c.stream&&"claude-cli"===b?g["X-Stainless-Helper-Method"]="stream":"claude-cli"===b&&delete g["X-Stainless-Helper-Method"],"number"==typeof c.retryCount&&"claude-cli"===b&&(g["X-Stainless-Retry-Count"]=String(c.retryCount));let h=new Map;for(let[b,c]of Object.entries(a||{})){let a=b.toLowerCase();("authorization"===a||"x-api-key"===a||"api-key"===a||"cookie"===a)&&h.set(a,[b,c])}let i=q(a,g),k=c.overlay&&"object"==typeof c.overlay?"claude-cli"===b?function(a,b){let c,d,e={...a||{}},f=0!==(d=Object.values(c=Object.fromEntries([...n].map(a=>{let b;return[a,(b=Object.keys(e||{}).find(b=>b.toLowerCase()===a))?e[b]:void 0]}))).filter(a=>null!=a).length)&&d===n.size&&String(c["user-agent"]).match(/claude-(?:cli|code)\/(\d+\.\d+\.\d+)/i)?.[1]===b?.version;for(let a of Object.keys(e)){let b=a.toLowerCase();(o.has(b)||!f&&n.has(b))&&delete e[a]}return e}(c.overlay,c.snapshot):{...c.overlay}:{};for(let a of Object.keys(k))h.has(a.toLowerCase())&&delete k[a];let l=q(i,k);if("claude-cli"===b){if(!0===c.stream)l["X-Stainless-Helper-Method"]="stream";else for(let a of Object.keys(l))"x-stainless-helper-method"===a.toLowerCase()&&delete l[a];if("number"==typeof c.retryCount){for(let a of Object.keys(l))"x-stainless-retry-count"===a.toLowerCase()&&delete l[a];l["X-Stainless-Retry-Count"]=String(c.retryCount)}}for(let[a,[b,c]]of h){for(let b of Object.keys(l))b.toLowerCase()===a&&delete l[b];l[b]=c}return f?.headerOrder?r(l,f.headerOrder):l}function q(...a){let b={};for(let c of a)for(let[a,d]of Object.entries(c||{})){let c=Object.keys(b).find(b=>b.toLowerCase()===a.toLowerCase());c&&delete b[c],b[a]=d}return b}function r(a,b){if(!b||!b.length)return{...a};let c=new Set,d={},e=new Map;for(let[b,c]of Object.entries(a))e.set(b.toLowerCase(),[b,c]);for(let a of b){let b=e.get(a.toLowerCase());b&&(d[b[0]]=b[1],c.add(a.toLowerCase()))}for(let[b,e]of Object.entries(a))c.has(b.toLowerCase())||(d[b]=e);return d}},35570:(a,b,c)=>{c.d(b,{I2:()=>A,Iq:()=>B,Kn:()=>v,dV:()=>w,zi:()=>x});var d=c(73024),e=c(76760),f=c(77598),g=c(6547),h=c(70628);let i=["claude-cli","codex-cli","gemini-cli"],j=new Map,k=new Map,l=new Set,m=null;function n(){let a=process.env.DATA_DIR||e.join(process.env.HOME||process.env.USERPROFILE||".",".switchboard");return e.join(a,"identity")}function o(a){return e.join(n(),`${a}.json`)}let p=function(){try{return JSON.parse(d.readFileSync(e.join(process.cwd(),"open-sse","identity","snapshots","versions.json"),"utf8"))}catch{try{return JSON.parse(d.readFileSync(new c.U(c(94552)),"utf8"))}catch{return{}}}}();function q(a){let b=p[a],c=b?.version;if(!c)return null;if("claude-cli"!==a)return{version:c,latestVersion:b.latestVersion};let d=b.tlsSpecRev||c;return{version:c,billingVersion:c,tlsSpecRev:d,latestVersion:b.latestVersion,capturedAt:b.capturedAt,entrypoint:"cli",userAgent:`claude-cli/${c} (external, cli)`,packageVersion:b.packageVersion||"0.94.0",runtimeVersion:b.runtimeVersion||"v22.19.0",betas:b.betas||"claude-code-20250219,oauth-2025-04-20"}}function r(a){let b=String(a||"").split(".").map(Number);return 3===b.length&&b.every(Number.isInteger)?b:null}function s(a){let b=String(a?.tlsSpecRev||"").match(/(\d+\.\d+\.\d+)/);return b?.[1]||null}function t(a,b){let c=r(a),d=r(b);if(!c||!d)return 0;for(let a=0;a<3;a++)if(c[a]!==d[a])return c[a]-d[a];return 0}function u(a){return!!(a?.version&&a?.billingVersion===a.version&&s(a)===a.version&&a.version===(z(p["claude-cli"]?.tlsSpecRev)||p["claude-cli"]?.version||null)&&a?.userAgent?.includes(`claude-cli/${a.version}`)&&a?.packageVersion&&a?.runtimeVersion&&a?.betas)}function v(a){return{version:a?.version||null,billingVersion:a?.billingVersion||null,tlsVersion:s(a),userAgentVersion:z(a?.userAgent)}}function w(a){if(j.has(a))return j.get(a);let b=null;try{b=JSON.parse(d.readFileSync(o(a),"utf8"))}catch{b=q(a)}return"claude-cli"!==a||u(b)||(b=q(a)),b&&j.set(a,b),b}function x(a){let b=w(a);return"claude-cli"!==a||u(b)?b:q(a)}function y(a,b){if(b&&"object"==typeof b){j.set(a,b);try{d.mkdirSync(n(),{recursive:!0}),d.writeFileSync(o(a),JSON.stringify(b,null,2))}catch{}}}function z(a){if("string"!=typeof a)return null;let b=a.match(/claude-cli\/(\d+\.\d+\.\d+)/i)||a.match(/codex_cli_rs\/(\d+\.\d+\.\d+)/i)||a.match(/GeminiCLI\/(\d+\.\d+\.\d+)/i)||a.match(/Cline\/(\d+\.\d+\.\d+)/i)||a.match(/antigravity\/(\d+\.\d+\.\d+)/i)||a.match(/QwenCode\/(\d+\.\d+\.\d+)/i)||a.match(/GitHubCopilotChat\/(\d+\.\d+\.\d+)/i);return b?b[1]:null}function A(a,b){let c=function(a){let b={};if(!a)return b;for(let[c,d]of Object.entries(a))b[c.toLowerCase()]=d;return b}(b),d=c["user-agent"],e=z(d);if(!d||!e)return!1;if("claude-cli"===a){let b=c["x-stainless-package-version"],f=c["x-stainless-runtime-version"],g=c["anthropic-beta"];if(!b||!f||!g)return!1;let h=x(a)||{},i=s(h);return i&&e!==i?(C(a,`harvest ${e} does not match TLS capture ${h.tlsSpecRev}`),!1):(y(a,{...h,version:e,billingVersion:e,userAgent:d,packageVersion:b,runtimeVersion:f,betas:g,os:h.os||c["x-stainless-os"],arch:h.arch||c["x-stainless-arch"],entrypoint:/\(external,\s*([^)]+)\)/.exec(d)?.[1]||"cli",harvestedAt:Date.now()}),!0)}if("copilot"===a){let b=String(c["editor-plugin-version"]||"").match(/copilot-chat\/(\d+\.\d+\.\d+)/i)?.[1],f=String(c["editor-version"]||"").match(/vscode\/(\d+\.\d+\.\d+)/i)?.[1],g=c["x-github-api-version"];return!!b&&b===e&&!!f&&!!g&&(y(a,{...w(a),version:e,chatVersion:b,vscodeVersion:f,apiVersion:g,userAgent:d,harvestedAt:Date.now()}),!0)}return y(a,{...w(a),version:e,userAgent:d,harvestedAt:Date.now()}),!0}function B(a){let b=a||"anonymous";if(k.has(b))return k.get(b);let c=(0,f.createHash)("sha256").update(`device:${b}`).digest("hex"),d={buildHash:c.slice(0,3),deviceId:c,accountUuid:`${c.slice(0,8)}-${c.slice(8,12)}-4${c.slice(13,16)}-a${c.slice(17,20)}-${c.slice(20,32)}`,os:(0,h.vv)(),arch:(0,h.Tc)()};return k.set(b,d),d}function C(a,b){l.has(a)||(l.add(a),console.warn(`[IDENTITY_STALE] ${a}: ${b}`))}async function D(a,b){let c=g.jI[a]?.source?.npm;if(!c)return null;let d=await b(`https://registry.npmjs.org/${encodeURIComponent(c)}/latest`,{headers:{Accept:"application/json"}});if(!d.ok)return null;let e=await d.json();return r(e?.version)?e.version:null}async function E(a=globalThis.fetch){"function"==typeof a&&await Promise.all(i.map(async b=>{try{let c=await D(b,a);if(!c)return;let d=x(b)||q(b)||{};if("claude-cli"===b){t(c,d.version)>0&&(y(b,{...d,latestVersion:c,checkedAt:Date.now()}),C(b,`npm ${c} is ahead of captured tuple ${d.version}`));return}if(0>=t(c,d.version))return;let e="codex-cli"===b?`codex_cli_rs/${c}`:d.userAgent;y(b,{...d,version:c,...e?{userAgent:e}:{},checkedAt:Date.now()})}catch{}}))}function F(){let a=Date.now();for(let b of Object.keys(g.jI)){let c=x(b)||q(b),d=c?.capturedAt;if(!d)continue;let e=a-new Date(d).getTime();if(Number.isFinite(e)&&e>2592e6){let a=Math.floor(e/864e5);C(b,`snapshot is ${a}d old; run npm run identity:refresh`)}}}"1"!==process.env.SWITCHBOARD_DISABLE_IDENTITY_POLL&&queueMicrotask(()=>(function(a=globalThis.fetch){return m||"function"!=typeof a||(E(a),F(),m=setInterval(()=>{E(a),F()},216e5),m.unref?.()),m})())},39211:(a,b,c)=>{c.d(b,{fX:()=>n});let d=/switchboard/i,e=/Switchboard\//i,f="https://github.com/Vijay-Duke/switchboard-router",g=new Set(["authorization","x-api-key","api-key","cookie"]);function h(a){return g.has(String(a).toLowerCase())}function i(a){let b={};for(let[c,g]of a?a instanceof Headers?[...a.entries()]:Object.entries(a):[])null!=g&&!function(a,b){let c=String(a),g=null==b?"":String(b),i=c.toLowerCase();return!!(i.startsWith("x-switchboard-")||"x-client-type"===i&&/^switchboard$/i.test(g.trim())||"x-msh-platform"===i&&/^switchboard$/i.test(g.trim())||"user-agent"===i&&e.test(g)||d.test(c)&&!h(c)||d.test(g)&&!h(c)||g.includes(f))}(c,g)&&(b[c]=String(g));return b}Object.freeze({SWITCHBOARD_RE:d,SWITCHBOARD_UA_RE:e,SWITCHBOARD_GITHUB:f});var j=c(6547),k=c(35570);let l={"claude-cli":"claude-cli/2.1.220 (external, cli)","codex-cli":"codex_cli_rs/0.149.0","gemini-cli":"GeminiCLI/0.56.0/unknown (linux; x64; terminal)",cline:"Cline/3.0.0","openai-node":"OpenAI/NodeJS/22",chrome:"Mozilla/5.0",antigravity:"antigravity/1.107.0 linux/x64",copilot:"GitHubCopilotChat/0.38.0",qwen:"QwenCode/0.12.3 (linux; x64)","grok-cli":"grok-cli/1.0.0","grok-build":"grok-shell/0.2.99"};function m(a){return Object.keys(a).find(a=>"user-agent"===a.toLowerCase())}function n(a,b={}){let c=i(a),d=(0,j.ti)(b.identity,{format:b.format,provider:b.provider}),e=b.snapshot||(0,k.zi)(d),f="claude-cli"===d?(0,k.Iq)(b.credentialId):null,g=(0,j.$3)(c,d,{snapshot:f?{...e,os:f.os,arch:f.arch}:e,overlay:b.overlay,stream:b.stream,retryCount:b.retryCount}),h=(0,j.E$)(d),o=i(g);if("claude-cli"===d&&b.requestPath?.startsWith("/v1/messages/count_tokens")){for(let a of Object.keys(o))"x-stainless-timeout"===a.toLowerCase()&&delete o[a];o=(0,j.Dm)(o,j.$R)}if(!m(o)&&"cursor"!==d){let a=e?.userAgent||l[d]||l["openai-node"];o["User-Agent"]=a}return"claude-cli"===d&&function(a,b){let c=(0,k.Kn)(b),d=m(a),e=String(d?a[d]:"").match(/claude-(?:cli|code)\/(\d+\.\d+\.\d+)/i)?.[1]||null;if(!c.version||c.billingVersion!==c.version||c.tlsVersion!==c.version||c.userAgentVersion!==c.version||e!==c.version)throw Error(`Claude identity mismatch: ua=${e||c.userAgentVersion} version=${c.version} billing=${c.billingVersion} tls=${c.tlsVersion}`)}(o,e),{headers:i(o),profileId:d,tls:h?.tls||"node",alpn:h?.alpn||["h2","http/1.1"],tlsSpecRev:e?.tlsSpecRev}}},46052:(a,b,c)=>{let d;c.d(b,{Fm:()=>L});var e=c(27910),f=c(60290),g=c(39211),h=c(6547),i=c(31421),j=c(51455),k=c(76760),l=c(73136),m=c(57075);let n="2.1.220",o=Object.freeze(["http/1.1"]);Object.freeze(["TLS_AES_128_GCM_SHA256","TLS_AES_256_GCM_SHA384","TLS_CHACHA20_POLY1305_SHA256","TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256","TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256","TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384","TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384","TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256","TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256","TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA","TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA","TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA","TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA","TLS_RSA_WITH_AES_128_GCM_SHA256","TLS_RSA_WITH_AES_256_GCM_SHA384","TLS_RSA_WITH_AES_128_CBC_SHA","TLS_RSA_WITH_AES_256_CBC_SHA"]),Object.freeze(["server_name","extended_master_secret","renegotiation_info","supported_groups:x25519,secp256r1,secp384r1","ec_point_formats:uncompressed","session_ticket","alpn:http/1.1","status_request","signature_algorithms:ecdsa_secp256r1_sha256,rsa_pss_rsae_sha256,rsa_pkcs1_sha256,ecdsa_secp384r1_sha384,rsa_pss_rsae_sha384,rsa_pkcs1_sha384,rsa_pss_rsae_sha512,rsa_pkcs1_sha512,rsa_pkcs1_sha1","signed_certificate_timestamp","key_share:x25519","psk_key_exchange_modes:psk_dhe_ke","supported_versions:TLS1.3,TLS1.2","boring_padding","pre_shared_key"]);let p=k.dirname((0,l.fileURLToPath)("file:///home/runner/work/switchboard-router/switchboard-router/open-sse/identity/tls/claude-code.js")),q="win32"===process.platform?"switchboard-claude-tls.exe":"switchboard-claude-tls",r=[process.env.SWITCHBOARD_CLAUDE_TLS_HELPER,k.join(process.cwd(),"open-sse","identity","tls","bin",process.platform,process.arch,q),k.join(p,"bin",process.platform,process.arch,q)].filter(Boolean);function s(a){let b=Number(a);return Number.isFinite(b)&&b>0?Math.floor(b):null}let t=i.spawn;async function u(){if(d)return d;for(let a of r)try{return await (0,j.access)(a),d=a,a}catch{}throw Error(`Claude Code TLS helper is not installed for ${process.platform}-${process.arch}`)}function v(){return new DOMException("The operation was aborted.","AbortError")}let w=globalThis.fetch,x=new Map,y=new Map,z=async()=>async function(a,b={},c={}){var d,e,f,g;if(c.alpn?.length!==1||"http/1.1"!==c.alpn[0])throw Error("Claude Code TLS transport requires ALPN http/1.1 only");if(b.signal?.aborted)throw v();let h=t(await u(),[],{stdio:["pipe","pipe","pipe"],windowsHide:!0}),i=function(a){if(null==a)return null;if("string"==typeof a)return Buffer.from(a);if(Buffer.isBuffer(a))return a;if(a instanceof Uint8Array)return Buffer.from(a);throw TypeError("Claude Code TLS helper requires a string or byte request body")}(b.body),j={url:String(a),method:b.method||"GET",headers:(d=b.headers)instanceof Headers?[...d.entries()]:Object.entries(d||{}).map(([a,b])=>[a,String(b)]),headerOrder:c.headerOrder||[],proxyUrl:c.proxyUrl||"",tlsSpecRev:n,alpn:o,bodyLength:i?.byteLength||0,timeoutMs:s(b.timeoutMs)??s(c.timeoutMs)??6e4};return h.stdin.write(`${JSON.stringify(j)}
|
|
2
2
|
`),i&&h.stdin.write(i),h.stdin.end(),e=h.stdout,f=h.stderr,g=b.signal,new Promise((a,b)=>{let c=Buffer.alloc(0),d="",i=!1,j=a=>{d.length>=16384||(d+=a.toString("utf8",0,16384-d.length))},k=(a,b,c)=>{let e=d.trim(),f=`${null==a?"":` with code ${a}`}${b?` (${b})`:""}`;return Error(e||`Claude TLS helper exited${c}${f}`)},l=()=>{e.off("data",r),h.off("error",o),h.off("exit",p)},n=a=>{i||(i=!0,l(),f.off("data",j),g?.removeEventListener("abort",q),b(a))},o=a=>n(a),p=(a,b)=>n(k(a,b," before metadata")),q=()=>{n(v()),h.kill("SIGTERM")},r=b=>{let d,o=(c=Buffer.concat([c,b])).indexOf("\n");if(o<0)return;try{d=JSON.parse(c.subarray(0,o).toString("utf8"))}catch(a){n(Error(`Claude TLS helper returned invalid metadata: ${a.message}`));return}if(d.error)return void n(Error(d.error));i=!0,l(),g?.removeEventListener("abort",q);let p=new m.PassThrough,r=m.Readable.toWeb(p),s=!1,t=!1,u=!1,w=a=>{u||(u=!0,e.unpipe(p),e.off("end",z),e.off("error",y),f.off("data",j),h.off("error",y),h.off("exit",A),g?.removeEventListener("abort",B),a?p.destroy(a):p.end())},x=a=>{e.destroyed||(e.once("error",()=>{}),e.destroy(a)),w(a)},y=a=>w(a),z=()=>{s=!0,t&&w()},A=(a,b)=>{0!==a||b?x(k(a,b," after metadata")):(t=!0,s&&w())},B=()=>{x(v()),h.kill("SIGTERM")};e.once("end",z),e.once("error",y),h.once("error",y),h.once("exit",A),g?.addEventListener("abort",B,{once:!0}),p.write(c.subarray(o+1)),e.pipe(p,{end:!1}),a(new Response(r,{status:d.status,statusText:d.statusText||"",headers:new Headers(d.headers||[])}))};f.on("data",j),e.on("data",r),h.once("error",o),h.once("exit",p),g?.addEventListener("abort",q,{once:!0}),g?.aborted&&q()})},A=async()=>(await Promise.resolve().then(c.t.bind(c,36435,19))).Impit,B=new Map,C=["cloudcode-pa.googleapis.com","daily-cloudcode-pa.googleapis.com","api.individual.githubcopilot.com","q.us-east-1.amazonaws.com","codewhisperer.us-east-1.amazonaws.com","api2.cursor.sh"],D=["8.8.8.8","8.8.4.4"];function E(a){return null==a?"":String(a).trim()}async function F(a){let b=B.get(a);if(b&&Date.now()<b.expiry)return b.ip;try{let b=await Promise.resolve().then(c.t.bind(c,14985,19)),{promisify:d}=await Promise.resolve().then(c.t.bind(c,28354,19)),e=new b.Resolver;e.setServers(D);let g=d(e.resolve4.bind(e)),h=await g(a);if(B.size>=f.v1.dnsCacheMaxSize){let a=Date.now();for(let[b,c]of B)c.expiry<=a&&B.delete(b);for(;B.size>=f.v1.dnsCacheMaxSize;)B.delete(B.keys().next().value)}return B.set(a,{ip:h[0],expiry:Date.now()+f.v1.dnsCacheTtlMs}),h[0]}catch(b){return console.warn(`[ProxyFetch] DNS resolve failed for ${a}:`,b.message),null}}function G(a,b){let c,d=E(b);if(!d)return!1;try{c=new URL(a).hostname.toLowerCase()}catch{return!1}return d.split(",").map(a=>a.trim().toLowerCase()).filter(Boolean).some(a=>"*"===a||(a.startsWith(".")?c.endsWith(a)||c===a.slice(1):c===a||c.endsWith(`.${a}`)))}function H(a){let b=E(a);if(!b)return null;try{return new URL(b),b}catch{return`http://${b}`}}async function I(a){let b=H(a);if(!b)return null;if(!x.has(b)){if(x.size>=f.v1.proxyDispatchersMaxSize){let a=x.keys().next().value,b=x.get(a);x.delete(a),Promise.resolve(b?.close?.()).catch(()=>{})}let{ProxyAgent:a}=await c.e(7774).then(c.t.bind(c,47774,19));x.set(b,new a({uri:b}))}let d=x.get(b);return x.delete(b),x.set(b,d),d}async function J(a){let b=a||"",c=y.get(b);return c||(c=new(await A())({browser:"chrome",...a?{proxyUrl:a}:{},followRedirects:!1}),y.set(b,c)),(a,b)=>c.fetch(a,b)}async function K(a,b,d){let f=await Promise.resolve().then(c.t.bind(c,55591,19)),g=await Promise.resolve().then(c.t.bind(c,91645,19)),h=f.default??f,i=g.default??g;return new Promise((c,f)=>{let g,j=new i.Socket,k=!1;function l(){j.setTimeout(0),d.signal&&d.signal.removeEventListener("abort",m)}function m(){k||(k=!0,l(),j.destroy(),g?.destroy(),f(new DOMException("The operation was aborted.","AbortError")))}d.signal?.aborted?m():(d.signal&&d.signal.addEventListener("abort",m,{once:!0}),j.setTimeout(1e4,()=>{k||(k=!0,l(),j.destroy(),f(Error(`[ProxyFetch] connect timeout after 10000ms to ${b}`)))}),j.connect(443,b,()=>{j.setTimeout(0);let b={socket:j,servername:a.hostname,path:a.pathname+a.search,method:d.method||"POST",headers:{...d.headers,Host:a.hostname}};(g=h.request(b,a=>{let b=()=>{try{a.destroy(new DOMException("The operation was aborted.","AbortError"))}catch{a.destroy()}},g=()=>d.signal?.removeEventListener("abort",b);if(d.signal?.aborted){k=!0,l(),b(),g(),f(new DOMException("The operation was aborted.","AbortError"));return}d.signal?.addEventListener("abort",b,{once:!0}),a.once("end",g),a.once("close",g),a.once("error",g);let h={ok:a.statusCode>=200&&a.statusCode<300,status:a.statusCode,statusText:a.statusMessage,headers:new Map(Object.entries(a.headers)),body:e.Readable.toWeb(a),text:async()=>{let b=[];for await(let c of a)b.push(c);return Buffer.concat(b).toString()},json:async()=>JSON.parse(await h.text())};k=!0,l(),c(h)})).on("error",a=>{k||(k=!0,l(),f(a))}),d.body&&g.write("string"==typeof d.body?d.body:JSON.stringify(d.body)),g.end()}),j.on("error",a=>{k||(k=!0,l(),f(a))}))})}async function L(a,b={},c=null){let d="string"==typeof a?a:a.toString(),e=function(a,b={}){let c=b.headers?.Accept||b.headers?.accept||"",d="string"==typeof c&&c.includes("text/event-stream"),e=(0,g.fX)(b.headers||{},{identity:b.identity,provider:b.provider,format:b.format,overlay:b.overlay,credentialId:b.credentialId,stream:b.stream??d,retryCount:b.retryCount,snapshot:b.snapshot,requestPath:new URL(a).pathname});return{...b,headers:e.headers,_identityTls:e.tls,_identityAlpn:e.alpn,_identityTlsSpecRev:e.tlsSpecRev,_identityProfile:e.profileId}}(d,b),f=function(a){let{_identityTls:b,_identityAlpn:c,_identityTlsSpecRev:d,_identityProfile:e,identity:f,provider:g,format:h,overlay:i,credentialId:j,stream:k,retryCount:l,snapshot:m,...n}=a;return n}(e),{_identityTls:i,_identityAlpn:j,_identityProfile:k}=e,l=E(c?.vercelRelayUrl);if(l){let a=new URL(d);return((...a)=>w(...a))(l,{...f,headers:{...f.headers,"x-relay-target":`${a.protocol}//${a.host}`,"x-relay-path":`${a.pathname}${a.search}`}})}let m=function(a,b){if(b?.enabled!==!0&&b?.connectionProxyEnabled!==!0)return null;let c=E(b?.url??b?.connectionProxyUrl);if(!c)return null;let d=E(b?.noProxy??b?.connectionNoProxy);return d&&G(a,d)?null:H(c)}(d,c),o=m?null:H(function(a){let b;if(G(a,process.env.NO_PROXY||process.env.no_proxy))return null;try{b=new URL(a).protocol}catch{return null}return"https:"===b?process.env.HTTPS_PROXY||process.env.https_proxy||process.env.ALL_PROXY||process.env.all_proxy:process.env.HTTP_PROXY||process.env.http_proxy||process.env.ALL_PROXY||process.env.all_proxy}(d)),p=m||o;if("node"!==i)try{let b={profileId:k,alpn:j,proxyUrl:p,headerOrder:"claude-cli"===k?new URL(d).pathname.startsWith("/v1/messages/count_tokens")?h.$R:h.Zb:(0,h.E$)(k)?.headerOrder||[]},c=/^claude-code-(\d+\.\d+\.\d+)$/.exec(e._identityTlsSpecRev||"")?.[1]||e._identityTlsSpecRev;if("claude-cli"===k&&c!==n)throw Error(`snapshot TLS spec ${e._identityTlsSpecRev||"missing"} does not match helper ${n}`);let g="chrome"===i?await J(p):await z();return await g(a,f,b)}catch(b){if(b?.name==="AbortError")throw b;let a=Error(`[ProxyFetch] ${i} TLS (${k}) unavailable: ${b.message}`);throw a.status=503,a}if(function(a){try{let b=new URL(a).hostname;return C.some(a=>b.includes(a))}catch{return!1}}(d)){if(p)try{let b=await I(p);return await ((...a)=>w(...a))(a,{...f,dispatcher:b})}catch(a){if(c?.strictProxy===!0)throw Error(`[ProxyFetch] Proxy required but failed (strictProxy=true): ${a.message}`);console.warn(`[ProxyFetch] Proxy failed, falling back to direct bypass: ${a.message}`)}try{let a=new URL(d),b=await F(a.hostname);if(b)return await K(a,b,f)}catch(a){console.warn(`[ProxyFetch] MITM bypass failed: ${a.message}`)}}if(p)try{let b=await I(p);return await ((...a)=>w(...a))(a,{...f,dispatcher:b})}catch(a){if(c?.strictProxy===!0)throw Error(`[ProxyFetch] Proxy required but failed (strictProxy=true): ${a.message}`);console.warn(`[ProxyFetch] Proxy failed, falling back to direct: ${a.message}`)}return((...a)=>w(...a))(a,f)}async function M(a,b={}){return L(a,b,null)}globalThis.fetch!==M&&(globalThis.fetch=M)},70628:(a,b,c)=>{c.d(b,{LY:()=>h,Tc:()=>f,ol:()=>g,vv:()=>e});var d=c(21820);function e(){switch((0,d.platform)()){case"darwin":return"MacOS";case"win32":return"Windows";case"linux":return"Linux";case"freebsd":return"FreeBSD";default:return`Other::${(0,d.platform)()}`}}function f(){switch((0,d.arch)()){case"x64":return"x64";case"arm64":return"arm64";case"ia32":return"x86";default:return`other::${(0,d.arch)()}`}}function g(){return(0,d.platform)()}function h(){return(0,d.arch)()}},94552:(a,b,c)=>{a.exports=c.p+"static/media/versions.401d57e8.json"}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";exports.id=6274,exports.ids=[6274],exports.modules={67133:(a,b,c)=>{c.d(b,{Pt:()=>v,Tr:()=>w,c1:()=>t,vk:()=>u});var d=c(15717),e=c(39326),f=c(49263),g=c(87252),h=c(40615),i=c(7803),j=c(1486),k=c(77598),l=c.n(k);let m=2*c(30869).oc.tickIntervalMs,n=global.__accountSchedulerV2??={affinities:new Map};function o(a){return l().createHash("sha256").update(JSON.stringify(a)).digest("hex")}function p(a){for(let[b,c]of n.affinities)if(c.scopeHash===a)return b;return null}function q(a,b){return a.inFlight-b.inFlight||b.quota.tier-a.quota.tier||b.quota.remaining-a.quota.remaining||a.quota.resetAt-b.quota.resetAt||a.priority-b.priority||a.id.localeCompare(b.id)}function r(a){var b;let{providerId:c,candidates:d=[],clientKeyId:e=null,sessionKey:f=null,affinityTtlMs:g=18e5,quotaFreshMs:h=m,getInFlightCount:i=()=>0,now:j=Date.now()}=a||{};for(let[a,b]of n.affinities)(!b||b.expiresAt<=j)&&n.affinities.delete(a);let k=function(a,b,c){if(!c)return null;let d=b||"local-no-key";return{key:o([String(a),String(d),String(c)]),scopeHash:o([String(a),String(d)])}}(c,e,f),l=k?n.affinities.get(k.key):null;if(0===d.length)return l&&n.affinities.delete(k.key),{connection:null,reason:"no-candidates",affinityRebound:!!l,capacityLimited:!1};let r=[];for(let a of d){let b=function(a,b,c,d){let e;return{candidate:a,inFlight:Number.isFinite(e=Number(b(a.id)))&&e>0?e:0,quota:function(a,b,c){let d=a.lastQuota,e=d?.at,f=d?.remainingPercentage;if(!Number.isFinite(e)||b-e>c||!Number.isFinite(f))return{tier:1,remaining:-1,resetAt:1/0};let g=Math.max(0,Math.min(100,f));if(g>0)return{tier:2,remaining:g,resetAt:1/0};let h=new Date(d?.resetAt).getTime();return{tier:0,remaining:0,resetAt:Number.isFinite(h)&&h>b?h:1/0}}(a,c,d),priority:Number.isFinite(a.priority)?a.priority:Number.MAX_SAFE_INTEGER,id:String(a.id)}}(a,i,j,h),c=a.maxConcurrentRequests;(!Number.isInteger(c)||c<=0||b.inFlight<c)&&r.push(b)}if(0===r.length)return l&&n.affinities.delete(k.key),{connection:null,reason:"capacity-exhausted",affinityRebound:!!l,capacityLimited:!0};let s=l&&r.find(({candidate:a})=>a.id===l.connectionId);if(s)return l.expiresAt=j+g,{connection:s.candidate,reason:"session-affinity",affinityRebound:!1,capacityLimited:!1};r.sort(q);let t=r[0];return k&&function(a,b,c){let d=n.affinities.has(a.key);if(!d&&function(a){let b=0;for(let c of n.affinities.values())c.scopeHash===a&&(b+=1);return b}(a.scopeHash)>=500){let b=p(a.scopeHash);b&&n.affinities.delete(b)}if(!d&&n.affinities.size>=5e3){let b=p(a.scopeHash);if(!b)return;n.affinities.delete(b)}n.affinities.set(a.key,{connectionId:b,expiresAt:c,scopeHash:a.scopeHash})}(k,t.candidate.id,j+g),{connection:t.candidate,reason:(b=r[1])?t.inFlight!==b.inFlight?"least-inflight":t.quota.tier!==b.quota.tier||t.quota.remaining!==b.quota.remaining?"quota-headroom":t.quota.resetAt!==b.quota.resetAt?"quota-reset":t.priority!==b.priority?"priority":"connection-id":"priority",affinityRebound:!!l,capacityLimited:!1}}let s=new Map;async function t(a,b=null,c=null,g={}){var j;let k,l,m,n,o=b instanceof Set?b:b?new Set([b]):new Set,p=g?.preferredConnectionId||null,q=g?.strictPreferredConnection===!0,u=(0,h.rs)(a);return j=async()=>{let b;if(h.IS[u]?.noAuth){let a=((await (0,d.mt)()).providerStrategies||{})[u]||{},b=await (0,e.B)({proxyPoolId:a.proxyPoolId||""});return{id:"noauth",connectionName:"Public",isActive:!0,accessToken:"public",providerSpecificData:{connectionProxyEnabled:b.connectionProxyEnabled,connectionProxyUrl:b.connectionProxyUrl,connectionNoProxy:b.connectionNoProxy,connectionProxyPoolId:b.proxyPoolId||null,vercelRelayUrl:b.vercelRelayUrl||""}}}let j=await (0,d.getProviderConnections)({provider:u,isActive:!0});i.debug("AUTH",`${a} | total connections: ${j.length}, excludeIds: ${o.size>0?[...o].join(","):"none"}, model: ${c||"any"}`);let k=await (0,d.mt)(),l=(k.providerStrategies||{})[u]||{},m=l.fallbackStrategy||k.fallbackStrategy||"fill-first",n=l.accountScheduler||{},s=()=>!0===n.enabled?r({providerId:u,candidates:[],sessionKey:g?.sessionKey||null,clientKeyId:g?.clientKeyId||null,affinityTtlMs:1e3*Number(n.sessionAffinityTtlSeconds)||void 0,getInFlightCount:d.b7}):null;if(0===j.length)return s(),i.warn("AUTH",`No credentials for ${a}`),null;let t=q&&p?j.filter(a=>a.id===p):j;if(0===t.length)return s(),i.warn("AUTH",`${a} | requested connection is unavailable`),null;let v=t.filter(a=>!(o.has(a.id)||(0,f.Bl)(a,c)));if(i.debug("AUTH",`${a} | available: ${v.length}/${t.length}`),t.forEach(a=>{let b=o.has(a.id),d=(0,f.Bl)(a,c);if(b||d){let e=(0,f.kJ)(a);i.debug("AUTH",` → ${a.id?.slice(0,8)} | ${b?"excluded":""} ${d?`modelLocked(${c}) until ${e}`:""}`)}}),0===v.length){let b=s(),d=t.filter(a=>(0,f.Bl)(a,c)),e=d.map(a=>(0,f.kJ)(a)).filter(Boolean).sort()[0]||null;if(e){let g=d[0];return i.warn("AUTH",`${a} | all ${t.length} accounts locked for ${c||"all"} (${(0,f.Qo)(e)}) | lastError=${g?.lastError?.slice(0,50)}`),{allRateLimited:!0,retryAfter:e,retryAfterHuman:(0,f.Qo)(e),lastError:g?.lastError||null,lastErrorCode:g?.errorCode||null,...b?{selectionReason:b.reason,affinityRebound:b.affinityRebound}:{}}}return i.warn("AUTH",`${a} | all ${t.length} accounts unavailable`),null}let w=null,x=!1;if(p){let a=v.find(a=>a.id===p);if(a){let c=Number(a.maxConcurrentRequests);!0===n.enabled&&Number.isInteger(c)&&c>0&&(0,d.b7)(a.id)>=c||(b=a,w="explicit-pin")}}if(!b&&!0===n.enabled){let a=r({providerId:u,candidates:v,sessionKey:g?.sessionKey||null,clientKeyId:g?.clientKeyId||null,affinityTtlMs:1e3*Number(n.sessionAffinityTtlSeconds)||void 0,getInFlightCount:d.b7});if(!a.connection&&a.capacityLimited)return{allRateLimited:!0,capacityLimited:!0,retryAfter:new Date(Date.now()+1e3).toISOString(),retryAfterHuman:"retry after an in-flight request completes",lastError:"All accounts are at their concurrency limits",lastErrorCode:429,selectionReason:a.reason,affinityRebound:a.affinityRebound};b=a.connection,w=a.reason,x=a.affinityRebound}if(b);else if("round-robin"===m){let a=l.stickyRoundRobinLimit||k.stickyRoundRobinLimit||3,c=[...v].sort((a,b)=>a.lastUsedAt||b.lastUsedAt?a.lastUsedAt?b.lastUsedAt?new Date(b.lastUsedAt)-new Date(a.lastUsedAt):-1:1:(a.priority||999)-(b.priority||999))[0],e=c?.consecutiveUseCount||0;c&&c.lastUsedAt&&e<a?(b=c,await (0,d.updateProviderConnection)(b.id,{lastUsedAt:new Date().toISOString(),consecutiveUseCount:(b.consecutiveUseCount||0)+1})):(b=[...v].sort((a,b)=>a.lastUsedAt||b.lastUsedAt?a.lastUsedAt?b.lastUsedAt?new Date(a.lastUsedAt)-new Date(b.lastUsedAt):1:-1:(a.priority||999)-(b.priority||999))[0],await (0,d.updateProviderConnection)(b.id,{lastUsedAt:new Date().toISOString(),consecutiveUseCount:1})),w="round-robin"}else b=v[0],w="fill-first";i.info("AUTH",`${a} | selected ${b.id?.slice(0,8)} (${b.name||b.email||"unnamed"}) selection=${w} rebound=${x}`);let y=await (0,e.B)(b.providerSpecificData||{});return{authType:b.authType,apiKey:b.apiKey,accessToken:b.accessToken,refreshToken:b.refreshToken,idToken:b.idToken,expiresAt:b.expiresAt,expiresIn:b.expiresIn,lastRefreshAt:b.lastRefreshAt,projectId:b.projectId,connectionName:b.displayName||b.name||b.email||b.id,copilotToken:b.providerSpecificData?.copilotToken,providerSpecificData:{...b.providerSpecificData||{},connectionProxyEnabled:y.connectionProxyEnabled,connectionProxyUrl:y.connectionProxyUrl,connectionNoProxy:y.connectionNoProxy,connectionProxyPoolId:y.proxyPoolId||null,vercelRelayUrl:y.vercelRelayUrl||""},connectionId:b.id,testStatus:b.testStatus,lastError:b.lastError,_connection:b,selectionReason:w,affinityRebound:x}},l=s.get(u)||Promise.resolve(),m=new Promise(a=>{k=a}),n=l.then(()=>m,()=>m),s.set(u,n),(async()=>{await l.catch(()=>{});try{return await j()}finally{k(),s.get(u)===n&&s.delete(u)}})()}async function u(a,b,c,e=null,h=null,j=null){let k,l,m;if(!a||"noauth"===a)return{shouldFallback:!1,cooldownMs:0};let n=(await (0,d.getProviderConnections)({provider:e})).find(b=>b.id===a),o=n?.backoffLevel||0,p=!!(j&&j>Date.now());if(p?(k=!0,l=Math.min(j-Date.now(),g.fh),m=0):{shouldFallback:k,cooldownMs:l,newBackoffLevel:m}=(0,f.hk)(b,c,o),!k)return{shouldFallback:!1,cooldownMs:0};let q="string"==typeof c?c.slice(0,100):"Provider error",r=(0,f.S5)(h,l);await (0,d.updateProviderConnection)(a,{...r,testStatus:"unavailable",lastError:q,errorCode:b,lastErrorAt:new Date().toISOString(),backoffLevel:m??o,...p?{lastQuota:{remainingPercentage:0,resetAt:new Date(j).toISOString(),at:Date.now()}}:{}});let s=Object.keys(r)[0],t=n?.displayName||n?.name||n?.email||a.slice(0,8);return i.warn("AUTH",`${t} locked ${s} for ${Math.round(l/1e3)}s [${b}]`),e&&b&&q&&console.error(`❌ ${e} [${b}]: ${q}`),{shouldFallback:!0,cooldownMs:l}}async function v(a,b,c=null){if(!a||"noauth"===a)return;let e=b._connection||b,f=Date.now(),g=Object.keys(e).filter(a=>a.startsWith("modelLock_"));if(!e.testStatus&&!e.lastError&&0===g.length)return;let h=g.filter(a=>{if(c&&a===`modelLock_${c}`||c&&"modelLock___all"===a)return!0;let b=e[a];return b&&new Date(b).getTime()<=f});if(0===h.length&&"unavailable"!==e.testStatus&&!e.lastError)return;let i=g.filter(a=>{if(h.includes(a))return!1;let b=e[a];return b&&new Date(b).getTime()>f}),j=Object.fromEntries(h.map(a=>[a,null]));0===i.length&&Object.assign(j,{testStatus:"active",lastError:null,lastErrorAt:null,backoffLevel:0}),await (0,d.updateProviderConnection)(a,j)}function w(a){return(0,j.d)(a.headers)}},78102:(a,b,c)=>{c.d(b,{DM:()=>j,yH:()=>k});var d=c(15717),e=c(68658),f=c(41460);function g(){return global._clientKeyPolicyState}function h(a,b,c=null){let d={"content-type":"application/json"};return null!=c&&(d["retry-after"]=String(c)),{ok:!1,response:new Response(JSON.stringify({error:{message:"API key policy rejected this request",type:"client_key_policy_error",code:b}}),{status:a,headers:d})}}function i(a){return{ok:!0,mode:a,clientKey:null,clientKeyId:null,lease:null}}async function j({settings:a,rawKey:b,request:c,target:k}){if(c&&(0,e.v5)(c))return i("local");if(c)try{if(await (0,f.gN)(c))return i("cli")}catch{}if(!b)return a?.requireApiKey?h(401,"missing_api_key"):i("local");let l=await (0,d.PW)(b);if(!l)return a?.requireApiKey?h(401,"invalid_api_key"):i("local");let m=Date.now();if(l.expiresAt&&new Date(l.expiresAt).getTime()<=m)return h(403,"client_key_expired");if(!function(a,b){if(!a)return!0;let c=b.allowedModels||[],d=b.allowedCombos||[];return 0===c.length&&0===d.length||("combo"===a.kind?d.includes(a.id):c.includes(a.id))}(k,l))return h(403,"client_key_target_not_allowed");if(null!=l.spendLimitUsd){let a=await (0,d.fz)(l.id);if(l.spentUsd=a,a>=l.spendLimitUsd)return h(429,"client_key_spend_limit_exceeded")}let n=g().byId.get(l.id);if((!n||m-n.windowStartedAt>=6e4)&&(n={windowStartedAt:m,acceptedStarts:0,inFlight:n?.inFlight||0},g().byId.set(l.id,n)),null!=l.concurrencyLimit&&n.inFlight>=l.concurrencyLimit)return h(429,"client_key_concurrency_limit_exceeded",1);if(null!=l.rateLimitPerMinute&&n.acceptedStarts>=l.rateLimitPerMinute)return h(429,"client_key_rate_limit_exceeded",Math.max(1,Math.ceil((6e4-(m-n.windowStartedAt))/1e3)));n.acceptedStarts++,n.inFlight++;let o=!1;return{ok:!0,mode:"api-key",clientKey:l,clientKeyId:l.id,lease:{release(){if(o)return;o=!0;let a=g().byId.get(l.id);a&&(a.inFlight=Math.max(0,a.inFlight-1))}}}}async function k(a,b){let c;if(!a)return await b();let d=!1,e=()=>{d||(d=!0,a.release())};try{c=await b()}catch(a){throw e(),a}if(!(c instanceof Response&&c.body&&(c.headers.get("content-type")||"").toLowerCase().includes("text/event-stream")))return e(),c;let f=c.body.getReader();return new Response(new ReadableStream({async pull(a){try{let{done:b,value:c}=await f.read();b?(e(),a.close()):a.enqueue(c)}catch(b){e(),a.error(b)}},async cancel(a){e(),await f.cancel(a)}}),{status:c.status,statusText:c.statusText,headers:c.headers})}global._clientKeyPolicyState||(global._clientKeyPolicyState={byId:new Map})}};
|
|
1
|
+
"use strict";exports.id=6274,exports.ids=[6274],exports.modules={67133:(a,b,c)=>{c.d(b,{Pt:()=>v,Tr:()=>w,c1:()=>t,vk:()=>u});var d=c(15717),e=c(39326),f=c(49263),g=c(87252),h=c(40615),i=c(7803),j=c(1486),k=c(77598),l=c.n(k);let m=2*c(30869).oc.tickIntervalMs,n=global.__accountSchedulerV2??={affinities:new Map};function o(a){return l().createHash("sha256").update(JSON.stringify(a)).digest("hex")}function p(a){for(let[b,c]of n.affinities)if(c.scopeHash===a)return b;return null}function q(a,b){return a.inFlight-b.inFlight||b.quota.tier-a.quota.tier||b.quota.remaining-a.quota.remaining||a.quota.resetAt-b.quota.resetAt||a.priority-b.priority||a.id.localeCompare(b.id)}function r(a){var b;let{providerId:c,candidates:d=[],clientKeyId:e=null,sessionKey:f=null,affinityTtlMs:g=18e5,quotaFreshMs:h=m,getInFlightCount:i=()=>0,now:j=Date.now()}=a||{};for(let[a,b]of n.affinities)(!b||b.expiresAt<=j)&&n.affinities.delete(a);let k=function(a,b,c){if(!c)return null;let d=b||"local-no-key";return{key:o([String(a),String(d),String(c)]),scopeHash:o([String(a),String(d)])}}(c,e,f),l=k?n.affinities.get(k.key):null;if(0===d.length)return l&&n.affinities.delete(k.key),{connection:null,reason:"no-candidates",affinityRebound:!!l,capacityLimited:!1};let r=[];for(let a of d){let b=function(a,b,c,d){let e;return{candidate:a,inFlight:Number.isFinite(e=Number(b(a.id)))&&e>0?e:0,quota:function(a,b,c){let d=a.lastQuota,e=d?.at,f=d?.remainingPercentage;if(!Number.isFinite(e)||b-e>c||!Number.isFinite(f))return{tier:1,remaining:-1,resetAt:1/0};let g=Math.max(0,Math.min(100,f));if(g>0)return{tier:2,remaining:g,resetAt:1/0};let h=new Date(d?.resetAt).getTime();return{tier:0,remaining:0,resetAt:Number.isFinite(h)&&h>b?h:1/0}}(a,c,d),priority:Number.isFinite(a.priority)?a.priority:Number.MAX_SAFE_INTEGER,id:String(a.id)}}(a,i,j,h),c=a.maxConcurrentRequests;(!Number.isInteger(c)||c<=0||b.inFlight<c)&&r.push(b)}if(0===r.length)return l&&n.affinities.delete(k.key),{connection:null,reason:"capacity-exhausted",affinityRebound:!!l,capacityLimited:!0};let s=l&&r.find(({candidate:a})=>a.id===l.connectionId);if(s)return l.expiresAt=j+g,{connection:s.candidate,reason:"session-affinity",affinityRebound:!1,capacityLimited:!1};r.sort(q);let t=r[0];return k&&function(a,b,c){let d=n.affinities.has(a.key);if(!d&&function(a){let b=0;for(let c of n.affinities.values())c.scopeHash===a&&(b+=1);return b}(a.scopeHash)>=500){let b=p(a.scopeHash);b&&n.affinities.delete(b)}if(!d&&n.affinities.size>=5e3){let b=p(a.scopeHash);if(!b)return;n.affinities.delete(b)}n.affinities.set(a.key,{connectionId:b,expiresAt:c,scopeHash:a.scopeHash})}(k,t.candidate.id,j+g),{connection:t.candidate,reason:(b=r[1])?t.inFlight!==b.inFlight?"least-inflight":t.quota.tier!==b.quota.tier||t.quota.remaining!==b.quota.remaining?"quota-headroom":t.quota.resetAt!==b.quota.resetAt?"quota-reset":t.priority!==b.priority?"priority":"connection-id":"priority",affinityRebound:!!l,capacityLimited:!1}}let s=new Map;async function t(a,b=null,c=null,g={}){var j;let k,l,m,n,o=b instanceof Set?b:b?new Set([b]):new Set,p=g?.preferredConnectionId||null,q=g?.strictPreferredConnection===!0,u=(0,h.rs)(a);return j=async()=>{let b;if(h.IS[u]?.noAuth){let a=((await (0,d.mt)()).providerStrategies||{})[u]||{},b=await (0,e.B)({proxyPoolId:a.proxyPoolId||""});return{id:"noauth",connectionName:"Public",isActive:!0,accessToken:"public",providerSpecificData:{connectionProxyEnabled:b.connectionProxyEnabled,connectionProxyUrl:b.connectionProxyUrl,connectionNoProxy:b.connectionNoProxy,connectionProxyPoolId:b.proxyPoolId||null,vercelRelayUrl:b.vercelRelayUrl||""}}}let j=await (0,d.getProviderConnections)({provider:u,isActive:!0});i.debug("AUTH",`${a} | total connections: ${j.length}, excludeIds: ${o.size>0?[...o].join(","):"none"}, model: ${c||"any"}`);let k=await (0,d.mt)(),l=(k.providerStrategies||{})[u]||{},m=l.fallbackStrategy||k.fallbackStrategy||"fill-first",n=l.accountScheduler||{},s=()=>!0===n.enabled?r({providerId:u,candidates:[],sessionKey:g?.sessionKey||null,clientKeyId:g?.clientKeyId||null,affinityTtlMs:1e3*Number(n.sessionAffinityTtlSeconds)||void 0,getInFlightCount:d.b7}):null;if(0===j.length)return s(),i.warn("AUTH",`No credentials for ${a}`),null;let t=q&&p?j.filter(a=>a.id===p):j;if(0===t.length)return s(),i.warn("AUTH",`${a} | requested connection is unavailable`),null;let v=t.filter(a=>!(o.has(a.id)||(0,f.Bl)(a,c)));if(i.debug("AUTH",`${a} | available: ${v.length}/${t.length}`),t.forEach(a=>{let b=o.has(a.id),d=(0,f.Bl)(a,c);if(b||d){let e=(0,f.kJ)(a);i.debug("AUTH",` → ${a.id?.slice(0,8)} | ${b?"excluded":""} ${d?`modelLocked(${c}) until ${e}`:""}`)}}),0===v.length){let b=s(),d=t.filter(a=>(0,f.Bl)(a,c)),e=d.map(a=>(0,f.kJ)(a)).filter(Boolean).sort()[0]||null;if(e){let g=d[0];return i.warn("AUTH",`${a} | all ${t.length} accounts locked for ${c||"all"} (${(0,f.Qo)(e)}) | lastError=${g?.lastError?.slice(0,50)}`),{allRateLimited:!0,retryAfter:e,retryAfterHuman:(0,f.Qo)(e),lastError:g?.lastError||null,lastErrorCode:g?.errorCode||null,...b?{selectionReason:b.reason,affinityRebound:b.affinityRebound}:{}}}return i.warn("AUTH",`${a} | all ${t.length} accounts unavailable`),null}let w=null,x=!1;if(p){let a=v.find(a=>a.id===p);if(a){let c=Number(a.maxConcurrentRequests);!0===n.enabled&&Number.isInteger(c)&&c>0&&(0,d.b7)(a.id)>=c||(b=a,w="explicit-pin")}}if(!b&&!0===n.enabled){let a=r({providerId:u,candidates:v,sessionKey:g?.sessionKey||null,clientKeyId:g?.clientKeyId||null,affinityTtlMs:1e3*Number(n.sessionAffinityTtlSeconds)||void 0,getInFlightCount:d.b7});if(!a.connection&&a.capacityLimited)return{allRateLimited:!0,capacityLimited:!0,retryAfter:new Date(Date.now()+1e3).toISOString(),retryAfterHuman:"retry after an in-flight request completes",lastError:"All accounts are at their concurrency limits",lastErrorCode:429,selectionReason:a.reason,affinityRebound:a.affinityRebound};b=a.connection,w=a.reason,x=a.affinityRebound}if(b);else if("round-robin"===m){let a=l.stickyRoundRobinLimit||k.stickyRoundRobinLimit||3,c=[...v].sort((a,b)=>a.lastUsedAt||b.lastUsedAt?a.lastUsedAt?b.lastUsedAt?new Date(b.lastUsedAt)-new Date(a.lastUsedAt):-1:1:(a.priority??999)-(b.priority??999))[0],e=c?.consecutiveUseCount||0;c&&c.lastUsedAt&&e<a?(b=c,await (0,d.updateProviderConnection)(b.id,{lastUsedAt:new Date().toISOString(),consecutiveUseCount:(b.consecutiveUseCount||0)+1})):(b=[...v].sort((a,b)=>a.lastUsedAt||b.lastUsedAt?a.lastUsedAt?b.lastUsedAt?new Date(a.lastUsedAt)-new Date(b.lastUsedAt):1:-1:(a.priority??999)-(b.priority??999))[0],await (0,d.updateProviderConnection)(b.id,{lastUsedAt:new Date().toISOString(),consecutiveUseCount:1})),w="round-robin"}else b=v[0],w="fill-first";i.info("AUTH",`${a} | selected ${b.id?.slice(0,8)} (${b.name||b.email||"unnamed"}) selection=${w} rebound=${x}`);let y=await (0,e.B)(b.providerSpecificData||{});return{authType:b.authType,apiKey:b.apiKey,accessToken:b.accessToken,refreshToken:b.refreshToken,idToken:b.idToken,expiresAt:b.expiresAt,expiresIn:b.expiresIn,lastRefreshAt:b.lastRefreshAt,projectId:b.projectId,connectionName:b.displayName||b.name||b.email||b.id,copilotToken:b.providerSpecificData?.copilotToken,providerSpecificData:{...b.providerSpecificData||{},connectionProxyEnabled:y.connectionProxyEnabled,connectionProxyUrl:y.connectionProxyUrl,connectionNoProxy:y.connectionNoProxy,connectionProxyPoolId:y.proxyPoolId||null,vercelRelayUrl:y.vercelRelayUrl||""},connectionId:b.id,testStatus:b.testStatus,lastError:b.lastError,_connection:b,selectionReason:w,affinityRebound:x}},l=s.get(u)||Promise.resolve(),m=new Promise(a=>{k=a}),n=l.then(()=>m,()=>m),s.set(u,n),(async()=>{await l.catch(()=>{});try{return await j()}finally{k(),s.get(u)===n&&s.delete(u)}})()}async function u(a,b,c,e=null,h=null,j=null){let k,l,m;if(!a||"noauth"===a)return{shouldFallback:!1,cooldownMs:0};let n=(await (0,d.getProviderConnections)({provider:e})).find(b=>b.id===a),o=n?.backoffLevel||0,p=!!(j&&j>Date.now());if(p?(k=!0,l=Math.min(j-Date.now(),g.fh),m=0):{shouldFallback:k,cooldownMs:l,newBackoffLevel:m}=(0,f.hk)(b,c,o),!k)return{shouldFallback:!1,cooldownMs:0};let q="string"==typeof c?c.slice(0,100):"Provider error",r=(0,f.S5)(h,l);await (0,d.updateProviderConnection)(a,{...r,testStatus:"unavailable",lastError:q,errorCode:b,lastErrorAt:new Date().toISOString(),backoffLevel:m??o,...p?{lastQuota:{remainingPercentage:0,resetAt:new Date(j).toISOString(),at:Date.now()}}:{}});let s=Object.keys(r)[0],t=n?.displayName||n?.name||n?.email||a.slice(0,8);return i.warn("AUTH",`${t} locked ${s} for ${Math.round(l/1e3)}s [${b}]`),e&&b&&q&&console.error(`❌ ${e} [${b}]: ${q}`),{shouldFallback:!0,cooldownMs:l}}async function v(a,b,c=null){if(!a||"noauth"===a)return;let e=b._connection||b,f=Date.now(),g=Object.keys(e).filter(a=>a.startsWith("modelLock_"));if(!e.testStatus&&!e.lastError&&0===g.length)return;let h=g.filter(a=>{if(c&&a===`modelLock_${c}`||c&&"modelLock___all"===a)return!0;let b=e[a];return b&&new Date(b).getTime()<=f});if(0===h.length&&"unavailable"!==e.testStatus&&!e.lastError)return;let i=g.filter(a=>{if(h.includes(a))return!1;let b=e[a];return b&&new Date(b).getTime()>f}),j=Object.fromEntries(h.map(a=>[a,null]));0===i.length&&Object.assign(j,{testStatus:"active",lastError:null,lastErrorAt:null,backoffLevel:0}),await (0,d.updateProviderConnection)(a,j)}function w(a){return(0,j.d)(a.headers)}},78102:(a,b,c)=>{c.d(b,{DM:()=>j,yH:()=>k});var d=c(15717),e=c(68658),f=c(41460);function g(){return global._clientKeyPolicyState}function h(a,b,c=null){let d={"content-type":"application/json"};return null!=c&&(d["retry-after"]=String(c)),{ok:!1,response:new Response(JSON.stringify({error:{message:"API key policy rejected this request",type:"client_key_policy_error",code:b}}),{status:a,headers:d})}}function i(a){return{ok:!0,mode:a,clientKey:null,clientKeyId:null,lease:null}}async function j({settings:a,rawKey:b,request:c,target:k}){if(c&&(0,e.v5)(c))return i("local");if(c)try{if(await (0,f.gN)(c))return i("cli")}catch{}if(!b)return a?.requireApiKey?h(401,"missing_api_key"):i("local");let l=await (0,d.PW)(b);if(!l)return a?.requireApiKey?h(401,"invalid_api_key"):i("local");let m=Date.now();if(l.expiresAt&&new Date(l.expiresAt).getTime()<=m)return h(403,"client_key_expired");if(!function(a,b){if(!a)return!0;let c=b.allowedModels||[],d=b.allowedCombos||[];return 0===c.length&&0===d.length||("combo"===a.kind?d.includes(a.id):c.includes(a.id))}(k,l))return h(403,"client_key_target_not_allowed");if(null!=l.spendLimitUsd){let a=await (0,d.fz)(l.id);if(l.spentUsd=a,a>=l.spendLimitUsd)return h(429,"client_key_spend_limit_exceeded")}let n=g().byId.get(l.id);if((!n||m-n.windowStartedAt>=6e4)&&(n={windowStartedAt:m,acceptedStarts:0,inFlight:n?.inFlight||0},g().byId.set(l.id,n)),null!=l.concurrencyLimit&&n.inFlight>=l.concurrencyLimit)return h(429,"client_key_concurrency_limit_exceeded",1);if(null!=l.rateLimitPerMinute&&n.acceptedStarts>=l.rateLimitPerMinute)return h(429,"client_key_rate_limit_exceeded",Math.max(1,Math.ceil((6e4-(m-n.windowStartedAt))/1e3)));n.acceptedStarts++,n.inFlight++;let o=!1;return{ok:!0,mode:"api-key",clientKey:l,clientKeyId:l.id,lease:{release(){if(o)return;o=!0;let a=g().byId.get(l.id);a&&(a.inFlight=Math.max(0,a.inFlight-1))}}}}async function k(a,b){let c;if(!a)return await b();let d=!1,e=()=>{d||(d=!0,a.release())};try{c=await b()}catch(a){throw e(),a}if(!(c instanceof Response&&c.body&&(c.headers.get("content-type")||"").toLowerCase().includes("text/event-stream")))return e(),c;let f=c.body.getReader();return new Response(new ReadableStream({async pull(a){try{let{done:b,value:c}=await f.read();b?(e(),a.close()):a.enqueue(c)}catch(b){e(),a.error(b)}},async cancel(a){e(),await f.cancel(a)}}),{status:c.status,statusText:c.statusText,headers:c.headers})}global._clientKeyPolicyState||(global._clientKeyPolicyState={byId:new Map})}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";exports.id=6328,exports.ids=[6328],exports.modules={7866:(a,b,c)=>{c.d(b,{w$:()=>e});var d=c(39211);function e(a,b={}){let c,f=(c=function(a){if("string"!=typeof a)return"";let b=a.trim();return b?b.startsWith("workos:")?b:`workos:${b}`:""}(a))?`Bearer ${c}`:"",{headers:g}=(0,d.fX)({...f?{Authorization:f}:{},...b},{identity:"cline"});return g}},39326:(a,b,c)=>{function d(a){return null==a?"":String(a).trim()}async function e(a={}){try{let b=function(a={}){let b=a?.connectionProxyEnabled===!0,c=d(a?.connectionProxyUrl);return{connectionProxyEnabled:b,connectionProxyUrl:c,connectionNoProxy:d(a?.connectionNoProxy)}}(a);if(b.connectionProxyEnabled&&b.connectionProxyUrl)return{source:"legacy",proxyPoolId:null,proxyPool:null,...b,strictProxy:!1,vercelRelayUrl:""};return{source:"none",proxyPoolId:null,proxyPool:null,connectionProxyEnabled:!1,connectionProxyUrl:"",connectionNoProxy:b.connectionNoProxy||"",strictProxy:!1,vercelRelayUrl:""}}catch(a){return console.error("[resolveConnectionProxyConfig] Failed to resolve proxy config:",a),{source:"error",proxyPoolId:null,proxyPool:null,connectionProxyEnabled:!1,connectionProxyUrl:"",connectionNoProxy:"",strictProxy:!1,vercelRelayUrl:""}}}c.d(b,{B:()=>e})},66328:(a,b,c)=>{c.d(b,{F:()=>y});var d=c(15717),e=c(39326),f=c(74926),g=c(40615),h=c(27335),i=c(57034),j=c(4630),k=c(46052),l=c(18129),m=c(92990),n=c(73159),o=c(7866),p=c(13247);let q={claude:{checkExpiry:!0,refreshable:!0},xai:{url:`${n.o.apiBaseUrl}/models`,method:"GET",authHeader:"Authorization",authPrefix:"Bearer ",extraHeaders:{Accept:"application/json"},acceptStatuses:[403],refreshable:!0},"grok-cli":{url:`${p.Nr}/user`,method:"GET",authHeader:"Authorization",authPrefix:"Bearer ",extraHeaders:(0,p.Ab)(""),acceptStatuses:[402],refreshable:!0},codex:{url:"https://chatgpt.com/backend-api/codex/responses",method:"POST",authHeader:"Authorization",authPrefix:"Bearer ",extraHeaders:{"Content-Type":"application/json",originator:"codex_cli_rs"},body:JSON.stringify({model:"gpt-5.3-codex",input:[],stream:!1,store:!1}),acceptStatuses:[400],refreshable:!0},"gemini-cli":{url:"https://www.googleapis.com/oauth2/v1/userinfo?alt=json",method:"GET",authHeader:"Authorization",authPrefix:"Bearer ",refreshable:!0},antigravity:{url:"https://www.googleapis.com/oauth2/v1/userinfo?alt=json",method:"GET",authHeader:"Authorization",authPrefix:"Bearer ",refreshable:!0},github:{url:"https://api.github.com/user",method:"GET",authHeader:"Authorization",authPrefix:"Bearer ",extraHeaders:{Accept:"application/vnd.github+json"}},iflow:{buildUrl:a=>`https://iflow.cn/api/oauth/getUserInfo?accessToken=${encodeURIComponent(a)}`,method:"GET",noAuth:!0},qwen:{checkExpiry:!0,refreshable:!0},kiro:{checkExpiry:!0,refreshable:!0},qoder:{url:"https://openapi.qoder.sh/api/v1/userinfo",method:"GET",authHeader:"Authorization",authPrefix:"Bearer ",refreshable:!1},"kimi-coding":{checkExpiry:!0,refreshable:!1},cursor:{tokenExists:!0},kilocode:{url:`${m.MZ.apiBaseUrl}/api/profile`,method:"GET",authHeader:"Authorization",authPrefix:"Bearer "},cline:{refreshable:!0},clinepass:{refreshable:!0},gitlab:{url:"https://gitlab.com/api/v4/user",method:"GET",authHeader:"Authorization",authPrefix:"Bearer "},"codebuddy-cn":{tokenExists:!0},kimchi:{url:m.Td.validationUrl||"https://api.cast.ai/v1/llm/openai/supported-providers",method:"GET",authHeader:"Authorization",authPrefix:"Bearer ",extraHeaders:{Accept:"application/json","User-Agent":"kimchi/0.1.40"},refreshable:!1}};async function r(a,b,c=null){return await w(a,"https://api.cline.bot/api/v1/users/me",{method:"GET",headers:(0,o.w$)(b,{Accept:"application/json"})},c)}let s=JSON.stringify({metadata:{ideType:"IDE_UNSPECIFIED",platform:"PLATFORM_UNSPECIFIED",pluginType:"GEMINI"}});async function t(a,b,c=null){let d=await w(a.provider,"https://cloudcode-pa.googleapis.com/v1internal:loadCodeAssist",{method:"POST",headers:{Authorization:`Bearer ${b}`,"Content-Type":"application/json"},body:s},c);return d.ok?{valid:!0,error:null}:{valid:!1,error:function(a,b){if(!a)return b;try{let b=JSON.parse(a),c=b?.error?.message||b?.message||b?.error;if("string"==typeof c&&c.trim())return c.trim();if(c)return JSON.stringify(c)}catch{}return a.trim()||b}(await d.text().catch(()=>""),`API returned ${d.status}`),status:d.status}}async function u(a,b=null){let c=a.provider,d=a.refreshToken;if(!d)return null;try{if("gemini-cli"===c||"antigravity"===c){let a="gemini-cli"===c?m.LT:m.YT,e=await w(c,"https://oauth2.googleapis.com/token",{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:new URLSearchParams({client_id:a.clientId,client_secret:a.clientSecret,grant_type:"refresh_token",refresh_token:d})},b);if(!e.ok)return null;let f=await e.json();return{accessToken:f.access_token,expiresIn:f.expires_in,refreshToken:f.refresh_token||d}}if("codex"===c||"xai"===c||"grok-cli"===c)return await (0,l.Vq)(c,a,console);if("claude"===c){let a=await w(c,m.OV.tokenUrl,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify({grant_type:"refresh_token",refresh_token:d,client_id:m.OV.clientId})},b);if(!a.ok)return null;let e=await a.json();return{accessToken:e.access_token,expiresIn:e.expires_in,refreshToken:e.refresh_token||d}}if("kiro"===c){let e=a.providerSpecificData||{},f=e.clientId||a.clientId,g=e.clientSecret||a.clientSecret,h=(0,i.l6)(e.region||a.region);if(f&&g){let a=`https://oidc.${h}.amazonaws.com/token`,e=await w(c,a,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({clientId:f,clientSecret:g,refreshToken:d,grantType:"refresh_token"})},b);if(!e.ok)return null;let i=await e.json();return{accessToken:i.accessToken,expiresIn:i.expiresIn||3600,refreshToken:i.refreshToken||d}}let j=await w(c,m.Tx.socialRefreshUrl,{method:"POST",headers:{"Content-Type":"application/json","User-Agent":"kiro-cli/1.0.0"},body:JSON.stringify({refreshToken:d})},b);if(!j.ok)return null;let k=await j.json();return{accessToken:k.accessToken,expiresIn:k.expiresIn||3600,refreshToken:k.refreshToken||d}}if("qwen"===c){let a=await w(c,m.Hp.tokenUrl,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams({grant_type:"refresh_token",refresh_token:d,client_id:m.Hp.clientId})},b);if(!a.ok)return null;let e=await a.json();return{accessToken:e.access_token,expiresIn:e.expires_in,refreshToken:e.refresh_token||d}}if("cline"===c||"clinepass"===c){let a=await w(c,m.lB.refreshUrl,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify({refreshToken:d,grantType:"refresh_token",clientType:"extension"})},b);if(!a.ok)return null;let e=await a.json(),f=e?.data||e,g=f?.expiresAt?Math.max(1,Math.floor((new Date(f.expiresAt).getTime()-Date.now())/1e3)):3600;return{accessToken:f?.accessToken,expiresIn:g,refreshToken:f?.refreshToken||d}}return null}catch(a){return console.log(`Error refreshing ${c} token:`,a.message),null}}async function v(a,b=null){let c=q[a.provider];if(!c)return{valid:!1,error:"Provider test not supported",refreshed:!1};if(!a.accessToken)return{valid:!1,error:"No access token",refreshed:!1};if(c.tokenExists)return{valid:!0,error:null,refreshed:!1,newTokens:null};let d=a.accessToken,e=!1,f=null,g=(0,l.fp)(a.provider,a);if(c.refreshable&&g&&a.refreshToken){let c=await u(a,b);if(!c)return{valid:!1,error:"Token expired and refresh failed",refreshed:!1};d=c.accessToken,e=!0,f=c}if(c.checkExpiry)return e?{valid:!0,error:null,refreshed:e,newTokens:f}:g?{valid:!1,error:"Token expired",refreshed:!1}:{valid:!0,error:null,refreshed:!1,newTokens:null};if("gemini-cli"===a.provider||"antigravity"===a.provider){let g=await t(a,d,b);if(g.valid)return{valid:!0,error:null,refreshed:e,newTokens:f};if(401===g.status&&c.refreshable&&!e&&a.refreshToken){let c=await u(a,b);if(c?.accessToken){let d=await t(a,c.accessToken,b);return d.valid?{valid:!0,error:null,refreshed:!0,newTokens:c}:{valid:!1,error:d.error,refreshed:!0,newTokens:c}}return{valid:!1,error:"Token invalid or revoked",refreshed:!1}}return{valid:!1,error:g.error,refreshed:e}}if("cline"===a.provider||"clinepass"===a.provider){let c=async c=>{let d=await r(a.provider,c,b);return d.ok?{valid:!0,error:null,refreshed:e,newTokens:f}:401===d.status?{valid:!1,error:"Token invalid or revoked",refreshed:e}:403===d.status?{valid:!1,error:"Access denied",refreshed:e}:{valid:!1,error:`API returned ${d.status}`,refreshed:e}},g=await c(d);if(g.valid||"Token invalid or revoked"!==g.error||!a.refreshToken)return g;let h=await u(a,b);return h?.accessToken?(e=!0,f=h,d=h.accessToken,await c(d)):{valid:!1,error:"Token invalid or revoked",refreshed:!1}}try{let g=c.buildUrl?c.buildUrl(d):c.url,h=c.noAuth?{...c.extraHeaders}:{[c.authHeader]:`${c.authPrefix}${d}`,...c.extraHeaders},i={method:c.method,headers:h};c.body&&(i.body=c.body);let j=await w(a.provider,g,i,b);if(j.ok||c.acceptStatuses&&c.acceptStatuses.includes(j.status))return{valid:!0,error:null,refreshed:e,newTokens:f};if(401===j.status&&c.refreshable&&!e&&a.refreshToken){let d=await u(a,b);if(d){let e=c.buildUrl?c.buildUrl(d.accessToken):g,f=c.noAuth?{...c.extraHeaders}:{[c.authHeader]:`${c.authPrefix}${d.accessToken}`,...c.extraHeaders},h={method:c.method,headers:f};c.body&&(h.body=c.body);let i=await w(a.provider,e,h,b);if(i.ok||c.acceptStatuses&&c.acceptStatuses.includes(i.status))return{valid:!0,error:null,refreshed:!0,newTokens:d}}return{valid:!1,error:"Token invalid or revoked",refreshed:!1}}if(401===j.status)return{valid:!1,error:"Token invalid or revoked",refreshed:e};if(403===j.status)return{valid:!1,error:"Access denied",refreshed:e};return{valid:!1,error:`API returned ${j.status}`,refreshed:e}}catch(a){return{valid:!1,error:a.message,refreshed:e}}}async function w(a,b,c={},d=null){let e=j.xq[a],f={...c,identity:e?.identity,provider:a,format:e?.format};return d?.vercelRelayUrl?(0,k.Fm)(b,f,{vercelRelayUrl:d.vercelRelayUrl}):d?.connectionProxyEnabled&&d?.connectionProxyUrl?(0,k.Fm)(b,f,{connectionProxyEnabled:!0,connectionProxyUrl:d.connectionProxyUrl,connectionNoProxy:d.connectionNoProxy||""}):(0,k.Fm)(b,f,d)}async function x(a,b=null){if((0,g.mq)(a.provider)){let c=a.providerSpecificData?.baseUrl;if(!c)return{valid:!1,error:"Missing base URL"};try{let d=await w(a.provider,`${c.replace(/\/$/,"")}/models`,{headers:{Authorization:`Bearer ${a.apiKey}`}},b);return{valid:d.ok,error:d.ok?null:"Invalid API key or base URL"}}catch(a){return{valid:!1,error:a.message}}}if((0,g.gb)(a.provider)){let c=a.providerSpecificData?.baseUrl;if(!c)return{valid:!1,error:"Missing base URL"};try{(c=c.replace(/\/$/,"")).endsWith("/messages")&&(c=c.slice(0,-9));let d=c.endsWith("/v1")?`${c}/messages`:`${c}/v1/messages`,e=a.defaultModel||"claude-3-haiku-20240307",f=await w(a.provider,d,{method:"POST",headers:{"x-api-key":a.apiKey,"anthropic-version":"2023-06-01","content-type":"application/json",Authorization:`Bearer ${a.apiKey}`},body:JSON.stringify({model:e,max_tokens:1,messages:[{role:"user",content:"test"}]})},b),g=401!==f.status&&403!==f.status;return{valid:g,error:g?null:"Invalid API key or base URL"}}catch(a){return{valid:!1,error:a.message}}}try{switch(a.provider){case"cloudflare-ai":{let c=(a.providerSpecificData||{}).accountId;if(!c)return{valid:!1,error:"Missing Account ID"};let d=`https://api.cloudflare.com/client/v4/accounts/${c}/ai/v1/chat/completions`,e=await w(a.provider,d,{method:"POST",headers:{Authorization:`Bearer ${a.apiKey}`,"Content-Type":"application/json"},body:JSON.stringify({model:(0,h.fZ)("cloudflare-ai"),messages:[{role:"user",content:"test"}],max_tokens:1})},b),f=401!==e.status&&403!==e.status&&404!==e.status;return{valid:f,error:f?null:"Invalid API token or Account ID"}}case"azure":{let c=a.providerSpecificData||{},d=(c.azureEndpoint||"").replace(/\/$/,""),e=c.deployment||"gpt-4",f=c.apiVersion||"2024-10-01-preview",g=`${d}/openai/deployments/${e}/chat/completions?api-version=${f}`,h={"api-key":a.apiKey,"Content-Type":"application/json"};c.organization&&(h["OpenAI-Organization"]=c.organization);let i=await w(a.provider,g,{method:"POST",headers:h,body:JSON.stringify({messages:[{role:"user",content:"test"}],max_completion_tokens:1})},b),j=401!==i.status&&403!==i.status;return{valid:j,error:j?null:"Invalid API key or Azure configuration"}}case"openai":{let c=await w(a.provider,"https://api.openai.com/v1/models",{headers:{Authorization:`Bearer ${a.apiKey}`}},b);return{valid:c.ok,error:c.ok?null:"Invalid API key"}}case"vercel-ai-gateway":{let c=await w(a.provider,"https://ai-gateway.vercel.sh/v1/models",{headers:{Authorization:`Bearer ${a.apiKey}`}},b);return{valid:c.ok,error:c.ok?null:"Invalid API key"}}case"anthropic":{let c=await w(a.provider,"https://api.anthropic.com/v1/messages",{method:"POST",headers:{"x-api-key":a.apiKey,"anthropic-version":"2023-06-01","content-type":"application/json"},body:JSON.stringify({model:"claude-3-haiku-20240307",max_tokens:1,messages:[{role:"user",content:"test"}]})},b),d=401!==c.status;return{valid:d,error:d?null:"Invalid API key"}}case"gemini":{let c=await w(a.provider,`https://generativelanguage.googleapis.com/v1/models?key=${a.apiKey}`,{},b);return{valid:c.ok,error:c.ok?null:"Invalid API key"}}case"openrouter":{let c=await w(a.provider,"https://openrouter.ai/api/v1/auth/key",{headers:{Authorization:`Bearer ${a.apiKey}`}},b);return{valid:c.ok,error:c.ok?null:"Invalid API key"}}case"glm":{let c=await w(a.provider,"https://api.z.ai/api/anthropic/v1/messages",{method:"POST",headers:{"x-api-key":a.apiKey,"anthropic-version":"2023-06-01","content-type":"application/json"},body:JSON.stringify({model:"glm-4.7",max_tokens:1,messages:[{role:"user",content:"test"}]})},b),d=401!==c.status&&403!==c.status;return{valid:d,error:d?null:"Invalid API key"}}case"glm-cn":{let c=await w(a.provider,"https://open.bigmodel.cn/api/coding/paas/v4/chat/completions",{method:"POST",headers:{Authorization:`Bearer ${a.apiKey}`,"content-type":"application/json"},body:JSON.stringify({model:"glm-4.7",max_tokens:1,messages:[{role:"user",content:"test"}]})},b),d=401!==c.status&&403!==c.status;return{valid:d,error:d?null:"Invalid API key"}}case"minimax":case"minimax-cn":{let c=await w(a.provider,{minimax:"https://api.minimax.io/anthropic/v1/messages","minimax-cn":"https://api.minimaxi.com/anthropic/v1/messages"}[a.provider],{method:"POST",headers:{"x-api-key":a.apiKey,"anthropic-version":"2023-06-01","content-type":"application/json"},body:JSON.stringify({model:"minimax-m2",max_tokens:1,messages:[{role:"user",content:"test"}]})},b),d=401!==c.status&&403!==c.status;return{valid:d,error:d?null:"Invalid API key"}}case"kimi":{let c=await w(a.provider,"https://api.kimi.com/coding/v1/messages",{method:"POST",headers:{"x-api-key":a.apiKey,"anthropic-version":"2023-06-01","content-type":"application/json"},body:JSON.stringify({model:"kimi-latest",max_tokens:1,messages:[{role:"user",content:"test"}]})},b),d=401!==c.status&&403!==c.status;return{valid:d,error:d?null:"Invalid API key"}}case"alicode":case"alicode-intl":{let c="alicode-intl"===a.provider?"https://coding-intl.dashscope.aliyuncs.com/v1/chat/completions":"https://coding.dashscope.aliyuncs.com/v1/chat/completions",d=await w(a.provider,c,{method:"POST",headers:{Authorization:`Bearer ${a.apiKey}`,"content-type":"application/json"},body:JSON.stringify({model:(0,h.fZ)(a.provider),max_tokens:1,messages:[{role:"user",content:"test"}]})},b),e=401!==d.status&&403!==d.status;return{valid:e,error:e?null:"Invalid API key"}}case"volcengine-ark":case"byteplus":{let c=await w(a.provider,j.xq[a.provider]?.baseUrl,{method:"POST",headers:{Authorization:`Bearer ${a.apiKey}`,"content-type":"application/json"},body:JSON.stringify({model:(0,h.fZ)(a.provider),max_tokens:1,messages:[{role:"user",content:"test"}]})},b),d=401!==c.status&&403!==c.status;return{valid:d,error:d?null:"Invalid API key"}}case"deepseek":{let c=await w(a.provider,"https://api.deepseek.com/models",{headers:{Authorization:`Bearer ${a.apiKey}`}},b);return{valid:c.ok,error:c.ok?null:"Invalid API key"}}case"groq":{let c=await w(a.provider,"https://api.groq.com/openai/v1/models",{headers:{Authorization:`Bearer ${a.apiKey}`}},b);return{valid:c.ok,error:c.ok?null:"Invalid API key"}}case"mistral":{let c=await w(a.provider,"https://api.mistral.ai/v1/models",{headers:{Authorization:`Bearer ${a.apiKey}`}},b);return{valid:c.ok,error:c.ok?null:"Invalid API key"}}case"xai":{let c=await w(a.provider,"https://api.x.ai/v1/models",{headers:{Authorization:`Bearer ${a.apiKey}`,Accept:"application/json"}},b),d=c.ok||403===c.status;return{valid:d,error:d?null:"Invalid API key"}}case"nvidia":{let c=await w(a.provider,"https://integrate.api.nvidia.com/v1/models",{headers:{Authorization:`Bearer ${a.apiKey}`}},b);return{valid:c.ok,error:c.ok?null:"Invalid API key"}}case"perplexity":{let c=await w(a.provider,"https://api.perplexity.ai/v1/models",{headers:{Authorization:`Bearer ${a.apiKey}`}},b);return{valid:c.ok,error:c.ok?null:"Invalid API key"}}case"together":{let c=await w(a.provider,"https://api.together.xyz/v1/models",{headers:{Authorization:`Bearer ${a.apiKey}`}},b);return{valid:c.ok,error:c.ok?null:"Invalid API key"}}case"fireworks":{let c=await w(a.provider,"https://api.fireworks.ai/inference/v1/models",{headers:{Authorization:`Bearer ${a.apiKey}`}},b);return{valid:c.ok,error:c.ok?null:"Invalid API key"}}case"cerebras":{let c=await w(a.provider,"https://api.cerebras.ai/v1/models",{headers:{Authorization:`Bearer ${a.apiKey}`}},b);return{valid:c.ok,error:c.ok?null:"Invalid API key"}}case"cohere":{let c=await w(a.provider,"https://api.cohere.ai/v1/models",{headers:{Authorization:`Bearer ${a.apiKey}`}},b);return{valid:c.ok,error:c.ok?null:"Invalid API key"}}case"nebius":{let c=await w(a.provider,"https://api.studio.nebius.ai/v1/models",{headers:{Authorization:`Bearer ${a.apiKey}`}},b);return{valid:c.ok,error:c.ok?null:"Invalid API key"}}case"siliconflow":{let c=await w(a.provider,"https://api.siliconflow.com/v1/models",{headers:{Authorization:`Bearer ${a.apiKey}`}},b);return{valid:c.ok,error:c.ok?null:"Invalid API key"}}case"hyperbolic":{let c=await w(a.provider,"https://api.hyperbolic.xyz/v1/models",{headers:{Authorization:`Bearer ${a.apiKey}`}},b);return{valid:c.ok,error:c.ok?null:"Invalid API key"}}case"ollama":{let c=await w(a.provider,"https://ollama.com/api/tags",{headers:{Authorization:`Bearer ${a.apiKey}`}},b);return{valid:c.ok,error:c.ok?null:"Invalid API key"}}case"ollama-local":{let c=(0,j.Ak)(a),d=await w(a.provider,`${c}/api/tags`,{},b);return{valid:d.ok,error:d.ok?null:`Ollama not reachable at ${c}`}}case"deepgram":{let c=await w(a.provider,"https://api.deepgram.com/v1/projects",{headers:{Authorization:`Token ${a.apiKey}`}},b);return{valid:c.ok,error:c.ok?null:"Invalid API key"}}case"assemblyai":{let c=await w(a.provider,"https://api.assemblyai.com/v1/account",{headers:{Authorization:`Bearer ${a.apiKey}`}},b);return{valid:c.ok,error:c.ok?null:"Invalid API key"}}case"nanobanana":{let c=await w(a.provider,"https://api.nanobananaapi.ai/v1/models",{headers:{Authorization:`Bearer ${a.apiKey}`}},b);return{valid:c.ok,error:c.ok?null:"Invalid API key"}}case"fal-ai":{let c=await w(a.provider,"https://api.fal.ai/v1/models?limit=1",{headers:{Authorization:`Key ${a.apiKey}`}},b),d=401!==c.status&&403!==c.status;return{valid:d,error:d?null:"Invalid API key"}}case"chutes":{let c=await w(a.provider,"https://llm.chutes.ai/v1/models",{headers:{Authorization:`Bearer ${a.apiKey}`}},b);return{valid:c.ok,error:c.ok?null:"Invalid API key"}}case"grok-web":{let c=a.apiKey.startsWith("sso=")?a.apiKey.slice(4):a.apiKey,d=a=>Array.from(crypto.getRandomValues(new Uint8Array(a)),a=>a.toString(16).padStart(2,"0")).join(""),e=Buffer.from("e:TypeError: Cannot read properties of null (reading 'children')").toString("base64"),f=await w(a.provider,"https://grok.com/rest/app-chat/conversations/new",{method:"POST",headers:{Accept:"*/*","Content-Type":"application/json",Cookie:`sso=${c}`,Origin:"https://grok.com",Referer:"https://grok.com/","x-statsig-id":e,"x-xai-request-id":crypto.randomUUID(),traceparent:`00-${d(16)}-${d(8)}-00`},body:JSON.stringify({temporary:!0,modelName:"grok-4",message:"ping",fileAttachments:[],imageAttachments:[],disableSearch:!1,enableImageGeneration:!1,sendFinalMetadata:!0})},b),g=401!==f.status&&403!==f.status;return{valid:g,error:g?null:"Invalid SSO cookie"}}case"perplexity-web":{let c=a.apiKey;c.startsWith("__Secure-next-auth.session-token=")&&(c=c.slice(33));let d=await w(a.provider,"https://www.perplexity.ai/api/auth/session",{method:"GET",headers:{Cookie:`__Secure-next-auth.session-token=${c}`}},b);if(!d.ok)return{valid:!1,error:"Invalid session cookie"};let e=await d.json().catch(()=>null),f=!!(e&&e.user);return{valid:f,error:f?null:"Session expired — re-paste cookie"}}case"opencode-go":{let c=await w(a.provider,"https://opencode.ai/zen/go/v1/chat/completions",{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${a.apiKey}`},body:JSON.stringify({model:(0,h.fZ)("opencode-go"),messages:[{role:"user",content:"ping"}],max_tokens:1,stream:!1})},b),d=401!==c.status&&403!==c.status;return{valid:d,error:d?null:"Invalid API key"}}case"xiaomi-mimo":case"xiaomi-tokenplan":{let c=await w(a.provider,`${{"xiaomi-mimo":"https://api.xiaomimimo.com/v1","xiaomi-tokenplan":"https://token-plan-sgp.xiaomimimo.com/v1"}[a.provider]}/models`,{headers:{Authorization:`Bearer ${a.apiKey}`}},b);return{valid:c.ok,error:c.ok?null:"Invalid API key"}}case"blackbox":{let c=j.xq.blackbox?.baseUrl?.replace(/\/chat\/completions$/,"")||"https://api.blackbox.ai/v1",d=await w(a.provider,`${c}/models`,{headers:{Authorization:`Bearer ${a.apiKey}`}},b);return{valid:d.ok,error:d.ok?null:"Invalid API key"}}case"clinepass":{let c=await w(a.provider,"https://api.cline.bot/api/v1/models",{headers:{Accept:"application/json",Authorization:`Bearer ${a.apiKey}`}},b);return{valid:c.ok,error:c.ok?null:"Invalid API key"}}case"commandcode":{let c=await w(a.provider,"https://api.commandcode.ai/provider/v1/models",{headers:{Authorization:`Bearer ${a.apiKey}`,"x-command-code-version":"0.25.7","x-cli-environment":"cli"}},b);return{valid:c.ok,error:c.ok?null:"Invalid API key"}}default:return{valid:!1,error:"Provider test not supported"}}}catch(a){return{valid:!1,error:a.message}}}async function y(a){let b,c=await (0,d.Mc)(a);if(!c)return{valid:!1,error:"Connection not found",latencyMs:0,testedAt:new Date().toISOString()};let h={...c,provider:(0,g.rs)(c.provider)},i=await (0,e.B)(c.providerSpecificData||{});if(i.connectionProxyEnabled&&i.connectionProxyUrl&&!i.vercelRelayUrl){let b=await (0,f.C)({proxyUrl:i.connectionProxyUrl});if(!b.ok){let c=b.error||`Proxy test failed with status ${b.status}`;return await (0,d.updateProviderConnection)(a,{testStatus:"error",lastError:c,lastErrorAt:new Date().toISOString()}),{valid:!1,error:c,latencyMs:0,testedAt:new Date().toISOString()}}}let j=Date.now();b="apikey"===c.authType||"cookie"===c.authType?await x(h,i):await v(h,i);let k=Date.now()-j,l={testStatus:b.valid?"active":"error",lastError:b.valid?null:b.error,lastErrorAt:b.valid?null:new Date().toISOString()};return b.refreshed&&b.newTokens&&(b.newTokens.accessToken&&(l.accessToken=b.newTokens.accessToken),b.newTokens.refreshToken&&(l.refreshToken=b.newTokens.refreshToken),b.newTokens.idToken&&(l.idToken=b.newTokens.idToken),b.newTokens.lastRefreshAt&&(l.lastRefreshAt=b.newTokens.lastRefreshAt),b.newTokens.expiresIn&&(l.expiresIn=b.newTokens.expiresIn),b.newTokens.expiresIn?l.expiresAt=new Date(Date.now()+1e3*b.newTokens.expiresIn).toISOString():b.newTokens.expiresAt&&(l.expiresAt=b.newTokens.expiresAt),b.newTokens.providerSpecificData&&(l.providerSpecificData={...c.providerSpecificData||{},...b.newTokens.providerSpecificData})),await (0,d.updateProviderConnection)(a,l),{valid:b.valid,error:b.error,refreshed:!!b.refreshed,latencyMs:k,testedAt:new Date().toISOString()}}},73159:(a,b,c)=>{c.d(b,{U:()=>l,o:()=>m});var d=c(45350),e=c(35570);let f=d.xq.xai?.clientId,g="https://auth.x.ai",h="/oauth2/authorize",i="/oauth2/token",j="/.well-known/openid-configuration",k="/callback",l=96,m={clientId:f,issuer:g,authEndpointPath:h,tokenEndpointPath:i,discoveryPath:j,authorizeUrl:`${g}${h}`,tokenUrl:`${g}${i}`,discoveryUrl:`${g}${j}`,scope:"openid profile email offline_access grok-cli:access api:access",apiBaseUrl:"https://api.x.ai/v1",redirectUri:`http://127.0.0.1:56121${k}`,loopbackPort:56121,callbackPath:k,pkceVerifierBytes:96,refreshLeadSeconds:300,userAgent:(0,e.dV)("grok-cli")?.userAgent||"grok-cli/1.0.0",codeChallengeMethod:"S256"}},74926:(a,b,c)=>{c.d(b,{C:()=>f});var d=c(47774);function e(a){return null==a?"":String(a).trim()}async function f({proxyUrl:a,testUrl:b,timeoutMs:c}={}){let g,h=e(a);if(!h)return{ok:!1,status:400,error:"proxyUrl is required"};let i=e(b)||"https://google.com/",j=Number(c),k=Number.isFinite(j)&&j>0?Math.min(j,3e4):8e3;try{try{g=new d.ProxyAgent({uri:h})}catch(a){return{ok:!1,status:400,error:`Invalid proxy URL: ${a?.message||String(a)}`}}let a=new AbortController,b=Date.now(),c=setTimeout(()=>a.abort(),k);try{let c=await (0,d.hd)(i,{method:"HEAD",dispatcher:g,signal:a.signal});return{ok:c.ok,status:c.status,statusText:c.statusText,url:i,elapsedMs:Date.now()-b}}catch(b){let a=b?.name==="AbortError"?"Proxy test timed out":function(a){if(!a)return"Unknown error";let b=a?.message||String(a),c=a?.cause?.code||a?.code,d=a?.cause?.message;return d&&d!==b?c?`${b}: ${d} (${c})`:`${b}: ${d}`:c&&!b.includes(c)?`${b} (${c})`:b}(b);return{ok:!1,status:500,error:a}}finally{clearTimeout(c)}}finally{try{await g?.close?.()}catch{}}}},92990:(a,b,c)=>{c.d(b,{DI:()=>i,Hp:()=>k,LT:()=>j,MZ:()=>v,Nl:()=>z,Nu:()=>p,OV:()=>h,S6:()=>s,Td:()=>A,Tx:()=>q,WN:()=>t,Ww:()=>C,YT:()=>n,ZL:()=>m,cD:()=>o,f7:()=>y,hF:()=>l,lB:()=>w,qp:()=>B,t:()=>u,w1:()=>x});var d=c(21820),e=c(92675),f=c(45350);function g(){let a=(0,d.platform)(),b=(0,d.arch)();return"darwin"===a?"arm64"===b?2:1:"linux"===a?"arm64"===b?4:3:5*("win32"===a)}let h={...f.sr.claude},i={...f.sr.codex},j={...e.w3,...f.sr["gemini-cli"]},k={...f.sr.qwen},l={...f.sr.qoder},m={...f.sr.iflow},n={...e.XP,...f.sr.antigravity,loadCodeAssistClientMetadata:JSON.stringify({ideType:9,platform:g(),pluginType:2})};function o(){return{ideType:9,platform:g(),pluginType:2}}({...f.sr.openai});let p={...f.sr.github},q={...f.sr.kiro},r=/^[a-z]{2}(?:-[a-z0-9]+)+-\d{1,2}$/;function s(a){if("string"!=typeof a||!r.test(a))throw Error("Invalid region");return a}let t={...f.sr.cursor,tokenStoragePaths:{linux:"~/.config/Cursor/User/globalStorage/state.vscdb",macos:"/Users/<user>/Library/Application Support/Cursor/User/globalStorage/state.vscdb",windows:"%APPDATA%\\Cursor\\User\\globalStorage\\state.vscdb"}},u={...f.sr["kimi-coding"],clientId:process.env.KIMI_CODING_OAUTH_CLIENT_ID||f.xq["kimi-coding"]?.clientId},v={...f.sr.kilocode},w={...f.sr.cline},x={...f.sr.clinepass},y={...f.sr.gitlab},z={...f.sr["codebuddy-cn"]},A={...f.sr.kimchi},B={...f.sr["grok-cli"]},C=3e5}};
|
|
1
|
+
"use strict";exports.id=6328,exports.ids=[6328],exports.modules={7866:(a,b,c)=>{c.d(b,{w$:()=>e});var d=c(39211);function e(a,b={}){let c,f=(c=function(a){if("string"!=typeof a)return"";let b=a.trim();return b?b.startsWith("workos:")?b:`workos:${b}`:""}(a))?`Bearer ${c}`:"",{headers:g}=(0,d.fX)({...f?{Authorization:f}:{},...b},{identity:"cline"});return g}},39326:(a,b,c)=>{function d(a){return null==a?"":String(a).trim()}async function e(a={}){try{let b=function(a={}){let b=a?.connectionProxyEnabled===!0,c=d(a?.connectionProxyUrl);return{connectionProxyEnabled:b,connectionProxyUrl:c,connectionNoProxy:d(a?.connectionNoProxy)}}(a);if(b.connectionProxyEnabled&&b.connectionProxyUrl)return{source:"legacy",proxyPoolId:null,proxyPool:null,...b,strictProxy:!1,vercelRelayUrl:""};return{source:"none",proxyPoolId:null,proxyPool:null,connectionProxyEnabled:!1,connectionProxyUrl:"",connectionNoProxy:b.connectionNoProxy||"",strictProxy:!1,vercelRelayUrl:""}}catch(a){return console.error("[resolveConnectionProxyConfig] Failed to resolve proxy config:",a),{source:"error",proxyPoolId:null,proxyPool:null,connectionProxyEnabled:!1,connectionProxyUrl:"",connectionNoProxy:"",strictProxy:!1,vercelRelayUrl:""}}}c.d(b,{B:()=>e})},66328:(a,b,c)=>{c.d(b,{F:()=>y});var d=c(15717),e=c(39326),f=c(74926),g=c(40615),h=c(27335),i=c(57034),j=c(4630),k=c(46052),l=c(18129),m=c(92990),n=c(73159),o=c(7866),p=c(13247);let q={claude:{checkExpiry:!0,refreshable:!0},xai:{url:`${n.o.apiBaseUrl}/models`,method:"GET",authHeader:"Authorization",authPrefix:"Bearer ",extraHeaders:{Accept:"application/json"},acceptStatuses:[403],refreshable:!0},"grok-cli":{url:`${p.Nr}/user`,method:"GET",authHeader:"Authorization",authPrefix:"Bearer ",extraHeaders:(0,p.Ab)(""),acceptStatuses:[402],refreshable:!0},codex:{url:"https://chatgpt.com/backend-api/codex/responses",method:"POST",authHeader:"Authorization",authPrefix:"Bearer ",extraHeaders:{"Content-Type":"application/json",originator:"codex_cli_rs"},body:JSON.stringify({model:"gpt-5.3-codex",input:[],stream:!1,store:!1}),acceptStatuses:[400],refreshable:!0},"gemini-cli":{url:"https://www.googleapis.com/oauth2/v1/userinfo?alt=json",method:"GET",authHeader:"Authorization",authPrefix:"Bearer ",refreshable:!0},antigravity:{url:"https://www.googleapis.com/oauth2/v1/userinfo?alt=json",method:"GET",authHeader:"Authorization",authPrefix:"Bearer ",refreshable:!0},github:{url:"https://api.github.com/user",method:"GET",authHeader:"Authorization",authPrefix:"Bearer ",extraHeaders:{Accept:"application/vnd.github+json"}},iflow:{buildUrl:a=>`https://iflow.cn/api/oauth/getUserInfo?accessToken=${encodeURIComponent(a)}`,method:"GET",noAuth:!0},qwen:{checkExpiry:!0,refreshable:!0},kiro:{checkExpiry:!0,refreshable:!0},qoder:{url:"https://openapi.qoder.sh/api/v1/userinfo",method:"GET",authHeader:"Authorization",authPrefix:"Bearer ",refreshable:!1},"kimi-coding":{checkExpiry:!0,refreshable:!1},cursor:{tokenExists:!0},kilocode:{url:`${m.MZ.apiBaseUrl}/api/profile`,method:"GET",authHeader:"Authorization",authPrefix:"Bearer "},cline:{refreshable:!0},clinepass:{refreshable:!0},gitlab:{url:"https://gitlab.com/api/v4/user",method:"GET",authHeader:"Authorization",authPrefix:"Bearer "},"codebuddy-cn":{tokenExists:!0},kimchi:{url:m.Td.validationUrl||"https://api.cast.ai/v1/llm/openai/supported-providers",method:"GET",authHeader:"Authorization",authPrefix:"Bearer ",extraHeaders:{Accept:"application/json","User-Agent":"kimchi/0.1.40"},refreshable:!1}};async function r(a,b,c=null){return await w(a,"https://api.cline.bot/api/v1/users/me",{method:"GET",headers:(0,o.w$)(b,{Accept:"application/json"})},c)}let s=JSON.stringify({metadata:{ideType:"IDE_UNSPECIFIED",platform:"PLATFORM_UNSPECIFIED",pluginType:"GEMINI"}});async function t(a,b,c=null){let d=await w(a.provider,"https://cloudcode-pa.googleapis.com/v1internal:loadCodeAssist",{method:"POST",headers:{Authorization:`Bearer ${b}`,"Content-Type":"application/json"},body:s},c);return d.ok?{valid:!0,error:null}:{valid:!1,error:function(a,b){if(!a)return b;try{let b=JSON.parse(a),c=b?.error?.message||b?.message||b?.error;if("string"==typeof c&&c.trim()){let a=c.trim();if(/not have a valid license/i.test(a))return"License required: No active Gemini Code Assist / Antigravity license found for this Google account. Visit antigravity.google to activate, or reconnect.";if(/invalid_grant|token expired|credentials expired/i.test(a))return"Authentication token expired. Please reconnect.";return a}if(c)return JSON.stringify(c)}catch{}let c=a.trim();return/not have a valid license/i.test(c)?"License required: No active Gemini Code Assist / Antigravity license found for this Google account. Visit antigravity.google to activate, or reconnect.":c||b}(await d.text().catch(()=>""),`API returned ${d.status}`),status:d.status}}async function u(a,b=null){let c=a.provider,d=a.refreshToken;if(!d)return null;try{if("gemini-cli"===c||"antigravity"===c){let a="gemini-cli"===c?m.LT:m.YT,e=await w(c,"https://oauth2.googleapis.com/token",{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:new URLSearchParams({client_id:a.clientId,client_secret:a.clientSecret,grant_type:"refresh_token",refresh_token:d})},b);if(!e.ok)return null;let f=await e.json();return{accessToken:f.access_token,expiresIn:f.expires_in,refreshToken:f.refresh_token||d}}if("codex"===c||"xai"===c||"grok-cli"===c)return await (0,l.Vq)(c,a,console);if("claude"===c){let a=await w(c,m.OV.tokenUrl,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify({grant_type:"refresh_token",refresh_token:d,client_id:m.OV.clientId})},b);if(!a.ok)return null;let e=await a.json();return{accessToken:e.access_token,expiresIn:e.expires_in,refreshToken:e.refresh_token||d}}if("kiro"===c){let e=a.providerSpecificData||{},f=e.clientId||a.clientId,g=e.clientSecret||a.clientSecret,h=(0,i.l6)(e.region||a.region);if(f&&g){let a=`https://oidc.${h}.amazonaws.com/token`,e=await w(c,a,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({clientId:f,clientSecret:g,refreshToken:d,grantType:"refresh_token"})},b);if(!e.ok)return null;let i=await e.json();return{accessToken:i.accessToken,expiresIn:i.expiresIn||3600,refreshToken:i.refreshToken||d}}let j=await w(c,m.Tx.socialRefreshUrl,{method:"POST",headers:{"Content-Type":"application/json","User-Agent":"kiro-cli/1.0.0"},body:JSON.stringify({refreshToken:d})},b);if(!j.ok)return null;let k=await j.json();return{accessToken:k.accessToken,expiresIn:k.expiresIn||3600,refreshToken:k.refreshToken||d}}if("qwen"===c){let a=await w(c,m.Hp.tokenUrl,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams({grant_type:"refresh_token",refresh_token:d,client_id:m.Hp.clientId})},b);if(!a.ok)return null;let e=await a.json();return{accessToken:e.access_token,expiresIn:e.expires_in,refreshToken:e.refresh_token||d}}if("cline"===c||"clinepass"===c){let a=await w(c,m.lB.refreshUrl,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify({refreshToken:d,grantType:"refresh_token",clientType:"extension"})},b);if(!a.ok)return null;let e=await a.json(),f=e?.data||e,g=f?.expiresAt?Math.max(1,Math.floor((new Date(f.expiresAt).getTime()-Date.now())/1e3)):3600;return{accessToken:f?.accessToken,expiresIn:g,refreshToken:f?.refreshToken||d}}return null}catch(a){return console.log(`Error refreshing ${c} token:`,a.message),null}}async function v(a,b=null){let c=q[a.provider];if(!c)return{valid:!1,error:"Provider test not supported",refreshed:!1};if(!a.accessToken)return{valid:!1,error:"No access token",refreshed:!1};if(c.tokenExists)return{valid:!0,error:null,refreshed:!1,newTokens:null};let d=a.accessToken,e=!1,f=null,g=(0,l.fp)(a.provider,a);if(c.refreshable&&g&&a.refreshToken){let c=await u(a,b);if(!c)return{valid:!1,error:"Token expired and refresh failed",refreshed:!1};d=c.accessToken,e=!0,f=c}if(c.checkExpiry)return e?{valid:!0,error:null,refreshed:e,newTokens:f}:g?{valid:!1,error:"Token expired",refreshed:!1}:{valid:!0,error:null,refreshed:!1,newTokens:null};if("gemini-cli"===a.provider||"antigravity"===a.provider){let g=await t(a,d,b);if(g.valid)return{valid:!0,error:null,refreshed:e,newTokens:f};if(401===g.status&&c.refreshable&&!e&&a.refreshToken){let c=await u(a,b);if(c?.accessToken){let d=await t(a,c.accessToken,b);return d.valid?{valid:!0,error:null,refreshed:!0,newTokens:c}:{valid:!1,error:d.error,refreshed:!0,newTokens:c}}return{valid:!1,error:"Token invalid or revoked",refreshed:!1}}return{valid:!1,error:g.error,refreshed:e}}if("cline"===a.provider||"clinepass"===a.provider){let c=async c=>{let d=await r(a.provider,c,b);return d.ok?{valid:!0,error:null,refreshed:e,newTokens:f}:401===d.status?{valid:!1,error:"Token invalid or revoked",refreshed:e}:403===d.status?{valid:!1,error:"Access denied",refreshed:e}:{valid:!1,error:`API returned ${d.status}`,refreshed:e}},g=await c(d);if(g.valid||"Token invalid or revoked"!==g.error||!a.refreshToken)return g;let h=await u(a,b);return h?.accessToken?(e=!0,f=h,d=h.accessToken,await c(d)):{valid:!1,error:"Token invalid or revoked",refreshed:!1}}try{let g=c.buildUrl?c.buildUrl(d):c.url,h=c.noAuth?{...c.extraHeaders}:{[c.authHeader]:`${c.authPrefix}${d}`,...c.extraHeaders},i={method:c.method,headers:h};c.body&&(i.body=c.body);let j=await w(a.provider,g,i,b);if(j.ok||c.acceptStatuses&&c.acceptStatuses.includes(j.status))return{valid:!0,error:null,refreshed:e,newTokens:f};if(401===j.status&&c.refreshable&&!e&&a.refreshToken){let d=await u(a,b);if(d){let e=c.buildUrl?c.buildUrl(d.accessToken):g,f=c.noAuth?{...c.extraHeaders}:{[c.authHeader]:`${c.authPrefix}${d.accessToken}`,...c.extraHeaders},h={method:c.method,headers:f};c.body&&(h.body=c.body);let i=await w(a.provider,e,h,b);if(i.ok||c.acceptStatuses&&c.acceptStatuses.includes(i.status))return{valid:!0,error:null,refreshed:!0,newTokens:d}}return{valid:!1,error:"Token invalid or revoked",refreshed:!1}}if(401===j.status)return{valid:!1,error:"Token invalid or revoked",refreshed:e};if(403===j.status)return{valid:!1,error:"Access denied",refreshed:e};return{valid:!1,error:`API returned ${j.status}`,refreshed:e}}catch(a){return{valid:!1,error:a.message,refreshed:e}}}async function w(a,b,c={},d=null){let e=j.xq[a],f={...c,identity:e?.identity,provider:a,format:e?.format};return d?.vercelRelayUrl?(0,k.Fm)(b,f,{vercelRelayUrl:d.vercelRelayUrl}):d?.connectionProxyEnabled&&d?.connectionProxyUrl?(0,k.Fm)(b,f,{connectionProxyEnabled:!0,connectionProxyUrl:d.connectionProxyUrl,connectionNoProxy:d.connectionNoProxy||""}):(0,k.Fm)(b,f,d)}async function x(a,b=null){if((0,g.mq)(a.provider)){let c=a.providerSpecificData?.baseUrl;if(!c)return{valid:!1,error:"Missing base URL"};try{let d=await w(a.provider,`${c.replace(/\/$/,"")}/models`,{headers:{Authorization:`Bearer ${a.apiKey}`}},b);return{valid:d.ok,error:d.ok?null:"Invalid API key or base URL"}}catch(a){return{valid:!1,error:a.message}}}if((0,g.gb)(a.provider)){let c=a.providerSpecificData?.baseUrl;if(!c)return{valid:!1,error:"Missing base URL"};try{(c=c.replace(/\/$/,"")).endsWith("/messages")&&(c=c.slice(0,-9));let d=c.endsWith("/v1")?`${c}/messages`:`${c}/v1/messages`,e=a.defaultModel||"claude-3-haiku-20240307",f=await w(a.provider,d,{method:"POST",headers:{"x-api-key":a.apiKey,"anthropic-version":"2023-06-01","content-type":"application/json",Authorization:`Bearer ${a.apiKey}`},body:JSON.stringify({model:e,max_tokens:1,messages:[{role:"user",content:"test"}]})},b),g=401!==f.status&&403!==f.status;return{valid:g,error:g?null:"Invalid API key or base URL"}}catch(a){return{valid:!1,error:a.message}}}try{switch(a.provider){case"cloudflare-ai":{let c=(a.providerSpecificData||{}).accountId;if(!c)return{valid:!1,error:"Missing Account ID"};let d=`https://api.cloudflare.com/client/v4/accounts/${c}/ai/v1/chat/completions`,e=await w(a.provider,d,{method:"POST",headers:{Authorization:`Bearer ${a.apiKey}`,"Content-Type":"application/json"},body:JSON.stringify({model:(0,h.fZ)("cloudflare-ai"),messages:[{role:"user",content:"test"}],max_tokens:1})},b),f=401!==e.status&&403!==e.status&&404!==e.status;return{valid:f,error:f?null:"Invalid API token or Account ID"}}case"azure":{let c=a.providerSpecificData||{},d=(c.azureEndpoint||"").replace(/\/$/,""),e=c.deployment||"gpt-4",f=c.apiVersion||"2024-10-01-preview",g=`${d}/openai/deployments/${e}/chat/completions?api-version=${f}`,h={"api-key":a.apiKey,"Content-Type":"application/json"};c.organization&&(h["OpenAI-Organization"]=c.organization);let i=await w(a.provider,g,{method:"POST",headers:h,body:JSON.stringify({messages:[{role:"user",content:"test"}],max_completion_tokens:1})},b),j=401!==i.status&&403!==i.status;return{valid:j,error:j?null:"Invalid API key or Azure configuration"}}case"openai":{let c=await w(a.provider,"https://api.openai.com/v1/models",{headers:{Authorization:`Bearer ${a.apiKey}`}},b);return{valid:c.ok,error:c.ok?null:"Invalid API key"}}case"vercel-ai-gateway":{let c=await w(a.provider,"https://ai-gateway.vercel.sh/v1/models",{headers:{Authorization:`Bearer ${a.apiKey}`}},b);return{valid:c.ok,error:c.ok?null:"Invalid API key"}}case"anthropic":{let c=await w(a.provider,"https://api.anthropic.com/v1/messages",{method:"POST",headers:{"x-api-key":a.apiKey,"anthropic-version":"2023-06-01","content-type":"application/json"},body:JSON.stringify({model:"claude-3-haiku-20240307",max_tokens:1,messages:[{role:"user",content:"test"}]})},b),d=401!==c.status;return{valid:d,error:d?null:"Invalid API key"}}case"gemini":{let c=await w(a.provider,`https://generativelanguage.googleapis.com/v1/models?key=${a.apiKey}`,{},b);return{valid:c.ok,error:c.ok?null:"Invalid API key"}}case"openrouter":{let c=await w(a.provider,"https://openrouter.ai/api/v1/auth/key",{headers:{Authorization:`Bearer ${a.apiKey}`}},b);return{valid:c.ok,error:c.ok?null:"Invalid API key"}}case"glm":{let c=await w(a.provider,"https://api.z.ai/api/anthropic/v1/messages",{method:"POST",headers:{"x-api-key":a.apiKey,"anthropic-version":"2023-06-01","content-type":"application/json"},body:JSON.stringify({model:"glm-4.7",max_tokens:1,messages:[{role:"user",content:"test"}]})},b),d=401!==c.status&&403!==c.status;return{valid:d,error:d?null:"Invalid API key"}}case"glm-cn":{let c=await w(a.provider,"https://open.bigmodel.cn/api/coding/paas/v4/chat/completions",{method:"POST",headers:{Authorization:`Bearer ${a.apiKey}`,"content-type":"application/json"},body:JSON.stringify({model:"glm-4.7",max_tokens:1,messages:[{role:"user",content:"test"}]})},b),d=401!==c.status&&403!==c.status;return{valid:d,error:d?null:"Invalid API key"}}case"minimax":case"minimax-cn":{let c=await w(a.provider,{minimax:"https://api.minimax.io/anthropic/v1/messages","minimax-cn":"https://api.minimaxi.com/anthropic/v1/messages"}[a.provider],{method:"POST",headers:{"x-api-key":a.apiKey,"anthropic-version":"2023-06-01","content-type":"application/json"},body:JSON.stringify({model:"minimax-m2",max_tokens:1,messages:[{role:"user",content:"test"}]})},b),d=401!==c.status&&403!==c.status;return{valid:d,error:d?null:"Invalid API key"}}case"kimi":{let c=await w(a.provider,"https://api.kimi.com/coding/v1/messages",{method:"POST",headers:{"x-api-key":a.apiKey,"anthropic-version":"2023-06-01","content-type":"application/json"},body:JSON.stringify({model:"kimi-latest",max_tokens:1,messages:[{role:"user",content:"test"}]})},b),d=401!==c.status&&403!==c.status;return{valid:d,error:d?null:"Invalid API key"}}case"alicode":case"alicode-intl":{let c="alicode-intl"===a.provider?"https://coding-intl.dashscope.aliyuncs.com/v1/chat/completions":"https://coding.dashscope.aliyuncs.com/v1/chat/completions",d=await w(a.provider,c,{method:"POST",headers:{Authorization:`Bearer ${a.apiKey}`,"content-type":"application/json"},body:JSON.stringify({model:(0,h.fZ)(a.provider),max_tokens:1,messages:[{role:"user",content:"test"}]})},b),e=401!==d.status&&403!==d.status;return{valid:e,error:e?null:"Invalid API key"}}case"volcengine-ark":case"byteplus":{let c=await w(a.provider,j.xq[a.provider]?.baseUrl,{method:"POST",headers:{Authorization:`Bearer ${a.apiKey}`,"content-type":"application/json"},body:JSON.stringify({model:(0,h.fZ)(a.provider),max_tokens:1,messages:[{role:"user",content:"test"}]})},b),d=401!==c.status&&403!==c.status;return{valid:d,error:d?null:"Invalid API key"}}case"deepseek":{let c=await w(a.provider,"https://api.deepseek.com/models",{headers:{Authorization:`Bearer ${a.apiKey}`}},b);return{valid:c.ok,error:c.ok?null:"Invalid API key"}}case"groq":{let c=await w(a.provider,"https://api.groq.com/openai/v1/models",{headers:{Authorization:`Bearer ${a.apiKey}`}},b);return{valid:c.ok,error:c.ok?null:"Invalid API key"}}case"mistral":{let c=await w(a.provider,"https://api.mistral.ai/v1/models",{headers:{Authorization:`Bearer ${a.apiKey}`}},b);return{valid:c.ok,error:c.ok?null:"Invalid API key"}}case"xai":{let c=await w(a.provider,"https://api.x.ai/v1/models",{headers:{Authorization:`Bearer ${a.apiKey}`,Accept:"application/json"}},b),d=c.ok||403===c.status;return{valid:d,error:d?null:"Invalid API key"}}case"nvidia":{let c=await w(a.provider,"https://integrate.api.nvidia.com/v1/models",{headers:{Authorization:`Bearer ${a.apiKey}`}},b);return{valid:c.ok,error:c.ok?null:"Invalid API key"}}case"perplexity":{let c=await w(a.provider,"https://api.perplexity.ai/v1/models",{headers:{Authorization:`Bearer ${a.apiKey}`}},b);return{valid:c.ok,error:c.ok?null:"Invalid API key"}}case"together":{let c=await w(a.provider,"https://api.together.xyz/v1/models",{headers:{Authorization:`Bearer ${a.apiKey}`}},b);return{valid:c.ok,error:c.ok?null:"Invalid API key"}}case"fireworks":{let c=await w(a.provider,"https://api.fireworks.ai/inference/v1/models",{headers:{Authorization:`Bearer ${a.apiKey}`}},b);return{valid:c.ok,error:c.ok?null:"Invalid API key"}}case"cerebras":{let c=await w(a.provider,"https://api.cerebras.ai/v1/models",{headers:{Authorization:`Bearer ${a.apiKey}`}},b);return{valid:c.ok,error:c.ok?null:"Invalid API key"}}case"cohere":{let c=await w(a.provider,"https://api.cohere.ai/v1/models",{headers:{Authorization:`Bearer ${a.apiKey}`}},b);return{valid:c.ok,error:c.ok?null:"Invalid API key"}}case"nebius":{let c=await w(a.provider,"https://api.studio.nebius.ai/v1/models",{headers:{Authorization:`Bearer ${a.apiKey}`}},b);return{valid:c.ok,error:c.ok?null:"Invalid API key"}}case"siliconflow":{let c=await w(a.provider,"https://api.siliconflow.com/v1/models",{headers:{Authorization:`Bearer ${a.apiKey}`}},b);return{valid:c.ok,error:c.ok?null:"Invalid API key"}}case"hyperbolic":{let c=await w(a.provider,"https://api.hyperbolic.xyz/v1/models",{headers:{Authorization:`Bearer ${a.apiKey}`}},b);return{valid:c.ok,error:c.ok?null:"Invalid API key"}}case"ollama":{let c=await w(a.provider,"https://ollama.com/api/tags",{headers:{Authorization:`Bearer ${a.apiKey}`}},b);return{valid:c.ok,error:c.ok?null:"Invalid API key"}}case"ollama-local":{let c=(0,j.Ak)(a),d=await w(a.provider,`${c}/api/tags`,{},b);return{valid:d.ok,error:d.ok?null:`Ollama not reachable at ${c}`}}case"deepgram":{let c=await w(a.provider,"https://api.deepgram.com/v1/projects",{headers:{Authorization:`Token ${a.apiKey}`}},b);return{valid:c.ok,error:c.ok?null:"Invalid API key"}}case"assemblyai":{let c=await w(a.provider,"https://api.assemblyai.com/v1/account",{headers:{Authorization:`Bearer ${a.apiKey}`}},b);return{valid:c.ok,error:c.ok?null:"Invalid API key"}}case"nanobanana":{let c=await w(a.provider,"https://api.nanobananaapi.ai/v1/models",{headers:{Authorization:`Bearer ${a.apiKey}`}},b);return{valid:c.ok,error:c.ok?null:"Invalid API key"}}case"fal-ai":{let c=await w(a.provider,"https://api.fal.ai/v1/models?limit=1",{headers:{Authorization:`Key ${a.apiKey}`}},b),d=401!==c.status&&403!==c.status;return{valid:d,error:d?null:"Invalid API key"}}case"chutes":{let c=await w(a.provider,"https://llm.chutes.ai/v1/models",{headers:{Authorization:`Bearer ${a.apiKey}`}},b);return{valid:c.ok,error:c.ok?null:"Invalid API key"}}case"grok-web":{let c=a.apiKey.startsWith("sso=")?a.apiKey.slice(4):a.apiKey,d=a=>Array.from(crypto.getRandomValues(new Uint8Array(a)),a=>a.toString(16).padStart(2,"0")).join(""),e=Buffer.from("e:TypeError: Cannot read properties of null (reading 'children')").toString("base64"),f=await w(a.provider,"https://grok.com/rest/app-chat/conversations/new",{method:"POST",headers:{Accept:"*/*","Content-Type":"application/json",Cookie:`sso=${c}`,Origin:"https://grok.com",Referer:"https://grok.com/","x-statsig-id":e,"x-xai-request-id":crypto.randomUUID(),traceparent:`00-${d(16)}-${d(8)}-00`},body:JSON.stringify({temporary:!0,modelName:"grok-4",message:"ping",fileAttachments:[],imageAttachments:[],disableSearch:!1,enableImageGeneration:!1,sendFinalMetadata:!0})},b),g=401!==f.status&&403!==f.status;return{valid:g,error:g?null:"Invalid SSO cookie"}}case"perplexity-web":{let c=a.apiKey;c.startsWith("__Secure-next-auth.session-token=")&&(c=c.slice(33));let d=await w(a.provider,"https://www.perplexity.ai/api/auth/session",{method:"GET",headers:{Cookie:`__Secure-next-auth.session-token=${c}`}},b);if(!d.ok)return{valid:!1,error:"Invalid session cookie"};let e=await d.json().catch(()=>null),f=!!(e&&e.user);return{valid:f,error:f?null:"Session expired — re-paste cookie"}}case"opencode-go":{let c=await w(a.provider,"https://opencode.ai/zen/go/v1/chat/completions",{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${a.apiKey}`},body:JSON.stringify({model:(0,h.fZ)("opencode-go"),messages:[{role:"user",content:"ping"}],max_tokens:1,stream:!1})},b),d=401!==c.status&&403!==c.status;return{valid:d,error:d?null:"Invalid API key"}}case"xiaomi-mimo":case"xiaomi-tokenplan":{let c=await w(a.provider,`${{"xiaomi-mimo":"https://api.xiaomimimo.com/v1","xiaomi-tokenplan":"https://token-plan-sgp.xiaomimimo.com/v1"}[a.provider]}/models`,{headers:{Authorization:`Bearer ${a.apiKey}`}},b);return{valid:c.ok,error:c.ok?null:"Invalid API key"}}case"blackbox":{let c=j.xq.blackbox?.baseUrl?.replace(/\/chat\/completions$/,"")||"https://api.blackbox.ai/v1",d=await w(a.provider,`${c}/models`,{headers:{Authorization:`Bearer ${a.apiKey}`}},b);return{valid:d.ok,error:d.ok?null:"Invalid API key"}}case"clinepass":{let c=await w(a.provider,"https://api.cline.bot/api/v1/models",{headers:{Accept:"application/json",Authorization:`Bearer ${a.apiKey}`}},b);return{valid:c.ok,error:c.ok?null:"Invalid API key"}}case"commandcode":{let c=await w(a.provider,"https://api.commandcode.ai/provider/v1/models",{headers:{Authorization:`Bearer ${a.apiKey}`,"x-command-code-version":"0.25.7","x-cli-environment":"cli"}},b);return{valid:c.ok,error:c.ok?null:"Invalid API key"}}default:return{valid:!1,error:"Provider test not supported"}}}catch(a){return{valid:!1,error:a.message}}}async function y(a){let b,c=await (0,d.Mc)(a);if(!c)return{valid:!1,error:"Connection not found",latencyMs:0,testedAt:new Date().toISOString()};let h={...c,provider:(0,g.rs)(c.provider)},i=await (0,e.B)(c.providerSpecificData||{});if(i.connectionProxyEnabled&&i.connectionProxyUrl&&!i.vercelRelayUrl){let b=await (0,f.C)({proxyUrl:i.connectionProxyUrl});if(!b.ok){let c=b.error||`Proxy test failed with status ${b.status}`;return await (0,d.updateProviderConnection)(a,{testStatus:"error",lastError:c,lastErrorAt:new Date().toISOString()}),{valid:!1,error:c,latencyMs:0,testedAt:new Date().toISOString()}}}let j=Date.now();b="apikey"===c.authType||"cookie"===c.authType?await x(h,i):await v(h,i);let k=Date.now()-j,l={testStatus:b.valid?"active":"error",lastError:b.valid?null:b.error,lastErrorAt:b.valid?null:new Date().toISOString()};return b.refreshed&&b.newTokens&&(b.newTokens.accessToken&&(l.accessToken=b.newTokens.accessToken),b.newTokens.refreshToken&&(l.refreshToken=b.newTokens.refreshToken),b.newTokens.idToken&&(l.idToken=b.newTokens.idToken),b.newTokens.lastRefreshAt&&(l.lastRefreshAt=b.newTokens.lastRefreshAt),b.newTokens.expiresIn&&(l.expiresIn=b.newTokens.expiresIn),b.newTokens.expiresIn?l.expiresAt=new Date(Date.now()+1e3*b.newTokens.expiresIn).toISOString():b.newTokens.expiresAt&&(l.expiresAt=b.newTokens.expiresAt),b.newTokens.providerSpecificData&&(l.providerSpecificData={...c.providerSpecificData||{},...b.newTokens.providerSpecificData})),await (0,d.updateProviderConnection)(a,l),{valid:b.valid,error:b.error,refreshed:!!b.refreshed,latencyMs:k,testedAt:new Date().toISOString()}}},73159:(a,b,c)=>{c.d(b,{U:()=>l,o:()=>m});var d=c(45350),e=c(35570);let f=d.xq.xai?.clientId,g="https://auth.x.ai",h="/oauth2/authorize",i="/oauth2/token",j="/.well-known/openid-configuration",k="/callback",l=96,m={clientId:f,issuer:g,authEndpointPath:h,tokenEndpointPath:i,discoveryPath:j,authorizeUrl:`${g}${h}`,tokenUrl:`${g}${i}`,discoveryUrl:`${g}${j}`,scope:"openid profile email offline_access grok-cli:access api:access",apiBaseUrl:"https://api.x.ai/v1",redirectUri:`http://127.0.0.1:56121${k}`,loopbackPort:56121,callbackPath:k,pkceVerifierBytes:96,refreshLeadSeconds:300,userAgent:(0,e.dV)("grok-cli")?.userAgent||"grok-cli/1.0.0",codeChallengeMethod:"S256"}},74926:(a,b,c)=>{c.d(b,{C:()=>f});var d=c(47774);function e(a){return null==a?"":String(a).trim()}async function f({proxyUrl:a,testUrl:b,timeoutMs:c}={}){let g,h=e(a);if(!h)return{ok:!1,status:400,error:"proxyUrl is required"};let i=e(b)||"https://google.com/",j=Number(c),k=Number.isFinite(j)&&j>0?Math.min(j,3e4):8e3;try{try{g=new d.ProxyAgent({uri:h})}catch(a){return{ok:!1,status:400,error:`Invalid proxy URL: ${a?.message||String(a)}`}}let a=new AbortController,b=Date.now(),c=setTimeout(()=>a.abort(),k);try{let c=await (0,d.hd)(i,{method:"HEAD",dispatcher:g,signal:a.signal});return{ok:c.ok,status:c.status,statusText:c.statusText,url:i,elapsedMs:Date.now()-b}}catch(b){let a=b?.name==="AbortError"?"Proxy test timed out":function(a){if(!a)return"Unknown error";let b=a?.message||String(a),c=a?.cause?.code||a?.code,d=a?.cause?.message;return d&&d!==b?c?`${b}: ${d} (${c})`:`${b}: ${d}`:c&&!b.includes(c)?`${b} (${c})`:b}(b);return{ok:!1,status:500,error:a}}finally{clearTimeout(c)}}finally{try{await g?.close?.()}catch{}}}},92990:(a,b,c)=>{c.d(b,{DI:()=>i,Hp:()=>k,LT:()=>j,MZ:()=>v,Nl:()=>z,Nu:()=>p,OV:()=>h,S6:()=>s,Td:()=>A,Tx:()=>q,WN:()=>t,Ww:()=>C,YT:()=>n,ZL:()=>m,cD:()=>o,f7:()=>y,hF:()=>l,lB:()=>w,qp:()=>B,t:()=>u,w1:()=>x});var d=c(21820),e=c(92675),f=c(45350);function g(){let a=(0,d.platform)(),b=(0,d.arch)();return"darwin"===a?"arm64"===b?2:1:"linux"===a?"arm64"===b?4:3:5*("win32"===a)}let h={...f.sr.claude},i={...f.sr.codex},j={...e.w3,...f.sr["gemini-cli"]},k={...f.sr.qwen},l={...f.sr.qoder},m={...f.sr.iflow},n={...e.XP,...f.sr.antigravity,loadCodeAssistClientMetadata:JSON.stringify({ideType:9,platform:g(),pluginType:2})};function o(){return{ideType:9,platform:g(),pluginType:2}}({...f.sr.openai});let p={...f.sr.github},q={...f.sr.kiro},r=/^[a-z]{2}(?:-[a-z0-9]+)+-\d{1,2}$/;function s(a){if("string"!=typeof a||!r.test(a))throw Error("Invalid region");return a}let t={...f.sr.cursor,tokenStoragePaths:{linux:"~/.config/Cursor/User/globalStorage/state.vscdb",macos:"/Users/<user>/Library/Application Support/Cursor/User/globalStorage/state.vscdb",windows:"%APPDATA%\\Cursor\\User\\globalStorage\\state.vscdb"}},u={...f.sr["kimi-coding"],clientId:process.env.KIMI_CODING_OAUTH_CLIENT_ID||f.xq["kimi-coding"]?.clientId},v={...f.sr.kilocode},w={...f.sr.cline},x={...f.sr.clinepass},y={...f.sr.gitlab},z={...f.sr["codebuddy-cn"]},A={...f.sr.kimchi},B={...f.sr["grok-cli"]},C=3e5}};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";exports.id=646,exports.ids=[646],exports.modules={80646:(a,b,c)=>{c.r(b),c.d(b,{autoImportConfigFile:()=>aQ,importConfig:()=>aP,parseConfigContent:()=>aO});var d=c(73024),e=c.n(d),f=c(76760),g=c.n(f);let h=Symbol.for("__confbox_fmt__"),i=/^(\s+)/,j=/(\s+)$/;function k(a,b,c){b&&"object"==typeof b&&Object.defineProperty(b,h,{enumerable:!1,configurable:!0,writable:!0,value:function(a,b={}){return{sample:void 0===b.indent&&!1!==b.preserveIndentation&&a.slice(0,b?.sampleSize||1024),whiteSpace:!1===b.preserveWhitespace?void 0:{start:i.exec(a)?.[0]||"",end:j.exec(a)?.[0]||""}}}(a,c)})}var l=function(a,b){var c,d="";for(c=0;c<b;c+=1)d+=a;return d},m=function(a){return 0===a&&1/a==-1/0};function n(a,b){var c="",d=a.reason||"(unknown reason)";return a.mark?(a.mark.name&&(c+='in "'+a.mark.name+'" '),c+="("+(a.mark.line+1)+":"+(a.mark.column+1)+")",!b&&a.mark.snippet&&(c+=`
|
|
2
|
+
|
|
3
|
+
`+a.mark.snippet),d+" "+c):d}function o(a,b){Error.call(this),this.name="YAMLException",this.reason=a,this.mark=b,this.message=n(this,!1),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=Error().stack||""}function p(a,b,c,d,e){var f="",g="",h=Math.floor(e/2)-1;return d-b>h&&(b=d-h+(f=" ... ").length),c-d>h&&(c=d+h-(g=" ...").length),{str:f+a.slice(b,c).replace(/\t/g,"→")+g,pos:d-b+f.length}}function q(a,b){return l(" ",b-a.length)+a}o.prototype=Object.create(Error.prototype),o.prototype.constructor=o,o.prototype.toString=function(a){return this.name+": "+n(this,a)};var r=function(a,b){if(b=Object.create(b||null),!a.buffer)return null;b.maxLength||=79,"number"!=typeof b.indent&&(b.indent=1),"number"!=typeof b.linesBefore&&(b.linesBefore=3),"number"!=typeof b.linesAfter&&(b.linesAfter=2);for(var c,d=/\r?\n|\r|\0/g,e=[0],f=[],g=-1;c=d.exec(a.buffer);)f.push(c.index),e.push(c.index+c[0].length),a.position<=c.index&&g<0&&(g=e.length-2);g<0&&(g=e.length-1);var h,i,j="",k=Math.min(a.line+b.linesAfter,f.length).toString().length,m=b.maxLength-(b.indent+k+3);for(h=1;h<=b.linesBefore&&!(g-h<0);h++)i=p(a.buffer,e[g-h],f[g-h],a.position-(e[g]-e[g-h]),m),j=l(" ",b.indent)+q((a.line-h+1).toString(),k)+" | "+i.str+`
|
|
4
|
+
`+j;for(i=p(a.buffer,e[g],f[g],a.position,m),j+=l(" ",b.indent)+q((a.line+1).toString(),k)+" | "+i.str+`
|
|
5
|
+
`+l("-",b.indent+k+3+i.pos)+`^
|
|
6
|
+
`,h=1;h<=b.linesAfter&&!(g+h>=f.length);h++)i=p(a.buffer,e[g+h],f[g+h],a.position-(e[g]-e[g+h]),m),j+=l(" ",b.indent)+q((a.line+h+1).toString(),k)+" | "+i.str+`
|
|
7
|
+
`;return j.replace(/\n$/,"")},s=["kind","multi","resolve","construct","instanceOf","predicate","represent","representName","defaultStyle","styleAliases"],t=["scalar","sequence","mapping"],u=function(a,b){var c,d;if(Object.keys(b||={}).forEach(function(b){if(-1===s.indexOf(b))throw new o('Unknown option "'+b+'" is met in definition of "'+a+'" YAML type.')}),this.options=b,this.tag=a,this.kind=b.kind||null,this.resolve=b.resolve||function(){return!0},this.construct=b.construct||function(a){return a},this.instanceOf=b.instanceOf||null,this.predicate=b.predicate||null,this.represent=b.represent||null,this.representName=b.representName||null,this.defaultStyle=b.defaultStyle||null,this.multi=b.multi||!1,this.styleAliases=(c=b.styleAliases||null,d={},null!==c&&Object.keys(c).forEach(function(a){c[a].forEach(function(b){d[String(b)]=a})}),d),-1===t.indexOf(this.kind))throw new o('Unknown kind "'+this.kind+'" is specified for "'+a+'" YAML type.')};function v(a,b){var c=[];return a[b].forEach(function(a){var b=c.length;c.forEach(function(c,d){c.tag===a.tag&&c.kind===a.kind&&c.multi===a.multi&&(b=d)}),c[b]=a}),c}function w(a){return this.extend(a)}w.prototype.extend=function(a){var b=[],c=[];if(a instanceof u)c.push(a);else if(Array.isArray(a))c=c.concat(a);else if(a&&(Array.isArray(a.implicit)||Array.isArray(a.explicit)))a.implicit&&(b=b.concat(a.implicit)),a.explicit&&(c=c.concat(a.explicit));else throw new o("Schema.extend argument should be a Type, [ Type ], or a schema definition ({ implicit: [...], explicit: [...] })");b.forEach(function(a){if(!(a instanceof u))throw new o("Specified list of YAML types (or a single Type object) contains a non-Type object.");if(a.loadKind&&"scalar"!==a.loadKind)throw new o("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.");if(a.multi)throw new o("There is a multi type in the implicit list of a schema. Multi tags can only be listed as explicit.")}),c.forEach(function(a){if(!(a instanceof u))throw new o("Specified list of YAML types (or a single Type object) contains a non-Type object.")});var d=Object.create(w.prototype);return d.implicit=(this.implicit||[]).concat(b),d.explicit=(this.explicit||[]).concat(c),d.compiledImplicit=v(d,"implicit"),d.compiledExplicit=v(d,"explicit"),d.compiledTypeMap=function(){var a,b,c={scalar:{},sequence:{},mapping:{},fallback:{},multi:{scalar:[],sequence:[],mapping:[],fallback:[]}};function d(a){a.multi?(c.multi[a.kind].push(a),c.multi.fallback.push(a)):c[a.kind][a.tag]=c.fallback[a.tag]=a}for(a=0,b=arguments.length;a<b;a+=1)arguments[a].forEach(d);return c}(d.compiledImplicit,d.compiledExplicit),d};var x=new w({explicit:[new u("tag:yaml.org,2002:str",{kind:"scalar",construct:function(a){return null===a?"":a}}),new u("tag:yaml.org,2002:seq",{kind:"sequence",construct:function(a){return null===a?[]:a}}),new u("tag:yaml.org,2002:map",{kind:"mapping",construct:function(a){return null===a?{}:a}})]}),y=new u("tag:yaml.org,2002:null",{kind:"scalar",resolve:function(a){if(null===a)return!0;var b=a.length;return 1===b&&"~"===a||4===b&&("null"===a||"Null"===a||"NULL"===a)},construct:function(){return null},predicate:function(a){return null===a},represent:{canonical:function(){return"~"},lowercase:function(){return"null"},uppercase:function(){return"NULL"},camelcase:function(){return"Null"},empty:function(){return""}},defaultStyle:"lowercase"}),z=new u("tag:yaml.org,2002:bool",{kind:"scalar",resolve:function(a){if(null===a)return!1;var b=a.length;return 4===b&&("true"===a||"True"===a||"TRUE"===a)||5===b&&("false"===a||"False"===a||"FALSE"===a)},construct:function(a){return"true"===a||"True"===a||"TRUE"===a},predicate:function(a){return"[object Boolean]"===Object.prototype.toString.call(a)},represent:{lowercase:function(a){return a?"true":"false"},uppercase:function(a){return a?"TRUE":"FALSE"},camelcase:function(a){return a?"True":"False"}},defaultStyle:"lowercase"}),A=new u("tag:yaml.org,2002:int",{kind:"scalar",resolve:function(a){if(null===a)return!1;var b,c,d,e,f=a.length,g=0,h=!1;if(!f)return!1;if(("-"===(e=a[g])||"+"===e)&&(e=a[++g]),"0"===e){if(g+1===f)return!0;if("b"===(e=a[++g])){for(g++;g<f;g++)if("_"!==(e=a[g])){if("0"!==e&&"1"!==e)return!1;h=!0}return h&&"_"!==e}if("x"===e){for(g++;g<f;g++)if("_"!==(e=a[g])){if(!(48<=(b=a.charCodeAt(g))&&b<=57||65<=b&&b<=70||97<=b&&b<=102))return!1;h=!0}return h&&"_"!==e}if("o"===e){for(g++;g<f;g++)if("_"!==(e=a[g])){if(!(48<=(c=a.charCodeAt(g))&&c<=55))return!1;h=!0}return h&&"_"!==e}}if("_"===e)return!1;for(;g<f;g++)if("_"!==(e=a[g])){if(!(48<=(d=a.charCodeAt(g))&&d<=57))return!1;h=!0}return!(!h||"_"===e)},construct:function(a){var b,c=a,d=1;if(-1!==c.indexOf("_")&&(c=c.replace(/_/g,"")),("-"===(b=c[0])||"+"===b)&&("-"===b&&(d=-1),b=(c=c.slice(1))[0]),"0"===c)return 0;if("0"===b){if("b"===c[1])return d*parseInt(c.slice(2),2);if("x"===c[1])return d*parseInt(c.slice(2),16);if("o"===c[1])return d*parseInt(c.slice(2),8)}return d*parseInt(c,10)},predicate:function(a){return"[object Number]"===Object.prototype.toString.call(a)&&a%1==0&&!m(a)},represent:{binary:function(a){return a>=0?"0b"+a.toString(2):"-0b"+a.toString(2).slice(1)},octal:function(a){return a>=0?"0o"+a.toString(8):"-0o"+a.toString(8).slice(1)},decimal:function(a){return a.toString(10)},hexadecimal:function(a){return a>=0?"0x"+a.toString(16).toUpperCase():"-0x"+a.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}}),B=RegExp("^(?:[-+]?(?:[0-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$"),C=/^[-+]?[0-9]+e/,D=new u("tag:yaml.org,2002:float",{kind:"scalar",resolve:function(a){return!(null===a||!B.test(a)||"_"===a[a.length-1])},construct:function(a){var b=a.replace(/_/g,"").toLowerCase(),c="-"===b[0]?-1:1;return"+-".indexOf(b[0])>=0&&(b=b.slice(1)),".inf"===b?1===c?1/0:-1/0:".nan"===b?NaN:c*parseFloat(b,10)},predicate:function(a){return"[object Number]"===Object.prototype.toString.call(a)&&(a%1!=0||m(a))},represent:function(a,b){var c;if(isNaN(a))switch(b){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(a===1/0)switch(b){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(a===-1/0)switch(b){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(m(a))return"-0.0";return c=a.toString(10),C.test(c)?c.replace("e",".e"):c},defaultStyle:"lowercase"}),E=x.extend({implicit:[y,z,A,D]}),F=RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),G=RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$"),H=new u("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:function(a){return null!==a&&(null!==F.exec(a)||null!==G.exec(a))},construct:function(a){var b,c,d,e,f,g,h,i,j=0,k=null;if(null===(b=F.exec(a))&&(b=G.exec(a)),null===b)throw Error("Date resolve error");if(c=+b[1],d=b[2]-1,e=+b[3],!b[4])return new Date(Date.UTC(c,d,e));if(f=+b[4],g=+b[5],h=+b[6],b[7]){for(j=b[7].slice(0,3);j.length<3;)j+="0";j*=1}return b[9]&&(k=(60*b[10]+ +(b[11]||0))*6e4,"-"===b[9]&&(k=-k)),i=new Date(Date.UTC(c,d,e,f,g,h,j)),k&&i.setTime(i.getTime()-k),i},instanceOf:Date,represent:function(a){return a.toISOString()}}),I=new u("tag:yaml.org,2002:merge",{kind:"scalar",resolve:function(a){return"<<"===a||null===a}}),J=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=
|
|
8
|
+
\r`,K=new u("tag:yaml.org,2002:binary",{kind:"scalar",resolve:function(a){if(null===a)return!1;var b,c,d=0,e=a.length;for(c=0;c<e;c++)if(!((b=J.indexOf(a.charAt(c)))>64)){if(b<0)return!1;d+=6}return d%8==0},construct:function(a){var b,c,d=a.replace(/[\r\n=]/g,""),e=d.length,f=0,g=[];for(b=0;b<e;b++)b%4==0&&b&&(g.push(f>>16&255),g.push(f>>8&255),g.push(255&f)),f=f<<6|J.indexOf(d.charAt(b));return 0==(c=e%4*6)?(g.push(f>>16&255),g.push(f>>8&255),g.push(255&f)):18===c?(g.push(f>>10&255),g.push(f>>2&255)):12===c&&g.push(f>>4&255),new Uint8Array(g)},predicate:function(a){return"[object Uint8Array]"===Object.prototype.toString.call(a)},represent:function(a){var b,c,d="",e=0,f=a.length;for(b=0;b<f;b++)b%3==0&&b&&(d+=J[e>>18&63],d+=J[e>>12&63],d+=J[e>>6&63],d+=J[63&e]),e=(e<<8)+a[b];return 0==(c=f%3)?(d+=J[e>>18&63],d+=J[e>>12&63],d+=J[e>>6&63],d+=J[63&e]):2===c?(d+=J[e>>10&63],d+=J[e>>4&63],d+=J[e<<2&63],d+=J[64]):1===c&&(d+=J[e>>2&63],d+=J[e<<4&63],d+=J[64],d+=J[64]),d}}),L=Object.prototype.hasOwnProperty,M=Object.prototype.toString,N=new u("tag:yaml.org,2002:omap",{kind:"sequence",resolve:function(a){if(null===a)return!0;var b,c,d,e,f,g=[];for(b=0,c=a.length;b<c;b+=1){if(d=a[b],f=!1,"[object Object]"!==M.call(d))return!1;for(e in d)if(L.call(d,e))if(f)return!1;else f=!0;if(!f||-1!==g.indexOf(e))return!1;g.push(e)}return!0},construct:function(a){return null===a?[]:a}}),O=Object.prototype.toString,P=new u("tag:yaml.org,2002:pairs",{kind:"sequence",resolve:function(a){var b,c,d,e,f;if(null===a)return!0;for(f=Array(a.length),b=0,c=a.length;b<c;b+=1){if(d=a[b],"[object Object]"!==O.call(d)||1!==(e=Object.keys(d)).length)return!1;f[b]=[e[0],d[e[0]]]}return!0},construct:function(a){var b,c,d,e,f;if(null===a)return[];for(f=Array(a.length),b=0,c=a.length;b<c;b+=1)e=Object.keys(d=a[b]),f[b]=[e[0],d[e[0]]];return f}}),Q=Object.prototype.hasOwnProperty,R=new u("tag:yaml.org,2002:set",{kind:"mapping",resolve:function(a){var b;if(null===a)return!0;for(b in a)if(Q.call(a,b)&&null!==a[b])return!1;return!0},construct:function(a){return null===a?{}:a}}),S=E.extend({implicit:[H,I],explicit:[K,N,P,R]}),T=Object.prototype.hasOwnProperty,U=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,V=/[\x85\u2028\u2029]/,W=/[,\[\]\{\}]/,X=/^(?:!|!!|![a-z\-]+!)$/i,Y=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;function Z(a){return Object.prototype.toString.call(a)}function $(a){return 10===a||13===a}function _(a){return 9===a||32===a}function aa(a){return 9===a||32===a||10===a||13===a}function ab(a){return 44===a||91===a||93===a||123===a||125===a}function ac(a){return 48===a?"\0":97===a?"\x07":98===a?"\b":116===a||9===a?" ":110===a?`
|
|
9
|
+
`:118===a?"\v":102===a?"\f":114===a?`\r`:101===a?"\x1b":32===a?" ":34===a?'"':47===a?"/":92===a?"\\":78===a?"\x85":95===a?"\xa0":76===a?"\u2028":80===a?"\u2029":""}function ad(a,b,c){"__proto__"===b?Object.defineProperty(a,b,{configurable:!0,enumerable:!0,writable:!0,value:c}):a[b]=c}for(var ae=Array(256),af=Array(256),ag=0;ag<256;ag++)ae[ag]=+!!ac(ag),af[ag]=ac(ag);function ah(a,b){this.input=a,this.filename=b.filename||null,this.schema=b.schema||S,this.onWarning=b.onWarning||null,this.legacy=b.legacy||!1,this.json=b.json||!1,this.listener=b.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=a.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.firstTabInLine=-1,this.documents=[]}function ai(a,b){var c={name:a.filename,buffer:a.input.slice(0,-1),position:a.position,line:a.line,column:a.position-a.lineStart};return c.snippet=r(c),new o(b,c)}function aj(a,b){throw ai(a,b)}function ak(a,b){a.onWarning&&a.onWarning.call(null,ai(a,b))}var al={YAML:function(a,b,c){var d,e,f;null!==a.version&&aj(a,"duplication of %YAML directive"),1!==c.length&&aj(a,"YAML directive accepts exactly one argument"),null===(d=/^([0-9]+)\.([0-9]+)$/.exec(c[0]))&&aj(a,"ill-formed argument of the YAML directive"),e=parseInt(d[1],10),f=parseInt(d[2],10),1!==e&&aj(a,"unacceptable YAML version of the document"),a.version=c[0],a.checkLineBreaks=f<2,1!==f&&2!==f&&ak(a,"unsupported YAML version of the document")},TAG:function(a,b,c){var d,e;2!==c.length&&aj(a,"TAG directive accepts exactly two arguments"),d=c[0],e=c[1],X.test(d)||aj(a,"ill-formed tag handle (first argument) of the TAG directive"),T.call(a.tagMap,d)&&aj(a,'there is a previously declared suffix for "'+d+'" tag handle'),Y.test(e)||aj(a,"ill-formed tag prefix (second argument) of the TAG directive");try{e=decodeURIComponent(e)}catch{aj(a,"tag prefix is malformed: "+e)}a.tagMap[d]=e}};function am(a,b,c,d){var e,f,g,h;if(b<c){if(h=a.input.slice(b,c),d)for(e=0,f=h.length;e<f;e+=1)9===(g=h.charCodeAt(e))||32<=g&&g<=1114111||aj(a,"expected valid JSON character");else U.test(h)&&aj(a,"the stream contains non-printable characters");a.result+=h}}function an(a,b,c,d){var e,f,g,h,i;for("object"==typeof(i=c)&&i||aj(a,"cannot merge mappings; the provided source object is unacceptable"),e=Object.keys(c),g=0,h=e.length;g<h;g+=1)f=e[g],T.call(b,f)||(ad(b,f,c[f]),d[f]=!0)}function ao(a,b,c,d,e,f,g,h,i){var j,k;if(Array.isArray(e))for(e=Array.prototype.slice.call(e),j=0,k=e.length;j<k;j+=1)Array.isArray(e[j])&&aj(a,"nested arrays are not supported inside keys"),"object"==typeof e&&"[object Object]"===Z(e[j])&&(e[j]="[object Object]");if("object"==typeof e&&"[object Object]"===Z(e)&&(e="[object Object]"),e=String(e),null===b&&(b={}),"tag:yaml.org,2002:merge"===d)if(Array.isArray(f))for(j=0,k=f.length;j<k;j+=1)an(a,b,f[j],c);else an(a,b,f,c);else!a.json&&!T.call(c,e)&&T.call(b,e)&&(a.line=g||a.line,a.lineStart=h||a.lineStart,a.position=i||a.position,aj(a,"duplicated mapping key")),ad(b,e,f),delete c[e];return b}function ap(a){var b=a.input.charCodeAt(a.position);10===b?a.position++:13===b?(a.position++,10===a.input.charCodeAt(a.position)&&a.position++):aj(a,"a line break is expected"),a.line+=1,a.lineStart=a.position,a.firstTabInLine=-1}function aq(a,b,c){for(var d=0,e=a.input.charCodeAt(a.position);0!==e;){for(;_(e);)9===e&&-1===a.firstTabInLine&&(a.firstTabInLine=a.position),e=a.input.charCodeAt(++a.position);if(b&&35===e)do e=a.input.charCodeAt(++a.position);while(10!==e&&13!==e&&0!==e);if($(e))for(ap(a),e=a.input.charCodeAt(a.position),d++,a.lineIndent=0;32===e;)a.lineIndent++,e=a.input.charCodeAt(++a.position);else break}return -1!==c&&0!==d&&a.lineIndent<c&&ak(a,"deficient indentation"),d}function ar(a){var b=a.position,c=a.input.charCodeAt(b);return!!((45===c||46===c)&&c===a.input.charCodeAt(b+1)&&c===a.input.charCodeAt(b+2)&&(b+=3,0===(c=a.input.charCodeAt(b))||aa(c)))}function as(a,b){1===b?a.result+=" ":b>1&&(a.result+=l(`
|
|
10
|
+
`,b-1))}function at(a,b){var c,d,e=a.tag,f=a.anchor,g=[],h=!1;if(-1!==a.firstTabInLine)return!1;for(null!==a.anchor&&(a.anchorMap[a.anchor]=g),d=a.input.charCodeAt(a.position);0!==d&&(-1!==a.firstTabInLine&&(a.position=a.firstTabInLine,aj(a,"tab characters must not be used in indentation")),!(45!==d||!aa(a.input.charCodeAt(a.position+1))));){if(h=!0,a.position++,aq(a,!0,-1)&&a.lineIndent<=b){g.push(null),d=a.input.charCodeAt(a.position);continue}if(c=a.line,au(a,b,3,!1,!0),g.push(a.result),aq(a,!0,-1),d=a.input.charCodeAt(a.position),(a.line===c||a.lineIndent>b)&&0!==d)aj(a,"bad indentation of a sequence entry");else if(a.lineIndent<b)break}return!!h&&(a.tag=e,a.anchor=f,a.kind="sequence",a.result=g,!0)}function au(a,b,c,d,e){var f,g,h,i,j,k,m,n,o,p=1,q=!1,r=!1;if(null!==a.listener&&a.listener("open",a),a.tag=null,a.anchor=null,a.kind=null,a.result=null,f=g=h=4===c||3===c,d&&aq(a,!0,-1)&&(q=!0,a.lineIndent>b?p=1:a.lineIndent===b?p=0:a.lineIndent<b&&(p=-1)),1===p)for(;function(a){var b,c,d,e=!1,f=!1,g=a.input.charCodeAt(a.position);if(33!==g)return!1;if(null!==a.tag&&aj(a,"duplication of a tag property"),60===(g=a.input.charCodeAt(++a.position))?(e=!0,g=a.input.charCodeAt(++a.position)):33===g?(f=!0,c="!!",g=a.input.charCodeAt(++a.position)):c="!",b=a.position,e){do g=a.input.charCodeAt(++a.position);while(0!==g&&62!==g);a.position<a.length?(d=a.input.slice(b,a.position),g=a.input.charCodeAt(++a.position)):aj(a,"unexpected end of the stream within a verbatim tag")}else{for(;0!==g&&!aa(g);)33===g&&(f?aj(a,"tag suffix cannot contain exclamation marks"):(c=a.input.slice(b-1,a.position+1),X.test(c)||aj(a,"named tag handle cannot contain such characters"),f=!0,b=a.position+1)),g=a.input.charCodeAt(++a.position);d=a.input.slice(b,a.position),W.test(d)&&aj(a,"tag suffix cannot contain flow indicator characters")}d&&!Y.test(d)&&aj(a,"tag name cannot contain such characters: "+d);try{d=decodeURIComponent(d)}catch{aj(a,"tag name is malformed: "+d)}return e?a.tag=d:T.call(a.tagMap,c)?a.tag=a.tagMap[c]+d:"!"===c?a.tag="!"+d:"!!"===c?a.tag="tag:yaml.org,2002:"+d:aj(a,'undeclared tag handle "'+c+'"'),!0}(a)||function(a){var b,c=a.input.charCodeAt(a.position);if(38!==c)return!1;for(null!==a.anchor&&aj(a,"duplication of an anchor property"),c=a.input.charCodeAt(++a.position),b=a.position;0!==c&&!aa(c)&&!ab(c);)c=a.input.charCodeAt(++a.position);return a.position===b&&aj(a,"name of an anchor node must contain at least one character"),a.anchor=a.input.slice(b,a.position),!0}(a);)aq(a,!0,-1)?(q=!0,h=f,a.lineIndent>b?p=1:a.lineIndent===b?p=0:a.lineIndent<b&&(p=-1)):h=!1;if(h&&=q||e,(1===p||4===c)&&(n=1===c||2===c?b:b+1,o=a.position-a.lineStart,1===p?h&&(at(a,o)||function(a,b,c){var d,e,f,g,h,i,j,k=a.tag,l=a.anchor,m={},n=Object.create(null),o=null,p=null,q=null,r=!1,s=!1;if(-1!==a.firstTabInLine)return!1;for(null!==a.anchor&&(a.anchorMap[a.anchor]=m),j=a.input.charCodeAt(a.position);0!==j;){if(r||-1===a.firstTabInLine||(a.position=a.firstTabInLine,aj(a,"tab characters must not be used in indentation")),d=a.input.charCodeAt(a.position+1),f=a.line,(63===j||58===j)&&aa(d))63===j?(r&&(ao(a,m,n,o,p,null,g,h,i),o=p=q=null),s=!0,r=!0,e=!0):r?(r=!1,e=!0):aj(a,"incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line"),a.position+=1,j=d;else{if(g=a.line,h=a.lineStart,i=a.position,!au(a,c,2,!1,!0))break;if(a.line===f){for(j=a.input.charCodeAt(a.position);_(j);)j=a.input.charCodeAt(++a.position);if(58===j)aa(j=a.input.charCodeAt(++a.position))||aj(a,"a whitespace character is expected after the key-value separator within a block mapping"),r&&(ao(a,m,n,o,p,null,g,h,i),o=p=q=null),s=!0,r=!1,e=!1,o=a.tag,p=a.result;else{if(!s)return a.tag=k,a.anchor=l,!0;aj(a,"can not read an implicit mapping pair; a colon is missed")}}else{if(!s)return a.tag=k,a.anchor=l,!0;aj(a,"can not read a block mapping entry; a multiline key may not be an implicit key")}}if((a.line===f||a.lineIndent>b)&&(r&&(g=a.line,h=a.lineStart,i=a.position),au(a,b,4,!0,e)&&(r?p=a.result:q=a.result),r||(ao(a,m,n,o,p,q,g,h,i),o=p=q=null),aq(a,!0,-1),j=a.input.charCodeAt(a.position)),(a.line===f||a.lineIndent>b)&&0!==j)aj(a,"bad indentation of a mapping entry");else if(a.lineIndent<b)break}return r&&ao(a,m,n,o,p,null,g,h,i),s&&(a.tag=k,a.anchor=l,a.kind="mapping",a.result=m),s}(a,o,n))||function(a,b){var c,d,e,f,g,h,i,j,k,l,m,n=!0,o=a.tag,p=a.anchor,q=Object.create(null),r=a.input.charCodeAt(a.position);if(91===r)g=93,j=!1,f=[];else{if(123!==r)return!1;g=125,j=!0,f={}}for(null!==a.anchor&&(a.anchorMap[a.anchor]=f),r=a.input.charCodeAt(++a.position);0!==r;){if(aq(a,!0,b),(r=a.input.charCodeAt(a.position))===g)return a.position++,a.tag=o,a.anchor=p,a.kind=j?"mapping":"sequence",a.result=f,!0;n?44===r&&aj(a,"expected the node content, but found ','"):aj(a,"missed comma between flow collection entries"),l=k=m=null,h=i=!1,63===r&&aa(a.input.charCodeAt(a.position+1))&&(h=i=!0,a.position++,aq(a,!0,b)),c=a.line,d=a.lineStart,e=a.position,au(a,b,1,!1,!0),l=a.tag,k=a.result,aq(a,!0,b),r=a.input.charCodeAt(a.position),(i||a.line===c)&&58===r&&(h=!0,r=a.input.charCodeAt(++a.position),aq(a,!0,b),au(a,b,1,!1,!0),m=a.result),j?ao(a,f,q,l,k,m,c,d,e):h?f.push(ao(a,null,q,l,k,m,c,d,e)):f.push(k),aq(a,!0,b),44===(r=a.input.charCodeAt(a.position))?(n=!0,r=a.input.charCodeAt(++a.position)):n=!1}aj(a,"unexpected end of the stream within a flow collection")}(a,n)?r=!0:(g&&function(a,b){var c,d,e,f,g=1,h=!1,i=!1,j=b,k=0,m=!1,n=a.input.charCodeAt(a.position);if(124===n)e=!1;else{if(62!==n)return!1;e=!0}for(a.kind="scalar",a.result="";0!==n;)if(43===(n=a.input.charCodeAt(++a.position))||45===n)1===g?g=43===n?3:2:aj(a,"repeat of a chomping mode identifier");else if((f=48<=(c=n)&&c<=57?c-48:-1)>=0)0===f?aj(a,"bad explicit indentation width of a block scalar; it cannot be less than one"):i?aj(a,"repeat of an indentation width identifier"):(j=b+f-1,i=!0);else break;if(_(n)){do n=a.input.charCodeAt(++a.position);while(_(n));if(35===n)do n=a.input.charCodeAt(++a.position);while(!$(n)&&0!==n)}for(;0!==n;){for(ap(a),a.lineIndent=0,n=a.input.charCodeAt(a.position);(!i||a.lineIndent<j)&&32===n;)a.lineIndent++,n=a.input.charCodeAt(++a.position);if(!i&&a.lineIndent>j&&(j=a.lineIndent),$(n)){k++;continue}if(a.lineIndent<j){3===g?a.result+=l(`
|
|
11
|
+
`,h?1+k:k):1===g&&h&&(a.result+=`
|
|
12
|
+
`);break}for(e?_(n)?(m=!0,a.result+=l(`
|
|
13
|
+
`,h?1+k:k)):m?(m=!1,a.result+=l(`
|
|
14
|
+
`,k+1)):0===k?h&&(a.result+=" "):a.result+=l(`
|
|
15
|
+
`,k):a.result+=l(`
|
|
16
|
+
`,h?1+k:k),h=!0,i=!0,k=0,d=a.position;!$(n)&&0!==n;)n=a.input.charCodeAt(++a.position);am(a,d,a.position,!1)}return!0}(a,n)||function(a,b){var c,d,e=a.input.charCodeAt(a.position);if(39!==e)return!1;for(a.kind="scalar",a.result="",a.position++,c=d=a.position;0!==(e=a.input.charCodeAt(a.position));)if(39===e)if(am(a,c,a.position,!0),39!==(e=a.input.charCodeAt(++a.position)))return!0;else c=a.position,a.position++,d=a.position;else $(e)?(am(a,c,d,!0),as(a,aq(a,!1,b)),c=d=a.position):a.position===a.lineStart&&ar(a)?aj(a,"unexpected end of the document within a single quoted scalar"):(a.position++,d=a.position);aj(a,"unexpected end of the stream within a single quoted scalar")}(a,n)||function(a,b){var c,d,e,f,g,h,i,j=a.input.charCodeAt(a.position);if(34!==j)return!1;for(a.kind="scalar",a.result="",a.position++,e=f=a.position;0!==(j=a.input.charCodeAt(a.position));)if(34===j)return am(a,e,a.position,!0),a.position++,!0;else if(92===j){if(am(a,e,a.position,!0),$(j=a.input.charCodeAt(++a.position)))aq(a,!1,b);else if(j<256&&ae[j])a.result+=af[j],a.position++;else if((i=120===(c=j)?2:117===c?4:8*(85===c))>0){for(g=i,h=0;g>0;g--)(i=function(a){var b;return 48<=a&&a<=57?a-48:97<=(b=32|a)&&b<=102?b-97+10:-1}(j=a.input.charCodeAt(++a.position)))>=0?h=(h<<4)+i:aj(a,"expected hexadecimal character");a.result+=(d=h)<=65535?String.fromCharCode(d):String.fromCharCode((d-65536>>10)+55296,(d-65536&1023)+56320),a.position++}else aj(a,"unknown escape sequence");e=f=a.position}else $(j)?(am(a,e,f,!0),as(a,aq(a,!1,b)),e=f=a.position):a.position===a.lineStart&&ar(a)?aj(a,"unexpected end of the document within a double quoted scalar"):(a.position++,f=a.position);aj(a,"unexpected end of the stream within a double quoted scalar")}(a,n)?r=!0:!function(a){var b,c,d=a.input.charCodeAt(a.position);if(42!==d)return!1;for(d=a.input.charCodeAt(++a.position),b=a.position;0!==d&&!aa(d)&&!ab(d);)d=a.input.charCodeAt(++a.position);return a.position===b&&aj(a,"name of an alias node must contain at least one character"),c=a.input.slice(b,a.position),T.call(a.anchorMap,c)||aj(a,'unidentified alias "'+c+'"'),a.result=a.anchorMap[c],aq(a,!0,-1),!0}(a)?function(a,b,c){var d,e,f,g,h,i,j,k=a.kind,l=a.result,m=a.input.charCodeAt(a.position);if(aa(m)||ab(m)||35===m||38===m||42===m||33===m||124===m||62===m||39===m||34===m||37===m||64===m||96===m||(63===m||45===m)&&(aa(d=a.input.charCodeAt(a.position+1))||c&&ab(d)))return!1;for(a.kind="scalar",a.result="",e=f=a.position,g=!1;0!==m;){if(58===m){if(aa(d=a.input.charCodeAt(a.position+1))||c&&ab(d))break}else if(35===m){if(aa(a.input.charCodeAt(a.position-1)))break}else if(a.position===a.lineStart&&ar(a)||c&&ab(m))break;else if($(m))if(h=a.line,i=a.lineStart,j=a.lineIndent,aq(a,!1,-1),a.lineIndent>=b){g=!0,m=a.input.charCodeAt(a.position);continue}else{a.position=f,a.line=h,a.lineStart=i,a.lineIndent=j;break}g&&=(am(a,e,f,!1),as(a,a.line-h),e=f=a.position,!1),_(m)||(f=a.position+1),m=a.input.charCodeAt(++a.position)}return am(a,e,f,!1),!!a.result||(a.kind=k,a.result=l,!1)}(a,n,1===c)&&(r=!0,null===a.tag&&(a.tag="?")):(r=!0,(null!==a.tag||null!==a.anchor)&&aj(a,"alias node should not have any properties")),null!==a.anchor&&(a.anchorMap[a.anchor]=a.result)):0===p&&(r=h&&at(a,o))),null===a.tag)null!==a.anchor&&(a.anchorMap[a.anchor]=a.result);else if("?"===a.tag){for(null!==a.result&&"scalar"!==a.kind&&aj(a,'unacceptable node kind for !<?> tag; it should be "scalar", not "'+a.kind+'"'),i=0,j=a.implicitTypes.length;i<j;i+=1)if((m=a.implicitTypes[i]).resolve(a.result)){a.result=m.construct(a.result),a.tag=m.tag,null!==a.anchor&&(a.anchorMap[a.anchor]=a.result);break}}else if("!"!==a.tag){if(T.call(a.typeMap[a.kind||"fallback"],a.tag))m=a.typeMap[a.kind||"fallback"][a.tag];else for(m=null,k=a.typeMap.multi[a.kind||"fallback"],i=0,j=k.length;i<j;i+=1)if(a.tag.slice(0,k[i].tag.length)===k[i].tag){m=k[i];break}m||aj(a,"unknown tag !<"+a.tag+">"),null!==a.result&&m.kind!==a.kind&&aj(a,"unacceptable node kind for !<"+a.tag+'> tag; it should be "'+m.kind+'", not "'+a.kind+'"'),m.resolve(a.result,a.tag)?(a.result=m.construct(a.result,a.tag),null!==a.anchor&&(a.anchorMap[a.anchor]=a.result)):aj(a,"cannot resolve a node with !<"+a.tag+"> explicit tag")}return null!==a.listener&&a.listener("close",a),null!==a.tag||null!==a.anchor||r}function av(a,b){a=String(a),b||={},0!==a.length&&(10!==a.charCodeAt(a.length-1)&&13!==a.charCodeAt(a.length-1)&&(a+=`
|
|
17
|
+
`),65279===a.charCodeAt(0)&&(a=a.slice(1)));var c=new ah(a,b),d=a.indexOf("\0");for(-1!==d&&(c.position=d,aj(c,"null byte is not allowed in input")),c.input+="\0";32===c.input.charCodeAt(c.position);)c.lineIndent+=1,c.position+=1;for(;c.position<c.length-1;)!function(a){var b,c,d,e,f=a.position,g=!1;for(a.version=null,a.checkLineBreaks=a.legacy,a.tagMap=Object.create(null),a.anchorMap=Object.create(null);0!==(e=a.input.charCodeAt(a.position))&&(aq(a,!0,-1),e=a.input.charCodeAt(a.position),!(a.lineIndent>0||37!==e));){for(g=!0,e=a.input.charCodeAt(++a.position),b=a.position;0!==e&&!aa(e);)e=a.input.charCodeAt(++a.position);for(c=a.input.slice(b,a.position),d=[],c.length<1&&aj(a,"directive name must not be less than one character in length");0!==e;){for(;_(e);)e=a.input.charCodeAt(++a.position);if(35===e){do e=a.input.charCodeAt(++a.position);while(0!==e&&!$(e));break}if($(e))break;for(b=a.position;0!==e&&!aa(e);)e=a.input.charCodeAt(++a.position);d.push(a.input.slice(b,a.position))}0!==e&&ap(a),T.call(al,c)?al[c](a,c,d):ak(a,'unknown document directive "'+c+'"')}if(aq(a,!0,-1),0===a.lineIndent&&45===a.input.charCodeAt(a.position)&&45===a.input.charCodeAt(a.position+1)&&45===a.input.charCodeAt(a.position+2)?(a.position+=3,aq(a,!0,-1)):g&&aj(a,"directives end mark is expected"),au(a,a.lineIndent-1,4,!1,!0),aq(a,!0,-1),a.checkLineBreaks&&V.test(a.input.slice(f,a.position))&&ak(a,"non-ASCII line breaks are interpreted as content"),a.documents.push(a.result),a.position===a.lineStart&&ar(a)){46===a.input.charCodeAt(a.position)&&(a.position+=3,aq(a,!0,-1));return}a.position<a.length-1&&aj(a,"end of the stream or a document separator is expected")}(c);return c.documents}var aw=function(a,b){var c=av(a,b);if(0!==c.length){if(1===c.length)return c[0];throw new o("expected a single document in the stream, but found more")}},ax=Object.prototype.toString,ay=Object.prototype.hasOwnProperty,az={};az[0]="\\0",az[7]="\\a",az[8]="\\b",az[9]="\\t",az[10]="\\n",az[11]="\\v",az[12]="\\f",az[13]="\\r",az[27]="\\e",az[34]='\\"',az[92]="\\\\",az[133]="\\N",az[160]="\\_",az[8232]="\\L",az[8233]="\\P";function aA(a,b){let c=aw(a,b);return k(a,c,b),c}var aB=c(77326),aC=c(20437),aD=c(96930),aE=c(77598),aF=c.n(aE),aG=c(53859);let aH=g().join(aG.nJ,"machine-id"),aI=g().join(aG.nJ,"auth"),aJ=g().join(aI,"cli-secret"),aK=null,aL=null;async function aM(a=null){let b=a||function(){if(process.env.MACHINE_ID_SALT)return process.env.MACHINE_ID_SALT;let a=g().join(aI,"machine-id-salt");try{let b=e().readFileSync(a,"utf8").trim();if(b)return b}catch{}let b=aF().randomBytes(32).toString("hex");try{e().mkdirSync(aI,{recursive:!0,mode:448}),e().writeFileSync(a,b,{mode:384})}catch{}return b}(),c=function(){if(aK)return aK;try{if(aK=e().readFileSync(aH,"utf8").trim())return aK}catch{}try{aK=(0,aD.machineIdSync)()}catch{aK=aF().randomUUID()}try{e().mkdirSync(aG.nJ,{recursive:!0}),e().writeFileSync(aH,aK,{mode:384})}catch{}return aK}(),d="switchboard-cli-auth"===b?function(){if(aL)return aL;try{if(aL=e().readFileSync(aJ,"utf8").trim())return aL}catch{}aL=aF().randomBytes(32).toString("hex");try{e().mkdirSync(aI,{recursive:!0}),e().writeFileSync(aJ,aL,{mode:384})}catch{}return aL}():"";return aF().createHash("sha256").update(c+b+d).digest("hex").substring(0,16)}var aN=c(87886);function aO(a){if(!a||"string"!=typeof a)return{};let b=a.trim();if(!b)return{};try{if(b.startsWith("{")||b.startsWith("[")){let a;return a=JSON.parse(b,void 0),k(b,a,void 0),a||{}}return aA(b)||{}}catch{try{return aA(b)||{}}catch(a){return aN.warn("CONFIG_IMPORT","Failed to parse config content",{error:a?.message}),{}}}}async function aP(a){let b="string"==typeof a?aO(a):a||{},c={connections:0,aliases:0,combos:0,keys:0,settings:!1},d=b.connections||b.providers||[];if(Array.isArray(d)){let a=await (0,aB.getProviderConnections)();for(let b of d){if(!b||"object"!=typeof b||!b.provider)continue;let d=String(b.provider).toLowerCase(),e=a.find(a=>a.provider===d&&(a.name===b.name||b.apiKey&&a.apiKey===b.apiKey));e?await (0,aB.updateProviderConnection)(e.id,{apiKey:b.apiKey||b.key||e.apiKey,accessToken:b.accessToken||e.accessToken,refreshToken:b.refreshToken||e.refreshToken,isActive:void 0!==b.isActive?b.isActive:e.isActive,priority:void 0!==b.priority?b.priority:e.priority,providerSpecificData:{...e.providerSpecificData||{},...b.providerSpecificData||{}}}):await (0,aB.iE)({provider:d,name:b.name||`${d}-config`,authType:b.authType||(b.refreshToken?"oauth":"apikey"),apiKey:b.apiKey||b.key||"",accessToken:b.accessToken||"",refreshToken:b.refreshToken||"",isActive:void 0===b.isActive||!!b.isActive,priority:"number"==typeof b.priority?b.priority:0,providerSpecificData:b.providerSpecificData||{}}),c.connections++}}let e=b.model_aliases||b.aliases||b.modelAliases||{};if(e&&"object"==typeof e&&!Array.isArray(e))for(let[a,b]of Object.entries(e))"string"==typeof a&&"string"==typeof b&&(await (0,aB.o5)(a.trim(),b.trim()),c.aliases++);let f=b.combos||[];if(Array.isArray(f))for(let a of f){if(!a||!a.name||!Array.isArray(a.models))continue;let b=String(a.name).trim(),d=await (0,aB.Dj)(b);d?await (0,aB.oG)(d.id,{models:a.models,description:a.description||d.description}):await (0,aB.jd)({name:b,models:a.models,description:a.description||""}),c.combos++}let g=b.api_keys||b.client_keys||b.apiKeys||[];if(Array.isArray(g)&&g.length>0){let a=await (0,aB.PX)(),b=await aM();for(let d of g){if(!d||!d.name)continue;let e=String(d.name).trim();!a.find(a=>a.name===e)&&(await (0,aB.Iq)(e,b),c.keys++)}}let h=b.settings||{};if(h&&"object"==typeof h&&Object.keys(h).length>0){let a=await (0,aB.mt)();await (0,aB.Xx)({...a,...h}),c.settings=!0}return c}async function aQ(){let a=process.env.IMPORT_CONFIG_FILE||process.env.CONFIG_FILE||process.env.SWITCHBOARD_CONFIG_FILE;for(let b of a?[a]:[g().join((0,aC.getDataDir)(),"config.yaml"),g().join((0,aC.getDataDir)(),"config.yml"),g().join((0,aC.getDataDir)(),"config.json")])try{if(e().existsSync(b)){aN.info("CONFIG_IMPORT",`Auto-importing configuration from ${b}`);let a=e().readFileSync(b,"utf-8"),c=await aP(a);return aN.info("CONFIG_IMPORT","Configuration imported successfully",c),c}}catch(a){aN.warn("CONFIG_IMPORT",`Failed to auto-import config from ${b}`,{error:a?.message})}return null}},87886:(a,b,c)=>{c.r(b),c.d(b,{debug:()=>h,error:()=>k,info:()=>i,maskKey:()=>o,request:()=>l,response:()=>m,stream:()=>n,warn:()=>j});let d={DEBUG:0,INFO:1,WARN:2,ERROR:3},e=d[process.env.LOG_LEVEL?.toUpperCase?.()]??d.INFO;function f(){return new Date().toLocaleTimeString("en-US",{hour12:!1})}function g(a){if(!a)return"";if("string"==typeof a)return a;try{return JSON.stringify(a)}catch{return String(a)}}function h(a,b,c){if(e<=d.DEBUG){let d=c?` ${g(c)}`:"";console.log(`[${f()}] 🔍 [${a}] ${b}${d}`)}}function i(a,b,c){if(e<=d.INFO){let d=c?` ${g(c)}`:"";console.log(`[${f()}] ℹ️ [${a}] ${b}${d}`)}}function j(a,b,c){e<=d.WARN&&c&&g(c)}function k(a,b,c){if(e<=d.ERROR){let d=c?` ${g(c)}`:"";console.log(`[${f()}] ❌ [${a}] ${b}${d}`)}}function l(a,b,c){let d=c?` ${g(c)}`:"";console.log(`\x1b[36m[${f()}] 📥 ${a} ${b}${d}\x1b[0m`)}function m(a,b,c){let d=c?` ${g(c)}`:"";console.log(`[${f()}] ${a<400?"\uD83D\uDCE4":"\uD83D\uDCA5"} ${a} (${b}ms)${d}`)}function n(a,b){let c=b?` ${g(b)}`:"";console.log(`[${f()}] 🌊 [STREAM] ${a}${c}`)}function o(a){return!a||a.length<8?"***":`${a.slice(0,4)}...${a.slice(-4)}`}}};
|