switchboard-router 0.9.40 → 0.9.43
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/app/{.next-cli-build/static/chunks/1321-65fa769b26801132.js → .next/static/chunks/1321-0cdf730f80e742f7.js} +1 -1
- package/app/.next-cli-build/BUILD_ID +1 -1
- package/app/.next-cli-build/app-path-routes-manifest.json +9 -9
- 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.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 +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/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 +3 -3
- package/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/_not-found.segments/_tree.segment.rsc +1 -1
- 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/login/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/logout/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/status/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/aider-settings/route.js +1 -1
- 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 +5 -5
- package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/claude-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.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js +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 +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/gemini-cli-settings/route.js +3 -3
- 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 +2 -2
- 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 +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/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.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/locale/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js.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.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/availability/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/custom/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/disabled/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/routable/route.js +1 -1
- package/app/.next-cli-build/server/app/api/models/routable/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.nft.json +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.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/api-key/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/import-cli-proxy/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pricing/defaults/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pricing/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/provider-nodes/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/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.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.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.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.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 +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.nft.json +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 +1 -1
- package/app/.next-cli-build/server/app/api/usage/[connectionId]/codex-reset-credits/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/chart/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/history/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/logs/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/providers/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/request-details/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/request-details/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/request-logs/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/stats/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/stream/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/api/chat/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/api/chat/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/audio/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/embeddings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/embeddings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/images/generations/route.js +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 +1 -1
- package/app/.next-cli-build/server/app/api/v1/messages/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/models/[kind]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/models/[kind]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/models/info/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/models/info/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/models/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/responses/compact/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/responses/compact/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/responses/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/responses/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/search/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/search/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/videos/[id]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/videos/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/videos/edits/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/videos/edits/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/videos/extensions/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/videos/extensions/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/videos/generations/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/videos/generations/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/web/fetch/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/web/fetch/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1beta/models/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1beta/models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/version/route.js +1 -1
- package/app/.next-cli-build/server/app/api/version/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/version/shutdown/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/version/update/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/callback/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/callback/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/callback.html +1 -1
- package/app/.next-cli-build/server/app/callback.rsc +3 -3
- package/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/callback.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/callback.segments/callback/__PAGE__.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/settings/pricing/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +3 -3
- 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 +3 -3
- package/app/.next-cli-build/server/app/index.segments/__PAGE__.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/index.segments/_full.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/index.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/landing/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/landing/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/landing.html +1 -1
- package/app/.next-cli-build/server/app/landing.rsc +3 -3
- package/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/landing.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/landing.segments/landing/__PAGE__.segment.rsc +3 -3
- 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 +1 -1
- 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 +9 -9
- package/app/.next-cli-build/server/chunks/1274.js +1 -1
- package/app/.next-cli-build/server/chunks/1350.js +1 -1
- package/app/.next-cli-build/server/chunks/1792.js +1 -1
- package/app/.next-cli-build/server/chunks/2619.js +1 -0
- package/app/.next-cli-build/server/chunks/2847.js +1 -1
- package/app/.next-cli-build/server/chunks/369.js +3 -3
- package/app/.next-cli-build/server/chunks/6533.js +1 -0
- package/app/.next-cli-build/server/chunks/7201.js +1 -1
- package/app/.next-cli-build/server/chunks/7828.js +4 -0
- package/app/.next-cli-build/server/chunks/8400.js +7 -4
- package/app/.next-cli-build/server/chunks/869.js +1 -1
- package/app/.next-cli-build/server/chunks/8789.js +1 -1
- package/app/.next-cli-build/server/chunks/8998.js +20 -20
- package/app/.next-cli-build/server/chunks/9261.js +9 -9
- package/app/.next-cli-build/server/chunks/9264.js +1 -1
- package/app/.next-cli-build/server/middleware-build-manifest.js +1 -1
- package/app/.next-cli-build/server/middleware.js +1 -1
- package/app/.next-cli-build/server/pages/404.html +1 -1
- package/app/.next-cli-build/server/pages/500.html +1 -1
- package/app/.next-cli-build/server/server-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/server-reference-manifest.json +1 -1
- package/app/{.next/static/chunks/1321-65fa769b26801132.js → .next-cli-build/static/chunks/1321-0cdf730f80e742f7.js} +1 -1
- 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 +1 -1
- package/package.json +1 -1
- package/app/.next-cli-build/server/chunks/1351.js +0 -1
- package/app/.next-cli-build/server/chunks/3735.js +0 -4
- package/app/.next-cli-build/server/chunks/403.js +0 -1
- /package/app/.next/static/{hrOBBbHpcMKJGPTNbGPQ- → nKryFuv_JzPl-D-UHl2FE}/_buildManifest.js +0 -0
- /package/app/.next/static/{hrOBBbHpcMKJGPTNbGPQ- → nKryFuv_JzPl-D-UHl2FE}/_ssgManifest.js +0 -0
- /package/app/.next-cli-build/static/{hrOBBbHpcMKJGPTNbGPQ- → nKryFuv_JzPl-D-UHl2FE}/_buildManifest.js +0 -0
- /package/app/.next-cli-build/static/{hrOBBbHpcMKJGPTNbGPQ- → nKryFuv_JzPl-D-UHl2FE}/_ssgManifest.js +0 -0
|
@@ -61,10 +61,10 @@ ${b}`;return}if(Array.isArray(a.system)){if(e(a.system.map(a=>a?.text||"").join(
|
|
|
61
61
|
|
|
62
62
|
${b}`:b;return}let c=Array.isArray(a.messages)?a.messages:null;if(!c)return;let d=c.findIndex(a=>a&&("system"===a.role||"developer"===a.role));if(d>=0){var f,g,h;if(e("string"==typeof(f=c[d]).content?f.content:Array.isArray(f.content)?f.content.map(a=>a.text||"").join(" "):"",b))return;g=c[d],h=b,"string"==typeof g.content?g.content=`${g.content}
|
|
63
63
|
|
|
64
|
-
${h}`:Array.isArray(g.content)?g.content.push({type:"input_text",text:h}):g.content=h}else c.unshift({role:"system",content:b})}(a,c)}}},18367:(a,b,c)=>{c.d(b,{Z:()=>e});var d=c(60290);function e({body:a,reexecute:b,signal:c,firstChunkTimeoutMs:f=d.Z1,log:g}){let h=a.getReader(),i=!1,j=!1,k=!1,l=null,m=null,n=()=>{l&&(clearTimeout(l),l=null)},o=a=>{try{a.error(Error("stream first-chunk timeout"))}catch{}},p=()=>m?.();c?.addEventListener?.("abort",p);let q=()=>{n(),c?.removeEventListener?.("abort",p)};return new ReadableStream({async pull(a){if(k){q(),a.close();return}if(c?.aborted)return(q(),i)?o(a):void a.close();try{for(;;){let b=!i&&f>0?new Promise(a=>{l=setTimeout(()=>a({timeout:!0}),f)}):null,d=c?new Promise(a=>{m=()=>a({aborted:!0}),c.aborted&&m()}):null,e=h.read().catch(a=>({error:a})),g=await Promise.race([e,b,d].filter(Boolean));if(m=null,n(),g.aborted||k){if(q(),await h.cancel().catch(()=>{}),i&&!k)return o(a);a.close();return}if(g.error)throw g.error;if(g.timeout){if(await h.cancel().catch(()=>{}),await r(a,"first-chunk timeout"))continue;return q(),o(a)}if(g.done){if(!i&&await r(a,"empty EOF"))continue;if(q(),!i)return o(a);a.close();return}i=!0,a.enqueue(g.value);return}}catch(b){q();try{a.error(b)}catch{}}},cancel(){k=!0,q(),h?.cancel().catch(()=>{})}});async function r(a,d){if(j||k||c?.aborted)return!1;j=!0,g?.warn?.("STREAM",`zero-byte ${d} | retrying once`);let e=await b();return k||c?.aborted?(await e?.cancel?.().catch(()=>{}),q(),a.close(),!1):!!e&&(h=e.getReader(),i=!1,!0)}}},27226:(a,b,c)=>{c.d(b,{Jz:()=>f,Qf:()=>l,lP:()=>k});var d=c(35570);let e={claude:["claude","anthropic"],"gemini-cli":["gemini-cli"],antigravity:["antigravity"],codex:["codex"]};function f(a={},b={}){let c=a["user-agent"]||"";return"antigravity"===b.userAgent?"antigravity":/^GitHubCopilotChat\/\d+\.\d+\.\d+/i.test(c)&&a["editor-version"]&&a["editor-plugin-version"]?"github-copilot":/claude-(?:cli|code)\/\d+\.\d+\.\d+/i.test(c)?"claude":/^GeminiCLI\/\d+\.\d+\.\d+/i.test(c)?"gemini-cli":/^(?:codex_cli_rs|codex-cli)\/\d+\.\d+\.\d+/i.test(c)?"codex":/^Cline\/\d+\.\d+\.\d+/i.test(c)&&"extension"===a["x-client-type"]?"cline":/^QwenCode\/\d+\.\d+\.\d+/i.test(c)?"qwen":c.includes("deepseek-tui")?"deepseek-tui":null}let g={claude:"claude-cli",codex:"codex-cli","gemini-cli":"gemini-cli",antigravity:"antigravity",cline:"cline",qwen:"qwen","github-copilot":"copilot"},h=/^claude-(?:cli|code)\/(\d+\.\d+\.\d+)(?:\s|\(|$)/i,i=/_session_([a-f0-9-]+)$/;function j(a,b){let c=a?.[b]??a?.[b.toLowerCase()];return"string"==typeof c&&c.trim()?c:null}function k(a,b={},c={}){let e=g[a];if(!e||f(b,c)!==a)return!1;if("claude"!==a)return(0,d.I2)(e,b);if(!function(a={},b={}){if(!a||"object"!=typeof a)return!1;let c=j(a,"user-agent"),e=c?.match(h)?.[1],f=(0,d.zi)("claude-cli")?.version;return!!(e&&e===f&&j(a,"x-app")?.toLowerCase()==="cli"&&j(a,"anthropic-beta")&&j(a,"x-stainless-package-version")&&j(a,"x-stainless-runtime-version")&&j(a,"x-stainless-os")&&j(a,"x-stainless-arch")&&function(a){let b=a?.metadata?.user_id;if("string"!=typeof b||!b)return null;let c=b.match(i)?.[1];if(c)return c;if("{"!==b[0])return null;try{let a=JSON.parse(b)?.session_id;if("string"!=typeof a)return null;let c=a.trim();return c&&c.length<=256?c:null}catch{return null}}(b))}(b,c))return!1;let l=b["user-agent"]||b["User-Agent"];return(0,d.I2)(e,{...b,"user-agent":l.replace(/^claude-code\//i,"claude-cli/")})}function l(a,b){if(!a)return!1;let c=e[a];if(!c)return!1;let d=b.startsWith("anthropic-compatible")?"anthropic":b;return c.includes(d)}},28190:(a,b,c)=>{c.d(b,{F:()=>g});let d=[{triggers:["mcp__exa__web_search_exa","mcp__exa__web_fetch_exa"],strip:["WebSearch","WebFetch","mcp__workspace__web_fetch"]},{triggers:["mcp__tavily__tavily_search","mcp__tavily__tavily_extract"],strip:["WebSearch","WebFetch","mcp__workspace__web_fetch"]},{triggers:[/^mcp__browsermcp__/],strip:[/^mcp__Claude_in_Chrome__/]}];function e(a){return a?.name||a?.function?.name||""}function f(a,b){return"string"==typeof b?a===b:b instanceof RegExp&&b.test(a)}function g(a){if(!Array.isArray(a)||0===a.length)return{tools:a,stripped:[]};let b=a.map(e),c=new Set;for(let a of d)if(b.some(b=>a.triggers.some(a=>f(b,a))))for(let d of b)a.strip.some(a=>f(d,a))&&c.add(d);return 0===c.size?{tools:a,stripped:[]}:{tools:a.filter(a=>!c.has(e(a))),stripped:Array.from(c)}}},29461:(a,b,c)=>{c.d(b,{$R:()=>j,Fo:()=>h,MK:()=>i,YZ:()=>k});var d=c(12407),e=c(6755),f=c(67677);let g=["temperature","top_p","top_k","max_tokens","max_completion_tokens","thinking","reasoning","enable_thinking","presence_penalty","frequency_penalty","seed","stop","tools","tool_choice","response_format","prediction","store","metadata","n","logprobs","top_logprobs","logit_bias","user","parallel_tool_calls"];function h(a,b){let c={messages:a.messages||[],model:a.model,stream:b};for(let b of g)void 0!==a[b]&&(c[b]=a[b]);return c}function i(a){return a&&"object"==typeof a?a.usage?.input_tokens!==void 0?{prompt_tokens:a.usage.input_tokens||0,completion_tokens:a.usage.output_tokens||0,cache_read_input_tokens:a.usage.cache_read_input_tokens,cache_creation_input_tokens:a.usage.cache_creation_input_tokens}:a.usage?.prompt_tokens!==void 0?{prompt_tokens:a.usage.prompt_tokens||0,completion_tokens:a.usage.completion_tokens||0,cached_tokens:a.usage.prompt_tokens_details?.cached_tokens,reasoning_tokens:a.usage.completion_tokens_details?.reasoning_tokens}:a.usageMetadata?{prompt_tokens:a.usageMetadata.promptTokenCount||0,completion_tokens:a.usageMetadata.candidatesTokenCount||0,cached_tokens:a.usageMetadata.cachedContentTokenCount||0,reasoning_tokens:a.usageMetadata.thoughtsTokenCount||0}:null:null}function j(a,b={}){return{provider:a.provider||"unknown",model:a.model||"unknown",connectionId:a.connectionId||void 0,timestamp:new Date().toISOString(),latency:a.latency||{ttft:0,total:0},tokens:a.tokens||{prompt_tokens:0,completion_tokens:0},request:a.request,providerRequest:a.providerRequest||null,providerResponse:a.providerResponse||null,response:a.response||{},pxpipe:a.pxpipe||void 0,rtk:a.rtk||void 0,status:a.status||"success",...b}}function k(a){let b=function({provider:a,model:b,tokens:c,connectionId:g,clientKeyId:h,endpoint:i,requestId:j=null,label:k="USAGE"}){if(!c||"object"!=typeof c)return;let l=c.input_tokens??c.prompt_tokens??0,m=c.output_tokens??c.completion_tokens??0;if(0===l&&0===m)return;let n=new Date().toLocaleTimeString("en-US",{hour12:!1,hour:"2-digit",minute:"2-digit",second:"2-digit"}),o=g?` | account=${g.slice(0,8)}...`:"";console.log(`${e.lm.green}[${n}] 📊 [${k}] ${a.toUpperCase()} | in=${l} | out=${m}${o}${e.lm.reset}`);let p=(0,f._6)(c)||{prompt_tokens:c.prompt_tokens??c.input_tokens??0,completion_tokens:c.completion_tokens??c.output_tokens??0};return(0,d.sZ)({provider:a||"unknown",model:b||"unknown",tokens:p,timestamp:new Date().toISOString(),connectionId:g||void 0,clientKeyId:h||void 0,endpoint:i||null,requestId:j||null})}(a);if(a.clientKeyId)return b;b?.catch?.(a=>console.error("[USAGE] save failed:",a?.message||a))}},30369:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{SB:()=>f.getExecutor}),c(46052),c(4630),c(28730),c(60290),c(27335),c(19956),c(48664),c(17717),c(66451),c(49263),c(41029),c(18129);var e=c(36362);c(15575);var f=c(48400);c(89865),c(6755);var g=a([e,f]);[e,f]=g.then?(await g)():g,d()}catch(a){d(a)}})},34267:(a,b,c)=>{c.d(b,{gH:()=>f});var d=c(57642),e=c(60290);function f({body:a,reexecute:b,signal:c,log:g,stallTimeoutMs:h=e.xM,baseDelayMs:i=500,onExhausted:j}){let k=new TextEncoder,l=null,m=!1,n=null,o=null,p=()=>{let a=n;n=null,o&&(c?.removeEventListener?.("abort",o),o=null),a?.()};return new ReadableStream({async start(e){l=a.getReader();let f=!1,q=null,r=async a=>{let b;if(!m&&(await (b=e.desiredSize,m||c?.aborted||null==b||b>0?Promise.resolve():new Promise(a=>{n=a,c?.addEventListener&&(o=p,c.addEventListener("abort",o,{once:!0}))})),!(m||c?.aborted)))try{e.enqueue(k.encode(a))}catch{m=!0}},s=()=>{if(!m)try{e.close()}catch{}},t=()=>{p();try{l.cancel().catch(()=>{})}catch{}if(m)return;let a=Error("Request aborted");a.name="AbortError";try{e.error(a)}catch{}},u=async a=>{try{await Promise.resolve(j?.(a,{upstreamError:q?.error||null}))}catch{}let b=q?.kind==="error_object"?q.line:`data: ${JSON.stringify({error:{code:502,status:"EMPTY_RESPONSE",message:a}})}`;await r(`${b}
|
|
64
|
+
${h}`:Array.isArray(g.content)?g.content.push({type:"input_text",text:h}):g.content=h}else c.unshift({role:"system",content:b})}(a,c)}}},18367:(a,b,c)=>{c.d(b,{Z:()=>e});var d=c(60290);function e({body:a,reexecute:b,signal:c,firstChunkTimeoutMs:f=d.Z1,log:g}){let h=a.getReader(),i=!1,j=!1,k=!1,l=null,m=null,n=()=>{l&&(clearTimeout(l),l=null)},o=a=>{try{a.error(Error("stream first-chunk timeout"))}catch{}},p=()=>m?.();c?.addEventListener?.("abort",p);let q=()=>{n(),c?.removeEventListener?.("abort",p)};return new ReadableStream({async pull(a){if(k){q(),a.close();return}if(c?.aborted)return(q(),i)?o(a):void a.close();try{for(;;){let b=!i&&f>0?new Promise(a=>{l=setTimeout(()=>a({timeout:!0}),f)}):null,d=c?new Promise(a=>{m=()=>a({aborted:!0}),c.aborted&&m()}):null,e=h.read().catch(a=>({error:a})),g=await Promise.race([e,b,d].filter(Boolean));if(m=null,n(),g.aborted||k){if(q(),await h.cancel().catch(()=>{}),i&&!k)return o(a);a.close();return}if(g.error)throw g.error;if(g.timeout){if(await h.cancel().catch(()=>{}),await r(a,"first-chunk timeout"))continue;return q(),o(a)}if(g.done){if(!i&&await r(a,"empty EOF"))continue;if(q(),!i)return o(a);a.close();return}i=!0,a.enqueue(g.value);return}}catch(b){q();try{a.error(b)}catch{}}},cancel(){k=!0,q(),h?.cancel().catch(()=>{})}});async function r(a,d){if(j||k||c?.aborted)return!1;j=!0,g?.warn?.("STREAM",`zero-byte ${d} | retrying once`);let e=await b();return k||c?.aborted?(await e?.cancel?.().catch(()=>{}),q(),a.close(),!1):!!e&&(h=e.getReader(),i=!1,!0)}}},27226:(a,b,c)=>{c.d(b,{Jz:()=>f,Qf:()=>l,lP:()=>k});var d=c(35570);let e={claude:["claude","anthropic"],"gemini-cli":["gemini-cli"],antigravity:["antigravity"],codex:["codex"]};function f(a={},b={}){let c=a["user-agent"]||"";return"antigravity"===b.userAgent?"antigravity":/^GitHubCopilotChat\/\d+\.\d+\.\d+/i.test(c)&&a["editor-version"]&&a["editor-plugin-version"]?"github-copilot":/claude-(?:cli|code)\/\d+\.\d+\.\d+/i.test(c)?"claude":/^GeminiCLI\/\d+\.\d+\.\d+/i.test(c)?"gemini-cli":/^(?:codex_cli_rs|codex-cli)\/\d+\.\d+\.\d+/i.test(c)?"codex":/^Cline\/\d+\.\d+\.\d+/i.test(c)&&"extension"===a["x-client-type"]?"cline":/^QwenCode\/\d+\.\d+\.\d+/i.test(c)?"qwen":c.includes("deepseek-tui")?"deepseek-tui":null}let g={claude:"claude-cli",codex:"codex-cli","gemini-cli":"gemini-cli",antigravity:"antigravity",cline:"cline",qwen:"qwen","github-copilot":"copilot"},h=/^claude-(?:cli|code)\/(\d+\.\d+\.\d+)(?:\s|\(|$)/i,i=/_session_([a-f0-9-]+)$/;function j(a,b){let c=a?.[b]??a?.[b.toLowerCase()];return"string"==typeof c&&c.trim()?c:null}function k(a,b={},c={}){let e=g[a];if(!e||f(b,c)!==a)return!1;if("claude"!==a)return(0,d.I2)(e,b);if(!function(a={},b={}){if(!a||"object"!=typeof a)return!1;let c=j(a,"user-agent"),e=c?.match(h)?.[1],f=(0,d.zi)("claude-cli")?.version;return!!(e&&e===f&&j(a,"x-app")?.toLowerCase()==="cli"&&j(a,"anthropic-beta")&&j(a,"x-stainless-package-version")&&j(a,"x-stainless-runtime-version")&&j(a,"x-stainless-os")&&j(a,"x-stainless-arch")&&function(a){let b=a?.metadata?.user_id;if("string"!=typeof b||!b)return null;let c=b.match(i)?.[1];if(c)return c;if("{"!==b[0])return null;try{let a=JSON.parse(b)?.session_id;if("string"!=typeof a)return null;let c=a.trim();return c&&c.length<=256?c:null}catch{return null}}(b))}(b,c))return!1;let l=b["user-agent"]||b["User-Agent"];return(0,d.I2)(e,{...b,"user-agent":l.replace(/^claude-code\//i,"claude-cli/")})}function l(a,b){if(!a)return!1;let c=e[a];if(!c)return!1;let d=b.startsWith("anthropic-compatible")?"anthropic":b;return c.includes(d)}},28190:(a,b,c)=>{c.d(b,{F:()=>g});let d=[{triggers:["mcp__exa__web_search_exa","mcp__exa__web_fetch_exa"],strip:["WebSearch","WebFetch","mcp__workspace__web_fetch"]},{triggers:["mcp__tavily__tavily_search","mcp__tavily__tavily_extract"],strip:["WebSearch","WebFetch","mcp__workspace__web_fetch"]},{triggers:[/^mcp__browsermcp__/],strip:[/^mcp__Claude_in_Chrome__/]}];function e(a){return a?.name||a?.function?.name||""}function f(a,b){return"string"==typeof b?a===b:b instanceof RegExp&&b.test(a)}function g(a){if(!Array.isArray(a)||0===a.length)return{tools:a,stripped:[]};let b=a.map(e),c=new Set;for(let a of d)if(b.some(b=>a.triggers.some(a=>f(b,a))))for(let d of b)a.strip.some(a=>f(d,a))&&c.add(d);return 0===c.size?{tools:a,stripped:[]}:{tools:a.filter(a=>!c.has(e(a))),stripped:Array.from(c)}}},29461:(a,b,c)=>{c.d(b,{$R:()=>j,Fo:()=>h,MK:()=>i,YZ:()=>k});var d=c(12407),e=c(6755),f=c(67677);let g=["temperature","top_p","top_k","max_tokens","max_completion_tokens","thinking","reasoning","enable_thinking","presence_penalty","frequency_penalty","seed","stop","tools","tool_choice","response_format","prediction","store","metadata","n","logprobs","top_logprobs","logit_bias","user","parallel_tool_calls"];function h(a,b){let c={messages:a.messages||[],model:a.model,stream:b};for(let b of g)void 0!==a[b]&&(c[b]=a[b]);return c}function i(a){return a&&"object"==typeof a?a.usage?.input_tokens!==void 0?{prompt_tokens:a.usage.input_tokens||0,completion_tokens:a.usage.output_tokens||0,cache_read_input_tokens:a.usage.cache_read_input_tokens,cache_creation_input_tokens:a.usage.cache_creation_input_tokens}:a.usage?.prompt_tokens!==void 0?{prompt_tokens:a.usage.prompt_tokens||0,completion_tokens:a.usage.completion_tokens||0,cached_tokens:a.usage.prompt_tokens_details?.cached_tokens,reasoning_tokens:a.usage.completion_tokens_details?.reasoning_tokens}:a.usageMetadata?{prompt_tokens:a.usageMetadata.promptTokenCount||0,completion_tokens:a.usageMetadata.candidatesTokenCount||0,cached_tokens:a.usageMetadata.cachedContentTokenCount||0,reasoning_tokens:a.usageMetadata.thoughtsTokenCount||0}:null:null}function j(a,b={}){return{provider:a.provider||"unknown",model:a.model||"unknown",connectionId:a.connectionId||void 0,timestamp:new Date().toISOString(),latency:a.latency||{ttft:0,total:0},tokens:a.tokens||{prompt_tokens:0,completion_tokens:0},request:a.request,providerRequest:a.providerRequest||null,providerResponse:a.providerResponse||null,response:a.response||{},pxpipe:a.pxpipe||void 0,rtk:a.rtk||void 0,status:a.status||"success",...b}}function k(a){let b=function({provider:a,model:b,tokens:c,connectionId:g,clientKeyId:h,endpoint:i,requestId:j=null,label:k="USAGE"}){if(!c||"object"!=typeof c)return;let l=c.input_tokens??c.prompt_tokens??0,m=c.output_tokens??c.completion_tokens??0;if(0===l&&0===m)return;let n=new Date().toLocaleTimeString("en-US",{hour12:!1,hour:"2-digit",minute:"2-digit",second:"2-digit"}),o=g?` | account=${g.slice(0,8)}...`:"";console.log(`${e.lm.green}[${n}] 📊 [${k}] ${a.toUpperCase()} | in=${l} | out=${m}${o}${e.lm.reset}`);let p=(0,f._6)(c)||{prompt_tokens:c.prompt_tokens??c.input_tokens??0,completion_tokens:c.completion_tokens??c.output_tokens??0};return(0,d.sZ)({provider:a||"unknown",model:b||"unknown",tokens:p,timestamp:new Date().toISOString(),connectionId:g||void 0,clientKeyId:h||void 0,endpoint:i||null,requestId:j||null})}(a);if(a.clientKeyId)return b;b?.catch?.(a=>console.error("[USAGE] save failed:",a?.message||a))}},30369:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{SB:()=>f.getExecutor}),c(46052),c(4630),c(28730),c(60290),c(27335),c(19956),c(48664),c(17717),c(66451),c(49263),c(41029),c(18129);var e=c(36362);c(15575);var f=c(48400);c(89865),c(6755);var g=a([e,f]);[e,f]=g.then?(await g)():g,d()}catch(a){d(a)}})},34267:(a,b,c)=>{c.d(b,{gH:()=>f});var d=c(57642),e=c(60290);function f({body:a,reexecute:b,signal:c,log:g,stallTimeoutMs:h=e.xM,baseDelayMs:i=500,onExhausted:j}){let k=new TextEncoder,l=null,m=!1,n=null,o=null,p=()=>{let a=n;n=null,o&&(c?.removeEventListener?.("abort",o),o=null),a?.()};return new ReadableStream({async start(e){l=a.getReader();let f=!1,q=null,r=async a=>{let b;if(!m&&(await (b=e.desiredSize,m||c?.aborted||null==b||b>0?Promise.resolve():new Promise(a=>{n=a,c?.addEventListener&&(o=p,c.addEventListener("abort",o,{once:!0}))})),!(m||c?.aborted)))try{e.enqueue(k.encode(a))}catch{m=!0}},s=()=>{if(!m)try{e.close()}catch{}},t=()=>{p();try{l.cancel().catch(()=>{})}catch{}if(m)return;let a=Error("Request aborted");a.name="AbortError";try{e.error(a)}catch{}},u=async a=>{if(m)return;if(c?.aborted)return t();try{await Promise.resolve(j?.(a,{upstreamError:q?.error||null}))}catch{}let b=q?.kind==="error_object"?q.line:`data: ${JSON.stringify({error:{code:502,status:"EMPTY_RESPONSE",message:a}})}`;await r(`${b}
|
|
65
65
|
|
|
66
|
-
`),s()};for(let a=0;;a++){let e=new TextDecoder,j="",k=null,n=!1,o="empty",p=Date.now(),v=!1,w=null,x=()=>{w&&(clearInterval(w),w=null)};h>0&&(w=setInterval(()=>{if(Date.now()-p>=h){v=!0;try{l.cancel().catch(()=>{})}catch{}}},Math.min(h,5e3)));try{for(;;){let a;if(c?.aborted)return t();try{a=await l.read()}catch{if(c?.aborted)return t();o=v?"stall":"read_error";break}if(v){o="stall";break}p=Date.now();let{done:b,value:g}=a;if(b)break;let h=(j+=e.decode(g,{stream:!0})).split("\n");for(let a of(j=h.pop(),h)){let b;if(k)continue;let c=a.trim();if(!c.startsWith("data:")){await r(a+"\n");continue}let e=c.slice(5).trim();if(!e||"[DONE]"===e){await r(a+"\n");continue}try{b=JSON.parse(e)}catch{await r(a+"\n");continue}let g=function(a,b){let c=a.response||a;if(!c||"object"!=typeof c)return{action:"forward"};let e=c.error||a.error;if(e)return b?{action:"forward",terminal:!0}:{action:"hold",kind:"error_object",reason:e.status||e.message||"error",error:e};if(!c.candidates?.length&&c.promptFeedback?.blockReason)return{action:"forward",terminal:!0};let f=c.candidates?.[0];if(!f)return{action:"forward"};let g=!1;for(let a of f.content?.parts||[])if(a.functionCall||a.inlineData?.data||a.inline_data?.data||!0!==a.thought&&"string"==typeof a.text&&a.text.trim().length>0){g=!0;break}let h=f.finishReason&&String(f.finishReason).toUpperCase();return h?d.zh.has(h)||h===d.a_.MAX_TOKENS||g||b?{action:"forward",meaningful:g,terminal:!0}:{action:"hold",kind:d.lW.has(h)?"error_finish":"stop",reason:h}:{action:"forward",meaningful:g}}(b,f);if(g.meaningful&&(f=!0),"hold"===g.action){q=k={kind:g.kind,reason:g.reason,error:g.error||null,line:a};continue}g.terminal&&(n=!0),await r(a+"\n")}}}finally{x()}if(f||n){let a=j+e.decode();!k&&a&&await r(a),s();return}let y=k?k.reason:o;if(g?.warn?.("STREAM",`ANTIGRAVITY | empty (${y}) | attempt ${a+1}/3`),a>=2)return u(`empty response from upstream (${y}) after ${a+1} attempts`);if(await function(a,b){return new Promise(c=>{let d,e=()=>{clearTimeout(d),c()};d=setTimeout(()=>{a?.removeEventListener?.("abort",e),c()},b),a?.addEventListener?.("abort",e,{once:!0})})}(c,i*2**a),m)return;if(c?.aborted)return t();try{l=(await b()).getReader()}catch(a){if(m)return;if(a?.name==="AbortError"||c?.aborted)return t();return u(a?.message||"retry request failed")}}},pull(){p()},cancel(a){m=!0,p();try{l?.cancel(a)?.catch?.(()=>{})}catch{}}})}},36362:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{w:()=>T});var e=c(17717),f=c(48664),g=c(94454),h=c(19956),i=c(43788),j=c(6755),k=c(15575),l=c(41029),m=c(49263),n=c(18129),o=c(70718),p=c(46052),q=c(27335),r=c(4630),s=c(89865),t=c(60290),u=c(2735),v=c(12407),w=c(48400),x=c(29461),y=c(78255),z=c(15142),A=c(61229),B=c(34267),C=c(18367),D=c(27226),E=c(28190),F=c(10640),G=c(37208),H=c(16799),I=c(92),J=c(10089),K=c(91576),L=c(12197),M=c(54070),N=c(39232),O=c(90197),P=c(43904),Q=c(94501),R=c(96145),S=a([w]);w=(S.then?(await S)():S)[0];let U=new Set([h.h.GEMINI,h.h.GEMINI_CLI,h.h.ANTIGRAVITY,h.h.VERTEX]);async function T({body:a,modelInfo:b,credentials:c,log:d,onCredentialsRefreshed:S,onRequestSuccess:V,onDisconnect:W,onUpstreamEmptyExhausted:X,clientRawRequest:Y,connectionId:Z,userAgent:$,clientKeyId:_,ccFilterNaming:aa,rtkEnabled:ab,vaultEnabled:ac,vaultThresholdKB:ad,vaultTtlHours:ae,vaultConversationId:af,headroomEnabled:ag,headroomUrl:ah,headroomCompressUserMessages:ai,cavemanEnabled:aj,cavemanLevel:ak,ponytailEnabled:al,ponytailLevel:am,pxpipeEnabled:an,pxpipeMinChars:ao,pxpipeTimeoutMs:ap,pxpipeTransform:aq,onPxpipeEvent:ar,sourceFormatOverride:as,providerThinking:at,bypassNativePassthrough:au,vaultInternal:av,abortSignal:aw}){let ax,ay,az,aA,aB,aC,{provider:aD,model:aE}=b,aF=Date.now(),aG=as||(0,e.Tz)(a),aH=(0,u.c)(a,aE,$,aa);if(aH)return aH;let aI=q.Xg[aD]||aD,aJ=(0,q.ux)(aI,aE),aK=(0,q.ez)(aI,aE),aL=aJ||(0,e.jJ)(aD,c),aM=(0,e.oF)(aD,aG,aK),aN=aM||(0,e.oF)(aD,aL,aK),aO=aM?.format===aG;c&&(c.runtimeTransport=aN||void 0);let aP=aO?aG:aN?.format||aL,aQ=(0,q.cY)(aI,aE),aR=(0,q.kt)(aI,aE);if(at?.mode&&"auto"!==at.mode){let b=at.mode;"on"!==b||a.thinking?"off"!==b||a.thinking?a.reasoning_effort||(a={...a,reasoning_effort:b}):a={...a,thinking:{type:"disabled"}}:(console.log("Injecting provider-level thinking config override: on"),a={...a,thinking:{type:"enabled",budget_tokens:1e4}})}let aS=Y?.headers?.accept||"",aT=aS.includes("application/json"),aU=aS.includes("text/event-stream"),aV=aG===h.h.ANTIGRAVITY||aG===h.h.GEMINI||aG===h.h.GEMINI_CLI,aW=!0===a.stream||aV&&!(aT&&!aU),aX=r.xq[aD]?.forceStream===!0,aY=!!aX||!1!==a.stream,aZ=(0,q.OA)(aI,aE);"imageGen"===aZ&&("antigravity"===aD||"gemini-cli"===aD)&&(aY=!1);let a$=(0,D.Jz)(Y?.headers||{},a);"deepseek-tui"===a$&&!0!==a.stream&&(aY=!1),!aT||aU||!0===a.stream||aX||(aY=!1),a&&"object"==typeof a&&(a={...a,stream:aY});let a_=await (0,o.q7)(aG,aP,aE);Y&&a_.logClientRawRequest(Y.endpoint,Y.body,Y.headers),a_.logRawRequest(a),d?.debug?.("FORMAT",`${aG} → ${aP} | stream=${aY}`);let a0=(0,D.Jz)(Y?.headers||{},a);(0,D.lP)(a0,Y?.headers||{},a);let a1=!au&&(0,D.Qf)(a0,aD);if(c&&(c.rawHeaders=Y?.headers||{}),!a1){let b=(0,P.nl)(aD,aE);(0,Q.X)(a,aG,b)&&d?.debug?.("MODALITY",`stripped unsupported media for ${aD}/${aE}`);try{let b=await (0,R.C)(a,aG,aP,{signal:aw});b>0&&d?.debug?.("MODALITY",`prefetched ${b} remote image(s) for ${aP}`)}catch(a){d?.warn?.("MODALITY",`image prefetch failed: ${a.message}`)}}let a2=(0,F.Ay)(a);if(a2>0&&d?.debug?.("TOOLCLEAN",`pre-translation: stripped ${a2} orphaned tool result(s)`),a1)d?.debug?.("PASSTHROUGH",`${a0} → ${aD} | native lossless`),ax={...a,model:(0,g.kD)(aR)},"claude"===a0&&(0,i.ui)(ax,ax.model);else{if(!(ax=(0,f.GH)(aG,aP,aR,a,aY,c,aD,a_,aQ,Z,a0)))return(0,v.uw)(aE,aD,Z,!1,!0),(0,s.A1)(t.gx.BAD_REQUEST,`Failed to translate request for ${aG} → ${aP}`);if(ay=ax._toolNameMap,delete ax._toolNameMap,ax.model=(0,g.kD)(aR),("claude"===aD||aD?.startsWith("anthropic-compatible"))&&"object"==typeof ax){let a=c?.accessToken||c?.apiKey||null;if("string"==typeof a&&a.includes("sk-ant-oat"))try{let b=clientSessionId||(0,K.oV)({headers:Y?.headers,body:ax,connectionId:Z,scope:"claude"});ax=await (0,J.Dz)(ax,a,b,c?.connectionId||a,{})}catch{}}}if("claude"===a0&&Array.isArray(ax.tools)){let{tools:a,stripped:b}=(0,E.F)(ax.tools);b.length>0&&(ax.tools=a,d?.debug?.("TOOLDEDUP",`stripped ${b.length}: ${b.slice(0,3).join(", ")}${b.length>3?"...":""}`))}let a3=a1?aG:aP;"tts"===(0,q.OA)(aI,aE)&&ax.messages&&(ax.messages=ax.messages.filter(a=>"tool"!==a.role),delete ax.tools);let a4=null;try{if(ac&&af&&Array.isArray(ax?.tools)&&ax.tools.length>0&&(aG===h.h.OPENAI||aG===h.h.CLAUDE)){let a=1024*(0,L.u1)(ad??8),b=3600*Math.max(1,Number(ae??24))*1e3;a4=await (0,L.f3)(ax,{conversationId:af,thresholdBytes:a,ttlMs:b,log:d})}}catch(a){d?.warn?.("VAULT",`store failed (dropped): ${a?.message||a}`)}let a5=Y?.headers?.[t.SA]?.toLowerCase()!=="off",a6=(0,I.BI)(ax,a5&&ab),a7=(0,I.fT)(a6);if(a7&&console.log(a7),a4?.vaulted>0){let a=a4.bytesBefore-a4.bytesAfter;(0,M.DL)(a4.vaulted,a),d?.info?.("VAULT",`externalized ${a4.vaulted} tool result(s), saved ${a}B`)}let a8={},a9=await (0,N.SI)(ax,{enabled:a5&&ag,url:ah,model:aR,format:a3,compressUserMessages:ai,diagnostics:a8}),ba=(0,N.Nv)(a9),bb=(0,N.O2)(a8);ba?(d?.info?.("HEADROOM",`${ba}${bb?` | ${bb}`:""}`),(0,N.cB)(a9,a8)&&d?.warn?.("HEADROOM",`reported token delta, but outbound JSON shrank <5%; provider may bill near-original payload | ${bb}`)):a5&&ag&&d?.warn?.("HEADROOM",`skipped: ${a8.reason||"compression unavailable"}${a8.endpoint?` (${a8.endpoint})`:""}`);let bc=(0,F.Ay)(ax);bc>0&&d?.debug?.("TOOLCLEAN",`post-compression: stripped ${bc} orphaned tool result(s)`),a5&&aj&&ak&&((0,G.p)(ax,a3,ak),d?.debug?.("CAVEMAN",`${ak} | ${a3}`)),a5&&al&&am&&((0,H.U)(ax,a3,am),d?.debug?.("PONYTAIL",`${am} | ${a3}`));let bd=null;if(a5&&an){let a=await (0,O.H)(ax,{enabled:!0,format:a3,model:aR,minChars:ao,timeoutMs:ap,transform:aq});bd=a.summary;let b=(0,O._)(bd);b?d?.info?.("PXPIPE",b):d?.debug?.("PXPIPE",`skipped: ${bd?.reason||"unknown"}`),a.body&&(ax=a.body);try{ar&&ar({provider:aD,model:aE,...bd})}catch{}}if(ax&&"object"==typeof ax)if(U.has(a3)){let{stream:a,request:b,...c}=ax;if(b&&"object"==typeof b){let{stream:a,...d}=b;ax={...c,request:d}}else ax=c}else ax.stream!==aY&&(ax={...ax,stream:aY});a1&&"claude"===a0&&(0,i._W)(ax);let be=(0,w.getExecutor)(aD);(0,v.uw)(aE,aD,Z,!0),av||(0,v.E5)({model:aE,provider:aD,connectionId:Z,status:"PENDING"}).catch(()=>{});let bf=ax.messages?.length||ax.input?.length||ax.contents?.length||ax.request?.contents?.length||0;d?.debug?.("REQUEST",`${aD.toUpperCase()} | ${aE} | ${bf} msgs`);let bg=(0,k.jd)({onDisconnect:a=>{(0,v.uw)(aE,aD,Z,!1),W&&W(a)},onError:()=>(0,v.uw)(aE,aD,Z,!1),log:d,provider:aD,model:aE});if(aw)if(aw.aborted)try{bg.abort()}catch{}else aw.addEventListener("abort",()=>{try{bg.abort()}catch{}},{once:!0});let bh=(0,p.$6)(c);if(bh.vercelRelayUrl){let a=c?.connectionName||c?.connectionId||"unknown",b=c?.providerSpecificData?.connectionProxyPoolId||"none";d?.info?.("PROXY",`${aD.toUpperCase()} | ${aE} | conn=${a} | pool=${b} | vercel-relay=${bh.vercelRelayUrl}`)}else if(bh.connectionProxyEnabled&&bh.connectionProxyUrl){let a=bh.connectionProxyUrl;try{let b=new URL(bh.connectionProxyUrl),c=b.hostname||"",d=b.port?`:${b.port}`:"",e=b.protocol||"http:";a=`${e}//${c}${d}`}catch{}let b=c?.providerSpecificData?.connectionProxyPoolId||"none",e=c?.connectionName||c?.connectionId||"unknown";d?.info?.("PROXY",`${aD.toUpperCase()} | ${aE} | conn=${e} | pool=${b} | url=${a}`)}if(bh.connectionProxyEnabled&&bh.connectionNoProxy){let a=c?.connectionName||c?.connectionId||"unknown";d?.debug?.("PROXY",`${aD.toUpperCase()} | ${aE} | conn=${a} | no_proxy=${bh.connectionNoProxy}`)}let bi=(0,x.Fo)(a,aY);try{let a=await be.execute({model:aE,body:structuredClone(ax),stream:aY,credentials:c,signal:bg.signal,log:d,proxyOptions:bh});az=a.response,aA=a.url,aB=a.headers,aC=a.transformedBody,a_.logTargetRequest(aA,aB,aC)}catch(b){if((0,v.uw)(aE,aD,Z,!1,!0),a_?.close?.(),(0,v.ox)((0,x.$R)({provider:aD,model:aE,connectionId:Z,latency:{ttft:0,total:Date.now()-aF},tokens:{prompt_tokens:0,completion_tokens:0},request:bi,providerRequest:ax||null,response:{error:b.message||String(b),status:"AbortError"===b.name?499:502,thinking:null},status:"error",pxpipe:bd||void 0,rtk:a6||void 0})).catch(()=>{}),"AbortError"===b.name)return bg.handleError(b),(0,s.A1)(499,"Request aborted");let a=(0,s.lR)(b,aD,aE,t.gx.BAD_GATEWAY);return console.log(`${j.lm.red}[ERROR] ${a}${j.lm.reset}`),(0,s.A1)(t.gx.BAD_GATEWAY,a)}let bj=null;if(!be.noAuth&&(az.status===t.gx.UNAUTHORIZED||az.status===t.gx.FORBIDDEN))try{let a=await (0,l.qZ)(async()=>{let a=await (0,n.MF)(aD,c,()=>be.refreshCredentials(c,d,bh));return a?.refreshToken&&a.refreshToken!==c.refreshToken&&(a.accessToken&&(c.accessToken=a.accessToken),c.refreshToken=a.refreshToken),a},3,d);if(a?.accessToken||a?.copilotToken){if(d?.info?.("TOKEN",`${aD.toUpperCase()} | refreshed`),Object.assign(c,a),S)try{await S(a)}catch(a){d?.warn?.("TOKEN",`onCredentialsRefreshed failed: ${a.message}`)}try{let a=await be.execute({model:aE,body:structuredClone(ax),stream:aY,credentials:c,signal:bg.signal,log:d,proxyOptions:bh});try{await az.body?.cancel?.()}catch{}az=a.response,aA=a.url,aB=a.headers??aB,aC=a.transformedBody??aC,a_.logTargetRequest(aA,aB,aC)}catch{d?.warn?.("TOKEN",`${aD.toUpperCase()} | retry after refresh failed`)}}else if((0,l.jT)(a)){let b=a.code||"invalid_grant";if(bj=`OAuth refresh token expired or revoked (${b}): reconnect the ${aD} account in the Switchboard dashboard`,d?.warn?.("TOKEN",`${aD.toUpperCase()} | refresh token revoked, re-auth required (${b})`),S)try{await S({reauthRequired:!0,testStatus:m.RU,lastError:bj,lastErrorAt:new Date().toISOString()})}catch(a){d?.warn?.("TOKEN",`onCredentialsRefreshed failed: ${a.message}`)}}else d?.warn?.("TOKEN",`${aD.toUpperCase()} | refresh failed`)}catch(a){d?.warn?.("TOKEN",`${aD.toUpperCase()} | refresh threw: ${a.message}`)}if(!az.ok){(0,v.uw)(aE,aD,Z,!1,!0),a_?.close?.();let{statusCode:a,message:b,resetsAtMs:c}=await (0,s.zL)(az,be),d=bj||b;(0,v.ox)((0,x.$R)({provider:aD,model:aE,connectionId:Z,latency:{ttft:0,total:Date.now()-aF},tokens:{prompt_tokens:0,completion_tokens:0},request:bi,providerRequest:aC||ax||null,response:{error:d,status:a,thinking:null},status:"error",pxpipe:bd||void 0,rtk:a6||void 0})).catch(()=>{});let e=(0,s.lR)(Error(d),aD,aE,a);return console.log(`${j.lm.red}[ERROR] ${e}${j.lm.reset}`),a_.logError(Error(d),aC||ax),(0,s.A1)(a,e,c)}let bk=async()=>{let a=await be.execute({model:aE,body:structuredClone(ax),stream:aY,credentials:c,signal:bg.signal,log:d,proxyOptions:bh});if(!a.response.ok){let{statusCode:b,message:c}=await (0,s.zL)(a.response,be);throw Error(`[${b}] ${c}`)}if(!a.response.body)throw Error("upstream returned no body");return a.response.body},bl="antigravity"===aD||"gemini-cli"===aD||"gemini"===aD||"vertex"===aD;bl&&aY&&az.body?az=new Response((0,B.gH)({body:az.body,reexecute:bk,signal:bg.signal,log:d,onExhausted:(a,{upstreamError:b}={})=>{if(!X)return;let c=be.parseRetryFromErrorMessage?.(b?.message||a);return X((0,s.lR)(Error(a),aD,aE,t.gx.BAD_GATEWAY),c?Date.now()+c:void 0)}}),{status:az.status,headers:az.headers}):aY&&az.body&&(az=new Response((0,C.Z)({body:az.body,reexecute:bk,signal:bg.signal,log:d}),{status:az.status,headers:az.headers}));let bm=`${Date.now()}-${Math.random().toString(36).slice(2,11)}`,bn={provider:aD,model:aE,body:a,stream:aY,requestConfig:bi,translatedBody:ax,finalBody:aC,requestStartTime:aF,connectionId:Z,clientKeyId:_,clientRawRequest:Y,onRequestSuccess:V,requestId:bm,pxpipe:bd||void 0,streamSignal:bg.signal},bo=a=>{av||(0,v.E5)({model:aE,provider:aD,connectionId:Z,...a}).catch(()=>{})},bp=()=>(0,v.uw)(aE,aD,Z,!1);if(!aW&&aX){let a=await (0,y.I)({...bn,providerResponse:az,sourceFormat:aG,targetFormat:aP,trackDone:bp,appendLog:bo});if(a)return bg.handleComplete(),a}if(!aY){let a=await (0,z.N)({...bn,providerResponse:az,sourceFormat:aG,targetFormat:aP,reqLogger:a_,toolNameMap:ay,trackDone:bp,appendLog:bo});return bg.handleComplete(),a}let{onStreamComplete:bq,streamDetailId:br}=(0,A.$)({...bn});return(0,A.M)({...bn,providerResponse:az,sourceFormat:aG,targetFormat:aP,userAgent:$,reqLogger:a_,toolNameMap:ay,streamController:bg,onStreamComplete:bq,streamDetailId:br,firstChunkTimeoutMs:bl?void 0:0})}d()}catch(a){d(a)}})},37208:(a,b,c)=>{c.d(b,{p:()=>n});var d=c(17429);let e="Code blocks, file paths, commands, errors, URLs: keep exact. Security warnings, irreversible action confirmations, multi-step ordered sequences: write normal. Resume terse style after.",f='Not: "Sure! I\'d be happy to help you with that. The issue you\'re experiencing is likely caused by..." Yes: "Bug in auth middleware. Token expiry check use `<` not `<=`. Fix:"',g="Auto-Clarity: drop caveman for security warnings, irreversible actions, multi-step sequences where fragment ambiguity risks misread, or when user repeats a question. Resume after the clear part.",h="ACTIVE EVERY RESPONSE. No revert after many turns. No filler drift. Still active if unsure.",i="No invented abbreviations. Standard well-known tech acronyms (DB, API, HTTP, URL, JSON, ID, OS, CPU) OK. Names of code symbols, function names, API names, error strings: keep verbatim.",j="Preserve the user's dominant language. User wrote Vietnamese, reply Vietnamese. User wrote English, reply English. Wenyan/classical-Chinese levels override this language-preservation rule. Code identifiers, error strings, file paths, commands: keep in their original form regardless of language.",k='No self-reference. Do not name or announce the style (no "caveman mode", no "me caveman think", no "compressed mode active"). Just respond.',l='No decorative emoji. No narrating tool calls ("I will now search", "I used X to find Y"). No status phrases ("Sure!", "Of course!", "I\'d be happy to"). No causal arrow shorthand ("A -> B -> fails"). State the thing, the action, the reason. Then next step.',m={lite:["Respond tersely. Keep grammar and full sentences but drop filler, hedging and pleasantries (just/really/basically/sure/of course/I'd be happy to). Pattern: state the thing, the action, the reason. Then next step.",f,e,g,h,i,j,k,l].join(" "),full:["Respond like terse caveman. All technical substance stay exact, only fluff die. Drop: articles (a/an/the), filler (just/really/basically/actually/simply), pleasantries, hedging. Fragments OK. Short synonyms (big not extensive, fix not implement a solution for). Pattern: [thing] [action] [reason]. [next step].",f,e,g,h,i,j,k,l].join(" "),ultra:["Respond ultra-terse. Maximum compression. Telegraphic. Strip conjunctions. One word when one word enough. Pattern: [thing] [action] [reason]. [next step].",f,e,g,h,i,j,k,l].join(" "),"wenyan-lite":["Respond semi-classical. Drop filler/hedging but keep grammar structure, classical register. Use classical Chinese sentence patterns where natural. Keep English for technical terms.",f,e,g,h,i,j,k,l].join(" "),wenyan:["Respond classical Chinese (文言文). Maximum classical terseness. 80-90% character reduction. Classical sentence patterns, verbs precede objects, subjects often omitted, classical particles (之/乃/為/其). Keep English for code, commands, function names, API names, error strings.",f,e,g,h,i,j,k,l].join(" "),"wenyan-ultra":["Respond extreme classical compression (文言文 ultra). Maximum compression, ultra terse. Same classical rules as wenyan-full but even more compressed. One classical particle per clause.",f,e,g,h,i,j,k,l].join(" ")};function n(a,b,c){(0,d.J)(a,b,m[c])}},39232:(a,b,c)=>{c.d(b,{Nv:()=>l,O2:()=>m,SI:()=>k,cB:()=>n});var d=c(37377),e=c(29229),f=c(97579);function g(a){try{return new TextEncoder().encode(JSON.stringify(a)||"").length}catch{return 0}}function h(a){let b=Array.isArray(a?.messages)?a.messages:Array.isArray(a?.input)?a.input:null,c=b?.filter(a=>a?.role==="tool"||a?.role==="function"||a?.tool_calls?.length||a?.content?.some?.(a=>a?.type==="tool_use"||a?.type==="tool_result"))||[];return{bodyBytes:g(a),messageBytes:b?g(b):0,toolSchemaBytes:g(a?.tools||[]),toolHistoryBytes:g(c)}}function i(a,b){a&&!a.reason&&(a.reason=b)}async function j(a,b,c,d,e,f){let g,h=function(a){try{let b=new URL(a);return b.pathname=`${b.pathname.replace(/\/$/,"")}/v1/compress`,b.hash="",b.toString()}catch{let[b,c=""]=String(a).replace(/#.*$/,"").split("?",2),d=`${b.replace(/\/$/,"")}/v1/compress`;return c?`${d}?${c}`:d}}(a);f.endpoint=function(a){try{let b=new URL(a);return b.username="",b.password="",b.search="",b.hash="",b.toString()}catch{return String(a).replace(/\/\/[^/@\s]+@/,"//").replace(/[?#].*$/,"")}}(h);let j={messages:b,model:c};e&&(j.config={compress_user_messages:!0});try{g=await fetch(h,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(j),signal:AbortSignal.timeout(d)})}catch(d){var k;let a,b,c;return i(f,`request failed: ${(k=d,a=k?.cause,b=a?.code||k?.code,c=String(a?.message||k?.message||String(k)).replace(/\/\/[^/@\s]+@/g,"//").replace(/(https?:\/\/[^\s?#]+)[?#][^\s)]*/g,"$1"),b?`${b}: ${c}`:c)}`),null}if(!g.ok)return i(f,`proxy returned HTTP ${g.status}`),null;let l=await g.json();return Array.isArray(l?.messages)?l:(i(f,"proxy response missing messages[]"),null)}async function k(a,{enabled:b,url:c,model:g,format:l,compressUserMessages:m,timeoutMs:n=3e3,diagnostics:o=null}={}){if(!b)return i(o,"disabled"),null;if(!c)return i(o,"missing proxy URL"),null;if(!a)return i(o,"missing request body"),null;try{if(o&&(o.before=h(a)),"claude"===l){let b=Array.isArray(a.system)&&a.system[0]?.text?.startsWith?.("x-anthropic-billing-header:")?a.system[0]:null,f=(0,d.t)(g,a,!1);if(!Array.isArray(f?.messages))return i(o,"Claude request did not translate to messages[]"),null;let k=await j(c,f.messages,g,n,m,o||{});if(!k)return null;let l=(0,e.p)(g,{...f,messages:k.messages},!1);return Array.isArray(l?.messages)&&(a.messages=l.messages),l?.system!==void 0&&(a.system=b?[b,...Array.isArray(l.system)?l.system:[{type:"text",text:String(l.system)}]]:l.system),o&&(o.after=h(a)),k}if("openai-responses"===l){if(Array.isArray(a?.input)&&a.input.some(a=>!(!a||"object"!=typeof a||Array.isArray(a))&&"string"==typeof a.type&&"message"!==a.type))return i(o,"skipped: openai-responses tool/reasoning input is not safe to compress"),null;let b=(0,f.Z)(g,a,!1);if(!Array.isArray(b?.messages))return null;let d=await j(c,b.messages,g,n,m,o||{});if(!d)return null;let e=(0,f.h)(g,{...b,input:void 0,messages:d.messages},!1);return Array.isArray(e?.input)&&(a.input=e.input),o&&(o.after=h(a)),d}let b=Array.isArray(a.messages)?"messages":Array.isArray(a.input)?"input":null;if(!b)return i(o,`unsupported ${l||"unknown"} request shape`),null;let k=await j(c,a[b],g,n,m,o||{});if(!k)return null;return a[b]=k.messages,o&&(o.after=h(a)),k}catch(a){return i(o,`unexpected error: ${a?.message||String(a)}`),null}}function l(a){if(!a)return null;let b=a.tokens_before||0,c=a.tokens_after||0,d=a.tokens_saved||0,e=b>0?(d/b*100).toFixed(1):"0";return`reported token delta=${d} before=${b}${c?` after=${c}`:""} (${e}%)`.trim()}function m(a){let b=a?.before,c=a?.after;if(!b||!c)return"";let d=b.bodyBytes>0?((b.bodyBytes-c.bodyBytes)/b.bodyBytes*100).toFixed(1):"0.0";return`body=${b.bodyBytes}B→${c.bodyBytes}B messages=${b.messageBytes}B→${c.messageBytes}B tools=${b.toolSchemaBytes||0}B→${c.toolSchemaBytes||0}B toolHistory=${b.toolHistoryBytes||0}B→${c.toolHistoryBytes||0}B effective=${d}%`}function n(a,b,c=.05){if(!a?.tokens_saved||a.tokens_saved<=0)return!1;let d=b?.before?.bodyBytes||0,e=b?.after?.bodyBytes||0;return!(d<=0)&&!(e<=0)&&e>=d*(1-c)}},49612:(a,b,c)=>{c.d(b,{g:()=>l,p:()=>m});var d=c(19956),e=c(98173),f=c(57642);function g(a){if(!a)return{};if("object"==typeof a)return a;try{return JSON.parse(a)}catch{return{}}}function h(a){return a?.choices?.[0]||{}}function i(a){return h(a).message||{}}function j(a){let b=i(a).tool_calls;return Array.isArray(b)?b:[]}function k(a){let b=a||{},c=b.prompt_tokens||b.input_tokens||0,d=b.completion_tokens||b.output_tokens||0,e={prompt_tokens:c,completion_tokens:d,total_tokens:b.total_tokens||c+d},f=b.prompt_tokens_details||{},g=b.input_tokens_details||{},h=f.cached_tokens||g.cached_tokens||b.cache_read_input_tokens||0,i=f.cache_creation_tokens||g.cache_creation_tokens||b.cache_creation_input_tokens||0;(h>0||i>0)&&(e.prompt_tokens_details={},h>0&&(e.prompt_tokens_details.cached_tokens=h),i>0&&(e.prompt_tokens_details.cache_creation_tokens=i));let j=b.completion_tokens_details||{},k=b.output_tokens_details||{},l=j.reasoning_tokens||k.reasoning_tokens||0;return l>0&&(e.completion_tokens_details={reasoning_tokens:l}),e}function l(a,b){let c,d=Array.isArray(a?.output)?a.output:[],e=d.filter(a=>a?.type==="reasoning").flatMap(a=>Array.isArray(a.summary)?a.summary:[]).map(a=>a?.text||"").join(""),f=d.filter(a=>a?.type==="message"),g=[...f].reverse().find(a=>(Array.isArray(a.content)?a.content:[]).some(a=>"string"==typeof a.text&&a.text.length>0))||f[f.length-1]||null,h=d.filter(a=>a?.type==="refusal").map(a=>a?.refusal||"").join(""),i=(Array.isArray(g?.content)?g.content:[]).map(a=>("output_text"===a.type||"refusal"===a.type||"string"==typeof a.text)&&(a.text||a.refusal)||"").join("")||h,j=d.filter(a=>a?.type==="function_call"||a?.type==="custom_tool_call").map((a,b)=>({id:a.call_id||`call_${a.name||"tool"}_${b}`,type:"function",function:{name:a.name||"",arguments:"string"==typeof a.arguments?a.arguments:JSON.stringify(a.arguments??a.input??{})}})),l=a?.usage||{},m={role:"assistant",content:i||(j.length>0?null:"")};if(e&&(m.reasoning_content=e),j.length>0&&(m.tool_calls=j),j.length>0)c="tool_calls";else if(h&&""===i.split(h).join("").trim())c="content_filter";else{let b=a?.status;c="completed"===b||"done"===b?"stop":"failed"===b?"error":"incomplete"===b?a?.incomplete_details?.reason==="content_filter"?"content_filter":"length":"stop"}return{id:a?.id||`chatcmpl-${Date.now()}`,object:"chat.completion",created:a?.created_at||Math.floor(Date.now()/1e3),model:a?.model||b||"unknown",choices:[{index:0,message:m,finish_reason:c}],usage:k(l)}}function m(a,b){switch(b){case d.h.CLAUDE:return function(a){let b,c,f,k,l,m;if(!a?.choices?.[0])return a;let n=h(a),o=i(a),p=[],q=o.reasoning_content||o.provider_specific_fields?.reasoning_content||"";for(let b of(q&&p.push({type:"thinking",thinking:q}),"string"==typeof o.content&&o.content.length>0&&p.push({type:"text",text:o.content}),j(a))){let a=b.function||{};p.push({type:"tool_use",id:b.id||`toolu_${Date.now()}_${p.length}`,name:a.name||b.name||"",input:g(a.arguments||b.arguments)})}0===p.length&&p.push({type:"text",text:""});let r=a.usage||{};return{id:String(a.id||`msg_${Date.now()}`).replace(/^chatcmpl-/,""),type:"message",role:"assistant",model:a.model||"unknown",content:p,stop_reason:(0,e.Q)(n.finish_reason,d.h.CLAUDE),stop_sequence:null,usage:(c={input_tokens:(b=r||{}).prompt_tokens||b.input_tokens||0,output_tokens:b.completion_tokens||b.output_tokens||0},f=b.prompt_tokens_details||{},k=b.input_tokens_details||{},l=f.cached_tokens||k.cached_tokens||b.cache_read_input_tokens||0,m=f.cache_creation_tokens||k.cache_creation_tokens||b.cache_creation_input_tokens||0,l>0&&(c.cache_read_input_tokens=l),m>0&&(c.cache_creation_input_tokens=m),c)}}(a);case d.h.GEMINI:case d.h.GEMINI_CLI:case d.h.ANTIGRAVITY:case d.h.VERTEX:return function(a){if(!a?.choices?.[0])return a;let b=i(a),c=k(a.usage||{}),d=[],e=b.reasoning_content||b.provider_specific_fields?.reasoning_content||"";for(let c of(e&&d.push({text:e,thought:!0}),"string"==typeof b.content&&b.content.length>0&&d.push({text:b.content}),j(a))){let a=c.function||{};d.push({functionCall:{name:a.name||c.name||"",args:g(a.arguments||c.arguments)}})}return 0===d.length&&d.push({text:""}),{response:{candidates:[{content:{role:"model",parts:d},finishReason:function(a){switch(a){case f.bC.LENGTH:return f.a_.MAX_TOKENS;case f.bC.CONTENT_FILTER:return f.a_.SAFETY;case f.bC.ERROR:return f.a_.MALFORMED_FUNCTION_CALL;default:return f.a_.STOP}}(h(a).finish_reason),index:0}],usageMetadata:{promptTokenCount:c.prompt_tokens,candidatesTokenCount:c.completion_tokens,totalTokenCount:c.total_tokens},modelVersion:a.model||"unknown",responseId:a.id||`resp_${Date.now()}`}}}(a);case d.h.OLLAMA:return function(a){if(!a?.choices?.[0])return a;let b=h(a),c=i(a),d={role:"assistant",content:"string"==typeof c.content?c.content:""};c.reasoning_content&&(d.thinking=c.reasoning_content);let e=j(a).map(a=>{let b=a.function||{};return{id:a.id,function:{name:b.name||a.name||"",arguments:g(b.arguments||a.arguments)}}});e.length>0&&(d.tool_calls=e);let f=a.usage||{};return{model:a.model||"unknown",created_at:a.created?new Date(1e3*a.created).toISOString():new Date().toISOString(),message:d,done:!0,done_reason:"tool_calls"===b.finish_reason?"stop":b.finish_reason||"stop",prompt_eval_count:f.prompt_tokens||f.input_tokens||0,eval_count:f.completion_tokens||f.output_tokens||0}}(a);case d.h.OPENAI_RESPONSES:case d.h.OPENAI_RESPONSE:return function(a){let b;if(!a?.choices?.[0])return a;let c=i(a),d=a.usage||{},e=[],f=0,g=c.reasoning_content||c.provider_specific_fields?.reasoning_content||"";g&&(e.push({type:"reasoning",id:`rs_${a.id||Date.now()}_${f}`,summary:[{type:"summary_text",text:g}]}),f++);let l="string"==typeof c.content?c.content:"";l&&(e.push({type:"message",id:`msg_${a.id||Date.now()}_${f}`,role:"assistant",content:[{type:"output_text",text:l,annotations:[],logprobs:[]}]}),f++);let m=j(a);if(m.length>0)for(let a of m){let b=a.function||{},c=a.id||`call_${b.name||"tool"}_${f}`;e.push({type:"function_call",id:`fc_${c}`,call_id:c,name:b.name||a.name||"",arguments:"string"==typeof b.arguments?b.arguments:JSON.stringify(b.arguments||{})}),f++}else l||g||e.push({type:"message",id:`msg_${a.id||Date.now()}_${f}`,role:"assistant",content:[{type:"output_text",text:"",annotations:[],logprobs:[]}]});let n=h(a).finish_reason||"stop",o="completed";"length"===n?(o="incomplete",b={reason:"max_output_tokens"}):"content_filter"===n?(o="incomplete",b={reason:"content_filter"}):"error"===n&&(o="failed");let p=k(d);return{id:a.id?`resp_${a.id}`:`resp_${Date.now()}`,object:"response",created_at:a.created||Math.floor(Date.now()/1e3),status:o,...b?{incomplete_details:b}:{},output:e,usage:{input_tokens:p.prompt_tokens,output_tokens:p.completion_tokens,total_tokens:p.total_tokens}}}(a);case d.h.KIRO:case d.h.CURSOR:case d.h.COMMANDCODE:default:return a}}},54070:(a,b,c)=>{c.d(b,{DL:()=>g,VS:()=>h,_s:()=>i});let d=global.__vaultStats??={entries:0,hits:0,bytesSaved:0};function e(a){try{let b=Number(a);if(!Number.isFinite(b)||b<0)return 0;return Math.trunc(b)}catch{return 0}}function f(a,b){try{let c=e(d[a])+e(b);d[a]=Number.isSafeInteger(c)?c:Number.MAX_SAFE_INTEGER}catch{}}function g(a,b){try{f("entries",a),f("bytesSaved",b)}catch{}}function h(a=1){try{f("hits",a)}catch{}}function i(){try{return{entries:e(d.entries),hits:e(d.hits),bytesSaved:e(d.bytesSaved)}}catch{return{entries:0,hits:0,bytesSaved:0}}}},61229:(a,b,c)=>{c.d(b,{$:()=>p,M:()=>o});var d=c(19956),e=c(48664),f=c(6755),g=c(15575),h=c(4630),i=c(60290),j=c(48330),k=c(29461),l=c(12407),m=c(4905);let n={[d.h.OPENAI_RESPONSES]:d.h.OPENAI_RESPONSES,[d.h.CLAUDE]:d.h.CLAUDE,[d.h.ANTIGRAVITY]:d.h.ANTIGRAVITY,[d.h.GEMINI]:d.h.ANTIGRAVITY,[d.h.GEMINI_CLI]:d.h.ANTIGRAVITY};async function o({providerResponse:a,provider:b,model:c,sourceFormat:p,targetFormat:q,userAgent:r,body:s,stream:t,requestConfig:u,translatedBody:v,finalBody:w,requestStartTime:x,connectionId:y,clientKeyId:z,requestId:A,clientRawRequest:B,onRequestSuccess:C,reqLogger:D,toolNameMap:E,streamController:F,onStreamComplete:G,streamDetailId:H,pxpipe:I,firstChunkTimeoutMs:J=i.Z1}){let K=(a.headers.get("content-type")||"").toLowerCase();if((K.includes("application/x-ndjson")||K.includes("application/ndjson"))&&a.body){let b,c,d,e;a=new Response(a.body.pipeThrough((b=new TextDecoder,c=new TextEncoder,d="",new TransformStream({transform(a,e){let f=(d+=b.decode(a,{stream:!0})).split("\n");for(let a of(d=f.pop()||"",f)){let b=a.trim();if(b){if(b.startsWith("data:")||b.startsWith("event:")){e.enqueue(c.encode(a+"\n"));continue}try{JSON.parse(b),e.enqueue(c.encode(`data: ${b}
|
|
66
|
+
`),s()};for(let a=0;;a++){let e=new TextDecoder,j="",k=null,n=!1,o="empty",p=Date.now(),v=!1,w=null,x=()=>{w&&(clearInterval(w),w=null)};h>0&&(w=setInterval(()=>{if(Date.now()-p>=h){v=!0;try{l.cancel().catch(()=>{})}catch{}}},Math.min(h,5e3)));try{for(;;){let a;if(m)return;if(c?.aborted)return t();try{a=await l.read()}catch{if(m)return;if(c?.aborted)return t();o=v?"stall":"read_error";break}if(m)return;if(c?.aborted)return t();if(v){o="stall";break}p=Date.now();let{done:b,value:g}=a;if(b)break;let h=(j+=e.decode(g,{stream:!0})).split("\n");for(let a of(j=h.pop(),h)){let b;if(k)continue;let c=a.trim();if(!c.startsWith("data:")){await r(a+"\n");continue}let e=c.slice(5).trim();if(!e||"[DONE]"===e){await r(a+"\n");continue}try{b=JSON.parse(e)}catch{await r(a+"\n");continue}let g=function(a,b){let c=a.response||a;if(!c||"object"!=typeof c)return{action:"forward"};let e=c.error||a.error;if(e)return b?{action:"forward",terminal:!0}:{action:"hold",kind:"error_object",reason:e.status||e.message||"error",error:e};if(!c.candidates?.length&&c.promptFeedback?.blockReason)return{action:"forward",terminal:!0};let f=c.candidates?.[0];if(!f)return{action:"forward"};let g=!1;for(let a of f.content?.parts||[])if(a.functionCall||a.inlineData?.data||a.inline_data?.data||!0!==a.thought&&"string"==typeof a.text&&a.text.trim().length>0){g=!0;break}let h=f.finishReason&&String(f.finishReason).toUpperCase();return h?d.zh.has(h)||h===d.a_.MAX_TOKENS||g||b?{action:"forward",meaningful:g,terminal:!0}:{action:"hold",kind:d.lW.has(h)?"error_finish":"stop",reason:h}:{action:"forward",meaningful:g}}(b,f);if(g.meaningful&&(f=!0),"hold"===g.action){q=k={kind:g.kind,reason:g.reason,error:g.error||null,line:a};continue}g.terminal&&(n=!0),await r(a+"\n")}}}finally{x()}if(f||n){let a=j+e.decode();!k&&a&&await r(a),s();return}let y=k?k.reason:o;if(g?.warn?.("STREAM",`ANTIGRAVITY | empty (${y}) | attempt ${a+1}/3`),a>=2)return u(`empty response from upstream (${y}) after ${a+1} attempts`);if(await function(a,b){return new Promise(c=>{let d,e=()=>{clearTimeout(d),c()};d=setTimeout(()=>{a?.removeEventListener?.("abort",e),c()},b),a?.addEventListener?.("abort",e,{once:!0})})}(c,i*2**a),m)return;if(c?.aborted)return t();try{let a=await b();if(m||c?.aborted){try{await a.cancel()}catch{}m||t();return}l=a.getReader()}catch(a){if(m)return;if(a?.name==="AbortError"||c?.aborted)return t();return u(a?.message||"retry request failed")}}},pull(){p()},cancel(a){m=!0,p();try{l?.cancel(a)?.catch?.(()=>{})}catch{}}})}},36362:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{w:()=>T});var e=c(17717),f=c(48664),g=c(94454),h=c(19956),i=c(43788),j=c(6755),k=c(15575),l=c(41029),m=c(49263),n=c(18129),o=c(70718),p=c(46052),q=c(27335),r=c(4630),s=c(89865),t=c(60290),u=c(2735),v=c(12407),w=c(48400),x=c(29461),y=c(78255),z=c(15142),A=c(61229),B=c(34267),C=c(18367),D=c(27226),E=c(28190),F=c(10640),G=c(37208),H=c(16799),I=c(92),J=c(10089),K=c(91576),L=c(12197),M=c(54070),N=c(39232),O=c(90197),P=c(43904),Q=c(94501),R=c(96145),S=a([w]);w=(S.then?(await S)():S)[0];let U=new Set([h.h.GEMINI,h.h.GEMINI_CLI,h.h.ANTIGRAVITY,h.h.VERTEX]);async function T({body:a,modelInfo:b,credentials:c,log:d,onCredentialsRefreshed:S,onRequestSuccess:V,onDisconnect:W,onUpstreamEmptyExhausted:X,clientRawRequest:Y,connectionId:Z,userAgent:$,clientKeyId:_,ccFilterNaming:aa,rtkEnabled:ab,vaultEnabled:ac,vaultThresholdKB:ad,vaultTtlHours:ae,vaultConversationId:af,headroomEnabled:ag,headroomUrl:ah,headroomCompressUserMessages:ai,cavemanEnabled:aj,cavemanLevel:ak,ponytailEnabled:al,ponytailLevel:am,pxpipeEnabled:an,pxpipeMinChars:ao,pxpipeTimeoutMs:ap,pxpipeTransform:aq,onPxpipeEvent:ar,sourceFormatOverride:as,providerThinking:at,bypassNativePassthrough:au,vaultInternal:av,abortSignal:aw}){let ax,ay,az,aA,aB,aC;if(aw?.aborted)return(0,s.A1)(499,"Request aborted");let{provider:aD,model:aE}=b,aF=Date.now(),aG=as||(0,e.Tz)(a),aH=(0,u.c)(a,aE,$,aa);if(aH)return aH;let aI=q.Xg[aD]||aD,aJ=(0,q.ux)(aI,aE),aK=(0,q.ez)(aI,aE),aL=aJ||(0,e.jJ)(aD,c),aM=(0,e.oF)(aD,aG,aK),aN=aM||(0,e.oF)(aD,aL,aK),aO=aM?.format===aG;c&&(c.runtimeTransport=aN||void 0);let aP=aO?aG:aN?.format||aL,aQ=(0,q.cY)(aI,aE),aR=(0,q.kt)(aI,aE);if(at?.mode&&"auto"!==at.mode){let b=at.mode;"on"!==b||a.thinking?"off"!==b||a.thinking?a.reasoning_effort||(a={...a,reasoning_effort:b}):a={...a,thinking:{type:"disabled"}}:(console.log("Injecting provider-level thinking config override: on"),a={...a,thinking:{type:"enabled",budget_tokens:1e4}})}let aS=Y?.headers?.accept||"",aT=aS.includes("application/json"),aU=aS.includes("text/event-stream"),aV=aG===h.h.ANTIGRAVITY||aG===h.h.GEMINI||aG===h.h.GEMINI_CLI,aW=!0===a.stream||aV&&!(aT&&!aU),aX=r.xq[aD]?.forceStream===!0,aY=!!aX||!1!==a.stream,aZ=(0,q.OA)(aI,aE);"imageGen"===aZ&&("antigravity"===aD||"gemini-cli"===aD)&&(aY=!1);let a$=(0,D.Jz)(Y?.headers||{},a);"deepseek-tui"===a$&&!0!==a.stream&&(aY=!1),!aT||aU||!0===a.stream||aX||(aY=!1),a&&"object"==typeof a&&(a={...a,stream:aY});let a_=await (0,o.q7)(aG,aP,aE);Y&&a_.logClientRawRequest(Y.endpoint,Y.body,Y.headers),a_.logRawRequest(a),d?.debug?.("FORMAT",`${aG} → ${aP} | stream=${aY}`);let a0=(0,D.Jz)(Y?.headers||{},a);(0,D.lP)(a0,Y?.headers||{},a);let a1=!au&&(0,D.Qf)(a0,aD);if(c&&(c.rawHeaders=Y?.headers||{}),!a1){let b=(0,P.nl)(aD,aE);(0,Q.X)(a,aG,b)&&d?.debug?.("MODALITY",`stripped unsupported media for ${aD}/${aE}`);try{let b=await (0,R.C)(a,aG,aP,{signal:aw});b>0&&d?.debug?.("MODALITY",`prefetched ${b} remote image(s) for ${aP}`)}catch(a){d?.warn?.("MODALITY",`image prefetch failed: ${a.message}`)}}let a2=(0,F.Ay)(a);if(a2>0&&d?.debug?.("TOOLCLEAN",`pre-translation: stripped ${a2} orphaned tool result(s)`),a1)d?.debug?.("PASSTHROUGH",`${a0} → ${aD} | native lossless`),ax={...a,model:(0,g.kD)(aR)},"claude"===a0&&(0,i.ui)(ax,ax.model);else{if(!(ax=(0,f.GH)(aG,aP,aR,a,aY,c,aD,a_,aQ,Z,a0)))return(0,v.uw)(aE,aD,Z,!1,!0),(0,s.A1)(t.gx.BAD_REQUEST,`Failed to translate request for ${aG} → ${aP}`);if(ay=ax._toolNameMap,delete ax._toolNameMap,ax.model=(0,g.kD)(aR),("claude"===aD||aD?.startsWith("anthropic-compatible"))&&"object"==typeof ax){let a=c?.accessToken||c?.apiKey||null;if("string"==typeof a&&a.includes("sk-ant-oat"))try{let b=clientSessionId||(0,K.oV)({headers:Y?.headers,body:ax,connectionId:Z,scope:"claude"});ax=await (0,J.Dz)(ax,a,b,c?.connectionId||a,{})}catch{}}}if("claude"===a0&&Array.isArray(ax.tools)){let{tools:a,stripped:b}=(0,E.F)(ax.tools);b.length>0&&(ax.tools=a,d?.debug?.("TOOLDEDUP",`stripped ${b.length}: ${b.slice(0,3).join(", ")}${b.length>3?"...":""}`))}let a3=a1?aG:aP;"tts"===(0,q.OA)(aI,aE)&&ax.messages&&(ax.messages=ax.messages.filter(a=>"tool"!==a.role),delete ax.tools);let a4=null;try{if(ac&&af&&Array.isArray(ax?.tools)&&ax.tools.length>0&&(aG===h.h.OPENAI||aG===h.h.CLAUDE)){let a=1024*(0,L.u1)(ad??8),b=3600*Math.max(1,Number(ae??24))*1e3;a4=await (0,L.f3)(ax,{conversationId:af,thresholdBytes:a,ttlMs:b,log:d})}}catch(a){d?.warn?.("VAULT",`store failed (dropped): ${a?.message||a}`)}let a5=Y?.headers?.[t.SA]?.toLowerCase()!=="off",a6=(0,I.BI)(ax,a5&&ab),a7=(0,I.fT)(a6);if(a7&&console.log(a7),a4?.vaulted>0){let a=a4.bytesBefore-a4.bytesAfter;(0,M.DL)(a4.vaulted,a),d?.info?.("VAULT",`externalized ${a4.vaulted} tool result(s), saved ${a}B`)}let a8={},a9=await (0,N.SI)(ax,{enabled:a5&&ag,url:ah,model:aR,format:a3,compressUserMessages:ai,diagnostics:a8}),ba=(0,N.Nv)(a9),bb=(0,N.O2)(a8);ba?(d?.info?.("HEADROOM",`${ba}${bb?` | ${bb}`:""}`),(0,N.cB)(a9,a8)&&d?.warn?.("HEADROOM",`reported token delta, but outbound JSON shrank <5%; provider may bill near-original payload | ${bb}`)):a5&&ag&&d?.warn?.("HEADROOM",`skipped: ${a8.reason||"compression unavailable"}${a8.endpoint?` (${a8.endpoint})`:""}`);let bc=(0,F.Ay)(ax);bc>0&&d?.debug?.("TOOLCLEAN",`post-compression: stripped ${bc} orphaned tool result(s)`),a5&&aj&&ak&&((0,G.p)(ax,a3,ak),d?.debug?.("CAVEMAN",`${ak} | ${a3}`)),a5&&al&&am&&((0,H.U)(ax,a3,am),d?.debug?.("PONYTAIL",`${am} | ${a3}`));let bd=null;if(a5&&an){let a=await (0,O.H)(ax,{enabled:!0,format:a3,model:aR,minChars:ao,timeoutMs:ap,transform:aq});bd=a.summary;let b=(0,O._)(bd);b?d?.info?.("PXPIPE",b):d?.debug?.("PXPIPE",`skipped: ${bd?.reason||"unknown"}`),a.body&&(ax=a.body);try{ar&&ar({provider:aD,model:aE,...bd})}catch{}}if(ax&&"object"==typeof ax)if(U.has(a3)){let{stream:a,request:b,...c}=ax;if(b&&"object"==typeof b){let{stream:a,...d}=b;ax={...c,request:d}}else ax=c}else ax.stream!==aY&&(ax={...ax,stream:aY});a1&&"claude"===a0&&(0,i._W)(ax);let be=(0,w.getExecutor)(aD);(0,v.uw)(aE,aD,Z,!0),av||(0,v.E5)({model:aE,provider:aD,connectionId:Z,status:"PENDING"}).catch(()=>{});let bf=ax.messages?.length||ax.input?.length||ax.contents?.length||ax.request?.contents?.length||0;d?.debug?.("REQUEST",`${aD.toUpperCase()} | ${aE} | ${bf} msgs`);let bg=(0,k.jd)({onDisconnect:a=>{(0,v.uw)(aE,aD,Z,!1),W&&W(a)},onError:()=>(0,v.uw)(aE,aD,Z,!1),log:d,provider:aD,model:aE});if(aw)if(aw.aborted)try{bg.abort()}catch{}else aw.addEventListener("abort",()=>{try{bg.abort()}catch{}},{once:!0});let bh=(0,p.$6)(c);if(bh.vercelRelayUrl){let a=c?.connectionName||c?.connectionId||"unknown",b=c?.providerSpecificData?.connectionProxyPoolId||"none";d?.info?.("PROXY",`${aD.toUpperCase()} | ${aE} | conn=${a} | pool=${b} | vercel-relay=${bh.vercelRelayUrl}`)}else if(bh.connectionProxyEnabled&&bh.connectionProxyUrl){let a=bh.connectionProxyUrl;try{let b=new URL(bh.connectionProxyUrl),c=b.hostname||"",d=b.port?`:${b.port}`:"",e=b.protocol||"http:";a=`${e}//${c}${d}`}catch{}let b=c?.providerSpecificData?.connectionProxyPoolId||"none",e=c?.connectionName||c?.connectionId||"unknown";d?.info?.("PROXY",`${aD.toUpperCase()} | ${aE} | conn=${e} | pool=${b} | url=${a}`)}if(bh.connectionProxyEnabled&&bh.connectionNoProxy){let a=c?.connectionName||c?.connectionId||"unknown";d?.debug?.("PROXY",`${aD.toUpperCase()} | ${aE} | conn=${a} | no_proxy=${bh.connectionNoProxy}`)}let bi=(0,x.Fo)(a,aY),bj=()=>aw?.aborted||bg.signal?.aborted,bk=async()=>{try{await az?.body?.cancel?.()}catch{}return(0,v.uw)(aE,aD,Z,!1),a_?.close?.(),(0,s.A1)(499,"Request aborted")};try{if(bj())return bk();let a=await be.execute({model:aE,body:structuredClone(ax),stream:aY,credentials:c,signal:bg.signal,log:d,proxyOptions:bh});az=a.response,aA=a.url,aB=a.headers,aC=a.transformedBody,a_.logTargetRequest(aA,aB,aC)}catch(c){let a=bj()||c?.name==="AbortError";if((0,v.uw)(aE,aD,Z,!1,!a),a_?.close?.(),(0,v.ox)((0,x.$R)({provider:aD,model:aE,connectionId:Z,latency:{ttft:0,total:Date.now()-aF},tokens:{prompt_tokens:0,completion_tokens:0},request:bi,providerRequest:ax||null,response:{error:c?.message||(a?"Request aborted":String(c)),status:a?499:502,thinking:null},status:"error",pxpipe:bd||void 0,rtk:a6||void 0})).catch(()=>{}),a)return bg.handleError(new DOMException("Request aborted","AbortError")),(0,s.A1)(499,"Request aborted");let b=(0,s.lR)(c,aD,aE,t.gx.BAD_GATEWAY);return console.log(`${j.lm.red}[ERROR] ${b}${j.lm.reset}`),(0,s.A1)(t.gx.BAD_GATEWAY,b)}if(bj())return bk();let bl=null;if(!be.noAuth&&(az.status===t.gx.UNAUTHORIZED||az.status===t.gx.FORBIDDEN))try{let a=await (0,l.qZ)(async()=>{bg.signal?.throwIfAborted();let a=await (0,n.MF)(aD,c,()=>be.refreshCredentials(c,d,bh));return a||bg.signal?.throwIfAborted(),a?.refreshToken&&a.refreshToken!==c.refreshToken&&(a.accessToken&&(c.accessToken=a.accessToken),c.refreshToken=a.refreshToken),a},3,d,bg.signal);if(a?.accessToken||a?.copilotToken){if(d?.info?.("TOKEN",`${aD.toUpperCase()} | refreshed`),Object.assign(c,a),S)try{await S(a)}catch(a){d?.warn?.("TOKEN",`onCredentialsRefreshed failed: ${a.message}`)}if(bj())return bk();try{let a=await be.execute({model:aE,body:structuredClone(ax),stream:aY,credentials:c,signal:bg.signal,log:d,proxyOptions:bh});try{await az.body?.cancel?.()}catch{}az=a.response,aA=a.url,aB=a.headers??aB,aC=a.transformedBody??aC,a_.logTargetRequest(aA,aB,aC)}catch{d?.warn?.("TOKEN",`${aD.toUpperCase()} | retry after refresh failed`)}}else if((0,l.jT)(a)){let b=a.code||"invalid_grant";if(bl=`OAuth refresh token expired or revoked (${b}): reconnect the ${aD} account in the Switchboard dashboard`,d?.warn?.("TOKEN",`${aD.toUpperCase()} | refresh token revoked, re-auth required (${b})`),S)try{await S({reauthRequired:!0,testStatus:m.RU,lastError:bl,lastErrorAt:new Date().toISOString()})}catch(a){d?.warn?.("TOKEN",`onCredentialsRefreshed failed: ${a.message}`)}}else d?.warn?.("TOKEN",`${aD.toUpperCase()} | refresh failed`)}catch(a){d?.warn?.("TOKEN",`${aD.toUpperCase()} | refresh threw: ${a.message}`)}if(bj())return bk();if(!az.ok){(0,v.uw)(aE,aD,Z,!1,!0),a_?.close?.();let{statusCode:a,message:b,resetsAtMs:c}=await (0,s.zL)(az,be),d=bl||b;(0,v.ox)((0,x.$R)({provider:aD,model:aE,connectionId:Z,latency:{ttft:0,total:Date.now()-aF},tokens:{prompt_tokens:0,completion_tokens:0},request:bi,providerRequest:aC||ax||null,response:{error:d,status:a,thinking:null},status:"error",pxpipe:bd||void 0,rtk:a6||void 0})).catch(()=>{});let e=(0,s.lR)(Error(d),aD,aE,a);return console.log(`${j.lm.red}[ERROR] ${e}${j.lm.reset}`),a_.logError(Error(d),aC||ax),(0,s.A1)(a,e,c)}let bm=async()=>{bg.signal?.throwIfAborted();let a=await be.execute({model:aE,body:structuredClone(ax),stream:aY,credentials:c,signal:bg.signal,log:d,proxyOptions:bh});if(bj()){try{await a.response.body?.cancel?.()}catch{}throw new DOMException("Request aborted","AbortError")}if(!a.response.ok){let{statusCode:b,message:c}=await (0,s.zL)(a.response,be);throw Error(`[${b}] ${c}`)}if(!a.response.body)throw Error("upstream returned no body");return a.response.body},bn="antigravity"===aD||"gemini-cli"===aD||"gemini"===aD||"vertex"===aD;bn&&aY&&az.body?az=new Response((0,B.gH)({body:az.body,reexecute:bm,signal:bg.signal,log:d,onExhausted:(a,{upstreamError:b}={})=>{if(!X)return;let c=be.parseRetryFromErrorMessage?.(b?.message||a);return X((0,s.lR)(Error(a),aD,aE,t.gx.BAD_GATEWAY),c?Date.now()+c:void 0)}}),{status:az.status,headers:az.headers}):aY&&az.body&&(az=new Response((0,C.Z)({body:az.body,reexecute:bm,signal:bg.signal,log:d}),{status:az.status,headers:az.headers}));let bo=`${Date.now()}-${Math.random().toString(36).slice(2,11)}`,bp={provider:aD,model:aE,body:a,stream:aY,requestConfig:bi,translatedBody:ax,finalBody:aC,requestStartTime:aF,connectionId:Z,clientKeyId:_,clientRawRequest:Y,onRequestSuccess:V,requestId:bo,pxpipe:bd||void 0,streamSignal:bg.signal},bq=a=>{av||(0,v.E5)({model:aE,provider:aD,connectionId:Z,...a}).catch(()=>{})},br=()=>(0,v.uw)(aE,aD,Z,!1);if(!aW&&aX){let a=await (0,y.I)({...bp,providerResponse:az,sourceFormat:aG,targetFormat:aP,trackDone:br,appendLog:bq});if(a)return bg.handleComplete(),a}if(!aY){let a=await (0,z.N)({...bp,providerResponse:az,sourceFormat:aG,targetFormat:aP,reqLogger:a_,toolNameMap:ay,trackDone:br,appendLog:bq});return bg.handleComplete(),a}let{onStreamComplete:bs,streamDetailId:bt}=(0,A.$)({...bp});return(0,A.M)({...bp,providerResponse:az,sourceFormat:aG,targetFormat:aP,userAgent:$,reqLogger:a_,toolNameMap:ay,streamController:bg,onStreamComplete:bs,streamDetailId:bt,firstChunkTimeoutMs:bn?void 0:0})}d()}catch(a){d(a)}})},37208:(a,b,c)=>{c.d(b,{p:()=>n});var d=c(17429);let e="Code blocks, file paths, commands, errors, URLs: keep exact. Security warnings, irreversible action confirmations, multi-step ordered sequences: write normal. Resume terse style after.",f='Not: "Sure! I\'d be happy to help you with that. The issue you\'re experiencing is likely caused by..." Yes: "Bug in auth middleware. Token expiry check use `<` not `<=`. Fix:"',g="Auto-Clarity: drop caveman for security warnings, irreversible actions, multi-step sequences where fragment ambiguity risks misread, or when user repeats a question. Resume after the clear part.",h="ACTIVE EVERY RESPONSE. No revert after many turns. No filler drift. Still active if unsure.",i="No invented abbreviations. Standard well-known tech acronyms (DB, API, HTTP, URL, JSON, ID, OS, CPU) OK. Names of code symbols, function names, API names, error strings: keep verbatim.",j="Preserve the user's dominant language. User wrote Vietnamese, reply Vietnamese. User wrote English, reply English. Wenyan/classical-Chinese levels override this language-preservation rule. Code identifiers, error strings, file paths, commands: keep in their original form regardless of language.",k='No self-reference. Do not name or announce the style (no "caveman mode", no "me caveman think", no "compressed mode active"). Just respond.',l='No decorative emoji. No narrating tool calls ("I will now search", "I used X to find Y"). No status phrases ("Sure!", "Of course!", "I\'d be happy to"). No causal arrow shorthand ("A -> B -> fails"). State the thing, the action, the reason. Then next step.',m={lite:["Respond tersely. Keep grammar and full sentences but drop filler, hedging and pleasantries (just/really/basically/sure/of course/I'd be happy to). Pattern: state the thing, the action, the reason. Then next step.",f,e,g,h,i,j,k,l].join(" "),full:["Respond like terse caveman. All technical substance stay exact, only fluff die. Drop: articles (a/an/the), filler (just/really/basically/actually/simply), pleasantries, hedging. Fragments OK. Short synonyms (big not extensive, fix not implement a solution for). Pattern: [thing] [action] [reason]. [next step].",f,e,g,h,i,j,k,l].join(" "),ultra:["Respond ultra-terse. Maximum compression. Telegraphic. Strip conjunctions. One word when one word enough. Pattern: [thing] [action] [reason]. [next step].",f,e,g,h,i,j,k,l].join(" "),"wenyan-lite":["Respond semi-classical. Drop filler/hedging but keep grammar structure, classical register. Use classical Chinese sentence patterns where natural. Keep English for technical terms.",f,e,g,h,i,j,k,l].join(" "),wenyan:["Respond classical Chinese (文言文). Maximum classical terseness. 80-90% character reduction. Classical sentence patterns, verbs precede objects, subjects often omitted, classical particles (之/乃/為/其). Keep English for code, commands, function names, API names, error strings.",f,e,g,h,i,j,k,l].join(" "),"wenyan-ultra":["Respond extreme classical compression (文言文 ultra). Maximum compression, ultra terse. Same classical rules as wenyan-full but even more compressed. One classical particle per clause.",f,e,g,h,i,j,k,l].join(" ")};function n(a,b,c){(0,d.J)(a,b,m[c])}},39232:(a,b,c)=>{c.d(b,{Nv:()=>l,O2:()=>m,SI:()=>k,cB:()=>n});var d=c(37377),e=c(29229),f=c(97579);function g(a){try{return new TextEncoder().encode(JSON.stringify(a)||"").length}catch{return 0}}function h(a){let b=Array.isArray(a?.messages)?a.messages:Array.isArray(a?.input)?a.input:null,c=b?.filter(a=>a?.role==="tool"||a?.role==="function"||a?.tool_calls?.length||a?.content?.some?.(a=>a?.type==="tool_use"||a?.type==="tool_result"))||[];return{bodyBytes:g(a),messageBytes:b?g(b):0,toolSchemaBytes:g(a?.tools||[]),toolHistoryBytes:g(c)}}function i(a,b){a&&!a.reason&&(a.reason=b)}async function j(a,b,c,d,e,f){let g,h=function(a){try{let b=new URL(a);return b.pathname=`${b.pathname.replace(/\/$/,"")}/v1/compress`,b.hash="",b.toString()}catch{let[b,c=""]=String(a).replace(/#.*$/,"").split("?",2),d=`${b.replace(/\/$/,"")}/v1/compress`;return c?`${d}?${c}`:d}}(a);f.endpoint=function(a){try{let b=new URL(a);return b.username="",b.password="",b.search="",b.hash="",b.toString()}catch{return String(a).replace(/\/\/[^/@\s]+@/,"//").replace(/[?#].*$/,"")}}(h);let j={messages:b,model:c};e&&(j.config={compress_user_messages:!0});try{g=await fetch(h,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(j),signal:AbortSignal.timeout(d)})}catch(d){var k;let a,b,c;return i(f,`request failed: ${(k=d,a=k?.cause,b=a?.code||k?.code,c=String(a?.message||k?.message||String(k)).replace(/\/\/[^/@\s]+@/g,"//").replace(/(https?:\/\/[^\s?#]+)[?#][^\s)]*/g,"$1"),b?`${b}: ${c}`:c)}`),null}if(!g.ok)return i(f,`proxy returned HTTP ${g.status}`),null;let l=await g.json();return Array.isArray(l?.messages)?l:(i(f,"proxy response missing messages[]"),null)}async function k(a,{enabled:b,url:c,model:g,format:l,compressUserMessages:m,timeoutMs:n=3e3,diagnostics:o=null}={}){if(!b)return i(o,"disabled"),null;if(!c)return i(o,"missing proxy URL"),null;if(!a)return i(o,"missing request body"),null;try{if(o&&(o.before=h(a)),"claude"===l){let b=Array.isArray(a.system)&&a.system[0]?.text?.startsWith?.("x-anthropic-billing-header:")?a.system[0]:null,f=(0,d.t)(g,a,!1);if(!Array.isArray(f?.messages))return i(o,"Claude request did not translate to messages[]"),null;let k=await j(c,f.messages,g,n,m,o||{});if(!k)return null;let l=(0,e.p)(g,{...f,messages:k.messages},!1);return Array.isArray(l?.messages)&&(a.messages=l.messages),l?.system!==void 0&&(a.system=b?[b,...Array.isArray(l.system)?l.system:[{type:"text",text:String(l.system)}]]:l.system),o&&(o.after=h(a)),k}if("openai-responses"===l){if(Array.isArray(a?.input)&&a.input.some(a=>!(!a||"object"!=typeof a||Array.isArray(a))&&"string"==typeof a.type&&"message"!==a.type))return i(o,"skipped: openai-responses tool/reasoning input is not safe to compress"),null;let b=(0,f.Zj)(g,a,!1);if(!Array.isArray(b?.messages))return null;let d=await j(c,b.messages,g,n,m,o||{});if(!d)return null;let e=(0,f.h_)(g,{...b,input:void 0,messages:d.messages},!1);return Array.isArray(e?.input)&&(a.input=e.input),o&&(o.after=h(a)),d}let b=Array.isArray(a.messages)?"messages":Array.isArray(a.input)?"input":null;if(!b)return i(o,`unsupported ${l||"unknown"} request shape`),null;let k=await j(c,a[b],g,n,m,o||{});if(!k)return null;return a[b]=k.messages,o&&(o.after=h(a)),k}catch(a){return i(o,`unexpected error: ${a?.message||String(a)}`),null}}function l(a){if(!a)return null;let b=a.tokens_before||0,c=a.tokens_after||0,d=a.tokens_saved||0,e=b>0?(d/b*100).toFixed(1):"0";return`reported token delta=${d} before=${b}${c?` after=${c}`:""} (${e}%)`.trim()}function m(a){let b=a?.before,c=a?.after;if(!b||!c)return"";let d=b.bodyBytes>0?((b.bodyBytes-c.bodyBytes)/b.bodyBytes*100).toFixed(1):"0.0";return`body=${b.bodyBytes}B→${c.bodyBytes}B messages=${b.messageBytes}B→${c.messageBytes}B tools=${b.toolSchemaBytes||0}B→${c.toolSchemaBytes||0}B toolHistory=${b.toolHistoryBytes||0}B→${c.toolHistoryBytes||0}B effective=${d}%`}function n(a,b,c=.05){if(!a?.tokens_saved||a.tokens_saved<=0)return!1;let d=b?.before?.bodyBytes||0,e=b?.after?.bodyBytes||0;return!(d<=0)&&!(e<=0)&&e>=d*(1-c)}},49612:(a,b,c)=>{c.d(b,{g:()=>l,p:()=>m});var d=c(19956),e=c(98173),f=c(57642);function g(a){if(!a)return{};if("object"==typeof a)return a;try{return JSON.parse(a)}catch{return{}}}function h(a){return a?.choices?.[0]||{}}function i(a){return h(a).message||{}}function j(a){let b=i(a).tool_calls;return Array.isArray(b)?b:[]}function k(a){let b=a||{},c=b.prompt_tokens||b.input_tokens||0,d=b.completion_tokens||b.output_tokens||0,e={prompt_tokens:c,completion_tokens:d,total_tokens:b.total_tokens||c+d},f=b.prompt_tokens_details||{},g=b.input_tokens_details||{},h=f.cached_tokens||g.cached_tokens||b.cache_read_input_tokens||0,i=f.cache_creation_tokens||g.cache_creation_tokens||b.cache_creation_input_tokens||0;(h>0||i>0)&&(e.prompt_tokens_details={},h>0&&(e.prompt_tokens_details.cached_tokens=h),i>0&&(e.prompt_tokens_details.cache_creation_tokens=i));let j=b.completion_tokens_details||{},k=b.output_tokens_details||{},l=j.reasoning_tokens||k.reasoning_tokens||0;return l>0&&(e.completion_tokens_details={reasoning_tokens:l}),e}function l(a,b){let c,d=Array.isArray(a?.output)?a.output:[],e=d.filter(a=>a?.type==="reasoning").flatMap(a=>Array.isArray(a.summary)?a.summary:[]).map(a=>a?.text||"").join(""),f=d.filter(a=>a?.type==="message"),g=[...f].reverse().find(a=>(Array.isArray(a.content)?a.content:[]).some(a=>"string"==typeof a.text&&a.text.length>0))||f[f.length-1]||null,h=d.filter(a=>a?.type==="refusal").map(a=>a?.refusal||"").join(""),i=(Array.isArray(g?.content)?g.content:[]).map(a=>("output_text"===a.type||"refusal"===a.type||"string"==typeof a.text)&&(a.text||a.refusal)||"").join("")||h,j=d.filter(a=>a?.type==="function_call"||a?.type==="custom_tool_call").map((a,b)=>({id:a.call_id||`call_${a.name||"tool"}_${b}`,type:"function",function:{name:a.name||"",arguments:"string"==typeof a.arguments?a.arguments:JSON.stringify(a.arguments??a.input??{})}})),l=a?.usage||{},m={role:"assistant",content:i||(j.length>0?null:"")};if(e&&(m.reasoning_content=e),j.length>0&&(m.tool_calls=j),j.length>0)c="tool_calls";else if(h&&""===i.split(h).join("").trim())c="content_filter";else{let b=a?.status;c="completed"===b||"done"===b?"stop":"failed"===b?"error":"incomplete"===b?a?.incomplete_details?.reason==="content_filter"?"content_filter":"length":"stop"}return{id:a?.id||`chatcmpl-${Date.now()}`,object:"chat.completion",created:a?.created_at||Math.floor(Date.now()/1e3),model:a?.model||b||"unknown",choices:[{index:0,message:m,finish_reason:c}],usage:k(l)}}function m(a,b){switch(b){case d.h.CLAUDE:return function(a){let b,c,f,k,l,m;if(!a?.choices?.[0])return a;let n=h(a),o=i(a),p=[],q=o.reasoning_content||o.provider_specific_fields?.reasoning_content||"";for(let b of(q&&p.push({type:"thinking",thinking:q}),"string"==typeof o.content&&o.content.length>0&&p.push({type:"text",text:o.content}),j(a))){let a=b.function||{};p.push({type:"tool_use",id:b.id||`toolu_${Date.now()}_${p.length}`,name:a.name||b.name||"",input:g(a.arguments||b.arguments)})}0===p.length&&p.push({type:"text",text:""});let r=a.usage||{};return{id:String(a.id||`msg_${Date.now()}`).replace(/^chatcmpl-/,""),type:"message",role:"assistant",model:a.model||"unknown",content:p,stop_reason:(0,e.Q)(n.finish_reason,d.h.CLAUDE),stop_sequence:null,usage:(c={input_tokens:(b=r||{}).prompt_tokens||b.input_tokens||0,output_tokens:b.completion_tokens||b.output_tokens||0},f=b.prompt_tokens_details||{},k=b.input_tokens_details||{},l=f.cached_tokens||k.cached_tokens||b.cache_read_input_tokens||0,m=f.cache_creation_tokens||k.cache_creation_tokens||b.cache_creation_input_tokens||0,l>0&&(c.cache_read_input_tokens=l),m>0&&(c.cache_creation_input_tokens=m),c)}}(a);case d.h.GEMINI:case d.h.GEMINI_CLI:case d.h.ANTIGRAVITY:case d.h.VERTEX:return function(a){if(!a?.choices?.[0])return a;let b=i(a),c=k(a.usage||{}),d=[],e=b.reasoning_content||b.provider_specific_fields?.reasoning_content||"";for(let c of(e&&d.push({text:e,thought:!0}),"string"==typeof b.content&&b.content.length>0&&d.push({text:b.content}),j(a))){let a=c.function||{};d.push({functionCall:{name:a.name||c.name||"",args:g(a.arguments||c.arguments)}})}return 0===d.length&&d.push({text:""}),{response:{candidates:[{content:{role:"model",parts:d},finishReason:function(a){switch(a){case f.bC.LENGTH:return f.a_.MAX_TOKENS;case f.bC.CONTENT_FILTER:return f.a_.SAFETY;case f.bC.ERROR:return f.a_.MALFORMED_FUNCTION_CALL;default:return f.a_.STOP}}(h(a).finish_reason),index:0}],usageMetadata:{promptTokenCount:c.prompt_tokens,candidatesTokenCount:c.completion_tokens,totalTokenCount:c.total_tokens},modelVersion:a.model||"unknown",responseId:a.id||`resp_${Date.now()}`}}}(a);case d.h.OLLAMA:return function(a){if(!a?.choices?.[0])return a;let b=h(a),c=i(a),d={role:"assistant",content:"string"==typeof c.content?c.content:""};c.reasoning_content&&(d.thinking=c.reasoning_content);let e=j(a).map(a=>{let b=a.function||{};return{id:a.id,function:{name:b.name||a.name||"",arguments:g(b.arguments||a.arguments)}}});e.length>0&&(d.tool_calls=e);let f=a.usage||{};return{model:a.model||"unknown",created_at:a.created?new Date(1e3*a.created).toISOString():new Date().toISOString(),message:d,done:!0,done_reason:"tool_calls"===b.finish_reason?"stop":b.finish_reason||"stop",prompt_eval_count:f.prompt_tokens||f.input_tokens||0,eval_count:f.completion_tokens||f.output_tokens||0}}(a);case d.h.OPENAI_RESPONSES:case d.h.OPENAI_RESPONSE:return function(a){let b;if(!a?.choices?.[0])return a;let c=i(a),d=a.usage||{},e=[],f=0,g=c.reasoning_content||c.provider_specific_fields?.reasoning_content||"";g&&(e.push({type:"reasoning",id:`rs_${a.id||Date.now()}_${f}`,summary:[{type:"summary_text",text:g}]}),f++);let l="string"==typeof c.content?c.content:"";l&&(e.push({type:"message",id:`msg_${a.id||Date.now()}_${f}`,role:"assistant",content:[{type:"output_text",text:l,annotations:[],logprobs:[]}]}),f++);let m=j(a);if(m.length>0)for(let a of m){let b=a.function||{},c=a.id||`call_${b.name||"tool"}_${f}`;e.push({type:"function_call",id:`fc_${c}`,call_id:c,name:b.name||a.name||"",arguments:"string"==typeof b.arguments?b.arguments:JSON.stringify(b.arguments||{})}),f++}else l||g||e.push({type:"message",id:`msg_${a.id||Date.now()}_${f}`,role:"assistant",content:[{type:"output_text",text:"",annotations:[],logprobs:[]}]});let n=h(a).finish_reason||"stop",o="completed";"length"===n?(o="incomplete",b={reason:"max_output_tokens"}):"content_filter"===n?(o="incomplete",b={reason:"content_filter"}):"error"===n&&(o="failed");let p=k(d);return{id:a.id?`resp_${a.id}`:`resp_${Date.now()}`,object:"response",created_at:a.created||Math.floor(Date.now()/1e3),status:o,...b?{incomplete_details:b}:{},output:e,usage:{input_tokens:p.prompt_tokens,output_tokens:p.completion_tokens,total_tokens:p.total_tokens}}}(a);case d.h.KIRO:case d.h.CURSOR:case d.h.COMMANDCODE:default:return a}}},54070:(a,b,c)=>{c.d(b,{DL:()=>g,VS:()=>h,_s:()=>i});let d=global.__vaultStats??={entries:0,hits:0,bytesSaved:0};function e(a){try{let b=Number(a);if(!Number.isFinite(b)||b<0)return 0;return Math.trunc(b)}catch{return 0}}function f(a,b){try{let c=e(d[a])+e(b);d[a]=Number.isSafeInteger(c)?c:Number.MAX_SAFE_INTEGER}catch{}}function g(a,b){try{f("entries",a),f("bytesSaved",b)}catch{}}function h(a=1){try{f("hits",a)}catch{}}function i(){try{return{entries:e(d.entries),hits:e(d.hits),bytesSaved:e(d.bytesSaved)}}catch{return{entries:0,hits:0,bytesSaved:0}}}},61229:(a,b,c)=>{c.d(b,{$:()=>p,M:()=>o});var d=c(19956),e=c(48664),f=c(6755),g=c(15575),h=c(4630),i=c(60290),j=c(48330),k=c(29461),l=c(12407),m=c(4905);let n={[d.h.OPENAI_RESPONSES]:d.h.OPENAI_RESPONSES,[d.h.CLAUDE]:d.h.CLAUDE,[d.h.ANTIGRAVITY]:d.h.ANTIGRAVITY,[d.h.GEMINI]:d.h.ANTIGRAVITY,[d.h.GEMINI_CLI]:d.h.ANTIGRAVITY};async function o({providerResponse:a,provider:b,model:c,sourceFormat:p,targetFormat:q,userAgent:r,body:s,stream:t,requestConfig:u,translatedBody:v,finalBody:w,requestStartTime:x,connectionId:y,clientKeyId:z,requestId:A,clientRawRequest:B,onRequestSuccess:C,reqLogger:D,toolNameMap:E,streamController:F,onStreamComplete:G,streamDetailId:H,pxpipe:I,firstChunkTimeoutMs:J=i.Z1}){let K=(a.headers.get("content-type")||"").toLowerCase();if((K.includes("application/x-ndjson")||K.includes("application/ndjson"))&&a.body){let b,c,d,e;a=new Response(a.body.pipeThrough((b=new TextDecoder,c=new TextEncoder,d="",new TransformStream({transform(a,e){let f=(d+=b.decode(a,{stream:!0})).split("\n");for(let a of(d=f.pop()||"",f)){let b=a.trim();if(b){if(b.startsWith("data:")||b.startsWith("event:")){e.enqueue(c.encode(a+"\n"));continue}try{JSON.parse(b),e.enqueue(c.encode(`data: ${b}
|
|
67
67
|
|
|
68
68
|
`))}catch{}}}},flush(a){let b=d.trim();if(b)try{JSON.parse(b),a.enqueue(c.encode(`data: ${b}
|
|
69
69
|
|
|
70
|
-
`))}catch{}}}))),{status:a.status,statusText:a.statusText,headers:((e=new Headers(a.headers)).set("content-type","text/event-stream"),e)})}else if(K&&!K.includes("text/event-stream")&&!K.includes("application/json")){let d=await a.text().catch(()=>""),e=d.match(/<title>([^<]+)<\/title>/i),f=(e?.[1]||"").replace(/<[^>]*>/g,"").replace(/[\r\n]+/g," ").trim().slice(0,160)||(d.length<200?d.replace(/<[^>]*>/g,"").trim().slice(0,160):`Upstream returned non-SSE response (${K})`),g=a.status>=400?a.status:502;return console.warn(`[STREAM] ${b} | ${c} | blocked pipe: ${f} [${g}]`),F?.handleError?.(Error(`upstream non-SSE: ${g}`)),{success:!1,response:new Response(JSON.stringify({error:{message:`[${g}]: ${f}`}}),{status:g,headers:{"Content-Type":"application/json"}})}}C&&Promise.resolve().then(C).catch(a=>{console.error("[ChatCore] onRequestSuccess failed:",a?.message||a)});let L=function({provider:a,sourceFormat:b,targetFormat:c,userAgent:g,reqLogger:i,toolNameMap:j,model:k,connectionId:l,body:m,onStreamComplete:o,clientKeyId:p,terminateOnResponsesTerminal:q}){let r=g?.toLowerCase().includes("droid")||g?.toLowerCase().includes("codex-cli");if(h.xq[a]?.format===d.h.OPENAI_RESPONSES&&c===d.h.OPENAI_RESPONSES&&!r){let c=n[b]||d.h.OPENAI;return(0,f.i5)(d.h.OPENAI_RESPONSES,c,a,i,j,k,l,m,o,p,q)}return(0,e.nZ)(c,b)?(0,f.i5)(c,b,a,i,j,k,l,m,o,p):(0,f.l2)(a,i,j,k,l,m,o,p)}({provider:b,sourceFormat:p,targetFormat:q,userAgent:r,reqLogger:D,toolNameMap:E,model:c,connectionId:y,body:s,onStreamComplete:G,clientKeyId:z,terminateOnResponsesTerminal:"responses-websocket"!==a.headers.get("x-switchboard-transport")}),M=p===d.h.OPENAI_RESPONSES&&q===d.h.OPENAI_RESPONSES?j.Hr:q===d.h.OPENAI?j.ah:null,N=h.xq[b]?.stallTimeoutMs||i.xM,O=(0,g.Jb)(a,L,F,M,N,J);return(0,l.ox)((0,k.$R)({provider:b,model:c,connectionId:y,latency:{ttft:0,total:Date.now()-x},tokens:{prompt_tokens:0,completion_tokens:0},request:u??(0,k.Fo)(s,t),providerRequest:w||v||null,providerResponse:"[Streaming - raw response not captured]",response:{content:"[Streaming in progress...]",thinking:null,type:"streaming"},status:"success",pxpipe:I},{id:H})).catch(a=>{console.error("[RequestDetail] Failed to save streaming request:",a.message)}),{success:!0,response:new Response(O,{headers:m.RK})}}function p({provider:a,model:b,connectionId:c,clientKeyId:d,requestStartTime:e,body:f,stream:g,requestConfig:h,finalBody:i,translatedBody:j,requestId:m,clientRawRequest:n,pxpipe:o}){let q=`${Date.now()}-${Math.random().toString(36).slice(2,11)}`;return{onStreamComplete:async(p,r,s)=>{let t={ttft:s?s-e:Date.now()-e,total:Date.now()-e},u=p?.content||"[Empty streaming response]",v=p?.thinking||null;(0,l.ox)((0,k.$R)({provider:a,model:b,connectionId:c,latency:t,tokens:r||{prompt_tokens:0,completion_tokens:0},request:h??(0,k.Fo)(f,g),providerRequest:i||j||null,providerResponse:u,response:{content:u,thinking:v,type:"streaming"},status:"success",pxpipe:o},{id:q})).catch(a=>{console.error("[RequestDetail] Failed to update streaming content:",a.message)}),await (0,k.YZ)({provider:a,model:b,tokens:r,connectionId:c,clientKeyId:d,requestId:m,endpoint:n?.endpoint,label:"STREAM USAGE"})},streamDetailId:q}}},66573:(a,b,c)=>{c.d(b,{Hh:()=>g,ST:()=>h,Wg:()=>f});let d=new TextEncoder;function e(a){return Math.max(0,Math.floor(Number(a)||0))}function f(a,b){var c;if("string"!=typeof a)return"";let d=e(b);return a.length<=d?a:0===d?"":a.slice(0,(c=a.charCodeAt(d-1))>=55296&&c<=56319?d-1:d)}function g(a,b){var c;if("string"!=typeof a)return"";let d=e(b);if(a.length<=d)return a;if(0===d)return"";let f=a.length-d;return a.slice((c=a.charCodeAt(f))>=56320&&c<=57343?f+1:f)}function h(a,b){if("string"!=typeof a)return"";let c=e(b);if(0===c)return"";if(d.encode(a).length<=c)return a;let g=0,h=a.length;for(;g<h;){let b=g+Math.ceil((h-g)/2);d.encode(a.slice(0,b)).length<=c?g=b:h=b-1}return f(a,g)}},70718:(a,b,c)=>{c.d(b,{q7:()=>p});var d=c(28730);let e="u">typeof process&&process.versions?.node&&!0,f="u">typeof process&&process.env?.ENABLE_REQUEST_LOGS==="true",g=null,h=null,i=null;async function j(){if(e&&f&&!g)try{let a=await Promise.resolve().then(c.t.bind(c,29021,19)),b=await Promise.resolve().then(c.t.bind(c,33873,19));g=a.default||a,i=(h=b.default||b).join("u">typeof process&&process.cwd?process.cwd():".","logs")}catch{}}async function k(a,b,c){if(await j(),!g||!i)return null;try{g.existsSync(i)||g.mkdirSync(i,{recursive:!0});let d=function(a=new Date){let b=a=>String(a).padStart(2,"0"),c=a.getFullYear(),d=b(a.getMonth()+1),e=b(a.getDate()),f=b(a.getHours()),g=b(a.getMinutes()),h=b(a.getSeconds()),i=String(a.getMilliseconds()).padStart(3,"0");return`${c}${d}${e}_${f}${g}${h}_${i}`}(),e=(c||"unknown").replace(/[/:]/g,"-"),f=`${a}_${b}_${e}_${d}`,j=h.join(i,f);return g.mkdirSync(j,{recursive:!0}),j}catch(a){return console.log("[LOG] Failed to create log session:",a.message),null}}let l=new Set(["prompt_cache_key","session_id","sessionid","conversation_id","conversationid","user_id","userid","request_id","requestid","x_session_id","x_amp_thread_id","x_client_request_id"]);function m(a,b,c){if(g&&a)try{let d=h.join(a,b);g.writeFileSync(d,JSON.stringify(function a(b){if(Array.isArray(b))return b.map(a);if(!b||"object"!=typeof b)return b;let c={};for(let[d,e]of Object.entries(b)){let b=d.toLowerCase().replaceAll("-","_");c[d]=l.has(b)?"[redacted]":a(e)}return c}(c),null,2))}catch(a){console.log(`[LOG] Failed to write ${b}:`,a.message)}}let n=["api-key","x-key"];function o(a){if(!a)return{};let b={...a};for(let a of Object.keys(b)){let c=a.toLowerCase();if(function(a){return d.fC.some(b=>a.includes(b))||n.some(b=>a.includes(b))}(c)){let e=b[a];d.qk.some(a=>c.includes(a))||c.includes("api-key")||c.includes("x-key")?b[a]="[redacted]":"string"==typeof e&&e.length>12?b[a]=e.slice(0,8)+"..."+e.slice(-4):null!=e&&(b[a]="[redacted]")}}return b}async function p(a,b,c){if(!f)return{sessionPath:null,logClientRawRequest(){},logRawRequest(){},logOpenAIRequest(){},logTargetRequest(){},logProviderResponse(){},appendProviderChunk(){},appendOpenAIChunk(){},logConvertedResponse(){},appendConvertedChunk(){},logError(){},close(){}};let d=await k(a,b,c),e={},i=!1;function j(a,b,c){if(g&&d&&!i)try{let f=e[a];f||(f=e[a]=g.createWriteStream(h.join(d,b),{flags:"a"})).on("error",()=>{}),f.write(c)}catch{}}return{get sessionPath(){return d},logClientRawRequest(a,b,c={}){m(d,"1_req_client.json",{timestamp:new Date().toISOString(),endpoint:a,headers:o(c),body:b})},logRawRequest(a,b={}){m(d,"2_req_source.json",{timestamp:new Date().toISOString(),headers:o(b),body:a})},logOpenAIRequest(a){m(d,"3_req_openai.json",{timestamp:new Date().toISOString(),body:a})},logTargetRequest(a,b,c){m(d,"4_req_target.json",{timestamp:new Date().toISOString(),url:"string"==typeof a&&a?a.replace(/([?&])(key|api_key|api-key)=[^&]*/gi,"$1$2=[redacted]"):a,headers:o(b),body:c})},logProviderResponse(a,b,c,e){m(d,"5_res_provider.json",{timestamp:new Date().toISOString(),status:a,statusText:b,headers:o(c&&"function"==typeof c.entries?Object.fromEntries(c.entries()):c),body:e})},appendProviderChunk(a){j("provider","5_res_provider.txt",a)},appendOpenAIChunk(a){j("openai","6_res_openai.txt",a)},logConvertedResponse(a){m(d,"7_res_client.json",{timestamp:new Date().toISOString(),body:a})},appendConvertedChunk(a){j("converted","7_res_client.txt",a)},logError(a,b=null){m(d,"6_error.json",{timestamp:new Date().toISOString(),error:a?.message||String(a),requestBody:b})},close:()=>{let a;return i=!0,a=Object.values(e),e={},Promise.all(a.map(a=>new Promise(b=>{try{a.end(b)}catch{b()}})))}}}},78255:(a,b,c)=>{c.d(b,{I:()=>p});var d=c(94176),e=c(89865),f=c(60290),g=c(19956),h=c(4630),i=c(49612),j=c(83611),k=c(29461),l=c(12407);let m=a=>h.xq[a]?.format===g.h.OPENAI_RESPONSES;function n(a){a&&Promise.resolve().then(a).catch(a=>{console.error("[ChatCore] onRequestSuccess failed:",a?.message||a)})}function o(a){if(!a?.content||!Array.isArray(a.content))return"";let b=a.content.find(a=>"output_text"===a.type);if("string"==typeof b?.text)return b.text;let c=a.content.find(a=>"string"==typeof a.text);return"string"==typeof c?.text?c.text:""}async function p({providerResponse:a,sourceFormat:b,provider:c,model:h,body:q,stream:r,requestConfig:s,translatedBody:t,finalBody:u,requestStartTime:v,connectionId:w,clientKeyId:x,requestId:y,clientRawRequest:z,onRequestSuccess:A,trackDone:B,appendLog:C,streamSignal:D}){let E=a.headers.get("content-type")||"";if(!(E.includes("text/event-stream")||""===E&&m(c)))return null;B();let F={provider:c,model:h,connectionId:w,request:s??(0,k.Fo)(q,r),providerRequest:u||t||null};if(m(c))try{let e=await (0,d.convertResponsesStreamToJson)(a.body,{signal:D});n(A);let f=e.usage||{};C({tokens:f,status:"200 OK"}),await (0,k.YZ)({provider:c,model:h,tokens:f,connectionId:w,clientKeyId:x,requestId:y,endpoint:z?.endpoint});let{msgItem:j,textContent:m}=function(a){if(!Array.isArray(a))return{msgItem:null,textContent:null};let b=a.filter(a=>a?.type==="message");if(0===b.length)return{msgItem:null,textContent:null};for(let a=b.length-1;a>=0;a--){let c=o(b[a]);if(c.length>0)return{msgItem:b[a],textContent:c}}let c=b[b.length-1];return{msgItem:c,textContent:o(c)}}(e.output),p=Date.now()-v;if((0,l.ox)((0,k.$R)({...F,latency:{ttft:p,total:p},tokens:{prompt_tokens:f.input_tokens||0,completion_tokens:f.output_tokens||0},response:{content:m,thinking:null,finish_reason:e.status||"unknown"},status:"success"},{endpoint:z?.endpoint||null})).catch(()=>{}),b===g.h.OPENAI_RESPONSES)return{success:!0,response:new Response(JSON.stringify(e),{headers:{"Content-Type":"application/json"}})};let q=f.input_tokens||0,r=f.output_tokens||0,s=(e.output||[]).filter(a=>"function_call"===a.type).map((a,b)=>({id:a.call_id||`call_${a.name}_${Date.now()}_${b}`,type:"function",function:{name:a.name,arguments:"string"==typeof a.arguments?a.arguments:JSON.stringify(a.arguments||{})}})),t=s.length>0,u="completed"===e.status||"done"===e.status,B=t?"tool_calls":u?"stop":"incomplete"===e.status?"length":e.status||"stop",E={id:e.id||`chatcmpl-${Date.now()}`,object:"chat.completion",created:e.created_at||Math.floor(Date.now()/1e3),model:e.model||h,choices:[{index:0,message:{role:"assistant",content:m||(t?null:""),...t?{tool_calls:s}:{}},finish_reason:B}],usage:{prompt_tokens:q,completion_tokens:r,total_tokens:q+r}},G=(0,i.p)(E,b);return{success:!0,response:new Response(JSON.stringify(G),{headers:{"Content-Type":"application/json"}})}}catch(a){return console.error("[ChatCore] Responses API SSE→JSON failed:",a),(0,e.A1)(f.gx.BAD_GATEWAY,"Failed to convert streaming response to JSON")}try{let g=await (0,d.iJ)(a.body,h,{signal:D});if(!g)return(0,e.A1)(f.gx.BAD_GATEWAY,"Invalid SSE response for non-streaming request");n(A);let m=g.usage||{};C({tokens:m,status:"200 OK"}),await (0,k.YZ)({provider:c,model:h,tokens:m,connectionId:w,clientKeyId:x,requestId:y,endpoint:z?.endpoint});let o=Date.now()-v;(0,l.ox)((0,k.$R)({...F,latency:{ttft:o,total:o},tokens:m,response:{content:g.choices?.[0]?.message?.content||null,thinking:g.choices?.[0]?.message?.reasoning_content||null,finish_reason:g.choices?.[0]?.finish_reason||"unknown"},status:"success"},{endpoint:z?.endpoint||null})).catch(()=>{});let p=!1;if(g?.choices)for(let a of g.choices){let b=a?.message;if(b?.content&&"string"==typeof b.content){let{content:a,reasoning:c}=(0,j.j)(b.content);c&&(b.reasoning_content=c,b.content=a,p=!0)}}if(!p&&g?.choices)for(let a of g.choices)a?.message?.reasoning_content&&a.message.content&&delete a.message.reasoning_content;let q=(0,i.p)(g,b);return{success:!0,response:new Response(JSON.stringify(q),{headers:{"Content-Type":"application/json"}})}}catch(a){return console.error("[ChatCore] Chat Completions SSE→JSON failed:",a),(0,e.A1)(f.gx.BAD_GATEWAY,"Failed to convert streaming response to JSON")}}},83611:(a,b,c)=>{c.d(b,{H:()=>h,j:()=>g});let d="<think>",e="</think>",f=RegExp(`${d}([\\s\\S]*?)${e}\\s*`);function g(a){if("string"!=typeof a)return{content:a,reasoning:null};let b=a.match(f);return b?{content:a.replace(RegExp(`${d}[\\s\\S]*?${e}\\s*`,"g"),"").trimStart(),reasoning:b[1].trim()}:{content:a,reasoning:null}}function h(){let a="",b=!1;return function(c){let f=null;if("string"!=typeof c)return{content:c,reasoning:f};if(b){let d=c.indexOf(e);d>=0?(a+=c.slice(0,d),f=a.trim(),a="",b=!1,c=c.slice(d+e.length).trimStart()):(a+=c,c="")}if(!b){let g=c.indexOf(d);if(g>=0){let h=c.slice(g+d.length),i=h.indexOf(e);i>=0?(f=(f?f+"\n":"")+h.slice(0,i).trim(),c=c.slice(0,g)+h.slice(i+e.length).trimStart()):(b=!0,a=h,c=c.slice(0,g))}}return{content:c,reasoning:f}}}},90197:(a,b,c)=>{c.d(b,{H:()=>h,_:()=>i});var d=c(19956);function e(a){try{return JSON.stringify(a)?.length||0}catch{return 0}}function f(a){return Math.round(a/4)}function g(a,b={}){return{body:null,summary:{applied:!1,reason:a,...b}}}async function h(a,{enabled:b,format:c,model:i,minChars:j,timeoutMs:k,transform:l}={}){if(!b)return g("disabled");if("function"!=typeof l)return g("not_installed");if(!a)return g("missing_body");if(c!==d.h.CLAUDE)return g("unsupported_format",{detail:c});let m=Date.now(),n=e(a),o=Number(j)>0?Number(j):25e3;if(n<o)return g("below_threshold",{originalChars:n,threshold:o});try{let b=new TextEncoder().encode(JSON.stringify(a)),c=Number(k)>0?Number(k):15e3,d=await Promise.race([l({body:b,model:i,options:{minCompressChars:o}}),new Promise(a=>setTimeout(()=>a(null),c))]);if(!d)return g("timeout",{originalChars:n,durationMs:Date.now()-m});if(!d.applied)return g(d.reason||"passthrough",{detail:d.detail,originalChars:n,durationMs:Date.now()-m});let h=JSON.parse(new TextDecoder().decode(d.body)),j=e(h),p=d.info||{},q=p.compressedChars||0,r=p.imageTokens||(p.imagePixels?Math.round(p.imagePixels/750):4761*(p.imageCount||0)),s={applied:!0,reason:"applied",originalChars:n,compressedBodyChars:j,imagedChars:q,imageCount:p.imageCount||0,imageBytes:p.imageBytes||0,tokensBeforeEst:p.baselineTokens||f(n),tokensAfterEst:f(Math.max(0,n-q))+r,durationMs:Date.now()-m,cacheOwnsControl:d.cache?.ownsCacheControl===!0};return s.tokensSavedEst=Math.max(0,s.tokensBeforeEst-s.tokensAfterEst),s.savedPct=s.tokensBeforeEst>0?+(s.tokensSavedEst/s.tokensBeforeEst*100).toFixed(2):0,{body:h,summary:s}}catch(a){return g("transform_error",{detail:a?.message||String(a),originalChars:n,durationMs:Date.now()-m})}}function i(a){return a&&a.applied?`imaged ${a.imagedChars}ch → ${a.imageCount} image(s) | est ${a.tokensBeforeEst}→${a.tokensAfterEst} tokens (-${a.savedPct}%) | ${a.durationMs}ms`:null}},94176:(a,b,c)=>{function d(a,b){let c;if(!a.trim())return;let d=a.match(/^event:\s*(.+)$/m),f=a.match(/^data:\s*(.+)$/m);if(!d||!f)return;let g=d[1].trim(),h=f[1].trim();if("[DONE]"!==h){try{c=JSON.parse(h)}catch{return}if("response.created"===g)b.responseId=c.response?.id||b.responseId,b.created=c.response?.created_at||b.created;else if("response.output_item.done"===g)b.items.set(c.output_index??0,c.item);else if("response.completed"===g||"response.done"===g)b.status="completed",e(b,c);else if("response.incomplete"===g)b.status="incomplete",e(b,c);else if("response.failed"===g)b.status="failed";else if("response.output_text.delta"===g){let a=c.output_index??0;"string"==typeof c.delta&&c.delta.length>0&&b.deltaText.set(a,(b.deltaText.get(a)||"")+c.delta)}else if("response.function_call_arguments.delta"===g){let a=c.output_index??0;"string"==typeof c.delta&&c.delta.length>0&&b.deltaArgs.set(a,(b.deltaArgs.get(a)||"")+c.delta)}}}function e(a,b){b.response?.usage&&(a.usage.input_tokens=b.response.usage.input_tokens||0,a.usage.output_tokens=b.response.usage.output_tokens||0,a.usage.total_tokens=b.response.usage.total_tokens||0)}c.d(b,{convertResponsesStreamToJson:()=>p,hB:()=>g,iJ:()=>o,tQ:()=>j});let f={input_tokens:0,output_tokens:0,total_tokens:0};function g(a){if(Number.isFinite(a)&&a>0)return a;let b=Number.parseInt(globalThis.process?.env?.STREAM_TO_JSON_MAX_BYTES||"",10);return Number.isFinite(b)&&b>0?b:0x1000000}class h extends Error{constructor(a){super(`SSE stream exceeded STREAM_TO_JSON_MAX_BYTES (${a} bytes)`),this.name="StreamToJsonMaxBytesError"}}function i(a){return a?"number"==typeof a.byteLength?a.byteLength:"number"==typeof a.length?a.length:0:0}function j(a,b){if(a>b)throw new h(b)}function k(){let a=Error("The operation was aborted.");return a.name="AbortError",a}function l(a,b){let c;if(!b)return a.read();if(b.aborted)return Promise.reject(k());let d=new Promise((d,e)=>{c=()=>{e(k());try{a.cancel(k()).catch(()=>{})}catch{}},b.addEventListener("abort",c,{once:!0})});return Promise.race([a.read(),d]).finally(()=>{b.removeEventListener?.("abort",c)})}function m(){return{contentParts:[],reasoningParts:[],toolCallMap:new Map,finishReason:"stop"}}function n(a,b){let c=a.trim();if(!c.startsWith("data:"))return;let d=c.slice(5).trim();if(d&&"[DONE]"!==d)try{!function(a,b){if(b.seenChunk||(b.first=a||{},b.seenChunk=!0),a?.usage&&"object"==typeof a.usage&&(b.usage=a.usage),Array.isArray(a?.choices))for(let c of a.choices){let a=function(a,b){let c=a.choiceMap.get(b);return c||(c=m(),a.choiceMap.set(b,c)),c}(b,c?.index??0),d=c?.delta||{};if("string"==typeof d.content&&d.content.length>0&&a.contentParts.push(d.content),"string"==typeof d.reasoning_content&&d.reasoning_content.length>0&&a.reasoningParts.push(d.reasoning_content),c?.finish_reason&&(a.finishReason=c.finish_reason),Array.isArray(d.tool_calls))for(let b of d.tool_calls){let c=b.index??0;a.toolCallMap.has(c)||a.toolCallMap.set(c,{id:b.id||"",type:"function",function:{name:"",arguments:""}});let d=a.toolCallMap.get(c);b.id&&(d.id=b.id),b.function?.name&&(d.function.name?d.function.name!==b.function.name&&(d.function.name+=b.function.name):d.function.name=b.function.name),b.function?.arguments&&(d.function.arguments+=b.function.arguments)}}}(JSON.parse(d),b)}catch{}}async function o(a,b,{maxBytes:c,signal:d}={}){if(!a||"function"!=typeof a.getReader)return null;let e=a.getReader(),f=new TextDecoder,h=g(c),k={fallbackModel:b,seenChunk:!1,first:null,choiceMap:new Map,usage:null},p="",q=0;try{for(;;){let{done:a,value:b}=await l(e,d);if(a)break;q+=i(b),j(q,h);let c=(p+=f.decode(b,{stream:!0})).split("\n");for(let a of(p=c.pop()||"",c))n(a,k)}let a=f.decode();a&&(p+=a),p&&n(p,k)}catch(a){try{await e.cancel(a)}catch{}throw a}finally{e.releaseLock()}if(!k.seenChunk)return null;let r=k.first||{};0===k.choiceMap.size&&k.choiceMap.set(0,m());let s=[...k.choiceMap.entries()].sort((a,b)=>a[0]-b[0]).map(([a,b])=>{let c={role:"assistant",content:b.contentParts.join("")||(b.toolCallMap.size>0?null:"")};return b.reasoningParts.length>0&&(c.reasoning_content=b.reasoningParts.join("")),b.toolCallMap.size>0&&(c.tool_calls=[...b.toolCallMap.entries()].sort((a,b)=>a[0]-b[0]).map(([,a])=>({...a,function:{name:a.function.name,arguments:a.function.arguments||"{}"}}))),{index:a,message:c,finish_reason:b.finishReason}}),t={id:r.id||`chatcmpl-${Date.now()}`,object:"chat.completion",created:r.created||Math.floor(Date.now()/1e3),model:r.model||k.fallbackModel||"unknown",choices:s};return k.usage&&(t.usage=k.usage),t}async function p(a,{maxBytes:b,signal:c}={}){if(!a||"function"!=typeof a.getReader)return{id:`resp_${Date.now()}`,object:"response",created_at:Math.floor(Date.now()/1e3),status:"failed",output:[],usage:{...f}};let e=a.getReader(),h=new TextDecoder,k=g(b),m="",n=0,o={responseId:"",created:Math.floor(Date.now()/1e3),status:"in_progress",usage:{...f},items:new Map,deltaText:new Map,deltaArgs:new Map};try{for(;;){let{done:a,value:b}=await l(e,c);if(a)break;n+=i(b),j(n,k);let f=(m+=h.decode(b,{stream:!0})).split(/\r?\n\r?\n/);for(let a of(m=f.pop()||"",f))d(a,o)}let a=h.decode();a&&(m+=a),m.trim()&&d(m,o)}catch(a){try{await e.cancel(a)}catch{}throw a}finally{e.releaseLock()}for(let[a,b]of o.deltaText)!o.items.has(a)&&b&&o.items.set(a,{id:`msg_${o.responseId||"synth"}_${a}`,type:"message",role:"assistant",content:[{type:"output_text",text:b}]});for(let[a,b]of o.deltaArgs)!o.items.has(a)&&b&&o.items.set(a,{id:`fc_synth_${a}`,type:"function_call",call_id:"",name:"",arguments:b});let q=[...o.items.entries()].sort((a,b)=>a[0]-b[0]).map(([,a])=>a);return{id:o.responseId||`resp_${Date.now()}_${Math.random().toString(36).slice(2,8)}`,object:"response",created_at:o.created,status:o.status||"completed",output:q,usage:o.usage}}},94501:(a,b,c)=>{c.d(b,{X:()=>m});var d=c(19956);let e={vision:"[image omitted: model has no vision support]",audioInput:"[audio omitted: model has no audio support]",pdf:"[file omitted: model has no document support]"},f={vision:"[Previous image omitted from context.]",audioInput:"[Previous audio omitted from context.]",pdf:"[Previous file omitted from context.]"},g=(a,b)=>(b?e:f)[a];function h(a){let b=a?.type;return"image_url"===b||"image"===b?"vision":"input_audio"===b||"audio_url"===b?"audioInput":"file"===b?"pdf":null}function i(a){let b=a?.type;return"image"===b?"vision":"document"===b?"pdf":null}function j(a,b,c,d,e){let f=[];for(let e of a){let a=b(e);if(a&&!1===c[a]){d.add(a);continue}f.push(e)}for(let a of d)f.push({type:"text",text:g(a,e)});return f}function k(a,b){if(!Array.isArray(a.messages))return;let c=a.messages.length-1;a.messages.forEach((a,d)=>{if(!Array.isArray(a.content))return;let e=new Set;a.content=j(a.content,h,b,e,d===c)})}function l(a,b){if(!Array.isArray(a))return;let c=a.length-1;a.forEach((a,d)=>{if(!Array.isArray(a.parts))return;let e=new Set;for(let f of(a.parts=a.parts.filter(a=>{var c;let d="string"!=typeof(c=a?.inlineData?.mimeType||a?.fileData?.mimeType)?null:c.startsWith("image/")?"vision":c.startsWith("audio/")?"audioInput":"application/pdf"===c?"pdf":null;return!d||!1!==b[d]||(e.add(d),!1)}),e))a.parts.push({text:g(f,d===c)})})}function m(a,b,c){if(!a||!c||!1!==c.vision&&!1!==c.audioInput&&!1!==c.pdf)return!1;switch(b){case d.h.OPENAI:case d.h.OLLAMA:case d.h.KIRO:case d.h.CURSOR:case d.h.COMMANDCODE:k(a,c);break;case d.h.CLAUDE:!function(a,b){if(!Array.isArray(a.messages))return;let c=a.messages.length-1;a.messages.forEach((a,d)=>{if(!Array.isArray(a.content))return;let e=new Set;a.content=j(a.content,i,b,e,d===c)})}(a,c);break;case d.h.OPENAI_RESPONSES:case d.h.OPENAI_RESPONSE:case d.h.CODEX:!function(a,b){if(!Array.isArray(a.input))return;let c=a.input.length-1;a.input.forEach((a,d)=>{if(!Array.isArray(a.content))return;let e=new Set;for(let f of(a.content=a.content.filter(a=>{let c=a?.type==="input_image"?"vision":a?.type==="input_file"?"pdf":null;return!c||!1!==b[c]||(e.add(c),!1)}),e))a.content.push({type:"input_text",text:g(f,d===c)})})}(a,c);break;case d.h.GEMINI:case d.h.GEMINI_CLI:case d.h.VERTEX:l(a.contents,c);break;case d.h.ANTIGRAVITY:l(a?.request?.contents,c);break;default:k(a,c)}return!0}},96145:(a,b,c)=>{c.d(b,{C:()=>h});var d=c(19956),e=c(50186);let f=new Set([d.h.GEMINI,d.h.GEMINI_CLI,d.h.VERTEX,d.h.ANTIGRAVITY,d.h.OLLAMA,d.h.KIRO]);function g(a){return"string"==typeof a&&(a.startsWith("http://")||a.startsWith("https://"))}async function h(a,b,c,i={}){if(!a||!f.has(c))return 0;let j=function(a,b){let c=[],e=a=>{for(let b of a||[])if(Array.isArray(b.content)){for(let a of b.content)if(a?.type==="image_url"){let b="string"==typeof a.image_url?a.image_url:a.image_url?.url;g(b)&&c.push({get:()=>b,set:b=>{"string"==typeof a.image_url?a.image_url=b:a.image_url.url=b}})}}},f=a=>{for(let b of a||[])for(let a of b.parts||[]){let b=a?.fileData?.fileUri;g(b)&&c.push({get:()=>b,part:a})}},h=a=>{for(let b of a||[])if(Array.isArray(b?.content))for(let a of b.content)a?.type==="input_image"&&g("string"==typeof a.image_url?a.image_url:a.image_url?.url||a.file_id)&&c.push({get:()=>"string"==typeof a.image_url?a.image_url:a.image_url?.url||a.file_id,set:b=>{"string"==typeof a.image_url?a.image_url=b:a.image_url&&"object"==typeof a.image_url?a.image_url.url=b:a.image_url=b}})};switch(b){case d.h.OPENAI:case d.h.OLLAMA:case d.h.KIRO:case d.h.CURSOR:case d.h.COMMANDCODE:e(a.messages),Array.isArray(a.input)&&h(a.input);break;case d.h.OPENAI_RESPONSES:case d.h.OPENAI_RESPONSE:case d.h.CODEX:h(a.input);break;case d.h.CLAUDE:for(let b of a.messages||[])if(Array.isArray(b.content))for(let a of b.content)a?.type==="image"&&a.source?.type==="url"&&g(a.source.url)&&c.push({get:()=>a.source.url,claudeBlock:a});break;case d.h.GEMINI:case d.h.GEMINI_CLI:case d.h.VERTEX:f(a.contents);break;case d.h.ANTIGRAVITY:f(a?.request?.contents);break;default:e(a.messages),Array.isArray(a.input)&&h(a.input)}return c}(a,b);if(!j.length)return 0;let k=0;for(let a of j){let b=a.get();if((0,e.W$)(b))continue;let c=await (0,e.ni)(b,i);c&&(a.set?a.set(c.url):a.part?(delete a.part.fileData,a.part.inlineData={mimeType:c.mimeType,data:c.url.split(",")[1]}):a.claudeBlock&&(a.claudeBlock.source={type:"base64",media_type:c.mimeType,data:c.url.split(",")[1]}),k++)}return k}}};
|
|
70
|
+
`))}catch{}}}))),{status:a.status,statusText:a.statusText,headers:((e=new Headers(a.headers)).set("content-type","text/event-stream"),e)})}else if(K&&!K.includes("text/event-stream")&&!K.includes("application/json")){let d=await a.text().catch(()=>""),e=d.match(/<title>([^<]+)<\/title>/i),f=(e?.[1]||"").replace(/<[^>]*>/g,"").replace(/[\r\n]+/g," ").trim().slice(0,160)||(d.length<200?d.replace(/<[^>]*>/g,"").trim().slice(0,160):`Upstream returned non-SSE response (${K})`),g=a.status>=400?a.status:502;return console.warn(`[STREAM] ${b} | ${c} | blocked pipe: ${f} [${g}]`),F?.handleError?.(Error(`upstream non-SSE: ${g}`)),{success:!1,response:new Response(JSON.stringify({error:{message:`[${g}]: ${f}`}}),{status:g,headers:{"Content-Type":"application/json"}})}}C&&Promise.resolve().then(C).catch(a=>{console.error("[ChatCore] onRequestSuccess failed:",a?.message||a)});let L=function({provider:a,sourceFormat:b,targetFormat:c,userAgent:g,reqLogger:i,toolNameMap:j,model:k,connectionId:l,body:m,onStreamComplete:o,clientKeyId:p,terminateOnResponsesTerminal:q}){let r=g?.toLowerCase().includes("droid")||g?.toLowerCase().includes("codex-cli");if(h.xq[a]?.format===d.h.OPENAI_RESPONSES&&c===d.h.OPENAI_RESPONSES&&!r){let c=n[b]||d.h.OPENAI;return(0,f.i5)(d.h.OPENAI_RESPONSES,c,a,i,j,k,l,m,o,p,q)}return(0,e.nZ)(c,b)?(0,f.i5)(c,b,a,i,j,k,l,m,o,p):(0,f.l2)(a,i,j,k,l,m,o,p)}({provider:b,sourceFormat:p,targetFormat:q,userAgent:r,reqLogger:D,toolNameMap:E,model:c,connectionId:y,body:s,onStreamComplete:G,clientKeyId:z,terminateOnResponsesTerminal:"responses-websocket"!==a.headers.get("x-switchboard-transport")}),M=p===d.h.OPENAI_RESPONSES&&q===d.h.OPENAI_RESPONSES,N=p===d.h.CLAUDE&&q===d.h.CLAUDE,O=M?j.Hr:N?j.LS:q===d.h.OPENAI?j.ah:null,P=h.xq[b]?.stallTimeoutMs||i.xM,Q=(0,g.Jb)(a,L,F,O,P,J);return(0,l.ox)((0,k.$R)({provider:b,model:c,connectionId:y,latency:{ttft:0,total:Date.now()-x},tokens:{prompt_tokens:0,completion_tokens:0},request:u??(0,k.Fo)(s,t),providerRequest:w||v||null,providerResponse:"[Streaming - raw response not captured]",response:{content:"[Streaming in progress...]",thinking:null,type:"streaming"},status:"success",pxpipe:I},{id:H})).catch(a=>{console.error("[RequestDetail] Failed to save streaming request:",a.message)}),{success:!0,response:new Response(Q,{headers:m.RK})}}function p({provider:a,model:b,connectionId:c,clientKeyId:d,requestStartTime:e,body:f,stream:g,requestConfig:h,finalBody:i,translatedBody:j,requestId:m,clientRawRequest:n,pxpipe:o}){let q=`${Date.now()}-${Math.random().toString(36).slice(2,11)}`;return{onStreamComplete:async(p,r,s)=>{let t={ttft:s?s-e:Date.now()-e,total:Date.now()-e},u=p?.content||"[Empty streaming response]",v=p?.thinking||null;(0,l.ox)((0,k.$R)({provider:a,model:b,connectionId:c,latency:t,tokens:r||{prompt_tokens:0,completion_tokens:0},request:h??(0,k.Fo)(f,g),providerRequest:i||j||null,providerResponse:u,response:{content:u,thinking:v,type:"streaming"},status:"success",pxpipe:o},{id:q})).catch(a=>{console.error("[RequestDetail] Failed to update streaming content:",a.message)}),await (0,k.YZ)({provider:a,model:b,tokens:r,connectionId:c,clientKeyId:d,requestId:m,endpoint:n?.endpoint,label:"STREAM USAGE"})},streamDetailId:q}}},66573:(a,b,c)=>{c.d(b,{Hh:()=>g,ST:()=>h,Wg:()=>f});let d=new TextEncoder;function e(a){return Math.max(0,Math.floor(Number(a)||0))}function f(a,b){var c;if("string"!=typeof a)return"";let d=e(b);return a.length<=d?a:0===d?"":a.slice(0,(c=a.charCodeAt(d-1))>=55296&&c<=56319?d-1:d)}function g(a,b){var c;if("string"!=typeof a)return"";let d=e(b);if(a.length<=d)return a;if(0===d)return"";let f=a.length-d;return a.slice((c=a.charCodeAt(f))>=56320&&c<=57343?f+1:f)}function h(a,b){if("string"!=typeof a)return"";let c=e(b);if(0===c)return"";if(d.encode(a).length<=c)return a;let g=0,h=a.length;for(;g<h;){let b=g+Math.ceil((h-g)/2);d.encode(a.slice(0,b)).length<=c?g=b:h=b-1}return f(a,g)}},70718:(a,b,c)=>{c.d(b,{q7:()=>p});var d=c(28730);let e="u">typeof process&&process.versions?.node&&!0,f="u">typeof process&&process.env?.ENABLE_REQUEST_LOGS==="true",g=null,h=null,i=null;async function j(){if(e&&f&&!g)try{let a=await Promise.resolve().then(c.t.bind(c,29021,19)),b=await Promise.resolve().then(c.t.bind(c,33873,19));g=a.default||a,i=(h=b.default||b).join("u">typeof process&&process.cwd?process.cwd():".","logs")}catch{}}async function k(a,b,c){if(await j(),!g||!i)return null;try{g.existsSync(i)||g.mkdirSync(i,{recursive:!0});let d=function(a=new Date){let b=a=>String(a).padStart(2,"0"),c=a.getFullYear(),d=b(a.getMonth()+1),e=b(a.getDate()),f=b(a.getHours()),g=b(a.getMinutes()),h=b(a.getSeconds()),i=String(a.getMilliseconds()).padStart(3,"0");return`${c}${d}${e}_${f}${g}${h}_${i}`}(),e=(c||"unknown").replace(/[/:]/g,"-"),f=`${a}_${b}_${e}_${d}`,j=h.join(i,f);return g.mkdirSync(j,{recursive:!0}),j}catch(a){return console.log("[LOG] Failed to create log session:",a.message),null}}let l=new Set(["prompt_cache_key","session_id","sessionid","conversation_id","conversationid","user_id","userid","request_id","requestid","x_session_id","x_amp_thread_id","x_client_request_id"]);function m(a,b,c){if(g&&a)try{let d=h.join(a,b);g.writeFileSync(d,JSON.stringify(function a(b){if(Array.isArray(b))return b.map(a);if(!b||"object"!=typeof b)return b;let c={};for(let[d,e]of Object.entries(b)){let b=d.toLowerCase().replaceAll("-","_");c[d]=l.has(b)?"[redacted]":a(e)}return c}(c),null,2))}catch(a){console.log(`[LOG] Failed to write ${b}:`,a.message)}}let n=["api-key","x-key"];function o(a){if(!a)return{};let b={...a};for(let a of Object.keys(b)){let c=a.toLowerCase();if(function(a){return d.fC.some(b=>a.includes(b))||n.some(b=>a.includes(b))}(c)){let e=b[a];d.qk.some(a=>c.includes(a))||c.includes("api-key")||c.includes("x-key")?b[a]="[redacted]":"string"==typeof e&&e.length>12?b[a]=e.slice(0,8)+"..."+e.slice(-4):null!=e&&(b[a]="[redacted]")}}return b}async function p(a,b,c){if(!f)return{sessionPath:null,logClientRawRequest(){},logRawRequest(){},logOpenAIRequest(){},logTargetRequest(){},logProviderResponse(){},appendProviderChunk(){},appendOpenAIChunk(){},logConvertedResponse(){},appendConvertedChunk(){},logError(){},close(){}};let d=await k(a,b,c),e={},i=!1;function j(a,b,c){if(g&&d&&!i)try{let f=e[a];f||(f=e[a]=g.createWriteStream(h.join(d,b),{flags:"a"})).on("error",()=>{}),f.write(c)}catch{}}return{get sessionPath(){return d},logClientRawRequest(a,b,c={}){m(d,"1_req_client.json",{timestamp:new Date().toISOString(),endpoint:a,headers:o(c),body:b})},logRawRequest(a,b={}){m(d,"2_req_source.json",{timestamp:new Date().toISOString(),headers:o(b),body:a})},logOpenAIRequest(a){m(d,"3_req_openai.json",{timestamp:new Date().toISOString(),body:a})},logTargetRequest(a,b,c){m(d,"4_req_target.json",{timestamp:new Date().toISOString(),url:"string"==typeof a&&a?a.replace(/([?&])(key|api_key|api-key)=[^&]*/gi,"$1$2=[redacted]"):a,headers:o(b),body:c})},logProviderResponse(a,b,c,e){m(d,"5_res_provider.json",{timestamp:new Date().toISOString(),status:a,statusText:b,headers:o(c&&"function"==typeof c.entries?Object.fromEntries(c.entries()):c),body:e})},appendProviderChunk(a){j("provider","5_res_provider.txt",a)},appendOpenAIChunk(a){j("openai","6_res_openai.txt",a)},logConvertedResponse(a){m(d,"7_res_client.json",{timestamp:new Date().toISOString(),body:a})},appendConvertedChunk(a){j("converted","7_res_client.txt",a)},logError(a,b=null){m(d,"6_error.json",{timestamp:new Date().toISOString(),error:a?.message||String(a),requestBody:b})},close:()=>{let a;return i=!0,a=Object.values(e),e={},Promise.all(a.map(a=>new Promise(b=>{try{a.end(b)}catch{b()}})))}}}},78255:(a,b,c)=>{c.d(b,{I:()=>p});var d=c(94176),e=c(89865),f=c(60290),g=c(19956),h=c(4630),i=c(49612),j=c(83611),k=c(29461),l=c(12407);let m=a=>h.xq[a]?.format===g.h.OPENAI_RESPONSES;function n(a){a&&Promise.resolve().then(a).catch(a=>{console.error("[ChatCore] onRequestSuccess failed:",a?.message||a)})}function o(a){if(!a?.content||!Array.isArray(a.content))return"";let b=a.content.find(a=>"output_text"===a.type);if("string"==typeof b?.text)return b.text;let c=a.content.find(a=>"string"==typeof a.text);return"string"==typeof c?.text?c.text:""}async function p({providerResponse:a,sourceFormat:b,provider:c,model:h,body:q,stream:r,requestConfig:s,translatedBody:t,finalBody:u,requestStartTime:v,connectionId:w,clientKeyId:x,requestId:y,clientRawRequest:z,onRequestSuccess:A,trackDone:B,appendLog:C,streamSignal:D}){let E=a.headers.get("content-type")||"";if(!(E.includes("text/event-stream")||""===E&&m(c)))return null;B();let F={provider:c,model:h,connectionId:w,request:s??(0,k.Fo)(q,r),providerRequest:u||t||null};if(m(c))try{let e=await (0,d.convertResponsesStreamToJson)(a.body,{signal:D});n(A);let f=e.usage||{};C({tokens:f,status:"200 OK"}),await (0,k.YZ)({provider:c,model:h,tokens:f,connectionId:w,clientKeyId:x,requestId:y,endpoint:z?.endpoint});let{msgItem:j,textContent:m}=function(a){if(!Array.isArray(a))return{msgItem:null,textContent:null};let b=a.filter(a=>a?.type==="message");if(0===b.length)return{msgItem:null,textContent:null};for(let a=b.length-1;a>=0;a--){let c=o(b[a]);if(c.length>0)return{msgItem:b[a],textContent:c}}let c=b[b.length-1];return{msgItem:c,textContent:o(c)}}(e.output),p=Date.now()-v;if((0,l.ox)((0,k.$R)({...F,latency:{ttft:p,total:p},tokens:{prompt_tokens:f.input_tokens||0,completion_tokens:f.output_tokens||0},response:{content:m,thinking:null,finish_reason:e.status||"unknown"},status:"success"},{endpoint:z?.endpoint||null})).catch(()=>{}),b===g.h.OPENAI_RESPONSES)return{success:!0,response:new Response(JSON.stringify(e),{headers:{"Content-Type":"application/json"}})};let q=f.input_tokens||0,r=f.output_tokens||0,s=(e.output||[]).filter(a=>"function_call"===a.type).map((a,b)=>({id:a.call_id||`call_${a.name}_${Date.now()}_${b}`,type:"function",function:{name:a.name,arguments:"string"==typeof a.arguments?a.arguments:JSON.stringify(a.arguments||{})}})),t=s.length>0,u="completed"===e.status||"done"===e.status,B=t?"tool_calls":u?"stop":"incomplete"===e.status?"length":e.status||"stop",E={id:e.id||`chatcmpl-${Date.now()}`,object:"chat.completion",created:e.created_at||Math.floor(Date.now()/1e3),model:e.model||h,choices:[{index:0,message:{role:"assistant",content:m||(t?null:""),...t?{tool_calls:s}:{}},finish_reason:B}],usage:{prompt_tokens:q,completion_tokens:r,total_tokens:q+r}},G=(0,i.p)(E,b);return{success:!0,response:new Response(JSON.stringify(G),{headers:{"Content-Type":"application/json"}})}}catch(a){return console.error("[ChatCore] Responses API SSE→JSON failed:",a),(0,e.A1)(f.gx.BAD_GATEWAY,"Failed to convert streaming response to JSON")}try{let g=await (0,d.iJ)(a.body,h,{signal:D});if(!g)return(0,e.A1)(f.gx.BAD_GATEWAY,"Invalid SSE response for non-streaming request");n(A);let m=g.usage||{};C({tokens:m,status:"200 OK"}),await (0,k.YZ)({provider:c,model:h,tokens:m,connectionId:w,clientKeyId:x,requestId:y,endpoint:z?.endpoint});let o=Date.now()-v;(0,l.ox)((0,k.$R)({...F,latency:{ttft:o,total:o},tokens:m,response:{content:g.choices?.[0]?.message?.content||null,thinking:g.choices?.[0]?.message?.reasoning_content||null,finish_reason:g.choices?.[0]?.finish_reason||"unknown"},status:"success"},{endpoint:z?.endpoint||null})).catch(()=>{});let p=!1;if(g?.choices)for(let a of g.choices){let b=a?.message;if(b?.content&&"string"==typeof b.content){let{content:a,reasoning:c}=(0,j.j)(b.content);c&&(b.reasoning_content=c,b.content=a,p=!0)}}if(!p&&g?.choices)for(let a of g.choices)a?.message?.reasoning_content&&a.message.content&&delete a.message.reasoning_content;let q=(0,i.p)(g,b);return{success:!0,response:new Response(JSON.stringify(q),{headers:{"Content-Type":"application/json"}})}}catch(a){return console.error("[ChatCore] Chat Completions SSE→JSON failed:",a),(0,e.A1)(f.gx.BAD_GATEWAY,"Failed to convert streaming response to JSON")}}},83611:(a,b,c)=>{c.d(b,{H:()=>h,j:()=>g});let d="<think>",e="</think>",f=RegExp(`${d}([\\s\\S]*?)${e}\\s*`);function g(a){if("string"!=typeof a)return{content:a,reasoning:null};let b=a.match(f);return b?{content:a.replace(RegExp(`${d}[\\s\\S]*?${e}\\s*`,"g"),"").trimStart(),reasoning:b[1].trim()}:{content:a,reasoning:null}}function h(){let a="",b=!1;return function(c){let f=null;if("string"!=typeof c)return{content:c,reasoning:f};if(b){let d=c.indexOf(e);d>=0?(a+=c.slice(0,d),f=a.trim(),a="",b=!1,c=c.slice(d+e.length).trimStart()):(a+=c,c="")}if(!b){let g=c.indexOf(d);if(g>=0){let h=c.slice(g+d.length),i=h.indexOf(e);i>=0?(f=(f?f+"\n":"")+h.slice(0,i).trim(),c=c.slice(0,g)+h.slice(i+e.length).trimStart()):(b=!0,a=h,c=c.slice(0,g))}}return{content:c,reasoning:f}}}},90197:(a,b,c)=>{c.d(b,{H:()=>h,_:()=>i});var d=c(19956);function e(a){try{return JSON.stringify(a)?.length||0}catch{return 0}}function f(a){return Math.round(a/4)}function g(a,b={}){return{body:null,summary:{applied:!1,reason:a,...b}}}async function h(a,{enabled:b,format:c,model:i,minChars:j,timeoutMs:k,transform:l}={}){if(!b)return g("disabled");if("function"!=typeof l)return g("not_installed");if(!a)return g("missing_body");if(c!==d.h.CLAUDE)return g("unsupported_format",{detail:c});let m=Date.now(),n=e(a),o=Number(j)>0?Number(j):25e3;if(n<o)return g("below_threshold",{originalChars:n,threshold:o});try{let b=new TextEncoder().encode(JSON.stringify(a)),c=Number(k)>0?Number(k):15e3,d=await Promise.race([l({body:b,model:i,options:{minCompressChars:o}}),new Promise(a=>setTimeout(()=>a(null),c))]);if(!d)return g("timeout",{originalChars:n,durationMs:Date.now()-m});if(!d.applied)return g(d.reason||"passthrough",{detail:d.detail,originalChars:n,durationMs:Date.now()-m});let h=JSON.parse(new TextDecoder().decode(d.body)),j=e(h),p=d.info||{},q=p.compressedChars||0,r=p.imageTokens||(p.imagePixels?Math.round(p.imagePixels/750):4761*(p.imageCount||0)),s={applied:!0,reason:"applied",originalChars:n,compressedBodyChars:j,imagedChars:q,imageCount:p.imageCount||0,imageBytes:p.imageBytes||0,tokensBeforeEst:p.baselineTokens||f(n),tokensAfterEst:f(Math.max(0,n-q))+r,durationMs:Date.now()-m,cacheOwnsControl:d.cache?.ownsCacheControl===!0};return s.tokensSavedEst=Math.max(0,s.tokensBeforeEst-s.tokensAfterEst),s.savedPct=s.tokensBeforeEst>0?+(s.tokensSavedEst/s.tokensBeforeEst*100).toFixed(2):0,{body:h,summary:s}}catch(a){return g("transform_error",{detail:a?.message||String(a),originalChars:n,durationMs:Date.now()-m})}}function i(a){return a&&a.applied?`imaged ${a.imagedChars}ch → ${a.imageCount} image(s) | est ${a.tokensBeforeEst}→${a.tokensAfterEst} tokens (-${a.savedPct}%) | ${a.durationMs}ms`:null}},94176:(a,b,c)=>{function d(a,b){let c;if(!a.trim())return;let d=a.match(/^event:\s*(.+)$/m),f=a.match(/^data:\s*(.+)$/m);if(!d||!f)return;let g=d[1].trim(),h=f[1].trim();if("[DONE]"!==h){try{c=JSON.parse(h)}catch{return}if("response.created"===g)b.responseId=c.response?.id||b.responseId,b.created=c.response?.created_at||b.created;else if("response.output_item.done"===g)b.items.set(c.output_index??0,c.item);else if("response.completed"===g||"response.done"===g)b.status="completed",e(b,c);else if("response.incomplete"===g)b.status="incomplete",e(b,c);else if("response.failed"===g)b.status="failed";else if("response.output_text.delta"===g){let a=c.output_index??0;"string"==typeof c.delta&&c.delta.length>0&&b.deltaText.set(a,(b.deltaText.get(a)||"")+c.delta)}else if("response.function_call_arguments.delta"===g){let a=c.output_index??0;"string"==typeof c.delta&&c.delta.length>0&&b.deltaArgs.set(a,(b.deltaArgs.get(a)||"")+c.delta)}}}function e(a,b){b.response?.usage&&(a.usage.input_tokens=b.response.usage.input_tokens||0,a.usage.output_tokens=b.response.usage.output_tokens||0,a.usage.total_tokens=b.response.usage.total_tokens||0)}c.d(b,{convertResponsesStreamToJson:()=>p,hB:()=>g,iJ:()=>o,tQ:()=>j});let f={input_tokens:0,output_tokens:0,total_tokens:0};function g(a){if(Number.isFinite(a)&&a>0)return a;let b=Number.parseInt(globalThis.process?.env?.STREAM_TO_JSON_MAX_BYTES||"",10);return Number.isFinite(b)&&b>0?b:0x1000000}class h extends Error{constructor(a){super(`SSE stream exceeded STREAM_TO_JSON_MAX_BYTES (${a} bytes)`),this.name="StreamToJsonMaxBytesError"}}function i(a){return a?"number"==typeof a.byteLength?a.byteLength:"number"==typeof a.length?a.length:0:0}function j(a,b){if(a>b)throw new h(b)}function k(){let a=Error("The operation was aborted.");return a.name="AbortError",a}function l(a,b){let c;if(!b)return a.read();if(b.aborted)return Promise.reject(k());let d=new Promise((d,e)=>{c=()=>{e(k());try{a.cancel(k()).catch(()=>{})}catch{}},b.addEventListener("abort",c,{once:!0})});return Promise.race([a.read(),d]).finally(()=>{b.removeEventListener?.("abort",c)})}function m(){return{contentParts:[],reasoningParts:[],toolCallMap:new Map,finishReason:"stop"}}function n(a,b){let c=a.trim();if(!c.startsWith("data:"))return;let d=c.slice(5).trim();if(d&&"[DONE]"!==d)try{!function(a,b){if(b.seenChunk||(b.first=a||{},b.seenChunk=!0),a?.usage&&"object"==typeof a.usage&&(b.usage=a.usage),Array.isArray(a?.choices))for(let c of a.choices){let a=function(a,b){let c=a.choiceMap.get(b);return c||(c=m(),a.choiceMap.set(b,c)),c}(b,c?.index??0),d=c?.delta||{};if("string"==typeof d.content&&d.content.length>0&&a.contentParts.push(d.content),"string"==typeof d.reasoning_content&&d.reasoning_content.length>0&&a.reasoningParts.push(d.reasoning_content),c?.finish_reason&&(a.finishReason=c.finish_reason),Array.isArray(d.tool_calls))for(let b of d.tool_calls){let c=b.index??0;a.toolCallMap.has(c)||a.toolCallMap.set(c,{id:b.id||"",type:"function",function:{name:"",arguments:""}});let d=a.toolCallMap.get(c);b.id&&(d.id=b.id),b.function?.name&&(d.function.name?d.function.name!==b.function.name&&(d.function.name+=b.function.name):d.function.name=b.function.name),b.function?.arguments&&(d.function.arguments+=b.function.arguments)}}}(JSON.parse(d),b)}catch{}}async function o(a,b,{maxBytes:c,signal:d}={}){if(!a||"function"!=typeof a.getReader)return null;let e=a.getReader(),f=new TextDecoder,h=g(c),k={fallbackModel:b,seenChunk:!1,first:null,choiceMap:new Map,usage:null},p="",q=0;try{for(;;){let{done:a,value:b}=await l(e,d);if(a)break;q+=i(b),j(q,h);let c=(p+=f.decode(b,{stream:!0})).split("\n");for(let a of(p=c.pop()||"",c))n(a,k)}let a=f.decode();a&&(p+=a),p&&n(p,k)}catch(a){try{await e.cancel(a)}catch{}throw a}finally{e.releaseLock()}if(!k.seenChunk)return null;let r=k.first||{};0===k.choiceMap.size&&k.choiceMap.set(0,m());let s=[...k.choiceMap.entries()].sort((a,b)=>a[0]-b[0]).map(([a,b])=>{let c={role:"assistant",content:b.contentParts.join("")||(b.toolCallMap.size>0?null:"")};return b.reasoningParts.length>0&&(c.reasoning_content=b.reasoningParts.join("")),b.toolCallMap.size>0&&(c.tool_calls=[...b.toolCallMap.entries()].sort((a,b)=>a[0]-b[0]).map(([,a])=>({...a,function:{name:a.function.name,arguments:a.function.arguments||"{}"}}))),{index:a,message:c,finish_reason:b.finishReason}}),t={id:r.id||`chatcmpl-${Date.now()}`,object:"chat.completion",created:r.created||Math.floor(Date.now()/1e3),model:r.model||k.fallbackModel||"unknown",choices:s};return k.usage&&(t.usage=k.usage),t}async function p(a,{maxBytes:b,signal:c}={}){if(!a||"function"!=typeof a.getReader)return{id:`resp_${Date.now()}`,object:"response",created_at:Math.floor(Date.now()/1e3),status:"failed",output:[],usage:{...f}};let e=a.getReader(),h=new TextDecoder,k=g(b),m="",n=0,o={responseId:"",created:Math.floor(Date.now()/1e3),status:"in_progress",usage:{...f},items:new Map,deltaText:new Map,deltaArgs:new Map};try{for(;;){let{done:a,value:b}=await l(e,c);if(a)break;n+=i(b),j(n,k);let f=(m+=h.decode(b,{stream:!0})).split(/\r?\n\r?\n/);for(let a of(m=f.pop()||"",f))d(a,o)}let a=h.decode();a&&(m+=a),m.trim()&&d(m,o)}catch(a){try{await e.cancel(a)}catch{}throw a}finally{e.releaseLock()}for(let[a,b]of o.deltaText)!o.items.has(a)&&b&&o.items.set(a,{id:`msg_${o.responseId||"synth"}_${a}`,type:"message",role:"assistant",content:[{type:"output_text",text:b}]});for(let[a,b]of o.deltaArgs)!o.items.has(a)&&b&&o.items.set(a,{id:`fc_synth_${a}`,type:"function_call",call_id:"",name:"",arguments:b});let q=[...o.items.entries()].sort((a,b)=>a[0]-b[0]).map(([,a])=>a);return{id:o.responseId||`resp_${Date.now()}_${Math.random().toString(36).slice(2,8)}`,object:"response",created_at:o.created,status:o.status||"completed",output:q,usage:o.usage}}},94501:(a,b,c)=>{c.d(b,{X:()=>m});var d=c(19956);let e={vision:"[image omitted: model has no vision support]",audioInput:"[audio omitted: model has no audio support]",pdf:"[file omitted: model has no document support]"},f={vision:"[Previous image omitted from context.]",audioInput:"[Previous audio omitted from context.]",pdf:"[Previous file omitted from context.]"},g=(a,b)=>(b?e:f)[a];function h(a){let b=a?.type;return"image_url"===b||"image"===b?"vision":"input_audio"===b||"audio_url"===b?"audioInput":"file"===b?"pdf":null}function i(a){let b=a?.type;return"image"===b?"vision":"document"===b?"pdf":null}function j(a,b,c,d,e){let f=[];for(let e of a){let a=b(e);if(a&&!1===c[a]){d.add(a);continue}f.push(e)}for(let a of d)f.push({type:"text",text:g(a,e)});return f}function k(a,b){if(!Array.isArray(a.messages))return;let c=a.messages.length-1;a.messages.forEach((a,d)=>{if(!Array.isArray(a.content))return;let e=new Set;a.content=j(a.content,h,b,e,d===c)})}function l(a,b){if(!Array.isArray(a))return;let c=a.length-1;a.forEach((a,d)=>{if(!Array.isArray(a.parts))return;let e=new Set;for(let f of(a.parts=a.parts.filter(a=>{var c;let d="string"!=typeof(c=a?.inlineData?.mimeType||a?.fileData?.mimeType)?null:c.startsWith("image/")?"vision":c.startsWith("audio/")?"audioInput":"application/pdf"===c?"pdf":null;return!d||!1!==b[d]||(e.add(d),!1)}),e))a.parts.push({text:g(f,d===c)})})}function m(a,b,c){if(!a||!c||!1!==c.vision&&!1!==c.audioInput&&!1!==c.pdf)return!1;switch(b){case d.h.OPENAI:case d.h.OLLAMA:case d.h.KIRO:case d.h.CURSOR:case d.h.COMMANDCODE:k(a,c);break;case d.h.CLAUDE:!function(a,b){if(!Array.isArray(a.messages))return;let c=a.messages.length-1;a.messages.forEach((a,d)=>{if(!Array.isArray(a.content))return;let e=new Set;a.content=j(a.content,i,b,e,d===c)})}(a,c);break;case d.h.OPENAI_RESPONSES:case d.h.OPENAI_RESPONSE:case d.h.CODEX:!function(a,b){if(!Array.isArray(a.input))return;let c=a.input.length-1;a.input.forEach((a,d)=>{if(!Array.isArray(a.content))return;let e=new Set;for(let f of(a.content=a.content.filter(a=>{let c=a?.type==="input_image"?"vision":a?.type==="input_file"?"pdf":null;return!c||!1!==b[c]||(e.add(c),!1)}),e))a.content.push({type:"input_text",text:g(f,d===c)})})}(a,c);break;case d.h.GEMINI:case d.h.GEMINI_CLI:case d.h.VERTEX:l(a.contents,c);break;case d.h.ANTIGRAVITY:l(a?.request?.contents,c);break;default:k(a,c)}return!0}},96145:(a,b,c)=>{c.d(b,{C:()=>h});var d=c(19956),e=c(50186);let f=new Set([d.h.GEMINI,d.h.GEMINI_CLI,d.h.VERTEX,d.h.ANTIGRAVITY,d.h.OLLAMA,d.h.KIRO]);function g(a){return"string"==typeof a&&(a.startsWith("http://")||a.startsWith("https://"))}async function h(a,b,c,i={}){if(!a||!f.has(c))return 0;let j=function(a,b){let c=[],e=a=>{for(let b of a||[])if(Array.isArray(b.content)){for(let a of b.content)if(a?.type==="image_url"){let b="string"==typeof a.image_url?a.image_url:a.image_url?.url;g(b)&&c.push({get:()=>b,set:b=>{"string"==typeof a.image_url?a.image_url=b:a.image_url.url=b}})}}},f=a=>{for(let b of a||[])for(let a of b.parts||[]){let b=a?.fileData?.fileUri;g(b)&&c.push({get:()=>b,part:a})}},h=a=>{for(let b of a||[])if(Array.isArray(b?.content))for(let a of b.content)a?.type==="input_image"&&g("string"==typeof a.image_url?a.image_url:a.image_url?.url||a.file_id)&&c.push({get:()=>"string"==typeof a.image_url?a.image_url:a.image_url?.url||a.file_id,set:b=>{"string"==typeof a.image_url?a.image_url=b:a.image_url&&"object"==typeof a.image_url?a.image_url.url=b:a.image_url=b}})};switch(b){case d.h.OPENAI:case d.h.OLLAMA:case d.h.KIRO:case d.h.CURSOR:case d.h.COMMANDCODE:e(a.messages),Array.isArray(a.input)&&h(a.input);break;case d.h.OPENAI_RESPONSES:case d.h.OPENAI_RESPONSE:case d.h.CODEX:h(a.input);break;case d.h.CLAUDE:for(let b of a.messages||[])if(Array.isArray(b.content))for(let a of b.content)a?.type==="image"&&a.source?.type==="url"&&g(a.source.url)&&c.push({get:()=>a.source.url,claudeBlock:a});break;case d.h.GEMINI:case d.h.GEMINI_CLI:case d.h.VERTEX:f(a.contents);break;case d.h.ANTIGRAVITY:f(a?.request?.contents);break;default:e(a.messages),Array.isArray(a.input)&&h(a.input)}return c}(a,b);if(!j.length)return 0;let k=0;for(let a of j){let b=a.get();if((0,e.W$)(b))continue;let c=await (0,e.ni)(b,i);c&&(a.set?a.set(c.url):a.part?(delete a.part.fileData,a.part.inlineData={mimeType:c.mimeType,data:c.url.split(",")[1]}):a.claudeBlock&&(a.claudeBlock.source={type:"base64",media_type:c.mimeType,data:c.url.split(",")[1]}),k++)}return k}}};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";exports.id=6533,exports.ids=[6533],exports.modules={11841:(a,b,c)=>{function d(a){let b=a?.providerSpecificData||{},c=a=>"string"==typeof a?a:"";return{connectionId:c(a?.id),provider:c(a?.provider),authType:c(a?.authType),createdAt:c(a?.createdAt),email:c(a?.email),accountId:c(b.accountUuid||b.accountId||b.userId||b.chatgptAccountId),organizationId:c(b.organizationUuid||b.organizationId)}}c.d(b,{AN:()=>d,R3:()=>e,_r:()=>h,bs:()=>g});let e=3e5,f=a=>"string"==typeof a&&Number.isFinite(Date.parse(a))?new Date(a).toISOString():null;function g(a){let b=f(a?.retryAt),c=a?.result,d=null,g=f(c?.observedAt);if(g&&c?.quotas&&"object"==typeof c.quotas&&!Array.isArray(c.quotas)){let a={};for(let[b,d]of Object.entries(c.quotas))d&&["used","total","remaining","remainingPercentage"].every(a=>Number.isFinite(d[a]))&&(a[b]={used:d.used,total:d.total,remaining:d.remaining,remainingPercentage:d.remainingPercentage,resetAt:f(d.resetAt),unlimited:!0===d.unlimited});if(d={plan:"string"==typeof c.plan?c.plan:null,observedAt:g,quotas:a},c.extraUsage&&"object"==typeof c.extraUsage)for(let a of(d.extraUsage={},["is_enabled","monthly_limit","used_credits","utilization"])){let b=c.extraUsage[a];("boolean"==typeof b||Number.isFinite(b))&&(d.extraUsage[a]=b)}else d.extraUsage=null}let h=d&&Number.isFinite(a?.expiresAt)?Math.max(0,Math.min(a.expiresAt,Date.parse(d.observedAt)+e)):0;return{retryAt:b,result:d,expiresAt:h}}function h(a,b){let c=g(a),d=g(b),e=!c.result||d.result&&Date.parse(d.result.observedAt)>=Date.parse(c.result.observedAt)?d.result:c.result,f=Math.max(Date.parse(c.retryAt)||0,Date.parse(d.retryAt)||0),h=f>(Date.parse(e?.observedAt)||0)?new Date(f).toISOString():null,i=h||!e||0===d.expiresAt?0:e===d.result?d.expiresAt:c.expiresAt;return{retryAt:h,result:e,expiresAt:i}}},33234:(a,b,c)=>{c.d(b,{l:()=>k,_:()=>l});var d,e=c(36366),f=c(77598),g=c(11841);let h="providerQuotaState",i=a=>(0,f.createHash)("sha256").update(JSON.stringify(["connectionId","provider","authType","createdAt","email","accountId","organizationId"].map(b=>"string"==typeof a?.[b]?a[b]:""))).digest("hex");function j(a,b){let c;if(!b?.connectionId||!b.provider||!b.authType||!b.createdAt)return null;let d=a.get("SELECT id, provider, authType, email, createdAt, data FROM providerConnections WHERE id = ?",[b.connectionId]);if(!d)return null;try{c=JSON.parse(d.data)}catch{return null}let e=(0,g.AN)({...d,providerSpecificData:c?.providerSpecificData});return i(e)===i(b)?i(e):null}let{loadProviderQuotaState:k,saveProviderQuotaState:l}=(d=e.c,{async loadProviderQuotaState(a){let b,c=await d(),e=j(c,a);if(!e)return{invalidIdentity:!0};let f=c.get("SELECT value FROM kv WHERE scope = ? AND key = ?",[h,a.connectionId]);try{b=JSON.parse(f?.value||"null")}catch{throw Error("Invalid durable quota state")}if(b&&1!==b.version)throw Error("Unsupported durable quota state");return b?.version===1&&b.binding===e?(0,g.bs)(b):(0,g.bs)(null)},async saveProviderQuotaState(a,b){let c=await d(),e=!1;return c.transaction(()=>{let d,f=j(c,a);if(!f)return;let i=c.get("SELECT value FROM kv WHERE scope = ? AND key = ?",[h,a.connectionId]);try{d=JSON.parse(i?.value||"null")}catch{d=null}(d?.version!==1||d.binding!==f)&&(d=null);let k={version:1,binding:f,...(0,g._r)(d,b)};c.run("INSERT INTO kv(scope,key,value) VALUES(?,?,?) ON CONFLICT(scope,key) DO UPDATE SET value=excluded.value",[h,a.connectionId,JSON.stringify(k)]),e=!0}),e}})},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})},49263:(a,b,c)=>{c.d(b,{Bl:()=>k,Qo:()=>f,RU:()=>g,S5:()=>n,V0:()=>l,hk:()=>e,kJ:()=>m});var d=c(87252);function e(a,b,c=0){let f=b?("string"==typeof b?b:JSON.stringify(b)).toLowerCase():"";for(let b of d.t2)if(b.text&&f&&f.includes(b.text)||b.status&&b.status===a){let a=!1!==b.shouldFallback;if(b.backoff){let b=Math.min(c+1,d.EQ.maxLevel);return{shouldFallback:a,cooldownMs:function(a=0){let b=Math.max(0,a-1);return Math.min(d.EQ.base*Math.pow(2,b),d.EQ.max)}(b),newBackoffLevel:b}}return{shouldFallback:a,cooldownMs:b.cooldownMs||0}}return a>=400&&a<500&&408!==a&&429!==a?{shouldFallback:!1,cooldownMs:0}:{shouldFallback:!0,cooldownMs:d.wf}}function f(a){if(!a)return"";let b=new Date(a).getTime()-Date.now();if(b<=0)return"reset after 0s";let c=Math.ceil(b/1e3),d=Math.floor(c/3600),e=Math.floor(c%3600/60),f=c%60,g=[];return d>0&&g.push(`${d}h`),e>0&&g.push(`${e}m`),(f>0||0===g.length)&&g.push(`${f}s`),`reset after ${g.join(" ")}`}let g="reauth_required",h="modelLock_",i=`${h}__all`;function j(a){return a?`${h}${a}`:i}function k(a,b){let c=j(b);return[a?.[c],a?.[i]].some(a=>a&&new Date(a).getTime()>Date.now())}function l(a,b){let c=Date.now(),d=[a?.[j(b)],a?.[i]].map(a=>new Date(a).getTime()).filter(a=>Number.isFinite(a)&&a>c);return d.length>0?new Date(Math.max(...d)).toISOString():null}function m(a){if(!a)return null;let b=null,c=Date.now();for(let[d,e]of Object.entries(a)){if(!d.startsWith(h)||!e)continue;let a=new Date(e).getTime();a<=c||(!b||a<b)&&(b=a)}return b?new Date(b).toISOString():null}function n(a,b){return{[j(a)]:new Date(Date.now()+b).toISOString()}}},66451:(a,b,c)=>{c.d(b,{Xh:()=>f,js:()=>h,sc:()=>g});var d=c(39698);let e={el:"elevenlabs",jina:"jina-ai","jina-ai":"jina-ai",polly:"aws-polly","aws-polly":"aws-polly"};for(let a of d.A)for(let b of(e[a.id]=a.id,a.alias&&(e[a.alias]=a.id),a.aliases||[]))e[b]=a.id;function f(a){if(!a)return{provider:null,model:null,isAlias:!1,providerAlias:null};if(a.includes("/")){let b=a.indexOf("/"),c=a.slice(0,b),d=a.slice(b+1);return{provider:e[c]||c,model:d,isAlias:!1,providerAlias:c}}return{provider:null,model:a,isAlias:!0,providerAlias:null}}function g(a,b){var c,d;if(!b||"string"!=typeof a)return null;let f=b[a];if(!f){for(let[c,d]of Object.entries(b))if("string"==typeof c&&c.includes("*"))try{let b="^"+c.replace(/[.+?^${}()|[\]\\]/g,"\\$&").replace(/\*/g,".*")+"$";if(RegExp(b,"i").test(a)){f=d;break}}catch{}}if(!f)return null;if("string"==typeof f&&f.includes("/")){let a=f.indexOf("/");return{provider:e[c=f.slice(0,a)]||c,model:f.slice(a+1)}}return"object"==typeof f&&f.provider&&f.model?{provider:e[d=f.provider]||d,model:f.model}:"string"==typeof f?{provider:null,model:f}:null}async function h(a,b){let c=f(a);if(!c.isAlias)return{provider:c.provider,model:c.model};let d="function"==typeof b?await b():b,e=g(c.model,d);return e||{provider:function(a){if(!a)return"openai";let b=a.toLowerCase();return i.find(([a])=>a.test(b))?.[1]||"openai"}(c.model),model:c.model}}let i=[[/^grok-build$/,"grok-cli"],[/^muse-/,"muse"],[/^claude-/,"anthropic"],[/^gemini-/,"gemini"],[/^gpt-/,"openai"],[/^o[134]/,"openai"],[/^deepseek-/,"openrouter"]]}};
|
|
@@ -2,4 +2,4 @@ exports.id=7201,exports.ids=[7201],exports.modules={4630:(a,b,c)=>{"use strict";
|
|
|
2
2
|
${e}${n(t)}
|
|
3
3
|
`}function s(a){let b=o(a,e);if(!b)return a;let c=(0,d.Tp)(p(a,e));if(c.errors.length)throw Error(`Invalid Aider YAML: ${c.errors[0].message}`);for(let a of["openai-api-base","openai-api-key","model","alias"])b[a]?.exists?c.setIn([a],b[a].value):c.deleteIn([a]);return c.toString()}function t(a,{baseUrl:b,models:c,defaultModel:e}){let g=o(a,f)?u(a):a,h=(0,d.Tp)(g||"");if(h.errors.length)throw Error(`Invalid Hermes YAML: ${h.errors[0].message}`);let k=i(c),l=j(e,k),m=q(h.getIn(["custom_providers"])),p=Array.isArray(m)?m:[],r=p.find(a=>a?.name==="switchboard"),s=q(h.getIn(["model"])),v=p.filter(a=>a?.name!=="switchboard"),w=Object.fromEntries(k.map(a=>[a,{}]));return v.push({name:"switchboard",base_url:b,key_env:"SWITCHBOARD_API_KEY",api_mode:"chat_completions",models:w}),h.setIn(["custom_providers"],v),h.setIn(["model"],{...s&&"object"==typeof s?s:{},default:l,provider:"custom:switchboard"}),`${h.toString().trimEnd()}
|
|
4
4
|
${f}${n({previousProvider:r??null,previousModel:s??null})}
|
|
5
|
-
`}function u(a){let b=o(a,f),c=(0,d.Tp)(p(a,f));if(c.errors.length)throw Error(`Invalid Hermes YAML: ${c.errors[0].message}`);let e=q(c.getIn(["custom_providers"]));if(Array.isArray(e)){let a=e.filter(a=>a?.name!=="switchboard");b?.previousProvider&&a.push(b.previousProvider),a.length?c.setIn(["custom_providers"],a):c.deleteIn(["custom_providers"])}return"custom:switchboard"===q(c.getIn(["model","provider"]))&&(b?.previousModel?c.setIn(["model"],b.previousModel):c.deleteIn(["model"])),c.toString()}function v(a,{baseUrl:b,apiKey:c,models:d,defaultModel:e}){let f=i(d),g=j(e,f);return{...a,model:`switchboard/${g}`,provider:{...a.provider||{},switchboard:{npm:"@ai-sdk/openai-compatible",name:"Switchboard",options:{apiKey:c,baseURL:b},models:Object.fromEntries(f.map(a=>[a,{name:k(a)}]))}}}}function w(a,{baseUrl:b,apiKey:c,models:d,defaultModel:e}){let f=i(d),g=j(e,f),h=a.providers||{},l=a.models||{};return{providers:{...h,providers:{...h.providers||{},switchboard:{type:"openai-compatible",name:"Switchboard",baseUrl:b,apiKey:c,defaultModelId:g}}},models:{...l,providers:{...l.providers||{},switchboard:{provider:{name:"Switchboard",baseUrl:b,defaultModelId:g},models:Object.fromEntries(f.map(a=>[a,{id:a,name:k(a)}]))}}}}}function x(a,{models:b,defaultModel:c}){let d=i(b),e=j(c,d),f=Object.fromEntries(Object.entries(a?.modelConfigs?.modelDefinitions&&"object"==typeof a.modelConfigs.modelDefinitions?a.modelConfigs.modelDefinitions:{}).filter(([,a])=>a?.family!=="switchboard"));return{...a,model:{...a.model||{},name:e},experimental:{...a.experimental||{},dynamicModelConfiguration:!0},modelConfigs:{...a.modelConfigs||{},modelDefinitions:{...f,...Object.fromEntries(d.map(a=>[a,{displayName:`Switchboard \xb7 ${k(a)}`,family:"switchboard",tier:"custom",isPreview:!1,isVisible:!0,features:{thinking:!0,multimodalToolUse:!0}}]))}}}}},47293:(a,b,c)=>{"use strict";c.d(b,{A:()=>f});let d=new Uint8Array(16);var e=c(50122);let f=function(a,b,c){return b||a||!crypto.randomUUID?function(a,b,c){let f=(a=a||{}).random??a.rng?.()??crypto.getRandomValues(d);if(f.length<16)throw Error("Random bytes length must be >= 16");if(f[6]=15&f[6]|64,f[8]=63&f[8]|128,b){if((c=c||0)<0||c+16>b.length)throw RangeError(`UUID byte range ${c}:${c+15} is out of buffer bounds`);for(let a=0;a<16;++a)b[c+a]=f[a];return b}return(0,e.k)(f)}(a,b,c):crypto.randomUUID()}},50122:(a,b,c)=>{"use strict";c.d(b,{k:()=>e});let d=[];for(let a=0;a<256;++a)d.push((a+256).toString(16).slice(1));function e(a,b=0){return(d[a[b+0]]+d[a[b+1]]+d[a[b+2]]+d[a[b+3]]+"-"+d[a[b+4]]+d[a[b+5]]+"-"+d[a[b+6]]+d[a[b+7]]+"-"+d[a[b+8]]+d[a[b+9]]+"-"+d[a[b+10]]+d[a[b+11]]+d[a[b+12]]+d[a[b+13]]+d[a[b+14]]+d[a[b+15]]).toLowerCase()}},57781:(a,b,c)=>{"use strict";c.d(b,{R:()=>h});var d=c(51455),e=c.n(d),f=c(76760),g=c.n(f);async function h(a,b,c="utf-8"){let d=g().dirname(a);await e().mkdir(d,{recursive:!0});let f=g().join(d,`.${g().basename(a)}.sb-tmp-${process.pid}-${Date.now()}-${Math.random().toString(36).slice(2,8)}`);try{await e().writeFile(f,b,c);try{let a=await e().open(f,"r+");try{await a.sync()}finally{await a.close()}}catch{}await e().rename(f,a)}catch(a){try{await e().unlink(f)}catch{}throw a}}},68393:(a,b,c)=>{"use strict";c.d(b,{AD:()=>x,El:()=>v,JF:()=>r,LU:()=>u,Ng:()=>o,OU:()=>t,Ro:()=>h,_1:()=>s,ao:()=>l,at:()=>B,i6:()=>A,iO:()=>w,s8:()=>z,wN:()=>y});let d=Object.freeze({PASS_THROUGH:"pass-through",PROXY:"proxy",FULL_CATALOG:"full-catalog"}),e="x-switchboard-claude-mode",f="x-switchboard-claude-models",g="x-switchboard-claude-labels",h="x-switchboard-key",i="claude-switchboard-v1/",j=/^(?:claude|anthropic)-[a-z0-9][a-z0-9._-]*$/i,k=Object.freeze(["ANTHROPIC_DEFAULT_OPUS_MODEL","ANTHROPIC_DEFAULT_OPUS_MODEL_NAME","ANTHROPIC_DEFAULT_OPUS_MODEL_DESCRIPTION","ANTHROPIC_DEFAULT_SONNET_MODEL","ANTHROPIC_DEFAULT_SONNET_MODEL_NAME","ANTHROPIC_DEFAULT_SONNET_MODEL_DESCRIPTION","ANTHROPIC_DEFAULT_FABLE_MODEL","ANTHROPIC_DEFAULT_FABLE_MODEL_NAME","ANTHROPIC_DEFAULT_FABLE_MODEL_DESCRIPTION","ANTHROPIC_DEFAULT_HAIKU_MODEL","ANTHROPIC_DEFAULT_HAIKU_MODEL_NAME","ANTHROPIC_DEFAULT_HAIKU_MODEL_DESCRIPTION"]);function l(a){let b=String(a||"");if(!b)return"";let c=0x811c9dc5;for(let a=0;a<b.length;a+=1)c^=b.charCodeAt(a),c=Math.imul(c,0x1000193);return(c>>>0).toString(16).padStart(8,"0")}let m=a=>a.replace(/(^|-)([a-z])/g,(a,b,c)=>`${b}${c.toUpperCase()}`);function n(a,b){if("string"!=typeof a)return"";for(let c of a.split(/\r?\n/)){let a=c.indexOf(":");if(!(a<0)&&c.slice(0,a).trim().toLowerCase()===b)return c.slice(a+1).trim()}return""}function o(a){return"string"==typeof a&&j.test(a)}function p(a){if(!Array.isArray(a))throw TypeError("Claude catalog models must be an array.");let b=[],c=new Set;for(let d of a){if("string"!=typeof d)throw TypeError("Each Claude catalog model must be a string.");let a=d.trim();if(a){if(/\r|\n/.test(a))throw TypeError("Claude catalog model IDs cannot contain newlines.");c.has(a)||(c.add(a),b.push(a))}}return b}function q(a){if("string"!=typeof a||!a.trim())return[];try{return p(JSON.parse(decodeURIComponent(a)))}catch{return[]}}function r(a){return q(n(a,f))}function s(a){return q(a?.get(f))}function t(a,b){if(!a||"object"!=typeof a||Array.isArray(a))return{};let c=new Set(p(b)),d={};for(let[b,e]of Object.entries(a)){if(!c.has(b))continue;let a=String(e||"").trim().replace(/[·•—–]/g," | ").replace(/[\r\n]+/g," ").replace(/\s+/g," ");a&&(d[b]=a.slice(0,48))}return d}function u(a){var b=a?.get(g);if("string"!=typeof b||!b.trim())return{};try{let a=JSON.parse(decodeURIComponent(b));return a&&"object"==typeof a&&!Array.isArray(a)?a:{}}catch{return{}}}function v(a){let b=String(a||"").trim();if(!b)throw TypeError("A Switchboard model ID is required.");let c=b.split("/").map(encodeURIComponent).join("/");return`${i}${c}`}function w(a){if("string"!=typeof a||!a.startsWith(i))return null;let b=a.slice(i.length);if(!b)return null;try{let c=b.split("/").map(decodeURIComponent).join("/");return v(c)===a?c:null}catch{return null}}function x({baseUrl:a,gatewayKey:b,models:c=[],pickerLabels:h={}}){let i=String(a||"").trim().replace(/\/+$/,""),j=String(b||"").trim();if(!i)throw TypeError("A Switchboard endpoint is required.");if(!j)throw TypeError("A Switchboard API key is required.");let l=p(c),n=t(h,l),o=function(a=[],b={}){let c=p(a),h=[`${m(e)}: ${d.FULL_CATALOG}`,`${m(f)}: ${encodeURIComponent(JSON.stringify(p(c)))}`],i=function(a,b={}){let c=t(b,a);return 0===Object.keys(c).length?"":encodeURIComponent(JSON.stringify(c))}(c,b);return i&&h.push(`${m(g)}: ${i}`),h.join("\n")}(l,n);if(new TextEncoder().encode(o).byteLength>7168)throw TypeError("This catalog is too large for Claude Code request headers. Remove models or shorten picker labels.");let q={ANTHROPIC_API_KEY:"",ANTHROPIC_AUTH_TOKEN:j,ANTHROPIC_BASE_URL:i.endsWith("/v1")?i:`${i}/v1`,ANTHROPIC_CUSTOM_HEADERS:o,ANTHROPIC_CUSTOM_MODEL_OPTION:"",CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY:"1"};for(let a of k)q[a]="";return{env:q,pickerLabels:n}}function y(a){return n(a,e).toLowerCase()===d.PASS_THROUGH}function z(a){let b=n(a,e).toLowerCase();return b===d.FULL_CATALOG||b===d.PROXY}function A(a){return a?.get(e)?.trim().toLowerCase()===d.PASS_THROUGH}function B(a){let b=a?.get(e)?.trim().toLowerCase();return b===d.FULL_CATALOG||b===d.PROXY}},78335:()=>{},85432:(a,b,c)=>{"use strict";c.d(b,{Kt:()=>m,MH:()=>l,vA:()=>k});var d=c(15717),e=c(19978),f=c(94454),g=c(29696);let h="compatible-reasoning:snapshot";async function i(){let a="function"==typeof d.Fh?(0,d.Fh)({type:"openai-compatible"}):Promise.resolve([]),b="function"==typeof d.uv?(0,d.uv)():Promise.resolve([]),[c,e]=await Promise.all([Promise.resolve(a).catch(()=>[]),Promise.resolve(b).catch(()=>[])]),f=new Map,h=new Map;for(let a of c){if(!a?.id||!a?.prefix)continue;let b={id:a.id,apiType:"responses"===a.apiType?"responses":"chat",staticFormat:(0,g.ml)(a.baseUrl)};f.set(a.id,b),h.set(a.prefix,b)}let i=new Map;for(let a of e){if(!a?.providerAlias||!a?.id||"llm"!==(a.type||"llm"))continue;let b=h.get(a.providerAlias);b&&(0,g.K5)(a.reasoning)&&i.set(`${b.id}|${a.id}`,a.reasoning)}return{nodesById:f,prefixToNode:h,byModel:i}}let j={nodesById:new Map,prefixToNode:new Map,byModel:new Map};async function k(a=15e3){try{let b=await (0,e.PO)(h,i,a);b&&(j=b)}catch{}}function l(){(0,e.Y3)(h)}function m(a,b){let c=j.prefixToNode.get(a);if(!c)return null;let d=j.byModel.get(`${c.id}|${b}`);return d||("none"===c.staticFormat?{supported:!1,effort:null}:c.staticFormat?{supported:!0,effort:"qwen"===c.staticFormat?null:c.staticFormat}:null)}(0,f.xl)(function(a,b){var c,d,e,f;if(!a||!a.startsWith("openai-compatible-"))return null;let g=j.nodesById.get(a),h=j.byModel.get(`${a}|${b}`);return h?(c=h,d=g?.apiType||"chat",c.supported?"responses"===d?"openai-responses":"nested"===c.effort?"openai-nested":"openai":"none"):g?.staticFormat?(e=g.staticFormat,f=g.apiType,"none"===e?"none":"qwen"===e?"qwen":"responses"===f?"openai-responses":"nested"===e?"openai-nested":"openai"):null})},92770:(a,b,c)=>{"use strict";c.r(b),c.d(b,{DELETE:()=>V,GET:()=>R,POST:()=>T});var d=c(49796),e=c(23211),f=c(79646),g=c(28354),h=c(79748),i=c.n(h),j=c(33873),k=c.n(j),l=c(21820),m=c.n(l),n=c(63294),o=c(23628),p=c(95510),q=c(68393),r=c(15717),s=c(43904),t=c(85432),u=c(24424);let v=(0,g.promisify)(f.exec),w="switchboard",x=Promise.resolve(),y=a=>{let b=x.then(a,a);return x=b.catch(()=>{}),b},z=()=>k().join(m().homedir(),".pi","agent"),A=()=>k().join(z(),"models.json"),B=()=>k().join(z(),"settings.json"),C=()=>k().join(z(),"switchboard-backup.json"),D=()=>k().join(z(),"models.yml"),E=async()=>{try{let a="win32"===m().platform();return await v(a?"where pi":"which pi",{windowsHide:!0}),!0}catch{try{return await i().access(z()),!0}catch{return!1}}},F=async(a,b)=>{try{let b=await i().readFile(a,"utf-8"),c=JSON.parse(b);if(!c||"object"!=typeof c||Array.isArray(c))throw TypeError(`${a} must contain a JSON object`);return c}catch(a){if("ENOENT"===a.code)return b;throw a}},G=()=>F(A(),{providers:{}}),H=()=>F(B(),{}),I=async(a,b)=>{try{let b=await i().readFile(a,"utf-8"),c=""===b.trim()?{}:(0,n.qg)(b);if(!c||"object"!=typeof c||Array.isArray(c))throw TypeError(`${a} must contain a YAML object`);return c}catch(a){if("ENOENT"===a.code)return b;throw a}},J=()=>I(D(),{providers:{}}),K=a=>Array.isArray(a)?a.map(K):a&&"object"==typeof a?Object.fromEntries(Object.keys(a).sort().map(b=>[b,K(a[b])])):a,L=(a,b)=>JSON.stringify(K(a))===JSON.stringify(K(b)),M=a=>a&&"object"==typeof a&&"boolean"==typeof a.exists,N=a=>{if(null==a)return null;if(1===a.version&&"restored"===a.state)return a;if(1!==a.version||!M(a.provider)||!["defaultProvider","defaultModel","enabledModels"].every(b=>M(a.settings?.[b]))||!a.managedProvider||!a.managedSettings)throw Error("Unsupported or invalid Pi Switchboard backup file");return a},O=async(a,b,c,d)=>{await i().mkdir(z(),{recursive:!0}),await (0,p.M_)([{filePath:C(),content:d?JSON.stringify(d,null,2):null,secret:!0},{filePath:D(),content:(0,n.As)(a),secret:!0},{filePath:A(),content:JSON.stringify(b,null,2),secret:!0},{filePath:B(),content:JSON.stringify(c,null,2),secret:!0}])},P=(a,b,c)=>{("defaultProvider"!==c&&"defaultModel"!==c||a.defaultProvider===w)&&L(a[c],b?.managedSettings?.[c])&&(0,p.S3)(a,{[c]:b.settings?.[c]})};async function Q(){try{if(!await E())return e.NextResponse.json({installed:!1,settings:null,message:"Pi is not installed"});let[a,b,c]=await Promise.all([J(),G(),H()]),d=a?.providers?.[w]||null,f=d||b?.providers?.[w]||null,g=Array.isArray(d?.models)?d.models:Array.isArray(b?.providers?.[w]?.models)?b.providers[w].models:[],h=g.map(a=>a?.id).filter(Boolean),i=Object.fromEntries(g.filter(a=>a?.id&&a?.name).map(a=>[a.id,a.name])),j=(c.defaultProvider===w&&h.includes(c.defaultModel)?c.defaultModel:null)||h[0]||null,k=f?.baseUrl||null,l=!!(f&&(a=>{try{let b=new URL(String(a||"")).hostname.toLowerCase();return"localhost"===b||"0.0.0.0"===b||/^127(?:\.\d{1,3}){3}$/.test(b)}catch{return!1}})(k)),m=l&&h.length>0;return e.NextResponse.json({installed:!0,hasSwitchboard:l,settings:{baseUrl:k,model:j,defaultModel:j,models:h,pickerLabels:i,apiKeySet:!!f?.apiKey,provider:w,scopeConfigured:m},configPath:D(),settingsPath:B()})}catch(a){return console.log("Error checking pi settings:",a),e.NextResponse.json({error:"Failed to check pi settings"},{status:500})}}async function R(){return y(Q)}async function S(a){try{let b,c;try{b=await a.json()}catch{return e.NextResponse.json({error:"Invalid JSON body"},{status:400})}let{baseUrl:d,apiKey:f,model:g,models:h,defaultModel:i,pickerLabels:j}=b||{},[k,l,m,n]=await Promise.all([J(),G(),H(),F(C(),null)]),u=N(n),v=u?.state==="restored"?null:u,x=Array.isArray(k?.providers?.[w]?.models)?k.providers[w].models:Array.isArray(l?.providers?.[w]?.models)?l.providers[w].models:[],y=void 0===h?[g,...x.map(a=>a?.id)]:h,z=(0,o.rP)(y),A=void 0===j||j&&"object"==typeof j&&!Array.isArray(j)&&Object.values(j).every(a=>"string"==typeof a);if(!(0,o.uI)(d)||!(0,o.iU)(f)||0===z.length||!A)return e.NextResponse.json({error:"baseUrl, models, API key, or picker labels are invalid"},{status:400});let E=(c=String(d||"").replace(/\/+$/,"")).endsWith("/v1")?c:`${c}/v1`,I=f||"sk_switchboard",K=(0,o.F2)(i||g,z),L=(0,q.OU)(j,z);await (0,t.vA)().catch(()=>{});let M="function"==typeof r.Uv?await Promise.resolve((0,r.Uv)()).catch(()=>[]):[],P=new Map(M.map(a=>[a.name,a])),Q=(a,b=new Set)=>{try{let c=String(a||""),d=c.indexOf("/");if(d<=0){if(b.has(c))return null;b.add(c);let a=P.get(c);if(!a||!Array.isArray(a.models)||0===a.models.length)return null;let d=null;for(let c of a.models){let a=Q(String(c),b);if(a?.reasoning)return a;a&&!d&&(d=a)}return d}let e=c.slice(0,d),f=c.slice(d+1),g=(0,t.Kt)(e,f);if(g){let a=(0,s.nl)(e,f);return{reasoning:!0===g.supported,contextWindow:a.contextWindow||null}}let h=(0,s.nl)(e,f);return{reasoning:!0===h.reasoning,contextWindow:h.contextWindow||null}}catch{return null}},R=a=>{(!a.providers||"object"!=typeof a.providers||Array.isArray(a.providers))&&(a.providers={})};R(k),R(l);let S={baseUrl:E,api:"openai-completions",apiKey:I,authHeader:!0,compat:{supportsDeveloperRole:!1,supportsReasoningEffort:!0,supportsUsageInStreaming:!0},models:(0,o.L6)(z,x,L,Q)},T={...S,discovery:{type:"openai-models-list"}},U=v?.version===1?v:{version:1,state:"active",provider:(0,p.EA)(k.providers,[w])[w],legacyProvider:(0,p.EA)(l.providers,[w])[w],settings:(0,p.EA)(m,["defaultProvider","defaultModel","enabledModels"])};k.providers[w]=T,l.providers[w]=S,m.defaultProvider=w,m.defaultModel=K;let V=((a,b)=>{if(!Array.isArray(a)||0===a.length)return;let c=a.filter(a=>"string"!=typeof a||!a.startsWith(`${w}/`));if(0!==c.length)return[...c,...b]})(m.enabledModels,z.map(a=>`${w}/${a}`));return V?m.enabledModels=V:delete m.enabledModels,U.managedProvider=T,U.managedLegacyProvider=S,U.managedSettings={defaultProvider:w,defaultModel:K,enabledModels:m.enabledModels},await O(k,l,m,U),e.NextResponse.json({success:!0,message:`Pi configured with ${z.length} model${1===z.length?"":"s"}. ${K} is the default; use /model to switch.`,pickerLabels:Object.fromEntries(S.models.map(a=>[a.id,a.name])),configPath:D(),settingsPath:B()})}catch(a){return console.log("Error updating pi settings:",a),e.NextResponse.json({error:"Failed to update pi settings"},{status:500})}}async function T(a){return y(()=>S(a))}async function U(){try{let[a,b,c,d]=await Promise.all([J(),G(),H(),F(C(),null)]),f=N(d);if(f?.state==="restored")return e.NextResponse.json({success:!0,message:"No Switchboard Pi settings to reset"});let g=a?.providers?.[w],h=b?.providers?.[w],i=!!(g||h),j=c.defaultProvider===w||Array.isArray(c.enabledModels)&&c.enabledModels.some(a=>"string"==typeof a&&a.startsWith(`${w}/`));if(!f&&!i&&!j)return e.NextResponse.json({success:!0,message:"No Switchboard Pi settings to reset"});return g&&(!f?.managedProvider||L(g,f.managedProvider))&&(f?.version===1?(0,p.S3)(a.providers,{[w]:f.provider}):delete a.providers[w]),h&&(!f?.managedLegacyProvider||L(h,f.managedLegacyProvider))&&(f?.version===1?(0,p.S3)(b.providers,{[w]:f.legacyProvider??f.provider}):delete b.providers[w]),f?.version===1?(P(c,f,"defaultModel"),P(c,f,"defaultProvider"),P(c,f,"enabledModels")):c.defaultProvider===w&&(delete c.defaultProvider,delete c.defaultModel),!f&&Array.isArray(c.enabledModels)&&(c.enabledModels=c.enabledModels.filter(a=>"string"!=typeof a||!a.startsWith(`${w}/`)),0===c.enabledModels.length&&delete c.enabledModels),await O(a,b,c,{version:1,state:"restored"}),e.NextResponse.json({success:!0,message:"Switchboard provider removed and previous Pi model settings restored"})}catch(a){return console.log("Error resetting pi settings:",a),e.NextResponse.json({error:"Failed to reset pi settings"},{status:500})}}async function V(){return y(U)}(0,u.D)([R,T,V]),(0,d.A)(R,"00aa199c6f8bbdf4f87bda47577e187f5050531e12",null),(0,d.A)(T,"406402e252085aa042ce4c5cce2cddb80b058bfdaa",null),(0,d.A)(V,"003c578e219cef8190d529191c3de12643ab73a90e",null)},95510:(a,b,c)=>{"use strict";c.d(b,{EA:()=>i,M_:()=>h,S3:()=>j,Yb:()=>g});var d=c(51455),e=c.n(d),f=c(57781);async function g(a,b,{secret:c=!1}={}){if(await (0,f.R)(a,b,c?{encoding:"utf-8",mode:384}:"utf-8"),c)try{await e().chmod(a,384)}catch{}}async function h(a){let b=await Promise.all(a.map(async({filePath:a})=>{try{return{exists:!0,value:await e().readFile(a)}}catch(a){if(a?.code==="ENOENT")return{exists:!1,value:null};throw a}})),c=async({filePath:a,content:b,secret:c=!1})=>{if(null!==b)return void await g(a,b,{secret:c});try{await e().unlink(a)}catch(a){if(a?.code!=="ENOENT")throw a}};try{for(let b of a)await c(b)}catch(e){let d=(await Promise.allSettled(a.map(({filePath:a,secret:d=!1},e)=>c({filePath:a,content:b[e].exists?b[e].value:null,secret:d})))).filter(a=>"rejected"===a.status);if(d.length>0)throw AggregateError([e,...d.map(a=>a.reason)],"Failed to replace CLI files and roll them back cleanly");throw e}}function i(a,b){return Object.fromEntries(b.map(b=>[b,{exists:Object.hasOwn(a,b),value:a[b]}]))}function j(a,b){for(let[c,d]of Object.entries(b||{}))d?.exists?a[c]=d.value:delete a[c]}},96487:()=>{}};
|
|
5
|
+
`}function u(a){let b=o(a,f),c=(0,d.Tp)(p(a,f));if(c.errors.length)throw Error(`Invalid Hermes YAML: ${c.errors[0].message}`);let e=q(c.getIn(["custom_providers"]));if(Array.isArray(e)){let a=e.filter(a=>a?.name!=="switchboard");b?.previousProvider&&a.push(b.previousProvider),a.length?c.setIn(["custom_providers"],a):c.deleteIn(["custom_providers"])}return"custom:switchboard"===q(c.getIn(["model","provider"]))&&(b?.previousModel?c.setIn(["model"],b.previousModel):c.deleteIn(["model"])),c.toString()}function v(a,{baseUrl:b,apiKey:c,models:d,defaultModel:e}){let f=i(d),g=j(e,f);return{...a,model:`switchboard/${g}`,provider:{...a.provider||{},switchboard:{npm:"@ai-sdk/openai-compatible",name:"Switchboard",options:{apiKey:c,baseURL:b},models:Object.fromEntries(f.map(a=>[a,{name:k(a)}]))}}}}function w(a,{baseUrl:b,apiKey:c,models:d,defaultModel:e}){let f=i(d),g=j(e,f),h=a.providers||{},l=a.models||{};return{providers:{...h,providers:{...h.providers||{},switchboard:{type:"openai-compatible",name:"Switchboard",baseUrl:b,apiKey:c,defaultModelId:g}}},models:{...l,providers:{...l.providers||{},switchboard:{provider:{name:"Switchboard",baseUrl:b,defaultModelId:g},models:Object.fromEntries(f.map(a=>[a,{id:a,name:k(a)}]))}}}}}function x(a,{models:b,defaultModel:c}){let d=i(b),e=j(c,d),f=Object.fromEntries(Object.entries(a?.modelConfigs?.modelDefinitions&&"object"==typeof a.modelConfigs.modelDefinitions?a.modelConfigs.modelDefinitions:{}).filter(([,a])=>a?.family!=="switchboard"));return{...a,model:{...a.model||{},name:e},experimental:{...a.experimental||{},dynamicModelConfiguration:!0},modelConfigs:{...a.modelConfigs||{},modelDefinitions:{...f,...Object.fromEntries(d.map(a=>[a,{displayName:`Switchboard \xb7 ${k(a)}`,family:"switchboard",tier:"custom",isPreview:!1,isVisible:!0,features:{thinking:!0,multimodalToolUse:!0}}]))}}}}},47293:(a,b,c)=>{"use strict";c.d(b,{A:()=>f});let d=new Uint8Array(16);var e=c(50122);let f=function(a,b,c){return b||a||!crypto.randomUUID?function(a,b,c){let f=(a=a||{}).random??a.rng?.()??crypto.getRandomValues(d);if(f.length<16)throw Error("Random bytes length must be >= 16");if(f[6]=15&f[6]|64,f[8]=63&f[8]|128,b){if((c=c||0)<0||c+16>b.length)throw RangeError(`UUID byte range ${c}:${c+15} is out of buffer bounds`);for(let a=0;a<16;++a)b[c+a]=f[a];return b}return(0,e.k)(f)}(a,b,c):crypto.randomUUID()}},50122:(a,b,c)=>{"use strict";c.d(b,{k:()=>e});let d=[];for(let a=0;a<256;++a)d.push((a+256).toString(16).slice(1));function e(a,b=0){return(d[a[b+0]]+d[a[b+1]]+d[a[b+2]]+d[a[b+3]]+"-"+d[a[b+4]]+d[a[b+5]]+"-"+d[a[b+6]]+d[a[b+7]]+"-"+d[a[b+8]]+d[a[b+9]]+"-"+d[a[b+10]]+d[a[b+11]]+d[a[b+12]]+d[a[b+13]]+d[a[b+14]]+d[a[b+15]]).toLowerCase()}},57781:(a,b,c)=>{"use strict";c.d(b,{R:()=>h});var d=c(51455),e=c.n(d),f=c(76760),g=c.n(f);async function h(a,b,c="utf-8"){let d=g().dirname(a);await e().mkdir(d,{recursive:!0});let f=g().join(d,`.${g().basename(a)}.sb-tmp-${process.pid}-${Date.now()}-${Math.random().toString(36).slice(2,8)}`);try{await e().writeFile(f,b,c);try{let a=await e().open(f,"r+");try{await a.sync()}finally{await a.close()}}catch{}await e().rename(f,a)}catch(a){try{await e().unlink(f)}catch{}throw a}}},68393:(a,b,c)=>{"use strict";c.d(b,{AD:()=>x,El:()=>v,JF:()=>r,LU:()=>u,Ng:()=>o,OU:()=>t,Ro:()=>h,_1:()=>s,ao:()=>l,at:()=>B,i6:()=>A,iO:()=>w,s8:()=>z,wN:()=>y});let d=Object.freeze({PASS_THROUGH:"pass-through",PROXY:"proxy",FULL_CATALOG:"full-catalog"}),e="x-switchboard-claude-mode",f="x-switchboard-claude-models",g="x-switchboard-claude-labels",h="x-switchboard-key",i="claude-switchboard-v1/",j=/^(?:claude|anthropic)-[a-z0-9][a-z0-9._-]*$/i,k=Object.freeze(["ANTHROPIC_DEFAULT_OPUS_MODEL","ANTHROPIC_DEFAULT_OPUS_MODEL_NAME","ANTHROPIC_DEFAULT_OPUS_MODEL_DESCRIPTION","ANTHROPIC_DEFAULT_SONNET_MODEL","ANTHROPIC_DEFAULT_SONNET_MODEL_NAME","ANTHROPIC_DEFAULT_SONNET_MODEL_DESCRIPTION","ANTHROPIC_DEFAULT_FABLE_MODEL","ANTHROPIC_DEFAULT_FABLE_MODEL_NAME","ANTHROPIC_DEFAULT_FABLE_MODEL_DESCRIPTION","ANTHROPIC_DEFAULT_HAIKU_MODEL","ANTHROPIC_DEFAULT_HAIKU_MODEL_NAME","ANTHROPIC_DEFAULT_HAIKU_MODEL_DESCRIPTION"]);function l(a){let b=String(a||"");if(!b)return"";let c=0x811c9dc5;for(let a=0;a<b.length;a+=1)c^=b.charCodeAt(a),c=Math.imul(c,0x1000193);return(c>>>0).toString(16).padStart(8,"0")}let m=a=>a.replace(/(^|-)([a-z])/g,(a,b,c)=>`${b}${c.toUpperCase()}`);function n(a,b){if("string"!=typeof a)return"";for(let c of a.split(/\r?\n/)){let a=c.indexOf(":");if(!(a<0)&&c.slice(0,a).trim().toLowerCase()===b)return c.slice(a+1).trim()}return""}function o(a){return"string"==typeof a&&j.test(a)}function p(a){if(!Array.isArray(a))throw TypeError("Claude catalog models must be an array.");let b=[],c=new Set;for(let d of a){if("string"!=typeof d)throw TypeError("Each Claude catalog model must be a string.");let a=d.trim();if(a){if(/\r|\n/.test(a))throw TypeError("Claude catalog model IDs cannot contain newlines.");c.has(a)||(c.add(a),b.push(a))}}return b}function q(a){if("string"!=typeof a||!a.trim())return[];try{return p(JSON.parse(decodeURIComponent(a)))}catch{return[]}}function r(a){return q(n(a,f))}function s(a){return q(a?.get(f))}function t(a,b){if(!a||"object"!=typeof a||Array.isArray(a))return{};let c=new Set(p(b)),d={};for(let[b,e]of Object.entries(a)){if(!c.has(b))continue;let a=String(e||"").trim().replace(/[·•—–]/g," | ").replace(/[\r\n]+/g," ").replace(/\s+/g," ");a&&(d[b]=a.slice(0,48))}return d}function u(a){var b=a?.get(g);if("string"!=typeof b||!b.trim())return{};try{let a=JSON.parse(decodeURIComponent(b));return a&&"object"==typeof a&&!Array.isArray(a)?a:{}}catch{return{}}}function v(a){let b=String(a||"").trim();if(!b)throw TypeError("A Switchboard model ID is required.");let c=b.split("/").map(encodeURIComponent).join("/");return`${i}${c}`}function w(a){if("string"!=typeof a||!a.startsWith(i))return null;let b=a.slice(i.length);if(!b)return null;try{let c=b.split("/").map(decodeURIComponent).join("/");return v(c)===a?c:null}catch{return null}}function x({baseUrl:a,gatewayKey:b,models:c=[],pickerLabels:h={}}){let i=String(a||"").trim().replace(/\/+$/,""),j=String(b||"").trim();if(!i)throw TypeError("A Switchboard endpoint is required.");if(!j)throw TypeError("A Switchboard API key is required.");let l=p(c),n=t(h,l),o=function(a=[],b={}){let c=p(a),h=[`${m(e)}: ${d.FULL_CATALOG}`,`${m(f)}: ${encodeURIComponent(JSON.stringify(p(c)))}`],i=function(a,b={}){let c=t(b,a);return 0===Object.keys(c).length?"":encodeURIComponent(JSON.stringify(c))}(c,b);return i&&h.push(`${m(g)}: ${i}`),h.join("\n")}(l,n);if(new TextEncoder().encode(o).byteLength>7168)throw TypeError("This catalog is too large for Claude Code request headers. Remove models or shorten picker labels.");let q={ANTHROPIC_API_KEY:"",ANTHROPIC_AUTH_TOKEN:j,ANTHROPIC_BASE_URL:i.endsWith("/v1")?i:`${i}/v1`,ANTHROPIC_CUSTOM_HEADERS:o,ANTHROPIC_CUSTOM_MODEL_OPTION:"",CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY:"1"};for(let a of k)q[a]="";return{env:q,pickerLabels:n}}function y(a){return n(a,e).toLowerCase()===d.PASS_THROUGH}function z(a){let b=n(a,e).toLowerCase();return b===d.FULL_CATALOG||b===d.PROXY}function A(a){return a?.get(e)?.trim().toLowerCase()===d.PASS_THROUGH}function B(a){let b=a?.get(e)?.trim().toLowerCase();return b===d.FULL_CATALOG||b===d.PROXY}},78335:()=>{},85432:(a,b,c)=>{"use strict";c.d(b,{Kt:()=>m,MH:()=>l,vA:()=>k});var d=c(15717),e=c(19978),f=c(94454),g=c(29696);let h="compatible-reasoning:snapshot";async function i(){let a="function"==typeof d.Fh?(0,d.Fh)({type:"openai-compatible"}):Promise.resolve([]),b="function"==typeof d.uv?(0,d.uv)():Promise.resolve([]),[c,e]=await Promise.all([Promise.resolve(a).catch(()=>[]),Promise.resolve(b).catch(()=>[])]),f=new Map,h=new Map;for(let a of c){if(!a?.id||!a?.prefix)continue;let b={id:a.id,apiType:"responses"===a.apiType?"responses":"chat",staticFormat:(0,g.ml)(a.baseUrl)};f.set(a.id,b),h.set(a.prefix,b)}let i=new Map;for(let a of e){if(!a?.providerAlias||!a?.id||"llm"!==(a.type||"llm"))continue;let b=h.get(a.providerAlias);b&&(0,g.K5)(a.reasoning)&&i.set(`${b.id}|${a.id}`,a.reasoning)}return{nodesById:f,prefixToNode:h,byModel:i}}let j={nodesById:new Map,prefixToNode:new Map,byModel:new Map};async function k(a=15e3){try{let b=await (0,e.PO)(h,i,a);b&&(j=b)}catch{}}function l(){(0,e.Y3)(h)}function m(a,b){let c=j.prefixToNode.get(a);if(!c)return null;let d=j.byModel.get(`${c.id}|${b}`);return d||("none"===c.staticFormat?{supported:!1,effort:null}:c.staticFormat?{supported:!0,effort:"qwen"===c.staticFormat?null:c.staticFormat}:null)}(0,f.xl)(function(a,b){var c,d,e,f;if(!a||!a.startsWith("openai-compatible-"))return null;let g=j.nodesById.get(a),h=j.byModel.get(`${a}|${b}`);return h?(c=h,d=g?.apiType||"chat",c.supported?"responses"===d?"openai-responses":"nested"===c.effort?"openai-nested":"openai":"none"):g?.staticFormat?(e=g.staticFormat,f=g.apiType,"none"===e?"none":"qwen"===e?"qwen":"responses"===f?"openai-responses":"nested"===e?"openai-nested":"openai"):null})},92770:(a,b,c)=>{"use strict";c.r(b),c.d(b,{DELETE:()=>V,GET:()=>R,POST:()=>T});var d=c(49796),e=c(23211),f=c(79646),g=c(28354),h=c(79748),i=c.n(h),j=c(33873),k=c.n(j),l=c(21820),m=c.n(l),n=c(63294),o=c(23628),p=c(95510),q=c(68393),r=c(15717),s=c(43904),t=c(85432),u=c(24424);let v=(0,g.promisify)(f.exec),w="switchboard",x=Promise.resolve(),y=a=>{let b=x.then(a,a);return x=b.catch(()=>{}),b},z=()=>k().join(m().homedir(),".pi","agent"),A=()=>k().join(z(),"models.json"),B=()=>k().join(z(),"settings.json"),C=()=>k().join(z(),"switchboard-backup.json"),D=()=>k().join(z(),"models.yml"),E=async()=>{try{let a="win32"===m().platform();return await v(a?"where pi":"which pi",{windowsHide:!0}),!0}catch{try{return await i().access(z()),!0}catch{return!1}}},F=async(a,b)=>{try{let b=await i().readFile(a,"utf-8"),c=JSON.parse(b);if(!c||"object"!=typeof c||Array.isArray(c))throw TypeError(`${a} must contain a JSON object`);return c}catch(a){if("ENOENT"===a.code)return b;throw a}},G=()=>F(A(),{providers:{}}),H=()=>F(B(),{}),I=async(a,b)=>{try{let b=await i().readFile(a,"utf-8"),c=""===b.trim()?{}:(0,n.qg)(b);if(!c||"object"!=typeof c||Array.isArray(c))throw TypeError(`${a} must contain a YAML object`);return c}catch(a){if("ENOENT"===a.code)return b;throw a}},J=()=>I(D(),{providers:{}}),K=a=>Array.isArray(a)?a.map(K):a&&"object"==typeof a?Object.fromEntries(Object.keys(a).sort().map(b=>[b,K(a[b])])):a,L=(a,b)=>JSON.stringify(K(a))===JSON.stringify(K(b)),M=a=>a&&"object"==typeof a&&"boolean"==typeof a.exists,N=a=>{if(null==a)return null;if(1===a.version&&"restored"===a.state)return a;if(1!==a.version||!M(a.provider)||!["defaultProvider","defaultModel","enabledModels"].every(b=>M(a.settings?.[b]))||!a.managedProvider||!a.managedSettings)throw Error("Unsupported or invalid Pi Switchboard backup file");return a},O=async(a,b,c,d)=>{await i().mkdir(z(),{recursive:!0}),await (0,p.M_)([{filePath:C(),content:d?JSON.stringify(d,null,2):null,secret:!0},{filePath:D(),content:(0,n.As)(a),secret:!0},{filePath:A(),content:JSON.stringify(b,null,2),secret:!0},{filePath:B(),content:JSON.stringify(c,null,2),secret:!0}])},P=(a,b,c)=>{("defaultProvider"!==c&&"defaultModel"!==c||a.defaultProvider===w)&&L(a[c],b?.managedSettings?.[c])&&(0,p.S3)(a,{[c]:b.settings?.[c]})};async function Q(){try{if(!await E())return e.NextResponse.json({installed:!1,settings:null,message:"Pi is not installed"});let[a,b,c]=await Promise.all([J(),G(),H()]),d=a?.providers?.[w]||null,f=d||b?.providers?.[w]||null,g=Array.isArray(d?.models)?d.models:Array.isArray(b?.providers?.[w]?.models)?b.providers[w].models:[],h=g.map(a=>a?.id).filter(Boolean),i=Object.fromEntries(g.filter(a=>a?.id&&a?.name).map(a=>[a.id,a.name])),j=(c.defaultProvider===w&&h.includes(c.defaultModel)?c.defaultModel:null)||h[0]||null,k=f?.baseUrl||null,l=!!(f&&(a=>{try{let b=new URL(String(a||"")).hostname.toLowerCase();return"localhost"===b||"0.0.0.0"===b||/^127(?:\.\d{1,3}){3}$/.test(b)}catch{return!1}})(k)),m=l&&h.length>0;return e.NextResponse.json({installed:!0,hasSwitchboard:l,settings:{baseUrl:k,model:j,defaultModel:j,models:h,pickerLabels:i,apiKeySet:!!f?.apiKey,provider:w,scopeConfigured:m},configPath:D(),settingsPath:B()})}catch(a){return console.log("Error checking pi settings:",a),e.NextResponse.json({error:"Failed to check pi settings"},{status:500})}}async function R(){return y(Q)}async function S(a){try{let b,c;try{b=await a.json()}catch{return e.NextResponse.json({error:"Invalid JSON body"},{status:400})}let{baseUrl:d,apiKey:f,model:g,models:h,defaultModel:i,pickerLabels:j}=b||{},[k,l,m,n]=await Promise.all([J(),G(),H(),F(C(),null)]),u=N(n),v=u?.state==="restored"?null:u,x=Array.isArray(k?.providers?.[w]?.models)?k.providers[w].models:Array.isArray(l?.providers?.[w]?.models)?l.providers[w].models:[],y=void 0===h?[g,...x.map(a=>a?.id)]:h,z=(0,o.rP)(y),A=void 0===j||j&&"object"==typeof j&&!Array.isArray(j)&&Object.values(j).every(a=>"string"==typeof a);if(!(0,o.uI)(d)||!(0,o.iU)(f)||0===z.length||!A)return e.NextResponse.json({error:"baseUrl, models, API key, or picker labels are invalid"},{status:400});let E=(c=String(d||"").replace(/\/+$/,"")).endsWith("/v1")?c:`${c}/v1`,I=f||"sk_switchboard",K=(0,o.F2)(i||g,z),L=(0,q.OU)(j,z);await (0,t.vA)().catch(()=>{});let M="function"==typeof r.Uv?await Promise.resolve((0,r.Uv)()).catch(()=>[]):[],P=new Map(M.map(a=>[a.name,a])),Q=(a,b=new Set)=>{try{let c=String(a||""),d=c.indexOf("/");if(d<=0){if(b.has(c))return null;b.add(c);let a=P.get(c);if(!a||!Array.isArray(a.models)||0===a.models.length)return null;let d=null;for(let c of a.models){let a=Q(String(c),b);if(a?.reasoning)return a;a&&!d&&(d=a)}return d}let e=c.slice(0,d),f=c.slice(d+1),g=(0,t.Kt)(e,f);if(g){let a=(0,s.nl)(e,f);return{reasoning:!0===g.supported,contextWindow:a.contextWindow||null}}let h=(0,s.nl)(e,f);return{reasoning:!0===h.reasoning,contextWindow:h.contextWindow||null}}catch{return null}},R=a=>{(!a.providers||"object"!=typeof a.providers||Array.isArray(a.providers))&&(a.providers={})};R(k),R(l);let S={baseUrl:E,api:"openai-completions",apiKey:I,authHeader:!0,compat:{supportsDeveloperRole:!1,supportsReasoningEffort:!0,supportsUsageInStreaming:!0},models:(0,o.L6)(z,x,L,Q)},T={...S,discovery:{type:"openai-models-list"}},U=v?.version===1?v:{version:1,state:"active",provider:(0,p.EA)(k.providers,[w])[w],legacyProvider:(0,p.EA)(l.providers,[w])[w],settings:(0,p.EA)(m,["defaultProvider","defaultModel","enabledModels"])};k.providers[w]=T,l.providers[w]=S,m.defaultProvider=w,m.defaultModel=K;let V=((a,b)=>{if(!Array.isArray(a)||0===a.length)return;let c=a.filter(a=>"string"!=typeof a||!a.startsWith(`${w}/`));if(0!==c.length)return[...c,...b]})(m.enabledModels,z.map(a=>`${w}/${a}`));return V?m.enabledModels=V:delete m.enabledModels,U.managedProvider=T,U.managedLegacyProvider=S,U.managedSettings={defaultProvider:w,defaultModel:K,enabledModels:m.enabledModels},await O(k,l,m,U),e.NextResponse.json({success:!0,message:`Pi configured with ${z.length} model${1===z.length?"":"s"}. ${K} is the default; use /model to switch.`,pickerLabels:Object.fromEntries(S.models.map(a=>[a.id,a.name])),configPath:D(),settingsPath:B()})}catch(a){return console.log("Error updating pi settings:",a),e.NextResponse.json({error:"Failed to update pi settings"},{status:500})}}async function T(a){return y(()=>S(a))}async function U(){try{let[a,b,c,d]=await Promise.all([J(),G(),H(),F(C(),null)]),f=N(d);if(f?.state==="restored")return e.NextResponse.json({success:!0,message:"No Switchboard Pi settings to reset"});let g=a?.providers?.[w],h=b?.providers?.[w],i=!!(g||h),j=c.defaultProvider===w||Array.isArray(c.enabledModels)&&c.enabledModels.some(a=>"string"==typeof a&&a.startsWith(`${w}/`));if(!f&&!i&&!j)return e.NextResponse.json({success:!0,message:"No Switchboard Pi settings to reset"});return g&&(!f?.managedProvider||L(g,f.managedProvider))&&(f?.version===1?(0,p.S3)(a.providers,{[w]:f.provider}):delete a.providers[w]),h&&(!f?.managedLegacyProvider||L(h,f.managedLegacyProvider))&&(f?.version===1?(0,p.S3)(b.providers,{[w]:f.legacyProvider??f.provider}):delete b.providers[w]),f?.version===1?(P(c,f,"defaultModel"),P(c,f,"defaultProvider"),P(c,f,"enabledModels")):c.defaultProvider===w&&(delete c.defaultProvider,delete c.defaultModel),!f&&Array.isArray(c.enabledModels)&&(c.enabledModels=c.enabledModels.filter(a=>"string"!=typeof a||!a.startsWith(`${w}/`)),0===c.enabledModels.length&&delete c.enabledModels),await O(a,b,c,{version:1,state:"restored"}),e.NextResponse.json({success:!0,message:"Switchboard provider removed and previous Pi model settings restored"})}catch(a){return console.log("Error resetting pi settings:",a),e.NextResponse.json({error:"Failed to reset pi settings"},{status:500})}}async function V(){return y(U)}(0,u.D)([R,T,V]),(0,d.A)(R,"009d0eb8b816d1fdc0eb85cef783df8c77f7c6598f",null),(0,d.A)(T,"40c4d31a04cb415def2f3597895d97bf3b95c15820",null),(0,d.A)(V,"00f52ab992a3d7de3f8cef42cb88fa8d309d98579b",null)},95510:(a,b,c)=>{"use strict";c.d(b,{EA:()=>i,M_:()=>h,S3:()=>j,Yb:()=>g});var d=c(51455),e=c.n(d),f=c(57781);async function g(a,b,{secret:c=!1}={}){if(await (0,f.R)(a,b,c?{encoding:"utf-8",mode:384}:"utf-8"),c)try{await e().chmod(a,384)}catch{}}async function h(a){let b=await Promise.all(a.map(async({filePath:a})=>{try{return{exists:!0,value:await e().readFile(a)}}catch(a){if(a?.code==="ENOENT")return{exists:!1,value:null};throw a}})),c=async({filePath:a,content:b,secret:c=!1})=>{if(null!==b)return void await g(a,b,{secret:c});try{await e().unlink(a)}catch(a){if(a?.code!=="ENOENT")throw a}};try{for(let b of a)await c(b)}catch(e){let d=(await Promise.allSettled(a.map(({filePath:a,secret:d=!1},e)=>c({filePath:a,content:b[e].exists?b[e].value:null,secret:d})))).filter(a=>"rejected"===a.status);if(d.length>0)throw AggregateError([e,...d.map(a=>a.reason)],"Failed to replace CLI files and roll them back cleanly");throw e}}function i(a,b){return Object.fromEntries(b.map(b=>[b,{exists:Object.hasOwn(a,b),value:a[b]}]))}function j(a,b){for(let[c,d]of Object.entries(b||{}))d?.exists?a[c]=d.value:delete a[c]}},96487:()=>{}};
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
"use strict";exports.id=7828,exports.ids=[7828],exports.modules={7803:(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)}`}},15186:(a,b,c)=>{c.d(b,{Ou:()=>k,eG:()=>j});var d=c(28730),e=c(4630),f=c(46052);let g=new Map,h=new Map,i=null;async function j(a,b,c="gemini-cli",d=null){if(!a||!b)return null;let e=g.get(a);if(e&&Date.now()-e.fetchedAt<36e5)return e.projectId;if(h.has(a))return h.get(a).promise;let f=new AbortController,i=(async()=>{try{let e=await l(b,f.signal,c,d);if(e)return g.set(a,{projectId:e,fetchedAt:Date.now()}),e;return console.warn("[ProjectId] could not fetch projectId for connection",a.slice(0,8)),null}catch(a){return console.warn(`[ProjectId] Error fetching project ID: ${a.message}`),null}finally{h.delete(a)}})();return h.set(a,{promise:i,controller:f,startedAt:Date.now()}),i}function k(a){g.delete(a)}async function l(a,b,c,g){let h=e.xq[c]||e.xq["gemini-cli"],i=await (0,f.Fm)(d.nZ.loadCodeAssist,{method:"POST",headers:{...d.Ic,Authorization:`Bearer ${a}`},body:JSON.stringify({metadata:d.zv}),signal:b,identity:h.identity,provider:c,format:h.format},g);if(!i.ok){let a=await i.text().catch(()=>"");throw Error(`loadCodeAssist failed: HTTP ${i.status} ${a.slice(0,200)}`)}let j=await i.json(),k=function(a){if(!a)return null;if("string"==typeof a.cloudaicompanionProject){let b=a.cloudaicompanionProject.trim();if(b)return b}if(a.cloudaicompanionProject&&"object"==typeof a.cloudaicompanionProject){let b=a.cloudaicompanionProject.id;if("string"==typeof b&&b.trim())return b.trim()}return null}(j);if(k)return k;let l="legacy-tier";if(Array.isArray(j.allowedTiers)){for(let a of j.allowedTiers)if(a&&"object"==typeof a&&!0===a.isDefault&&a.id&&"string"==typeof a.id&&a.id.trim()){l=a.id.trim();break}}return m(a,l,b,c,g)}async function m(a,b,c,g,h){console.log(`[ProjectId] Onboarding user with tier: ${b}`);let i={tierId:b,metadata:d.zv};for(let b=1;b<=5&&!c?.aborted;b++){let j=new AbortController,k=setTimeout(()=>j.abort(),3e4),l=()=>j.abort();c?.addEventListener("abort",l);try{let c=e.xq[g]||e.xq["gemini-cli"],l=await (0,f.Fm)(d.nZ.onboardUser,{method:"POST",headers:{...d.Ic,Authorization:`Bearer ${a}`},body:JSON.stringify(i),signal:j.signal,identity:c.identity,provider:g,format:c.format},h);if(clearTimeout(k),!l.ok){let a=await l.text().catch(()=>"");throw Error(`onboardUser HTTP ${l.status}: ${a.slice(0,200)}`)}let m=await l.json();if(!0===m.done){let a=function(a){if(!a?.response)return null;let b=a.response.cloudaicompanionProject;if("string"==typeof b){let a=b.trim();if(a)return a}if(b&&"object"==typeof b){let a=b.id;if("string"==typeof a&&a.trim())return a.trim()}return null}(m);if(a)return console.log(`[ProjectId] Successfully onboarded, project ID: ${a}`),a;throw Error("onboardUser done but no project_id in response")}console.log(`[ProjectId] Onboard attempt ${b}/5: not done yet, waiting...`),await new Promise(a=>setTimeout(a,2e3))}catch(a){if(clearTimeout(k),"AbortError"===a.name){if(console.warn(`[ProjectId] onboardUser attempt ${b} aborted (timeout or connection removed)`),c?.aborted)return null;continue}if(5===b)return console.warn(`[ProjectId] onboardUser failed after 5 attempts: ${a.message}`),null;console.warn(`[ProjectId] onboardUser attempt ${b} failed: ${a.message}, retrying...`),await new Promise(a=>setTimeout(a,2e3))}finally{clearTimeout(k),c?.removeEventListener("abort",l)}}return null}i=setInterval(()=>{try{let a=Date.now();for(let[b,c]of g)(!c||a-c.fetchedAt>=36e5)&&g.delete(b);for(let[b,c]of h){if(!c||"number"!=typeof c.startedAt){h.delete(b);continue}if(a-c.startedAt>12e4){try{c.controller.abort()}catch(a){}h.delete(b)}}}catch(a){console.warn("[ProjectId] cleanup sweep error:",a?.message??a)}},6e5),i?.unref?.()},38775:(a,b,c)=>{c.d(b,{getComboModels:()=>l,getModelInfo:()=>k});var d=c(15717),e=c(66451),f=c(39698),g=c(68393);let h={xmtp:"xiaomi-tokenplan","xiaomi-tokenplan":"xiaomi-tokenplan"},i=new Set(Object.keys(h));for(let a of f.A)for(let b of(i.add(a.id),a.alias&&i.add(a.alias),a.aliases||[]))i.add(b);async function j(a){let b=await (0,d.OM)();return(0,e.sc)(a,b)}async function k(a){let b,c=(0,g.iO)(a)||a,f=await j(c);if(f)return!f.provider&&f.model&&await (0,d.Dj)(f.model)?{provider:null,model:f.model}:f;let k=(b=(0,e.Xh)(c),b?.providerAlias&&h[b.providerAlias]?{...b,provider:h[b.providerAlias]}:b);if(!k.isAlias){if(!i.has(k.providerAlias)){let a=(await (0,d.Fh)({type:"openai-compatible"})).find(a=>a.prefix===k.providerAlias);if(a)return{provider:a.id,model:k.model};let b=(await (0,d.Fh)({type:"anthropic-compatible"})).find(a=>a.prefix===k.providerAlias);if(b)return{provider:b.id,model:k.model};let c=(await (0,d.Fh)({type:"custom-embedding"})).find(a=>a.prefix===k.providerAlias);if(c)return{provider:c.id,model:k.model}}return{provider:k.provider,model:k.model}}return await (0,d.Dj)(k.model)?{provider:null,model:k.model}:(0,e.js)(c,d.OM)}async function l(a){let b=(0,g.iO)(a)||a;if(b.includes("/"))return null;let c=await (0,d.Dj)(b);return c&&c.models&&c.models.length>0?c.models:null}},40863:(a,b,c)=>{var d=c(12407),e=c(15717),f=c(2142),g=c(38775),h=c(34772),i=c(33234);let j=!1;j=!0,(0,d.qd)({getSettings:e.mt,loadProviderQuotaState:i.l,saveProviderQuotaState:i._,trackPendingRequest:e.uw,appendRequestLog:e.E5,saveRequestDetail:e.ox,saveRequestUsage:e.sZ,getRoutingEvents:f.Kx,getClusterWorkerStats:f.GU,getPromotedLearningVersion:f.p3,createLearningVersion:f.Hr,countRoutingEvents:f.f8,listCombosWithRoutingEvents:f.dC,getLastScheduledLearnAt:f.HP,getClusterLatencyP50:f._6,getComboModels:g.getComboModels,getVaultEntry:h.Bl,putVaultEntry:h.M8,searchVault:h.$s,cleanupExpiredVault:h.ui,buildExternalIdpRefreshParams:async(...a)=>(await c.e(8080).then(c.bind(c,18080))).buildExternalIdpRefreshParams(...a),createXaiService:async()=>new(await Promise.all([c.e(9091),c.e(7557)]).then(c.bind(c,37557))).XaiService,fetchKiroProfileArn:async(...a)=>(await Promise.all([c.e(7774),c.e(4646),c.e(3904),c.e(4454),c.e(6406),c.e(9261),c.e(1937),c.e(8400),c.e(369),c.e(1837),c.e(9091)]).then(c.bind(c,74177))).fetchKiroProfileArn(...a)})},64254:(a,b,c)=>{c.d(b,{u:()=>n});var d=c(79748),e=c(21820),f=c(33873),g=c(79646);let h=(0,c(28354).promisify)(g.execFile),i=["cursorAuth/accessToken","cursorAuth/token"],j=["storage.serviceMachineId","storage.machineId","telemetry.machineId"];function k(a){if("string"!=typeof a)return a;try{let b=JSON.parse(a);return"string"==typeof b?b:a}catch{return a}}async function l(a){let{default:b}=await Promise.resolve().then(c.t.bind(c,87550,23)),d=new b(a,{readonly:!0,fileMustExist:!0});try{let a=[...i,...j],b=a.map(()=>"?").join(", "),c=d.prepare(`SELECT key, value FROM itemTable WHERE key IN (${b})`).all(...a),e=new Map(c.map(({key:a,value:b})=>[a,k(b)])),f=i.map(a=>e.get(a)).find(Boolean)||null,g=j.map(a=>e.get(a)).find(Boolean)||null;if(!f||!g)for(let{key:a,value:b}of d.prepare("SELECT key, value FROM itemTable WHERE key LIKE ? OR key LIKE ?").all("%accessToken%","%machineId%")){let c=k(b);!f&&/access.?token/i.test(a)&&(f=c),!g&&/machine.?id/i.test(a)&&(g=c)}return{accessToken:f,machineId:g}}finally{d.close()}}async function m(a){let b=async b=>{let{stdout:c}=await h("sqlite3",[a,b],{timeout:1e4});return c.trim()};try{await b("SELECT 1 FROM itemTable LIMIT 1")}catch{return{accessToken:null,machineId:null,opened:!1}}let c=null;for(let a of i)try{let d=await b(`SELECT value FROM itemTable WHERE key='${a}' LIMIT 1`);if(d){c=k(d.trim());break}}catch{}let d=null;for(let a of j)try{let c=await b(`SELECT value FROM itemTable WHERE key='${a}' LIMIT 1`);if(c){d=k(c.trim());break}}catch{}return{accessToken:c,machineId:d,opened:!0}}async function n(a={}){let b=a.platform||process.platform;if(!["darwin","win32","linux"].includes(b))return{found:!1,error:"Unsupported platform"};let c=function(a=process.platform){let b=(0,e.homedir)();if("darwin"===a)return[(0,f.join)(b,"Library/Application Support/Cursor/User/globalStorage/state.vscdb"),(0,f.join)(b,"Library/Application Support/Cursor - Insiders/User/globalStorage/state.vscdb")];if("win32"===a){let a=process.env.APPDATA||(0,f.join)(b,"AppData","Roaming"),c=process.env.LOCALAPPDATA||(0,f.join)(b,"AppData","Local");return[(0,f.join)(a,"Cursor","User","globalStorage","state.vscdb"),(0,f.join)(a,"Cursor - Insiders","User","globalStorage","state.vscdb"),(0,f.join)(c,"Cursor","User","globalStorage","state.vscdb"),(0,f.join)(c,"Programs","Cursor","User","globalStorage","state.vscdb")]}return[(0,f.join)(b,".config/Cursor/User/globalStorage/state.vscdb"),(0,f.join)(b,".config/cursor/User/globalStorage/state.vscdb")]}(b),g=null;for(let a of c)try{await (0,d.access)(a,d.constants.R_OK),g=a;break}catch{}if(!g){let a="darwin"===b?"known macOS locations":"known locations";return{found:!1,error:`Cursor database not found in ${a}:
|
|
2
|
+
${c.join("\n")}
|
|
3
|
+
|
|
4
|
+
Make sure Cursor IDE is installed and opened at least once.`}}if("linux"===b&&!1!==a.verifyLinuxInstall){let a=!1;try{await h("which",["cursor"],{timeout:5e3}),a=!0}catch{try{await (0,d.access)((0,f.join)((0,e.homedir)(),".local/share/applications/cursor.desktop"),d.constants.R_OK),a=!0}catch{}}if(!a)return{found:!1,error:"Cursor config files found but Cursor IDE does not appear to be installed. Skipping auto-import."}}let i=null;try{let a=await l(g);if(a.accessToken&&a.machineId)return{found:!0,...a,dbPath:g}}catch(a){i=a}let j=!1;try{let a=await m(g);if(j=a.opened,a.accessToken&&a.machineId)return{found:!0,accessToken:a.accessToken,machineId:a.machineId,dbPath:g}}catch{}return i&&!j?{found:!1,error:`Cursor database was found but could not open it: ${i.message}`}:{found:!1,windowsManual:"win32"===b,error:"Please login to Cursor IDE first, then restart Switchboard to import its credentials.",dbPath:g}}},67828:(a,b,c)=>{c.d(b,{I9:()=>l,Yx:()=>m,eU:()=>p,vN:()=>o}),c(40863);var d=c(7803),e=c(15717),f=c(64254),g=c(15186),h=c(41029),i=c(18129),j=c(49263);let k=h.oD,l=(a,b,c)=>(0,h.I9)(a,b,c,d);async function m(a,b={}){if(a?.providerSpecificData?.authMethod!=="imported"||!b.force&&!(0,i.fp)("cursor",a))return a;try{let b=await (0,f.u)();if(!b.found||!b.accessToken||!b.machineId)return a;let c={...a.providerSpecificData||{},machineId:b.machineId,authMethod:"imported"},d=n(86400),e={...a,accessToken:b.accessToken,expiresIn:86400,expiresAt:d,providerSpecificData:c},g=b.accessToken!==a.accessToken||b.machineId!==a.providerSpecificData?.machineId||(0,i.fp)("cursor",a),h=a.connectionId||a.id;return g&&h&&await o(h,{accessToken:b.accessToken,expiresIn:86400,providerSpecificData:{machineId:b.machineId,authMethod:"imported"},existingProviderSpecificData:a.providerSpecificData||{}}),e}catch(b){return d.warn("TOKEN_REFRESH","Could not reload imported Cursor credentials",{connectionId:a.connectionId||a.id||null,error:b?.message||String(b)}),a}}function n(a){return new Date(Date.now()+1e3*a).toISOString()}async function o(a,b){try{let c,f={},g=(0,i.Jj)(a,b);b.accessToken&&(f.accessToken=b.accessToken),b.refreshToken&&(f.refreshToken=b.refreshToken),b.idToken&&(f.idToken=b.idToken),b.lastRefreshAt&&(f.lastRefreshAt=b.lastRefreshAt),b.expiresAt&&(f.expiresAt=b.expiresAt);let h=g?.expiresAt??(b.expiresAt?new Date(b.expiresAt).getTime():null);for(let a of(Number.isFinite(h)?(f.expiresAt=new Date(h).toISOString(),f.expiresIn=Math.max(0,Math.ceil((h-Date.now())/1e3))):b.expiresIn&&(f.expiresAt=n(b.expiresIn),f.expiresIn=b.expiresIn),b.providerSpecificData&&(f.providerSpecificData={...b.existingProviderSpecificData||{},...b.providerSpecificData}),(b.copilotToken||b.copilotTokenExpiresAt)&&(f.providerSpecificData={...f.providerSpecificData||b.existingProviderSpecificData||{},...b.copilotToken?{copilotToken:b.copilotToken}:{},...b.copilotTokenExpiresAt?{copilotTokenExpiresAt:b.copilotTokenExpiresAt}:{}}),b.projectId&&(f.projectId=b.projectId),["testStatus","lastError","lastErrorAt"]))a in b&&(f[a]=b[a]);if(b.reauthRequired&&(f.testStatus=j.RU),g){let d={...f},h={};for(let a of["testStatus","lastError","lastErrorAt"])a in d&&(h[a]=d[a],delete d[a]);(b.providerSpecificData||b.copilotToken||b.copilotTokenExpiresAt)&&(d.providerSpecificData={...g.providerSpecificUpdates,...b.copilotToken?{copilotToken:b.copilotToken}:{},...b.copilotTokenExpiresAt?{copilotTokenExpiresAt:b.copilotTokenExpiresAt}:{}}),(c=await (0,e.rS)(a,g.source,d))&&Object.keys(h).length>0&&await (0,e.$v)(a,g.source,h)}else c=await (0,e.updateProviderConnection)(a,f);return d.info("TOKEN_REFRESH","Credentials updated in localDb",{connectionId:a,success:!!c}),!!c}catch(b){return d.error("TOKEN_REFRESH","Error updating credentials in localDb",{connectionId:a,error:b.message}),!1}}async function p(a,b,c={}){let f={...b};!f.connectionId&&f.id&&(f.connectionId=f.id);let j=c?.force===!0;if("cursor"===a&&(f=await m(f)),j||(0,i.fp)(a,f)){let b=f.expiresAt?new Date(f.expiresAt).getTime():null,c=b?b-Date.now():null,j=(0,h.Og)(a);d.info("TOKEN_REFRESH","Refreshing provider credentials proactively",{provider:a,expiresIn:null===c?null:Math.round(c/1e3),refreshLeadMs:j,lastRefreshAt:f.lastRefreshAt||null});let k=null;try{k=await (0,i.Vq)(a,f,d)}catch(b){d.warn("TOKEN_REFRESH","Provider credential refresh failed; using existing credentials",{provider:a,error:b?.message||String(b)})}if(k?.accessToken||k?.apiKey||k?.copilotToken){let b={...k,existingProviderSpecificData:f.providerSpecificData};if(!await o(f.connectionId,b)){let a=await (0,e.Mc)(f.connectionId);if(a?.accessToken)return{...f,...a,connectionId:f.connectionId}}let c=(0,i.Jj)(f.connectionId,k),h=Number.isFinite(c?.expiresAt)?new Date(c.expiresAt).toISOString():function(a){if(!a)return null;let b=new Date(a);return Number.isFinite(b.getTime())?b.toISOString():null}(k.expiresAt);!function(a,b,c){("antigravity"===a||"gemini-cli"===a)&&b&&c&&((0,g.Ou)(b),(0,g.eG)(b,c,a).then(a=>{a&&o(b,{projectId:a}).catch(a=>{d.debug("TOKEN_REFRESH","Failed to persist refreshed projectId",{connectionId:b,error:a?.message??a})})}).catch(a=>{d.debug("TOKEN_REFRESH","Failed to fetch projectId after token refresh",{connectionId:b,error:a?.message??a})}))}(a,(f={...f,...k,expiresAt:h||(k.expiresIn?n(k.expiresIn):f.expiresAt),providerSpecificData:k.providerSpecificData?{...f.providerSpecificData,...k.providerSpecificData}:f.providerSpecificData}).connectionId,f.accessToken)}}if("github"===a){let b=f.providerSpecificData?.copilotToken,c=(f.providerSpecificData?.copilotTokenExpiresAt?1e3*f.providerSpecificData.copilotTokenExpiresAt:0)-Date.now();if(!b||c<k){let e;d.info("TOKEN_REFRESH","Copilot token expiring soon or missing, refreshing proactively",{provider:a,expiresIn:b?Math.round(c/1e3):"missing"});let g=await (e=f.accessToken,(0,h.jR)(e,d));if(g){let a={...f.providerSpecificData,copilotToken:g.token,copilotTokenExpiresAt:g.expiresAt};await o(f.connectionId,{providerSpecificData:a}),f.providerSpecificData=a,f.copilotToken=g.token}}}return f}}};
|