vansrouter 0.91.21 → 0.91.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/app/.next-cli-build/BUILD_ID +1 -1
- package/app/.next-cli-build/app-path-routes-manifest.json +17 -17
- package/app/.next-cli-build/build-manifest.json +3 -3
- package/app/.next-cli-build/prerender-manifest.json +3 -3
- package/app/.next-cli-build/react-loadable-manifest.json +6 -6
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-fitness/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-fitness/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/_global-error/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/_global-error.html +1 -1
- package/app/.next-cli-build/server/app/_global-error.rsc +1 -1
- package/app/.next-cli-build/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/_not-found/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/_not-found.html +1 -1
- package/app/.next-cli-build/server/app/_not-found.rsc +3 -3
- package/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/_not-found.segments/_index.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/_not-found.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/api/auth/check/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/login/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/logout/route.js +1 -1
- package/app/.next-cli-build/server/app/api/auth/logout/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js +1 -1
- package/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/oidc/start/route.js +1 -1
- package/app/.next-cli-build/server/app/api/auth/oidc/start/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/oidc/test/route.js +1 -1
- package/app/.next-cli-build/server/app/api/auth/oidc/test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/reset-password/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/status/route.js +1 -1
- package/app/.next-cli-build/server/app/api/auth/status/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js +5 -5
- package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/devin-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/devin-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/grok-build-settings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/grok-build-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/combos/[id]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/combos/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/combos/route.js +1 -1
- package/app/.next-cli-build/server/app/api/combos/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/headroom/extras/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/headroom/proxy/[...path]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/headroom/restart/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/headroom/start/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/headroom/status/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/headroom/stop/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/health/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/init/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/keys/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/keys/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/locale/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/alias/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/availability/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/catalog-sync/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/custom/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/disabled/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/route.js +1 -1
- package/app/.next-cli-build/server/app/api/models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/codex/bulk-import/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/codex/bulk-import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/api-key/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/import-cli-proxy/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pricing/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/provider-nodes/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/gcp-projects/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/models/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/test/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/bulk/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/bulk/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/circuit-breakers/[name]/reset/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/circuit-breakers/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/client/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/client/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/kilo/free-models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/suggested-models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/test-batch/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/test-batch/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/validate/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/validate/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/[id]/fitness/clear/route.js +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/[id]/fitness/clear/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/fitness/clear-all/route.js +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/fitness/clear-all/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/fitness/route.js +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/fitness/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/route.js +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/health/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/install/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/logs/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/restart/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/start/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/stats/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/status/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/stop/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/settings/database/route.js +1 -1
- package/app/.next-cli-build/server/app/api/settings/database/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/settings/proxy-test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/settings/require-login/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/settings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/shutdown/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tags/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/translator/console-logs/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/translator/load/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/translator/save/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/translator/send/route.js +1 -1
- package/app/.next-cli-build/server/app/api/translator/send/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/translator/translate/route.js +1 -1
- package/app/.next-cli-build/server/app/api/translator/translate/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/disable/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/enable/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/status/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js +2 -2
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/[connectionId]/codex-reset-credits/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/[connectionId]/codex-reset-credits/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/chart/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/history/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/logs/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/providers/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/request-details/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/request-details/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/request-logs/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/stats/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/stream/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/api/chat/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/api/chat/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/audio/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/embeddings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/embeddings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/images/generations/route.js +2 -2
- package/app/.next-cli-build/server/app/api/v1/images/generations/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/messages/count_tokens/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/messages/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/messages/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/models/[kind]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/models/[kind]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/models/info/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/models/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/responses/compact/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/responses/compact/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/responses/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/responses/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/search/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/search/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/videos/[id]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/videos/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/videos/edits/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/videos/edits/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/videos/extensions/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/videos/extensions/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/videos/generations/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/videos/generations/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/web/fetch/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/web/fetch/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1beta/models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/version/route.js +1 -1
- package/app/.next-cli-build/server/app/api/version/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/version/shutdown/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/version/update/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/callback/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/callback/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/callback.html +1 -1
- package/app/.next-cli-build/server/app/callback.rsc +3 -3
- package/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/callback.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/callback.segments/_index.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/callback.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/callback.segments/callback/__PAGE__.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/callback.segments/callback.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/basic-chat.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/basic-chat.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_index.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/cli-tools.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/cli-tools.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_full.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_index.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/combos.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/combos.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/combos.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/combos.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/combos.segments/_index.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/combos.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/endpoint.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/endpoint.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_full.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_index.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_index.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/mitm.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/mitm.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/mitm.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/mitm.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/mitm.segments/_index.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/mitm.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/profile.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/profile.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/profile.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/profile.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/profile.segments/_index.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/profile.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/providers/new.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/providers/new.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_index.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/providers.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/providers.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/providers.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/providers.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/providers.segments/_index.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/providers.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/proxy-fitness.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/proxy-fitness.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/proxy-fitness.segments/!KGRhc2hib2FyZCk/dashboard/proxy-fitness/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/proxy-fitness.segments/!KGRhc2hib2FyZCk/dashboard/proxy-fitness.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/proxy-fitness.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/proxy-fitness.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/proxy-fitness.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/proxy-fitness.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/proxy-fitness.segments/_index.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/proxy-fitness.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_index.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/pxpipe.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/pxpipe.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard/pxpipe/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard/pxpipe.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_index.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/quota.html +2 -2
- package/app/.next-cli-build/server/app/dashboard/quota.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/quota.segments/_full.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/quota.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/quota.segments/_index.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/quota.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_index.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/skills.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/skills.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/skills.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/skills.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/skills.segments/_index.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/skills.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/token-saver.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/token-saver.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_index.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/translator.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/translator.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/translator.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/translator.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/translator.segments/_index.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/translator.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/usage.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/usage.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/usage.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/usage.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/usage.segments/_index.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/usage.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard.html +1 -1
- package/app/.next-cli-build/server/app/dashboard.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard.segments/_index.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/favicon.ico/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/landing/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/landing/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/landing.html +1 -1
- package/app/.next-cli-build/server/app/landing.rsc +3 -3
- package/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/landing.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/landing.segments/_index.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/landing.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/landing.segments/landing/__PAGE__.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/landing.segments/landing.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/login/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/login/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/login.html +1 -1
- package/app/.next-cli-build/server/app/login.rsc +4 -4
- package/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/login.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/login.segments/_index.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/login.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/login.segments/login.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/manifest.webmanifest/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/masuk/page.js +1 -1
- package/app/.next-cli-build/server/app/masuk/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/masuk/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app-paths-manifest.json +17 -17
- package/app/.next-cli-build/server/chunks/1685.js +2 -2
- package/app/.next-cli-build/server/chunks/1688.js +2 -2
- package/app/.next-cli-build/server/chunks/2411.js +1 -1
- package/app/.next-cli-build/server/chunks/2445.js +1 -1
- package/app/.next-cli-build/server/chunks/2549.js +1 -0
- package/app/.next-cli-build/server/chunks/2557.js +4 -10
- package/app/.next-cli-build/server/chunks/2764.js +1 -1
- package/app/.next-cli-build/server/chunks/2927.js +2 -2
- package/app/.next-cli-build/server/chunks/3040.js +2 -2
- package/app/.next-cli-build/server/chunks/32.js +2 -2
- package/app/.next-cli-build/server/chunks/3405.js +1 -1
- package/app/.next-cli-build/server/chunks/3519.js +1 -1
- package/app/.next-cli-build/server/chunks/3736.js +1 -1
- package/app/.next-cli-build/server/chunks/3787.js +1 -1
- package/app/.next-cli-build/server/chunks/4004.js +1 -1
- package/app/.next-cli-build/server/chunks/4029.js +2 -2
- package/app/.next-cli-build/server/chunks/4105.js +1 -1
- package/app/.next-cli-build/server/chunks/4502.js +13 -13
- package/app/.next-cli-build/server/chunks/4539.js +2 -2
- package/app/.next-cli-build/server/chunks/4574.js +44 -44
- package/app/.next-cli-build/server/chunks/4836.js +1 -1
- package/app/.next-cli-build/server/chunks/5006.js +1 -1
- package/app/.next-cli-build/server/chunks/5009.js +1 -1
- package/app/.next-cli-build/server/chunks/5050.js +1 -1
- package/app/.next-cli-build/server/chunks/5198.js +1 -1
- package/app/.next-cli-build/server/chunks/5302.js +1 -1
- package/app/.next-cli-build/server/chunks/5538.js +1 -0
- package/app/.next-cli-build/server/chunks/5598.js +1 -1
- package/app/.next-cli-build/server/chunks/6165.js +1 -1
- package/app/.next-cli-build/server/chunks/622.js +1 -0
- package/app/.next-cli-build/server/chunks/635.js +1 -0
- package/app/.next-cli-build/server/chunks/6385.js +1 -1
- package/app/.next-cli-build/server/chunks/6723.js +1 -1
- package/app/.next-cli-build/server/chunks/7006.js +2 -2
- package/app/.next-cli-build/server/chunks/7104.js +1 -1
- package/app/.next-cli-build/server/chunks/7425.js +1 -1
- package/app/.next-cli-build/server/chunks/7693.js +2 -2
- package/app/.next-cli-build/server/chunks/7938.js +2 -2
- package/app/.next-cli-build/server/chunks/7950.js +1 -1
- package/app/.next-cli-build/server/chunks/8691.js +2 -2
- package/app/.next-cli-build/server/chunks/8695.js +1 -1
- package/app/.next-cli-build/server/chunks/8772.js +1 -0
- package/app/.next-cli-build/server/chunks/912.js +1 -1
- package/app/.next-cli-build/server/chunks/9770.js +1 -0
- package/app/.next-cli-build/server/chunks/9784.js +1 -1
- package/app/.next-cli-build/server/chunks/9808.js +7 -0
- package/app/.next-cli-build/server/chunks/9974.js +1 -1
- package/app/.next-cli-build/server/chunks/9984.js +1 -1
- package/app/.next-cli-build/server/middleware-build-manifest.js +1 -1
- package/app/.next-cli-build/server/middleware-react-loadable-manifest.js +1 -1
- package/app/.next-cli-build/server/middleware.js +3 -3
- package/app/.next-cli-build/server/pages/404.html +1 -1
- package/app/.next-cli-build/server/pages/500.html +1 -1
- package/app/.next-cli-build/server/server-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/server-reference-manifest.json +1 -1
- package/app/.next-cli-build/static/chunks/1049.aa4f733370082c0d.js +7 -0
- package/app/.next-cli-build/static/chunks/{2940-b6dd0c5879412cea.js → 2940-0706a20a7c56dae1.js} +1 -1
- package/app/.next-cli-build/static/chunks/4385-8a145d343c888113.js +1 -0
- package/app/.next-cli-build/static/chunks/4964.6c8742ba86d45244.js +7 -0
- package/app/.next-cli-build/static/chunks/{5331.049b1512362de1f4.js → 5331.6cd97e3af09b08eb.js} +1 -1
- package/app/.next-cli-build/static/chunks/5479-0397a316e918cfaf.js +1 -0
- package/app/.next-cli-build/static/chunks/{9131-f4afa0414d45c1d1.js → 9131-e475ca6f20af6320.js} +1 -1
- package/app/.next-cli-build/static/chunks/{webpack-81a7adaed327dd6b.js → webpack-092d669f441fbd84.js} +1 -1
- package/app/custom-server.js +37 -37
- package/app/package.json +1 -3
- package/app/src/lib/db/adapters/betterSqliteAdapter.js +12 -4
- package/app/src/lib/db/adapters/nodeSqliteAdapter.js +12 -3
- package/app/src/lib/db/adapters/sqljsAdapter.js +13 -6
- package/app/src/lib/db/migrate.js +299 -299
- package/app/src/shared/services/quotaAutoPing.js +313 -313
- package/hooks/sqliteRuntime.js +188 -188
- package/package.json +1 -1
- package/src/cli/api/client.js +556 -556
- package/src/cli/commands/xaiVideo.js +300 -300
- package/src/cli/menus/combos.js +0 -103
- package/src/cli/menus/providers.js +868 -858
- package/src/cli/menus/settings.js +204 -204
- package/src/cli/utils/modelSelector.js +189 -51
- package/app/.next-cli-build/server/chunks/2732.js +0 -1
- package/app/.next-cli-build/server/chunks/3539.js +0 -1
- package/app/.next-cli-build/server/chunks/4816.js +0 -1
- package/app/.next-cli-build/server/chunks/6793.js +0 -1
- package/app/.next-cli-build/server/chunks/6931.js +0 -1
- package/app/.next-cli-build/server/chunks/9162.js +0 -1
- package/app/.next-cli-build/server/chunks/9614.js +0 -7
- package/app/.next-cli-build/server/chunks/9787.js +0 -1
- package/app/.next-cli-build/static/chunks/1049.adc9916d5a6b95f8.js +0 -7
- package/app/.next-cli-build/static/chunks/4385-ce7b55264de51d47.js +0 -1
- package/app/.next-cli-build/static/chunks/5479-20746781c1de7eb2.js +0 -1
- package/app/.next-cli-build/static/chunks/9078.ea6aeb4af0c25e5d.js +0 -7
- /package/app/.next-cli-build/static/{yvUSImiXUeMIOPHHzKVq_ → 4VmP0yWnLncSA5CQqLYsu}/_buildManifest.js +0 -0
- /package/app/.next-cli-build/static/{yvUSImiXUeMIOPHHzKVq_ → 4VmP0yWnLncSA5CQqLYsu}/_ssgManifest.js +0 -0
|
@@ -10,17 +10,11 @@ ${c.content}`:b)}},14018:(a,b,c)=>{c.d(b,{DT:()=>q,NE:()=>r});var d=c(69152),e=c
|
|
|
10
10
|

|
|
11
11
|
`}}let i={role:"assistant"};f&&(i.content=f),g&&(i.reasoning_content=g),h.length>0&&(i.tool_calls=h),i.content||i.tool_calls||(i.content="");let j=(c.finishReason||"stop").toLowerCase();"stop"===j&&h.length>0&&(j="tool_calls");let k={id:`chatcmpl-${b.responseId||Date.now()}`,object:"chat.completion",created:Math.floor(new Date(b.createTime||Date.now()).getTime()/1e3),model:b.modelVersion||"gemini",choices:[{index:0,message:i,finish_reason:j}]};return e&&(k.usage={prompt_tokens:(e.promptTokenCount||0)+(e.thoughtsTokenCount||0),completion_tokens:e.candidatesTokenCount||0,total_tokens:e.totalTokenCount||0},e.thoughtsTokenCount>0&&(k.usage.completion_tokens_details={reasoning_tokens:e.thoughtsTokenCount})),k}if(b===d.h.CLAUDE){if(a.choices||a.content&&!Array.isArray(a.content))return a;let b="",c="",d=[];for(let e of a.content||[])"text"===e.type?b+=(e.text??"").replace(/^\s*```\s*json\s*\n?/i,"").replace(/\n?\s*```\s*$/i,""):"thinking"===e.type?c+=e.thinking||"":"tool_use"===e.type&&d.push({id:e.id,type:"function",function:{name:e.name,arguments:JSON.stringify(e.input||{})}});let e={role:"assistant"};b&&(e.content=b),c&&(e.reasoning_content=c),d.length>0&&(e.tool_calls=d),e.content||e.tool_calls||(e.content="");let f=a.stop_reason||"stop";"end_turn"===f&&(f="stop"),"tool_use"===f&&(f="tool_calls");let g={id:`chatcmpl-${a.id||Date.now()}`,object:"chat.completion",created:Math.floor(Date.now()/1e3),model:a.model||"claude",choices:[{index:0,message:e,finish_reason:f}]};return a.usage&&(g.usage={prompt_tokens:a.usage.prompt_tokens||a.usage.input_tokens||0,completion_tokens:a.usage.completion_tokens||a.usage.output_tokens||0,total_tokens:a.usage.total_tokens||(a.usage.prompt_tokens||a.usage.input_tokens||0)+(a.usage.completion_tokens||a.usage.output_tokens||0)},a.usage.completion_tokens_details&&(g.usage.completion_tokens_details=a.usage.completion_tokens_details)),g}return b===d.h.OLLAMA?(0,f._)(a):a}(M,t,s):M,P=!1,Q=O;if(s===d.h.CLAUDE&&t!==d.h.CLAUDE){let a=q(O,c);Q=(0,o.kR)(a,H),P=!0}if(!P){if(/kimi-k2\./i.test(c||"")&&Array.isArray(O?.choices))for(let a of O.choices){let b=a?.message;if(!b||"assistant"!==b.role)continue;let{message:c,hasTools:d}=(0,g.vH)(b);d&&(a.message=c)}if(O?.choices?.[0]){let a=O.choices[0],b=a.message;Array.isArray(b?.tool_calls)&&b.tool_calls.length>0&&"tool_calls"!==a.finish_reason&&(a.finish_reason="tool_calls")}if(O.object||(O.object="chat.completion"),O.created||(O.created=Math.floor(Date.now()/1e3)),delete O.prompt_filter_results,O?.choices)for(let a of O.choices)delete a.content_filter_results;O?.usage&&(O.usage=(0,h.WL)((0,h.O9)(O.usage),s));let a=!!(u?.reasoning_effort||u?.thinking?.type||u?.reasoning||u?.config?.thinking?.thinkingBudget||u?.reasoning_config);if(O?.choices&&!a)for(let a of O.choices){let b=a?.message;b&&(b.reasoning_content&&b.content&&delete b.reasoning_content,b.provider_specific_fields?.reasoning_content&&b.content&&delete b.provider_specific_fields.reasoning_content,b.provider_specific_fields?.reasoning&&b.content&&delete b.provider_specific_fields.reasoning)}}G.logConvertedResponse(Q);let R=Date.now()-y,S=Q?.choices?.[0]?.message?.content||(Array.isArray(Q?.content)?Q.content.find(a=>"text"===a.type)?.text||"":null)||"",T=Q?.choices?.[0]?.message?.reasoning_content||(Array.isArray(Q?.content)?Q.content.find(a=>"thinking"===a.type)?.thinking:null)||null,U=Q?.choices?.[0]?.finish_reason||Q?.stop_reason||"unknown";return(0,n.ox)((0,m.$R)({provider:b,model:c,connectionId:z,apiKey:A,apiKeyName:C,latency:{ttft:R,total:R},tokens:N||{prompt_tokens:0,completion_tokens:0},request:(0,m.Fo)(u,v),providerRequest:x||w||null,providerResponse:M||null,response:{content:S,thinking:T,finish_reason:U},pxpipe:K,status:"success"},{endpoint:E?.endpoint||null})).catch(a=>{console.error("[RequestDetail] Failed to save:",a.message)}),D&&Q&&"object"==typeof Q&&!Array.isArray(Q)&&(Q.model=D),{success:!0,response:new Response(JSON.stringify(Q),{headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}})}}},20526:(a,b,c)=>{c.d(b,{J:()=>i});var d=c(69152),e=c(19602),f=c(54215);function g(a,b){return!!a&&"string"==typeof a&&(a===b||a.split("\n\n").includes(b))}function h(a,b){return a?g(a,b)?a:`${a}
|
|
12
12
|
|
|
13
|
-
${b}`:b}function i(a,b,c){try{if(!a||!c||"object"!=typeof a)return;if(function(a){if(!a||"object"!=typeof a
|
|
14
|
-
|
|
15
|
-
`))&&(c="")}if(c&&g(c,b))return;let f=c?`${c}
|
|
16
|
-
|
|
17
|
-
${b}`:b,h=null;try{let a=Array.isArray(d?.history)?d.history:null;if(a){for(let b of a)if(b?.userInputMessage){h=b.userInputMessage;break}}!h&&d?.currentMessage?.userInputMessage&&(h=d.currentMessage.userInputMessage)}catch(a){}let i=!1;try{a.systemPrompt=f,i=!0}catch(a){}try{if(h){let a="string"==typeof h.content?h.content:"";if(""===c){if(!a.startsWith(b)&&!a.startsWith(f))try{h.content=a?`${f}
|
|
18
|
-
|
|
19
|
-
${a}`:f}catch(a){}}else if(a.startsWith(c)&&!a.startsWith(f))try{h.content=`${f}${a.slice(c.length)}`}catch(a){}}}catch(a){}if(i&&h){let b=!1;try{let a=h.content;b="string"!=typeof a||a.startsWith(f)||!a.startsWith(c)}catch(a){}if(!b)try{a.systemPrompt=c}catch(a){}}}catch(a){}}(a,c);if(b===d.h.CLAUDE)return void function(a,b){try{let c=a.system;if("string"==typeof c){if(g(c,b))return;try{a.system=c?`${c}
|
|
13
|
+
${b}`:b}function i(a,b,c){try{if(!a||!c||"object"!=typeof a)return;if(function(a){if(!a||"object"!=typeof a)return!1;let b=a.conversationState;return!!b&&"object"==typeof b&&(Array.isArray(b.history)&&b.history.some(a=>a&&(a.userInputMessage||a.assistantResponseMessage))||!!(b.currentMessage&&b.currentMessage.userInputMessage))}(a)||b===d.h.KIRO)return void function(a,b){try{let c=a.conversationState,d=null,e=Array.isArray(c?.history)?c.history:null;if(e){for(let a of e)if(a?.userInputMessage){d=a.userInputMessage;break}}if(!d&&c?.currentMessage?.userInputMessage&&(d=c.currentMessage.userInputMessage),!d)return;let f="string"==typeof d.content?d.content:"",g=h(f,b);if(g===f)return;try{d.content=g}catch(a){}}catch(a){}}(a,c);if(b===d.h.CLAUDE)return void function(a,b){try{let c=a.system;if("string"==typeof c){if(g(c,b))return;try{a.system=c?`${c}
|
|
20
14
|
|
|
21
15
|
${b}`:b}catch(a){}return}if(Array.isArray(c)){try{if(c.some(a=>a&&a.text===b))return}catch(a){}let a={type:e.R4.TEXT,text:b},d=-1;try{for(let a=c.length-1;a>=0;a--)if(c[a]?.cache_control){d=a;break}}catch(a){}try{d>=0?c.splice(d,0,a):c.push(a)}catch(a){}return}try{a.system=b}catch(a){}}catch(a){}}(a,c);if(b===d.h.GEMINI||b===d.h.GEMINI_CLI||b===d.h.VERTEX||b===d.h.ANTIGRAVITY)return void function(a,b){try{let c,d=a;try{a.request&&"object"==typeof a.request&&(d=a.request)}catch(a){}let e=!1;try{e=Object.prototype.hasOwnProperty.call(d,"system_instruction")}catch(a){}let f=e?"system_instruction":"systemInstruction";try{c=d[f]}catch(a){}if(c&&Array.isArray(c.parts)){try{if(c.parts.some(a=>a&&a.text===b))return}catch(a){}try{c.parts.push({text:b})}catch(a){}return}try{d[f]={parts:[{text:b}]}}catch(a){}}catch(a){}}(a,c);if("string"==typeof a.instructions)return void function(a,b){try{let c=a.instructions;if("string"!=typeof c||g(c,b))return;try{a.instructions=c?`${c}
|
|
22
16
|
|
|
23
|
-
${b}`:b}catch(a){}}catch(a){}}(a,c);if(Array.isArray(a.messages))return void function(a,b){try{let c=a.messages;if(!Array.isArray(c)||function(a,b){try{for(let c of a){if(!c||c.role!==f.z.SYSTEM&&c.role!==f.z.DEVELOPER)continue;let a=c.content;if("string"==typeof a&&g(a,b)||Array.isArray(a)&&a.some(a=>a&&"string"==typeof a.text&&g(a.text,b)))return!0}}catch(a){}return!1}(c,b))return;let d=-1;try{d=c.findIndex(a=>a&&(a.role===f.z.SYSTEM||a.role===f.z.DEVELOPER))}catch(a){return}if(d>=0)return void function(a,b){try{if(!a||"object"!=typeof a)return;let c=a.content;if("string"==typeof c){let d=h(c,b);if(d!==c)try{a.content=d}catch(a){}return}if(Array.isArray(c)){try{if(c.some(a=>a&&a.text===b))return}catch(a){}try{c.push({type:e.x4.TEXT,text:b})}catch(a){}return}try{a.content=b}catch(a){}}catch(a){}}(c[d],b);try{c.unshift({role:f.z.SYSTEM,content:b})}catch(a){}}catch(a){}}(a,c);Array.isArray(a.input)&&function(a,b){try{let c=a.input;if(!Array.isArray(c)||function(a,b){try{for(let c of a){if(!c||c.type!==e.Du.MESSAGE||c.role!==f.z.SYSTEM&&c.role!==f.z.DEVELOPER)continue;let a=c.content;if("string"==typeof a&&g(a,b)||Array.isArray(a)&&a.some(a=>a&&"string"==typeof a.text&&g(a.text,b)))return!0}}catch(a){}return!1}(c,b))return;let d=-1;try{d=c.findIndex(a=>a&&a.type===e.Du.MESSAGE&&(a.role===f.z.SYSTEM||a.role===f.z.DEVELOPER))}catch(a){return}if(d>=0)return void function(a,b){try{if(!a||"object"!=typeof a)return;let c=a.content;if("string"==typeof c){let d=h(c,b);if(d!==c)try{a.content=d}catch(a){}return}if(Array.isArray(c)){try{if(c.some(a=>a&&a.text===b))return}catch(a){}try{c.push({type:e.Du.INPUT_TEXT,text:b})}catch(a){}return}try{a.content=[{type:e.Du.INPUT_TEXT,text:b}]}catch(a){}}catch(a){}}(c[d],b);try{c.unshift({type:e.Du.MESSAGE,role:f.z.SYSTEM,content:[{type:e.Du.INPUT_TEXT,text:b}]})}catch(a){}}catch(a){}}(a,c)}catch(a){}}},23648:(a,b,c)=>{c.d(b,{BY:()=>d.BY,E5:()=>d.E5,M2:()=>d.M2,Rw:()=>d.Rw,SL:()=>d.SL,Zx:()=>d.Zx,_V:()=>d._V,j$:()=>d.j$,ox:()=>d.ox,rg:()=>d.rg,sZ:()=>d.sZ,uw:()=>d.uw});var d=c(38599)},34496:(a,b,c)=>{function d(a){return String(a||"").toLowerCase().replace(/\s+/g," ").replace(/[.!?…]+$/g,"").trim()}function e(a){let b=a?.messages;if(!Array.isArray(b)||0===b.length)return{detected:!1,hint:null};let c=function(a){let b=[];for(let c of a)if(c?.role==="assistant"&&Array.isArray(c.tool_calls))for(let a of c.tool_calls)b.push(function(a){let b=a?.function?.name||a?.name||"",c=function(a){try{let b=JSON.parse(a);return JSON.stringify(b,Object.keys(b).sort())}catch{return a||""}}(a?.function?.arguments||a?.arguments||"");return`${b}::${c}`}(a));return b}(b);if(c.length>=3){if(function(a){let b=new Map;for(let c of a)if(b.set(c,(b.get(c)||0)+1),b.get(c)>=3)return c;return null}(c))return{detected:!0,hint:"You have called the same tool with identical arguments multiple times with no new progress. STOP repeating. Summarize findings from existing results or change your strategy."};if(function(a){let b=a.length;for(let c=Math.floor(b/2);c>=2;c--)for(let d=0;d<=b-2*c;d++){let e=a.slice(d,d+c).join("|"),f=0,g=0;for(;g<=b-c;)a.slice(g,g+c).join("|")===e?(f++,g+=c):g++;if(f>=2)return e}return null}(c))return{detected:!0,hint:"You have repeated the same sequence of tool calls multiple times. This is a loop. STOP this pattern immediately. Summarize what you have already found or take a completely different approach."}}let e=function(a){let b=function(a){let b=[];for(let c of a)if(c?.role==="assistant"){let a=c?"string"==typeof c.content?c.content:Array.isArray(c.content)?c.content.filter(a=>a&&"string"==typeof a.text).map(a=>a.text).join(" "):"":"";a.length>=12&&b.push(a)}return b}(a);if(b.length<3)return{detected:!1,hint:null};let c=new Map;for(let a of b){let b=d(a);if(b.length<12)continue;let e=(c.get(b)||0)+1;if(c.set(b,e),e>=3)return{detected:!0,hint:"You have repeated the same response multiple times without making progress. This is a text loop — you are NOT moving forward. STOP repeating yourself. Either call a tool to act, or give your final answer now with the information you already have."}}let e=new Map;for(let a of b)for(let b of String(a||"").split(/[\n.!?…]+/).map(a=>d(a)).filter(a=>a.length>=12)){let a=(e.get(b)||0)+1;if(e.set(b,a),a>=3)return{detected:!0,hint:"You keep repeating the same planning statement without acting on it. STOP planning in circles. Either execute a tool call NOW, or provide your final answer with current knowledge. Do not restate your plan again."}}return{detected:!1,hint:null}}(b);return e.detected?e:{detected:!1,hint:null}}c.d(b,{k:()=>e})},36110:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{wk:()=>Q});var e=c(217),f=c(54729),g=c(2568),h=c(69152),i=c(42966),j=c(45479),k=c(78963),l=c(91392),m=c(86954),n=c(52554),o=c(85577),p=c(13946),q=c(15261),r=c(92398),s=c(83571),t=c(23648),u=c(63548),v=c(44027),w=c(92913),x=c(50996),y=c(14018),z=c(60137),A=c(92201),B=c(94054),C=c(61210),D=c(34496),E=c(63192),F=c(56764),G=c(20526),H=c(8789),I=c(72152),J=c(69188),K=c(99974),L=c(81297),M=c(80117),N=c(15204),O=c(83474),P=a([u]);u=(P.then?(await P)():P)[0];let R=new Set(["kimchi","nvidia"]);async function Q({body:a,modelInfo:b,credentials:c,log:d,onCredentialsRefreshed:P,onRequestSuccess:S,onDisconnect:T,clientRawRequest:U,connectionId:V,userAgent:W,apiKey:X,apiKeyInfo:Y=null,apiKeyName:Z=null,ccFilterNaming:$,rtkEnabled:_,headroomEnabled:aa,headroomUrl:ab,headroomCompressUserMessages:ac,headroomTimeoutMs:ad=3e3,cavemanEnabled:ae,cavemanLevel:af,ponytailEnabled:ag,ponytailLevel:ah,pxpipeEnabled:ai=!1,pxpipeMinChars:aj=1e3,pxpipeTimeoutMs:ak=1e4,pxpipeTransform:al="png",onPxpipeEvent:am=null,sourceFormatOverride:an,providerThinking:ao,clientSignal:ap,loopGuardEnabled:aq=!0,systemPrompt:ar=null,clientModelId:as=null,resolveProxyConfig:at=null}){var au;let av,aw,ax,ay,az,aA,{provider:aB,model:aC,accountCount:aD=0}=b,aE=Date.now(),aF=an||(0,f.Tz)(a),aG=(0,s.c)(a,aC,W,$);if(aG)return aG;let aH=o.Xg[aB]||aB,aI=(0,o.ux)(aH,aC),aJ=(0,f.oF)(aB,aF),aK=(0,o.ez)(aH,aC),aL=!aK||aK.includes(aF)?aJ:null,aM=aL?.format||aI||(0,f.jJ)(aB,c);aL&&c&&(c.runtimeTransport=aL);let aN=(0,o.cY)(aH,aC),aO=(0,o.kt)(aH,aC);if(ao?.mode&&"auto"!==ao.mode){let b=(0,K.getCapabilitiesForModel)(aB,aC);if(b?.reasoning){let c=ao.mode;"on"!==c||a.thinking?"off"!==c||a.thinking?a.reasoning_effort||(a={...a,reasoning_effort:c}):!1!==b.thinkingCanDisable&&(a={...a,thinking:{type:"disabled"}}):a={...a,thinking:{type:"enabled",budget_tokens:1e4}}}}let aP=!0===a.stream||aF===h.h.ANTIGRAVITY||aF===h.h.GEMINI||aF===h.h.GEMINI_CLI,aQ=p.xq[aB]?.forceStream===!0,aR=!!aQ||!1!==a.stream,aS="nvidia"===aB&&/kimi-k2\.[67]/i.test(aC||"")&&!0===aR,aT=!aS&&aR;aS&&d?.debug?.("STREAMCOERCE",`${aB}/${aC} | stream=true → false (upstream)`);let aU=(0,o.OA)(aH,aC);("imageGen"===aU||/image|imagen|image-generation/i.test(aC))&&("antigravity"===aB||"gemini-cli"===aB)&&(aR=!1);let aV=(0,B.J)(U?.headers||{},a);"deepseek-tui"===aV&&!0!==a.stream&&(aR=!1);let aW=U?.headers?.accept||"",aX=aW.includes("application/json"),aY=aW.includes("text/event-stream");!aX||aY||!0===a.stream||aQ||(aR=!1);let aZ=await (0,m.q)(aF,aM,aC);U&&aZ.logClientRawRequest(U.endpoint,U.body,U.headers),aZ.logRawRequest(a),d?.debug?.("FORMAT",`${aF} → ${aM} | stream=${aR}`);let a$=(0,B.J)(U?.headers||{},a),a_=(0,B.Q)(a$,aB);if(c&&(c.rawHeaders=U?.headers||{}),!a_){let b=(0,K.getCapabilitiesForModel)(aB,aC);(0,L.X)(a,aF,b)&&d?.debug?.("MODALITY",`stripped unsupported media for ${aB}/${aC}`);try{let b=await (0,M.C)(a,aF,aM,{signal:void 0});b>0&&d?.debug?.("MODALITY",`prefetched ${b} remote image(s) for ${aM}`)}catch(a){d?.warn?.("MODALITY",`image prefetch failed: ${a.message}`)}}if(a_)d?.debug?.("PASSTHROUGH",`${a$} → ${aB} | native lossless`),av={...a,model:aO},"claude"===a$&&(0,i.ui)(av,aO);else{if(!(av=(0,g.GH)(aF,aM,aO,a,aT,c,aB,aZ,aN,V,a$)))return(0,t.uw)(aC,aB,V,!1,!0),(0,q.A1)(r.gx.BAD_REQUEST,`Failed to translate request for ${aF} → ${aM}`);aw=av._toolNameMap,delete av._toolNameMap,av.model=aO}if(aS&&(av.stream=!1),"claude"===a$&&Array.isArray(av.tools)){let{tools:a,stripped:b}=(0,C.F)(av.tools);b.length>0&&(av.tools=a,d?.debug?.("TOOLDEDUP",`stripped ${b.length}: ${b.slice(0,3).join(", ")}${b.length>3?"...":""}`))}let a0=a_?aF:aM;if(d?.line){let b=`${aB}/${aC}`.slice(0,20),e=U?.body?.model||`${aB}/${aC}`,f=av.messages?.length||av.input?.length||av.contents?.length||a.messages?.length||a.input?.length||0,g=av.tools?.length||a.tools?.length||0,h=a_?`FMT: ${aF} (passthrough)`:`FMT: ${aF}→${aM}`,i="grok-cli"!==aB||(0,v.Au)(aC)?d.fmtThink?.((0,n.sS)(av)):null,j=c?.connectionName||c?.connectionId?.slice(0,8)||"-",k=[`POST ${e} → ${aB}/${aC}`,h,aR?"STREAM":"JSON",`${f} MSG`];g&&k.push(`${g} TOOL`),i&&k.push(`THINK:${i}`),k.push(`ACC:${j}`),d.line(b,"▶",k.join(" \xb7 "))}"tts"===(0,o.OA)(aH,aC)&&av.messages&&(av.messages=av.messages.filter(a=>"tool"!==a.role),delete av.tools),a0===h.h.CLAUDE&&Array.isArray(av.tools)&&(av.tools=(0,N.C5)(av.tools));let a1=U?.headers?.[r.SA]?.toLowerCase()!=="off",a2=(0,I.BI)(av,a1&&_),a3=(0,I.fT)(a2);a3&&console.log(a3);let a4={},a5=await (0,J.SI)(av,{enabled:a1&&aa,url:ab,model:aO,format:a0,compressUserMessages:ac,timeoutMs:ad,diagnostics:a4}),a6=(0,J.Nv)(a5),a7=(0,J.O2)(a4);if(a6?(d?.info?.("HEADROOM",`${a6}${a7?` | ${a7}`:""}`),(0,J.cB)(a5,a4)&&d?.warn?.("HEADROOM",`reported token delta, but outbound JSON shrank <5%; provider may bill near-original payload | ${a7}`)):a1&&aa&&d?.warn?.("HEADROOM",`skipped: ${a4.reason||"compression unavailable"}${a4.endpoint?` (${a4.endpoint})`:""}`),ar&&((0,G.J)(av,a0,ar),d?.debug?.("SYSPROMPT",`default injected | ${a0}`)),a1&&ae&&af&&((0,E.p)(av,a0,af),d?.debug?.("CAVEMAN",`${af} | ${a0}`)),a1&&ag&&ah&&((0,F.U)(av,a0,ah),d?.debug?.("PONYTAIL",`${ah} | ${a0}`)),R.has(aB)&&((0,H.o5)(av,a0,(au=av.tools,Array.isArray(au)?au.map(a=>a?.function?.name||a?.name).filter(a=>"string"==typeof a&&a.trim()):[])),d?.debug?.("TOOLPROTO",`${aB}/${aC} | ${a0}`)),aq&&function(a,b,c,d,e){let f=(0,D.k)(a);if(!f.detected)return;(0,H.sH)(a,b);let g=a?.messages;if(Array.isArray(g)){let a=null;for(let b=g.length-1;b>=0;b--){let c=g[b];if(c&&("user"===c.role||"tool"===c.role)||c&&"assistant"===c.role&&b===g.length-1){a=c;break}}if(a){let b=`
|
|
17
|
+
${b}`:b}catch(a){}}catch(a){}}(a,c);if(Array.isArray(a.messages))return void function(a,b){try{let c=a.messages;if(!Array.isArray(c)||function(a,b){try{for(let c of a){if(!c||c.role!==f.z.SYSTEM&&c.role!==f.z.DEVELOPER)continue;let a=c.content;if("string"==typeof a&&g(a,b)||Array.isArray(a)&&a.some(a=>a&&"string"==typeof a.text&&g(a.text,b)))return!0}}catch(a){}return!1}(c,b))return;let d=-1;try{d=c.findIndex(a=>a&&(a.role===f.z.SYSTEM||a.role===f.z.DEVELOPER))}catch(a){return}if(d>=0)return void function(a,b){try{if(!a||"object"!=typeof a)return;let c=a.content;if("string"==typeof c){let d=h(c,b);if(d!==c)try{a.content=d}catch(a){}return}if(Array.isArray(c)){try{if(c.some(a=>a&&a.text===b))return}catch(a){}try{c.push({type:e.x4.TEXT,text:b})}catch(a){}return}try{a.content=b}catch(a){}}catch(a){}}(c[d],b);try{c.unshift({role:f.z.SYSTEM,content:b})}catch(a){}}catch(a){}}(a,c);Array.isArray(a.input)&&function(a,b){try{let c=a.input;if(!Array.isArray(c)||function(a,b){try{for(let c of a){if(!c||c.type!==e.Du.MESSAGE||c.role!==f.z.SYSTEM&&c.role!==f.z.DEVELOPER)continue;let a=c.content;if("string"==typeof a&&g(a,b)||Array.isArray(a)&&a.some(a=>a&&"string"==typeof a.text&&g(a.text,b)))return!0}}catch(a){}return!1}(c,b))return;let d=-1;try{d=c.findIndex(a=>a&&a.type===e.Du.MESSAGE&&(a.role===f.z.SYSTEM||a.role===f.z.DEVELOPER))}catch(a){return}if(d>=0)return void function(a,b){try{if(!a||"object"!=typeof a)return;let c=a.content;if("string"==typeof c){let d=h(c,b);if(d!==c)try{a.content=d}catch(a){}return}if(Array.isArray(c)){try{if(c.some(a=>a&&a.text===b))return}catch(a){}try{c.push({type:e.Du.INPUT_TEXT,text:b})}catch(a){}return}try{a.content=[{type:e.Du.INPUT_TEXT,text:b}]}catch(a){}}catch(a){}}(c[d],b);try{c.unshift({type:e.Du.MESSAGE,role:f.z.SYSTEM,content:[{type:e.Du.INPUT_TEXT,text:b}]})}catch(a){}}catch(a){}}(a,c)}catch(a){}}},23648:(a,b,c)=>{c.d(b,{BY:()=>d.BY,E5:()=>d.E5,M2:()=>d.M2,Rw:()=>d.Rw,SL:()=>d.SL,Zx:()=>d.Zx,_V:()=>d._V,j$:()=>d.j$,ox:()=>d.ox,rg:()=>d.rg,sZ:()=>d.sZ,uw:()=>d.uw});var d=c(38599)},34496:(a,b,c)=>{function d(a){return String(a||"").toLowerCase().replace(/\s+/g," ").replace(/[.!?…]+$/g,"").trim()}function e(a){let b=a?.messages;if(!Array.isArray(b)||0===b.length)return{detected:!1,hint:null};let c=function(a){let b=[];for(let c of a)if(c?.role==="assistant"&&Array.isArray(c.tool_calls))for(let a of c.tool_calls)b.push(function(a){let b=a?.function?.name||a?.name||"",c=function(a){try{let b=JSON.parse(a);return JSON.stringify(b,Object.keys(b).sort())}catch{return a||""}}(a?.function?.arguments||a?.arguments||"");return`${b}::${c}`}(a));return b}(b);if(c.length>=3){if(function(a){let b=new Map;for(let c of a)if(b.set(c,(b.get(c)||0)+1),b.get(c)>=3)return c;return null}(c))return{detected:!0,hint:"You have called the same tool with identical arguments multiple times with no new progress. STOP repeating. Summarize findings from existing results or change your strategy."};if(function(a){let b=a.length;for(let c=Math.floor(b/2);c>=2;c--)for(let d=0;d<=b-2*c;d++){let e=a.slice(d,d+c).join("|"),f=0,g=0;for(;g<=b-c;)a.slice(g,g+c).join("|")===e?(f++,g+=c):g++;if(f>=2)return e}return null}(c))return{detected:!0,hint:"You have repeated the same sequence of tool calls multiple times. This is a loop. STOP this pattern immediately. Summarize what you have already found or take a completely different approach."}}let e=function(a){let b=function(a){let b=[];for(let c of a)if(c?.role==="assistant"){let a=c?"string"==typeof c.content?c.content:Array.isArray(c.content)?c.content.filter(a=>a&&"string"==typeof a.text).map(a=>a.text).join(" "):"":"";a.length>=12&&b.push(a)}return b}(a);if(b.length<3)return{detected:!1,hint:null};let c=new Map;for(let a of b){let b=d(a);if(b.length<12)continue;let e=(c.get(b)||0)+1;if(c.set(b,e),e>=3)return{detected:!0,hint:"You have repeated the same response multiple times without making progress. This is a text loop — you are NOT moving forward. STOP repeating yourself. Either call a tool to act, or give your final answer now with the information you already have."}}let e=new Map;for(let a of b)for(let b of String(a||"").split(/[\n.!?…]+/).map(a=>d(a)).filter(a=>a.length>=12)){let a=(e.get(b)||0)+1;if(e.set(b,a),a>=3)return{detected:!0,hint:"You keep repeating the same planning statement without acting on it. STOP planning in circles. Either execute a tool call NOW, or provide your final answer with current knowledge. Do not restate your plan again."}}return{detected:!1,hint:null}}(b);return e.detected?e:{detected:!1,hint:null}}c.d(b,{k:()=>e})},36110:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{wk:()=>Q});var e=c(217),f=c(54729),g=c(2568),h=c(69152),i=c(42966),j=c(45479),k=c(78963),l=c(91392),m=c(86954),n=c(52554),o=c(85577),p=c(13946),q=c(15261),r=c(92398),s=c(83571),t=c(23648),u=c(63548),v=c(44027),w=c(92913),x=c(50996),y=c(14018),z=c(60137),A=c(92201),B=c(94054),C=c(61210),D=c(34496),E=c(63192),F=c(56764),G=c(20526),H=c(8789),I=c(72152),J=c(69188),K=c(99974),L=c(81297),M=c(80117),N=c(15204),O=c(83474),P=a([u]);u=(P.then?(await P)():P)[0];let R=new Set(["kimchi","nvidia"]);async function Q({body:a,modelInfo:b,credentials:c,log:d,onCredentialsRefreshed:P,onRequestSuccess:S,onDisconnect:T,clientRawRequest:U,connectionId:V,userAgent:W,apiKey:X,apiKeyInfo:Y=null,apiKeyName:Z=null,ccFilterNaming:$,rtkEnabled:_,headroomEnabled:aa,headroomUrl:ab,headroomCompressUserMessages:ac,headroomTimeoutMs:ad=3e3,cavemanEnabled:ae,cavemanLevel:af,ponytailEnabled:ag,ponytailLevel:ah,pxpipeEnabled:ai=!1,pxpipeMinChars:aj=1e3,pxpipeTimeoutMs:ak=1e4,pxpipeTransform:al="png",onPxpipeEvent:am=null,sourceFormatOverride:an,providerThinking:ao,clientSignal:ap,loopGuardEnabled:aq=!0,systemPrompt:ar=null,clientModelId:as=null,resolveProxyConfig:at=null}){var au;let av,aw,ax,ay,az,aA,{provider:aB,model:aC,accountCount:aD=0}=b,aE=Date.now(),aF=an||(0,f.Tz)(a),aG=(0,s.c)(a,aC,W,$);if(aG)return aG;let aH=o.Xg[aB]||aB,aI=(0,o.ux)(aH,aC),aJ=(0,f.oF)(aB,aF),aK=(0,o.ez)(aH,aC),aL=!aK||aK.includes(aF)?aJ:null,aM=aL?.format||aI||(0,f.jJ)(aB,c);aL&&c&&(c.runtimeTransport=aL);let aN=(0,o.cY)(aH,aC),aO=(0,o.kt)(aH,aC);if(ao?.mode&&"auto"!==ao.mode){let b=(0,K.getCapabilitiesForModel)(aB,aC);if(b?.reasoning){let c=ao.mode;"on"!==c||a.thinking?"off"!==c||a.thinking?a.reasoning_effort||(a={...a,reasoning_effort:c}):!1!==b.thinkingCanDisable&&(a={...a,thinking:{type:"disabled"}}):a={...a,thinking:{type:"enabled",budget_tokens:1e4}}}}let aP=!0===a.stream||aF===h.h.ANTIGRAVITY||aF===h.h.GEMINI||aF===h.h.GEMINI_CLI,aQ=p.xq[aB]?.forceStream===!0,aR=!!aQ||!1!==a.stream,aS="nvidia"===aB&&/kimi-k2\.[67]/i.test(aC||"")&&!0===aR,aT=!aS&&aR;aS&&d?.debug?.("STREAMCOERCE",`${aB}/${aC} | stream=true → false (upstream)`);let aU=(0,o.OA)(aH,aC);("imageGen"===aU||/image|imagen|image-generation/i.test(aC))&&("antigravity"===aB||"gemini-cli"===aB)&&(aR=!1);let aV=(0,B.J)(U?.headers||{},a);"deepseek-tui"===aV&&!0!==a.stream&&(aR=!1);let aW=U?.headers?.accept||"",aX=aW.includes("application/json"),aY=aW.includes("text/event-stream");!aX||aY||!0===a.stream||aQ||(aR=!1);let aZ=await (0,m.q7)(aF,aM,aC);U&&aZ.logClientRawRequest(U.endpoint,U.body,U.headers),aZ.logRawRequest(a),d?.debug?.("FORMAT",`${aF} → ${aM} | stream=${aR}`);let a$=(0,B.J)(U?.headers||{},a),a_=(0,B.Q)(a$,aB);if(c&&(c.rawHeaders=U?.headers||{}),!a_){let b=(0,K.getCapabilitiesForModel)(aB,aC);(0,L.X)(a,aF,b)&&d?.debug?.("MODALITY",`stripped unsupported media for ${aB}/${aC}`);try{let b=await (0,M.C)(a,aF,aM,{signal:void 0});b>0&&d?.debug?.("MODALITY",`prefetched ${b} remote image(s) for ${aM}`)}catch(a){d?.warn?.("MODALITY",`image prefetch failed: ${a.message}`)}}if(a_)d?.debug?.("PASSTHROUGH",`${a$} → ${aB} | native lossless`),av={...a,model:aO},"claude"===a$&&(0,i.ui)(av,aO);else{if(!(av=(0,g.GH)(aF,aM,aO,a,aT,c,aB,aZ,aN,V,a$)))return(0,t.uw)(aC,aB,V,!1,!0),(0,q.A1)(r.gx.BAD_REQUEST,`Failed to translate request for ${aF} → ${aM}`);aw=av._toolNameMap,delete av._toolNameMap,av.model=aO}if(aS&&(av.stream=!1),"claude"===a$&&Array.isArray(av.tools)){let{tools:a,stripped:b}=(0,C.F)(av.tools);b.length>0&&(av.tools=a,d?.debug?.("TOOLDEDUP",`stripped ${b.length}: ${b.slice(0,3).join(", ")}${b.length>3?"...":""}`))}let a0=a_?aF:aM;if(d?.line){let b=`${aB}/${aC}`.slice(0,20),e=U?.body?.model||`${aB}/${aC}`,f=av.messages?.length||av.input?.length||av.contents?.length||a.messages?.length||a.input?.length||0,g=av.tools?.length||a.tools?.length||0,h=a_?`FMT: ${aF} (passthrough)`:`FMT: ${aF}→${aM}`,i="grok-cli"!==aB||(0,v.Au)(aC)?d.fmtThink?.((0,n.sS)(av)):null,j=c?.connectionName||c?.connectionId?.slice(0,8)||"-",k=[`POST ${e} → ${aB}/${aC}`,h,aR?"STREAM":"JSON",`${f} MSG`];g&&k.push(`${g} TOOL`),i&&k.push(`THINK:${i}`),k.push(`ACC:${j}`),d.line(b,"▶",k.join(" \xb7 "))}"tts"===(0,o.OA)(aH,aC)&&av.messages&&(av.messages=av.messages.filter(a=>"tool"!==a.role),delete av.tools),(0,N.dV)(aB,a0,av.tools,p.xq)&&(av.tools=(0,N.C5)(av.tools));let a1=U?.headers?.[r.SA]?.toLowerCase()!=="off",a2=(0,I.BI)(av,a1&&_),a3=(0,I.fT)(a2);a3&&console.log(a3);let a4={},a5=await (0,J.SI)(av,{enabled:a1&&aa,url:ab,model:aO,format:a0,compressUserMessages:ac,timeoutMs:ad,diagnostics:a4}),a6=(0,J.Nv)(a5),a7=(0,J.O2)(a4);if(a6?(d?.info?.("HEADROOM",`${a6}${a7?` | ${a7}`:""}`),(0,J.cB)(a5,a4)&&d?.warn?.("HEADROOM",`reported token delta, but outbound JSON shrank <5%; provider may bill near-original payload | ${a7}`)):a1&&aa&&d?.warn?.("HEADROOM",`skipped: ${a4.reason||"compression unavailable"}${a4.endpoint?` (${a4.endpoint})`:""}`),ar&&((0,G.J)(av,a0,ar),d?.debug?.("SYSPROMPT",`default injected | ${a0}`)),a1&&ae&&af&&((0,E.p)(av,a0,af),d?.debug?.("CAVEMAN",`${af} | ${a0}`)),a1&&ag&&ah&&((0,F.U)(av,a0,ah),d?.debug?.("PONYTAIL",`${ah} | ${a0}`)),R.has(aB)&&((0,H.o5)(av,a0,(au=av.tools,Array.isArray(au)?au.map(a=>a?.function?.name||a?.name).filter(a=>"string"==typeof a&&a.trim()):[])),d?.debug?.("TOOLPROTO",`${aB}/${aC} | ${a0}`)),aq&&function(a,b,c,d,e){let f=(0,D.k)(a);if(!f.detected)return;(0,H.sH)(a,b);let g=a?.messages;if(Array.isArray(g)){let a=null;for(let b=g.length-1;b>=0;b--){let c=g[b];if(c&&("user"===c.role||"tool"===c.role)||c&&"assistant"===c.role&&b===g.length-1){a=c;break}}if(a){let b=`
|
|
24
18
|
|
|
25
19
|
[ROUTER NOTE: ${f.hint}]`;"string"==typeof a.content?a.content.includes("[ROUTER NOTE:")||(a.content+=b):Array.isArray(a.content)?a.content.some(a=>a.text&&a.text.includes("[ROUTER NOTE:"))||a.content.push({type:"text",text:b}):a.content=b.trimStart()}}e?.warn?.("LOOPGUARD",`${c}/${d} | loop detected, hint injected`)}(av,a0,aB,aC,d),/(?:^|[/_-])kimi(?:[/_-]|$)|(?:^|[/_-])kimi-k2\.(?:6|7)(?:\b|[-_/])/i.test(`${aB}/${aC}`)&&((0,H.sH)(av,a0),d?.debug?.("TERMINATION",`${aB}/${aC} | ${a0}`)),ao?.mode&&"auto"!==ao.mode){let a=(0,K.getCapabilitiesForModel)(aB,aC);if(a?.reasoning){let b=ao.mode;"off"===b?(av.reasoning_effort="none",!1!==a.thinkingCanDisable&&(av.thinking={type:"disabled"}),d?.debug?.("THINKING",`${aB}/${aC} | disabled`)):"on"===b?(av.thinking={type:"enabled",budget_tokens:1e4},d?.debug?.("THINKING",`${aB}/${aC} | enabled (10k budget)`)):(av.reasoning_effort=b,d?.debug?.("THINKING",`${aB}/${aC} | effort=${b}`))}}let a8=null;if(ai){let a=await (0,e.H)(av,{enabled:!0,format:a0,model:aO,minChars:aj,timeoutMs:ak,transform:al});a8=a.summary,a.body&&(av=a.body);let b=(0,e._)(a8);b?d?.info?.("PXPIPE",b):d?.debug?.("PXPIPE",`skipped: ${a8.reason}${a8.detail?` (${a8.detail})`:""}`);try{am?.({provider:aB,model:aC,...a8})}catch{}}a_&&("claude"===a$||aM===h.h.CLAUDE)&&(0,i._W)(av);let a9=(0,u.SB)(aB);(0,t.uw)(aC,aB,V,!0),(0,t.E5)({model:aC,provider:aB,connectionId:V,status:"PENDING"}).catch(()=>{});let ba=av.messages?.length||av.input?.length||av.contents?.length||av.request?.contents?.length||0;d?.debug?.("REQUEST",`${aB.toUpperCase()} | ${aC} | ${ba} msgs`);let bb=(0,k.jd)({onDisconnect:a=>{(0,t.uw)(aC,aB,V,!1),T&&T(a)},onError:()=>(0,t.uw)(aC,aB,V,!1),log:d,provider:aB,model:aC});ap&&(ap.aborted?bb.abort():ap.addEventListener("abort",()=>bb.abort(),{once:!0}));let bc=(a={})=>({connectionProxyEnabled:a?.connectionProxyEnabled===!0,connectionProxyUrl:a?.connectionProxyUrl||"",connectionNoProxy:a?.connectionNoProxy||"",vercelRelayUrl:a?.vercelRelayUrl||"",strictProxy:a?.strictProxy===!0||"freebuff"===aB,proxyPoolId:a?.proxyPoolId||a?.connectionProxyPoolId||null}),bd=`${aB}::${aC}`,be=bc(c?.providerSpecificData||{});if("freebuff"===aB&&c?.providerSpecificData?.noFitPool===!0){let a=Error(`Freebuff has no healthy proxy pool for ${aC}; all assigned pools are cooling down after limited-IP errors.`);return a.status=503,a.poolScoped={poolId:null,scope:bd,reason:"no_fit_pool"},(0,t.uw)(aC,aB,V,!1,!0),(0,q.A1)(503,a.message)}if("freebuff"===aB&&!be.vercelRelayUrl&&!(be.connectionProxyEnabled&&be.connectionProxyUrl)){let a=Error(`Freebuff requires a configured proxy pool for ${aC}; direct egress is disabled to prevent limited-IP rate limits.`);return a.status=503,(0,t.uw)(aC,aB,V,!1,!0),(0,q.A1)(503,a.message)}if(be.vercelRelayUrl){let a=c?.connectionName||c?.connectionId||"unknown",b=be.proxyPoolId||"none";d?.info?.("PROXY",`${aB.toUpperCase()} | ${aC} | conn=${a} | pool=${b} | vercel-relay=${be.vercelRelayUrl}`)}else if(be.connectionProxyEnabled&&be.connectionProxyUrl){let a=be.connectionProxyUrl;try{let b=new URL(be.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",`${aB.toUpperCase()} | ${aC} | conn=${e} | pool=${b} | url=${a}`)}if(be.connectionProxyEnabled&&be.connectionNoProxy){let a=c?.connectionName||c?.connectionId||"unknown";d?.debug?.("PROXY",`${aB.toUpperCase()} | ${aC} | conn=${a} | no_proxy=${be.connectionNoProxy}`)}let bf=null,bg=async(a=0)=>{let b;try{b=await a9.execute({model:aC,body:av,stream:aT,credentials:c,signal:bb.signal,log:d,proxyOptions:be,accountCount:aD})}catch(b){if(b?.poolScoped&&"function"==typeof at&&a<2){let e=b.poolScoped.poolId||be.proxyPoolId;await (0,O.on)(e,b.poolScoped.scope||bd,b.resetsAtMs,b.poolScoped.reason||"pool-scoped");try{let b=await at(c,[e]);if(b?.proxyPoolId)return c.providerSpecificData={...c.providerSpecificData||{},...b},be=bc(c.providerSpecificData),bg(a+1)}catch(a){d?.warn?.("PROXY",`${aB.toUpperCase()} | pool re-resolve failed: ${a.message}`)}}throw b}if(!b.response.ok){let e=await (0,q.zL)(b.response,a9);if(e.poolScoped&&"function"==typeof at&&a<2){let b=e.poolScoped.poolId||be.proxyPoolId;await (0,O.on)(b,e.poolScoped.scope||bd,e.resetsAtMs,e.poolScoped.reason||"pool-scoped");try{let d=await at(c,[b]);if(d?.proxyPoolId)return c.providerSpecificData={...c.providerSpecificData||{},...d},be=bc(c.providerSpecificData),bg(a+1)}catch(a){d?.warn?.("PROXY",`${aB.toUpperCase()} | pool re-resolve failed: ${a.message}`)}}bf=e}return b},bh=aM;try{let a=await bg();ax=a.response,ay=a.url,az=a.headers,aA=a.transformedBody,bh=a.responseFormat||aM,aZ.logTargetRequest(ay,az,aA)}catch(c){if((0,t.uw)(aC,aB,V,!1,!0),(0,t.E5)({model:aC,provider:aB,connectionId:V,status:`FAILED ${"AbortError"===c.name?499:r.gx.BAD_GATEWAY}`}).catch(()=>{}),(0,t.ox)((0,w.$R)({provider:aB,model:aC,connectionId:V,apiKey:X,apiKeyName:Z,latency:{ttft:0,total:Date.now()-aE},tokens:{prompt_tokens:0,completion_tokens:0},request:(0,w.Fo)(a,aT),providerRequest:av||null,response:{error:c.message||String(c),status:"AbortError"===c.name?499:502,thinking:null},pxpipe:a8,status:"error"})).catch(()=>{}),"AbortError"===c.name)return bb.handleError(c),(0,q.A1)(499,"Request aborted");let b=(0,q.lR)(c,aB,aC,r.gx.BAD_GATEWAY);return console.log(`${j.lm.red}[ERROR] ${b}${j.lm.reset}`),(0,q.A1)(r.gx.BAD_GATEWAY,b,c?.resetsAtMs||void 0)}if(!a9.noAuth&&(ax.status===r.gx.UNAUTHORIZED||ax.status===r.gx.FORBIDDEN))try{let a=await (0,l.qZ)(async()=>{let a=await a9.refreshCredentials(c,d);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",`${aB.toUpperCase()} | refreshed`),Object.assign(c,a),P)try{await P(a)}catch(a){d?.warn?.("TOKEN",`onCredentialsRefreshed failed: ${a.message}`)}try{let a=await a9.execute({model:aC,body:av,stream:aT,credentials:c,signal:bb.signal,log:d,proxyOptions:be,accountCount:aD});a.response.ok&&(ax=a.response,ay=a.url,bh=a.responseFormat||aM)}catch{d?.warn?.("TOKEN",`${aB.toUpperCase()} | retry after refresh failed`)}}else d?.warn?.("TOKEN",`${aB.toUpperCase()} | refresh failed`)}catch(a){d?.warn?.("TOKEN",`${aB.toUpperCase()} | refresh threw: ${a.message}`)}if(!ax.ok){(0,t.uw)(aC,aB,V,!1,!0);let{statusCode:b,message:c,resetsAtMs:d}=bf||await (0,q.zL)(ax,a9);(0,t.E5)({model:aC,provider:aB,connectionId:V,status:`FAILED ${b}`}).catch(()=>{}),(0,t.ox)((0,w.$R)({provider:aB,model:aC,connectionId:V,apiKey:X,apiKeyName:Z,latency:{ttft:0,total:Date.now()-aE},tokens:{prompt_tokens:0,completion_tokens:0},request:(0,w.Fo)(a,aT),providerRequest:aA||av||null,response:{error:c,status:b,thinking:null},pxpipe:a8,status:"error"})).catch(()=>{});let e=(0,q.lR)(Error(c),aB,aC,b);return console.log(`${j.lm.red}[ERROR] ${e}${j.lm.reset}`),aZ.logError(Error(c),aA||av),(0,q.A1)(b,e,d)}let bi={provider:aB,model:aC,body:a,stream:aR,translatedBody:av,finalBody:aA,requestStartTime:aE,connectionId:V,apiKey:X,apiKeyInfo:Y,apiKeyName:Z,clientRawRequest:U,onRequestSuccess:S,clientModelId:as,pxpipe:a8},bj=a=>(0,t.E5)({model:aC,provider:aB,connectionId:V,...a}).catch(()=>{}),bk=()=>(0,t.uw)(aC,aB,V,!1);if(aS&&aP){let a=await (0,y.NE)({...bi,stream:aT,providerResponse:ax,sourceFormat:aF,targetFormat:aM,reqLogger:aZ,toolNameMap:aw,trackDone:bk,appendLog:bj});if(!a.success)return a;let b=await a.response.json(),c=(0,A.y)(b);return bb.handleComplete(),{success:!0,response:c}}if(!aP&&aQ){let a=await (0,x.I9)({...bi,providerResponse:ax,sourceFormat:aF,toolNameMap:aw,trackDone:bk,appendLog:bj});if(a)return bb.handleComplete(),a}if(!aR){let a=await (0,y.NE)({...bi,providerResponse:ax,sourceFormat:aF,targetFormat:bh||aM,reqLogger:aZ,toolNameMap:aw,trackDone:bk,appendLog:bj});if("clinepass"===aB&&!a?.success&&/empty/i.test(a?.error||"")){d?.warn?.("RETRY","clinepass returned empty content, retrying once after 2s"),await new Promise(a=>setTimeout(a,2e3));try{let b=await a9.execute({model:aC,body:av,stream:!1,credentials:c,signal:bb.signal,log:d,proxyOptions:be});b?.response?.ok&&(ax=b.response,a=await (0,y.NE)({...bi,providerResponse:ax,sourceFormat:aF,targetFormat:bh||aM,reqLogger:aZ,toolNameMap:aw,trackDone:bk,appendLog:bj}))}catch(a){d?.warn?.("RETRY",`clinepass retry failed: ${a.message}`)}}return bb.handleComplete(),a}let{onStreamComplete:bl,streamDetailId:bm}=(0,z.$)({...bi});return(0,z.M)({...bi,providerResponse:ax,sourceFormat:aF,targetFormat:bh||aM,userAgent:W,reqLogger:aZ,toolNameMap:aw,streamController:bb,onStreamComplete:bl,streamDetailId:bm,pxpipe:a8})}d()}catch(a){d(a)}})},45479:(a,b,c)=>{c.d(b,{i5:()=>q,l2:()=>r,lm:()=>g.lm,v8:()=>h.v8});var d=c(2568),e=c(69152),f=c(23648),g=c(73329),h=c(30794),i=c(46646),j=c(25440),k=c(15204);function l(a,b,c,d,f,g){var i;if(!b||0===b.length||f!==e.h.OPENAI)return!1;let j=(i=c?.messageId,{id:i?.startsWith("chatcmpl-")?i:`chatcmpl-${i||Date.now()}`,object:"chat.completion.chunk",created:Math.floor(Date.now()/1e3),model:d||null,choices:[{index:0,delta:{tool_calls:b},finish_reason:"tool_calls"}]}),k=(0,h.v8)(j,e.h.OPENAI);return g?.appendConvertedChunk?.(k),a.enqueue(m.encode(k)),!0}c(2933);let m=new TextEncoder,n="translate",o="passthrough";function p(a={}){let{mode:b=n,targetFormat:c,sourceFormat:q,provider:r=null,reqLogger:s=null,toolNameMap:t=null,model:u=null,connectionId:v=null,body:w=null,onStreamComplete:x=null,apiKey:y=null,normalizeKimiToolCalls:z=null}=a,A="",B=null,C=w?.tools?(0,k.Qv)(w.tools):null,D=new TextDecoder("utf-8",{fatal:!1}),E=b===n?{...(0,d.Ws)(q),provider:r,toolNameMap:t,model:u}:null,F=0,G="",H="",I=null,J=0,K=0,L={},M=/kimi-k2\./i.test(u||""),N=null,O=!1,P=null,Q=!1,R=!1,S=!1,T=!1,U=()=>{if(T)return;T=!0;let a=b===o,d=a?B:E?.usage;!(0,g.Gh)(d)&&F>0?(d=(0,g.OF)(w,F,a?e.h.OPENAI:q),a?B=d:E.usage=d):(0,g.sb)(d,F)&&(d=(0,g.NT)(d,F),a?B=d:E.usage=d),(0,g.Gh)(d)?(0,g.IF)(a?r:E?.provider||c,d,u,v,y):(0,f.E5)({model:u,provider:r,connectionId:v,tokens:null,status:"200 OK"}).catch(()=>{}),x&&x({content:G,thinking:H},d,I)};return new TransformStream({transform(a,f){I||(I=Date.now());let p=D.decode(a,{stream:!0});A+=p,s?.appendProviderChunk?.(p);let r=A.split("\n");for(let a of(A=r.pop()||"",r)){let p=a.trim();if(j.T&&p&&(J++,p.startsWith("event:"))){let a=p.slice(6).trim();L[a]=(L[a]||0)+1}if(b===n&&c===e.h.OPENAI_RESPONSES&&p.startsWith("event:")&&(P=p.slice(6).trim()),b===o){let b,c=!1,d=!1;if("data: [DONE]"===p||"data:[DONE]"===p)continue;if(p.startsWith("data:"))try{let a=JSON.parse(p.slice(5).trim()),f=(0,h.A4)(a),j=!1;if(void 0!==a.choices&&(a.object||(a.object="chat.completion.chunk",j=!0),a.created||(a.created=Math.floor(Date.now()/1e3),j=!0)),void 0!==a.prompt_filter_results&&(delete a.prompt_filter_results,j=!0),a?.choices)for(let b of a.choices)void 0!==b.content_filter_results&&(delete b.content_filter_results,j=!0);if(C&&C.length>0&&Array.isArray(a.choices))for(let b of a.choices){let a=b?.delta;if(Array.isArray(a?.tool_calls)){for(let b of a.tool_calls)if(b.function?.name){let a=(0,k.vh)(b.function.name,C);a!==b.function.name&&(b.function.name=a,j=!0)}}}if(a?.choices){for(let b of a.choices)if(b.delta?.tool_calls&&Array.isArray(b.delta.tool_calls)&&0===b.delta.tool_calls.length&&(delete b.delta.tool_calls,j=!0),b.delta?.function_call){let a=b.delta.function_call;a.name&&""!==a.name||a.arguments&&""!==a.arguments||(delete b.delta.function_call,j=!0)}}if(!(0,h.c2)(a,e.h.OPENAI))continue;let l=a.choices?.[0]?.delta,m=l?.content,n=l?.reasoning_content;if(m&&"string"==typeof m&&(F+=m.length,G+=m),n&&"string"==typeof n&&(F+=n.length,H+=n),Array.isArray(l?.tool_calls))for(let a of l.tool_calls)"string"==typeof a?.function?.name&&(F+=a.function.name.length),"string"==typeof a?.function?.arguments&&(F+=a.function.arguments.length);let o=(0,g.f5)(a);o&&(B=(0,g._L)(B,o)),d=(0,i.nu)(P,a);let q=a.choices?.[0]?.finish_reason;if(q&&!(0,g.Gh)(a.usage)){let d=(0,g.OF)(w,F,e.h.OPENAI);a.usage=(0,g.WL)(d,e.h.OPENAI),b=`data: ${JSON.stringify(a)}
|
|
26
20
|
`,B=d,c=!0}else if(q&&(0,g.sb)(a.usage,F)){let d=(0,g.NT)(a.usage,F);a.usage=(0,g.WL)(d,e.h.OPENAI),b=`data: ${JSON.stringify(a)}
|
|
@@ -28,7 +22,7 @@ ${b}`:b}catch(a){}}catch(a){}}(a,c);if(Array.isArray(a.messages))return void fun
|
|
|
28
22
|
`,c=!0}else(f||j)&&(b=`data: ${JSON.stringify(a)}
|
|
29
23
|
`,c=!0)}catch{continue}c||(b=a.startsWith("data:")&&!a.startsWith("data: ")?"data: "+a.slice(5)+"\n":a+"\n"),s?.appendConvertedChunk?.(b),f.enqueue(m.encode(b)),d&&U();continue}if(!p)continue;let r=(0,h.tV)(p,c);if(!r)continue;let t=c===e.h.OPENAI_RESPONSES,v=t&&q===e.h.OPENAI_RESPONSES,x=t?(0,i.yx)(P,r):null;if(t&&(0,i.nu)(x,r)&&(Q=!0),r&&r.done&&c!==e.h.OLLAMA){if(v&&!Q){let a=(0,i.u9)();s?.appendConvertedChunk?.(a),f.enqueue(m.encode(a)),Q=!0,K++}if(v&&!S){let a="data: [DONE]\n\n";s?.appendConvertedChunk?.(a),f.enqueue(m.encode(a))}S=!0,v&&(R=!0);continue}if(r.delta?.text&&(F+=r.delta.text.length,G+=r.delta.text),r.delta?.thinking&&(F+=r.delta.thinking.length,H+=r.delta.thinking),"string"==typeof r.delta?.partial_json&&(F+=r.delta.partial_json.length),r.choices?.[0]?.delta?.content&&(F+=r.choices[0].delta.content.length,G+=r.choices[0].delta.content),Array.isArray(r.choices?.[0]?.delta?.tool_calls))for(let a of r.choices[0].delta.tool_calls)"string"==typeof a?.function?.name&&(F+=a.function.name.length),"string"==typeof a?.function?.arguments&&(F+=a.function.arguments.length);if(M&&z&&r.choices?.[0]?.delta?.content){let a=r.choices[0].delta.content,{message:b,hasTools:c}=z({role:"assistant",content:a});c&&(N=b.tool_calls,r.choices[0].delta.content=b.content||void 0,r.choices[0].delta.content||delete r.choices[0].delta.content,F-=a.length,G=G.slice(0,G.length-a.length),b.content&&(F+=b.content.length,G+=b.content))}if(r.choices?.[0]?.delta?.reasoning_content&&(F+=r.choices[0].delta.reasoning_content.length,H+=r.choices[0].delta.reasoning_content),r.candidates?.[0]?.content?.parts)for(let a of r.candidates[0].content.parts)a.text&&"string"==typeof a.text&&(F+=a.text.length,!0===a.thought?H+=a.text:G+=a.text);let y=(0,g.f5)(r);if(y&&(E.usage=(0,g._L)(E.usage,y)),v&&x){let a=(0,h.v8)({event:x,data:r},q);s?.appendConvertedChunk?.(a),f.enqueue(m.encode(a)),P=null,K++,Q&&U();continue}P=null;let A=(0,d.Y8)(c,q,r,E);if(A?._openaiIntermediate)for(let a of A._openaiIntermediate){let b=(0,h.v8)(a,e.h.OPENAI);s?.appendOpenAIChunk?.(b)}if(A?.length>0)for(let a of A){if(null==a)continue;let b="message_delta"===a.type||a.choices?.[0]?.finish_reason;if(N&&b&&q===e.h.OPENAI){l(f,N,E,u,q,s)&&(K++,O=!0);continue}if(!(0,h.c2)(a,q))continue;if(E.finishReason&&b&&!(0,g.Gh)(a.usage)&&F>0){let b=(0,g.OF)(w,F,q);a.usage=(0,g.WL)(b,q),E.usage=b}else if(E.finishReason&&b&&(0,g.sb)(a.usage,F)){let b=(0,g.NT)(a.usage,F);a.usage=(0,g.WL)(b,q),E.usage=b}else if(E.finishReason&&b&&E.usage){let b=(0,g.O9)(E.usage);a.usage=(0,g.WL)(b,q)}let c=(0,h.v8)(a,q);s?.appendConvertedChunk?.(c),f.enqueue(m.encode(c)),K++}}},flush(a){let k=Object.entries(L).map(([a,b])=>`${a}=${b}`).join(",")||"none";(0,j.s)("SSE",`flush | provider=${r} | model=${u} | recvLines=${J} | emitted=${K} | events=[${k}]`),(0,f.uw)(u,r,v,!1);try{let f=D.decode();if(f&&(A+=f),b===o){if(A){let b=A;A.startsWith("data:")&&!A.startsWith("data: ")&&(b="data: "+A.slice(5)),s?.appendConvertedChunk?.(b),a.enqueue(m.encode(b))}let b="antigravity"===r||"gemini"===r||"vertex"===r;if(!S&&!b){let b="data: [DONE]\n\n";s?.appendConvertedChunk?.(b),a.enqueue(m.encode(b))}U();return}if(A.trim()){let b=(0,h.tV)(A.trim(),c),f=b?.done&&c!==e.h.OLLAMA;if(b&&!f){let f=(0,g.f5)(b);f&&(E.usage=(0,g._L)(E.usage,f));let i=(0,d.Y8)(c,q,b,E);if(i?._openaiIntermediate)for(let a of i._openaiIntermediate){let b=(0,h.v8)(a,e.h.OPENAI);s?.appendOpenAIChunk?.(b)}if(i?.length>0)for(let b of i){if(null==b)continue;let c=(0,h.v8)(b,q);s?.appendConvertedChunk?.(c),a.enqueue(m.encode(c))}}}let j=(0,d.Y8)(c,q,null,E);if(j?._openaiIntermediate)for(let a of j._openaiIntermediate){let b=(0,h.v8)(a,e.h.OPENAI);s?.appendOpenAIChunk?.(b)}if(j?.length>0)for(let b of j){if(null==b)continue;let c=(0,h.v8)(b,q);s?.appendConvertedChunk?.(c),a.enqueue(m.encode(c))}if(!O&&M&&z){let{hasTools:b,message:c}=z({role:"assistant",content:G});b&&l(a,c.tool_calls,E,u,q,s)&&(K++,O=!0)}let k=c===e.h.OPENAI_RESPONSES&&q===e.h.OPENAI_RESPONSES;if(k&&!Q){let b=(0,i.u9)();s?.appendConvertedChunk?.(b),a.enqueue(m.encode(b)),Q=!0}if(k&&!R&&!S){let b="data: [DONE]\n\n";s?.appendConvertedChunk?.(b),a.enqueue(m.encode(b)),R=!0,S=!0}U()}catch(a){console.log("Error in flush:",a),U()}}})}function q(a,b,c=null,d=null,e=null,f=null,g=null,h=null,i=null,j=null,k=null){return p({mode:n,targetFormat:a,sourceFormat:b,provider:c,reqLogger:d,toolNameMap:e,model:f,connectionId:g,body:h,onStreamComplete:i,apiKey:j,normalizeKimiToolCalls:k})}function r(a=null,b=null,c=null,d=null,e=null,f=null,g=null,h=null){return p({mode:o,provider:a,reqLogger:b,model:c,connectionId:d,body:e,onStreamComplete:f,apiKey:g,normalizeKimiToolCalls:h})}},46646:(a,b,c)=>{c.d(b,{Hr:()=>j,nu:()=>h,u9:()=>k,yx:()=>g});var d=c(69152),e=c(30794);let f=new Set(["response.completed","response.done","response.failed","error"]);function g(a,b){return a||(b&&"string"==typeof b.type?b.type:null)}function h(a,b){let c=g(a,b);if(f.has(c))return!0;let d=b?.response?.status;return"completed"===d||"failed"===d}let i=new TextEncoder;function j(){return i.encode(`${k()}data: [DONE]
|
|
30
24
|
|
|
31
|
-
`)}function k(){return(0,e.v8)({event:"response.failed",data:{type:"response.failed",response:{id:`resp_${Date.now()}`,status:"failed",error:{type:"stream_error",code:"stream_disconnected",message:"stream closed before response.completed"}}}},d.h.OPENAI_RESPONSES)}},50996:(a,b,c)=>{function d(a,b){let c;if(!a.trim())return;let d=a.match(/^event:\s*(.+)$/m),e=a.match(/^data:\s*(.+)$/m);if(!d||!e)return;let f=d[1].trim(),g=e[1].trim();if("[DONE]"!==g){try{c=JSON.parse(g)}catch{return}if("response.created"===f)b.responseId=c.response?.id||b.responseId,b.created=c.response?.created_at||b.created;else if("response.output_item.done"===f)b.items.set(c.output_index??0,c.item);else if("response.completed"===f||"response.done"===f){if(b.status="completed",c.response?.usage){let a=c.response.usage;b.usage.input_tokens=a.input_tokens??a.prompt_tokens??0,b.usage.output_tokens=a.output_tokens??a.completion_tokens??0,b.usage.total_tokens=a.total_tokens??b.usage.input_tokens+b.usage.output_tokens,a.input_tokens_details&&(b.usage.input_tokens_details=a.input_tokens_details),a.output_tokens_details&&(b.usage.output_tokens_details=a.output_tokens_details)}}else"response.failed"===f&&(b.status="failed")}}c.d(b,{I9:()=>s,Fe:()=>r});let e={input_tokens:0,output_tokens:0,total_tokens:0};async function f(a){if(!a||"function"!=typeof a.getReader)return{id:`resp_${Date.now()}`,object:"response",created_at:Math.floor(Date.now()/1e3),status:"failed",output:[],usage:{...e}};let b=new TextDecoder,c="",f={responseId:"",created:Math.floor(Date.now()/1e3),status:"in_progress",usage:{...e},items:new Map};for await(let e of a){let a=(c+=b.decode(e,{stream:!0})).split("\n\n");for(let b of(c=a.pop()||"",a))d(b,f)}(c+=b.decode()).trim()&&d(c,f);let g=[],h=f.items.size>0?Math.max(...f.items.keys()):-1;for(let a=0;a<=h;a++)g.push(f.items.get(a)||{type:"message",content:[],role:"assistant"});return{id:f.responseId||`resp_${Date.now()}_${Math.random().toString(36).slice(2,8)}`,object:"response",created_at:f.created,status:f.status||"completed",output:g,usage:f.usage}}var g=c(15261),h=c(92398),i=c(69152),j=c(13946),k=c(92913),l=c(15204),m=c(14018),n=c(97781),o=c(23648);let p=a=>j.xq[a]?.format===i.h.OPENAI_RESPONSES;function q(a){if(!a?.content||!Array.isArray(a.content))return"";let b=a.content.find(a=>"output_text"===a.type);if("string"==typeof b?.text)return b.text;let c=a.content.find(a=>"string"==typeof a.text);return"string"==typeof c?.text?c.text:""}function r(a,b,c=null){let d=[],e=null;for(let b of String(a||"").split("\n")){let a=b.trim();if(!a.startsWith("data:"))continue;let c=a.slice(5).trim();if(c&&"[DONE]"!==c)try{let a=JSON.parse(c);a?.error?e=a.error:d.push(a)}catch{}}if(e)return{error:e};if(0===d.length)return null;let f=d[0],g=[],h=[],i=new Map,j="stop",k=null;for(let a of d){let b=a?.choices?.[0],c=b?.delta||{};if("string"==typeof c.content&&c.content.length>0&&g.push(c.content),"string"==typeof c.reasoning_content&&c.reasoning_content.length>0&&h.push(c.reasoning_content),b?.finish_reason&&(j=b.finish_reason),a?.usage&&"object"==typeof a.usage&&(k=a.usage),!b&&a.response){let b=a.response,c=b.candidates?.[0];if(c){for(let a of c.content?.parts||[])void 0!==a.text&&a.text&&g.push(a.text),a.thought&&a.text&&h.push(a.text);c.finishReason&&(j=c.finishReason.toLowerCase())}let d=b.usageMetadata||a.usageMetadata;if(d&&!k){let a=d.promptTokenCount||0,b=d.candidatesTokenCount||0;k={prompt_tokens:a,completion_tokens:b,total_tokens:d.totalTokenCount||a+b,completion_tokens_details:{reasoning_tokens:d.thoughtsTokenCount||0}}}}if(Array.isArray(c.tool_calls))for(let a of c.tool_calls){let b=a.index??0;i.has(b)||i.set(b,{id:a.id||"",type:"function",function:{name:"",arguments:""}});let c=i.get(b);a.id&&(c.id=a.id),a.function?.name&&(c.function.name+=a.function.name),a.function?.arguments&&(c.function.arguments+=a.function.arguments)}}let m={role:"assistant",content:g.join("")||(i.size>0?null:"")};if(h.length>0&&(m.reasoning_content=h.join("")),i.size>0){let a=[...i.entries()].sort((a,b)=>a[0]-b[0]).map(([,a])=>a);if(c&&c.length>0)for(let b of a)b.function?.name&&(b.function.name=(0,l.vh)(b.function.name,c));m.tool_calls=a}let n={id:f.id||`chatcmpl-${Date.now()}`,object:"chat.completion",created:f.created||Math.floor(Date.now()/1e3),model:f.model||b||"unknown",choices:[{index:0,message:m,finish_reason:j}]};return k&&(n.usage=k),n}async function s({providerResponse:a,sourceFormat:b,provider:c,model:d,body:e,stream:j,translatedBody:t,finalBody:u,requestStartTime:v,connectionId:w,apiKey:x,apiKeyName:y,clientRawRequest:z,onRequestSuccess:A,trackDone:B,appendLog:C,comboName:D,toolNameMap:E}){let F=a.headers.get("content-type")||"";if(!(F.includes("text/event-stream")||""===F&&p(c)))return null;B();let G={provider:c,model:d,connectionId:w,apiKey:x,apiKeyName:y,request:(0,k.Fo)(e,j),providerRequest:u||t||null};if(p(c)||b===i.h.OPENAI_RESPONSES)try{let e,g=await f(a.body);A&&await A();let h=g.usage||{},j=function(a={}){return{prompt_tokens:a.input_tokens??a.prompt_tokens??0,completion_tokens:a.output_tokens??a.completion_tokens??0,total_tokens:a.total_tokens??(a.input_tokens??a.prompt_tokens??0)+(a.output_tokens??a.completion_tokens??0)}}(h);C({tokens:j,status:"200 OK"}),(0,k.qr)({provider:c,model:d,tokens:j,connectionId:w,apiKey:x,endpoint:z?.endpoint,comboName:D});let{msgItem:l,textContent:p}=function(a){if(!Array.isArray(a))return{msgItem:null,textContent:null};let b=a.filter(a=>a?.type==="message");if(0===b.length)return{msgItem:null,textContent:null};for(let a=b.length-1;a>=0;a--){let c=q(b[a]);if(c.length>0)return{msgItem:b[a],textContent:c}}let c=b[b.length-1];return{msgItem:c,textContent:q(c)}}(g.output),r=Date.now()-v;if((0,o.ox)((0,k.$R)({...G,latency:{ttft:r,total:r},tokens:j,response:{content:p,thinking:null,finish_reason:g.status||"unknown"},status:"success"},{endpoint:z?.endpoint||null})).catch(()=>{}),b===i.h.OPENAI_RESPONSES)return{success:!0,response:new Response(JSON.stringify(g),{headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}})};let s=j.prompt_tokens,t=j.completion_tokens,u=(g.output||[]).filter(a=>"function_call"===a.type).map((a,b)=>({id:a.call_id||`call_${a.name}_${Date.now()}_${b}`,type:"function",function:{name:a.name,arguments:"string"==typeof a.arguments?a.arguments:JSON.stringify(a.arguments||{})}})),y=u.length>0;if(b===i.h.ANTIGRAVITY||b===i.h.GEMINI||b===i.h.GEMINI_CLI)e={response:{candidates:[{content:{role:"model",parts:[{text:p||""}]},finishReason:"STOP",index:0}],usageMetadata:{promptTokenCount:s,candidatesTokenCount:t,totalTokenCount:s+t},modelVersion:d,responseId:g.id||`resp_${Date.now()}`}};else if(b===i.h.CLAUDE){let a={id:g.id||`chatcmpl-${Date.now()}`,model:g.model||d,choices:[{index:0,message:{role:"assistant",content:p||(y?null:"")},finish_reason:y?"tool_calls":"stop"}],usage:{prompt_tokens:s,completion_tokens:t}};y&&(a.choices[0].message.tool_calls=u);let b=(0,m.DT)(a,d);e=(0,n.kR)(b,E)}else{let a={role:"assistant",content:p||(y?null:"")};y&&(a.tool_calls=u);let b="completed"===g.status||"done"===g.status,c=y?"tool_calls":b?"stop":g.status||"stop";e={id:g.id||`chatcmpl-${Date.now()}`,object:"chat.completion",created:g.created_at||Math.floor(Date.now()/1e3),model:g.model||d,choices:[{index:0,message:a,finish_reason:c}],usage:{prompt_tokens:s,completion_tokens:t,total_tokens:s+t}}}return{success:!0,response:new Response(JSON.stringify(e),{headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}})}}catch(a){return console.error("[ChatCore] Responses API SSE→JSON failed:",a),(0,g.A1)(h.gx.BAD_GATEWAY,"Failed to convert streaming response to JSON")}try{let f=await a.text(),j=r(f,d,(0,l.Qv)(e?.tools));if(!j)return(0,g.A1)(h.gx.BAD_GATEWAY,"Invalid SSE response for non-streaming request");if(j.error)return(0,g.A1)(h.gx.BAD_GATEWAY,j.error.message||"Upstream SSE stream failed");A&&await A();let p=j.usage||{};C({tokens:p,status:"200 OK"}),(0,k.qr)({provider:c,model:d,tokens:p,connectionId:w,apiKey:x,endpoint:z?.endpoint});let q=Date.now()-v;if((0,o.ox)((0,k.$R)({...G,latency:{ttft:q,total:q},tokens:p,response:{content:j.choices?.[0]?.message?.content||null,thinking:j.choices?.[0]?.message?.reasoning_content||null,finish_reason:j.choices?.[0]?.finish_reason||"unknown"},status:"success"},{endpoint:z?.endpoint||null})).catch(()=>{}),j?.choices)for(let a of j.choices)a?.message?.reasoning_content&&a.message.content&&delete a.message.reasoning_content;let s=j;if(b===i.h.CLAUDE){let a=(0,m.DT)(j,d);s=(0,n.kR)(a,E)}return{success:!0,response:new Response(JSON.stringify(s),{headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}})}}catch(a){return console.error("[ChatCore] Chat Completions SSE→JSON failed:",a),(0,g.A1)(h.gx.BAD_GATEWAY,"Failed to convert streaming response to JSON")}}},56764:(a,b,c)=>{c.d(b,{U:()=>l});var d=c(20526);let e="You are a lazy senior developer. Lazy means efficient, not careless. The best code is the code never written. Before writing code, stop at the first rung that holds: 1. Does this need to exist at all? Speculative need = skip it, say so in one line (YAGNI). 2. Stdlib does it? Use it. 3. Native platform feature covers it? Use it (native input over a picker lib, CSS over JS, DB constraint over app code). 4. Already-installed dependency solves it? Use it. Never add a new dependency for what a few lines can do. 5. Can it be one line? One line. 6. Only then: the minimum code that works.",f="No unrequested abstractions (no interface with one implementation, no factory for one product, no config for a value that never changes). No boilerplate or scaffolding 'for later'. Deletion over addition. Boring over clever. Fewest files possible; shortest working diff wins. Two stdlib options the same size? Take the one correct on edge cases — lazy means less code, not the flimsier algorithm. Mark deliberate simplifications with a `ponytail:` comment naming the ceiling and upgrade path (e.g. `// ponytail: global lock, per-account locks if throughput matters`).",g="Never simplify away: input validation at trust boundaries, error handling that prevents data loss, security, accessibility, or anything explicitly requested. If the user insists on the full version, build it without re-arguing.",h="now is 2026, Be skeptical: never claim 'fixed', 'working', or 'correct' without concrete proof (test output, diff, reproducible verification). If a test passes, verify it tests what you think it tests. Check for side effects. Never fabricate reports ('all tests pass' without running them). Distinguish pre-existing bugs from ones you caused — run tests BEFORE and AFTER, diff the results. Report honestly: if broken and can't fix, say so. If skipped, explain why. If caveats, state them. Verify before declaring done — run relevant tests AFTER changes, show actual output.",i="Code first. Then at most three short lines: what was skipped and when to add it. Pattern: [code] then skipped: [X], add when [Y]. If the explanation is longer than the code, delete the explanation.",j="ACTIVE EVERY RESPONSE. No drift back to over-building. Still active if unsure.",k={lite:[e,"Level: lite. Build what's asked, but name the lazier alternative in one line — the user picks.",f,i,g,h,j].join(" "),full:[e,"Level: full. The ladder is enforced — stdlib and native first, shortest diff, shortest explanation. Ship the lazy version and question unrequested scope in the same response.",f,i,g,h,j].join(" "),ultra:[e,"Level: ultra. YAGNI extremist. Deletion before addition. Ship the one-liner and challenge the rest of the requirement in the same breath. No feature until a profiler or a real requirement demands it.",f,i,g,h,j].join(" ")};function l(a,b,c){(0,d.J)(a,b,k[c])}},60137:(a,b,c)=>{c.d(b,{$:()=>r,M:()=>q});var d=c(69152),e=c(2568),f=c(45479),g=c(77380),h=c(78963),i=c(13946),j=c(92398),k=c(46646),l=c(92913),m=c(23648),n=c(2933);async function o(a){if(!a||"function"!=typeof a.getReader)return{empty:!0};let b=a.getReader();try{let{done:a,value:c}=await b.read();if(a)return{empty:!0};return{empty:!1,firstChunk:c,reader:b}}catch(a){throw b.cancel?.().catch(()=>{}),a}}let p={[d.h.OPENAI_RESPONSES]:d.h.OPENAI_RESPONSES,[d.h.CLAUDE]:d.h.CLAUDE,[d.h.ANTIGRAVITY]:d.h.ANTIGRAVITY,[d.h.GEMINI]:d.h.ANTIGRAVITY,[d.h.GEMINI_CLI]:d.h.ANTIGRAVITY};async function q({providerResponse:a,provider:b,model:c,sourceFormat:r,targetFormat:s,userAgent:t,body:u,stream:v,translatedBody:w,finalBody:x,requestStartTime:y,connectionId:z,apiKey:A,apiKeyInfo:B,apiKeyName:C,clientModelId:D,clientRawRequest:E,onRequestSuccess:F,reqLogger:G,toolNameMap:H,streamController:I,onStreamComplete:J,streamDetailId:K,pxpipe:L}){let M;F&&Promise.resolve().then(F).catch(a=>{console.error("[ChatCore] onRequestSuccess failed:",a?.message||a)});let N=(a.headers.get("content-type")||"").toLowerCase();!N||N.includes("text/event-stream")||N.includes("application/json")||console.warn("[STREAM] "+b+" | "+c+" | unexpected Content-Type: "+N);try{M=await o(a.body)}catch(a){return{success:!1,status:502,errorCode:"STREAM_EARLY_EOF",error:a?.message||String(a)}}if(M.empty)return{success:!1,status:502,errorCode:"STREAM_EARLY_EOF",error:"Upstream closed stream before any useful content"};let O=function({provider:a,sourceFormat:b,targetFormat:c,userAgent:h,reqLogger:j,toolNameMap:k,model:l,connectionId:m,body:n,onStreamComplete:o,apiKey:q,responseModel:r}){let s=h?.toLowerCase().includes("droid")||h?.toLowerCase().includes("codex-cli"),t=i.xq[a]?.format===d.h.OPENAI_RESPONSES&&c===d.h.OPENAI_RESPONSES&&!s,u=/kimi-k2\./i.test(l||"");if(t){let c=p[b]||d.h.OPENAI;return(0,f.i5)(d.h.OPENAI_RESPONSES,c,a,j,k,l,m,n,o,q,u?g.vH:null,r)}return(0,e.nZ)(c,b)?(0,f.i5)(c,b,a,j,k,l,m,n,o,q,u?g.vH:null,r):(0,f.l2)(a,j,l,m,n,o,q,u?g.vH:null,r)}({provider:b,sourceFormat:r,targetFormat:s,userAgent:t,reqLogger:G,toolNameMap:H,model:c,connectionId:z,body:u,onStreamComplete:J,apiKey:A,responseModel:D}),P=r===d.h.OPENAI_RESPONSES&&s===d.h.OPENAI_RESPONSES?k.Hr:null,Q=i.xq[b]?.stallTimeoutMs||j.xM,R=new Response(function({firstChunk:a,reader:b}){let c=!1;return new ReadableStream({async pull(d){if(!c){d.enqueue(a),c=!0;return}try{let{done:a,value:c}=await b.read();a?(d.close(),b.releaseLock?.()):d.enqueue(c)}catch(a){d.error(a),b.cancel?.().catch(()=>{})}},cancel(a){b.cancel?.(a).catch(()=>{})}})}(M),{status:a.status,statusText:a.statusText,headers:a.headers}),S=(0,h.Jb)(R,O,I,P,Q);return(0,m.ox)((0,l.$R)({provider:b,model:c,connectionId:z,apiKey:A,apiKeyName:C,latency:{ttft:0,total:Date.now()-y},tokens:{prompt_tokens:0,completion_tokens:0},request:(0,l.Fo)(u,v),providerRequest:x||w||null,providerResponse:"[Streaming - raw response not captured]",response:{content:"[Streaming in progress...]",thinking:null,type:"streaming"},pxpipe:L,status:"success"},{id:K})).catch(a=>{console.error("[RequestDetail] Failed to save streaming request:",a.message)}),{success:!0,response:new Response(S,{headers:n.RK})}}function r({provider:a,model:b,connectionId:c,apiKey:d,apiKeyInfo:e,apiKeyName:f,requestStartTime:g,body:h,stream:i,finalBody:j,translatedBody:k,clientRawRequest:n,pxpipe:o}){let p=`${Date.now()}-${Math.random().toString(36).slice(2,11)}`;return{onStreamComplete:(q,r,s)=>{let t={ttft:s?s-g:Date.now()-g,total:Date.now()-g},u=q?.content||"[Empty streaming response]",v=q?.thinking||null;(0,m.ox)((0,l.$R)({provider:a,model:b,connectionId:c,apiKey:d,apiKeyName:f,latency:t,tokens:r||{prompt_tokens:0,completion_tokens:0},request:(0,l.Fo)(h,i),providerRequest:j||k||null,providerResponse:u,response:{content:u,thinking:v,type:"streaming"},pxpipe:o,status:"success"},{id:p})).catch(a=>{console.error("[RequestDetail] Failed to update streaming content:",a.message)}),(0,l.qr)({provider:a,model:b,tokens:r,connectionId:c,apiKey:d,apiKeyInfo:e,endpoint:n?.endpoint,label:"STREAM USAGE"})},streamDetailId:p}}},61210:(a,b,c)=>{c.d(b,{F:()=>g});let d=[{triggers:["mcp__exa__web_search_exa","mcp__exa__web_fetch_exa"],strip:["WebSearch","WebFetch","mcp__workspace__web_fetch"]},{triggers:["mcp__tavily__tavily_search","mcp__tavily__tavily_extract"],strip:["WebSearch","WebFetch","mcp__workspace__web_fetch"]},{triggers:[/^mcp__browsermcp__/],strip:[/^mcp__Claude_in_Chrome__/]}];function e(a){return a?.name||a?.function?.name||""}function f(a,b){return"string"==typeof b?a===b:b instanceof RegExp&&b.test(a)}function g(a){if(!Array.isArray(a)||0===a.length)return{tools:a,stripped:[]};let b=a.map(e),c=new Set;for(let a of d)if(b.some(b=>a.triggers.some(a=>f(b,a))))for(let d of b)a.strip.some(a=>f(d,a))&&c.add(d);return 0===c.size?{tools:a,stripped:[]}:{tools:a.filter(a=>!c.has(e(a))),stripped:Array.from(c)}}},63192:(a,b,c)=>{c.d(b,{p:()=>n});var d=c(20526);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])}},69188:(a,b,c)=>{c.d(b,{Nv:()=>m,O2:()=>n,SI:()=>l,cB:()=>o});var d=c(48117),e=c(40657),f=c(59463);function g(a){try{return new TextEncoder().encode(JSON.stringify(a)||"").length}catch{return 0}}function h(a){let b=function(a){if(Array.isArray(a?.messages))return a.messages;if(Array.isArray(a?.input))return a.input;let b=j(a);return b?b.messages:null}(a);return{bodyBytes:g(a),messageBytes:b?g(b):0}}function i(a,b){a&&!a.reason&&(a.reason=b)}function j(a){let b=a?.conversationState;if(!b||"object"!=typeof b)return null;let c=[],d=[],e=(a,b,e,f={})=>{"string"==typeof b&&(c.push({role:a,content:b,...f}),d.push(e))},f=a=>{let b=a?.userInputMessage;if(b){e("system",b.systemInstruction,{object:b,key:"systemInstruction"}),e("user",b.content,{object:b,key:"content"});let a=b.userInputMessageContext?.toolResults;if(Array.isArray(a))for(let b of a){let a=b?.content;if(Array.isArray(a))for(let c of a)e("tool",c?.text,{object:c,key:"text"},b?.toolUseId?{tool_call_id:b.toolUseId}:{})}return}let c=a?.assistantResponseMessage;if(c){let a=(a=>{if(!Array.isArray(a)||0===a.length)return;let b=a.map(a=>({id:a?.toolUseId,type:"function",function:{name:a?.name||"",arguments:JSON.stringify(a?.input||{})}})).filter(a=>a.id||a.function.name);return b.length>0?b:void 0})(c.toolUses);e("assistant",c.content,{object:c,key:"content"},a?{tool_calls:a}:{})}};if(Array.isArray(b.history))for(let a of b.history)f(a);return b.currentMessage&&f(b.currentMessage),c.length>0?{messages:c,targets:d}:null}async function k(a,b,c,d,e,f){let g,h=function(a){try{let b=new URL(a);return b.pathname=`${b.pathname.replace(/\/$/,"")}/v1/compress`,b.hash="",b.toString()}catch{let[b,c=""]=String(a).replace(/#.*$/,"").split("?",2),d=`${b.replace(/\/$/,"")}/v1/compress`;return c?`${d}?${c}`:d}}(a);f.endpoint=function(a){try{let b=new URL(a);return b.username="",b.password="",b.search="",b.hash="",b.toString()}catch{return String(a).replace(/\/\/[^/@\s]+@/,"//").replace(/[?#].*$/,"")}}(h);let j={messages:b,model:c};e&&(j.config={compress_user_messages:!0});try{g=await fetch(h,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(j),signal:AbortSignal.timeout(d)})}catch(d){var k;let a,b,c;return i(f,`request failed: ${(k=d,a=k?.cause,b=a?.code||k?.code,c=String(a?.message||k?.message||String(k)).replace(/\/\/[^/@\s]+@/g,"//").replace(/(https?:\/\/[^\s?#]+)[?#][^\s)]*/g,"$1"),b?`${b}: ${c}`:c)}`),null}if(!g.ok)return i(f,`proxy returned HTTP ${g.status}`),null;let l=await g.json();return Array.isArray(l?.messages)?l:(i(f,"proxy response missing messages[]"),null)}async function l(a,{enabled:b,url:c,model:g,format:m,compressUserMessages:n,timeoutMs:o=3e3,diagnostics:p=null}={}){var q;if(o="number"==typeof(q=o)&&Number.isFinite(q)&&q>0?q:3e3,!b)return i(p,"disabled"),null;if(!c)return i(p,"missing proxy URL"),null;if(!a)return i(p,"missing request body"),null;try{if(p&&(p.before=h(a)),"claude"===m){let b=(0,d.t)(g,a,!1);if(!Array.isArray(b?.messages))return i(p,"Claude request did not translate to messages[]"),null;let f=await k(c,b.messages,g,o,n,p||{});if(!f)return null;let j=(0,e.p)(g,{...b,messages:f.messages},!1);return Array.isArray(j?.messages)&&(a.messages=j.messages),j?.system!==void 0&&(a.system=j.system),p&&(p.after=h(a)),f}if("openai-responses"===m){if(Array.isArray(a?.input)&&a.input.some(a=>!(!a||"object"!=typeof a||Array.isArray(a))&&"string"==typeof a.type&&"message"!==a.type))return i(p,"skipped: openai-responses tool/reasoning input is not safe to compress"),null;let b=(0,f.Z)(g,a,!1);if(!Array.isArray(b?.messages))return i(p,"openai-responses request did not translate to messages[]"),null;let d=await k(c,b.messages,g,o,n,p||{});if(!d)return null;let e=(0,f.h)(g,{...b,input:void 0,messages:d.messages},!1);return Array.isArray(e?.input)&&(a.input=e.input),p&&(p.after=h(a)),d}if("kiro"===m){let b=j(a);if(!b)return i(p,"Kiro request did not project to messages[]"),null;let d=await k(c,b.messages,g,o,n,p||{});if(!d||!function(a,b,c){if(!Array.isArray(b)||b.length!==a.messages.length)return i(c,"proxy response did not match Kiro message count"),!1;let d=[];for(let e=0;e<a.messages.length;e++){let f=a.messages[e],g=b[e];if(!g||g.role!==f.role)return i(c,"proxy response did not preserve Kiro message order"),!1;let h=function(a){let b=a?.content;if("string"==typeof b)return b;if(!Array.isArray(b))return null;let c=[];for(let a of b)"string"==typeof a?c.push(a):"string"==typeof a?.text&&c.push(a.text);return c.length>0?c.join("\n"):null}(g);if(null===h)return i(c,"proxy response missing Kiro text content"),!1;d.push({target:a.targets[e],text:h})}for(let a of d)a.target.object[a.target.key]=a.text;return!0}(b,d.messages,p))return null;return p&&(p.after=h(a)),d}let b=Array.isArray(a.messages)?"messages":Array.isArray(a.input)?"input":null;if(!b)return i(p,`unsupported ${m||"unknown"} request shape`),null;let l=await k(c,a[b],g,o,n,p||{});if(!l)return null;return a[b]=l.messages,p&&(p.after=h(a)),l}catch(a){return i(p,`unexpected error: ${a?.message||String(a)}`),null}}function m(a){if(!a)return null;let b=a.tokens_before||0,c=a.tokens_after||0,d=a.tokens_saved||0,e=b>0?(d/b*100).toFixed(1):"0";return`reported token delta=${d} before=${b}${c?` after=${c}`:""} (${e}%)`.trim()}function n(a){let b=a?.before,c=a?.after;return b&&c?`body=${b.bodyBytes}B→${c.bodyBytes}B messages=${b.messageBytes}B→${c.messageBytes}B`:""}function o(a,b,c=.05){if(!a?.tokens_saved||a.tokens_saved<=0)return!1;let d=b?.before?.bodyBytes||0,e=b?.after?.bodyBytes||0;return!(d<=0)&&!(e<=0)&&e>=d*(1-c)}},72152:(a,b,c)=>{c.d(b,{BI:()=>F,fT:()=>H});let d=new Set(["node_modules",".git","target","__pycache__",".next","dist","build",".cache",".turbo",".vercel",".pytest_cache",".mypy_cache",".tox",".venv","venv","env","coverage",".nyc_output",".DS_Store","Thumbs.db",".idea",".vscode",".vs","*.egg-info",".eggs"]);function e(a,b=500){let c=[],d="",f=0,g=0,h=!1,i=0,j=0,k=!1;for(let e of a.split("\n")){if(e.startsWith("diff --git")){j>0&&(c.push(` ... (${j} lines truncated)`),k=!0,j=0),d&&(f>0||g>0)&&c.push(` +${f} -${g}`);let a=e.split(" b/");d=a.length>1?a.slice(1).join(" b/"):"unknown",c.push(`
|
|
25
|
+
`)}function k(){return(0,e.v8)({event:"response.failed",data:{type:"response.failed",response:{id:`resp_${Date.now()}`,status:"failed",error:{type:"stream_error",code:"stream_disconnected",message:"stream closed before response.completed"}}}},d.h.OPENAI_RESPONSES)}},50996:(a,b,c)=>{function d(a,b){let c;if(!a.trim())return;let d=a.match(/^event:\s*(.+)$/m),e=a.match(/^data:\s*(.+)$/m);if(!d||!e)return;let f=d[1].trim(),g=e[1].trim();if("[DONE]"!==g){try{c=JSON.parse(g)}catch{return}if("response.created"===f)b.responseId=c.response?.id||b.responseId,b.created=c.response?.created_at||b.created;else if("response.output_item.done"===f)b.items.set(c.output_index??0,c.item);else if("response.completed"===f||"response.done"===f){if(b.status="completed",c.response?.usage){let a=c.response.usage;b.usage.input_tokens=a.input_tokens??a.prompt_tokens??0,b.usage.output_tokens=a.output_tokens??a.completion_tokens??0,b.usage.total_tokens=a.total_tokens??b.usage.input_tokens+b.usage.output_tokens,a.input_tokens_details&&(b.usage.input_tokens_details=a.input_tokens_details),a.output_tokens_details&&(b.usage.output_tokens_details=a.output_tokens_details)}}else"response.failed"===f&&(b.status="failed")}}c.d(b,{I9:()=>s,Fe:()=>r});let e={input_tokens:0,output_tokens:0,total_tokens:0};async function f(a){if(!a||"function"!=typeof a.getReader)return{id:`resp_${Date.now()}`,object:"response",created_at:Math.floor(Date.now()/1e3),status:"failed",output:[],usage:{...e}};let b=new TextDecoder,c="",f={responseId:"",created:Math.floor(Date.now()/1e3),status:"in_progress",usage:{...e},items:new Map};for await(let e of a){let a=(c+=b.decode(e,{stream:!0})).split("\n\n");for(let b of(c=a.pop()||"",a))d(b,f)}(c+=b.decode()).trim()&&d(c,f);let g=[],h=f.items.size>0?Math.max(...f.items.keys()):-1;for(let a=0;a<=h;a++)g.push(f.items.get(a)||{type:"message",content:[],role:"assistant"});return{id:f.responseId||`resp_${Date.now()}_${Math.random().toString(36).slice(2,8)}`,object:"response",created_at:f.created,status:f.status||"completed",output:g,usage:f.usage}}var g=c(15261),h=c(92398),i=c(69152),j=c(13946),k=c(92913),l=c(15204),m=c(14018),n=c(97781),o=c(23648);let p=a=>j.xq[a]?.format===i.h.OPENAI_RESPONSES;function q(a){if(!a?.content||!Array.isArray(a.content))return"";let b=a.content.find(a=>"output_text"===a.type);if("string"==typeof b?.text)return b.text;let c=a.content.find(a=>"string"==typeof a.text);return"string"==typeof c?.text?c.text:""}function r(a,b,c=null){let d=[],e=null;for(let b of String(a||"").split("\n")){let a=b.trim();if(!a.startsWith("data:"))continue;let c=a.slice(5).trim();if(c&&"[DONE]"!==c)try{let a=JSON.parse(c);a?.error?e=a.error:d.push(a)}catch{}}if(e)return{error:e};if(0===d.length)return null;let f=d[0],g=[],h=[],i=new Map,j="stop",k=null;for(let a of d){let b=a?.choices?.[0],c=b?.delta||{};if("string"==typeof c.content&&c.content.length>0&&g.push(c.content),"string"==typeof c.reasoning_content&&c.reasoning_content.length>0&&h.push(c.reasoning_content),b?.finish_reason&&(j=b.finish_reason),a?.usage&&"object"==typeof a.usage&&(k=a.usage),!b&&a.response){let b=a.response,c=b.candidates?.[0];if(c){for(let a of c.content?.parts||[])void 0!==a.text&&a.text&&g.push(a.text),a.thought&&a.text&&h.push(a.text);c.finishReason&&(j=c.finishReason.toLowerCase())}let d=b.usageMetadata||a.usageMetadata;if(d&&!k){let a=d.promptTokenCount||0,b=d.candidatesTokenCount||0;k={prompt_tokens:a,completion_tokens:b,total_tokens:d.totalTokenCount||a+b,completion_tokens_details:{reasoning_tokens:d.thoughtsTokenCount||0}}}}if(Array.isArray(c.tool_calls))for(let a of c.tool_calls){let b=a.index??0;i.has(b)||i.set(b,{id:a.id||"",type:"function",function:{name:"",arguments:""}});let c=i.get(b);a.id&&(c.id=a.id),a.function?.name&&(c.function.name+=a.function.name),a.function?.arguments&&(c.function.arguments+=a.function.arguments)}}let m={role:"assistant",content:g.join("")||(i.size>0?null:"")};if(h.length>0&&(m.reasoning_content=h.join("")),i.size>0){let a=[...i.entries()].sort((a,b)=>a[0]-b[0]).map(([,a])=>a);if(c&&c.length>0)for(let b of a)b.function?.name&&(b.function.name=(0,l.vh)(b.function.name,c));m.tool_calls=a}let n={id:f.id||`chatcmpl-${Date.now()}`,object:"chat.completion",created:f.created||Math.floor(Date.now()/1e3),model:f.model||b||"unknown",choices:[{index:0,message:m,finish_reason:j}]};return k&&(n.usage=k),n}async function s({providerResponse:a,sourceFormat:b,provider:c,model:d,body:e,stream:j,translatedBody:t,finalBody:u,requestStartTime:v,connectionId:w,apiKey:x,apiKeyName:y,clientRawRequest:z,onRequestSuccess:A,trackDone:B,appendLog:C,comboName:D,toolNameMap:E}){let F=a.headers.get("content-type")||"";if(!(F.includes("text/event-stream")||""===F&&p(c)))return null;B();let G={provider:c,model:d,connectionId:w,apiKey:x,apiKeyName:y,request:(0,k.Fo)(e,j),providerRequest:u||t||null};if(p(c)||b===i.h.OPENAI_RESPONSES)try{let e,g=await f(a.body);A&&await A();let h=g.usage||{},j=function(a={}){return{prompt_tokens:a.input_tokens??a.prompt_tokens??0,completion_tokens:a.output_tokens??a.completion_tokens??0,total_tokens:a.total_tokens??(a.input_tokens??a.prompt_tokens??0)+(a.output_tokens??a.completion_tokens??0)}}(h);C({tokens:j,status:"200 OK"}),(0,k.qr)({provider:c,model:d,tokens:j,connectionId:w,apiKey:x,endpoint:z?.endpoint,comboName:D});let{msgItem:l,textContent:p}=function(a){if(!Array.isArray(a))return{msgItem:null,textContent:null};let b=a.filter(a=>a?.type==="message");if(0===b.length)return{msgItem:null,textContent:null};for(let a=b.length-1;a>=0;a--){let c=q(b[a]);if(c.length>0)return{msgItem:b[a],textContent:c}}let c=b[b.length-1];return{msgItem:c,textContent:q(c)}}(g.output),r=Date.now()-v;if((0,o.ox)((0,k.$R)({...G,latency:{ttft:r,total:r},tokens:j,response:{content:p,thinking:null,finish_reason:g.status||"unknown"},status:"success"},{endpoint:z?.endpoint||null})).catch(()=>{}),b===i.h.OPENAI_RESPONSES)return{success:!0,response:new Response(JSON.stringify(g),{headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}})};let s=j.prompt_tokens,t=j.completion_tokens,u=(g.output||[]).filter(a=>"function_call"===a.type).map((a,b)=>({id:a.call_id||`call_${a.name}_${Date.now()}_${b}`,type:"function",function:{name:a.name,arguments:"string"==typeof a.arguments?a.arguments:JSON.stringify(a.arguments||{})}})),y=u.length>0;if(b===i.h.ANTIGRAVITY||b===i.h.GEMINI||b===i.h.GEMINI_CLI)e={response:{candidates:[{content:{role:"model",parts:[{text:p||""}]},finishReason:"STOP",index:0}],usageMetadata:{promptTokenCount:s,candidatesTokenCount:t,totalTokenCount:s+t},modelVersion:d,responseId:g.id||`resp_${Date.now()}`}};else if(b===i.h.CLAUDE){let a={id:g.id||`chatcmpl-${Date.now()}`,model:g.model||d,choices:[{index:0,message:{role:"assistant",content:p||(y?null:"")},finish_reason:y?"tool_calls":"stop"}],usage:{prompt_tokens:s,completion_tokens:t}};y&&(a.choices[0].message.tool_calls=u);let b=(0,m.DT)(a,d);e=(0,n.kR)(b,E)}else{let a={role:"assistant",content:p||(y?null:"")};y&&(a.tool_calls=u);let b="completed"===g.status||"done"===g.status,c=y?"tool_calls":b?"stop":g.status||"stop";e={id:g.id||`chatcmpl-${Date.now()}`,object:"chat.completion",created:g.created_at||Math.floor(Date.now()/1e3),model:g.model||d,choices:[{index:0,message:a,finish_reason:c}],usage:{prompt_tokens:s,completion_tokens:t,total_tokens:s+t}}}return{success:!0,response:new Response(JSON.stringify(e),{headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}})}}catch(a){return console.error("[ChatCore] Responses API SSE→JSON failed:",a),(0,g.A1)(h.gx.BAD_GATEWAY,"Failed to convert streaming response to JSON")}try{let f=await a.text(),j=r(f,d,(0,l.Qv)(e?.tools));if(!j)return(0,g.A1)(h.gx.BAD_GATEWAY,"Invalid SSE response for non-streaming request");if(j.error)return(0,g.A1)(h.gx.BAD_GATEWAY,j.error.message||"Upstream SSE stream failed");A&&await A();let p=j.usage||{};C({tokens:p,status:"200 OK"}),(0,k.qr)({provider:c,model:d,tokens:p,connectionId:w,apiKey:x,endpoint:z?.endpoint});let q=Date.now()-v;if((0,o.ox)((0,k.$R)({...G,latency:{ttft:q,total:q},tokens:p,response:{content:j.choices?.[0]?.message?.content||null,thinking:j.choices?.[0]?.message?.reasoning_content||null,finish_reason:j.choices?.[0]?.finish_reason||"unknown"},status:"success"},{endpoint:z?.endpoint||null})).catch(()=>{}),j?.choices)for(let a of j.choices)a?.message?.reasoning_content&&a.message.content&&delete a.message.reasoning_content;let s=j;if(b===i.h.CLAUDE){let a=(0,m.DT)(j,d);s=(0,n.kR)(a,E)}return{success:!0,response:new Response(JSON.stringify(s),{headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}})}}catch(a){return console.error("[ChatCore] Chat Completions SSE→JSON failed:",a),(0,g.A1)(h.gx.BAD_GATEWAY,"Failed to convert streaming response to JSON")}}},56764:(a,b,c)=>{c.d(b,{U:()=>l});var d=c(20526);let e="You are a lazy senior developer. Lazy means efficient, not careless. The best code is the code never written. Before writing code, stop at the first rung that holds: 1. Does this need to exist at all? Speculative need = skip it, say so in one line (YAGNI). 2. Stdlib does it? Use it. 3. Native platform feature covers it? Use it (native input over a picker lib, CSS over JS, DB constraint over app code). 4. Already-installed dependency solves it? Use it. Never add a new dependency for what a few lines can do. 5. Can it be one line? One line. 6. Only then: the minimum code that works.",f="No unrequested abstractions (no interface with one implementation, no factory for one product, no config for a value that never changes). No boilerplate or scaffolding 'for later'. Deletion over addition. Boring over clever. Fewest files possible; shortest working diff wins. Two stdlib options the same size? Take the one correct on edge cases — lazy means less code, not the flimsier algorithm. Mark deliberate simplifications with a `ponytail:` comment naming the ceiling and upgrade path (e.g. `// ponytail: global lock, per-account locks if throughput matters`).",g="Never simplify away: input validation at trust boundaries, error handling that prevents data loss, security, accessibility, or anything explicitly requested. If the user insists on the full version, build it without re-arguing.",h="now is 2026, Be skeptical: never claim 'fixed', 'working', or 'correct' without concrete proof (test output, diff, reproducible verification). If a test passes, verify it tests what you think it tests. Check for side effects. Never fabricate reports ('all tests pass' without running them). Distinguish pre-existing bugs from ones you caused — run tests BEFORE and AFTER, diff the results. Report honestly: if broken and can't fix, say so. If skipped, explain why. If caveats, state them. Verify before declaring done — run relevant tests AFTER changes, show actual output.",i="Code first. Then at most three short lines: what was skipped and when to add it. Pattern: [code] then skipped: [X], add when [Y]. If the explanation is longer than the code, delete the explanation.",j="ACTIVE EVERY RESPONSE. No drift back to over-building. Still active if unsure.",k={lite:[e,"Level: lite. Build what's asked, but name the lazier alternative in one line — the user picks.",f,i,g,h,j].join(" "),full:[e,"Level: full. The ladder is enforced — stdlib and native first, shortest diff, shortest explanation. Ship the lazy version and question unrequested scope in the same response.",f,i,g,h,j].join(" "),ultra:[e,"Level: ultra. YAGNI extremist. Deletion before addition. Ship the one-liner and challenge the rest of the requirement in the same breath. No feature until a profiler or a real requirement demands it.",f,i,g,h,j].join(" ")};function l(a,b,c){(0,d.J)(a,b,k[c])}},60137:(a,b,c)=>{c.d(b,{$:()=>r,M:()=>q});var d=c(69152),e=c(2568),f=c(45479),g=c(77380),h=c(78963),i=c(13946),j=c(92398),k=c(46646),l=c(92913),m=c(23648),n=c(2933);async function o(a,b=25e3){let c;if(!a||"function"!=typeof a.getReader)return{empty:!0};let d=a.getReader(),e=d.read();try{let a=new Promise((a,d)=>{c=setTimeout(()=>d(Error("PEEK_TIMEOUT")),b)}),{done:f,value:g}=await Promise.race([e,a]);if(f)return{empty:!0};return{empty:!1,firstChunk:g,reader:d}}catch(a){if(a?.message==="PEEK_TIMEOUT")return{empty:!1,unpeeked:!0,pendingRead:e,reader:d};throw d.cancel?.().catch(()=>{}),a}finally{clearTimeout(c)}}let p={[d.h.OPENAI_RESPONSES]:d.h.OPENAI_RESPONSES,[d.h.CLAUDE]:d.h.CLAUDE,[d.h.ANTIGRAVITY]:d.h.ANTIGRAVITY,[d.h.GEMINI]:d.h.ANTIGRAVITY,[d.h.GEMINI_CLI]:d.h.ANTIGRAVITY};async function q({providerResponse:a,provider:b,model:c,sourceFormat:r,targetFormat:s,userAgent:t,body:u,stream:v,translatedBody:w,finalBody:x,requestStartTime:y,connectionId:z,apiKey:A,apiKeyInfo:B,apiKeyName:C,clientModelId:D,clientRawRequest:E,onRequestSuccess:F,reqLogger:G,toolNameMap:H,streamController:I,onStreamComplete:J,streamDetailId:K,pxpipe:L}){let M;F&&Promise.resolve().then(F).catch(a=>{console.error("[ChatCore] onRequestSuccess failed:",a?.message||a)});let N=(a.headers.get("content-type")||"").toLowerCase();!N||N.includes("text/event-stream")||N.includes("application/json")||console.warn("[STREAM] "+b+" | "+c+" | unexpected Content-Type: "+N);try{M=await o(a.body)}catch(a){return{success:!1,status:502,errorCode:"STREAM_EARLY_EOF",error:a?.message||String(a)}}if(M.empty)return{success:!1,status:502,errorCode:"STREAM_EARLY_EOF",error:"Upstream closed stream before any useful content"};let O=function({provider:a,sourceFormat:b,targetFormat:c,userAgent:h,reqLogger:j,toolNameMap:k,model:l,connectionId:m,body:n,onStreamComplete:o,apiKey:q,responseModel:r}){let s=h?.toLowerCase().includes("droid")||h?.toLowerCase().includes("codex-cli"),t=i.xq[a]?.format===d.h.OPENAI_RESPONSES&&c===d.h.OPENAI_RESPONSES&&!s,u=/kimi-k2\./i.test(l||"");if(t){let c=p[b]||d.h.OPENAI;return(0,f.i5)(d.h.OPENAI_RESPONSES,c,a,j,k,l,m,n,o,q,u?g.vH:null,r)}return(0,e.nZ)(c,b)?(0,f.i5)(c,b,a,j,k,l,m,n,o,q,u?g.vH:null,r):(0,f.l2)(a,j,l,m,n,o,q,u?g.vH:null,r)}({provider:b,sourceFormat:r,targetFormat:s,userAgent:t,reqLogger:G,toolNameMap:H,model:c,connectionId:z,body:u,onStreamComplete:J,apiKey:A,responseModel:D}),P=r===d.h.OPENAI_RESPONSES&&s===d.h.OPENAI_RESPONSES?k.Hr:null,Q=i.xq[b]?.stallTimeoutMs||j.xM,R=new Response(function({firstChunk:a,unpeeked:b,pendingRead:c,reader:d}){let e=b,f=c;return new ReadableStream({async pull(b){if(!e){b.enqueue(a),e=!0;return}try{let{done:a,value:c}=await (f||d.read());f=null,a?(b.close(),d.releaseLock?.()):b.enqueue(c)}catch(a){b.error(a),d.cancel?.().catch(()=>{})}},cancel(a){d.cancel?.(a).catch(()=>{})}})}(M),{status:a.status,statusText:a.statusText,headers:a.headers}),S=(0,h.Jb)(R,O,I,P,Q);return(0,m.ox)((0,l.$R)({provider:b,model:c,connectionId:z,apiKey:A,apiKeyName:C,latency:{ttft:0,total:Date.now()-y},tokens:{prompt_tokens:0,completion_tokens:0},request:(0,l.Fo)(u,v),providerRequest:x||w||null,providerResponse:"[Streaming - raw response not captured]",response:{content:"[Streaming in progress...]",thinking:null,type:"streaming"},pxpipe:L,status:"success"},{id:K})).catch(a=>{console.error("[RequestDetail] Failed to save streaming request:",a.message)}),{success:!0,response:new Response(S,{headers:n.RK})}}function r({provider:a,model:b,connectionId:c,apiKey:d,apiKeyInfo:e,apiKeyName:f,requestStartTime:g,body:h,stream:i,finalBody:j,translatedBody:k,clientRawRequest:n,pxpipe:o}){let p=`${Date.now()}-${Math.random().toString(36).slice(2,11)}`;return{onStreamComplete:(q,r,s)=>{let t={ttft:s?s-g:Date.now()-g,total:Date.now()-g},u=q?.content||"[Empty streaming response]",v=q?.thinking||null;(0,m.ox)((0,l.$R)({provider:a,model:b,connectionId:c,apiKey:d,apiKeyName:f,latency:t,tokens:r||{prompt_tokens:0,completion_tokens:0},request:(0,l.Fo)(h,i),providerRequest:j||k||null,providerResponse:u,response:{content:u,thinking:v,type:"streaming"},pxpipe:o,status:"success"},{id:p})).catch(a=>{console.error("[RequestDetail] Failed to update streaming content:",a.message)}),(0,l.qr)({provider:a,model:b,tokens:r,connectionId:c,apiKey:d,apiKeyInfo:e,endpoint:n?.endpoint,label:"STREAM USAGE"})},streamDetailId:p}}},61210:(a,b,c)=>{c.d(b,{F:()=>g});let d=[{triggers:["mcp__exa__web_search_exa","mcp__exa__web_fetch_exa"],strip:["WebSearch","WebFetch","mcp__workspace__web_fetch"]},{triggers:["mcp__tavily__tavily_search","mcp__tavily__tavily_extract"],strip:["WebSearch","WebFetch","mcp__workspace__web_fetch"]},{triggers:[/^mcp__browsermcp__/],strip:[/^mcp__Claude_in_Chrome__/]}];function e(a){return a?.name||a?.function?.name||""}function f(a,b){return"string"==typeof b?a===b:b instanceof RegExp&&b.test(a)}function g(a){if(!Array.isArray(a)||0===a.length)return{tools:a,stripped:[]};let b=a.map(e),c=new Set;for(let a of d)if(b.some(b=>a.triggers.some(a=>f(b,a))))for(let d of b)a.strip.some(a=>f(d,a))&&c.add(d);return 0===c.size?{tools:a,stripped:[]}:{tools:a.filter(a=>!c.has(e(a))),stripped:Array.from(c)}}},63192:(a,b,c)=>{c.d(b,{p:()=>n});var d=c(20526);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])}},69188:(a,b,c)=>{c.d(b,{Nv:()=>m,O2:()=>n,SI:()=>l,cB:()=>o});var d=c(48117),e=c(40657),f=c(59463);function g(a){try{return new TextEncoder().encode(JSON.stringify(a)||"").length}catch{return 0}}function h(a){let b=function(a){if(Array.isArray(a?.messages))return a.messages;if(Array.isArray(a?.input))return a.input;let b=j(a);return b?b.messages:null}(a);return{bodyBytes:g(a),messageBytes:b?g(b):0}}function i(a,b){a&&!a.reason&&(a.reason=b)}function j(a){let b=a?.conversationState;if(!b||"object"!=typeof b)return null;let c=[],d=[],e=(a,b,e,f={})=>{"string"==typeof b&&(c.push({role:a,content:b,...f}),d.push(e))},f=a=>{let b=a?.userInputMessage;if(b){e("system",b.systemInstruction,{object:b,key:"systemInstruction"}),e("user",b.content,{object:b,key:"content"});let a=b.userInputMessageContext?.toolResults;if(Array.isArray(a))for(let b of a){let a=b?.content;if(Array.isArray(a))for(let c of a)e("tool",c?.text,{object:c,key:"text"},b?.toolUseId?{tool_call_id:b.toolUseId}:{})}return}let c=a?.assistantResponseMessage;if(c){let a=(a=>{if(!Array.isArray(a)||0===a.length)return;let b=a.map(a=>({id:a?.toolUseId,type:"function",function:{name:a?.name||"",arguments:JSON.stringify(a?.input||{})}})).filter(a=>a.id||a.function.name);return b.length>0?b:void 0})(c.toolUses);e("assistant",c.content,{object:c,key:"content"},a?{tool_calls:a}:{})}};if(Array.isArray(b.history))for(let a of b.history)f(a);return b.currentMessage&&f(b.currentMessage),c.length>0?{messages:c,targets:d}:null}async function k(a,b,c,d,e,f){let g,h=function(a){try{let b=new URL(a);return b.pathname=`${b.pathname.replace(/\/$/,"")}/v1/compress`,b.hash="",b.toString()}catch{let[b,c=""]=String(a).replace(/#.*$/,"").split("?",2),d=`${b.replace(/\/$/,"")}/v1/compress`;return c?`${d}?${c}`:d}}(a);f.endpoint=function(a){try{let b=new URL(a);return b.username="",b.password="",b.search="",b.hash="",b.toString()}catch{return String(a).replace(/\/\/[^/@\s]+@/,"//").replace(/[?#].*$/,"")}}(h);let j={messages:b,model:c};e&&(j.config={compress_user_messages:!0});try{g=await fetch(h,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(j),signal:AbortSignal.timeout(d)})}catch(d){var k;let a,b,c;return i(f,`request failed: ${(k=d,a=k?.cause,b=a?.code||k?.code,c=String(a?.message||k?.message||String(k)).replace(/\/\/[^/@\s]+@/g,"//").replace(/(https?:\/\/[^\s?#]+)[?#][^\s)]*/g,"$1"),b?`${b}: ${c}`:c)}`),null}if(!g.ok)return i(f,`proxy returned HTTP ${g.status}`),null;let l=await g.json();return Array.isArray(l?.messages)?l:(i(f,"proxy response missing messages[]"),null)}async function l(a,{enabled:b,url:c,model:g,format:m,compressUserMessages:n,timeoutMs:o=3e3,diagnostics:p=null}={}){var q;if(o="number"==typeof(q=o)&&Number.isFinite(q)&&q>0?q:3e3,!b)return i(p,"disabled"),null;if(!c)return i(p,"missing proxy URL"),null;if(!a)return i(p,"missing request body"),null;try{if(p&&(p.before=h(a)),"claude"===m){let b=(0,d.t)(g,a,!1);if(!Array.isArray(b?.messages))return i(p,"Claude request did not translate to messages[]"),null;let f=await k(c,b.messages,g,o,n,p||{});if(!f)return null;let j=(0,e.p)(g,{...b,messages:f.messages},!1);return Array.isArray(j?.messages)&&(a.messages=j.messages),j?.system!==void 0&&(a.system=j.system),p&&(p.after=h(a)),f}if("openai-responses"===m){if(Array.isArray(a?.input)&&a.input.some(a=>!(!a||"object"!=typeof a||Array.isArray(a))&&"string"==typeof a.type&&"message"!==a.type))return i(p,"skipped: openai-responses tool/reasoning input is not safe to compress"),null;let b=(0,f.Z)(g,a,!1);if(!Array.isArray(b?.messages))return i(p,"openai-responses request did not translate to messages[]"),null;let d=await k(c,b.messages,g,o,n,p||{});if(!d)return null;let e=(0,f.h)(g,{...b,input:void 0,messages:d.messages},!1);return Array.isArray(e?.input)&&(a.input=e.input),p&&(p.after=h(a)),d}if("kiro"===m){let b=j(a);if(!b)return i(p,"Kiro request did not project to messages[]"),null;let d=await k(c,b.messages,g,o,n,p||{});if(!d||!function(a,b,c){if(!Array.isArray(b)||b.length!==a.messages.length)return i(c,"proxy response did not match Kiro message count"),!1;let d=[];for(let e=0;e<a.messages.length;e++){let f=a.messages[e],g=b[e];if(!g||g.role!==f.role)return i(c,"proxy response did not preserve Kiro message order"),!1;let h=function(a){let b=a?.content;if("string"==typeof b)return b;if(!Array.isArray(b))return null;let c=[];for(let a of b)"string"==typeof a?c.push(a):"string"==typeof a?.text&&c.push(a.text);return c.length>0?c.join("\n"):null}(g);if(null===h)return i(c,"proxy response missing Kiro text content"),!1;d.push({target:a.targets[e],text:h})}for(let a of d)a.target.object[a.target.key]=a.text;return!0}(b,d.messages,p))return null;return p&&(p.after=h(a)),d}let b=Array.isArray(a.messages)?"messages":Array.isArray(a.input)?"input":null;if(!b)return i(p,`unsupported ${m||"unknown"} request shape`),null;let l=await k(c,a[b],g,o,n,p||{});if(!l)return null;return a[b]=l.messages,p&&(p.after=h(a)),l}catch(a){return i(p,`unexpected error: ${a?.message||String(a)}`),null}}function m(a){if(!a)return null;let b=a.tokens_before||0,c=a.tokens_after||0,d=a.tokens_saved||0,e=b>0?(d/b*100).toFixed(1):"0";return`reported token delta=${d} before=${b}${c?` after=${c}`:""} (${e}%)`.trim()}function n(a){let b=a?.before,c=a?.after;return b&&c?`body=${b.bodyBytes}B→${c.bodyBytes}B messages=${b.messageBytes}B→${c.messageBytes}B`:""}function o(a,b,c=.05){if(!a?.tokens_saved||a.tokens_saved<=0)return!1;let d=b?.before?.bodyBytes||0,e=b?.after?.bodyBytes||0;return!(d<=0)&&!(e<=0)&&e>=d*(1-c)}},72152:(a,b,c)=>{c.d(b,{BI:()=>F,fT:()=>H});let d=new Set(["node_modules",".git","target","__pycache__",".next","dist","build",".cache",".turbo",".vercel",".pytest_cache",".mypy_cache",".tox",".venv","venv","env","coverage",".nyc_output",".DS_Store","Thumbs.db",".idea",".vscode",".vs","*.egg-info",".eggs"]);function e(a,b=500){let c=[],d="",f=0,g=0,h=!1,i=0,j=0,k=!1;for(let e of a.split("\n")){if(e.startsWith("diff --git")){j>0&&(c.push(` ... (${j} lines truncated)`),k=!0,j=0),d&&(f>0||g>0)&&c.push(` +${f} -${g}`);let a=e.split(" b/");d=a.length>1?a.slice(1).join(" b/"):"unknown",c.push(`
|
|
32
26
|
${d}`),f=0,g=0,h=!1,i=0}else e.startsWith("@@")?(j>0&&(c.push(` ... (${j} lines truncated)`),k=!0,j=0),h=!0,i=0,c.push(` ${e}`)):h&&(e.startsWith("+")&&!e.startsWith("+++")?(f+=1,i<100?(c.push(` ${e}`),i+=1):j+=1):e.startsWith("-")&&!e.startsWith("---")?(g+=1,i<100?(c.push(` ${e}`),i+=1):j+=1):i<100&&!e.startsWith("\\")&&i>0&&(c.push(` ${e}`),i+=1));if(c.length>=b){c.push("\n... (more changes truncated)"),k=!0;break}}return j>0&&(c.push(` ... (${j} lines truncated)`),k=!0),d&&(f>0||g>0)&&c.push(` +${f} -${g}`),k&&c.push("[full diff: rtk git diff --no-compact]"),c.join("\n")}function f(a){let b=a.split("\n");if(0===b.length||1===b.length&&!b[0].trim())return"Clean working tree";let c="",d=[],e=[],f=[],g=0,h=0,i=0,j=0;for(let a of b){if(!a.trim())continue;let b=a.match(/^On branch (\S+)/);if(b){c=b[1];continue}if(a.startsWith("##")){c=a.replace(/^##\s*/,"");continue}if(a.length>=3&&/^[ MADRCU?!][ MADRCU?!] /.test(a)){let b=a[0],c=a[1],k=a.slice(3);if("??"===a.slice(0,2)){i++,f.push(k);continue}"MADRC".includes(b)?(g++,d.push(k)):"U"===b&&j++,("M"===c||"D"===c)&&(h++,e.push(k));continue}let k=a.match(/^\s*(modified|new file|deleted|renamed|both modified):\s+(.+)$/);if(k){let a=k[1],b=k[2].trim();"both modified"===a?j++:"modified"===a||"deleted"===a?(h++,e.push(b)):("new file"===a||"renamed"===a)&&(g++,d.push(b));continue}}let k="";if(c&&(k+=`* ${c}
|
|
33
27
|
`),g>0){for(let a of(k+=`+ Staged: ${g} files
|
|
34
28
|
`,d.slice(0,10)))k+=` ${a}
|
|
@@ -72,7 +66,7 @@ ${e.length} files in ${g.length} dirs:
|
|
|
72
66
|
`,b.slice(0,10)))h+=` ${c}
|
|
73
67
|
`;b.length>10&&(h+=` +${b.length-10}
|
|
74
68
|
`),h+="\n"}return g.length>20&&(h+=`+${g.length-20} more dirs
|
|
75
|
-
`),h.replace(/\n+$/,"")}s.filterName="search-list";let t=/^Result of search in '[^']*' \(total (\d+) files?\):/,u=/^diff --git /m,v=/^@@ /m,w=/^On branch |^nothing to commit|^Changes (not |to be )|^Untracked files:/m,x=/^[*|/\\ ]*commit [0-9a-f]{7,40}$/m,y=/^[ MADRCU?!][ MADRCU?!] \S/m,z=/^(npm (warn|error|ERR!)|yarn (warn|error)|\s*Compiling\s+\S+|\s*Downloading\s+\S+|added \d+ package|\[ERROR\]|BUILD (SUCCESS|FAILED)|\s*Finished\s+|Successfully (installed|built)|ERROR:)/im,A=/[├└]──|│ /,B=/^[-dlbcps][rwx-]{9}/m,C=/^total \d+$/m;function D(a){let b=a.indexOf(":");if(-1===b)return!1;let c=a.indexOf(":",b+1);if(-1===c)return!1;let d=a.slice(b+1,c);return/^\d+$/.test(d)}function E(a){let b=a.trim();return 0!==b.length&&(!!/^[A-Za-z]:[\\/]/.test(b)||!b.includes(":")&&(b.startsWith(".")||b.startsWith("/")||b.includes("/")))}function F(a,b){if(void 0===b&&(b=!1),!b||!a)return null;if(a.conversationState){var c=a;let b={bytesBefore:0,bytesAfter:0,hits:[]};try{let a=c.conversationState,d=[...Array.isArray(a?.history)?a.history:[]];for(let c of(a?.currentMessage&&d.push(a.currentMessage),d)){let a=c?.userInputMessage?.userInputMessageContext?.toolResults;if(Array.isArray(a)){for(let c of a)if("error"!==c.status&&Array.isArray(c.content))for(let a of c.content)a&&"string"==typeof a.text&&(a.text=G(a.text,b,"kiro-tool-result"))}}}catch(a){return console.warn("[RTK] compressKiroFormat error:",a.message),null}return b}let d=Array.isArray(a.messages)?a.messages:Array.isArray(a.input)?a.input:null;if(!d)return null;let e={bytesBefore:0,bytesAfter:0,hits:[]};try{for(let a=0;a<d.length;a++){let b=d[a];if(b){if("function_call_output"===b.type){if("string"==typeof b.output)b.output=G(b.output,e,"openai-responses-string");else if(Array.isArray(b.output))for(let a=0;a<b.output.length;a++){let c=b.output[a];c&&"input_text"===c.type&&"string"==typeof c.text&&(c.text=G(c.text,e,"openai-responses-array"))}continue}if("tool"===b.role&&"string"==typeof b.content){b.content=G(b.content,e,"openai-tool");continue}if(Array.isArray(b.content)){if("tool"===b.role){for(let a=0;a<b.content.length;a++){let c=b.content[a];c&&"text"===c.type&&"string"==typeof c.text&&(c.text=G(c.text,e,"openai-tool-array"))}continue}for(let a=0;a<b.content.length;a++){let c=b.content[a];if(c&&"tool_result"===c.type&&!0!==c.is_error){if("string"==typeof c.content)c.content=G(c.content,e,"claude-string");else if(Array.isArray(c.content))for(let a=0;a<c.content.length;a++){let b=c.content[a];b&&"text"===b.type&&"string"==typeof b.text&&(b.text=G(b.text,e,"claude-array"))}}}}}}}catch(a){return console.warn("[RTK] compressMessages error:",a.message),null}return e}function G(a,b,c){let d=a.length;if(b.bytesBefore+=d,d<500||d>0xa00000)return b.bytesAfter+=d,a;let h=function(a){var b,c;let d,h,m=a.length>1024?a.slice(0,1024):a;if(x.test(m))return g;if(u.test(m)||v.test(m))return e;if(w.test(m))return f;if(z.test(m))return i;if(!((d=m.split("\n").filter(a=>a.trim())).length<3)&&d.filter(a=>y.test(a)).length/d.length>=.6)return f;let F=m.split("\n"),G=F.filter(a=>a.trim().length>0);return G.slice(0,5).some(D)?j:G.length>=3&&G.every(E)?k:A.test(m)?o:C.test(m)||(b=m,h=new RegExp((c=B).source,c.flags.includes("g")?c.flags:c.flags+"g"),(b.match(h)||[]).length>=3)?n:t.test(m)?s:F.length>=250&&function(a){let b=0,c=0;for(let d of a.slice(0,100))0!==d.length&&(c++,r.test(d)&&b++);return!(c<5)&&b/c>=.7}(F)?q:G.length>=5?l:a.split("\n").length>=250?p:null}(a);if(!h)return b.bytesAfter+=d,a;let m=function(a,b){if("function"!=typeof a)return b;try{let c=a(b);if("string"!=typeof c)return b;return c}catch(d){let c=a.filterName||a.name||"anonymous";return console.warn(`[rtk] warning: filter '${c}' panicked — passing through raw output: ${d?.message||d}`),b}}(h,a);return!m||0===m.length||m.length>=d?(b.bytesAfter+=d,a):(b.bytesAfter+=m.length,b.hits.push({shape:c,filter:h.filterName||h.name,saved:d-m.length}),m)}function H(a){if(!a||!a.hits||0===a.hits.length)return null;let b=a.bytesBefore-a.bytesAfter,c=a.bytesBefore>0?(b/a.bytesBefore*100).toFixed(1):"0",d=Array.from(new Set(a.hits.map(a=>a.filter))).join(",");return`[RTK] saved ${b}B / ${a.bytesBefore}B (${c}%) via [${d}] hits=${a.hits.length}`}},77380:(a,b,c)=>{c.d(b,{vH:()=>f});let d="functions.";function e(a){let b=a.indexOf(d);return -1===b?{prefix:a,tail:""}:{prefix:a.slice(0,b).trim(),tail:a.slice(b)}}function f(a){let b=a?.content,c="string"==typeof b?b:"";if(Array.isArray(a?.tool_calls)&&a.tool_calls.length>0)return{message:{...a},hasTools:!0,originalContent:c};let f=function(a){if(!("string"==typeof a&&0!==a.length&&a.includes(d)))return[];let{tail:b}=e(a);if(!b)return[];let c=[],f=b,g=0;for(;f.length>0&&c.length<64&&f.startsWith(d);){let a=(f=f.slice(d.length)).indexOf(d),b=function(a,b){let c;if("string"!=typeof a||0===a.length)return null;let d=a.indexOf("{");if(-1===d)return null;let e=a.slice(0,d).trim(),f=a.slice(d),g=e.match(/^([a-zA-Z0-9_\-/.]+)(?::([a-zA-Z0-9_\-]+))?$/);if(!g)return null;let h=g[1],i=g[2];try{c=function(a){let b=0,c=!1,d=!1,e=-1;for(let f=0;f<a.length;f++){let g=a[f];if(c){if(d){d=!1;continue}if("\\"===g){d=!0;continue}'"'===g&&(c=!1);continue}if('"'===g){c=!0;continue}if("{"===g){1==++b&&(e=-1);continue}if("}"===g){if(0==--b){e=f+1;break}continue}}if(-1===e)throw Error("unbalanced JSON object");return JSON.parse(a.slice(0,e))}(f)}catch{return null}return{id:i?`functions.${h}:${i}`:`functions.${h}:${b}`,type:"function",function:{name:h,arguments:JSON.stringify(c)}}}(-1===a?f:f.slice(0,a),g);if(!b||(c.push(b),g++,-1===a))break;f=f.slice(a)}return c}(c);if(0===f.length)return{message:{...a},hasTools:!1,originalContent:c};let{prefix:g}=e(c);return{message:{...a,content:g,tool_calls:f},hasTools:!0,originalContent:c}}},78963:(a,b,c)=>{c.d(b,{Jb:()=>g,jd:()=>f});var d=c(92398),e=c(25440);function f({onDisconnect:a,onError:b,log:c,provider:d,model:g}={}){let h=new AbortController,i=Date.now(),j=!1,k=a=>{let b=Date.now()-i,c=d?.toUpperCase()||"UNKNOWN";console.log(`[${new Date().toLocaleTimeString("en-US",{hour12:!1,hour:"2-digit",minute:"2-digit",second:"2-digit"})}] 🌊 [STREAM] ${c} | ${g||"unknown"} | ${b}ms | ${a}`)};return{signal:h.signal,startTime:i,isConnected:()=>!j,handleDisconnect:(b="client_closed")=>{j||(j=!0,(0,e.s)("CTRL",`${d}/${g} | disconnect=${b} | dur=${Date.now()-i}ms`),h.abort(),a?.({reason:b,duration:Date.now()-i}))},handleComplete:()=>{j||(j=!0,k("complete"))},handleError:a=>{if(!j){if(j=!0,"AbortError"===a.name)return void k("aborted");k(`error: ${a.message}`),b?.(a)}},abort:()=>h.abort()}}function g(a,b,c,f=null,h=d.xM){let i=null,j=0,k=0,l=Date.now(),m=Date.now(),n="STREAM",o=()=>{i&&(clearTimeout(i),i=null)},p=()=>{o(),i=setTimeout(()=>{i=null,(0,e.s)(n,`STALL TIMEOUT ${h}ms | chunks=${j} | bytes=${k} | sinceLast=${Date.now()-l}ms`),c.handleError?.(Error("stream stall timeout")),c.abort?.()},h)},q={signal:c.signal,startTime:c.startTime,isConnected:()=>c.isConnected(),handleComplete:()=>{(0,e.s)(n,`complete | chunks=${j} | bytes=${k} | dur=${Date.now()-m}ms`),o(),c.handleComplete()},handleError:a=>{(0,e.s)(n,`error: ${a?.message} | chunks=${j} | bytes=${k} | dur=${Date.now()-m}ms`),o(),c.handleError(a)},handleDisconnect:a=>{(0,e.s)(n,`disconnect: ${a} | chunks=${j} | bytes=${k} | dur=${Date.now()-m}ms`),o(),c.handleDisconnect(a)},abort:()=>{o(),c.abort()}};p(),(0,e.s)(n,`pipe start | stallTimeout=${h}ms`);let r=new TransformStream({transform(a,b){j++;let c=a?.byteLength||a?.length||0;k+=c;let d=Date.now(),f=d-l;l=d,e.T&&(j<=5||j%20==0||f>5e3)&&(0,e.s)(n,`chunk #${j} | size=${c}B | gap=${f}ms | total=${k}B`),p(),b.enqueue(a)},flush(){(0,e.s)(n,`upstream EOF | chunks=${j} | bytes=${k} | dur=${Date.now()-m}ms`),o()}});return function(a,b,c=null){let d=a.readable.getReader(),e=a.writable.getWriter(),f=!1,g=a=>{if(!f&&c){f=!0;try{let b=c();b&&a.enqueue(b)}catch{}}};return new ReadableStream({async pull(a){if(!b.isConnected()){g(a),a.close();return}try{let{done:c,value:e}=await d.read();if(c){b.handleComplete(),a.close();return}a.enqueue(e)}catch(l){let f=b.isConnected(),h=l?.message||"";h.includes("already closed")||h.includes("Invalid state")||b.handleError(l),d.cancel().catch(()=>{}),e.abort().catch(()=>{});let i=l?.message||"",j=l?.code||l?.cause?.code||"",k="AbortError"===l.name||i.includes("aborted")||i.includes("socket hang up")||i.includes("ECONNRESET")||i.includes("ETIMEDOUT")||i.includes("EPIPE")||"ECONNRESET"===j||"ETIMEDOUT"===j||"EPIPE"===j||"UND_ERR_SOCKET"===j;try{!f||k||c?(g(a),a.close()):a.error(l)}catch(a){}}},cancel(a){b.handleDisconnect(a||"cancelled"),d.cancel(),e.abort()}})}({readable:a.body.pipeThrough(r).pipeThrough(b),writable:{getWriter:()=>({abort:()=>Promise.resolve()})}},q,f)}},80117:(a,b,c)=>{c.d(b,{C:()=>h});var d=c(69152),e=c(99067);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})}};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);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)}return c}(a,b);return j.length?(await Promise.all(j.map(async a=>{let b=a.get();if((0,e.W$)(b))return 0;let c=await (0,e.ni)(b,i);return 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]}),1):0}))).reduce((a,b)=>a+b,0):0}},81297:(a,b,c)=>{c.d(b,{X:()=>m});var d=c(69152);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(!1===b.vision)for(let b of(delete a.images,["experimental_attachments","attachments"]))Array.isArray(a[b])&&(a[b]=a[b].filter(a=>!(a?.contentType||a?.mediaType||"").startsWith("image/")&&!("string"==typeof a?.url&&a.url.startsWith("data:image/"))));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}},83571:(a,b,c)=>{c.d(b,{c:()=>i});var d=c(54729),e=c(2568),f=c(69152),g=c(92398),h=c(45479);function i(a,b,c="",e=!1){if(!c.includes("claude-cli")||!a.messages?.length)return null;let f=a.messages,h=a=>"string"==typeof a?a:Array.isArray(a)?a.filter(a=>"text"===a.type).map(a=>a.text).join(" "):"",j=!1,m=!1,n=f[f.length-1];if(n?.role==="assistant"&&n.content?.[0]?.text==="{"&&(j=!0),j||"Warmup"===h(f[0]?.content)&&(j=!0),j||1!==f.length||f[0]?.role!=="user"||"count"===h(f[0]?.content)&&(j=!0),!j&&g.C8?.length){let a=f.filter(a=>"user"===a.role).map(a=>h(a.content)).join(" ");g.C8.some(b=>a.includes(b))&&(j=!0)}if(!j&&e){let b=f.find(a=>"system"===a.role),c=h(b?.content),d=Array.isArray(a.system)?a.system.filter(a=>"text"===a.type).map(a=>a.text).join(" "):"string"==typeof a.system?a.system:"";(c||d).includes("isNewTopic")&&(j=!0,m=!0)}if(!j)return null;let o=(0,d.Tz)(a),p=!1!==a.stream;if(m){let a=f.find(a=>"user"===a.role),c=JSON.stringify({isNewTopic:!0,title:h(a?.content).trim().split(/\s+/).slice(0,3).join(" ")});return p?l(o,b,c):k(o,b,c)}return p?l(o,b):k(o,b)}function j(a,b="CLI Command Execution: Clear Terminal"){return{id:`chatcmpl-${Date.now()}`,object:"chat.completion",created:Math.floor(Date.now()/1e3),model:a,choices:[{index:0,message:{role:"assistant",content:b},finish_reason:"stop"}],usage:{prompt_tokens:1,completion_tokens:1,total_tokens:2}}}function k(a,b,c){let d=j(b,c);if(a===f.h.OPENAI)return{success:!0,response:new Response(JSON.stringify(d),{headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}})};let g=(0,e.Ws)(a);g.model=b;let h=m(d),i=[];for(let b of h){let c=(0,e.Y8)(f.h.OPENAI,a,b,g);c?.length>0&&i.push(...c)}let k=(0,e.Y8)(f.h.OPENAI,a,null,g);return k?.length>0&&i.push(...k),{success:!0,response:new Response(JSON.stringify(function(a,b){if(!a||0===a.length)return j("unknown");let c=a[a.length-1];if(b===f.h.CLAUDE&&a.find(a=>"message_stop"===a.type)){a.find(a=>"content_block_delta"===a.type);let b=a.find(a=>"message_delta"===a.type),d=a.find(a=>"message_start"===a.type);if(d?.message){c=d.message;let a=d.message.usage,e=b?.usage;(a||e)&&(c.usage={...a||{},...e||{},...a?.cache_read_input_tokens!==void 0?{cache_read_input_tokens:a.cache_read_input_tokens}:{},...a?.cache_creation_input_tokens!==void 0?{cache_creation_input_tokens:a.cache_creation_input_tokens}:{},...a?.input_tokens!==void 0?{input_tokens:a.input_tokens}:{}})}}return c}(i,a)),{headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}})}}function l(a,b,c){let d=j(b,c),g=(0,e.Ws)(a);g.model=b;let i=m(d),k=[];for(let b of i){let c=(0,e.Y8)(f.h.OPENAI,a,b,g);if(c?.length>0)for(let b of c)k.push((0,h.v8)(b,a))}let l=(0,e.Y8)(f.h.OPENAI,a,null,g);if(l?.length>0)for(let b of l)k.push((0,h.v8)(b,a));return k.push("data: [DONE]\n\n"),{success:!0,response:new Response(k.join(""),{headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive","Access-Control-Allow-Origin":"*"}})}}function m(a){let{id:b,created:c,model:d,choices:e}=a;return[{id:b,object:"chat.completion.chunk",created:c,model:d,choices:[{index:0,delta:{role:"assistant",content:e[0].message.content},finish_reason:null}]},{id:b,object:"chat.completion.chunk",created:c,model:d,choices:[{index:0,delta:{},finish_reason:"stop"}],usage:a.usage}]}},86954:(a,b,c)=>{c.d(b,{q:()=>m});let d="u">typeof process&&process.versions?.node&&!0,e="u">typeof process&&process.env?.ENABLE_REQUEST_LOGS==="true",f=null,g=null,h=null;async function i(){if(d&&e&&!f)try{f=await Promise.resolve().then(c.t.bind(c,29021,23)),h=(g=await Promise.resolve().then(c.t.bind(c,33873,23))).join("u">typeof process&&process.cwd?process.cwd():".","logs")}catch{}}async function j(a,b,c){if(!d||!e||(await i(),!f||!h))return null;try{f.existsSync(h)||f.mkdirSync(h,{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,"-"),i=`${a}_${b}_${e}_${d}`,j=g.join(h,i);return f.mkdirSync(j,{recursive:!0}),j}catch(a){return console.log("[LOG] Failed to create log session:",a.message),null}}function k(a,b,c){if(f&&a)try{let d=g.join(a,b);f.writeFileSync(d,JSON.stringify(c,null,2))}catch(a){console.log(`[LOG] Failed to write ${b}:`,a.message)}}function l(a){return a?{...a}:{}}async function m(a,b,c){if(!e)return{sessionPath:null,logClientRawRequest(){},logRawRequest(){},logOpenAIRequest(){},logTargetRequest(){},logProviderResponse(){},appendProviderChunk(){},appendOpenAIChunk(){},logConvertedResponse(){},appendConvertedChunk(){},logError(){}};let d=await j(a,b,c);return{get sessionPath(){return d},logClientRawRequest(a,b,c={}){k(d,"1_req_client.json",{timestamp:new Date().toISOString(),endpoint:a,headers:l(c),body:b})},logRawRequest(a,b={}){k(d,"2_req_source.json",{timestamp:new Date().toISOString(),headers:l(b),body:a})},logOpenAIRequest(a){k(d,"3_req_openai.json",{timestamp:new Date().toISOString(),body:a})},logTargetRequest(a,b,c){k(d,"4_req_target.json",{timestamp:new Date().toISOString(),url:a,headers:l(b),body:c})},logProviderResponse(a,b,c,e){k(d,"5_res_provider.json",{timestamp:new Date().toISOString(),status:a,statusText:b,headers:c?"function"==typeof c.entries?Object.fromEntries(c.entries()):c:{},body:e})},appendProviderChunk(a){if(f&&d)try{let b=g.join(d,"5_res_provider.txt");f.appendFileSync(b,a)}catch(a){}},appendOpenAIChunk(a){if(f&&d)try{let b=g.join(d,"6_res_openai.txt");f.appendFileSync(b,a)}catch(a){}},logConvertedResponse(a){k(d,"7_res_client.json",{timestamp:new Date().toISOString(),body:a})},appendConvertedChunk(a){if(f&&d)try{let b=g.join(d,"7_res_client.txt");f.appendFileSync(b,a)}catch(a){}},logError(a,b=null){k(d,"6_error.json",{timestamp:new Date().toISOString(),error:a?.message||String(a),stack:a?.stack,requestBody:b})}}}},92201:(a,b,c)=>{c.d(b,{y:()=>f});var d=c(2933);let e=new TextEncoder;function f(a){let b=a?.choices?.[0],c=b?.message;if(!c)return new Response(new ReadableStream({start(b){b.enqueue(e.encode(`data: ${JSON.stringify(a)}
|
|
69
|
+
`),h.replace(/\n+$/,"")}s.filterName="search-list";let t=/^Result of search in '[^']*' \(total (\d+) files?\):/,u=/^diff --git /m,v=/^@@ /m,w=/^On branch |^nothing to commit|^Changes (not |to be )|^Untracked files:/m,x=/^[*|/\\ ]*commit [0-9a-f]{7,40}$/m,y=/^[ MADRCU?!][ MADRCU?!] \S/m,z=/^(npm (warn|error|ERR!)|yarn (warn|error)|\s*Compiling\s+\S+|\s*Downloading\s+\S+|added \d+ package|\[ERROR\]|BUILD (SUCCESS|FAILED)|\s*Finished\s+|Successfully (installed|built)|ERROR:)/im,A=/[├└]──|│ /,B=/^[-dlbcps][rwx-]{9}/m,C=/^total \d+$/m;function D(a){let b=a.indexOf(":");if(-1===b)return!1;let c=a.indexOf(":",b+1);if(-1===c)return!1;let d=a.slice(b+1,c);return/^\d+$/.test(d)}function E(a){let b=a.trim();return 0!==b.length&&(!!/^[A-Za-z]:[\\/]/.test(b)||!b.includes(":")&&(b.startsWith(".")||b.startsWith("/")||b.includes("/")))}function F(a,b){if(void 0===b&&(b=!1),!b||!a)return null;if(a.conversationState){var c=a;let b={bytesBefore:0,bytesAfter:0,hits:[]};try{let a=c.conversationState,d=[...Array.isArray(a?.history)?a.history:[]];for(let c of(a?.currentMessage&&d.push(a.currentMessage),d)){let a=c?.userInputMessage?.userInputMessageContext?.toolResults;if(Array.isArray(a)){for(let c of a)if("error"!==c.status&&Array.isArray(c.content))for(let a of c.content)a&&"string"==typeof a.text&&(a.text=G(a.text,b,"kiro-tool-result"))}}}catch(a){return console.warn("[RTK] compressKiroFormat error:",a.message),null}return b}let d=Array.isArray(a.messages)?a.messages:Array.isArray(a.input)?a.input:null;if(!d)return null;let e={bytesBefore:0,bytesAfter:0,hits:[]};try{for(let a=0;a<d.length;a++){let b=d[a];if(b){if("function_call_output"===b.type){if("string"==typeof b.output)b.output=G(b.output,e,"openai-responses-string");else if(Array.isArray(b.output))for(let a=0;a<b.output.length;a++){let c=b.output[a];c&&"input_text"===c.type&&"string"==typeof c.text&&(c.text=G(c.text,e,"openai-responses-array"))}continue}if("tool"===b.role&&"string"==typeof b.content){b.content=G(b.content,e,"openai-tool");continue}if(Array.isArray(b.content)){if("tool"===b.role){for(let a=0;a<b.content.length;a++){let c=b.content[a];c&&"text"===c.type&&"string"==typeof c.text&&(c.text=G(c.text,e,"openai-tool-array"))}continue}for(let a=0;a<b.content.length;a++){let c=b.content[a];if(c&&"tool_result"===c.type&&!0!==c.is_error){if("string"==typeof c.content)c.content=G(c.content,e,"claude-string");else if(Array.isArray(c.content))for(let a=0;a<c.content.length;a++){let b=c.content[a];b&&"text"===b.type&&"string"==typeof b.text&&(b.text=G(b.text,e,"claude-array"))}}}}}}}catch(a){return console.warn("[RTK] compressMessages error:",a.message),null}return e}function G(a,b,c){let d=a.length;if(b.bytesBefore+=d,d<500||d>0xa00000)return b.bytesAfter+=d,a;let h=function(a){var b,c;let d,h,m=a.length>1024?a.slice(0,1024):a;if(x.test(m))return g;if(u.test(m)||v.test(m))return e;if(w.test(m))return f;if(z.test(m))return i;if(!((d=m.split("\n").filter(a=>a.trim())).length<3)&&d.filter(a=>y.test(a)).length/d.length>=.6)return f;let F=m.split("\n"),G=F.filter(a=>a.trim().length>0);return G.slice(0,5).some(D)?j:G.length>=3&&G.every(E)?k:A.test(m)?o:C.test(m)||(b=m,h=new RegExp((c=B).source,c.flags.includes("g")?c.flags:c.flags+"g"),(b.match(h)||[]).length>=3)?n:t.test(m)?s:F.length>=250&&function(a){let b=0,c=0;for(let d of a.slice(0,100))0!==d.length&&(c++,r.test(d)&&b++);return!(c<5)&&b/c>=.7}(F)?q:G.length>=5?l:a.split("\n").length>=250?p:null}(a);if(!h)return b.bytesAfter+=d,a;let m=function(a,b){if("function"!=typeof a)return b;try{let c=a(b);if("string"!=typeof c)return b;return c}catch(d){let c=a.filterName||a.name||"anonymous";return console.warn(`[rtk] warning: filter '${c}' panicked — passing through raw output: ${d?.message||d}`),b}}(h,a);return!m||0===m.length||m.length>=d?(b.bytesAfter+=d,a):(b.bytesAfter+=m.length,b.hits.push({shape:c,filter:h.filterName||h.name,saved:d-m.length}),m)}function H(a){if(!a||!a.hits||0===a.hits.length)return null;let b=a.bytesBefore-a.bytesAfter,c=a.bytesBefore>0?(b/a.bytesBefore*100).toFixed(1):"0",d=Array.from(new Set(a.hits.map(a=>a.filter))).join(",");return`[RTK] saved ${b}B / ${a.bytesBefore}B (${c}%) via [${d}] hits=${a.hits.length}`}},77380:(a,b,c)=>{c.d(b,{vH:()=>f});let d="functions.";function e(a){let b=a.indexOf(d);return -1===b?{prefix:a,tail:""}:{prefix:a.slice(0,b).trim(),tail:a.slice(b)}}function f(a){let b=a?.content,c="string"==typeof b?b:"";if(Array.isArray(a?.tool_calls)&&a.tool_calls.length>0)return{message:{...a},hasTools:!0,originalContent:c};let f=function(a){if(!("string"==typeof a&&0!==a.length&&a.includes(d)))return[];let{tail:b}=e(a);if(!b)return[];let c=[],f=b,g=0;for(;f.length>0&&c.length<64&&f.startsWith(d);){let a=(f=f.slice(d.length)).indexOf(d),b=function(a,b){let c;if("string"!=typeof a||0===a.length)return null;let d=a.indexOf("{");if(-1===d)return null;let e=a.slice(0,d).trim(),f=a.slice(d),g=e.match(/^([a-zA-Z0-9_\-/.]+)(?::([a-zA-Z0-9_\-]+))?$/);if(!g)return null;let h=g[1],i=g[2];try{c=function(a){let b=0,c=!1,d=!1,e=-1;for(let f=0;f<a.length;f++){let g=a[f];if(c){if(d){d=!1;continue}if("\\"===g){d=!0;continue}'"'===g&&(c=!1);continue}if('"'===g){c=!0;continue}if("{"===g){1==++b&&(e=-1);continue}if("}"===g){if(0==--b){e=f+1;break}continue}}if(-1===e)throw Error("unbalanced JSON object");return JSON.parse(a.slice(0,e))}(f)}catch{return null}return{id:i?`functions.${h}:${i}`:`functions.${h}:${b}`,type:"function",function:{name:h,arguments:JSON.stringify(c)}}}(-1===a?f:f.slice(0,a),g);if(!b||(c.push(b),g++,-1===a))break;f=f.slice(a)}return c}(c);if(0===f.length)return{message:{...a},hasTools:!1,originalContent:c};let{prefix:g}=e(c);return{message:{...a,content:g,tool_calls:f},hasTools:!0,originalContent:c}}},78963:(a,b,c)=>{c.d(b,{Jb:()=>g,jd:()=>f});var d=c(92398),e=c(25440);function f({onDisconnect:a,onError:b,log:c,provider:d,model:g}={}){let h=new AbortController,i=Date.now(),j=!1,k=a=>{let b=Date.now()-i,c=d?.toUpperCase()||"UNKNOWN";console.log(`[${new Date().toLocaleTimeString("en-US",{hour12:!1,hour:"2-digit",minute:"2-digit",second:"2-digit"})}] 🌊 [STREAM] ${c} | ${g||"unknown"} | ${b}ms | ${a}`)};return{signal:h.signal,startTime:i,isConnected:()=>!j,handleDisconnect:(b="client_closed")=>{j||(j=!0,(0,e.s)("CTRL",`${d}/${g} | disconnect=${b} | dur=${Date.now()-i}ms`),h.abort(),a?.({reason:b,duration:Date.now()-i}))},handleComplete:()=>{j||(j=!0,k("complete"))},handleError:a=>{if(!j){if(j=!0,"AbortError"===a.name)return void k("aborted");k(`error: ${a.message}`),b?.(a)}},abort:()=>h.abort()}}function g(a,b,c,f=null,h=d.xM){let i=null,j=0,k=0,l=Date.now(),m=Date.now(),n="STREAM",o=()=>{i&&(clearTimeout(i),i=null)},p=()=>{o(),i=setTimeout(()=>{i=null,(0,e.s)(n,`STALL TIMEOUT ${h}ms | chunks=${j} | bytes=${k} | sinceLast=${Date.now()-l}ms`),c.handleError?.(Error("stream stall timeout")),c.abort?.()},h)},q={signal:c.signal,startTime:c.startTime,isConnected:()=>c.isConnected(),handleComplete:()=>{(0,e.s)(n,`complete | chunks=${j} | bytes=${k} | dur=${Date.now()-m}ms`),o(),c.handleComplete()},handleError:a=>{(0,e.s)(n,`error: ${a?.message} | chunks=${j} | bytes=${k} | dur=${Date.now()-m}ms`),o(),c.handleError(a)},handleDisconnect:a=>{(0,e.s)(n,`disconnect: ${a} | chunks=${j} | bytes=${k} | dur=${Date.now()-m}ms`),o(),c.handleDisconnect(a)},abort:()=>{o(),c.abort()}};p(),(0,e.s)(n,`pipe start | stallTimeout=${h}ms`);let r=new TransformStream({transform(a,b){j++;let c=a?.byteLength||a?.length||0;k+=c;let d=Date.now(),f=d-l;l=d,e.T&&(j<=5||j%20==0||f>5e3)&&(0,e.s)(n,`chunk #${j} | size=${c}B | gap=${f}ms | total=${k}B`),p(),b.enqueue(a)},flush(){(0,e.s)(n,`upstream EOF | chunks=${j} | bytes=${k} | dur=${Date.now()-m}ms`),o()}});return function(a,b,c=null){let d=a.readable.getReader(),e=a.writable.getWriter(),f=!1,g=a=>{if(!f&&c){f=!0;try{let b=c();b&&a.enqueue(b)}catch{}}},h=new TextEncoder().encode(": keep-alive\n\n"),i=Date.now(),j=null;return new ReadableStream({start(a){j=setInterval(()=>{if(!b.isConnected())return void clearInterval(j);if(Date.now()-i>=15e3)try{a.enqueue(h),i=Date.now()}catch{clearInterval(j)}},15e3)},async pull(a){if(!b.isConnected()){j&&clearInterval(j),g(a),a.close();return}try{let{done:c,value:e}=await d.read();if(c){j&&clearInterval(j),b.handleComplete(),a.close();return}i=Date.now(),a.enqueue(e)}catch(m){j&&clearInterval(j);let f=b.isConnected(),h=m?.message||"";h.includes("already closed")||h.includes("Invalid state")||b.handleError(m),d.cancel().catch(()=>{}),e.abort().catch(()=>{});let i=m?.message||"",k=m?.code||m?.cause?.code||"",l="AbortError"===m.name||i.includes("aborted")||i.includes("socket hang up")||i.includes("ECONNRESET")||i.includes("ETIMEDOUT")||i.includes("EPIPE")||"ECONNRESET"===k||"ETIMEDOUT"===k||"EPIPE"===k||"UND_ERR_SOCKET"===k;try{!f||l||c?(g(a),a.close()):a.error(m)}catch(a){}}},cancel(a){j&&clearInterval(j),b.handleDisconnect(a||"cancelled"),d.cancel(),e.abort()}})}({readable:a.body.pipeThrough(r).pipeThrough(b),writable:{getWriter:()=>({abort:()=>Promise.resolve()})}},q,f)}},80117:(a,b,c)=>{c.d(b,{C:()=>h});var d=c(69152),e=c(99067);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})}};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);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)}return c}(a,b);return j.length?(await Promise.all(j.map(async a=>{let b=a.get();if((0,e.W$)(b))return 0;let c=await (0,e.ni)(b,i);return 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]}),1):0}))).reduce((a,b)=>a+b,0):0}},81297:(a,b,c)=>{c.d(b,{X:()=>m});var d=c(69152);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(!1===b.vision)for(let b of(delete a.images,["experimental_attachments","attachments"]))Array.isArray(a[b])&&(a[b]=a[b].filter(a=>!(a?.contentType||a?.mediaType||"").startsWith("image/")&&!("string"==typeof a?.url&&a.url.startsWith("data:image/"))));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}},83571:(a,b,c)=>{c.d(b,{c:()=>i});var d=c(54729),e=c(2568),f=c(69152),g=c(92398),h=c(45479);function i(a,b,c="",e=!1){if(!c.includes("claude-cli")||!a.messages?.length)return null;let f=a.messages,h=a=>"string"==typeof a?a:Array.isArray(a)?a.filter(a=>"text"===a.type).map(a=>a.text).join(" "):"",j=!1,m=!1,n=f[f.length-1];if(n?.role==="assistant"&&n.content?.[0]?.text==="{"&&(j=!0),j||"Warmup"===h(f[0]?.content)&&(j=!0),j||1!==f.length||f[0]?.role!=="user"||"count"===h(f[0]?.content)&&(j=!0),!j&&g.C8?.length){let a=f.filter(a=>"user"===a.role).map(a=>h(a.content)).join(" ");g.C8.some(b=>a.includes(b))&&(j=!0)}if(!j&&e){let b=f.find(a=>"system"===a.role),c=h(b?.content),d=Array.isArray(a.system)?a.system.filter(a=>"text"===a.type).map(a=>a.text).join(" "):"string"==typeof a.system?a.system:"";(c||d).includes("isNewTopic")&&(j=!0,m=!0)}if(!j)return null;let o=(0,d.Tz)(a),p=!1!==a.stream;if(m){let a=f.find(a=>"user"===a.role),c=JSON.stringify({isNewTopic:!0,title:h(a?.content).trim().split(/\s+/).slice(0,3).join(" ")});return p?l(o,b,c):k(o,b,c)}return p?l(o,b):k(o,b)}function j(a,b="CLI Command Execution: Clear Terminal"){return{id:`chatcmpl-${Date.now()}`,object:"chat.completion",created:Math.floor(Date.now()/1e3),model:a,choices:[{index:0,message:{role:"assistant",content:b},finish_reason:"stop"}],usage:{prompt_tokens:1,completion_tokens:1,total_tokens:2}}}function k(a,b,c){let d=j(b,c);if(a===f.h.OPENAI)return{success:!0,response:new Response(JSON.stringify(d),{headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}})};let g=(0,e.Ws)(a);g.model=b;let h=m(d),i=[];for(let b of h){let c=(0,e.Y8)(f.h.OPENAI,a,b,g);c?.length>0&&i.push(...c)}let k=(0,e.Y8)(f.h.OPENAI,a,null,g);return k?.length>0&&i.push(...k),{success:!0,response:new Response(JSON.stringify(function(a,b){if(!a||0===a.length)return j("unknown");let c=a[a.length-1];if(b===f.h.CLAUDE&&a.find(a=>"message_stop"===a.type)){a.find(a=>"content_block_delta"===a.type);let b=a.find(a=>"message_delta"===a.type),d=a.find(a=>"message_start"===a.type);if(d?.message){c=d.message;let a=d.message.usage,e=b?.usage;(a||e)&&(c.usage={...a||{},...e||{},...a?.cache_read_input_tokens!==void 0?{cache_read_input_tokens:a.cache_read_input_tokens}:{},...a?.cache_creation_input_tokens!==void 0?{cache_creation_input_tokens:a.cache_creation_input_tokens}:{},...a?.input_tokens!==void 0?{input_tokens:a.input_tokens}:{}})}}return c}(i,a)),{headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}})}}function l(a,b,c){let d=j(b,c),g=(0,e.Ws)(a);g.model=b;let i=m(d),k=[];for(let b of i){let c=(0,e.Y8)(f.h.OPENAI,a,b,g);if(c?.length>0)for(let b of c)k.push((0,h.v8)(b,a))}let l=(0,e.Y8)(f.h.OPENAI,a,null,g);if(l?.length>0)for(let b of l)k.push((0,h.v8)(b,a));return k.push("data: [DONE]\n\n"),{success:!0,response:new Response(k.join(""),{headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive","Access-Control-Allow-Origin":"*"}})}}function m(a){let{id:b,created:c,model:d,choices:e}=a;return[{id:b,object:"chat.completion.chunk",created:c,model:d,choices:[{index:0,delta:{role:"assistant",content:e[0].message.content},finish_reason:null}]},{id:b,object:"chat.completion.chunk",created:c,model:d,choices:[{index:0,delta:{},finish_reason:"stop"}],usage:a.usage}]}},86954:(a,b,c)=>{c.d(b,{q7:()=>m});let d="u">typeof process&&process.versions?.node&&!0,e="u">typeof process&&process.env?.ENABLE_REQUEST_LOGS==="true",f=null,g=null,h=null;async function i(){if(d&&e&&!f)try{f=await Promise.resolve().then(c.t.bind(c,29021,23)),h=(g=await Promise.resolve().then(c.t.bind(c,33873,23))).join("u">typeof process&&process.cwd?process.cwd():".","logs")}catch{}}async function j(a,b,c){if(!d||!e||(await i(),!f||!h))return null;try{f.existsSync(h)||f.mkdirSync(h,{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,"-"),i=`${a}_${b}_${e}_${d}`,j=g.join(h,i);return f.mkdirSync(j,{recursive:!0}),j}catch(a){return console.log("[LOG] Failed to create log session:",a.message),null}}function k(a,b,c){if(f&&a)try{let d=g.join(a,b);f.writeFileSync(d,JSON.stringify(c,null,2))}catch(a){console.log(`[LOG] Failed to write ${b}:`,a.message)}}function l(a){if(!a)return{};let b="function"==typeof a.entries?a.entries():Object.entries(a),c={};for(let[a,d]of b)c[a]=/authorization|api[-_]?key|cookie|token|secret/i.test(a)?"[REDACTED]":d;return c}async function m(a,b,c){if(!e)return{sessionPath:null,logClientRawRequest(){},logRawRequest(){},logOpenAIRequest(){},logTargetRequest(){},logProviderResponse(){},appendProviderChunk(){},appendOpenAIChunk(){},logConvertedResponse(){},appendConvertedChunk(){},logError(){}};let d=await j(a,b,c);return{get sessionPath(){return d},logClientRawRequest(a,b,c={}){k(d,"1_req_client.json",{timestamp:new Date().toISOString(),endpoint:a,headers:l(c),body:b})},logRawRequest(a,b={}){k(d,"2_req_source.json",{timestamp:new Date().toISOString(),headers:l(b),body:a})},logOpenAIRequest(a){k(d,"3_req_openai.json",{timestamp:new Date().toISOString(),body:a})},logTargetRequest(a,b,c){k(d,"4_req_target.json",{timestamp:new Date().toISOString(),url:a,headers:l(b),body:c})},logProviderResponse(a,b,c,e){k(d,"5_res_provider.json",{timestamp:new Date().toISOString(),status:a,statusText:b,headers:l(c),body:e})},appendProviderChunk(a){if(f&&d)try{let b=g.join(d,"5_res_provider.txt");f.appendFileSync(b,a)}catch(a){}},appendOpenAIChunk(a){if(f&&d)try{let b=g.join(d,"6_res_openai.txt");f.appendFileSync(b,a)}catch(a){}},logConvertedResponse(a){k(d,"7_res_client.json",{timestamp:new Date().toISOString(),body:a})},appendConvertedChunk(a){if(f&&d)try{let b=g.join(d,"7_res_client.txt");f.appendFileSync(b,a)}catch(a){}},logError(a,b=null){k(d,"6_error.json",{timestamp:new Date().toISOString(),error:a?.message||String(a),stack:a?.stack,requestBody:b})}}}},92201:(a,b,c)=>{c.d(b,{y:()=>f});var d=c(2933);let e=new TextEncoder;function f(a){let b=a?.choices?.[0],c=b?.message;if(!c)return new Response(new ReadableStream({start(b){b.enqueue(e.encode(`data: ${JSON.stringify(a)}
|
|
76
70
|
|
|
77
71
|
data: [DONE]
|
|
78
72
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
exports.id=2764,exports.ids=[1253,2764,5577],exports.modules={13674:()=>{},13946:(a,b,c)=>{"use strict";c.d(b,{Ak:()=>e,Yg:()=>h,sr:()=>d.sr,uT:()=>i,xq:()=>d.xq});var d=c(17863);function e(a){return(a?.providerSpecificData?.baseUrl?.trim()||"http://localhost:11434").replace(/\/$/,"")}let f=d.xq["xiaomi-tokenplan"]?.regions||{},g=d.xq["xiaomi-tokenplan"]?.defaultRegion;function h(a){return f[a?.providerSpecificData?.region]||f[g]}function i(a){return d.vq[a]||[]}},39006:a=>{"use strict";a.exports={rE:"0.91.
|
|
1
|
+
exports.id=2764,exports.ids=[1253,2764,5577],exports.modules={13674:()=>{},13946:(a,b,c)=>{"use strict";c.d(b,{Ak:()=>e,Yg:()=>h,sr:()=>d.sr,uT:()=>i,xq:()=>d.xq});var d=c(17863);function e(a){return(a?.providerSpecificData?.baseUrl?.trim()||"http://localhost:11434").replace(/\/$/,"")}let f=d.xq["xiaomi-tokenplan"]?.regions||{},g=d.xq["xiaomi-tokenplan"]?.defaultRegion;function h(a){return f[a?.providerSpecificData?.region]||f[g]}function i(a){return d.vq[a]||[]}},39006:a=>{"use strict";a.exports={rE:"0.91.22"}},41073:(a,b,c)=>{"use strict";c.d(b,{g:()=>m,l:()=>l});var d=c(79646),e=c(33873),f=c.n(e),g=c(29021),h=c.n(g),i=c(21820),j=c.n(i),k=c(79603);async function l(){!function(){try{let a=f().join("win32"===process.platform?f().join(process.env.APPDATA||"","9router"):f().join(j().homedir(),".9router"),"mitm",".mitm.pid");if(!h().existsSync(a))return;let b=parseInt(h().readFileSync(a,"utf8").trim(),10);if(!b)return;if("win32"===process.platform)try{(0,d.execSync)(`taskkill /F /T /PID ${b}`,{stdio:"ignore",windowsHide:!0,timeout:3e3})}catch{try{(0,d.execSync)(`powershell -NonInteractive -WindowStyle Hidden -Command "Stop-Process -Id ${b} -Force"`,{stdio:"ignore",windowsHide:!0,timeout:3e3})}catch{}}else try{(0,d.execSync)(`sudo -n kill -9 ${b} 2>/dev/null`,{stdio:"ignore",timeout:3e3})}catch{try{process.kill(b,"SIGKILL")}catch{}}try{h().unlinkSync(a)}catch{}}catch{}}();let a=function(){let a=[];if("win32"===process.platform){try{(0,d.execSync)('powershell -NonInteractive -WindowStyle Hidden -Command "Get-WmiObject Win32_Process -Filter \'Name=\\"node.exe\\"\' | Select-Object ProcessId,CommandLine | ConvertTo-Csv -NoTypeInformation"',{encoding:"utf8",windowsHide:!0,timeout:5e3}).split("\n").slice(1).filter(a=>a.trim()).forEach(b=>{let c=b.toLowerCase();if(c.includes("9router")||c.includes("next-server")||c.includes("\\bin\\app\\")||c.includes("/bin/app/")||c.includes("cli.js")){let c=b.match(/^"(\d+)"/);c&&c[1]&&c[1]!==process.pid.toString()&&a.push(c[1])}})}catch{}for(let b of["cloudflared","tray_windows_release"])try{let c=`powershell -NonInteractive -WindowStyle Hidden -Command "Get-Process ${b} -ErrorAction SilentlyContinue | Select-Object -ExpandProperty Id"`;(0,d.execSync)(c,{encoding:"utf8",windowsHide:!0,timeout:5e3}).split("\n").forEach(b=>{let c=b.trim();c&&!isNaN(c)&&a.push(c)})}catch{}}else try{(0,d.execSync)("ps aux 2>/dev/null",{encoding:"utf8",timeout:5e3}).split("\n").forEach(b=>{if(b.includes("9router")||b.includes("next-server")||b.includes("cloudflared")||b.includes("/bin/app/")||b.includes("tray_darwin")||b.includes("tray_linux")){let c=b.trim().split(/\s+/)[1];c&&!isNaN(c)&&c!==process.pid.toString()&&a.push(c)}})}catch{}return a}(),b=process.platform;a.forEach(a=>{try{"win32"===b?(0,d.execSync)(`taskkill /F /PID ${a} 2>nul`,{stdio:"ignore",shell:!0,windowsHide:!0,timeout:3e3}):(0,d.execSync)(`kill -9 ${a} 2>/dev/null`,{stdio:"ignore",timeout:3e3})}catch{}}),a.length>0&&await new Promise(a=>setTimeout(a,1500))}function m(a=k.h0.npmPackageName){let b=function(a){try{if(!a||!h().existsSync(a))return a;let b=f().join(process.env.DATA_DIR?process.env.DATA_DIR:"win32"===process.platform?f().join(process.env.APPDATA||f().join(j().homedir(),"AppData","Roaming"),"9router"):f().join(j().homedir(),".9router"),"runtime","updater"),c=f().join(b,"updater.js");if(h().existsSync(c))try{if(h().statSync(a).size===h().statSync(c).size)return c}catch{}return h().mkdirSync(b,{recursive:!0}),h().copyFileSync(a,c),c}catch{return a}}(function(){if(process.env.UPDATER_SCRIPT_PATH&&h().existsSync(process.env.UPDATER_SCRIPT_PATH))return process.env.UPDATER_SCRIPT_PATH;let a=f().join(process.cwd(),"src","lib","updater","updater.js");if(h().existsSync(a))return a;let b=f().join(process.cwd(),"..","src","lib","updater","updater.js");return h().existsSync(b)?b:a}()),c="1"===process.env.TRAY_MODE,e={cmd:"win32"===process.platform?"npx.cmd":"npx",args:[k.h0.npmPackageName]},g=c?[...e.args,"--tray","--skip-update"]:[...e.args,"--skip-update"];(0,d.spawn)(process.execPath,[b],{detached:!0,stdio:"ignore",windowsHide:!0,env:{...process.env,UPDATER_PKG_NAME:a,UPDATER_PORT:String(k.h0.statusPort),UPDATER_TAIL_LINES:String(k.h0.statusLogTailLines),UPDATER_RETRIES:String(k.h0.installRetries),UPDATER_RETRY_DELAY_MS:String(k.h0.installRetryDelayMs),UPDATER_LINGER_MS:String(k.h0.lingerAfterDoneMs),UPDATER_WAIT_MIN_MS:String(k.h0.waitForExitMinMs),UPDATER_WAIT_MAX_MS:String(k.h0.waitForExitMaxMs),UPDATER_WAIT_CHECK_MS:String(k.h0.waitForExitCheckMs),UPDATER_APP_PORT:String(k.h0.appPort),UPDATER_RELAUNCH:"1",UPDATER_RELAUNCH_CMD:e.cmd,UPDATER_RELAUNCH_ARGS:JSON.stringify(g)}}).unref(),setTimeout(()=>process.exit(0),k.h0.exitDelayMs)}},67259:(a,b,c)=>{"use strict";c.d(b,{CP:()=>f,Xg:()=>d.Xg,eh:()=>e,vq:()=>d.PROVIDER_MODELS});var d=c(85577);Object.entries(c(91253).AI_PROVIDERS).filter(([,a])=>a.passthroughModels).map(([a])=>a);let e=Object.entries(d.PROVIDER_MODELS).flatMap(([a,b])=>b.map(b=>({provider:a,model:b.id,name:b.name}))),f=(a,b=null)=>a?.kind||a?.type||b},79603:(a,b,c)=>{"use strict";c.d(b,{UY:()=>h,eh:()=>f.eh,fg:()=>e.fg,h0:()=>g,oc:()=>i});var d=c(39006),e=c(91253),f=c(67259);d.rE;let g={npmPackageName:"vansrouter",installCmd:"npm i -g vansrouter",installCmdLatest:"npm i -g vansrouter@latest --prefer-online",shutdownCountdownSec:3,exitDelayMs:500,statusPort:20129,statusPollIntervalMs:1e3,statusLogTailLines:8,installRetries:3,installRetryDelayMs:5e3,lingerAfterDoneMs:3e4,waitForExitMinMs:5e3,waitForExitMaxMs:2e4,waitForExitCheckMs:500,appPort:20128},h={maxLines:200,pollIntervalMs:1e3},i={tickIntervalMs:6e4,pingLeadMs:5e3,refreshAheadMs:3e5,failureCooldownMs:9e5,providers:{claude:{settingsKey:"claudeAutoPing",quotaKey:"session (5h)",pingModel:"claude-haiku-4-5-20251001",pingText:"hi",pingMaxTokens:1},codex:{settingsKey:"codexAutoPing",quotaKey:"session",pingWhenResetAtSlides:!0,resetAtDriftMs:3e4,minPingIntervalMs:6e5,skipWhenBlockingQuotaExhausted:!0,pingModel:"gpt-5.5",pingText:"hi",pingInstructions:"Reply with OK.",pingReasoningEffort:"none"}}}},85577:(a,b,c)=>{"use strict";c.d(b,{Xg:()=>s,PROVIDER_MODELS:()=>f.vq,fZ:()=>j,cY:()=>t,ez:()=>n,ux:()=>m,OA:()=>o,kt:()=>p,SM:()=>i,Tq:()=>q});var d=c(13946),e=c(97425),f=c(17863),g=c(57959);let h="-review";function i(a){return f.vq[a]||[]}function j(a){let b=f.vq[a];return b?.[0]?.id||null}let k=new Set(["kr","kiro"]);function l(a,b,c){if(!a)return;let d=a.find(a=>a.id===b);if(d)return d;if(!k.has(c))return;let e=(0,g.Kq)(b);if(e!==b)return a.find(a=>a.id===e)}function m(a,b){let c=f.vq[a];return c?(0,g.gr)(l(c,b,a)):null}function n(a,b){let c=f.vq[a];return c?(0,g.ec)(l(c,b,a)):null}function o(a,b){let c=f.vq[a];if(!c)return null;let d=l(c,b,a);return d?.kind||d?.type||null}function p(a,b){let c=l(f.vq[a],b,a);return c?.upstreamModelId?c.upstreamModelId:c?.id?c.id:"cx"===a&&"string"==typeof b&&b.endsWith(h)?b.slice(0,-h.length):b}function q(a){return(p("ag",a)||a).replace(/-tiered\([^)]*\)$/,"-tiered")}let r=Object.fromEntries(e.default.filter(a=>a.alias&&a.alias!==a.id).map(a=>[a.id,a.alias])),s=Object.fromEntries(Object.keys(d.xq).map(a=>[a,r[a]||a]));function t(a,b){return(0,g.g5)(l(f.vq[a],b,a))}},91253:(a,b,c)=>{"use strict";c.d(b,{AI_PROVIDERS:()=>s,js:()=>w,DI:()=>n,fg:()=>k,Pd:()=>o,IS:()=>h,nJ:()=>i,zN:()=>j,JH:()=>m,jO:()=>y,wb:()=>x,br:()=>l,wG:()=>v,zt:()=>t,gb:()=>q,gC:()=>r,mq:()=>p,rs:()=>u});var d=c(97425);let e=a=>"RISK_NOTICE"===a.deprecationNotice?{...a,deprecationNotice:"⚠️ Risk Notice: This provider uses a subscription/OAuth session not officially licensed for proxy/router use. Account may be restricted or banned. Use at your own risk."}:a;Object.fromEntries(d.default.filter(a=>a.display).map(a=>[a.id,e(a.display)]));let f=["serviceKinds","ttsConfig","sttConfig","embeddingConfig","imageConfig","imageToTextConfig","videoConfig","musicConfig","searchViaChat","searchConfig","fetchConfig","modelsFetcher","mediaPriority","hiddenKinds","credentialFallback"],g=a=>Object.fromEntries(d.default.filter(b=>b.category===a).map(a=>[a.id,function(a){let b={};for(let c of(a.media&&Object.assign(b,a.media),f))void 0!==a[c]&&(b[c]=a[c]);return{...e(a.display||{}),id:a.id,alias:a.uiAlias||a.alias,...a.aliases?{aliases:a.aliases}:{},...a.hidden?{hidden:!0}:{},...b,...void 0!==a.priority?{priority:a.priority}:{},...a.hasFree?{hasFree:!0}:{},...a.thinkingConfig?{thinkingConfig:a.thinkingConfig}:{},...a.regions?{regions:a.regions,defaultRegion:a.defaultRegion}:{},...a.hasProviderSpecificData?{hasProviderSpecificData:!0}:{},...a.noAuth?{noAuth:!0}:{},...a.passthroughModels?{passthroughModels:!0}:{},...a.hasOAuth?{hasOAuth:!0}:{},...a.authModes?{authModes:a.authModes}:{},...a.authType?{authType:a.authType}:{},...a.authHint?{authHint:a.authHint}:{}}}(a)])),h=g("free"),i=g("freeTier"),j=g("oauth"),k=g("apikey"),l=g("webCookie"),m="openai-compatible-",n="anthropic-compatible-",o="custom-embedding-";function p(a){return"string"==typeof a&&a.startsWith(m)}function q(a){return"string"==typeof a&&a.startsWith(n)}function r(a){return"string"==typeof a&&a.startsWith(o)}let s={...h,...i,...j,...k,...l};function t(a){for(let b of Object.values(s))if(b.alias===a||b.id===a||b.aliases?.includes(a))return b;return null}function u(a){let b=t(a);return b?.id||a}function v(a){let b=s[a];return b?.alias||a}let w=Object.values(s).reduce((a,b)=>{for(let c of(a[b.alias]=b.id,b.aliases||[]))a[c]=b.id;return a},{});Object.values(s).reduce((a,b)=>(a[b.id]=b.alias,a),{});let x=d.default.filter(a=>a.features?.usage).map(a=>a.id),y=d.default.filter(a=>a.features?.usageApikey).map(a=>a.id)},95522:()=>{}};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
"use strict";exports.id=2927,exports.ids=[2927],exports.modules={12927:(a,b,c)=>{c.d(b,{runMigrationOnce:()=>x});var d=c(73024),e=c.n(d),f=c(76760),g=c.n(f),h=c(55250),i=c(26985);let j=[{version:1,name:"initial",up(a){for(let[b,c]of Object.entries(i.CG))for(let d of(a.exec((0,i.zE)(b,c)),c.indexes||[]))a.exec(d)}},{version:2,name:"fix-empty-allowed-lists",up(a){let b=a.all("PRAGMA table_info(apiKeys)"),c=Array.isArray(b)?b.map(a=>a.name):[];c.includes("allowedProviders")&&a.exec("UPDATE apiKeys SET allowedProviders = NULL WHERE allowedProviders = '[]'"),c.includes("allowedCombos")&&a.exec("UPDATE apiKeys SET allowedCombos = NULL WHERE allowedCombos = '[]'"),c.includes("allowedKinds")&&a.exec("UPDATE apiKeys SET allowedKinds = NULL WHERE allowedKinds = '[]'")}},{version:3,name:"add-allowed-lists-columns",up(a){let b=a.all("PRAGMA table_info(apiKeys)"),c=Array.isArray(b)?b.map(a=>a.name):[];c.includes("allowedProviders")||a.exec("ALTER TABLE apiKeys ADD COLUMN allowedProviders TEXT"),c.includes("allowedCombos")||a.exec("ALTER TABLE apiKeys ADD COLUMN allowedCombos TEXT"),c.includes("allowedKinds")||a.exec("ALTER TABLE apiKeys ADD COLUMN allowedKinds TEXT")}},{version:4,name:"add-request-details-apikey",up(a){let b=new Set(a.all("PRAGMA table_info(requestDetails)").map(a=>a.name));b.has("apiKey")||a.exec("ALTER TABLE requestDetails ADD COLUMN apiKey TEXT"),b.has("apiKeyName")||a.exec("ALTER TABLE requestDetails ADD COLUMN apiKeyName TEXT")}},{version:7,name:"add-combo-context-length",up(a){a.all("PRAGMA table_info(combos)").some(a=>"context_length"===a.name)||a.exec("ALTER TABLE combos ADD COLUMN context_length INTEGER")}},{version:8,name:"add-proxy-pool-fitness",up(a){let b=i.CG.proxyPoolFitness;for(let c of(a.exec((0,i.zE)("proxyPoolFitness",b)),b.indexes||[]))a.exec(c)}}].sort((a,b)=>a.version-b.version);function k(a,b,c=null){let d=a.get("SELECT value FROM _meta WHERE key = ?",[b]);return d?d.value:c}function l(a,b,c){a.run("INSERT INTO _meta(key, value) VALUES(?, ?) ON CONFLICT(key) DO UPDATE SET value = excluded.value",[b,String(c)])}let m=null;function n(){if(m)return m;try{let a=g().join(process.cwd(),"package.json");m=JSON.parse(e().readFileSync(a,"utf-8")).version||"0.0.0"}catch{m="0.0.0"}return m}let o=["requestDetails"];function p(a){(0,h.Jh)();let b=n(),c=`${a}-${b}-${function(a=new Date){let b=a=>String(a).padStart(2,"0");return`${a.getFullYear()}${b(a.getMonth()+1)}${b(a.getDate())}-${b(a.getHours())}${b(a.getMinutes())}${b(a.getSeconds())}`}()}`,d=g().join(h.KQ,c);return e().mkdirSync(d,{recursive:!0}),d}function q(){if(e().existsSync(h.KQ))for(let a of e().readdirSync(h.KQ,{withFileTypes:!0}).filter(a=>a.isDirectory()).map(a=>({name:a.name,full:g().join(h.KQ,a.name),mtime:e().statSync(g().join(h.KQ,a.name)).mtimeMs})).sort((a,b)=>b.mtime-a.mtime).slice(3))try{e().rmSync(a.full,{recursive:!0,force:!0})}catch{}}var r=c(54076);let s=g().join(h.HG,".migrated-from-json"),t=new WeakSet;class u extends Error{constructor(a,b){super(a),this.name="MigrationAborted",this.droppedRows=b}}function v(a,b,c,d,e){let f=[];for(let a of c)try{d(a)}catch(b){f.push({...e(a),reason:b.message})}let g=a.get(`SELECT COUNT(*) as c FROM ${b}`)?.c??0;if(g!==c.length)throw console.warn(`[DB][migrate] ${b} row-count mismatch: expected ${c.length}, got ${g}. Dropped:`,f),new u(`${b} row-count mismatch: expected ${c.length}, got ${g}`,f)}function w(a){if(!e().existsSync(a))return null;try{return JSON.parse(e().readFileSync(a,"utf-8"))}catch{return null}}async function x(a){if(t.has(a))return;let b=function(a){try{let b=a.get("SELECT COUNT(*) as c FROM _meta");return!b||0===b.c}catch{return!0}}(a);q(),a.exec((0,i.zE)("_meta",i.CG._meta));let c=parseInt(k(a,"backupSchemaVersion","0"),10)||0;if(!b&&c<i.f$)try{let b=p(`schema-${c}-to-${i.f$}`);!function(a,b,c="data.sqlite"){let d=g().join(b,c);try{e().rmSync(d,{force:!0})}catch{}let f=d.replace(/'/g,"''");a.exec(`ATTACH DATABASE '${f}' AS bak`);try{let b=new Set(o),c=a.all("SELECT name, sql FROM main.sqlite_master WHERE type='table' AND name NOT LIKE 'sqlite_%'").filter(a=>!b.has(a.name));a.transaction(()=>{for(let b of c){let c=b.sql.replace(/CREATE TABLE\s+/i,"CREATE TABLE bak.");a.exec(c),a.exec(`INSERT INTO bak.${b.name} SELECT * FROM main.${b.name}`)}})}finally{try{a.exec("DETACH DATABASE bak")}catch{}}}(a,b),q(),console.log(`[DB][migrate] pre-schema backup ${c} → ${i.f$}: ${b}`)}catch(a){console.warn(`[DB][migrate] pre-schema backup failed (continuing): ${a.message}`)}!function(a){a.exec((0,i.zE)("_meta",i.CG._meta));let b=parseInt(k(a,"schemaVersion","0"),10)||0;if(b>=(j.length?j[j.length-1].version:0))return;let c=j.filter(a=>a.version>b);for(let b of c)a.transaction(()=>{b.up(a),l(a,"schemaVersion",b.version)}),b.version,console.log(`[DB][migrate] applied #${b.version} ${b.name}`);c.length}(a);for(let[b,c]of Object.entries(i.CG)){a.exec((0,i.zE)(b,c));let d=new Set(a.all(`PRAGMA table_info(${b})`).map(a=>a.name));for(let[e,f]of Object.entries(c.columns))if(!d.has(e)){let c=f.replace(/PRIMARY KEY( AUTOINCREMENT)?/i,"").replace(/UNIQUE/i,"").trim();try{a.exec(`ALTER TABLE ${b} ADD COLUMN ${e} ${c}`),console.log(`[DB][sync] +column ${b}.${e}`)}catch(a){console.warn(`[DB][sync] add column ${b}.${e} failed: ${a.message}`)}}for(let b of c.indexes||[])try{a.exec(b)}catch{}}l(a,"backupSchemaVersion",i.f$);let d=e().existsSync(s),f=w(h.Or.main),m=w(h.Or.usage),x=w(h.Or.disabled),y=w(h.Or.details);if(b&&(f||m||x||y)&&!d){let b=Date.now(),c=p("migrate-from-json");for(let a of Object.values(h.Or))!function(a,b,c=null){if(!e().existsSync(a))return;let d=c||g().basename(a),f=g().join(b,d);e().copyFileSync(a,f)}(a,c);try{a.transaction(()=>{if(f&&"object"==typeof f){for(let[b,c]of(f.settings&&a.run("INSERT INTO settings(id, data) VALUES(1, ?) ON CONFLICT(id) DO UPDATE SET data = excluded.data",[(0,r.s)(f.settings)]),v(a,"providerConnections",f.providerConnections||[],b=>{let{id:c,provider:d,authType:e,name:f,email:g,priority:h,isActive:i,createdAt:j,updatedAt:k,...l}=b;a.run("INSERT OR REPLACE INTO providerConnections(id, provider, authType, name, email, priority, isActive, data, createdAt, updatedAt) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?)",[c,d,e||"oauth",f||null,g||null,h||null,+(!1!==i),(0,r.s)(l),j||new Date().toISOString(),k||new Date().toISOString()])},a=>({id:a.id??null,provider:a.provider??null,name:a.name??null})),v(a,"providerNodes",f.providerNodes||[],b=>{let{id:c,type:d,name:e,createdAt:f,updatedAt:g,...h}=b;a.run("INSERT OR REPLACE INTO providerNodes(id, type, name, data, createdAt, updatedAt) VALUES(?, ?, ?, ?, ?, ?)",[c,d||null,e||null,(0,r.s)(h),f||new Date().toISOString(),g||new Date().toISOString()])},a=>({id:a.id??null,type:a.type??null,name:a.name??null})),v(a,"proxyPools",f.proxyPools||[],b=>{let{id:c,isActive:d,testStatus:e,createdAt:f,updatedAt:g,...h}=b;a.run("INSERT OR REPLACE INTO proxyPools(id, isActive, testStatus, data, createdAt, updatedAt) VALUES(?, ?, ?, ?, ?, ?)",[c,+(!1!==d),e||"unknown",(0,r.s)(h),f||new Date().toISOString(),g||new Date().toISOString()])},a=>({id:a.id??null})),v(a,"apiKeys",f.apiKeys||[],b=>{a.run("INSERT OR REPLACE INTO apiKeys(id, key, name, machineId, isActive, createdAt) VALUES(?, ?, ?, ?, ?, ?)",[b.id,b.key,b.name||null,b.machineId||null,+(!1!==b.isActive),b.createdAt||new Date().toISOString()])},a=>({id:a.id??null,name:a.name??null})),v(a,"combos",f.combos||[],b=>{a.run("INSERT OR REPLACE INTO combos(id, name, kind, models, context_length, createdAt, updatedAt) VALUES(?, ?, ?, ?, ?, ?, ?)",[b.id,b.name,b.kind||null,(0,r.s)(b.models||[]),b.context_length??null,b.createdAt||new Date().toISOString(),b.updatedAt||new Date().toISOString()])},a=>({id:a.id??null,name:a.name??null})),Object.entries(f.modelAliases||{})))a.run("INSERT OR REPLACE INTO kv(scope, key, value) VALUES('modelAliases', ?, ?)",[b,(0,r.s)(c)]);for(let b of f.customModels||[]){let c=`${b.providerAlias}|${b.id}|${b.type||"llm"}`;a.run("INSERT OR REPLACE INTO kv(scope, key, value) VALUES('customModels', ?, ?)",[c,(0,r.s)(b)])}for(let[b,c]of Object.entries(f.mitmAlias||{}))a.run("INSERT OR REPLACE INTO kv(scope, key, value) VALUES('mitmAlias', ?, ?)",[b,(0,r.s)(c||{})]);for(let[b,c]of Object.entries(f.pricing||{}))a.run("INSERT OR REPLACE INTO kv(scope, key, value) VALUES('pricing', ?, ?)",[b,(0,r.s)(c||{})])}if(m&&"object"==typeof m){for(let b of m.history||[]){let c=b.tokens||{};a.run("INSERT INTO usageHistory(timestamp, provider, model, connectionId, apiKey, endpoint, promptTokens, completionTokens, cost, status, tokens, meta) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)",[b.timestamp||new Date().toISOString(),b.provider||null,b.model||null,b.connectionId||null,b.apiKey||null,b.endpoint||null,c.prompt_tokens||c.input_tokens||0,c.completion_tokens||c.output_tokens||0,b.cost||0,b.status||"ok",(0,r.s)(c),(0,r.s)({})])}for(let[b,c]of Object.entries(m.dailySummary||{}))a.run("INSERT OR REPLACE INTO usageDaily(dateKey, data) VALUES(?, ?)",[b,(0,r.s)(c)]);"number"==typeof m.totalRequestsLifetime&&l(a,"totalRequestsLifetime",m.totalRequestsLifetime)}if(x&&"object"==typeof x.disabled)for(let[b,c]of Object.entries(x.disabled))a.run("INSERT OR REPLACE INTO kv(scope, key, value) VALUES('disabledModels', ?, ?)",[b,(0,r.s)(c||[])]);if(y&&Array.isArray(y.records))for(let b of y.records)a.run("INSERT OR REPLACE INTO requestDetails(id, timestamp, provider, model, connectionId, status, data) VALUES(?, ?, ?, ?, ?, ?, ?)",[b.id,b.timestamp||new Date().toISOString(),b.provider||null,b.model||null,b.connectionId||null,b.status||null,(0,r.s)(b)]);l(a,"appVersion",n()),l(a,"backupSchemaVersion",i.f$),l(a,"migratedAt",new Date().toISOString())})}catch(b){if(t.delete(a),b instanceof u)return void console.error(`[DB][migrate] aborted: ${b.message} | legacy JSON kept | backup: ${c}`);throw b}try{e().writeFileSync(s,new Date().toISOString())}catch{}t.add(a),q(),console.log(`[DB][migrate] JSON → SQLite in ${Date.now()-b}ms | legacy JSON kept at DATA_DIR | backup: ${c}`);return}let z=n();k(a,"appVersion",null)!==z&&l(a,"appVersion",z),t.add(a)}},26985:(a,b,c)=>{c.d(b,{CG:()=>f,f$:()=>d,oG:()=>e,zE:()=>g});let d=8,e=`
|
|
1
|
+
"use strict";exports.id=2927,exports.ids=[2927],exports.modules={12927:(a,b,c)=>{c.d(b,{runMigrationOnce:()=>x});var d=c(73024),e=c.n(d),f=c(76760),g=c.n(f),h=c(55250),i=c(26985);let j=[{version:1,name:"initial",up(a){for(let[b,c]of Object.entries(i.CG))for(let d of(a.exec((0,i.zE)(b,c)),c.indexes||[]))a.exec(d)}},{version:2,name:"fix-empty-allowed-lists",up(a){let b=a.all("PRAGMA table_info(apiKeys)"),c=Array.isArray(b)?b.map(a=>a.name):[];c.includes("allowedProviders")&&a.exec("UPDATE apiKeys SET allowedProviders = NULL WHERE allowedProviders = '[]'"),c.includes("allowedCombos")&&a.exec("UPDATE apiKeys SET allowedCombos = NULL WHERE allowedCombos = '[]'"),c.includes("allowedKinds")&&a.exec("UPDATE apiKeys SET allowedKinds = NULL WHERE allowedKinds = '[]'")}},{version:3,name:"add-allowed-lists-columns",up(a){let b=a.all("PRAGMA table_info(apiKeys)"),c=Array.isArray(b)?b.map(a=>a.name):[];c.includes("allowedProviders")||a.exec("ALTER TABLE apiKeys ADD COLUMN allowedProviders TEXT"),c.includes("allowedCombos")||a.exec("ALTER TABLE apiKeys ADD COLUMN allowedCombos TEXT"),c.includes("allowedKinds")||a.exec("ALTER TABLE apiKeys ADD COLUMN allowedKinds TEXT")}},{version:4,name:"add-request-details-apikey",up(a){let b=new Set(a.all("PRAGMA table_info(requestDetails)").map(a=>a.name));b.has("apiKey")||a.exec("ALTER TABLE requestDetails ADD COLUMN apiKey TEXT"),b.has("apiKeyName")||a.exec("ALTER TABLE requestDetails ADD COLUMN apiKeyName TEXT")}},{version:7,name:"add-combo-context-length",up(a){a.all("PRAGMA table_info(combos)").some(a=>"context_length"===a.name)||a.exec("ALTER TABLE combos ADD COLUMN context_length INTEGER")}},{version:8,name:"add-proxy-pool-fitness",up(a){let b=i.CG.proxyPoolFitness;for(let c of(a.exec((0,i.zE)("proxyPoolFitness",b)),b.indexes||[]))a.exec(c)}}].sort((a,b)=>a.version-b.version);function k(a,b,c=null){let d=a.get("SELECT value FROM _meta WHERE key = ?",[b]);return d?d.value:c}function l(a,b,c){a.run("INSERT INTO _meta(key, value) VALUES(?, ?) ON CONFLICT(key) DO UPDATE SET value = excluded.value",[b,String(c)])}let m=null;function n(){if(m)return m;try{let a=g().join(process.cwd(),"package.json");m=JSON.parse(e().readFileSync(a,"utf-8")).version||"0.0.0"}catch{m="0.0.0"}return m}let o=["requestDetails"];function p(a){(0,h.Jh)();let b=n(),c=`${a}-${b}-${function(a=new Date){let b=a=>String(a).padStart(2,"0");return`${a.getFullYear()}${b(a.getMonth()+1)}${b(a.getDate())}-${b(a.getHours())}${b(a.getMinutes())}${b(a.getSeconds())}`}()}`,d=g().join(h.KQ,c);return e().mkdirSync(d,{recursive:!0}),d}function q(){if(e().existsSync(h.KQ))for(let a of e().readdirSync(h.KQ,{withFileTypes:!0}).filter(a=>a.isDirectory()).map(a=>({name:a.name,full:g().join(h.KQ,a.name),mtime:e().statSync(g().join(h.KQ,a.name)).mtimeMs})).sort((a,b)=>b.mtime-a.mtime).slice(1))try{e().rmSync(a.full,{recursive:!0,force:!0})}catch{}}var r=c(54076);let s=g().join(h.HG,".migrated-from-json"),t=new WeakSet;class u extends Error{constructor(a,b){super(a),this.name="MigrationAborted",this.droppedRows=b}}function v(a,b,c,d,e){let f=[];for(let a of c)try{d(a)}catch(b){f.push({...e(a),reason:b.message})}let g=a.get(`SELECT COUNT(*) as c FROM ${b}`)?.c??0;if(g!==c.length)throw console.warn(`[DB][migrate] ${b} row-count mismatch: expected ${c.length}, got ${g}. Dropped:`,f),new u(`${b} row-count mismatch: expected ${c.length}, got ${g}`,f)}function w(a){if(!e().existsSync(a))return null;try{return JSON.parse(e().readFileSync(a,"utf-8"))}catch{return null}}async function x(a){if(t.has(a))return;let b=function(a){try{let b=a.get("SELECT COUNT(*) as c FROM _meta");return!b||0===b.c}catch{return!0}}(a);q(),a.exec((0,i.zE)("_meta",i.CG._meta));let c=parseInt(k(a,"backupSchemaVersion","0"),10)||0;if(!b&&c<i.f$)try{let b=p(`schema-${c}-to-${i.f$}`);!function(a,b,c="data.sqlite"){let d=g().join(b,c);try{e().rmSync(d,{force:!0})}catch{}let f=d.replace(/'/g,"''");a.exec(`ATTACH DATABASE '${f}' AS bak`);try{let b=new Set(o),c=a.all("SELECT name, sql FROM main.sqlite_master WHERE type='table' AND name NOT LIKE 'sqlite_%'").filter(a=>!b.has(a.name));a.transaction(()=>{for(let b of c){let c=b.sql.replace(/CREATE TABLE\s+/i,"CREATE TABLE bak.");a.exec(c),a.exec(`INSERT INTO bak.${b.name} SELECT * FROM main.${b.name}`)}})}finally{try{a.exec("DETACH DATABASE bak")}catch{}}}(a,b),q(),console.log(`[DB][migrate] pre-schema backup ${c} → ${i.f$}: ${b}`)}catch(a){console.warn(`[DB][migrate] pre-schema backup failed (continuing): ${a.message}`)}!function(a){a.exec((0,i.zE)("_meta",i.CG._meta));let b=parseInt(k(a,"schemaVersion","0"),10)||0;if(b>=(j.length?j[j.length-1].version:0))return;let c=j.filter(a=>a.version>b);for(let b of c)a.transaction(()=>{b.up(a),l(a,"schemaVersion",b.version)}),b.version,console.log(`[DB][migrate] applied #${b.version} ${b.name}`);c.length}(a);for(let[b,c]of Object.entries(i.CG)){a.exec((0,i.zE)(b,c));let d=new Set(a.all(`PRAGMA table_info(${b})`).map(a=>a.name));for(let[e,f]of Object.entries(c.columns))if(!d.has(e)){let c=f.replace(/PRIMARY KEY( AUTOINCREMENT)?/i,"").replace(/UNIQUE/i,"").trim();try{a.exec(`ALTER TABLE ${b} ADD COLUMN ${e} ${c}`),console.log(`[DB][sync] +column ${b}.${e}`)}catch(a){console.warn(`[DB][sync] add column ${b}.${e} failed: ${a.message}`)}}for(let b of c.indexes||[])try{a.exec(b)}catch{}}l(a,"backupSchemaVersion",i.f$);let d=e().existsSync(s),f=w(h.Or.main),m=w(h.Or.usage),x=w(h.Or.disabled),y=w(h.Or.details);if(b&&(f||m||x||y)&&!d){let b=Date.now(),c=p("migrate-from-json");for(let a of Object.values(h.Or))!function(a,b,c=null){if(!e().existsSync(a))return;let d=c||g().basename(a),f=g().join(b,d);e().copyFileSync(a,f)}(a,c);try{a.transaction(()=>{if(f&&"object"==typeof f){for(let[b,c]of(f.settings&&a.run("INSERT INTO settings(id, data) VALUES(1, ?) ON CONFLICT(id) DO UPDATE SET data = excluded.data",[(0,r.s)(f.settings)]),v(a,"providerConnections",f.providerConnections||[],b=>{let{id:c,provider:d,authType:e,name:f,email:g,priority:h,isActive:i,createdAt:j,updatedAt:k,...l}=b;a.run("INSERT OR REPLACE INTO providerConnections(id, provider, authType, name, email, priority, isActive, data, createdAt, updatedAt) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?)",[c,d,e||"oauth",f||null,g||null,h||null,+(!1!==i),(0,r.s)(l),j||new Date().toISOString(),k||new Date().toISOString()])},a=>({id:a.id??null,provider:a.provider??null,name:a.name??null})),v(a,"providerNodes",f.providerNodes||[],b=>{let{id:c,type:d,name:e,createdAt:f,updatedAt:g,...h}=b;a.run("INSERT OR REPLACE INTO providerNodes(id, type, name, data, createdAt, updatedAt) VALUES(?, ?, ?, ?, ?, ?)",[c,d||null,e||null,(0,r.s)(h),f||new Date().toISOString(),g||new Date().toISOString()])},a=>({id:a.id??null,type:a.type??null,name:a.name??null})),v(a,"proxyPools",f.proxyPools||[],b=>{let{id:c,isActive:d,testStatus:e,createdAt:f,updatedAt:g,...h}=b;a.run("INSERT OR REPLACE INTO proxyPools(id, isActive, testStatus, data, createdAt, updatedAt) VALUES(?, ?, ?, ?, ?, ?)",[c,+(!1!==d),e||"unknown",(0,r.s)(h),f||new Date().toISOString(),g||new Date().toISOString()])},a=>({id:a.id??null})),v(a,"apiKeys",f.apiKeys||[],b=>{a.run("INSERT OR REPLACE INTO apiKeys(id, key, name, machineId, isActive, createdAt) VALUES(?, ?, ?, ?, ?, ?)",[b.id,b.key,b.name||null,b.machineId||null,+(!1!==b.isActive),b.createdAt||new Date().toISOString()])},a=>({id:a.id??null,name:a.name??null})),v(a,"combos",f.combos||[],b=>{a.run("INSERT OR REPLACE INTO combos(id, name, kind, models, context_length, createdAt, updatedAt) VALUES(?, ?, ?, ?, ?, ?, ?)",[b.id,b.name,b.kind||null,(0,r.s)(b.models||[]),b.context_length??null,b.createdAt||new Date().toISOString(),b.updatedAt||new Date().toISOString()])},a=>({id:a.id??null,name:a.name??null})),Object.entries(f.modelAliases||{})))a.run("INSERT OR REPLACE INTO kv(scope, key, value) VALUES('modelAliases', ?, ?)",[b,(0,r.s)(c)]);for(let b of f.customModels||[]){let c=`${b.providerAlias}|${b.id}|${b.type||"llm"}`;a.run("INSERT OR REPLACE INTO kv(scope, key, value) VALUES('customModels', ?, ?)",[c,(0,r.s)(b)])}for(let[b,c]of Object.entries(f.mitmAlias||{}))a.run("INSERT OR REPLACE INTO kv(scope, key, value) VALUES('mitmAlias', ?, ?)",[b,(0,r.s)(c||{})]);for(let[b,c]of Object.entries(f.pricing||{}))a.run("INSERT OR REPLACE INTO kv(scope, key, value) VALUES('pricing', ?, ?)",[b,(0,r.s)(c||{})])}if(m&&"object"==typeof m){for(let b of m.history||[]){let c=b.tokens||{};a.run("INSERT INTO usageHistory(timestamp, provider, model, connectionId, apiKey, endpoint, promptTokens, completionTokens, cost, status, tokens, meta) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)",[b.timestamp||new Date().toISOString(),b.provider||null,b.model||null,b.connectionId||null,b.apiKey||null,b.endpoint||null,c.prompt_tokens||c.input_tokens||0,c.completion_tokens||c.output_tokens||0,b.cost||0,b.status||"ok",(0,r.s)(c),(0,r.s)({})])}for(let[b,c]of Object.entries(m.dailySummary||{}))a.run("INSERT OR REPLACE INTO usageDaily(dateKey, data) VALUES(?, ?)",[b,(0,r.s)(c)]);"number"==typeof m.totalRequestsLifetime&&l(a,"totalRequestsLifetime",m.totalRequestsLifetime)}if(x&&"object"==typeof x.disabled)for(let[b,c]of Object.entries(x.disabled))a.run("INSERT OR REPLACE INTO kv(scope, key, value) VALUES('disabledModels', ?, ?)",[b,(0,r.s)(c||[])]);if(y&&Array.isArray(y.records))for(let b of y.records)a.run("INSERT OR REPLACE INTO requestDetails(id, timestamp, provider, model, connectionId, status, data) VALUES(?, ?, ?, ?, ?, ?, ?)",[b.id,b.timestamp||new Date().toISOString(),b.provider||null,b.model||null,b.connectionId||null,b.status||null,(0,r.s)(b)]);l(a,"appVersion",n()),l(a,"backupSchemaVersion",i.f$),l(a,"migratedAt",new Date().toISOString())})}catch(b){if(t.delete(a),b instanceof u)return void console.error(`[DB][migrate] aborted: ${b.message} | legacy JSON kept | backup: ${c}`);throw b}try{e().writeFileSync(s,new Date().toISOString())}catch{}t.add(a),q(),console.log(`[DB][migrate] JSON → SQLite in ${Date.now()-b}ms | legacy JSON kept at DATA_DIR | backup: ${c}`);return}let z=n();k(a,"appVersion",null)!==z&&l(a,"appVersion",z),t.add(a)}},26985:(a,b,c)=>{c.d(b,{CG:()=>f,f$:()=>d,oG:()=>e,zE:()=>g});let d=8,e=`
|
|
2
2
|
PRAGMA journal_mode = WAL;
|
|
3
|
-
PRAGMA synchronous = NORMAL;
|
|
3
|
+
PRAGMA synchronous = ${process.env.SQLITE_SYNCHRONOUS||"NORMAL"};
|
|
4
4
|
PRAGMA temp_store = MEMORY;
|
|
5
5
|
PRAGMA mmap_size = 30000000;
|
|
6
6
|
PRAGMA cache_size = -64000;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
"use strict";exports.id=3040,exports.ids=[3040],exports.modules={23040:(a,b,c)=>{c.d(b,{createBetterSqliteAdapter:()=>g});var d=c(87550),e=c.n(d),f=c(78785);function g(a){let b=new(e())(a);b.exec(f.oG);let c=new Map;function d(a){let d=c.get(a);return d||(d=b.prepare(a),c.set(a,d)),d}let g=setInterval(()=>{try{b.pragma("wal_checkpoint(TRUNCATE)")}catch{}},6e4);function h(){try{b.pragma("wal_checkpoint(TRUNCATE)")}catch{}try{c.clear()}catch{}try{b.close()}catch{}}
|
|
1
|
+
"use strict";exports.id=3040,exports.ids=[3040],exports.modules={23040:(a,b,c)=>{c.d(b,{createBetterSqliteAdapter:()=>g});var d=c(87550),e=c.n(d),f=c(78785);function g(a){let b=new(e())(a);b.exec(f.oG);let c=new Map;function d(a){let d=c.get(a);return d||(d=b.prepare(a),c.set(a,d)),d}let g=setInterval(()=>{try{b.pragma("wal_checkpoint(TRUNCATE)")}catch{}},6e4);"function"==typeof g.unref&&g.unref();let h=()=>l(),i=()=>{h(),process.exit(0)},j=()=>{h(),process.exit(0)},k=!1;function l(){if(!k){k=!0,process.removeListener("beforeExit",h),process.removeListener("SIGINT",i),process.removeListener("SIGTERM",j);try{b.pragma("wal_checkpoint(TRUNCATE)")}catch{}try{c.clear()}catch{}try{b.close()}catch{}}}return process.once("beforeExit",h),process.once("SIGINT",i),process.once("SIGTERM",j),{driver:"better-sqlite3",run:(a,b=[])=>d(a).run(...b),get:(a,b=[])=>d(a).get(...b),all:(a,b=[])=>d(a).all(...b),exec:a=>b.exec(a),transaction:a=>b.transaction(a)(),checkpoint(){try{b.pragma("wal_checkpoint(TRUNCATE)")}catch{}},close(){clearInterval(g),l()},raw:b}}},78785:(a,b,c)=>{c.d(b,{CG:()=>f,f$:()=>d,oG:()=>e,zE:()=>g});let d=8,e=`
|
|
2
2
|
PRAGMA journal_mode = WAL;
|
|
3
|
-
PRAGMA synchronous = NORMAL;
|
|
3
|
+
PRAGMA synchronous = ${process.env.SQLITE_SYNCHRONOUS||"NORMAL"};
|
|
4
4
|
PRAGMA temp_store = MEMORY;
|
|
5
5
|
PRAGMA mmap_size = 30000000;
|
|
6
6
|
PRAGMA cache_size = -64000;
|