@rabbi696/ezrouter 0.6.7 → 0.6.9
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 +6 -6
- package/app/.next-cli-build/build-manifest.json +2 -2
- package/app/.next-cli-build/required-server-files.json +2 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js +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 +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 +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 +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/convoy/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/convoy/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/convoy/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.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/error-log/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/error-log/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/error-log/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/mcp-gateway/keys/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/mcp-gateway/keys/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/mcp-gateway/keys/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/mcp-gateway/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/mcp-gateway/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/mcp-gateway/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/mcp-gateway/servers/page.js +2 -2
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/mcp-gateway/servers/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/mcp-gateway/servers/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js +3 -3
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js +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 +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 +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 +2 -2
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js +2 -2
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js +2 -2
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js +5 -5
- 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 +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 +2 -2
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page.js +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 +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 +2 -2
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/routing-health/page.js +2 -2
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/routing-health/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/routing-health/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page.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 +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 +2 -2
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js +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 +1 -1
- package/app/.next-cli-build/server/app/_not-found/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/_not-found.html +1 -1
- package/app/.next-cli-build/server/app/_not-found.rsc +4 -4
- package/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/_not-found.segments/_index.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/api/auth/login/route.js +1 -1
- package/app/.next-cli-build/server/app/api/auth/login/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/logout/route.js +1 -1
- package/app/.next-cli-build/server/app/api/auth/logout/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js +1 -1
- package/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/oidc/start/route.js +1 -1
- package/app/.next-cli-build/server/app/api/auth/oidc/start/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/oidc/test/route.js +1 -1
- package/app/.next-cli-build/server/app/api/auth/oidc/test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/reset-password/route.js +1 -1
- package/app/.next-cli-build/server/app/api/auth/reset-password/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/saml/acs/route.js +1 -1
- package/app/.next-cli-build/server/app/api/auth/saml/acs/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/saml/metadata/route.js +1 -1
- package/app/.next-cli-build/server/app/api/auth/saml/metadata/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/saml/start/route.js +1 -1
- package/app/.next-cli-build/server/app/api/auth/saml/start/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/saml/test/route.js +1 -1
- package/app/.next-cli-build/server/app/api/auth/saml/test/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/changelog/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli/providers/codex/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli/providers/codex/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js +1 -1
- 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 +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.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/codex-native/models/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/codex-native/models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/codex-native/readiness/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/codex-native/readiness/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.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js.nft.json +1 -1
- 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.nft.json +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.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.nft.json +1 -1
- 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.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/pi-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/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/[id]/test/route.js +1 -1
- package/app/.next-cli-build/server/app/api/combos/[id]/test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/combos/export/route.js +1 -1
- package/app/.next-cli-build/server/app/api/combos/export/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/combos/import/route.js +1 -1
- package/app/.next-cli-build/server/app/api/combos/import/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/combos/test/route.js +1 -1
- package/app/.next-cli-build/server/app/api/combos/test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/convoy/rules/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/headroom/extras/route.js +1 -1
- package/app/.next-cli-build/server/app/api/headroom/extras/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/headroom/proxy/[...path]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/headroom/proxy/[...path]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/headroom/restart/route.js +1 -1
- package/app/.next-cli-build/server/app/api/headroom/restart/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/headroom/start/route.js +1 -1
- package/app/.next-cli-build/server/app/api/headroom/start/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/headroom/status/route.js +1 -1
- package/app/.next-cli-build/server/app/api/headroom/status/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/headroom/stop/route.js +1 -1
- package/app/.next-cli-build/server/app/api/headroom/stop/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/health/route.js.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/internal/codex-native/lease/[action]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/internal/codex-native/lease/[action]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/keys/[id]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/keys/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/keys/route.js +1 -1
- package/app/.next-cli-build/server/app/api/keys/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/locale/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js +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 +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/mcp-gateway/instances/[id]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/mcp-gateway/instances/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/mcp-gateway/instances/[id]/test/route.js +1 -1
- package/app/.next-cli-build/server/app/api/mcp-gateway/instances/[id]/test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/mcp-gateway/instances/route.js +1 -1
- package/app/.next-cli-build/server/app/api/mcp-gateway/instances/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/mcp-gateway/keys/[id]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/mcp-gateway/keys/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/mcp-gateway/keys/route.js +1 -1
- package/app/.next-cli-build/server/app/api/mcp-gateway/keys/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/mcp-gateway/message/route.js +1 -1
- package/app/.next-cli-build/server/app/api/mcp-gateway/message/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/mcp-gateway/oauth/[id]/[action]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/mcp-gateway/oauth/[id]/[action]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/mcp-gateway/route.js +1 -1
- package/app/.next-cli-build/server/app/api/mcp-gateway/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/mcp-gateway/sse/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/alias/route.js +1 -1
- package/app/.next-cli-build/server/app/api/models/alias/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/availability/route.js +1 -1
- package/app/.next-cli-build/server/app/api/models/availability/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/catalog-sync/route.js +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 +1 -1
- package/app/.next-cli-build/server/app/api/models/custom/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/disabled/route.js +1 -1
- package/app/.next-cli-build/server/app/api/models/disabled/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/route.js +1 -1
- package/app/.next-cli-build/server/app/api/models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/test/route.js +1 -1
- package/app/.next-cli-build/server/app/api/models/test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/callback/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/callback/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 +1 -1
- package/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js +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 +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 +1 -1
- package/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/api-key/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/api-key/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/import-cli-proxy/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/import-cli-proxy/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/api-key/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/api-key/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/auto-import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pricing/route.js +1 -1
- package/app/.next-cli-build/server/app/api/pricing/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/provider-nodes/route.js +1 -1
- package/app/.next-cli-build/server/app/api/provider-nodes/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js +1 -1
- package/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/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]/refresh-profile/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/refresh-profile/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/test/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/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]/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/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 +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 +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/status/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/stop/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/routing-health/route.js +1 -1
- package/app/.next-cli-build/server/app/api/routing-health/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 +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/token-saver/stats/route.js +1 -1
- package/app/.next-cli-build/server/app/api/token-saver/stats/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/token-saver/stream/route.js +1 -1
- package/app/.next-cli-build/server/app/api/token-saver/stream/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tool-disclosure/stats/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/translator/console-logs/route.js +1 -1
- package/app/.next-cli-build/server/app/api/translator/console-logs/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js +2 -2
- package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/translator/load/route.js.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 +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/disable/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/enable/route.js +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/enable/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/status/route.js +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/status/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/[connectionId]/codex-reset-credits/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/[connectionId]/codex-reset-credits/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/chart/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/chart/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/error-logs/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/history/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/history/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/logs/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/logs/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/providers/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/providers/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/request-details/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/request-details/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/request-logs/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/request-logs/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/stats/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/stats/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/stream/route.js +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/alpha/search/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/alpha/search/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/api/chat/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/api/chat/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/audio/voices/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/audio/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/codex/alpha/search/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/codex/alpha/search/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/codex/images/edits/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/codex/images/edits/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/codex/images/generations/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/codex/images/generations/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/codex/memories/trace_summarize/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/codex/memories/trace_summarize/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/codex/models/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/codex/models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/codex/responses/compact/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/codex/responses/compact/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/codex/responses/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/codex/responses/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 +3 -3
- 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/[...model]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/models/[...model]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/models/info/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/models/info/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/models/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/responses/compact/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/responses/compact/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/responses/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/responses/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/search/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/search/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/videos/[id]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/videos/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/videos/edits/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/videos/edits/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/videos/extensions/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/videos/extensions/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/videos/generations/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/videos/generations/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/web/fetch/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/web/fetch/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1beta/models/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1beta/models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/version/route.js +1 -1
- package/app/.next-cli-build/server/app/api/version/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/version/shutdown/route.js +1 -1
- package/app/.next-cli-build/server/app/api/version/shutdown/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/version/update/route.js +1 -1
- package/app/.next-cli-build/server/app/api/version/update/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/callback/page.js +1 -1
- package/app/.next-cli-build/server/app/callback/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/callback/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/callback.html +1 -1
- package/app/.next-cli-build/server/app/callback.rsc +4 -4
- package/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/callback.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/callback.segments/_index.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/callback.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/callback.segments/callback/__PAGE__.segment.rsc +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 +6 -6
- 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 +6 -6
- 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 +4 -4
- package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/cli-tools.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/cli-tools.rsc +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 +4 -4
- package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/combos.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/combos.rsc +6 -6
- 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 +6 -6
- 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 +4 -4
- package/app/.next-cli-build/server/app/dashboard/combos.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/convoy.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/convoy.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/convoy.segments/!KGRhc2hib2FyZCk/dashboard/convoy/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/convoy.segments/!KGRhc2hib2FyZCk/dashboard/convoy.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/convoy.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/convoy.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/convoy.segments/_full.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/convoy.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/convoy.segments/_index.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/convoy.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/endpoint.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/endpoint.rsc +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 +4 -4
- package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/mcp-gateway/keys.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/mcp-gateway/keys.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/mcp-gateway/keys.segments/!KGRhc2hib2FyZCk/dashboard/mcp-gateway/keys/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/mcp-gateway/keys.segments/!KGRhc2hib2FyZCk/dashboard/mcp-gateway/keys.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/mcp-gateway/keys.segments/!KGRhc2hib2FyZCk/dashboard/mcp-gateway.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/mcp-gateway/keys.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/mcp-gateway/keys.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/mcp-gateway/keys.segments/_full.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/mcp-gateway/keys.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/mcp-gateway/keys.segments/_index.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/mcp-gateway/keys.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/mcp-gateway/servers.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/mcp-gateway/servers.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/mcp-gateway/servers.segments/!KGRhc2hib2FyZCk/dashboard/mcp-gateway/servers/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/mcp-gateway/servers.segments/!KGRhc2hib2FyZCk/dashboard/mcp-gateway/servers.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/mcp-gateway/servers.segments/!KGRhc2hib2FyZCk/dashboard/mcp-gateway.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/mcp-gateway/servers.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/mcp-gateway/servers.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/mcp-gateway/servers.segments/_full.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/mcp-gateway/servers.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/mcp-gateway/servers.segments/_index.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/mcp-gateway/servers.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/mcp-gateway.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/mcp-gateway.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/mcp-gateway.segments/!KGRhc2hib2FyZCk/dashboard/mcp-gateway/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/mcp-gateway.segments/!KGRhc2hib2FyZCk/dashboard/mcp-gateway.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/mcp-gateway.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/mcp-gateway.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/mcp-gateway.segments/_full.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/mcp-gateway.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/mcp-gateway.segments/_index.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/mcp-gateway.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.rsc +6 -6
- 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 +6 -6
- 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 +4 -4
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/mitm.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/mitm.rsc +6 -6
- 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 +6 -6
- 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 +4 -4
- package/app/.next-cli-build/server/app/dashboard/mitm.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/profile.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/profile.rsc +6 -6
- 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 +6 -6
- 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 +4 -4
- package/app/.next-cli-build/server/app/dashboard/profile.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/providers/new.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/providers/new.rsc +6 -6
- 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 +6 -6
- 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 +4 -4
- package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/providers.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/providers.rsc +6 -6
- 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 +6 -6
- 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 +4 -4
- package/app/.next-cli-build/server/app/dashboard/providers.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.rsc +6 -6
- 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 +6 -6
- 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 +4 -4
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/pxpipe.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/pxpipe.rsc +6 -6
- 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 +6 -6
- 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 +4 -4
- package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/quota.html +2 -2
- package/app/.next-cli-build/server/app/dashboard/quota.rsc +7 -7
- 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 +7 -7
- 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 +4 -4
- package/app/.next-cli-build/server/app/dashboard/quota.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/routing-health.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/routing-health.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/routing-health.segments/!KGRhc2hib2FyZCk/dashboard/routing-health/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/routing-health.segments/!KGRhc2hib2FyZCk/dashboard/routing-health.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/routing-health.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/routing-health.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/routing-health.segments/_full.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/routing-health.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/routing-health.segments/_index.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/routing-health.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/settings/pricing/page.js +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 +4 -4
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_index.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +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 +6 -6
- 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 +6 -6
- 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 +4 -4
- package/app/.next-cli-build/server/app/dashboard/skills.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/token-saver.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/token-saver.rsc +6 -6
- 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 +6 -6
- 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 +4 -4
- package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/translator.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/translator.rsc +6 -6
- 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 +6 -6
- 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 +4 -4
- package/app/.next-cli-build/server/app/dashboard/translator.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/usage.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/usage.rsc +6 -6
- 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 +6 -6
- 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 +4 -4
- package/app/.next-cli-build/server/app/dashboard/usage.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard.html +1 -1
- package/app/.next-cli-build/server/app/dashboard.rsc +6 -6
- 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 +6 -6
- 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 +4 -4
- package/app/.next-cli-build/server/app/dashboard.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/favicon.ico/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/index.html +1 -1
- package/app/.next-cli-build/server/app/index.rsc +4 -4
- package/app/.next-cli-build/server/app/index.segments/__PAGE__.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/index.segments/_full.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/index.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/index.segments/_index.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/index.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/landing/page.js +2 -2
- package/app/.next-cli-build/server/app/landing/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/landing/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/landing.html +1 -1
- package/app/.next-cli-build/server/app/landing.rsc +4 -4
- package/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/landing.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/landing.segments/_index.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/landing.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/landing.segments/landing/__PAGE__.segment.rsc +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 +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 +5 -5
- package/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +5 -5
- 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 +4 -4
- package/app/.next-cli-build/server/app/login.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/login.segments/login/__PAGE__.segment.rsc +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/page.js +1 -1
- package/app/.next-cli-build/server/app/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app-paths-manifest.json +6 -6
- package/app/.next-cli-build/server/chunks/1133.js +1 -1
- package/app/.next-cli-build/server/chunks/1253.js +1 -1
- package/app/.next-cli-build/server/chunks/1273.js +1 -1
- package/app/.next-cli-build/server/chunks/1522.js +1 -1
- package/app/.next-cli-build/server/chunks/1764.js +225 -0
- package/app/.next-cli-build/server/chunks/1847.js +1 -1
- package/app/.next-cli-build/server/chunks/2021.js +1 -1
- package/app/.next-cli-build/server/chunks/2269.js +1 -1
- package/app/.next-cli-build/server/chunks/2348.js +1 -1
- package/app/.next-cli-build/server/chunks/2461.js +1 -0
- package/app/.next-cli-build/server/chunks/2750.js +1 -31
- package/app/.next-cli-build/server/chunks/2898.js +3 -3
- package/app/.next-cli-build/server/chunks/3216.js +1 -0
- package/app/.next-cli-build/server/chunks/3245.js +1 -1
- package/app/.next-cli-build/server/chunks/3252.js +1 -0
- package/app/.next-cli-build/server/chunks/3547.js +1 -1
- package/app/.next-cli-build/server/chunks/3583.js +2 -2
- package/app/.next-cli-build/server/chunks/369.js +25 -25
- package/app/.next-cli-build/server/chunks/3814.js +55 -5
- package/app/.next-cli-build/server/chunks/3886.js +1 -1
- package/app/.next-cli-build/server/chunks/3977.js +2 -2
- package/app/.next-cli-build/server/chunks/412.js +3 -3
- package/app/.next-cli-build/server/chunks/4123.js +1 -1
- package/app/.next-cli-build/server/chunks/4208.js +252 -0
- package/app/.next-cli-build/server/chunks/436.js +1 -0
- package/app/.next-cli-build/server/chunks/4646.js +1 -1
- package/app/.next-cli-build/server/chunks/4807.js +1 -1
- package/app/.next-cli-build/server/chunks/4827.js +1 -1
- package/app/.next-cli-build/server/chunks/4878.js +1 -1
- package/app/.next-cli-build/server/chunks/5130.js +1 -1
- package/app/.next-cli-build/server/chunks/5614.js +1 -0
- package/app/.next-cli-build/server/chunks/576.js +1 -1
- package/app/.next-cli-build/server/chunks/5849.js +1 -1
- package/app/.next-cli-build/server/chunks/5875.js +1 -1
- package/app/.next-cli-build/server/chunks/5948.js +1 -0
- package/app/.next-cli-build/server/chunks/615.js +1 -1
- package/app/.next-cli-build/server/chunks/6502.js +28 -0
- package/app/.next-cli-build/server/chunks/6816.js +1 -1
- package/app/.next-cli-build/server/chunks/6958.js +1 -1
- package/app/.next-cli-build/server/chunks/717.js +1 -0
- package/app/.next-cli-build/server/chunks/7239.js +3 -3
- package/app/.next-cli-build/server/chunks/7353.js +1 -1
- package/app/.next-cli-build/server/chunks/7512.js +31 -0
- package/app/.next-cli-build/server/chunks/7677.js +1 -1
- package/app/.next-cli-build/server/chunks/7716.js +1 -1
- package/app/.next-cli-build/server/chunks/7775.js +1 -1
- package/app/.next-cli-build/server/chunks/7828.js +1 -1
- package/app/.next-cli-build/server/chunks/8129.js +1 -1
- package/app/.next-cli-build/server/chunks/823.js +1 -1
- package/app/.next-cli-build/server/chunks/8243.js +4 -4
- package/app/.next-cli-build/server/chunks/8306.js +1 -1
- package/app/.next-cli-build/server/chunks/8421.js +1 -1
- package/app/.next-cli-build/server/chunks/8459.js +1 -1
- package/app/.next-cli-build/server/chunks/8851.js +55 -5
- package/app/.next-cli-build/server/chunks/8946.js +1 -1
- package/app/.next-cli-build/server/chunks/8976.js +1 -1
- package/app/.next-cli-build/server/chunks/9062.js +1 -1
- package/app/.next-cli-build/server/chunks/9303.js +1 -1
- package/app/.next-cli-build/server/chunks/9485.js +1 -1
- package/app/.next-cli-build/server/chunks/9865.js +1 -1
- package/app/.next-cli-build/server/instrumentation.js +1 -1
- package/app/.next-cli-build/server/middleware-build-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/static/chunks/1321-dbf1d5923ed96850.js +1 -0
- package/app/.next-cli-build/static/chunks/5497-3d7a0fb93236c34a.js +17 -0
- package/app/.next-cli-build/static/chunks/8105-24cfa2e10ca68766.js +1 -0
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/[id]/{page-8236097df15d7be9.js → page-3dee12d2790214bb.js} +2 -2
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/profile/{page-85950757e9505005.js → page-63e73261a2a83714.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-470053d319956aa3.js +27 -0
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/page-60e7605e27ff50d0.js +1 -0
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/quota/page-358e8cfbab53f6f1.js +1 -0
- package/app/.next-cli-build/static/css/0eff34602d3e892b.css +1 -0
- package/app/CHANGELOG.md +80 -0
- package/app/node_modules/@aws/lambda-invoke-store/dist-cjs/invoke-store.js +131 -0
- package/app/node_modules/@aws/lambda-invoke-store/package.json +55 -0
- package/app/node_modules/@aws-sdk/core/client.js +5 -0
- package/app/node_modules/@aws-sdk/core/dist-cjs/submodules/client/index.js +984 -0
- package/app/node_modules/@aws-sdk/core/dist-cjs/submodules/httpAuthSchemes/index.js +349 -0
- package/app/node_modules/@aws-sdk/core/dist-cjs/submodules/protocols/index.js +2949 -0
- package/app/node_modules/@aws-sdk/core/httpAuthSchemes.js +5 -0
- package/app/node_modules/@aws-sdk/core/package.json +146 -0
- package/app/node_modules/@aws-sdk/core/protocols.js +5 -0
- package/app/node_modules/@aws-sdk/credential-provider-cognito-identity/dist-cjs/index.js +202 -0
- package/app/node_modules/@aws-sdk/credential-provider-cognito-identity/dist-cjs/loadCognitoIdentity-v413cIIq.js +4 -0
- package/app/node_modules/@aws-sdk/credential-provider-cognito-identity/package.json +59 -0
- package/app/node_modules/@aws-sdk/credential-provider-env/dist-cjs/index.js +39 -0
- package/app/node_modules/@aws-sdk/credential-provider-env/package.json +63 -0
- package/app/node_modules/@aws-sdk/credential-provider-http/dist-cjs/index.js +179 -0
- package/app/node_modules/@aws-sdk/credential-provider-http/package.json +75 -0
- package/app/node_modules/@aws-sdk/credential-provider-ini/dist-cjs/index.js +229 -0
- package/app/node_modules/@aws-sdk/credential-provider-ini/package.json +73 -0
- package/app/node_modules/@aws-sdk/credential-provider-login/dist-cjs/index.js +290 -0
- package/app/node_modules/@aws-sdk/credential-provider-login/package.json +66 -0
- package/app/node_modules/@aws-sdk/credential-provider-node/dist-cjs/index.js +166 -0
- package/app/node_modules/@aws-sdk/credential-provider-node/package.json +71 -0
- package/app/node_modules/@aws-sdk/credential-provider-process/dist-cjs/index.js +76 -0
- package/app/node_modules/@aws-sdk/credential-provider-process/package.json +63 -0
- package/app/node_modules/@aws-sdk/credential-provider-sso/dist-cjs/index.js +192 -0
- package/app/node_modules/@aws-sdk/credential-provider-sso/dist-cjs/loadSso-BGYXHf8s.js +3 -0
- package/app/node_modules/@aws-sdk/credential-provider-sso/package.json +67 -0
- package/app/node_modules/@aws-sdk/credential-provider-web-identity/dist-cjs/index.js +58 -0
- package/app/node_modules/@aws-sdk/credential-provider-web-identity/package.json +71 -0
- package/app/node_modules/@aws-sdk/credential-providers/dist-cjs/index.js +284 -0
- package/app/node_modules/@aws-sdk/credential-providers/dist-cjs/loadSts-C4jOcYxJ.js +3 -0
- package/app/node_modules/@aws-sdk/credential-providers/package.json +85 -0
- package/app/node_modules/@aws-sdk/nested-clients/cognito-identity.js +5 -0
- package/app/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/cognito-identity/index.js +616 -0
- package/app/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/signin/index.js +590 -0
- package/app/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso/index.js +468 -0
- package/app/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/index.js +674 -0
- package/app/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/index.js +878 -0
- package/app/node_modules/@aws-sdk/nested-clients/package.json +121 -0
- package/app/node_modules/@aws-sdk/nested-clients/signin.js +5 -0
- package/app/node_modules/@aws-sdk/nested-clients/sso-oidc.js +5 -0
- package/app/node_modules/@aws-sdk/nested-clients/sso.js +5 -0
- package/app/node_modules/@aws-sdk/nested-clients/sts.js +5 -0
- package/app/node_modules/@aws-sdk/signature-v4-multi-region/dist-cjs/index.js +155 -0
- package/app/node_modules/@aws-sdk/signature-v4-multi-region/package.json +60 -0
- package/app/node_modules/@aws-sdk/token-providers/dist-cjs/index.js +158 -0
- package/app/node_modules/@aws-sdk/token-providers/package.json +69 -0
- package/app/node_modules/@aws-sdk/xml-builder/dist-cjs/index.js +372 -0
- package/app/node_modules/@aws-sdk/xml-builder/package.json +63 -0
- package/app/node_modules/@smithy/core/cbor.js +5 -0
- package/app/node_modules/@smithy/core/checksum.js +5 -0
- package/app/node_modules/@smithy/core/client.js +5 -0
- package/app/node_modules/@smithy/core/config.js +5 -0
- package/app/node_modules/@smithy/core/dist-cjs/index.js +344 -0
- package/app/node_modules/@smithy/core/dist-cjs/submodules/cbor/index.js +2565 -0
- package/app/node_modules/@smithy/core/dist-cjs/submodules/checksum/index.js +577 -0
- package/app/node_modules/@smithy/core/dist-cjs/submodules/client/index.js +1156 -0
- package/app/node_modules/@smithy/core/dist-cjs/submodules/config/index.js +779 -0
- package/app/node_modules/@smithy/core/dist-cjs/submodules/endpoints/index.js +878 -0
- package/app/node_modules/@smithy/core/dist-cjs/submodules/event-streams/index.js +924 -0
- package/app/node_modules/@smithy/core/dist-cjs/submodules/protocols/index.js +1058 -0
- package/app/node_modules/@smithy/core/dist-cjs/submodules/retry/index.js +848 -0
- package/app/node_modules/@smithy/core/dist-cjs/submodules/schema/index.js +701 -0
- package/app/node_modules/@smithy/core/dist-cjs/submodules/serde/index.js +1765 -0
- package/app/node_modules/@smithy/core/dist-cjs/submodules/transport/index.js +189 -0
- package/app/node_modules/@smithy/core/endpoints.js +5 -0
- package/app/node_modules/@smithy/core/event-streams.js +5 -0
- package/app/node_modules/@smithy/core/package.json +258 -0
- package/app/node_modules/@smithy/core/protocols.js +5 -0
- package/app/node_modules/@smithy/core/retry.js +5 -0
- package/app/node_modules/@smithy/core/schema.js +5 -0
- package/app/node_modules/@smithy/core/serde.js +5 -0
- package/app/node_modules/@smithy/core/transport.js +5 -0
- package/app/node_modules/@smithy/credential-provider-imds/dist-cjs/index.js +370 -0
- package/app/node_modules/@smithy/credential-provider-imds/package.json +57 -0
- package/app/node_modules/@smithy/node-http-handler/dist-cjs/index.js +859 -0
- package/app/node_modules/@smithy/node-http-handler/package.json +56 -0
- package/app/node_modules/@smithy/signature-v4/dist-cjs/index.js +582 -0
- package/app/node_modules/@smithy/signature-v4/package.json +53 -0
- package/app/node_modules/@smithy/types/dist-cjs/index.js +96 -0
- package/app/node_modules/@smithy/types/package.json +50 -0
- package/app/node_modules/bowser/es5.js +1 -0
- package/app/node_modules/bowser/package.json +93 -0
- package/app/package.json +3 -1
- package/app/public/CHANGELOG.md +80 -0
- package/app/public/i18n/literals/ar.json +103 -2
- package/app/public/i18n/literals/bn.json +103 -2
- package/app/public/i18n/literals/cs.json +104 -3
- package/app/public/i18n/literals/da.json +103 -2
- package/app/public/i18n/literals/de.json +104 -3
- package/app/public/i18n/literals/el.json +103 -2
- package/app/public/i18n/literals/es.json +102 -1
- package/app/public/i18n/literals/fa.json +117 -3
- package/app/public/i18n/literals/fi.json +103 -2
- package/app/public/i18n/literals/fr.json +104 -3
- package/app/public/i18n/literals/he.json +103 -2
- package/app/public/i18n/literals/hi.json +104 -3
- package/app/public/i18n/literals/hu.json +103 -2
- package/app/public/i18n/literals/id.json +103 -1
- package/app/public/i18n/literals/it.json +104 -3
- package/app/public/i18n/literals/ja.json +102 -1
- package/app/public/i18n/literals/km.json +103 -1
- package/app/public/i18n/literals/ko.json +103 -2
- package/app/public/i18n/literals/nl.json +103 -2
- package/app/public/i18n/literals/no.json +103 -2
- package/app/public/i18n/literals/pl.json +103 -2
- package/app/public/i18n/literals/pt-BR.json +101 -2
- package/app/public/i18n/literals/pt-PT.json +103 -2
- package/app/public/i18n/literals/ro.json +105 -4
- package/app/public/i18n/literals/ru.json +104 -3
- package/app/public/i18n/literals/sv.json +104 -3
- package/app/public/i18n/literals/th.json +101 -3
- package/app/public/i18n/literals/tl.json +104 -3
- package/app/public/i18n/literals/tr.json +108 -9
- package/app/public/i18n/literals/uk.json +103 -2
- package/app/public/i18n/literals/ur.json +103 -2
- package/app/public/i18n/literals/vi.json +103 -2
- package/app/public/i18n/literals/zh-CN.json +99 -1
- package/app/public/i18n/literals/zh-TW.json +103 -2
- package/app/public/providers/bedrock.png +0 -0
- package/app/server.js +1 -1
- package/app/src/mitm/server.js +30 -30
- package/cli.js +41 -0
- package/package.json +1 -1
- package/src/cli/menus/combos.js +4 -1
- package/app/.next-cli-build/server/chunks/1744.js +0 -221
- package/app/.next-cli-build/server/chunks/2892.js +0 -1
- package/app/.next-cli-build/server/chunks/3148.js +0 -51
- package/app/.next-cli-build/server/chunks/4924.js +0 -300
- package/app/.next-cli-build/server/chunks/5224.js +0 -1
- package/app/.next-cli-build/server/chunks/6330.js +0 -1
- package/app/.next-cli-build/server/chunks/6892.js +0 -1
- package/app/.next-cli-build/server/chunks/7603.js +0 -1
- package/app/.next-cli-build/server/chunks/8299.js +0 -1
- package/app/.next-cli-build/server/chunks/880.js +0 -30
- package/app/.next-cli-build/server/chunks/9217.js +0 -1
- package/app/.next-cli-build/static/chunks/1321-b8a4f80390cd3ea3.js +0 -1
- package/app/.next-cli-build/static/chunks/5497-a4fcd9746123edae.js +0 -17
- package/app/.next-cli-build/static/chunks/8105-914b0eb9e3a50b9d.js +0 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-11a1a4053a30913f.js +0 -27
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/page-679ec0628cd9d54f.js +0 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/quota/page-6f16a27a86240648.js +0 -1
- package/app/.next-cli-build/static/css/23be8b98c2bbb37d.css +0 -1
- /package/app/.next-cli-build/static/{caISOCVUmfRaqJe0JjnZh → oyS1XiDjniuGAbO4WH-Hr}/_buildManifest.js +0 -0
- /package/app/.next-cli-build/static/{caISOCVUmfRaqJe0JjnZh → oyS1XiDjniuGAbO4WH-Hr}/_ssgManifest.js +0 -0
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
"use strict";exports.id=1764,exports.ids=[1764],exports.modules={14524:(a,b,c)=>{c.d(b,{b:()=>g,n:()=>f});let d=["user-agent","anthropic-beta","anthropic-version","anthropic-dangerous-direct-browser-access","x-app","x-stainless-helper-method","x-stainless-retry-count","x-stainless-runtime-version","x-stainless-package-version","x-stainless-runtime","x-stainless-lang","x-stainless-arch","x-stainless-os","x-stainless-timeout","x-claude-code-session-id","package-version","runtime-version","os","arch"],e=null;function f(a){let b,c;if(!a||"object"!=typeof a||(b=(a["user-agent"]||"").toLowerCase(),c=(a["x-app"]||"").toLowerCase(),!(b.includes("claude-cli")||b.includes("claude-code"))&&"cli"!==c))return;let f={};for(let b of d)void 0!==a[b]&&null!==a[b]&&(f[b]=a[b]);Object.keys(f).length>0&&(e=f,console.log(`[ClaudeHeaders] Cached ${Object.keys(f).length} identity headers from Claude Code client`))}function g(){return e}},37840:(a,b,c)=>{c.d(b,{$m:()=>e,nz:()=>d,yg:()=>f});let d="auto",e=["us-east-1","eu-central-1"];function f(a){let b=String(a||"").trim().toLowerCase();if(!e.includes(b))throw Error("Unsupported Kiro runtime region");return b}},45894:(a,b,c)=>{c.d(b,{A4:()=>j,c2:()=>i,mb:()=>m,tV:()=>h,v8:()=>l});var d=c(19956),e=c(89865),f=c(4905);let g=new TextEncoder;function h(a,b=null){if(!a)return null;if(b===d.h.OLLAMA){let b=a.trim();if(b.startsWith("{"))try{return JSON.parse(b)}catch(a){}return null}if(100!==a.charCodeAt(0)){let b=a.trim();if(b.startsWith("{"))try{return JSON.parse(b)}catch{}return null}let c=a.slice(5).trim();if("[DONE]"===c)return{done:!0};try{return JSON.parse(c)}catch(a){return c.length>0&&c.length<1e3&&console.log(`[WARN] Failed to parse SSE line (${c.length} chars): ${c.substring(0,100)}...`),null}}function i(a,b){if(b===d.h.OPENAI&&a.choices?.[0]?.delta){let b=a.choices[0].delta;return b.content&&""!==b.content||b.reasoning_content&&""!==b.reasoning_content||b.tool_calls&&b.tool_calls.length>0||b.images&&b.images.length>0||a.choices[0].finish_reason||b.role}if(b===d.h.CLAUDE){let b="content_block_delta"===a.type,c=a.delta?.text&&""!==a.delta.text,d=a.delta?.thinking&&""!==a.delta.thinking,e=a.delta?.partial_json&&""!==a.delta.partial_json;if(b&&!c&&!d&&!e)return!1}return!0}function j(a){if(a.id&&("chat"===a.id||"completion"===a.id||a.id.length<8)){let b=a.extend_fields?.requestId||a.extend_fields?.traceId||Date.now().toString(36);return a.id=`chatcmpl-${b}`,!0}return!1}function k(a){if(!a||"object"!=typeof a||Array.isArray(a))return a;let b=a;if("usage"in b){if(null===b.usage){let{usage:a,...c}=b;b=c}else if("object"==typeof b.usage&&null===b.usage.perf_metrics){let{perf_metrics:a,...c}=b.usage;b={...b,usage:c}}}if(b.response&&"object"==typeof b.response&&!Array.isArray(b.response)){let a=k(b.response);a!==b.response&&(b={...b,response:a})}return b}function l(a,b){if(null==a)return"";if(a&&a.done)return"data: [DONE]\n\n";if(a&&a.event&&a.data){let b=k(a.data);return`event: ${a.event}
|
|
2
|
+
data: ${JSON.stringify(b)}
|
|
3
|
+
|
|
4
|
+
`}return(a=k(a),b===d.h.CLAUDE&&a&&a.type)?`event: ${a.type}
|
|
5
|
+
data: ${JSON.stringify(a)}
|
|
6
|
+
|
|
7
|
+
`:`data: ${JSON.stringify(a)}
|
|
8
|
+
|
|
9
|
+
`}function m(a,b,c){let{error:h}=(0,e.xJ)(a,b),i=c===d.h.CLAUDE?l({type:"error",error:h},d.h.CLAUDE):l({error:h},c)+f.$U;return g.encode(i)}},50608:(a,b,c)=>{c.d(b,{SB:()=>d9});var d=c(7274),e=c(77598),f=c(85187),g=c(4630),h=c(92675),i=c(28730),j=c(7866),k=c(14524),l=c(89843);let m=[{match:a=>/^kimi-/i.test(a||""),scope:"toolCalls"},{match:a=>/deepseek/i.test(a||""),scope:"all"}],n="deepseek-v4-pro",o={[`${n}-max`]:{thinkingType:"enabled",reasoningEffort:"max"},[`${n}-none`]:{thinkingType:"disabled",reasoningEffort:null}};function p({provider:a,model:b,body:c}){let d=g.xq[a]?.reasoningInject,e=m.find(a=>a.match(b));var f=function({provider:a,model:b,body:c}){let d=o[b];if("deepseek"!==a||!d||!c)return c;let e={...c,model:n,extra_body:{...c.extra_body||{},thinking:{...c.extra_body?.thinking||{},type:d.thinkingType}}};return d.reasoningEffort?e.reasoning_effort=d.reasoningEffort:delete e.reasoning_effort,e}({provider:a,model:b,body:c}),h=d||e;if(!h||!Array.isArray(f?.messages))return f;let i=f.messages.map(a=>!function(a,b){if(a?.role!=="assistant")return!1;let c=a.reasoning_content;return("string"!=typeof c||!(c.length>0))&&("toolCalls"!==b||Array.isArray(a.tool_calls)&&a.tool_calls.length>0)}(a,h.scope)?a:{...a,reasoning_content:" "});return{...f,messages:i}}var q=c(11847);let r=[{match:/claude/i,drop:["temperature"]},{match:/claude/i,drop:["diagnostics"]},{provider:"github",match:/gpt-5\.4/i,drop:["temperature"]},{provider:"github",match:a=>/claude/i.test(a)&&!/claude.*(opus|sonnet).*4\.6/i.test(a),drop:["thinking","reasoning_effort"]},{provider:"xai",match:/grok-composer/i,drop:["thinking","reasoning_effort","reasoning"]},{provider:"cloudflare-ai",flattenContent:!0},{provider:"opencode",match:/muse/i,drop:["max_tokens","max_completion_tokens"]},{provider:"xiaomi-mimo",match:/preview/i,flattenContent:!0},{provider:"volcengine-ark",match:/glm-5/i,clampToModelMaxOutput:!0},{provider:"volcengine-ark",match:/kimi/i,maxOutputCap:32768,clampToModelMaxOutput:!0},{provider:/openai-compatible|custom/i,drop:["reasoning_effort","reasoning"]},{provider:"openai",match:/gpt-5/i,rename:[["max_tokens","max_completion_tokens"]]}];function s(a,b,c){"number"==typeof a[b]&&Number.isFinite(a[b])&&a[b]>c&&(a[b]=c)}function t(a,b,c){if(!b||!c||"object"!=typeof c)return c;for(let d of r)if((!d.provider||(d.provider instanceof RegExp?d.provider.test(a):d.provider===a))&&(!d.match||("function"==typeof d.match?d.match(b):d.match.test(b)))){for(let a of d.drop||[])void 0!==c[a]&&delete c[a];if(d.rename&&function(a,b){for(let[c,d]of b)void 0!==a[c]&&void 0===a[d]&&(a[d]=a[c],delete a[c])}(c,d.rename),d.flattenContent&&Array.isArray(c.messages))for(let a of c.messages)a&&Array.isArray(a.content)&&(a.content=a.content.map(a=>a?.type==="text"&&"string"==typeof a.text?a.text:"").join(""));if(d.clampToModelMaxOutput||Number.isFinite(d.maxOutputCap)){let e=(0,q.getCapabilitiesForModel)(a,b).maxOutput,f=[];if(d.clampToModelMaxOutput&&Number.isFinite(e)&&e>0&&f.push(e),Number.isFinite(d.maxOutputCap)&&d.maxOutputCap>0&&f.push(d.maxOutputCap),f.length>0){let a=Math.min(...f);s(c,"max_tokens",a),s(c,"max_completion_tokens",a),s(c,"max_output_tokens",a)}}}return c}var u=c(91576);let v={combined:!0,header:"Authorization",scheme:"bearer"},w={combined:!0,header:"x-api-key",scheme:"raw"},x=Object.fromEntries(Object.entries(g.xq).filter(([,a])=>a.auth).map(([a,b])=>[a,b.auth]));function y(a,b,c){a[b.header]="bearer"===b.scheme?`Bearer ${c}`:c}function z(a,b){let c=(0,u.oV)({headers:b?.rawHeaders||{},body:a,connectionId:b?.connectionId,scope:"opencode-go"});if(!c)return null;let d=e.createHash("sha256").update(String(c)).digest("hex").slice(0,32);return`ses_${d}`}let A={kimiHeaders:(a,b)=>Object.assign(a,(0,i.buildKimiHeaders)(b?.providerSpecificData?.deviceId)),clineHeaders:(a,b)=>Object.assign(a,(0,j.w$)(b.apiKey||b.accessToken)),kilocodeOrg:(a,b)=>{b.providerSpecificData?.orgId&&(a["X-Kilocode-OrganizationID"]=b.providerSpecificData.orgId)},claudeOverlay:a=>{let b=(0,k.b)();if(b){for(let c of Object.keys(b)){let d=c.replace(/(^|-)([a-z])/g,(a,b,c)=>b+c.toUpperCase());if("anthropic-beta"===c){let e=new Set((a[d]||a[c]||"").split(",").map(a=>a.trim()).filter(Boolean));for(let a of b[c].split(",").map(a=>a.trim()).filter(Boolean))e.add(a);b[c]=Array.from(e).join(",")}d!==c&&void 0!==a[d]&&delete a[d]}Object.assign(a,b)}}},B=Object.fromEntries(Object.entries(g.sr).filter(([,a])=>a.refresh).map(([a,b])=>{let c=b.tokenUrl,d=b.refresh.encoding,e=b.refresh.scope?{scope:b.refresh.scope}:{};return[a,{encoding:d,url:()=>c,params:c=>"gemini"===a?{client_id:c.config.clientId,client_secret:c.config.clientSecret,...e}:{client_id:b.clientId,...e}}]}));class C extends f.H{constructor(a){super(a,g.xq[a]||g.xq.openai)}transformRequest(a,b,c,d){let e=this.applyJsonSchemaFallback(b);if("opencode-go"===this.provider&&d&&(d._ocgSession=z(b,d)),e&&"object"==typeof e){this.config.quirks?.dropClientMetadata&&delete e.client_metadata,t(this.provider,a,e);let b=!0===e.stream;c&&b&&e.messages&&!e.stream_options&&(e.stream_options={include_usage:!0});let f=this.config.quirks?.forceAutoToolChoiceModels;if(Array.isArray(f)&&f.length&&"tool_choice"in e){let b="string"==typeof a?a.match(/\((?:none|off|auto|minimal|low|medium|high|xhigh|max|ultra|\d+)\)\s*$/i):null,c=b?a.slice(0,b.index).trim():a;f.includes(c)&&"auto"!==e.tool_choice&&(e.tool_choice="auto")}if("string"==typeof e.reasoning_effort){let b=String(d?.runtimeTransport?.baseUrl||"").includes("/responses"),c="opencode-go"===this.provider&&/muse-spark/i.test(String(a||""));if(b&&c){let a=e.reasoning,b=a&&"object"==typeof a&&!Array.isArray(a)?a:{},c=e.reasoning_effort.toLowerCase().trim();e.reasoning={...b,effort:"none"===c||"off"===c?"minimal":c,summary:b.summary||"auto"},delete e.reasoning_effort}}}return p({provider:this.provider,model:a,body:e})}applyJsonSchemaFallback(a){if(!this.provider?.startsWith?.("openai-compatible-"))return a;let b=a?.response_format;if(b?.type!=="json_schema"||!b.json_schema?.schema)return a;let c=JSON.stringify(b.json_schema.schema,null,2),d=`You must respond with valid JSON that strictly follows this JSON schema:
|
|
10
|
+
\`\`\`json
|
|
11
|
+
${c}
|
|
12
|
+
\`\`\`
|
|
13
|
+
Respond ONLY with the JSON object, no other text.`,e=Array.isArray(a.messages)?a.messages.map(a=>({...a})):[],f=e.find(a=>"system"===a.role);return f?"string"==typeof f.content?f.content=`${f.content}
|
|
14
|
+
|
|
15
|
+
${d}`:Array.isArray(f.content)&&f.content.push({type:"text",text:`
|
|
16
|
+
|
|
17
|
+
${d}`}):e.unshift({role:"system",content:d}),{...a,messages:e,response_format:{type:"json_object"}}}buildUrl(a,b,c=0,d=null){let e=d?.runtimeTransport;if(e?.baseUrl)return e.urlSuffix?`${e.baseUrl}${e.urlSuffix}`:e.baseUrl;if(this.provider?.startsWith?.("openai-compatible-")){let a=(d?.providerSpecificData?.baseUrl||h.Es).replace(/\/$/,""),b=this.provider.includes("responses")?"/responses":"/chat/completions";return`${a}${b}`}if(this.provider?.startsWith?.("anthropic-compatible-")){let a=(d?.providerSpecificData?.baseUrl||h.ky).replace(/\/$/,"");return`${a}/messages`}if("gemini"===this.config.format)return`${this.config.baseUrl}/${a}:${b?"streamGenerateContent?alt=sse":"generateContent"}`;if(this.config.urlSuffix)return`${this.config.baseUrl}${this.config.urlSuffix}`;let f=this.config.baseUrl;if(f?.includes("{accountId}")){let a=d?.providerSpecificData?.accountId;if(!a)throw Error(`${this.provider} requires accountId in providerSpecificData`);return f.replace("{accountId}",a)}return f}resolveAuthDescriptor(){return this.provider?.startsWith?.("anthropic-compatible-")?{apiKey:{header:"x-api-key",scheme:"raw"},oauth:{header:"Authorization",scheme:"bearer"},anthropicVersion:!0}:this.config?.format==="claude"?{...w,anthropicVersion:!0}:v}buildHeaders(a,b=!0,c,d="",e=null){let f=a?.runtimeTransport,g={"Content-Type":"application/json",...f?f.headers:this.config.headers},i=f?.auth||x[this.provider]||this.resolveAuthDescriptor();for(let b of i.hooks||[])A[b]?.(g,a);!function(a,b,c){if(b.combined){y(a,b,c.apiKey||c.accessToken),b.anthropicVersion&&!a["anthropic-version"]&&(a["anthropic-version"]=h.b8);return}c.apiKey?y(a,b.apiKey,c.apiKey):c.accessToken&&y(a,b.oauth,c.accessToken),b.anthropicVersion&&!a["anthropic-version"]&&(a["anthropic-version"]=h.b8)}(g,i,a),"claude"===this.provider&&a?._clientSessionId&&(delete g["x-claude-code-session-id"],g["X-Claude-Code-Session-Id"]=a._clientSessionId);let j="string"==typeof d&&/^claude-/.test(d);if(d&&("claude"===this.provider||this.provider?.startsWith?.("anthropic-compatible-")&&j)&&(g["Anthropic-Beta"]=(0,h.d)(d,e)),"opencode-go"===this.provider&&(g["x-opencode-session"]=a?._ocgSession||z(null,a)),this.provider?.startsWith?.("anthropic-compatible-")){let b=a?.providerSpecificData?.baseUrl||"";if(!(""===b||b.includes("api.anthropic.com"))){for(let b of(a.apiKey&&!g.Authorization&&(g.Authorization=`Bearer ${a.apiKey}`),delete g["anthropic-dangerous-direct-browser-access"],delete g["Anthropic-Dangerous-Direct-Browser-Access"],delete g["x-app"],delete g["X-App"],["anthropic-beta","Anthropic-Beta"]))if(g[b]){let a=g[b].split(",").map(a=>a.trim()).filter(a=>a&&"claude-code-20250219"!==a).join(",");a?g[b]=a:delete g[b]}}}return b&&(g.Accept="text/event-stream"),g}refreshFromGrant(a,b){let c=B[this.provider],d={grant_type:"refresh_token",refresh_token:a.refreshToken,...c.params(this)};return"json"===c.encoding?this.refreshWithJSON(c.url(),d,b):this.refreshWithForm(c.url(),d,b)}async refreshCredentials(a,b,c=null){if(!a.refreshToken)return null;let d={claude:()=>this.refreshFromGrant(a,c),codex:()=>this.refreshFromGrant(a,c),qwen:()=>this.refreshWithForm(i.NA.qwen.token,{grant_type:"refresh_token",refresh_token:a.refreshToken,client_id:g.xq.qwen.clientId},c),iflow:()=>this.refreshIflow(a.refreshToken,c),gemini:()=>this.refreshFromGrant(a,c),kiro:()=>this.refreshKiro(a.refreshToken,c),cline:()=>this.refreshCline(a.refreshToken,c),clinepass:()=>this.refreshCline(a.refreshToken,c),kimi:()=>this.refreshKimi(a,c),"kimi-coding":()=>this.refreshKimi(a,c),kilocode:()=>this.refreshKilocode(a.refreshToken,c)}[this.provider];if(!d)return null;try{let a=await d();return a&&b?.info?.("TOKEN",`${this.provider} refreshed`),a}catch(a){return b?.error?.("TOKEN",`${this.provider} refresh error: ${a.message}`),null}}async refreshWithJSON(a,b,c=null){let d=await (0,l.proxyAwareFetch)(a,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify(b)},c);if(!d.ok)return null;let e=await d.json();return{accessToken:e.access_token,refreshToken:e.refresh_token||b.refresh_token,expiresIn:e.expires_in}}async refreshWithForm(a,b,c=null){let d=await (0,l.proxyAwareFetch)(a,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams(b)},c);if(!d.ok)return null;let e=await d.json();return{accessToken:e.access_token,refreshToken:e.refresh_token||b.refresh_token,expiresIn:e.expires_in}}async refreshIflow(a,b=null){let c=btoa(`${g.xq.iflow.clientId}:${g.xq.iflow.clientSecret}`),d=await (0,l.proxyAwareFetch)(i.NA.iflow.token,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json",Authorization:`Basic ${c}`},body:new URLSearchParams({grant_type:"refresh_token",refresh_token:a,client_id:g.xq.iflow.clientId,client_secret:g.xq.iflow.clientSecret})},b);if(!d.ok)return null;let e=await d.json();return{accessToken:e.access_token,refreshToken:e.refresh_token||a,expiresIn:e.expires_in}}async refreshKiro(a,b=null){let c=await (0,l.proxyAwareFetch)(g.xq.kiro.tokenUrl,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json","User-Agent":"kiro-cli/1.0.0"},body:JSON.stringify({refreshToken:a})},b);if(!c.ok)return null;let d=await c.json();return{accessToken:d.accessToken,refreshToken:d.refreshToken||a,expiresIn:d.expiresIn}}async refreshCline(a,b=null){let c=await (0,l.proxyAwareFetch)(g.xq.cline.refreshUrl,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify({refreshToken:a,grantType:"refresh_token",clientType:"extension"})},b);if(!c.ok)return null;let d=await c.json(),e=d?.data||d,f=e?.expiresAt,h=f?Math.max(1,Math.floor((new Date(f).getTime()-Date.now())/1e3)):void 0,i=e?.accessToken;return i&&!i.startsWith("workos:")&&(i=`workos:${i}`),{accessToken:i,refreshToken:e?.refreshToken||a,expiresIn:h}}async refreshKimi(a,b=null){let c=a.refreshToken,d=g.xq.kimi||g.xq["kimi-coding"];if(!d?.refreshUrl||!d?.clientId)return null;let e=(0,i.buildKimiHeaders)(a?.providerSpecificData?.deviceId),f=await (0,l.proxyAwareFetch)(d.refreshUrl,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json",...e},body:new URLSearchParams({grant_type:"refresh_token",refresh_token:c,client_id:d.clientId})},b);if(!f.ok)return null;let h=await f.json();return{accessToken:h.access_token,refreshToken:h.refresh_token||c,expiresIn:h.expires_in}}async refreshKilocode(a,b=null){return null}}let D=/(?:^|[/_-])(?:gpt-5|o(?:1|3|4))(?:[._-]|$)/i;class E extends C{constructor(){super("azure")}resolveDeployment(a,b=null){return b?.providerSpecificData?.deployment||a||process.env.AZURE_DEPLOYMENT||"gpt-4"}buildUrl(a,b,c=0,d=null){let e=d?.providerSpecificData?.azureEndpoint||process.env.AZURE_ENDPOINT||"https://api.openai.com",f=d?.providerSpecificData?.apiVersion||process.env.AZURE_API_VERSION||"2024-10-01-preview",g=this.resolveDeployment(a,d),h=e.replace(/\/+$/,"");return`${h}/openai/deployments/${encodeURIComponent(g)}/chat/completions?api-version=${encodeURIComponent(f)}`}buildHeaders(a,b=!0){let c={"Content-Type":"application/json",...this.config.headers},d=a?.apiKey||a?.accessToken||process.env.OPENAI_API_KEY;d&&(c["api-key"]=d);let e=a?.providerSpecificData?.organization||process.env.AZURE_ORGANIZATION;return e&&(c["OpenAI-Organization"]=e),b&&(c.Accept="text/event-stream"),c}transformRequest(a,b,c,d){if(!b||"object"!=typeof b||Array.isArray(b))return b;let e=this.resolveDeployment(a,d);if(!D.test(String(e)))return b;let f={...b};return void 0===f.max_completion_tokens&&void 0!==f.max_tokens&&(f.max_completion_tokens=f.max_tokens),delete f.max_tokens,void 0!==f.temperature&&1!==f.temperature&&delete f.temperature,Array.isArray(f.tools)&&f.tools.length>0&&delete f.reasoning_effort,f}}let F="AWS4-HMAC-SHA256",G="aws4_request",H="static",I=/^[a-z0-9][a-z0-9-]{0,30}$/,J=/^[A-Za-z0-9_.:-]{1,64}$/,K=/(^|[./])anthropic\./,L="message_stop",M={maxMessageBytes:0x1800000,maxHeadersBytes:131072},N=new Map;function O(a,b=process.env){let[c,d]=[[a?.providerSpecificData?.region,"providerSpecificData.region"],[b.AWS_REGION,"the AWS_REGION environment variable"],[b.AWS_DEFAULT_REGION,"the AWS_DEFAULT_REGION environment variable"],["us-east-1","the built-in default"]].find(([a])=>a)||[],e="string"==typeof c?c.trim():c;if("string"!=typeof e||!I.test(e))throw Error(`Invalid AWS region ${JSON.stringify(c)} from ${d}. A region looks like "us-east-1": lowercase letters, digits and hyphens only. It is used to build the Bedrock hostname, so anything else is rejected rather than sent to an unintended host.`);return e}async function P(a,b,c,d){let e,f,g=a.providerSpecificData.profile;if("string"!=typeof g||!J.test(g))throw Error(`Invalid AWS profile name ${JSON.stringify(g)}. Use the profile's name as it appears in ~/.aws/config: letters, digits, underscore, dot, colon or hyphen, up to 64 characters.`);try{({fromIni:e}=await b())}catch(a){throw Error(`Bedrock profile mode needs the @aws-sdk/credential-providers package, which failed to load (${a.message}). Install it, or switch this connection to static accessKeyId/secretAccessKey credentials.`)}try{var h,i;let a;f=await (h=e({profile:g})(),i=`Resolving AWS profile "${g}" timed out after ${d/1e3}s`,Promise.race([h,new Promise((b,c)=>{a=setTimeout(()=>c(Error(i)),d)})]).finally(()=>clearTimeout(a)))}catch(a){throw Error(`Could not resolve AWS credentials for profile "${g}": ${a.message}. If this profile uses IAM Identity Center, run: aws sso login --profile ${g}`)}if(!f?.accessKeyId||!f?.secretAccessKey)throw Error(`AWS profile "${g}" resolved without usable credentials. Check that the profile exists in ~/.aws/config and grants Bedrock access.`);return c?.debug?.("BEDROCK",`Resolved credentials from AWS profile "${g}"`+(f.expiration?` (expire ${new Date(f.expiration).toISOString()})`:"")),{accessKeyId:f.accessKeyId,secretAccessKey:f.secretAccessKey,sessionToken:f.sessionToken||void 0,expiration:f.expiration?new Date(f.expiration).getTime():null}}function Q(a,b){return a.expiration?a.expiration-3e5:b+6e4}function R(a,b,c,d){return{accessKeyId:a.accessKeyId,secretAccessKey:a.secretAccessKey,sessionToken:a.sessionToken,region:b,mode:c,expiresAt:d}}async function S(a,{log:b=null,loadCredentialProviders:d=()=>Promise.resolve().then(c.t.bind(c,72271,19)),now:e=()=>Date.now(),resolveTimeoutMs:f=1e4}={}){let g,h=(a?.providerSpecificData||{}).profile?"profile":H,i=O(a);if(h===H)return R(function(a){let b=a?.providerSpecificData||{},c=b.accessKeyId,d=a?.apiKey;if(!c||!d)throw Error("Bedrock static credentials are incomplete. Set the AWS secret access key as the provider API key and providerSpecificData.accessKeyId to the AWS access key id, or set providerSpecificData.profile to use a local AWS profile instead.");if(c.startsWith("ASIA")&&!b.sessionToken)throw Error("This looks like a temporary AWS access key (ASIA…) but no sessionToken was provided. Add providerSpecificData.sessionToken, or use providerSpecificData.profile so credentials are resolved and refreshed automatically.");return{accessKeyId:c,secretAccessKey:d,sessionToken:b.sessionToken||void 0,expiration:null}}(a),i,h,null);let j=`profile:${a.providerSpecificData.profile}`,k=e(),l=N.get(j);if(l?.promise){let a=await l.promise;return R(a,i,h,Q(a,k))}if(l&&l.expiresAt>k)return R(l.credentials,i,h,l.expiresAt);let m=P(a,d,b,f);N.set(j,{promise:m});try{g=await m}catch(a){throw N.delete(j),a}let n=Q(g,k);return N.set(j,{credentials:{accessKeyId:g.accessKeyId,secretAccessKey:g.secretAccessKey,sessionToken:g.sessionToken},expiresAt:n}),R(g,i,h,n)}let T=new TextDecoder,U=Uint32Array.from({length:256},(a,b)=>{let c=b;for(let a=0;a<8;a++)c=c>>>1^(1&c?0xedb88320:0);return c>>>0});function V(a){let b=0xffffffff;for(let c of a)b=U[(b^c)&255]^b>>>8;return(0xffffffff^b)>>>0}function W(a){return encodeURIComponent(a).replace(/[!'()*]/g,a=>`%${a.charCodeAt(0).toString(16).toUpperCase()}`)}function X(a){return e.createHash("sha256").update(a??"","utf8").digest("hex")}var Y=c(4905);class Z extends f.H{constructor(a="bedrock"){super(a,g.xq[a]||{})}buildUrl(a,b,c=0,d=null){let e=O(d);if(!K.test(String(a||"")))throw Error(`Bedrock model ${JSON.stringify(a)} is not an Anthropic model. This provider speaks the Anthropic Messages format, so it supports ids like "us.anthropic.claude-sonnet-4-5-20250929-v1:0". Nova, Llama, Titan and Mistral on Bedrock use different request and response shapes and are not supported yet.`);return`https://bedrock-runtime.${e}.amazonaws.com/model/${W(a)}/${b?"invoke-with-response-stream":"invoke"}`}transformRequest(a,b,c,d){let{model:e,stream:f,...g}=b||{};return{...g,anthropic_version:"bedrock-2023-05-31"}}buildHeaders(a,b=!0){return{"Content-Type":"application/json",Accept:b?"application/vnd.amazon.eventstream":"application/json"}}async execute({model:a,body:b,stream:c,credentials:d,signal:f,log:g,proxyOptions:h=null}){let i=await S(d,{log:g}),j=this.buildUrl(a,c,0,d),k=this.transformRequest(a,b,c,d),m=JSON.stringify(k),n=function({method:a,url:b,headers:c={},body:d="",region:f,service:g,credentials:h,doubleEncodePath:i=!0,date:j=new Date}){var k;let l,m,{accessKeyId:n,secretAccessKey:o,sessionToken:p}=h||{};if(!n||!o)throw Error("AWS SigV4 requires both accessKeyId and secretAccessKey");let q=new URL(b);if(q.search)throw Error(`AWS SigV4 signing does not support query strings (got ${JSON.stringify(q.search)}). Move the parameters into the request body, or add proper query canonicalisation first.`);let{amzDate:r,dateStamp:s}={amzDate:l=j.toISOString().replace(/[-:]/g,"").replace(/\.\d{3}/,""),dateStamp:l.slice(0,8)},t=X(d),u={...c,host:q.host,"x-amz-date":r,...p?{"x-amz-security-token":p}:{}},{canonicalHeaders:v,signedHeaders:w}={canonicalHeaders:(m=Object.entries(u).filter(([,a])=>null!=a).map(([a,b])=>[a.toLowerCase(),String(b).trim().replace(/\s+/g," ")]).sort(([a],[b])=>a<b?-1:+(a>b))).map(([a,b])=>`${a}:${b}
|
|
18
|
+
`).join(""),signedHeaders:m.map(([a])=>a).join(";")},x=[a.toUpperCase(),(k=q.pathname,!i?k||"/":(k||"/").split("/").map(a=>W(a)).join("/")||"/"),"",v,w,t].join("\n"),y=`${s}/${f}/${g}/${G}`,z=[F,r,y,X(x)].join("\n"),A=[s,f,g,G].reduce((a,b)=>e.createHmac("sha256",a).update(b,"utf8").digest(),`AWS4${o}`),B=e.createHmac("sha256",A).update(z,"utf8").digest("hex");return{...u,Authorization:`${F} Credential=${n}/${y}, SignedHeaders=${w}, Signature=${B}`}}({method:"POST",url:j,headers:this.buildHeaders(d,c),body:m,region:i.region,service:"bedrock",credentials:i}),o=await (0,l.proxyAwareFetch)(j,{method:"POST",headers:n,body:m,signal:f,redirect:"error"},h);return o.ok&&c&&o.body?{response:new Response(this.eventStreamToClaudeSse(o.body,g),{status:o.status,statusText:o.statusText,headers:{...Y.pb}}),url:j,headers:n,transformedBody:k}:{response:o,url:j,headers:n,transformedBody:k}}eventStreamToClaudeSse(a,b=null){let c=a.getReader(),d=new TextEncoder,e=new TextDecoder,f=new Uint8Array(0),g=!1,h=!1,i=!1;return new ReadableStream({start:async a=>{let j=(b,c)=>{h||a.enqueue(d.encode(`event: ${b}
|
|
19
|
+
data: ${JSON.stringify(c)}
|
|
20
|
+
|
|
21
|
+
`))},k=(a,c)=>!i&&(i=!0,b?.error?.("BEDROCK",`${a}: ${c}`),j("error",{type:"error",error:{type:a,message:c}}),!1),l=()=>{for(;f.byteLength>=12;){let a,b,c=new DataView(f.buffer,f.byteOffset,f.byteLength);if(c.getUint32(8,!1)!==V(f.subarray(0,8)))return k("api_error","Bedrock EventStream prelude CRC mismatch");let d=c.getUint32(0,!1),h=c.getUint32(4,!1);if(d<16||d>M.maxMessageBytes||h>M.maxHeadersBytes||h>d-16)return k("api_error","Bedrock EventStream frame bounds are invalid");if(f.byteLength<d)break;let i=f.slice(0,d);f=f.slice(d);try{a=function(a,b=M){let c=b.maxMessageBytes??M.maxMessageBytes,d=b.maxHeadersBytes??M.maxHeadersBytes;if(!(a instanceof Uint8Array)||a.byteLength<16)throw Error("AWS EventStream frame is shorter than 16 bytes");let e=new DataView(a.buffer,a.byteOffset,a.byteLength),f=e.getUint32(0,!1),g=e.getUint32(4,!1);if(f!==a.byteLength)throw Error("AWS EventStream frame length does not match its prelude");if(f>c||g>d||g>f-16)throw Error("AWS EventStream frame bounds are invalid");if(e.getUint32(8,!1)!==V(a.subarray(0,8)))throw Error("AWS EventStream prelude CRC mismatch");if(e.getUint32(f-4,!1)!==V(a.subarray(0,f-4)))throw Error("AWS EventStream message CRC mismatch");let h=Object.create(null),i=new Set,j=12,k=12+g,l=a=>{if(j+a>k)throw Error("AWS EventStream header exceeds its declared bounds")};for(;j<k;){l(1);let b=a[j++];l(b+1);let c=T.decode(a.subarray(j,j+b));if(j+=b,i.has(c))throw Error(`AWS EventStream contains duplicate header: ${c}`);i.add(c);let d=a[j++];if(0===d||1===d)h[c]=0===d;else if(2===d)l(1),h[c]=e.getInt8(j),j+=1;else if(3===d)l(2),h[c]=e.getInt16(j,!1),j+=2;else if(4===d)l(4),h[c]=e.getInt32(j,!1),j+=4;else if(5===d||8===d)l(8),j+=8;else if(6===d||7===d){l(2);let b=e.getUint16(j,!1);j+=2,l(b);let f=a.subarray(j,j+b);h[c]=7===d?T.decode(f):f,j+=b}else if(9===d)l(16),j+=16;else throw Error(`AWS EventStream header ${c} has unknown type ${d}`)}let m=a.subarray(k,f-4);if(0===m.byteLength)return{headers:h,payload:null};let n=T.decode(m);if(!n.trim())return{headers:h,payload:null};try{return{headers:h,payload:JSON.parse(n)}}catch(a){throw Error(`AWS EventStream payload is not valid JSON (${a.message})`)}}(i)}catch(a){return k("api_error",a.message)}let l=a.headers[":message-type"];if("exception"===l||"error"===l)return k(a.headers[":exception-type"]||a.headers[":error-code"]||"api_error",a.payload?.message||a.payload?.Message||a.headers[":error-message"]||`Bedrock returned an EventStream ${l}`);if("chunk"!==a.headers[":event-type"])continue;let m=a.payload?.bytes;if(!m)return k("api_error","Bedrock chunk frame carried no payload bytes");try{b=JSON.parse(e.decode(Buffer.from(m,"base64")))}catch(a){return k("api_error",`Bedrock chunk was not valid JSON (${a.message})`)}if(!b?.type)return k("api_error","Bedrock chunk decoded to an event with no type");j(b.type,b),b.type===L&&(g=!0)}return!0};for(;;){let a;try{a=await c.read()}catch(a){k("api_error",`Bedrock stream read failed: ${a.message}`);break}if(a.done)break;let b=a.value;if(b?.byteLength){if(0===f.byteLength)f=b;else{let a=new Uint8Array(f.byteLength+b.byteLength);a.set(f),a.set(b,f.byteLength),f=a}if(!l())break}}h||(!i&&f.byteLength?k("api_error","Bedrock stream ended mid-frame"):i||g||k("api_error",`Bedrock stream ended before ${L}`),a.close()),await c.cancel().catch(a=>b?.debug?.("BEDROCK",`upstream cancel failed: ${a.message}`)),c.releaseLock?.()},cancel:a=>(h=!0,c.cancel(a))})}}var $=c(9562);class _ extends f.H{constructor(){super("gemini-cli",g.xq["gemini-cli"])}buildUrl(a,b,c=0){return`${this.config.baseUrl}:${b?"streamGenerateContent?alt=sse":"generateContent"}`}buildHeaders(a,b=!0){return{"Content-Type":"application/json",Authorization:`Bearer ${a.accessToken}`,"User-Agent":(0,i.sX)(this._currentModel),"X-Goog-Api-Client":i.go,Accept:b?"text/event-stream":"application/json"}}transformRequest(a,b,c,d){return(this._currentModel=a,b&&(delete b.stream,delete b.stream_options),b&&b.request&&b.model)?b:{project:d?.projectId||b?.project,model:a,request:b}}parseError(a,b){let c=super.parseError(a,b);if(429!==a.status||!b)return c;let{resetsAtMs:d,retryAfter:e}=(0,$.k)(b);return e&&(c.retryAfter=e),d&&(c.resetsAtMs=d),c}async refreshCredentials(a,b){if(!a.refreshToken)return null;try{let c=await fetch(i.NA.google.token,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams({grant_type:"refresh_token",refresh_token:a.refreshToken,client_id:this.config.clientId,client_secret:this.config.clientSecret})});if(!c.ok)return null;let d=await c.json();return b?.info?.("TOKEN","Gemini CLI refreshed"),{accessToken:d.access_token,refreshToken:d.refresh_token||a.refreshToken,expiresIn:d.expires_in,projectId:a.projectId}}catch(a){return b?.error?.("TOKEN",`Gemini CLI refresh error: ${a.message}`),null}}}var aa=c(60290),ab=c(97579),ac=c(86711),ad=c(26502),ae=c(19956),af=c(45894),ag=c(67677),ah=c(55511);class ai extends f.H{constructor(){super("github",g.xq.github),this.knownCodexModels=new Set,this.autoSessions=new Map}isClaudeModel(a){return/claude/i.test(a||"")}buildUrl(a,b,c=0){return this.config.baseUrl}buildHeaders(a,b=!0){let c=a.copilotToken||a.accessToken,d=a.copilotSessionToken?i.x0.AUTO_API_VERSION:i.x0.API_VERSION,e={Authorization:`Bearer ${c}`,"Content-Type":"application/json","copilot-integration-id":"vscode-chat","editor-version":`vscode/${i.x0.VSCODE_VERSION}`,"editor-plugin-version":`copilot-chat/${i.x0.COPILOT_CHAT_VERSION}`,"user-agent":i.x0.USER_AGENT,"openai-intent":"conversation-panel","x-github-api-version":d,"x-request-id":ah.randomUUID?.()||`${Date.now()}-${Math.random().toString(36).slice(2)}`,"x-vscode-user-agent-library-version":"electron-fetch","X-Initiator":"user","anthropic-version":h.b8,Accept:b?"text/event-stream":"application/json"};return a.copilotSessionToken&&(e["Copilot-Session-Token"]=a.copilotSessionToken),e}isAutoModel(a){return"auto"===String(a||"").toLowerCase()}getAutoSessionCacheKey(a,b){let c=a.connectionId||a.providerSpecificData?.githubLogin||a.accessToken||a.copilotToken||"github",d=ah.createHash("sha256").update(String(c)).digest("hex");return`${d}:${b||"unknown"}`}extractAutoPrompt(a){let b=Array.isArray(a?.messages)?a.messages:[];for(let a=b.length-1;a>=0;a--){let c=b[a];if(c?.role==="user"){if("string"==typeof c.content)return c.content.trim();if(Array.isArray(c.content))return c.content.filter(a=>a?.type==="text"||a?.type==="input_text").map(a=>a.text||"").join("\n").trim()}}return""}hasAutoImageInput(a){return(Array.isArray(a?.messages)?a.messages:[]).some(a=>Array.isArray(a?.content)&&a.content.some(a=>a?.type==="image_url"||a?.type==="input_image"))}async fetchAutoDecision({body:a,credentials:b,signal:c,proxyOptions:d}){let e=this.extractAutoPrompt(a);if(!e)throw Error("GitHub Copilot Auto requires a user prompt");let f=this.buildHeaders(b,!1);f["x-github-api-version"]=i.x0.AUTO_API_VERSION;let g={prompt:e};this.hasAutoImageInput(a)&&(g.has_image=!0);let h=new AbortController,j=setTimeout(()=>h.abort(),i.x0.AUTO_TIMEOUT_MS),k=c?AbortSignal.any([c,h.signal]):h.signal;try{return{response:await (0,l.proxyAwareFetch)(this.config.autoUrl,{method:"POST",headers:f,body:JSON.stringify(g),signal:k},d),url:this.config.autoUrl,headers:f,transformedBody:g}}finally{clearTimeout(j)}}async resolveAutoModel({body:a,credentials:b,providerSessionId:c,signal:d,log:e,proxyOptions:f}){let g=this.getAutoSessionCacheKey(b,c),h=this.autoSessions.get(g),j=Date.now();for(let[a,b]of this.autoSessions)b.expiresAtMs<=j&&this.autoSessions.delete(a);let k=this.hasAutoImageInput(a);if(h?.expiresAtMs-j>i.x0.AUTO_SESSION_REFRESH_WINDOW_MS&&(!k||h.supportsVision))return h;let l=await this.fetchAutoDecision({body:a,credentials:b,signal:d,proxyOptions:f});if(!l.response.ok)return{errorResult:l};let m=await l.response.json(),n=m?.selected_model?.id;if(!n||!m?.session_token)throw Error("GitHub Copilot Auto returned no selected model or session token");let o=Number.isFinite(Number(m.expires_at))?1e3*Number(m.expires_at):j+864e5,p={model:n,sessionToken:m.session_token,expiresAtMs:o,supportsVision:m.selected_model?.capabilities?.supports?.vision===!0};return this.autoSessions.set(g,p),e?.info?.("GITHUB",`Auto selected ${n}`),p}sanitizeMessagesForChatCompletions(a){if(!a?.messages)return a;let b={...a};return b.messages=a.messages.map(a=>{if(!a.content||"string"==typeof a.content)return a;if(Array.isArray(a.content)){let b=a.content.map(a=>{if("text"===a.type||"image_url"===a.type)return a;let b=a.text||a.content||JSON.stringify(a);return{type:"text",text:"string"==typeof b?b:JSON.stringify(b)}}).filter(a=>""!==a.text);return{...a,content:b.length>0?b:null}}return a}),b}requiresMaxCompletionTokens(a){return/gpt-5|o[134]-/i.test(a)}transformRequest(a,b,c,d){let e={...b,model:a};return this.requiresMaxCompletionTokens(a)&&void 0!==e.max_tokens&&(e.max_completion_tokens=e.max_tokens,delete e.max_tokens),"none"===e.reasoning_effort&&delete e.reasoning_effort,t("github",a,e),e}supportsResponsesEndpoint(a){let b=(a||"").toLowerCase();return!(b.includes("gemini")||b.includes("claude"))}async execute(a){let b=a,c=null;if(this.isAutoModel(a.model)){let d=await this.resolveAutoModel(a);if(d.errorResult)return d.errorResult;c=d.model,b={...a,model:d.model,body:{...a.body,model:d.model},credentials:{...a.credentials,copilotSessionToken:d.sessionToken}}}let{model:d,log:e}=b,f=b=>c?{...b,resolvedModel:c,requestedModel:a.model}:b;if(this.isClaudeModel(d))return e?.debug("GITHUB",`Using /v1/messages route for ${d}`),f(await this.executeWithMessagesEndpoint(b));if(this.knownCodexModels.has(d)&&this.supportsResponsesEndpoint(d))return e?.debug("GITHUB",`Using cached /responses route for ${d}`),f(await this.executeWithResponsesEndpoint(b));let g={...b,body:this.sanitizeMessagesForChatCompletions(b.body)},h=await super.execute({...g,proxyOptions:a.proxyOptions||null});if(h.response.status===aa.gx.BAD_REQUEST&&this.supportsResponsesEndpoint(d)){let a=await h.response.clone().text();if(a.includes("not accessible via the /chat/completions endpoint")||a.includes("The requested model is not supported"))return e?.warn("GITHUB",`Model ${d} requires /responses. Switching...`),this.knownCodexModels.add(d),f(await this.executeWithResponsesEndpoint(b))}return f(h)}async executeWithResponsesEndpoint({model:a,body:b,stream:c,credentials:d,signal:e,log:f,proxyOptions:g=null}){let h=this.config.responsesUrl,i=this.buildHeaders(d,c),j=(0,ab.h)(a,b,c,d);f?.debug("GITHUB","Sending translated request to /responses");let k=await (0,l.proxyAwareFetch)(h,{method:"POST",headers:i,body:JSON.stringify(j),signal:e},g);if(!k.ok)return{response:k,url:h,headers:i,transformedBody:j};let m=(0,ad.Ws)("openai-responses");m.model=a;let n=new TextDecoder,o="",p=new TransformStream({async transform(a,b){let d=(o+=n.decode(a,{stream:!0})).split("\n");for(let a of(o=d.pop()||"",d)){let d=a.trim();if(!d)continue;let e=(0,af.tV)(d);if(!e)continue;if(e.done&&!0===c){b.enqueue(new TextEncoder().encode(Y.$U));continue}let f=(0,ac.v)(e,m);if(f){let a=(0,af.v8)(f,"openai");b.enqueue(new TextEncoder().encode(a))}}},flush(a){if(o.trim()){let b=(0,af.tV)(o.trim());if(b&&!b.done){let c=(0,ac.v)(b,m);c&&a.enqueue(new TextEncoder().encode((0,af.v8)(c,"openai")))}}}});return k.body?{response:new Response(k.body.pipeThrough(p),{status:k.status,statusText:k.statusText,headers:k.headers}),url:h,headers:i,transformedBody:j}:{response:new Response("",{status:k.status,headers:k.headers}),url:h,headers:i,transformedBody:j}}async executeWithMessagesEndpoint({model:a,body:b,stream:c,credentials:d,signal:e,log:f,proxyOptions:g=null}){let h=this.config.messagesUrl,i=this.buildHeaders(d,c),j=(0,ad.GH)(ae.h.OPENAI,ae.h.CLAUDE,a,b,!0,d,"github"),k=j._toolNameMap;delete j._toolNameMap;let m=(0,q.getCapabilitiesForModel)("github",a).maxPrompt,n=m*(this.config.countTokensPreflightRatio||0);if(Number.isFinite(m)&&m>0&&(0,ag.bC)(j)>=n)try{let b=AbortSignal.timeout(this.config.countTokensTimeoutMs),c=e?AbortSignal.any([e,b]):b,h=await (0,l.proxyAwareFetch)(this.config.countTokensUrl,{method:"POST",headers:this.buildHeaders(d,!1),body:JSON.stringify(j),signal:c},g);if(h.ok){let b=Number((await h.json())?.input_tokens);if(Number.isFinite(b)&&b>m){let c={error:{message:`Prompt is ${b} tokens; maximum for ${a} is ${m}.`,type:"invalid_request_error",param:"messages",code:"context_length_exceeded"}};return{response:new Response(JSON.stringify(c),{status:aa.gx.BAD_REQUEST,headers:{"Content-Type":"application/json"}}),url:this.config.countTokensUrl,headers:i,transformedBody:j}}}else f?.warn?.("GITHUB",`Prompt token preflight returned ${h.status}; continuing`)}catch(a){if(e?.aborted)throw a;f?.warn?.("GITHUB",`Prompt token preflight failed: ${a?.message||a}; continuing`)}f?.debug("GITHUB","Sending translated request to /v1/messages");let o=await (0,l.proxyAwareFetch)(h,{method:"POST",headers:i,body:JSON.stringify(j),signal:e},g);if(!o.ok)return{response:o,url:h,headers:i,transformedBody:j};let p=(0,ad.Ws)(ae.h.CLAUDE);p.model=a,k&&(p.toolNameMap=k);let r=new TextDecoder,s="",t=(a,b)=>{for(let c of b)a.enqueue(new TextEncoder().encode((0,af.v8)(c,"openai")))},u=new TransformStream({async transform(a,b){let d=(s+=r.decode(a,{stream:!0})).split("\n");for(let a of(s=d.pop()||"",d)){let d=a.trim();if(!d)continue;let e=(0,af.tV)(d);if(e){if(e.done&&!0===c){b.enqueue(new TextEncoder().encode(Y.$U));continue}t(b,(0,ad.Y8)(ae.h.CLAUDE,ae.h.OPENAI,e,p))}}},flush(a){if(s.trim()){let b=(0,af.tV)(s.trim());b&&!b.done&&t(a,(0,ad.Y8)(ae.h.CLAUDE,ae.h.OPENAI,b,p))}}});return o.body?{response:new Response(o.body.pipeThrough(u),{status:o.status,statusText:o.statusText,headers:o.headers}),url:h,headers:i,transformedBody:j}:{response:new Response("",{status:o.status,headers:o.headers}),url:h,headers:i,transformedBody:j}}async refreshCopilotToken(a,b,c=null){try{let d=await (0,l.proxyAwareFetch)("https://api.github.com/copilot_internal/v2/token",{headers:{Authorization:`token ${a}`,"User-Agent":i.x0.USER_AGENT,"Editor-Version":`vscode/${i.x0.VSCODE_VERSION}`,"Editor-Plugin-Version":`copilot-chat/${i.x0.COPILOT_CHAT_VERSION}`,Accept:"application/json","x-github-api-version":i.x0.API_VERSION}},c);if(!d.ok){let a=await d.text();return b?.error?.("TOKEN",`Copilot token refresh failed: ${d.status} ${a}`),null}let e=await d.json();return b?.info?.("TOKEN","Copilot token refreshed"),{token:e.token,expiresAt:e.expires_at}}catch(a){return b?.error?.("TOKEN",`Copilot refresh error: ${a.message}`),null}}async refreshGitHubToken(a,b,c=null){try{let d={grant_type:"refresh_token",refresh_token:a,client_id:this.config.clientId};this.config.clientSecret&&(d.client_secret=this.config.clientSecret);let e=await (0,l.proxyAwareFetch)(i.NA.github.token,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams(d)},c);if(!e.ok)return null;let f=await e.json();return b?.info?.("TOKEN","GitHub token refreshed"),{accessToken:f.access_token,refreshToken:f.refresh_token||a,expiresIn:f.expires_in}}catch(a){return b?.error?.("TOKEN",`GitHub refresh error: ${a.message}`),null}}async refreshCredentials(a,b,c=null){let d=await this.refreshCopilotToken(a.accessToken,b,c);if(!d&&a.refreshToken){let e=await this.refreshGitHubToken(a.refreshToken,b,c);if(e?.accessToken)return(d=await this.refreshCopilotToken(e.accessToken,b,c))?{...e,copilotToken:d.token,copilotTokenExpiresAt:d.expiresAt}:e}return d?{accessToken:a.accessToken,refreshToken:a.refreshToken,copilotToken:d.token,copilotTokenExpiresAt:d.expiresAt}:null}needsRefresh(a){if(!a.copilotToken)return!0;if(a.copilotTokenExpiresAt){let b=a.copilotTokenExpiresAt;if("number"==typeof b&&b<1e12?b*=1e3:"string"==typeof b&&(b=new Date(b).getTime()),b-Date.now()<3e5)return!0}return super.needsRefresh(a)}}class aj extends f.H{constructor(){super("iflow",g.xq.iflow)}generateUUID(){return ah.randomUUID()}createIFlowSignature(a,b,c,d){if(!d)return"";let e=`${a}:${b}:${c}`,f=ah.createHmac("sha256",d);return f.update(e),f.digest("hex")}buildHeaders(a,b=!0){let c=`session-${this.generateUUID()}`,d=Date.now(),e=this.config.headers["User-Agent"]||"iFlow-Cli",f=a.apiKey||a.accessToken||"",g=this.createIFlowSignature(e,c,d,f),h={"Content-Type":"application/json",...this.config.headers,"session-id":c,"x-iflow-timestamp":d.toString(),"x-iflow-signature":g};return a.apiKey&&(h.Authorization=`Bearer ${a.apiKey}`),b&&(h.Accept="text/event-stream"),h}buildUrl(a,b,c=0,d=null){return this.config.baseUrl}transformRequest(a,b,c,d){return c&&b.messages&&!b.stream_options&&(b.stream_options={include_usage:!0}),b}}var ak=c(18851),al=c(21362),am=c(18129);class an extends f.H{constructor(a="qoder",b=null){super(a,b||g.xq[a]||g.xq.qoder)}getProtocolProfile(){return this.config.protocolProfile}buildUrl(){return this.config?.baseUrl||""}async execute({model:a,body:b,stream:c,credentials:d,signal:e,log:f,proxyOptions:g=null}){let h=this.config?.timeoutMs||null;return(0,ak.TE)({model:a,body:b,credentials:d,signal:e,log:f,proxyOptions:g,timeoutMs:h,profile:this.getProtocolProfile()})}needsRefresh(a){return(0,am.fp)(this.provider,a)}async refreshCredentials(a,b,c=null){return a?.refreshToken?(0,al.Ms)(a.refreshToken,this.getProtocolProfile(),b):null}}var ao=c(3148);c(37840);var ap=c(8730),aq=c(94755),ar=c(85640);let as=new Set(["assistantResponseEvent","reasoningContentEvent","codeEvent","toolUseEvent","messageStopEvent","metadataEvent","MetadataEvent","contextUsageEvent","meteringEvent","metricsEvent"]),at=new TextEncoder,au=new TextDecoder,av=Uint32Array.from({length:256},(a,b)=>{let c=b;for(let a=0;a<8;a++)c=c>>>1^(1&c?0xedb88320:0);return c>>>0}),aw=Object.freeze({tool:"Retry the previous response because its Kiro tool_call wrapper was malformed. If you use the wrapper tool named tool_call, its input must contain a non-empty name and an arguments field.",ellipsis:"Retry the previous response because it ended with only an ellipsis. Return the complete final answer, not only ... or ….",short_final:"Retry the previous response because its final only announced a future action. Complete the check now and return the result or a concrete blocker."}),ax=/^(?:(?:(?:現在|接著|接下來|下一步)[,,::\s]*(?:我(?:只)?(?:會|要|將|再)?\s*)?|我只再)(?:補|查|確認|驗證|追(?:查|蹤)?|繼續|檢查|測試)|我(?:會|要|將)(?:再|重新)?(?:補(?:齊|查)?|抓取|查(?:詢)?|確認|驗證|追(?:查|蹤)?|繼續|檢查|測試)|(?:(?:next|now|then)\b[\s,:-]*)?(?:i(?:'ll| will| am going to| need to)|let me)\s+(?:verify|check|confirm|validate|investigate|trace|continue|follow up|test)\b)/iu,ay=/^目前證據顯示[\s\S]{1,700}[。.!?;;]\s*最後補查\s+504\s+access\s+log[,,]\s*確認\s+host[//]路徑與是否為集中流量[。.!]?$/iu,az=/^(?:(?:next|now|then)\b[\s,:-]*)?(?:i(?:'ll| will| am going to| need to)|let me)\s+(?:verify|check|confirm|validate|investigate|trace|continue|follow up|test)\b/iu,aA=/(?:[:;\n]|[.!?]\s+\S|\b(?:status|checksum|response|deployment)\s+(?:is|are|was|were|matches?|equals?|returned)\b)/iu,aB=/^(?:(?:現在|接著|接下來|下一步)[,,::\s]*(?:我(?:只)?(?:會|要|將|再)?\s*)?|我只再|我(?:會|要|將)(?:再|重新)?)(?:補|抓取|查|確認|驗證|追|繼續|檢查|測試)/u,aC=/(?:[。!?]\s*\S|(?:版本|狀態|回應|結果|部署|校驗碼)(?:是|為|等於|顯示))/u,aD=/(?:請(?:你|先)|你(?:先|需要|可以|提供|確認|批准|允許)|等待(?:你|使用者)|等你|核准|同意|授權|\b(?:after|when|once)\s+you\b|\byour\s+(?:approval|confirmation|permission|input)\b|\bwait(?:ing)?\s+for\s+you\b|\bplease\s+(?:approve|confirm|provide|send)\b)/iu,aE=/(?:已(?:經)?完成|完成(?:了|驗證|確認)|修復完成|確認無誤|驗證(?:完成|通過)|測試(?:均)?通過|結論|總結|\b(?:done|completed|fixed|verified|confirmed|passed|in conclusion|summary)\b|\b(?:is|are) complete\b)/iu,aF=/(?:顯示|發現|因此|成功|失敗|正常|無錯誤|沒有錯誤|\b(?:found|shows?|showed|because|therefore|succeeded|failed|healthy|green|no errors?)\b)/iu;function aG(a){let b=0xffffffff;for(let c of a)b=av[(b^c)&255]^b>>>8;return(0xffffffff^b)>>>0}function aH(a,b){let c=Number.parseInt(process.env?.[a]||"",10);return Number.isFinite(c)&&c>0?c:b}function aI(a,b){let c=new Uint8Array(b),d=0;for(let b of a)c.set(b,d),d+=b.byteLength;return c}function aJ(a){let b=Error(a?.message||a||"Request aborted");return b.name="AbortError",b}async function aK(a,b,c,d){let e,f;if(b?.aborted)throw aJ(b.reason);let g=new Promise((a,b)=>{e=setTimeout(()=>b(Error(d)),c)}),h=new Promise((a,c)=>{f=()=>c(aJ(b.reason)),b?.addEventListener("abort",f,{once:!0})});try{return await Promise.race([a.read(),g,h])}finally{clearTimeout(e),b?.removeEventListener?.("abort",f)}}async function aL(a,b,c,d){let e=a?.body?.getReader?.();if(!e)return"";let f=[],g=0;try{for(;g<c;){let{done:a,value:h}=await aK(e,b,d,"Kiro retry error body stalled");if(a)break;let i=c-g,j=h.byteLength>i?h.slice(0,i):h;if(f.push(j),g+=j.byteLength,h.byteLength>i)break}}finally{await e.cancel("bounded Kiro retry error body").catch(()=>{})}return au.decode(aI(f,g))}function aM(a){let b=String(a||"").trim().replace(/([a-z])([A-Z])/g,"$1_$2").toLowerCase().replace(/[\s-]+/g,"_");return["endturn","end_turn","stop","stop_sequence"].includes(b)?"end_turn":["tooluse","tool_use","tool_calls"].includes(b)?"tool_use":["maxtokens","max_tokens","max_output_tokens","length"].includes(b)?"max_tokens":b||null}let aN=new Set(["model_context_window_exceeded","max_tokens"]);function aO(a,b){return["malformed_model_output","invalid_model_output"].includes(a)?"retryable_protocol_failure":["cancelled","pause_turn","model_context_window_exceeded"].includes(a)?"terminal_incomplete":"refusal"===a||/(?:content.*filter|guardrail|safety|policy|blocked)/u.test(a)?"terminal_refusal":"max_tokens"===a?b?"terminal_incomplete":"length":a&&!["end_turn","tool_use"].includes(a)?"unknown_failure":b||"tool_use"===a?"tool_use":a&&"end_turn"!==a?"unknown_failure":"complete"}function aP(a,b){if(!b)return a;if(!a)return b;let c=a=>{let b=aO(a,!1);return"terminal_refusal"===b?6:"terminal_incomplete"===b?5:"unknown_failure"===b?4:"retryable_protocol_failure"===b?3:"length"===b?2:1};return c(b)>c(a)?b:a}function aQ(a){return["...","…"].includes(String(a||"").trim())}function aR(a,b,c){return at.encode(`data: ${JSON.stringify({error:{message:b,type:"upstream_error",code:a,...c?{details:c}:{}}})}
|
|
22
|
+
|
|
23
|
+
data: [DONE]
|
|
24
|
+
|
|
25
|
+
`)}class aS extends f.H{constructor(){super("kiro",g.xq.kiro)}parseError(a,b){if(b)try{let c=JSON.parse(b),d=c?.message||c?.error||"",e="string"==typeof c?.reason?c.reason:"";if(d&&e)return{status:a.status,message:`${d} (${e})`}}catch{}return super.parseError(a,b)}buildHeaders(a,b=!0,c=""){let d={...this.config.headers,...(0,ap.d)(a),"Amz-Sdk-Request":"attempt=1; max=3","Amz-Sdk-Invocation-Id":(0,aq.A)(),"x-amzn-bedrock-cache-control":"enable","anthropic-beta":"prompt-caching-2024-07-31"};c.includes("://codewhisperer.")?d["X-Amz-Target"]=ao.rx:delete d["X-Amz-Target"];let e=a?.providerSpecificData?.authMethod,f="api_key"===e,g=a?.apiKey||(f?a?.accessToken:null);return f&&g?(d.Authorization=`Bearer ${g}`,d.TokenType="API_KEY"):a?.accessToken&&(d.Authorization=`Bearer ${a.accessToken}`,"external_idp"===e&&(d.TokenType="EXTERNAL_IDP")),d}getOrderedBaseUrls(a){let b=this.getBaseUrls(),c=(a?.providerSpecificData?.region||"us-east-1").trim(),d=a=>c&&"us-east-1"!==c&&a.includes("amazonaws.com")?a.replace(/([a-z]+)\.[a-z0-9-]+\.amazonaws\.com/,`$1.${c}.amazonaws.com`):a;return[d("https://q.us-east-1.amazonaws.com/generateAssistantResponse"),d("https://codewhisperer.us-east-1.amazonaws.com/generateAssistantResponse"),...b.filter(a=>!a.includes("amazonaws.com"))]}buildUrl(a,b,c=0,d=null){let e=this.getOrderedBaseUrls(d);return e[c]||e[0]||this.config.baseUrl}getFallbackCount(a=null){return this.getOrderedBaseUrls(a).length||1}shouldRetry(a,b,c=null){let d=b+1<this.getFallbackCount(c);return super.shouldRetry(a,b,c)||d&&ao.QR.has(a)}transformRequest(a,b,c,d){return b}async execute(a){let b=await super.execute(a);return b?.response?.ok&&this.attachIntegrityGate(b,a),b}attachIntegrityGate(a,b){let c,d=new AbortController,e=aH("KIRO_TOOL_CALL_REPAIR_BUFFER_MAX_BYTES",8388608),f=aH("KIRO_TOOL_CALL_REPAIR_TIMEOUT_MS",aa.Z1),g=aH("KIRO_TOOL_CALL_REPAIR_TTFT_TIMEOUT_MS",f),h=aH("KIRO_TOOL_CALL_REPAIR_STALL_TIMEOUT_MS",f),i=b.credentials?.providerSpecificData?.kiroToolCallRepair!==!1&&"false"!==process.env.KIRO_TOOL_CALL_REPAIR,j=()=>d.abort(b.signal?.reason);b.signal?.addEventListener("abort",j,{once:!0});let k=!0,l=new ReadableStream({start:async f=>{let l=()=>{if(k)try{f.enqueue(at.encode(": kiro-validation\n\n"))}catch{k=!1}};l(),c=setInterval(l,1e4);try{let c=await this.runIntegrityRecovery(a.response,b,{signal:d.signal,maxBytes:e,ttftTimeoutMs:g,stallTimeoutMs:h,repairEnabled:i});if(d.signal.aborted)throw aJ(d.signal.reason);f.enqueue(c),f.close()}catch(a){k&&"AbortError"===a.name?f.error(a):k&&"AbortError"!==a.name&&(f.enqueue(aR("kiro_integrity_gate_failed",a.message||"Kiro integrity validation failed")),f.close())}finally{k=!1,clearInterval(c),b.signal?.removeEventListener?.("abort",j)}},cancel(a){k=!1,clearInterval(c),d.abort(a||"client cancelled")}});a.response=new Response(l,{status:a.response.status,statusText:a.response.statusText,headers:{...Y.pb}})}async runIntegrityRecovery(a,b,c){let d=await this.readRecoverableIntegrityAttempt(a,b.model,c,"initial");if("complete"===d.kind)return d.bytes;if("terminal_stop"===d.kind||"upstream_error"===d.kind)return this.integrityFailureSSE(d);if("invalid_tool"===d.kind&&!c.repairEnabled)return aR("invalid_kiro_tool_call",d.message,d.diagnostics);let e=["ellipsis","short_final","invalid_tool"].includes(d.kind)?d.kind:null,g=e?function(a,b){let c=structuredClone(a||{}),d=aw[b]||"Retry the previous incomplete Kiro response.",e=c?.conversationState?.currentMessage?.userInputMessage;if(e){let a="string"==typeof e.content?e.content:"";e.content=a?`${a}
|
|
26
|
+
|
|
27
|
+
${d}`:d}return c}(b.body,"invalid_tool"===e?"tool":e):structuredClone(b.body||{}),h=await f.H.prototype.execute.call(this,{...b,body:g,signal:c.signal});if(!h?.response?.ok){let a="";try{a=await aL(h?.response,c.signal,Math.min(c.maxBytes,4096),c.stallTimeoutMs)}catch(a){if("AbortError"===a.name)throw a}return aR("kiro_integrity_retry_upstream_error",a||`Kiro integrity retry failed with HTTP ${h?.response?.status||502}`,{status:h?.response?.status||502})}let i=await this.readRecoverableIntegrityAttempt(h.response,b.model,c,"retry");return"complete"===i.kind?i.bytes:"terminal_stop"===i.kind||"upstream_error"===i.kind?this.integrityFailureSSE(i):aR("ellipsis"===i.kind?"kiro_ellipsis_retry_failed":"short_final"===i.kind?"kiro_short_final_retry_failed":"invalid_tool"===i.kind?"kiro_tool_call_repair_retry_failed":"kiro_missing_terminal_retry_failed",`Kiro integrity validation failed after one bounded retry: ${i.message||i.kind}`,{attempts:[d.diagnostics,i.diagnostics].filter(Boolean)})}integrityFailureSSE(a){let b=a.diagnostics?.stop_disposition;return aR(a.diagnostics?.terminal_provenance==="integrity_buffer_exceeded"?"kiro_integrity_buffer_exceeded":"upstream_error"===a.kind?"kiro_upstream_eventstream_error":"terminal_refusal"===b?"kiro_terminal_refusal":"terminal_incomplete"===b?"kiro_terminal_incomplete":"kiro_unknown_stop_reason",a.message||"Kiro stream ended with a terminal failure",a.diagnostics)}async readRecoverableIntegrityAttempt(a,b,c,d){try{return await this.readIntegrityAttempt(a,b,c,d)}catch(a){if("AbortError"===a.name)throw a;return{kind:"missing_terminal",message:a.message||"Kiro transport read failed",diagnostics:{attempt:d,terminal_provenance:"transport_read_error",transport_state:"upstream_error",stop_reason:null,stop_disposition:"terminal_incomplete",response_state:"no_semantic_output",event_counts:{},incomplete_frame_bytes:0}}}}async readIntegrityAttempt(a,b,c,d){let e,f=this.transformEventStreamToSSE(a,b,{maxToolBytes:Math.max(1,Math.floor(c.maxBytes/2)),onTerminalState:a=>{e=a}}).body.getReader(),g=[],h=0,i=!1,j={content:"",reasoning:"",hasToolCalls:!1,error:null};try{for(;;){let a=i?c.stallTimeoutMs:c.ttftTimeoutMs,b=i?"stalled":"timed out before first chunk",{done:d,value:e}=await aK(f,c.signal,a,`Kiro integrity validation ${b}`);if(d)break;if(i=!0,(h+=e.byteLength)>c.maxBytes)return await f.cancel("kiro_integrity_buffer_exceeded").catch(()=>{}),{kind:"terminal_stop",message:`Kiro integrity buffer exceeded ${c.maxBytes} bytes`,diagnostics:{terminal_provenance:"integrity_buffer_exceeded"}};g.push(e);for(let a of au.decode(e).split("\n")){if(!a.startsWith("data: "))continue;let b=a.slice(6).trim();if(b&&"[DONE]"!==b)try{let a=JSON.parse(b);for(let b of(a.error&&(j.error=a.error),a.choices||[])){let a=b.delta||{};"string"==typeof a.content&&(j.content+=a.content),"string"==typeof a.reasoning_content&&(j.reasoning+=a.reasoning_content),a.tool_calls?.length&&(j.hasToolCalls=!0)}}catch{}}}}catch(a){throw await f.cancel(a.message).catch(()=>{}),a}let k={attempt:d,terminal_provenance:e?.terminal_provenance||"missing_terminal_diagnostics",transport_state:e?.transport_state||"unknown",stop_reason:e?.stop_reason||null,stop_disposition:e?.stop_disposition||"terminal_incomplete",response_state:e?.response_state||"no_semantic_output",event_counts:e?.event_counts||{},incomplete_frame_bytes:e?.incomplete_frame_bytes||0};if("retryable_protocol_failure"===k.stop_disposition)return{kind:"invalid_tool_call"===k.terminal_provenance?"invalid_tool":"retryable_stop",message:j.error?.message,diagnostics:k};if("terminal_incomplete"===k.stop_disposition||"terminal_refusal"===k.stop_disposition||"unknown_failure"===k.stop_disposition)return{kind:"upstream_eventstream_error"===k.terminal_provenance?"upstream_error":"integrity_buffer_exceeded"===k.terminal_provenance||["metadata_stop_reason","message_stop_event"].includes(k.terminal_provenance)?"terminal_stop":"missing_terminal",message:j.error?.message,diagnostics:k};if(j.error)return{kind:"missing_terminal",message:j.error.message,diagnostics:k};if(!j.hasToolCalls){let a;if(aQ(j.content)||!j.content.trim()&&aQ(j.reasoning))return{kind:"ellipsis",diagnostics:k};if(a=String(j.content||"").trim().replaceAll("’","'"),ay.test(a)||!(az.test(a)&&aA.test(a)||aB.test(a)&&aC.test(a))&&a.length>0&&a.length<=800&&ax.test(a)&&!aD.test(a)&&!aE.test(a)&&!aF.test(a))return{kind:"short_final",diagnostics:k}}return{kind:"complete",bytes:aI(g,h),diagnostics:k}}transformEventStreamToSSE(a,b,c={}){let d=`chatcmpl-${Date.now()}`,e=Math.floor(Date.now()/1e3),f=(0,ao.$D)(b).upstream,g=(0,q.getCapabilitiesForModel)("kiro",f).contextWindow||2e5,h={},i={buffer:new Uint8Array(0),chunkIndex:0,toolCounter:0,tools:new Map,bufferedToolBytes:0,hasText:!1,hasReasoning:!1,hasCode:!1,hasToolCalls:!1,sawToolUse:!1,explicitStop:!1,stopReason:null,terminalProvenance:null,transportState:"consuming_response",totalContentLength:0,contextUsagePercentage:0,hasContextUsage:!1,hasMetering:!1,usage:null,inThinking:!1,toolValidationError:null,validatedFrames:0,finished:!1},j=(a={})=>({terminal_provenance:i.terminalProvenance||"clean_eventstream_eof",transport_state:i.transportState,stop_reason:i.stopReason,stop_disposition:aO(i.stopReason,i.hasToolCalls),response_state:i.hasToolCalls?"valid_tool":i.hasText||i.hasReasoning||i.hasCode?"text_reasoning":i.explicitStop?"explicit_stop":"no_semantic_output",event_counts:{...h},incomplete_frame_bytes:i.buffer.byteLength,...a}),k=(a,c=null,f)=>at.encode(`data: ${JSON.stringify({id:d,object:"chat.completion.chunk",created:e,model:b,choices:[{index:0,delta:a,finish_reason:c}],...f?{usage:f}:{}})}
|
|
28
|
+
|
|
29
|
+
`),l=(a,b)=>{0===i.chunkIndex&&(b={role:"assistant",...b}),i.chunkIndex++,a.enqueue(k(b))},m=(a,b,d,e,f={})=>{i.finished=!0,i.terminalProvenance=b,i.transportState=f.transport_state||"corrupt_frame";let g=j({stop_disposition:f.stop_disposition||"terminal_incomplete",...f});c.onTerminalState?.(g),a.enqueue(aR(d,e,g))},n=()=>{if(i.bufferedToolBytes<=(c.maxToolBytes||4194304))return;let a=Error("Kiro buffered tool input exceeded the integrity memory bound");throw a.code="KIRO_BUFFER_EXCEEDED",a},o=(a,b)=>{if(void 0!==b){if("string"==typeof b){if(a.inputKind&&"string"!==a.inputKind)throw Error("Kiro tool input changed fragment type");a.inputKind="string",a.inputChunks||=[],a.inputChunks.push(b),i.bufferedToolBytes+=at.encode(b).byteLength}else if(b&&"object"==typeof b&&!Array.isArray(b)){if(a.inputKind&&"object"!==a.inputKind)throw Error("Kiro tool input changed fragment type");a.inputKind="object",i.bufferedToolBytes-=a.inputBytes||0,a.inputObject=b,a.inputBytes=at.encode(JSON.stringify(b)).byteLength,i.bufferedToolBytes+=a.inputBytes}else throw Error("Kiro tool input must be a JSON object");n()}},p=a=>{if(!a.inputKind)throw Error("Kiro tool call is missing input");if("object"===a.inputKind)return a.inputObject;try{let b=JSON.parse(a.inputChunks.join(""));if(!b||"object"!=typeof b||Array.isArray(b))throw Error("not an object");return b}catch(a){throw Error(`Kiro tool input must be valid object JSON (${a.message})`)}},r=(a,b)=>{let c=a.headers[":message-type"];if("error"===c||"exception"===c)return m(b,"upstream_eventstream_error","kiro_upstream_eventstream_error",a.payload?.message||`Kiro upstream sent an EventStream ${c}`,{transport_state:"upstream_error"}),!1;let d=a.headers[":event-type"]||"",f=as.has(d)?d:"other";if(h[f]=(h[f]||0)+1,"assistantResponseEvent"===d&&"string"==typeof a.payload?.content){let c=a.payload.content;if(i.inThinking){let a=c.indexOf("</thinking>");a<0?c="":(i.inThinking=!1,c=c.slice(a+11).replace(/^\n/u,""))}else{let a=c.indexOf("<thinking>");if(a>=0){let b=c.indexOf("</thinking>",a+10);b<0?(i.inThinking=!0,c=c.slice(0,a)):c=c.slice(0,a)+c.slice(b+11).replace(/^\n/u,"")}}(c||!i.hasReasoning)&&(i.hasText||=c.length>0,i.totalContentLength+=c.length,l(b,{content:c}))}else if("reasoningContentEvent"===d){let c=a.payload?.reasoningContentEvent||a.payload||{},d="string"==typeof c?c:c.text||c.content||"";d&&(i.hasReasoning=!0,i.totalContentLength+=d.length,l(b,{reasoning_content:d}))}else if("codeEvent"===d&&"string"==typeof a.payload?.content)i.hasCode=!0,i.totalContentLength+=a.payload.content.length,l(b,{content:a.payload.content});else if("toolUseEvent"===d){i.sawToolUse=!0;let b=Array.isArray(a.payload)?a.payload:[a.payload];if(!b[0])throw Error("Kiro toolUseEvent is empty");for(let a of b){let b,c="string"==typeof a?.name?a.name.trim():"";if(!c)throw Error("Kiro toolUseEvent is missing a tool name");if(null==a.toolUseId)b=`call_${e}_${i.tools.size+1}`;else if("string"==typeof a.toolUseId&&a.toolUseId.trim())b=a.toolUseId;else throw Error("Kiro toolUseEvent has an invalid toolUseId");let d=i.tools.get(b);if(d){if(d.name!==c)throw Error("Kiro tool name changed between fragments")}else d={id:b,name:c},i.tools.set(b,d),i.bufferedToolBytes+=at.encode(b).byteLength+at.encode(c).byteLength+32,n();o(d,a.input)}}else if("messageStopEvent"===d){i.explicitStop=!0;let b=aM(a.payload?.stopReason??a.payload?.stop_reason)||(i.sawToolUse?"tool_use":"end_turn"),c=aP(i.stopReason,b);c!==i.stopReason&&(i.terminalProvenance="message_stop_event"),i.stopReason=c}else if("metadataEvent"===d||"MetadataEvent"===d){let b=a.payload?.metadataEvent||a.payload?.metadata||a.payload,c=aM(b?.stopReason??b?.stop_reason);if(c){i.explicitStop=!0;let a=aP(i.stopReason,c);a!==i.stopReason&&(i.terminalProvenance="metadata_stop_reason"),i.stopReason=a}}else if("contextUsageEvent"===d){let b=Number(a.payload?.contextUsagePercentage);Number.isFinite(b)&&(i.contextUsagePercentage=b,i.hasContextUsage=!0)}else if("meteringEvent"===d){i.hasMetering=!0;let b=a.payload?.meteringEvent||a.payload||{},c=Number(b.usage);Number.isFinite(c)&&(i.usage={...i.usage||{},kiro_credits:c,kiro_credit_unit:"string"==typeof b.unit?b.unit:"credit"})}else if("metricsEvent"===d){let b=a.payload?.metricsEvent||a.payload||{},c=Number(b.inputTokens)||0,d=Number(b.outputTokens)||0;if(c||d){i.usage={...i.usage||{},prompt_tokens:c,completion_tokens:d,total_tokens:c+d};let a=Number(b.cacheReadInputTokens||b.cache_read_input_tokens)||0,e=Number(b.cacheCreationInputTokens||b.cache_creation_input_tokens)||0;a&&(i.usage.cache_read_input_tokens=a),e&&(i.usage.cache_creation_input_tokens=e)}}return!0},s=(a,b)=>{let d=i.buffer.byteLength+a.byteLength;if(d>(c.maxRawBytes||0x1800000))return m(b,"corrupt_eventstream_frame","kiro_missing_terminal","Kiro EventStream buffered bytes exceed the protocol bound"),!1;if(0===i.buffer.byteLength)i.buffer=a;else{let b=new Uint8Array(d);b.set(i.buffer),b.set(a,i.buffer.byteLength),i.buffer=b}for(;i.buffer.byteLength>=12;){let a,c=new DataView(i.buffer.buffer,i.buffer.byteOffset);if(c.getUint32(8,!1)!==aG(i.buffer.subarray(0,8)))return m(b,"corrupt_eventstream_frame","kiro_missing_terminal","Kiro EventStream prelude CRC mismatch"),!1;let d=c.getUint32(0,!1),e=c.getUint32(4,!1);if(d<16||d>0x1800000||e>131072||e>d-16)return m(b,"corrupt_eventstream_frame","kiro_missing_terminal","Kiro EventStream frame bounds are invalid"),!1;if(i.buffer.byteLength<d)break;let f=i.buffer.slice(0,d);i.buffer=i.buffer.slice(d);try{a=function(a){if(!(a instanceof Uint8Array)||a.byteLength<16)throw Error("AWS EventStream frame is shorter than 16 bytes");let b=new DataView(a.buffer,a.byteOffset,a.byteLength),c=b.getUint32(0,!1),d=b.getUint32(4,!1);if(c!==a.byteLength)throw Error("AWS EventStream frame length does not match its prelude");if(c>0x1800000||d>131072||d>c-16)throw Error("AWS EventStream frame bounds are invalid");if(b.getUint32(8,!1)!==aG(a.subarray(0,8)))throw Error("AWS EventStream prelude CRC mismatch");if(b.getUint32(c-4,!1)!==aG(a.subarray(0,c-4)))throw Error("AWS EventStream message CRC mismatch");let e=Object.create(null),f=new Set,g=12,h=12+d,i=a=>{if(g+a>h)throw Error("AWS EventStream header exceeds its declared bounds")};for(;g<h;){i(1);let c=a[g++];i(c+1);let d=au.decode(a.subarray(g,g+c));if(g+=c,f.has(d))throw Error(`AWS EventStream contains duplicate header: ${d}`);f.add(d);let h=a[g++];if(0===h||1===h)e[d]=0===h;else if(2===h)i(1),e[d]=b.getInt8(g),g+=1;else if(3===h)i(2),e[d]=b.getInt16(g,!1),g+=2;else if(4===h)i(4),e[d]=b.getInt32(g,!1),g+=4;else if(5===h||8===h)i(8),g+=8;else if(6===h||7===h){i(2);let c=b.getUint16(g,!1);g+=2,i(c);let f=a.subarray(g,g+c);e[d]=7===h?au.decode(f):f,g+=c}else if(9===h)i(16),g+=16;else throw Error(`AWS EventStream header ${d} has unknown type ${h}`)}let j=a.subarray(h,c-4);if(0===j.byteLength)return{headers:e,payload:null};let k=au.decode(j);if(!k.trim())return{headers:e,payload:null};try{return{headers:e,payload:JSON.parse(k)}}catch(a){throw Error(`AWS EventStream payload is not valid JSON (${a.message})`)}}(f)}catch(a){return m(b,"corrupt_eventstream_frame","kiro_missing_terminal",a.message),!1}i.transportState="valid_complete_frame",i.validatedFrames++;try{if(!r(a,b))return!1}catch(a){if("KIRO_BUFFER_EXCEEDED"!==a.code){i.toolValidationError||=a.message,console.error(`[Kiro] tool fragment rejected, keeping ${i.tools.size} buffered tool(s): ${a.message}`);continue}return m(b,"integrity_buffer_exceeded","kiro_integrity_buffer_exceeded",a.message,{transport_state:i.transportState,stop_disposition:"terminal_incomplete"}),!1}}return!0};if(!a.body){let b=j({terminal_provenance:"missing_response_body",transport_state:"missing_body",stop_disposition:"terminal_incomplete"});return c.onTerminalState?.(b),new Response(aR("kiro_missing_terminal","Kiro response did not include an EventStream body",b),{status:a.status,headers:{...Y.pb}})}let t=a.body.getReader();return new Response(new ReadableStream({start:async a=>{try{for(;!i.finished;){let{done:b,value:c}=await t.read();if(b)break;let d=i.chunkIndex,e=i.validatedFrames;if(!s(c,a)){await t.cancel("invalid Kiro EventStream").catch(()=>{});break}i.validatedFrames>e&&i.chunkIndex===d&&a.enqueue(at.encode(": kiro-upstream\n\n"))}(a=>{if(i.finished)return;if(i.buffer.byteLength)return m(a,"incomplete_eventstream_frame","kiro_missing_terminal","Kiro EventStream ended with a truncated frame",{transport_state:"incomplete_frame"});i.transportState="clean_eof";let b=aO(i.stopReason,i.sawToolUse),d="terminal_incomplete"===b&&aN.has(i.stopReason)&&i.chunkIndex>0;if(d&&console.error(`[Kiro] truncated after ${i.chunkIndex} chunk(s) (stop_reason=${i.stopReason}); keeping output`),!d&&["retryable_protocol_failure","terminal_incomplete","terminal_refusal","unknown_failure"].includes(b))return m(a,i.terminalProvenance||"metadata_stop_reason","retryable_protocol_failure"===b?"kiro_retryable_protocol_failure":"terminal_refusal"===b?"kiro_terminal_refusal":"terminal_incomplete"===b?"kiro_terminal_incomplete":"kiro_unknown_stop_reason",`Kiro ended with non-success stop reason: ${i.stopReason}`,{transport_state:i.transportState,stop_disposition:b});try{for(let b of i.tools.values()){let c;try{if(c=p(b),"tool_call"===b.name){if("string"!=typeof c.name||!c.name.trim())throw Error("Invalid Kiro tool_call payload: missing nested MCP tool name");if(!Object.prototype.hasOwnProperty.call(c,"arguments"))throw Error("Invalid Kiro tool_call payload: missing nested MCP tool arguments")}}catch(a){i.droppedTools=(i.droppedTools||0)+1,i.toolValidationError||=a.message,console.error(`[Kiro] dropping unusable tool call ${b.id} (${b.name}): ${a.message}`);continue}let d=i.toolCounter++;l(a,{tool_calls:[{index:d,id:b.id,type:"function",function:{name:b.name,arguments:""}}]});let e=JSON.stringify(c);l(a,{tool_calls:[{index:d,function:{arguments:e}}]}),i.totalContentLength+=b.name.length+e.length,i.hasToolCalls=!0}if(i.tools.clear(),i.bufferedToolBytes=0,"tool_use"===i.stopReason&&!i.hasToolCalls&&!i.hasText&&!i.hasReasoning&&!i.hasCode)throw Error("Kiro tool_use stop reason did not include a complete tool call")}catch(b){m(a,"invalid_tool_call","invalid_kiro_tool_call",b.message,{transport_state:i.transportState,stop_disposition:"retryable_protocol_failure"});return}if(i.toolValidationError&&!i.hasToolCalls&&!i.hasText&&!i.hasReasoning&&!i.hasCode)return m(a,"invalid_tool_call","invalid_kiro_tool_call",i.toolValidationError,{transport_state:i.transportState,stop_disposition:"retryable_protocol_failure"});if(!(i.hasText||i.hasReasoning||i.hasCode||i.hasToolCalls)&&!i.explicitStop)return m(a,"empty_response_eof","kiro_missing_terminal","Kiro EventStream ended without model output",{transport_state:i.transportState});let e=aO(i.stopReason,i.hasToolCalls),f="terminal_incomplete"===e&&aN.has(i.stopReason)&&i.chunkIndex>0;if(f&&console.error(`[Kiro] truncated after ${i.chunkIndex} chunk(s) (stop_reason=${i.stopReason}); closing as length`),!f&&["retryable_protocol_failure","terminal_incomplete","terminal_refusal","unknown_failure"].includes(e)){let b="retryable_protocol_failure"===e?"kiro_retryable_protocol_failure":"terminal_refusal"===e?"kiro_terminal_refusal":"terminal_incomplete"===e?"kiro_terminal_incomplete":"kiro_unknown_stop_reason";m(a,i.terminalProvenance||"metadata_stop_reason",b,`Kiro ended with non-success stop reason: ${i.stopReason}`,{transport_state:i.transportState,stop_disposition:e});return}if(i.hasMetering&&i.hasContextUsage&&!i.usage?.total_tokens){let a=i.totalContentLength?Math.max(1,Math.floor(i.totalContentLength/4)):0,b=Math.floor(i.contextUsagePercentage*g/100);i.usage={...i.usage||{},prompt_tokens:b,completion_tokens:a,total_tokens:b+a}}let h=f?"length":i.hasToolCalls?"tool_calls":"length"===e?"length":"stop";a.enqueue(k({},h,i.usage)),a.enqueue(at.encode(Y.$U)),i.finished=!0,c.onTerminalState?.(j({terminal_provenance:i.terminalProvenance||"clean_eventstream_eof",transport_state:i.transportState,stop_disposition:f?"length":e}))})(a),a.close()}catch(b){i.finished||m(a,"upstream_read_error","kiro_missing_terminal",b.message||"Kiro EventStream read failed",{transport_state:"upstream_error"}),a.close()}},cancel:a=>t.cancel(a)}),{status:a.status,statusText:a.statusText,headers:{...Y.pb}})}async refreshCredentials(a,b,c=null){if(!a.refreshToken)return null;try{return await (0,ar.Ql)(a.refreshToken,a.providerSpecificData,b,c)}catch(a){return b?.error?.("TOKEN",`Kiro refresh error: ${a.message}`),null}}}var aT=c(86925);let aU=["anthropic_version","anthropic_beta","client_metadata","mcp_servers","stop_sequences","thinking","top_k"];class aV extends C{constructor(){super("kimchi")}transformRequest(a,b,c,d){let e,f=super.transformRequest(a,b,c,d);if(!f||"object"!=typeof f)return f;for(let a of(!function(a){var b;if(!a?.system||!Array.isArray(a.messages))return;let c=("string"==typeof(b=a.system)?b:Array.isArray(b)?b.map(a=>"string"==typeof a?a:"string"==typeof a?.text?a.text:"").filter(Boolean).join("\n"):"").trim();if(!c)return;let d=a.messages.find(a=>a?.role==="system");d?"string"==typeof d.content?d.content=`${c}
|
|
30
|
+
|
|
31
|
+
${d.content}`:Array.isArray(d.content)&&d.content.unshift({type:"text",text:c}):a.messages.unshift({role:"system",content:c})}(f),aU))void 0!==f[a]&&delete f[a];if(delete f.system,e=(0,aT.gK)(a),(e?.provider==="anthropic"||e?.upstreamProvider==="anthropic"||/(^|[-_/])(?:claude|anthropic)(?:[-_/]|$)/i.test(String(a||"")))&&(delete f.reasoning_effort,delete f.reasoning,delete f.thinking),Array.isArray(f?.messages))for(let a of f.messages)a&&"object"==typeof a&&(delete a.cache_control,Array.isArray(a.content)&&(a.content=a.content.map(a=>{if(!a||"object"!=typeof a)return a;let{cache_control:b,signature:c,...d}=a;return d})));Array.isArray(f?.tools)&&(f.tools=f.tools.map(a=>{if(!a||"object"!=typeof a)return a;let{cache_control:b,...c}=a;return c}));if(Array.isArray(f?.messages))for(let a of f.messages)a&&"assistant"===a.role&&"string"==typeof a.reasoning_content&&a.reasoning_content.length>8&&delete a.reasoning_content;return f}}let aW=`You are Codex, based on GPT-5. You are running as a coding agent in the Codex CLI on a user's computer.
|
|
32
|
+
|
|
33
|
+
## General
|
|
34
|
+
|
|
35
|
+
- When searching for text or files, prefer using \`rg\` or \`rg --files\` respectively because \`rg\` is much faster than alternatives like \`grep\`. (If the \`rg\` command is not found, then use alternatives.)
|
|
36
|
+
|
|
37
|
+
## Editing constraints
|
|
38
|
+
|
|
39
|
+
- Default to ASCII when editing or creating files. Only introduce non-ASCII or other Unicode characters when there is a clear justification and the file already uses them.
|
|
40
|
+
- Add succinct code comments that explain what is going on if code is not self-explanatory. You should not add comments like "Assigns the value to the variable", but a brief comment might be useful ahead of a complex code block that the user would otherwise have to spend time parsing out. Usage of these comments should be rare.
|
|
41
|
+
- Try to use apply_patch for single file edits, but it is fine to explore other options to make the edit if it does not work well. Do not use apply_patch for changes that are auto-generated (i.e. generating package.json or running a lint or format command like gofmt) or when scripting is more efficient (such as search and replacing a string across a codebase).
|
|
42
|
+
- You may be in a dirty git worktree.
|
|
43
|
+
* NEVER revert existing changes you did not make unless explicitly requested, since these changes were made by the user.
|
|
44
|
+
* If asked to make a commit or code edits and there are unrelated changes to your work or changes that you didn't make in those files, don't revert those changes.
|
|
45
|
+
* If the changes are in files you've touched recently, you should read carefully and understand how you can work with the changes rather than reverting them.
|
|
46
|
+
* If the changes are in unrelated files, just ignore them and don't revert them.
|
|
47
|
+
- Do not amend a commit unless explicitly requested to do so.
|
|
48
|
+
- While you are working, you might notice unexpected changes that you didn't make. If this happens, STOP IMMEDIATELY and ask the user how they would like to proceed.
|
|
49
|
+
- **NEVER** use destructive commands like \`git reset --hard\` or \`git checkout --\` unless specifically requested or approved by the user.
|
|
50
|
+
|
|
51
|
+
## Plan tool
|
|
52
|
+
|
|
53
|
+
When using the planning tool:
|
|
54
|
+
- Skip using the planning tool for straightforward tasks (roughly the easiest 25%).
|
|
55
|
+
- Do not make single-step plans.
|
|
56
|
+
- When you made a plan, update it after having performed one of the sub-tasks that you shared on the plan.
|
|
57
|
+
|
|
58
|
+
## Codex CLI harness, sandboxing, and approvals
|
|
59
|
+
|
|
60
|
+
The Codex CLI harness supports several different configurations for sandboxing and escalation approvals that the user can choose from.
|
|
61
|
+
|
|
62
|
+
Filesystem sandboxing defines which files can be read or written. The options for \`sandbox_mode\` are:
|
|
63
|
+
- **read-only**: The sandbox only permits reading files.
|
|
64
|
+
- **workspace-write**: The sandbox permits reading files, and editing files in \`cwd\` and \`writable_roots\`. Editing files in other directories requires approval.
|
|
65
|
+
- **danger-full-access**: No filesystem sandboxing - all commands are permitted.
|
|
66
|
+
|
|
67
|
+
Network sandboxing defines whether network can be accessed without approval. Options for \`network_access\` are:
|
|
68
|
+
- **restricted**: Requires approval
|
|
69
|
+
- **enabled**: No approval needed
|
|
70
|
+
|
|
71
|
+
Approvals are your mechanism to get user consent to run shell commands without the sandbox. Possible configuration options for \`approval_policy\` are
|
|
72
|
+
- **untrusted**: The harness will escalate most commands for user approval, apart from a limited allowlist of safe "read" commands.
|
|
73
|
+
- **on-failure**: The harness will allow all commands to run in the sandbox (if enabled), and failures will be escalated to the user for approval to run again without the sandbox.
|
|
74
|
+
- **on-request**: Commands will be run in the sandbox by default, and you can specify in your tool call if you want to escalate a command to run without sandboxing. (Note that this mode is not always available. If it is, you'll see parameters for it in the \`shell\` command description.)
|
|
75
|
+
- **never**: This is a non-interactive mode where you may NEVER ask the user for approval to run commands. Instead, you must always persist and work around constraints to solve the task for the user. You MUST do your utmost best to finish the task and validate your work before yielding. If this mode is paired with \`danger-full-access\`, take advantage of it to deliver the best outcome for the user. Further, in this mode, your default testing philosophy is overridden: Even if you don't see local patterns for testing, you may add tests and scripts to validate your work. Just remove them before yielding.
|
|
76
|
+
|
|
77
|
+
When you are running with \`approval_policy == on-request\`, and sandboxing enabled, here are scenarios where you'll need to request approval:
|
|
78
|
+
- You need to run a command that writes to a directory that requires it (e.g. running tests that write to /var)
|
|
79
|
+
- You need to run a GUI app (e.g., open/xdg-open/osascript) to open browsers or files.
|
|
80
|
+
- You are running sandboxed and need to run a command that requires network access (e.g. installing packages)
|
|
81
|
+
- If you run a command that is important to solving the user's query, but it fails because of sandboxing, rerun the command with approval. ALWAYS proceed to use the \`sandbox_permissions\` and \`justification\` parameters - do not message the user before requesting approval for the command.
|
|
82
|
+
- You are about to take a potentially destructive action such as an \`rm\` or \`git reset\` that the user did not explicitly ask for
|
|
83
|
+
- (for all of these, you should weigh alternative paths that do not require approval)
|
|
84
|
+
|
|
85
|
+
When \`sandbox_mode\` is set to read-only, you'll need to request approval for any command that isn't a read.
|
|
86
|
+
|
|
87
|
+
You will be told what filesystem sandboxing, network sandboxing, and approval mode are active in a developer or user message. If you are not told about this, assume that you are running with workspace-write, network sandboxing enabled, and approval on-failure.
|
|
88
|
+
|
|
89
|
+
Although they introduce friction to the user because your work is paused until the user responds, you should leverage them when necessary to accomplish important work. If the completing the task requires escalated permissions, Do not let these settings or the sandbox deter you from attempting to accomplish the user's task unless it is set to "never", in which case never ask for approvals.
|
|
90
|
+
|
|
91
|
+
When requesting approval to execute a command that will require escalated privileges:
|
|
92
|
+
- Provide the \`sandbox_permissions\` parameter with the value \`"require_escalated"\`
|
|
93
|
+
- Include a short, 1 sentence explanation for why you need escalated permissions in the justification parameter
|
|
94
|
+
|
|
95
|
+
## Special user requests
|
|
96
|
+
|
|
97
|
+
- If the user makes a simple request (such as asking for the time) which you can fulfill by running a terminal command (such as \`date\`), you should do so.
|
|
98
|
+
- If the user asks for a "review", default to a code review mindset: prioritise identifying bugs, risks, behavioural regressions, and missing tests. Findings must be the primary focus of the response - keep summaries or overviews brief and only after enumerating the issues. Present findings first (ordered by severity with file/line references), follow with open questions or assumptions, and offer a change-summary only as a secondary detail. If no findings are discovered, state that explicitly and mention any residual risks or testing gaps.
|
|
99
|
+
|
|
100
|
+
## Frontend tasks
|
|
101
|
+
When doing frontend design tasks, avoid collapsing into "AI slop" or safe, average-looking layouts.
|
|
102
|
+
Aim for interfaces that feel intentional, bold, and a bit surprising.
|
|
103
|
+
- Typography: Use expressive, purposeful fonts and avoid default stacks (Inter, Roboto, Arial, system).
|
|
104
|
+
- Color & Look: Choose a clear visual direction; define CSS variables; avoid purple-on-white defaults. No purple bias or dark mode bias.
|
|
105
|
+
- Motion: Use a few meaningful animations (page-load, staggered reveals) instead of generic micro-motions.
|
|
106
|
+
- Background: Don't rely on flat, single-color backgrounds; use gradients, shapes, or subtle patterns to build atmosphere.
|
|
107
|
+
- Overall: Avoid boilerplate layouts and interchangeable UI patterns. Vary themes, type families, and visual languages across outputs.
|
|
108
|
+
- Ensure the page loads properly on both desktop and mobile
|
|
109
|
+
|
|
110
|
+
Exception: If working within an existing website or design system, preserve the established patterns, structure, and visual language.
|
|
111
|
+
|
|
112
|
+
## Presenting your work and final message
|
|
113
|
+
|
|
114
|
+
You are producing plain text that will later be styled by the CLI. Follow these rules exactly. Formatting should make results easy to scan, but not feel mechanical. Use judgment to decide how much structure adds value.
|
|
115
|
+
|
|
116
|
+
- Default: be very concise; friendly coding teammate tone.
|
|
117
|
+
- Ask only when needed; suggest ideas; mirror the user's style.
|
|
118
|
+
- For substantial work, summarize clearly; follow final‑answer formatting.
|
|
119
|
+
- Skip heavy formatting for simple confirmations.
|
|
120
|
+
- Don't dump large files you've written; reference paths only.
|
|
121
|
+
- No "save/copy this file" - User is on the same machine.
|
|
122
|
+
- Offer logical next steps (tests, commits, build) briefly; add verify steps if you couldn't do something.
|
|
123
|
+
- For code changes:
|
|
124
|
+
* Lead with a quick explanation of the change, and then give more details on the context covering where and why a change was made. Do not start this explanation with "summary", just jump right in.
|
|
125
|
+
* If there are natural next steps the user may want to take, suggest them at the end of your response. Do not make suggestions if there are no natural next steps.
|
|
126
|
+
* When suggesting multiple options, use numeric lists for the suggestions so the user can quickly respond with a single number.
|
|
127
|
+
- The user does not command execution outputs. When asked to show the output of a command (e.g. \`git show\`), relay the important details in your answer or summarize the key lines so the user understands the result.
|
|
128
|
+
|
|
129
|
+
### Final answer structure and style guidelines
|
|
130
|
+
|
|
131
|
+
- Plain text; CLI handles styling. Use structure only when it helps scanability.
|
|
132
|
+
- Headers: optional; short Title Case (1-3 words) wrapped in **…**; no blank line before the first bullet; add only if they truly help.
|
|
133
|
+
- Bullets: use - ; merge related points; keep to one line when possible; 4–6 per list ordered by importance; keep phrasing consistent.
|
|
134
|
+
- Monospace: backticks for commands/paths/env vars/code ids and inline examples; use for literal keyword bullets; never combine with **.
|
|
135
|
+
- Code samples or multi-line snippets should be wrapped in fenced code blocks; include an info string as often as possible.
|
|
136
|
+
- Structure: group related bullets; order sections general → specific → supporting; for subsections, start with a bolded keyword bullet, then items; match complexity to the task.
|
|
137
|
+
- Tone: collaborative, concise, factual; present tense, active voice; self‑contained; no "above/below"; parallel wording.
|
|
138
|
+
- Don'ts: no nested bullets/hierarchies; no ANSI codes; don't cram unrelated keywords; keep keyword lists short—wrap/reformat if long; avoid naming formatting styles in answers.
|
|
139
|
+
- Adaptation: code explanations → precise, structured with code refs; simple tasks → lead with outcome; big changes → logical walkthrough + rationale + next actions; casual one-offs → plain sentences, no headers/bullets.
|
|
140
|
+
- File References: When referencing files in your response follow the below rules:
|
|
141
|
+
* Use inline code to make file paths clickable.
|
|
142
|
+
* Each reference should have a stand alone path. Even if it's the same file.
|
|
143
|
+
* Accepted: absolute, workspace‑relative, a/ or b/ diff prefixes, or bare filename/suffix.
|
|
144
|
+
* Optionally include line/column (1‑based): :line[:column] or #Lline[Ccolumn] (column defaults to 1).
|
|
145
|
+
* Do not use URIs like file://, vscode://, or https://.
|
|
146
|
+
* Do not provide range of lines
|
|
147
|
+
* Examples: src/app.ts, src/app.ts:42, b/server/index.js#L10, C:\\repo\\project\\main.rs:12:5`;var aX=c(83199),aY=c(50186),aZ=c(29485),a$=c(12828),a_=c(81358);let a0=/(^|[^\\])(\\\\)*\\[pP]\{/;function a1(a,b={removed:0}){return function a(b,c){if(Array.isArray(b)){let d=!1,e=b.map(b=>{let e=a(b,c);return e!==b&&(d=!0),e});return d?e:b}if(!b||"object"!=typeof b)return b;let d=!1,e={};for(let[g,h]of Object.entries(b)){var f;if("pattern"===g&&"string"==typeof(f=h)&&a0.test(f)){c.removed++,d=!0;continue}if("properties"===g&&h&&"object"==typeof h&&!Array.isArray(h)){let b=!1,f={};for(let[d,e]of Object.entries(h)){let g=a(e,c);g!==e&&(b=!0),f[d]=g}b&&(d=!0),e[g]=b?f:h;continue}let b=a(h,c);b!==h&&(d=!0),e[g]=b}return d?e:b}(a,b)}let a2=["server_is_overloaded","service_unavailable_error"],a3=["selected model is at capacity","model_at_capacity"],a4=["exceeds the context window","maximum context length","context_length_exceeded"],a5=["event: response.output_text.delta","event: response.function_call_arguments.delta",'"type":"response.output_text.delta"','"type":"response.function_call_arguments.delta"'],a6="Selected model is at capacity. Please try a different model.",a7=Symbol("codexCompactRequest"),a8="x-openai-internal-codex-responses-lite",a9=["openai-beta","x-client-request-id","x-codex-beta-features","x-codex-installation-id","x-codex-parent-thread-id","x-codex-turn-metadata","x-codex-turn-state","x-codex-window-id","x-openai-memgen-request","x-openai-subagent","x-responsesapi-include-timing-metrics"],ba=/^(rs|fc|resp|msg)_/,bb=new Set(["image_generation","web_search","web_search_preview","file_search","computer","computer_use_preview","code_interpreter","mcp","local_shell","tool_search"]),bc=new Set(["custom"]),bd=new Set(["model","input","instructions","tools","tool_choice","stream","store","parallel_tool_calls","reasoning","service_tier","include","prompt_cache_key","client_metadata","text"]),be=new Set(["model","input","instructions","tools","parallel_tool_calls","reasoning","service_tier","prompt_cache_key","text"]);function bf(a){return"string"==typeof a?a:Array.isArray(a)?a.map(a=>"string"==typeof a?.text?a.text:"string"==typeof a?.content?a.content:"").filter(Boolean).join("\n"):""}function bg(a){return"max"===a?"xhigh":a}function bh(a,b,c=null){return new Response(JSON.stringify({error:{message:b,type:a>=500?"server_error":"invalid_request_error",code:c||(a===aa.gx.SERVICE_UNAVAILABLE?"service_unavailable":"upstream_error")}}),{status:a,headers:{"Content-Type":"application/json"}})}function bi(a){return"true"===String(a?.rawHeaders?.[a8]||"").trim().toLowerCase()}class bj extends f.H{constructor(){super("codex",g.xq.codex),this._currentSessionId=null}buildHeaders(a,b=!0){let c=super.buildHeaders(a,b);c.session_id=this._currentSessionId||a?.connectionId||"default",c.originator||(c.originator="codex_cli_rs");let d=(0,a_.a)(a?.providerSpecificData,a?.idToken);return"string"==typeof d&&d&&!c["ChatGPT-Account-ID"]&&(c["ChatGPT-Account-ID"]=d),!function(a,b){if(!bi(b))return;let c=b?.rawHeaders||{};for(let b of(a[a8]="true",a9)){let d=c[b];"string"==typeof d&&d&&d.length<=16384&&(a[b]=d)}let d=c["user-agent"];"string"==typeof d&&/^codex(?:_cli_rs|_exec|-cli)\//i.test(d)&&(a["User-Agent"]=d);let e=c.originator;"string"==typeof e&&/^[A-Za-z0-9_.-]{1,128}$/.test(e)&&(a.originator=e)}(c,a),c}buildUrl(a,b,c=0,d=null){let e=super.buildUrl(a,b,c,d);return this._isCompact?`${e}/compact`:e}async refreshCredentials(a,b){return a?.refreshToken?(0,am.Vq)("codex",a,b):null}needsRefresh(a){return(0,am.fp)("codex",a)}async prefetchImages(a){if(Array.isArray(a?.input))for(let b of a.input){if(!Array.isArray(b.content))continue;let a=b.content.map(async a=>{if("image_url"!==a.type)return a;let b="string"==typeof a.image_url?a.image_url:a.image_url?.url,c=a.image_url?.detail||"auto";if(!b)return a;if(b.startsWith("data:"))return{type:"input_image",image_url:b,detail:c};let d=await (0,aY.ni)(b,{timeoutMs:15e3});return{type:"input_image",image_url:d?.url||b,detail:c}});b.content=await Promise.all(a)}}async execute(a){let b=Array.isArray(a.body?.input)?a.body.input.reduce((a,b)=>a+(Array.isArray(b.content)?b.content.filter(a=>"image_url"===a.type).length:0),0):0,c=Array.isArray(a.body?.input)?a.body.input.length:0;if((0,a$.s)("CODEX",`execute start | inputItems=${c} | images=${b} | sessionId=${this._currentSessionId||"pending"}`),b>0){let b=Date.now();await this.prefetchImages(a.body),(0,a$.s)("CODEX",`prefetchImages done | ${Date.now()-b}ms`)}else await this.prefetchImages(a.body);let d={...aa.cI,...this.config.retry},{attempts:e,delayMs:f}=(0,aa.DR)(d[503]),g=0;for(;;){let b=await super.execute(a),c=await this._peekSseTransientError(b.response);if(!c.matched)return c.replacementBody&&(b.response=new Response(c.replacementBody,{status:b.response.status,statusText:b.response.statusText,headers:b.response.headers})),b;if(c.contextOverflow)return a.log?.warn?.("CODEX",`SSE context overflow "${c.message}"`),b.response=bh(aa.gx.PAYLOAD_TOO_LARGE,c.message||c.matched,"context_length_exceeded"),b;if(c.accountFallback)return a.log?.warn?.("RETRY",`CODEX | SSE account fallback "${c.message}"`),b.response=bh(aa.gx.SERVICE_UNAVAILABLE,c.message||a6),b;if(g>=e)return a.log?.warn?.("RETRY",`CODEX | SSE overloaded "${c.matched}" — retries exhausted (${g}/${e})`),b.response=bh(aa.gx.SERVICE_UNAVAILABLE,c.message||c.matched),b;g++,a.log?.debug?.("RETRY",`CODEX | SSE "${c.matched}" retry ${g}/${e} after ${f/1e3}s`),(0,a$.s)("CODEX",`SSE overloaded "${c.matched}" → retry ${g}/${e} in ${f}ms`),await new Promise(a=>setTimeout(a,f))}}async _peekSseTransientError(a){if(!a||!a.ok||!a.body)return{matched:null,message:null,accountFallback:!1,contextOverflow:!1,replacementBody:null};let b=a.body.getReader(),c=new TextDecoder,d=[],e="",f=null,g=null,h=!1,i=!1;try{for(;e.length<262144;){let{done:a,value:j}=await b.read();if(a)break;d.push(j);let k=(e+=c.decode(j,{stream:!0})).toLowerCase(),l=a3.find(a=>k.includes(a));if(l){f=l,h=!0;break}let m=function(a){let b=new Set(["error","response.failed","failed"]),c=null,d=[],e=()=>{let a;if(0===d.length)return null;try{a=JSON.parse(d.join("\n"))}catch{return null}let e=String(a?.type||a?.response?.status||"").toLowerCase();if(!b.has(c)&&!b.has(e))return null;let f=a?.response?.error||a?.error,g="string"==typeof f?.message?f.message.trim():"",h="string"==typeof f?.code?f.code.toLowerCase():"",i=h?"context_length_exceeded"===h?h:null:a4.find(a=>g.toLowerCase().includes(a));return i?{matched:i,message:g||i}:null};for(let b of String(a||"").split("\n")){let a=b.trimEnd();if(a)a.startsWith("event:")?c=a.slice(6).trim().toLowerCase():a.startsWith("data:")&&d.push(a.slice(5).trimStart());else{let a=e();if(a)return a;c=null,d=[]}}return e()}(e);if(m){f=m.matched,g=m.message,i=!0;break}let n=a2.find(a=>k.includes(a));if(n){f=n;break}if(a5.some(a=>k.includes(a)))break}}catch(a){(0,a$.s)("CODEX",`peek read error: ${a.message}`)}if(f){try{await b.cancel()}catch{}try{b.releaseLock()}catch{}return{matched:f,message:g||function(a,b){let c=a?.match(/Selected model is at capacity\. Please try a different model\./i)?.[0];if(c)return c;for(let b of String(a||"").split(/\r?\n/)){if(!b.startsWith("data:"))continue;let a=b.slice(5).trim();if(a&&"[DONE]"!==a)try{let b=function a(b,c=0){if(!b||c>6||"string"==typeof b)return null;if(Array.isArray(b)){for(let d of b){let b=a(d,c+1);if(b)return b}return null}if("object"!=typeof b)return null;if("string"==typeof b.message&&b.message.trim())return b.message;if("string"==typeof b.error?.message&&b.error.message.trim())return b.error.message;if("string"==typeof b.response?.error?.message&&b.response.error.message.trim())return b.response.error.message;for(let d of Object.values(b)){let b=a(d,c+1);if(b)return b}return null}(JSON.parse(a));if(b)return b}catch{}}return b||a6}(e,f),accountFallback:h,contextOverflow:i,replacementBody:null}}b.releaseLock();let j=a.body,k=null;return{matched:null,message:null,accountFallback:!1,contextOverflow:!1,replacementBody:new ReadableStream({start(a){for(let b of d)a.enqueue(b);k=j.getReader()},async pull(a){try{let{done:b,value:c}=await k.read();if(b)return void a.close();a.enqueue(c)}catch(b){a.error(b)}},cancel(a){try{k?.cancel(a)}catch{}}})}}parseError(a,b){if(429===a.status&&b)try{let a=JSON.parse(b),c=a?.error;if(c?.type==="usage_limit_reached"){let a=Date.now(),d=null;if("number"==typeof c.resets_at&&c.resets_at>0){let b=1e3*c.resets_at;b>a&&(d=b)}if(!d&&"number"==typeof c.resets_in_seconds&&c.resets_in_seconds>0&&(d=a+1e3*c.resets_in_seconds),d)return{status:429,message:c.message||b,resetsAtMs:d}}}catch{}return super.parseError(a,b)}transformRequest(a,b,c,d){let e=!0===b._compact||!0===b[a7];e&&(b[a7]=!0);let f=bi(d);this._isCompact=e,delete b._compact,this._currentSessionId=(0,u.oV)({headers:d?.rawHeaders,body:b,connectionId:d?.connectionId,workspaceId:d?.providerSpecificData?.workspaceId,scope:"codex"});let g=(0,aX.me)(b.input);if(g&&(b.input=g),(!b.input||Array.isArray(b.input)&&0===b.input.length)&&(b.input=[{type:"message",role:"user",content:[{type:"input_text",text:"..."}]}]),Array.isArray(b.input))for(let a of b.input)!(!a||"object"!=typeof a||Array.isArray(a))&&("system"!==a.role||a.type&&"message"!==a.type||(a.role="developer"));if(Array.isArray(b.input)&&(b.input=b.input.filter(a=>{if("string"==typeof a&&ba.test(a))return!1;if(a&&"object"==typeof a&&!Array.isArray(a)){if("item_reference"===a.type)return!1;"string"==typeof a.id&&ba.test(a.id)&&delete a.id}return!0})),!function(a){if(!Array.isArray(a.tools))return;let b=new Set,c={removed:0};if(a.tools=a.tools.filter(a=>{if(!a||"object"!=typeof a||Array.isArray(a))return!1;let d="string"==typeof a.type?a.type:"";if("namespace"===d){if(Array.isArray(a.tools))for(let d of a.tools){let a="string"==typeof d?.name?d.name.trim().slice(0,128):"";a&&b.add(a),d?.parameters&&"object"==typeof d.parameters&&(d.parameters=a1(d.parameters,c))}return!0}if("function"!==d)return!!bc.has(d)||!!d&&!a.function&&"string"!=typeof a.name&&bb.has(d);let e=a.function&&"object"==typeof a.function&&!Array.isArray(a.function)?a.function:null,f=("string"==typeof a.name?a.name:"string"==typeof e?.name?e.name:"").trim();if(!f)return!1;let g="string"==typeof a.description?a.description:"string"==typeof e?.description?e.description:"",h=a.parameters&&"object"==typeof a.parameters&&!Array.isArray(a.parameters)?a.parameters:e?.parameters&&"object"==typeof e.parameters&&!Array.isArray(e.parameters)?e.parameters:{type:"object",properties:{}},i=void 0!==a.strict?a.strict:e?e.strict??!1:void 0;for(let b of Object.keys(a))delete a[b];return a.type="function",a.name=f.slice(0,128),g&&(a.description=g),a.parameters=a1(h,c),void 0!==i&&(a.strict=i),b.add(f),!0}),c.removed>0&&(0,a$.s)("CODEX",`stripped ${c.removed} unsupported tool schema pattern(s)`),a.tool_choice&&"object"==typeof a.tool_choice&&!Array.isArray(a.tool_choice)&&"function"===a.tool_choice.type){let c="string"==typeof a.tool_choice.name?a.tool_choice.name.trim():"";c&&b.has(c)||delete a.tool_choice}}(b),e?delete b.stream:b.stream=!0,Array.isArray(b.input)){let a=b.input.filter(a=>"system"===a.role);if(a.length>0){b.input=b.input.filter(a=>"system"!==a.role);let c=a.map(a=>"string"==typeof a.content?a.content:Array.isArray(a.content)?a.content.map(a=>a.text||a.output||"").filter(Boolean).join("\n"):"").filter(Boolean).join("\n\n");b.instructions=b.instructions?`${c}
|
|
148
|
+
|
|
149
|
+
${b.instructions}`:c}for(let a of b.input)"assistant"===a.role&&Array.isArray(a.content)&&(a.content=a.content.map(a=>"input_text"===a.type?{...a,type:"output_text"}:a))}f||e||b.instructions&&""!==b.instructions.trim()?f&&""===b.instructions&&delete b.instructions:b.instructions=function(a){if(!Array.isArray(a.input))return null;let b=a.input.findIndex(a=>!(!a||"object"!=typeof a||Array.isArray(a))&&("system"===a.role||"developer"===a.role)&&(!a.type||"message"===a.type)&&""!==bf(a.content).trim());if(-1===b)return null;let c=bf(a.input[b].content);return a.input.splice(b,1),c}(b)||aW,e?delete b.store:b.store=!1,!b.prompt_cache_key&&this._currentSessionId&&(b.prompt_cache_key=this._currentSessionId),b.model=(0,aZ.kt)("cx",b.model||a);let h=null;for(let a of["none","minimal","low","medium","high","xhigh"])if(b.model.endsWith(`-${a}`)){h=a,b.model=b.model.replace(`-${a}`,"");break}if(b.reasoning)b.reasoning.effort=bg(b.reasoning.effort),b.reasoning.summary||(b.reasoning.summary="auto");else{let a=bg(b.reasoning_effort||h||"low");b.reasoning={effort:a,summary:"auto"}}f&&(b.parallel_tool_calls=!1,b.reasoning.context="all_turns"),delete b.reasoning_effort,!e&&b.reasoning&&b.reasoning.effort&&"none"!==b.reasoning.effort?b.include=["reasoning.encrypted_content"]:e&&delete b.include,delete b.temperature,delete b.top_p,delete b.frequency_penalty,delete b.presence_penalty,delete b.logprobs,delete b.top_logprobs,delete b.n,delete b.seed,delete b.max_tokens,delete b.max_completion_tokens,delete b.max_output_tokens,delete b.user,delete b.prompt_cache_retention,delete b.metadata,delete b.stream_options,delete b.safety_identifier,delete b.previous_response_id;let i=this.config.fastMode?.request;d?.providerSpecificData?.fastMode===!0&&i?.field?b[i.field]=i.value:delete b.service_tier;let j=e?be:bd;for(let a of Object.keys(b))j.has(a)||delete b[a];return b}}var bk=c(33026),bl=c(29790);function bm(a){return`data: ${JSON.stringify(a)}
|
|
150
|
+
|
|
151
|
+
`}function bn({id:a,created:b,model:c,delta:d,finishReason:e=null}){return bm({id:a,object:"chat.completion.chunk",created:b,model:c,choices:[{index:0,delta:d,finish_reason:e}]})}var bo=c(74075),bp=c(8086);let bq=null;if(!("u">typeof caches&&"object"==typeof caches||"u">typeof EdgeRuntime))try{bq=(0,bp.createRequire)("file:///Volumes/Files/Projects/EzRouter/EzRouter/open-sse/executors/cursor.js")("http2")}catch{}let br="/agent.v1.AgentService/Run";function bs(...a){let b=new Uint8Array(a.reduce((a,b)=>a+b.length,0)),c=0;for(let d of a)b.set(d,c),c+=d.length;return b}let bt=(a,b)=>(0,bk.Xh)(a,2,b),bu=(a,b)=>(0,bk.Xh)(a,2,b);function bv(a){return"string"==typeof a?a:Array.isArray(a)?a.filter(a=>a?.type==="text"&&"string"==typeof a.text).map(a=>a.text).join("\n"):""}function bw(a){let b=bv(a?.content);if(!b)return null;let c=bt(1,b);return"assistant"===a.role?bu(2,bu(1,bu(1,c))):bu(1,bu(1,bu(1,c)))}let bx="1"===process.env.CURSOR_STREAM_DEBUG,by=(...a)=>{bx&&console.log(...a)};function bz(a){let b=String(a||"").split("/").pop();return/^composer(?:-|$)/i.test(b)}function bA(a){if(!a)return"";let b="</think>",c=a.lastIndexOf(b);return c<0?"":a.slice(c+b.length).trimStart()}function bB(a,b,c,d){if(b+5>a.length)return by(`[CURSOR BUFFER${d}] Reached end, offset=${b}, remaining=${a.length-b}`),{status:"done"};let e=a[b],f=a.readUInt32BE(b+1);if(by(`[CURSOR BUFFER${d}] Frame ${c+1}: flags=0x${e.toString(16).padStart(2,"0")}, length=${f}`),b+5+f>a.length)return by(`[CURSOR BUFFER${d}] Incomplete frame, offset=${b}, length=${f}, buffer.length=${a.length}`),{status:"done"};let g=a.slice(b+5,b+5+f),h=b+5+f;return(g=function(a,b){if(a.length>10&&123===a[0]&&34===a[1])try{if(a.toString("utf-8").startsWith('{"error"'))return by("[DECOMPRESS] Detected JSON error, skipping decompression"),a}catch{}if(1===b||2===b||3===b)try{return bo.gunzipSync(a)}catch(c){try{return bo.inflateSync(a)}catch(d){try{return bo.inflateRawSync(a)}catch(e){by(`[DECOMPRESS ERROR] flags=${b}, payloadSize=${a.length}, gzip=${c.message}, deflate=${d.message}, raw=${e.message}`),by("[DECOMPRESS ERROR] First 50 bytes (hex):",a.slice(0,50).toString("hex"))}}}return a}(g,e))?{status:"ok",payload:g,offset:h}:(by(`[CURSOR BUFFER${d}] Frame ${c+1}: decompression failed, skipping`),{status:"skip",offset:h})}function bC(a){let b=a?.error?.details?.[0]?.debug?.details?.title||a?.error?.details?.[0]?.debug?.details?.detail||a?.error?.message||"API Error",c=a?.error?.code==="resource_exhausted";return new Response(JSON.stringify({error:{message:b,type:c?"rate_limit_error":"api_error",code:a?.error?.details?.[0]?.debug?.error||"unknown"}}),{status:c?aa.gx.RATE_LIMITED:aa.gx.BAD_REQUEST,headers:{"Content-Type":"application/json"}})}class bD extends f.H{constructor(){super("cursor",g.xq.cursor)}buildUrl(){return`${this.config.baseUrl}${this.config.chatPath}`}buildHeaders(a){let b=a.accessToken,c=a.providerSpecificData?.machineId,d=a.providerSpecificData?.ghostMode!==!1;if(!c)throw Error("Machine ID is required for Cursor API");return(0,bl.JA)(b,c,d)}transformRequest(a,b,c,d){let e=b.messages||[],f=b.tools||[],g=b.reasoning_effort||null,h=d?.rawHeaders?.["user-agent"]||"",i=h.includes("claude-cli")||h.includes("claude-code")||h.includes("Claude Code");return(0,bk.yI)(e,a,f,g,i)}async makeFetchRequest(a,b,c,d,e=null){let f=await (0,l.proxyAwareFetch)(a,{method:"POST",headers:b,body:c,signal:d},e);return{status:f.status,headers:Object.fromEntries(f.headers.entries()),body:Buffer.from(await f.arrayBuffer())}}makeHttp2Request(a,b,c,d){if(!bq)throw Error("http2 module not available");return new Promise((e,f)=>{let g=new URL(a),h=bq.connect(`https://${g.host}`),i=[],j={},k=!1,l=a=>(...b)=>{k||(k=!0,clearTimeout(m),h.close(),a(...b))},m=setTimeout(l(()=>{f(Error("HTTP/2 request timed out"))}),6e4);h.on("error",l(f));let n=h.request({":method":"POST",":path":g.pathname,":authority":g.host,":scheme":"https",...b});if(n.on("response",a=>{j=a}),n.on("data",a=>{i.push(a)}),n.on("end",l(()=>{e({status:j[":status"],headers:j,body:Buffer.concat(i)})})),n.on("error",l(f)),d){let a=l(()=>f(Error("Request aborted")));d.addEventListener("abort",a,{once:!0})}n.write(c),n.end()})}openAgentHttp2Stream(a,b,c){if(!bq)throw Error("HTTP/2 is required for Cursor AgentService (endpoint is h2-only)");let d=new URL(a),e=bq.connect(`https://${d.host}`),f=[],g=null,h=!1,i=null,j=null,k=a=>{if(!g)return;let b=g;g=null,b(a)},l=a=>{i||(i=a,h=!0,k(null))},m=()=>{try{j?.destroy()}catch{}try{e.close()}catch{}};if(e.on("error",l),(j=e.request({":method":"POST",":path":d.pathname,":authority":d.host,":scheme":"https",...b})).on("error",l),j.on("data",a=>{g?k({value:a,done:!1}):f.push(a)}),j.on("end",()=>{h=!0,k({value:void 0,done:!0})}),c){let a=()=>{l(Error("Request aborted")),m()};c.aborted?a():c.addEventListener("abort",a,{once:!0})}return{responseHeaders:new Promise((a,b)=>{let c=a=>b(a);e.once("error",c),j.once("error",c),j.once("response",b=>{e.off("error",c),j.off("error",c),a(b)})}),write(a){j&&!j.destroyed&&j.write(Buffer.from(a))},end(){try{j&&!j.destroyed&&j.end()}catch{}},close:m,async read(){if(f.length)return{value:f.shift(),done:!1};if(h){if(i)throw i;return{value:void 0,done:!0}}let a=await new Promise(a=>{g=a});if(i)throw i;return a||{value:void 0,done:!0}}}}async executeAgent({model:a,body:b,stream:c,credentials:d,signal:e}){let f,h,i=g.sr.cursor?.agentEndpoint;if(!i)throw Error("Cursor AgentService endpoint is not configured");let j=`${i}${br}`,k=this.buildHeaders(d),l=new AbortController;e?.addEventListener&&e.addEventListener("abort",()=>l.abort(e.reason),{once:!0});try{var m;let c,d,e,g,h,i,n,o,p,q,r;(f=this.openAgentHttp2Stream(j,k,l.signal)).write((m=b.messages||[],c=m.filter(a=>a?.role==="system").map(a=>bv(a.content)).filter(Boolean).join("\n\n"),g=(e=[...d=m.filter(a=>a?.role!=="system")].map(a=>a?.role).lastIndexOf("user"))>=0?d[e]:d.at(-1),h=d.slice(0,e>=0?e:-1).map(bw).filter(Boolean),i=bs(bt(1,bv(g?.content)||"Continue."),bt(2,ah.randomUUID())),n=h.length?bs(...h.map(a=>bu(1,a))):null,o=bs(bu(1,i),...n?[bu(7,n)]:[]),p=bu(1,o),q=bs(bt(1,a),(0,bk.Xh)(7,0,1)),r=bs(bu(1,new Uint8Array),bu(2,p),...c?[bt(8,c)]:[],bu(9,q)),(0,bk.tM)(bu(1,r))))}catch(a){throw Error(`Cursor AgentService request failed: ${a.message}`)}try{h=await f.responseHeaders}catch(a){throw f.close(),Error(`Cursor AgentService request failed: ${a.message}`)}let n=Number(h[":status"]||0);if(200!==n){let a="";try{for(;;){let{done:b,value:c}=await f.read();if(b)break;a+=Buffer.from(c).toString("utf8")}}catch{}return f.close(),{response:new Response(JSON.stringify({error:{message:`Cursor AgentService ${n}: ${a||"request failed"}`,type:"api_error"}}),{status:n||aa.gx.SERVER_ERROR,headers:{"Content-Type":"application/json"}}),url:j,headers:k,transformedBody:b,responseFormat:ae.h.OPENAI}}let o=`chatcmpl-msg_${Date.now()}`,p=Math.floor(Date.now()/1e3),q=Buffer.alloc(0),r=!1,s=async a=>{try{for(;!r;){let{done:b,value:c}=await f.read();if(b)break;q=Buffer.concat([q,Buffer.from(c)]),q=function(a,b){let c=Buffer.from(a||[]);for(;c.length>=5;){let a=c[0],d=c.readUInt32BE(1);if(c.length<5+d)break;let e=c.subarray(5,5+d);c=c.subarray(5+d),1&a&&(e=bo.gunzipSync(e)),2&a||b(e)}return c}(q,b=>{if(r)return;let c=(0,bk.Y8)(b);if(c.has(1)){let b=(0,bk.Y8)(c.get(1)[0].value);if(b.has(1)){let c=function(a){let b=a?.get(1)?.[0]?.value;return b?Buffer.from(b).toString("utf8"):""}((0,bk.Y8)(b.get(1)[0].value));c&&a({type:"text",value:c})}b.has(14)&&(r=!0,a({type:"done"}))}if(c.has(2)){let b=(0,bk.Y8)(c.get(2)[0].value);b.has(10)?f.write(function(){let a=bu(1,new Uint8Array),b=bu(1,a),c=bu(10,b);return(0,bk.tM)(bu(2,c))}()):(by(`[CURSOR AGENT] Unsupported exec request fields: ${[...b.keys()].join(",")}`),r=!0,a({type:"error",value:"Cursor AgentService requested an unsupported IDE tool"}))}})}}finally{try{f.end()}catch{}try{f.close()}catch{}r||a({type:"done"})}};if(!1===c){let c="",d="",e=null;return(await s(a=>{"text"===a.type?c+=a.value:"thinking"===a.type?d+=a.value:"error"===a.type&&(e=a.value)}),e)?{response:new Response(JSON.stringify({error:{message:e,type:"api_error"}}),{status:aa.gx.BAD_REQUEST,headers:{"Content-Type":"application/json"}}),url:j,headers:k,transformedBody:b,responseFormat:ae.h.OPENAI}:{response:new Response(JSON.stringify({id:o,object:"chat.completion",created:p,model:a,choices:[{index:0,message:{role:"assistant",content:c||null,...d?{reasoning_content:d}:{}},finish_reason:"stop"}],usage:(0,ag.OF)(b,c.length,ae.h.OPENAI)}),{headers:{"Content-Type":"application/json"}}),url:j,headers:k,transformedBody:b,responseFormat:ae.h.OPENAI}}let t=new TextEncoder;return{response:new Response(new ReadableStream({start(b){s(c=>{"text"===c.type?b.enqueue(t.encode(bn({id:o,created:p,model:a,delta:{content:c.value}}))):"thinking"===c.type?b.enqueue(t.encode(bn({id:o,created:p,model:a,delta:{reasoning_content:c.value}}))):"error"===c.type?(b.enqueue(t.encode(bm({error:{message:c.value,type:"api_error"}}))),b.enqueue(t.encode(Y.$U)),b.close()):"done"===c.type&&(b.enqueue(t.encode(bn({id:o,created:p,model:a,delta:{},finishReason:"stop"}))),b.enqueue(t.encode(Y.$U)),b.close())}).catch(a=>b.error(a))},cancel(){l.abort()}}),{headers:Y.pb}),url:j,headers:k,transformedBody:b,responseFormat:ae.h.OPENAI}}async execute({model:a,body:b,stream:c,credentials:d,signal:e,log:f,proxyOptions:h=null}){if(Array.isArray(b?.messages)&&b.messages.every(a=>!a?.tool_calls?.length&&a?.role!=="tool"&&("string"==typeof a?.content||Array.isArray(a?.content)&&a.content.every(a=>a?.type==="text"))))try{return await this.executeAgent({model:a,body:b,stream:c,credentials:d,signal:e})}catch(a){return{response:new Response(JSON.stringify({error:{message:a.message,type:"connection_error",code:""}}),{status:aa.gx.SERVER_ERROR,headers:{"Content-Type":"application/json"}}),url:`${g.sr.cursor?.agentEndpoint||""}${br}`,headers:{},transformedBody:b}}let i=this.buildUrl(),j=this.buildHeaders(d),k=this.transformRequest(a,b,c,d);try{let d=h?.enabled===!0||h?.connectionProxyEnabled===!0||!!h?.vercelRelayUrl,f=bq&&!d?await this.makeHttp2Request(i,j,k,e):await this.makeFetchRequest(i,j,k,e,h);if(200!==f.status){let a=f.body?.toString()||"Unknown error";return{response:new Response(JSON.stringify({error:{message:`[${f.status}]: ${a}`,type:"invalid_request_error",code:""}}),{status:f.status,headers:{"Content-Type":"application/json"}}),url:i,headers:j,transformedBody:b}}return{response:!1!==c?this.transformProtobufToSSE(f.body,a,b):this.transformProtobufToJSON(f.body,a,b),url:i,headers:j,transformedBody:b}}catch(a){return{response:new Response(JSON.stringify({error:{message:a.message,type:"connection_error",code:""}}),{status:aa.gx.SERVER_ERROR,headers:{"Content-Type":"application/json"}}),url:i,headers:j,transformedBody:b}}}transformProtobufToJSON(a,b,c){let d=`chatcmpl-cursor-${Date.now()}`,e=Math.floor(Date.now()/1e3),f=0,g="",h="",i=[],j=new Map,k=new Set,l=0;for(by(`[CURSOR BUFFER] Total length: ${a.length} bytes`);f<a.length;){let b=bB(a,f,l,"");if("done"===b.status)break;if(f=b.offset,l++,"skip"===b.status)continue;let c=b.payload;if(c.length>0&&123===c[0])try{let a=c.toString("utf-8");if(a.includes('"error"')){let b=g||j.size>0;if(by(`[CURSOR BUFFER] Error frame (hasContent=${b}): ${a.slice(0,500)}`),b)break;return bC(JSON.parse(a))}}catch{}let d=(0,bk.CP)(new Uint8Array(c));if(by(`[CURSOR DECODED] Frame ${l}:`,d),d.error){let a=g||j.size>0;if(by(`[CURSOR BUFFER] Decoded error (hasContent=${a}): ${d.error}`),a)break;return new Response(JSON.stringify({error:{message:d.error,type:"rate_limit_error",code:"rate_limited"}}),{status:aa.gx.RATE_LIMITED,headers:{"Content-Type":"application/json"}})}if(d.toolCall){let a=d.toolCall;if(j.has(a.id)){let b=j.get(a.id);b.function.arguments+=a.function.arguments,b.isLast=a.isLast}else j.set(a.id,{...a});if(a.isLast){let b=j.get(a.id);k.add(a.id),i.push({id:b.id,type:b.type,function:{name:b.function.name,arguments:b.function.arguments}})}}d.text&&(g+=d.text),d.thinking&&(h+=d.thinking)}let m=bz(b)?bA(h):"",n=g||m;for(let[a,b]of(by(`[CURSOR BUFFER] Parsed ${l} frames, toolCallsMap size: ${j.size}, finalized toolCalls: ${i.length}`),j.entries()))k.has(a)||(by(`[CURSOR BUFFER] Finalizing incomplete tool call: ${a}, isLast=${b.isLast}`),i.push({id:b.id,type:b.type,function:{name:b.function.name,arguments:b.function.arguments}}));by(`[CURSOR BUFFER] Final toolCalls count: ${i.length}`);let o={role:"assistant",content:n||null};i.length>0&&(o.tool_calls=i);let p=(0,ag.OF)(c,n.length,ae.h.OPENAI);return new Response(JSON.stringify({id:d,object:"chat.completion",created:e,model:b,choices:[{index:0,message:o,finish_reason:i.length>0?"tool_calls":"stop"}],usage:p}),{status:200,headers:{"Content-Type":"application/json"}})}transformProtobufToSSE(a,b,c){let d=`chatcmpl-cursor-${Date.now()}`,e=Math.floor(Date.now()/1e3),f=[],g=0,h="",i="",j=0,k=[],l=new Map,m=new Set,n=new Set,o=0;for(by(`[CURSOR BUFFER SSE] Total length: ${a.length} bytes`);g<a.length;){let c=bB(a,g,o," SSE");if("done"===c.status)break;if(g=c.offset,o++,"skip"===c.status)continue;let p=c.payload;if(123===p[0])try{let a=p.toString("utf-8");if(a.includes('"error"')){let b=f.length>0||h||l.size>0;if(by(`[CURSOR BUFFER SSE] Error frame (hasContent=${b}): ${a.slice(0,500)}`),b)break;return bC(JSON.parse(a))}}catch{}let q=(0,bk.CP)(new Uint8Array(p));if(by(`[CURSOR DECODED SSE] Frame ${o}:`,q),q.error){let a=f.length>0||h||l.size>0;if(by(`[CURSOR BUFFER SSE] Decoded error (hasContent=${a}): ${q.error}`),a)break;return new Response(JSON.stringify({error:{message:q.error,type:"rate_limit_error",code:"rate_limited"}}),{status:aa.gx.RATE_LIMITED,headers:{"Content-Type":"application/json"}})}if(q.toolCall){let a=q.toolCall;if(0===f.length&&f.push(bn({id:d,created:e,model:b,delta:{role:"assistant",content:""}})),l.has(a.id)){let c=l.get(a.id);c.function.arguments.length,c.function.arguments+=a.function.arguments,c.isLast=a.isLast,a.function.arguments&&(n.add(a.id),f.push(bn({id:d,created:e,model:b,delta:{tool_calls:[{index:c.index,id:a.id,type:"function",function:{name:a.function.name,arguments:a.function.arguments}}]}})))}else{let c=k.length;m.add(a.id),k.push({...a,index:c}),l.set(a.id,{...a,index:c}),n.add(a.id),f.push(bn({id:d,created:e,model:b,delta:{tool_calls:[{index:c,id:a.id,type:"function",function:{name:a.function.name,arguments:a.function.arguments}}]}}))}}if(q.text&&(h+=q.text,f.push(bn({id:d,created:e,model:b,delta:0===f.length&&0===k.length?{role:"assistant",content:q.text}:{content:q.text}}))),bz(b)&&q.thinking){let a=bA(i+=q.thinking);if(a.length>j){let c=a.slice(j);j=a.length,h+=c,f.push(bn({id:d,created:e,model:b,delta:0===f.length&&0===k.length?{role:"assistant",content:c}:{content:c}}))}}}for(let[a,c]of(by(`[CURSOR BUFFER SSE] Parsed ${o} frames, toolCallsMap size: ${l.size}, toolCalls array: ${k.length}`),l.entries()))if(!m.has(a)){by(`[CURSOR BUFFER SSE] Finalizing incomplete tool call: ${a}, isLast=${c.isLast}`);let g=k.length;k.push({id:c.id,type:c.type,index:g,function:{name:c.function.name,arguments:c.function.arguments}}),n.has(c.id)||f.push(bn({id:d,created:e,model:b,delta:{tool_calls:[{index:g,id:c.id,type:"function",function:{name:c.function.name,arguments:c.function.arguments}}]}}))}0===f.length&&0===k.length&&f.push(bn({id:d,created:e,model:b,delta:{role:"assistant",content:""}}));let p=(0,ag.OF)(c,h.length,ae.h.OPENAI);return f.push(`data: ${JSON.stringify({id:d,object:"chat.completion.chunk",created:e,model:b,choices:[{index:0,delta:{},finish_reason:k.length>0?"tool_calls":"stop"}],usage:p})}
|
|
152
|
+
|
|
153
|
+
`),f.push(Y.$U),new Response(f.join(""),{status:200,headers:{...Y.pb}})}async refreshCredentials(){return null}}let bE=new Map;function bF(a){if("string"!=typeof a)return null;try{let b=JSON.parse(a);if("authorized_user"===b.type&&b.client_id&&b.client_secret&&b.refresh_token)return b;return null}catch{return null}}async function bG(a){if(bE.has(a))return bE.get(a);let b=await fetch(`https://aiplatform.googleapis.com/v1/publishers/google/models/__probe__:generateContent?key=${a}`,{method:"POST",headers:{"Content-Type":"application/json"},body:"{}"}),c=await b.json().catch(()=>null),d=(c?.[0]?.error?.message||c?.error?.message||"").match(/projects\/([^/]+)\//),e=d?.[1]||null;return e&&bE.set(a,e),e}class bH extends f.H{constructor(a="vertex"){super(a,g.xq[a]||{})}buildUrl(a,b,c=0,d=null){let e=(0,ar.Sc)(d?.apiKey),f=bF(d?.apiKey),g=!!e||!!f||!!d?.accessToken,h=g?null:d?.apiKey,i=e?.project_id||f?.quota_project_id||d?.providerSpecificData?.projectId;if("vertex-partner"===this.provider){if(!i)throw Error("Vertex partner models require a project_id. Add it in providerSpecificData or use Service Account JSON.");let a=`https://aiplatform.googleapis.com/v1/projects/${i}/locations/global/endpoints/openapi/chat/completions`;return h?`${a}?key=${h}`:a}let j=b?"streamGenerateContent":"generateContent";if(g){if(!i)throw Error("Vertex OAuth/ADC requires a project_id. Add quota_project_id to your ADC JSON or set providerSpecificData.projectId.");let c=d?.providerSpecificData?.location||d?.providerSpecificData?.region||"us-central1",e=`https://aiplatform.googleapis.com/v1/projects/${i}/locations/${c}/publishers/google/models/${a}:${j}`;return b&&(e+="?alt=sse"),e}let k=d?.providerSpecificData?.location||d?.providerSpecificData?.region,l=k&&"global"!==k?`https://${k}-aiplatform.googleapis.com/v1/publishers/google/models/${a}:${j}`:`https://aiplatform.googleapis.com/v1/publishers/google/models/${a}:${j}`;return b&&(l+="?alt=sse"),h&&(l+=b?`&key=${h}`:`?key=${h}`),l}buildHeaders(a,b=!0){let c={"Content-Type":"application/json"};return a.accessToken&&(c.Authorization=`Bearer ${a.accessToken}`),b&&(c.Accept="text/event-stream"),c}async refreshCredentials(a,b){let c=(0,ar.Sc)(a?.apiKey);if(!c)return null;let d=await (0,ar.pb)(c,b);return d?{accessToken:d.accessToken,expiresAt:d.expiresAt}:null}async execute({model:a,body:b,stream:c,credentials:d,signal:e,log:f,proxyOptions:g=null}){let h=d?{...d}:d,i=(0,ar.Sc)(h?.apiKey),j=bF(h?.apiKey);if(i){let a=await (0,ar.pb)(i,f);if(!a?.accessToken)throw Error("Vertex: failed to mint access token from Service Account JSON");h.accessToken=a.accessToken}if(j){let a=await (0,ar.I9)(j.refresh_token,j.client_id,j.client_secret,f);if(!a?.accessToken)throw Error("Vertex: failed to refresh access token from ADC JSON (authorized_user)");h.accessToken=a.accessToken}if("vertex-partner"===this.provider&&!i&&!j&&!h?.providerSpecificData?.projectId){let a=await bG(h.apiKey);if(!a)throw Error("Vertex: could not resolve project_id from API key. Please add it manually in provider settings.");f?.debug?.("VERTEX",`Resolved project_id: ${a}`),h.providerSpecificData={...h.providerSpecificData,projectId:a}}let k=this.buildUrl(a,c,0,h),m=this.buildHeaders(h,c),n=this.transformRequest(a,b,c,h);return{response:await (0,l.proxyAwareFetch)(k,{method:"POST",headers:m,body:JSON.stringify(n),signal:e},g),url:k,headers:m,transformedBody:n}}}var bI=c(55591),bJ=c(2081),bK=c(29021),bL=c(33873);let bM="opencode.ai";var bN=c(8382);let bO=null,bP=!1,bQ="x-opencode-session",bR="_opencodeSession",bS="_opencodeRequest",bT=/^ses_[0-9a-f]{12}[0-9A-Za-z]{14}$/,bU=/^msg_[0-9a-f]{12}[0-9A-Za-z]{14}$/,bV="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",bW=[{type:"function",function:{name:"bash",description:"This tool is currently unavailable and must not be used.",parameters:{type:"object",properties:{}}}},{type:"function",function:{name:"read",description:"This tool is currently unavailable and must not be used.",parameters:{type:"object",properties:{}}}}],bX=[{type:"function",name:"bash",description:"This tool is currently unavailable and must not be used.",parameters:{type:"object",properties:{}}},{type:"function",name:"read",description:"This tool is currently unavailable and must not be used.",parameters:{type:"object",properties:{}}}];function bY(a,b){if(a&&"object"==typeof a)if(b){Array.isArray(a.tools)||(a.tools=[]);let b=new Set(a.tools.map(a=>a.name||a.function?.name));for(let c of bX)b.has(c.name)||a.tools.push({...c});a.tool_choice||(a.tool_choice="auto")}else if(Array.isArray(a.tools)&&a.tools.length>0){let b=new Set(a.tools.map(a=>a.function?.name||a.name));for(let c of bW)b.has(c.function.name)||a.tools.push({...c,function:{...c.function}})}else a.tools=bW.map(a=>({...a,function:{...a.function}})),a.tool_choice||(a.tool_choice="none")}let bZ=new Set(["muse-spark-1.2-contributor-free","muse-spark-1.3-contributor-free"]),b$=new Set(["union-alpha"]),b_=0,b0=0;function b1(){let a=ah.randomBytes(14),b="";for(let c=0;c<14;c++)b+=bV[a[c]%62];return b}function b2(a=Date.now()){let b=4096n*BigInt(a)+1n,c=Array.from({length:6},(a,c)=>Number(b>>BigInt(40-8*c)&255n).toString(16).padStart(2,"0")).join("");return`msg_${c}${b1()}`}function b3(a,b=""){if("string"==typeof a&&bT.test(a.trim()))return a.trim();let c=ah.createHash("sha256").update(`opencode\0${b||"generic"}\0${a||""}`).digest(),d=c.subarray(0,6).toString("hex"),e="";for(let a=6;a<20;a++)e+=bV[c[a]%62];return`ses_${d}${e}`}function b4(a){if("string"!=typeof a)return null;let b=a.trim();return!b||b.length>256?null:b}let b5=new Map,b6=setInterval(()=>{let a=Date.now();for(let[b,c]of b5)a-c.lastUsed>aa.v1.sessionTtlMs&&b5.delete(b)},aa.v1.sessionCleanupIntervalMs);function b7(a){if("string"!=typeof a)return null;let b=a.trim();return!b||b.length>256?null:bU.test(b)?b:null}function b8(a){return String(a||"").replace(/\([^()]+\)\s*$/,"").trim()}function b9(a){let b=b8(a);return bZ.has(b)||(0,bN.nh)(b)}b6.unref&&b6.unref();class ca extends f.H{constructor(){super("opencode",g.xq.opencode)}prepareRequestCredentials({body:a,credentials:b,providerSessionId:c,clientTool:d}={}){let e=b||{},f=function(a,b,c,d){let e=b?.rawHeaders||{},f=function(a){if(!a||"object"!=typeof a)return null;for(let[b,c]of Object.entries(a))if(b.toLowerCase()===bQ){let a=b4(c);if(a&&bT.test(a))return a}return null}(e);if(f)return f;let g=null;for(let[a,b]of Object.entries(e))if(a.toLowerCase()===bQ){g=b4(b);break}let h=g||b4(c);if(h)return b3(h,d);if(b?.connectionId||function(a){try{if(!a||"object"!=typeof a)return!1;if("string"==typeof a.session_id&&a.session_id.trim()||"string"==typeof a.conversation_id&&a.conversation_id.trim()||"string"==typeof a.prompt_cache_key&&a.prompt_cache_key.trim()||a.metadata&&"string"==typeof a.metadata.user_id&&a.metadata.user_id.trim()||a.request&&null!=a.request.sessionId&&""!==String(a.request.sessionId))return!0;let b=Array.isArray(a.messages)?a.messages:Array.isArray(a.input)?a.input:null;if(b){let a="";for(let c of b)if(c?.role==="assistant"){let b=c.content;if("string"==typeof b)a+=b;else if(Array.isArray(b))for(let c of b)a+=c?.text||c?.output||"";if(a.length>=50)return!0}}return!1}catch{return!1}}(a)){let c=null;try{c=(0,u.oV)({headers:e,body:a,connectionId:b?.connectionId,scope:"opencode"})}catch{c=null}if(c)return b3(c,d)}let i=function(a){let b=a?.connectionId||a?.id;if(b)return`opencode:conn:${String(b).slice(0,128)}`;let c=a?.rawHeaders||{},d=c.authorization||c.Authorization||c["x-api-key"]||c["X-Api-Key"]||"";if(d){let a=ah.createHash("sha256").update(String(d)).digest("hex").slice(0,32);return`opencode:auth:${a}`}return"opencode:default"}(b),j=b5.get(i);if(j)return j.lastUsed=Date.now(),b5.delete(i),b5.set(i,j),j.sessionId;let k=function(a=Date.now()){a!==b_&&(b_=a,b0=0),b0++;let b=~(4096n*BigInt(a)+BigInt(b0)),c=Array.from({length:6},(a,c)=>Number(b>>BigInt(40-8*c)&255n).toString(16).padStart(2,"0")).join("");return`ses_${c}${b1()}`}();return b5.size>=1e3&&b5.delete(b5.keys().next().value),b5.set(i,{sessionId:k,lastUsed:Date.now()}),k}(a,e,c,d);return{...e,[bR]:f,[bS]:function(a,b,c){for(let[a,c]of Object.entries(b?.rawHeaders||{}))if("x-opencode-request"===a.toLowerCase()){let a=b7(c);if(a)return a;break}return function(a,b){let c=function(a){try{if(!a||"object"!=typeof a)return"";let b=Array.isArray(a.messages)?a.messages:Array.isArray(a.input)?a.input:null;if(!b)return"string"==typeof a.input?a.input.slice(-600):"";for(let a=b.length-1;a>=0;a--){let c=b[a];if(!c||c.role&&"user"!==c.role)continue;let d=c.content;if("string"==typeof d&&d.trim())return d.trim().slice(-600);if(Array.isArray(d)){let a=d.map(a=>"string"==typeof a?a:a?.text||a?.input_text||"").join(" ").trim();if(a)return a.slice(-600)}}}catch{}return""}(b);if(!c)return b2();let d=ah.createHash("sha256").update(`opencode-req\0${a||""}\0${c}`).digest(),e=d.subarray(0,6).toString("hex"),f="";for(let a=6;a<20;a++)f+=bV[d[a]%62];let g=`msg_${e}${f}`;return bU.test(g)?g:b2()}(c,a)}(a,e,f)}}transformRequest(a,b,c,d){if(b&&"object"==typeof b&&a&&!b.model&&(b.model=a),b&&"object"==typeof b&&(b.stream=!0),b9(a||b?.model)&&b&&"object"==typeof b){"tool_choice"in b&&"auto"!==b.tool_choice&&this.config.quirks?.forceAutoToolChoiceModels?.includes(b8(a))&&(b.tool_choice="auto");let c=(0,aX.me)(b.input);c&&(b.input=c),Array.isArray(b.input)&&0!==b.input.length||(b.input=[{type:"message",role:"user",content:[{type:"input_text",text:"..."}]}]),void 0===b.max_output_tokens&&(void 0!==b.max_completion_tokens?b.max_output_tokens=b.max_completion_tokens:void 0!==b.max_tokens&&(b.max_output_tokens=b.max_tokens)),delete b.max_tokens,delete b.max_completion_tokens,function(a,b){let c=b.reasoning,d=c&&"object"==typeof c&&!Array.isArray(c)?c:null,e="string"==typeof b.reasoning_effort?b.reasoning_effort:d?.effort;if("string"!=typeof e)return;let f=b8(a||b.model),g=(0,bJ.k)("opencode",f),h=e.toLowerCase().trim();("max"===h||"ultra"===h)&&g?.length&&!g.includes(h)&&("ultra"===h&&g.includes("max")?h="max":g.includes("xhigh")&&(h="xhigh")),b.reasoning={...d,effort:h},b.reasoning.summary||(b.reasoning.summary="auto"),delete b.reasoning_effort}(a,b),b.stream=!0,b.store=!1,function(a){if(!Array.isArray(a.tools))return;let b=new Set;if(a.tools=a.tools.filter(a=>{if(!a||"object"!=typeof a||Array.isArray(a))return!1;let c=a.function&&"object"==typeof a.function&&!Array.isArray(a.function)?a.function:null,d=("string"==typeof a.name?a.name:"string"==typeof c?.name?c.name:"").trim();if(!d)return!1;let e="string"==typeof a.description?a.description:"string"==typeof c?.description?c.description:"",f=a.parameters&&"object"==typeof a.parameters&&!Array.isArray(a.parameters)?a.parameters:c?.parameters&&"object"==typeof c.parameters&&!Array.isArray(c.parameters)?c.parameters:{type:"object",properties:{}};for(let b of("object"!==f.type||f.properties||(f={...f,properties:{}}),Object.keys(a)))delete a[b];return a.type="function",a.name=d.slice(0,128),e&&(a.description=e),a.parameters=f,b.add(a.name),!0}),a.tool_choice&&"object"==typeof a.tool_choice&&!Array.isArray(a.tool_choice)&&"function"===a.tool_choice.type){let c="string"==typeof a.tool_choice.name?a.tool_choice.name.trim():"";c&&b.has(c)||delete a.tool_choice}}(b),Array.isArray(b.input)&&(b.input=b.input.filter(a=>!!(!a||"object"!=typeof a||Array.isArray(a))||"reasoning"!==a.type&&((delete a.encrypted_content,delete a.reasoning_encrypted_content,"function_call"===a.type)?!!a.name&&"string"==typeof a.name&&""!==a.name.trim()&&(a.name=a.name.trim().slice(0,128),a.call_id=(0,aX.N8)(a.call_id),a.arguments=(0,aX.We)(a.arguments),!0):("function_call_output"===a.type&&(a.call_id=(0,aX.N8)(a.call_id),a.output=(0,aX.DP)(a.output)),!0)))),Array.isArray(b.tools)&&0!==b.tools.length||bY(b,!0)}else b&&"object"==typeof b&&bY(b,!1);return p({provider:this.provider,model:a,body:b})}buildUrl(a,b,c=0,d=null){let e=d?.runtimeTransport;if(e?.baseUrl)return e.urlSuffix?`${e.baseUrl}${e.urlSuffix}`:e.baseUrl;let f=this.config.baseUrl;return b9(a)?`${f}/zen/v1/responses`:b$.has(b8(a))?`${f}/zen/v1/messages`:`${f}/zen/v1/chat/completions`}async execute(a){return!function(){let{mode:a}=function(){try{let a,b=JSON.parse(bK.readFileSync((a=process.env.APPDATA||process.env.HOME||process.cwd(),bL.join(a,"9router","oc-egress.json")),"utf8"));return{mode:"direct"===b.mode?"direct":"proxy",lastFlipAt:b.lastFlipAt||0,flips:b.flips||0}}catch{return{mode:"proxy",lastFlipAt:0,flips:0}}}(),b=(process.env.NO_PROXY||process.env.no_proxy||"").split(",").map(a=>a.trim()).filter(Boolean),c=b.includes(bM);"direct"!==a||c?"direct"!==a&&c&&(process.env.NO_PROXY=b.filter(a=>a!==bM).join(",")):process.env.NO_PROXY=[...b,bM].join(",")}(),super.execute({...a,credentials:this.prepareRequestCredentials(a)})}buildHeaders(a,b=!0,c=""){let d=a?.rawHeaders||{},e={};for(let[a,b]of Object.entries(d))e[a.toLowerCase()]=b;let f=e["user-agent"]||"",g=function(a){let b=String(a||"").match(/opencode\/(\d+)\.(\d+)(?:\.(\d+))?/i);if(!b)return!1;let c=parseInt(b[1],10),d=parseInt(b[2],10);return c>1||1===c&&d>=17}(f),i=a?.[bR]||this.prepareRequestCredentials({credentials:a})[bR],j=b7(e["x-opencode-request"]),k=a?.[bS]||j||b2(),l=(e["x-9r-real-ip"]||e["x-real-ip"]||"").trim(),m=l&&!(!l||"127.0.0.1"===l||"::1"===l||l.startsWith("::ffff:127.")||l.startsWith("10.")||l.startsWith("192.168.")||/^172\.(1[6-9]|2\d|3[01])\./.test(l)||l.startsWith("fc00:")||l.startsWith("fe80:"))?l:l?function(){if(bO||bP)return bO;bP=!0;let a=(a,b)=>{bI.get(a,{timeout:4e3},a=>{let c="";a.on("data",a=>c+=a),a.on("end",()=>b(c.trim()))}).on("error",()=>b(""))};return a("https://4.icanhazip.com",b=>{/^(\d{1,3}\.){3}\d{1,3}$/.test(b)?(bO=b,bP=!1):a("https://ip.sb",b=>{/^(\d{1,3}\.){3}\d{1,3}$/.test(b)?(bO=b,bP=!1):a("https://ifconfig.me/ip",a=>{/^(\d{1,3}\.){3}\d{1,3}$/.test(a)&&(bO=a),bP=!1})})}),bO}():"",n={"Content-Type":"application/json",Authorization:"Bearer public","User-Agent":g?f:"opencode/1.18.31","x-opencode-client":e["x-opencode-client"]||"desktop","x-opencode-session":i,"x-opencode-request":k,"x-opencode-project":e["x-opencode-project"]||"global",...m?{"x-real-ip":m}:{},Accept:b?"text/event-stream":"*/*"};return c.endsWith("/messages")&&(n["anthropic-version"]=h.b8),n}}var cb=c(39141);let cc="https://opencode.ai/zen/v1";function cd(a){let b=(cb.vq["opencode-zen"]||[]).find(b=>b.id===a);return b?.targetFormat==="claude"}class ce extends f.H{constructor(){super("opencode-zen",cb.xq["opencode-zen"])}buildUrl(a){return this._lastModel=a,cd(a)?`${cc}/messages`:`${cc}/chat/completions`}buildHeaders(a,b=!0){let c=a?.apiKey||a?.accessToken,d={"Content-Type":"application/json"};return cd(this._lastModel)?(d["x-api-key"]=c,d["anthropic-version"]=h.b8):d.Authorization=`Bearer ${c}`,b&&(d.Accept="text/event-stream"),d}transformRequest(a,b){return p({provider:this.provider,model:a,body:b})}}var cf=c(6595);let cg="x-opencode-session",ch="_opencodeGoSession";function ci(a){if("string"!=typeof a)return null;let b=a.trim();return!b||b.length>256?null:b}function cj(a){let b=(0,aZ.SM)("opencode-go").find(b=>b.id===String(a||"").replace(/\([^()]+\)\s*$/,"").trim());return"openai-responses"===(0,cf.gr)(b)}class ck extends C{constructor(){super("opencode-go")}buildUrl(a,b,c=0,d=null){return cj(a)?"https://opencode.ai/zen/go/v1/responses":super.buildUrl(a,b,c,d)}prepareRequestCredentials({body:a,credentials:b,providerSessionId:c,clientTool:d}={}){let f,g=b||{},h=function(a){if(!a||"object"!=typeof a)return null;for(let[b,c]of Object.entries(a))if(b.toLowerCase()===cg)return ci(c);return null}(g.rawHeaders),i=ci(c)||(0,u.oV)({headers:g.rawHeaders,body:a,connectionId:g.connectionId,scope:"opencode-go"});return{...g,[ch]:h||(f=e.createHash("sha256").update(`opencode-go\0${d||"generic"}\0${i}`).digest("hex").slice(0,32),`ses_${f}`)}}async execute(a){let b=this.prepareRequestCredentials(a);return super.execute({...a,credentials:b})}buildHeaders(a,b=!0,c,d){let e=super.buildHeaders(a||{},b,c,d),f=a?.[ch];if(f)return e[cg]=f,e;let g=this.prepareRequestCredentials({credentials:a});return e[cg]=g[ch],e}transformRequest(a,b,c,d){let e=super.transformRequest(a,b);if(!cj(a||b?.model))return e;let f=(0,aX.me)(e.input);return f&&(e.input=f),Array.isArray(e.input)&&0!==e.input.length||(e.input=[{type:"message",role:"user",content:[{type:"input_text",text:"..."}]}]),void 0===e.max_output_tokens&&(void 0!==e.max_completion_tokens?e.max_output_tokens=e.max_completion_tokens:void 0!==e.max_tokens&&(e.max_output_tokens=e.max_tokens)),delete e.max_tokens,delete e.max_completion_tokens,void 0!==e.reasoning_effort&&void 0===e.reasoning&&(e.reasoning={effort:e.reasoning_effort,summary:"auto"}),!e.reasoning||"object"!=typeof e.reasoning||Array.isArray(e.reasoning)||e.reasoning.summary||(e.reasoning.summary="auto"),delete e.reasoning_effort,e.stream=!0,e.store=!1,!function(a){if(!Array.isArray(a.tools))return;let b=new Set;if(a.tools=a.tools.filter(a=>{if(!a||"object"!=typeof a||Array.isArray(a))return!1;let c=a.function&&"object"==typeof a.function&&!Array.isArray(a.function)?a.function:null,d=("string"==typeof a.name?a.name:"string"==typeof c?.name?c.name:"").trim();if(!d)return!1;let e="string"==typeof a.description?a.description:"string"==typeof c?.description?c.description:"",f=a.parameters&&"object"==typeof a.parameters&&!Array.isArray(a.parameters)?a.parameters:c?.parameters&&"object"==typeof c.parameters&&!Array.isArray(c.parameters)?c.parameters:{type:"object",properties:{}};for(let b of("object"!==f.type||f.properties||(f={...f,properties:{}}),Object.keys(a)))delete a[b];return a.type="function",a.name=d.slice(0,128),e&&(a.description=e),a.parameters=f,b.add(a.name),!0}),a.tool_choice&&"object"==typeof a.tool_choice&&!Array.isArray(a.tool_choice)&&"function"===a.tool_choice.type){let c="string"==typeof a.tool_choice.name?a.tool_choice.name.trim():"";c&&b.has(c)||delete a.tool_choice}}(e),Array.isArray(e.input)&&(e.input=e.input.filter(a=>!!(!a||"object"!=typeof a||Array.isArray(a))||"reasoning"!==a.type&&((delete a.encrypted_content,delete a.reasoning_encrypted_content,"function_call"===a.type)?!!a.name&&"string"==typeof a.name&&""!==a.name.trim()&&(a.name=a.name.trim().slice(0,128),a.call_id=(0,aX.N8)(a.call_id),a.arguments=(0,aX.We)(a.arguments),!0):("function_call_output"===a.type&&(a.call_id=(0,aX.N8)(a.call_id),a.output=(0,aX.DP)(a.output)),!0)))),e}}let cl=g.xq["grok-web"].baseUrl,cm={"grok-3":{grokModel:"grok-3",modelMode:"MODEL_MODE_GROK_3",isThinking:!1},"grok-3-mini":{grokModel:"grok-3",modelMode:"MODEL_MODE_GROK_3_MINI_THINKING",isThinking:!0},"grok-3-thinking":{grokModel:"grok-3",modelMode:"MODEL_MODE_GROK_3_THINKING",isThinking:!0},"grok-4":{grokModel:"grok-4",modelMode:"MODEL_MODE_GROK_4",isThinking:!1},"grok-4-mini":{grokModel:"grok-4-mini",modelMode:"MODEL_MODE_GROK_4_MINI_THINKING",isThinking:!0},"grok-4-thinking":{grokModel:"grok-4",modelMode:"MODEL_MODE_GROK_4_THINKING",isThinking:!0},"grok-4-heavy":{grokModel:"grok-4",modelMode:"MODEL_MODE_HEAVY",isThinking:!0},"grok-4.1-mini":{grokModel:"grok-4-1-thinking-1129",modelMode:"MODEL_MODE_GROK_4_1_MINI_THINKING",isThinking:!0},"grok-4.1-fast":{grokModel:"grok-4-1-thinking-1129",modelMode:"MODEL_MODE_FAST",isThinking:!1},"grok-4.1-expert":{grokModel:"grok-4-1-thinking-1129",modelMode:"MODEL_MODE_EXPERT",isThinking:!0},"grok-4.1-thinking":{grokModel:"grok-4-1-thinking-1129",modelMode:"MODEL_MODE_GROK_4_1_THINKING",isThinking:!0},"grok-4.2":{grokModel:"grok-420",modelMode:"MODEL_MODE_GROK_420",isThinking:!1},"grok-4.20":{grokModel:"grok-420",modelMode:"MODEL_MODE_GROK_420",isThinking:!1},"grok-4.20-beta":{grokModel:"grok-420",modelMode:"MODEL_MODE_GROK_420",isThinking:!1}};function cn(a,b=!1){let c=b?"abcdefghijklmnopqrstuvwxyz0123456789":"abcdefghijklmnopqrstuvwxyz",d="";for(let b=0;b<a;b++)d+=c[Math.floor(Math.random()*c.length)];return d}function co(a){let b=new Uint8Array(a);return crypto.getRandomValues(b),Array.from(b,a=>a.toString(16).padStart(2,"0")).join("")}async function*cp(a,b){let c=a.getReader(),d=new TextDecoder,e="";try{for(;;){if(b?.aborted)return;let{value:a,done:f}=await c.read();if(f)break;for(e+=d.decode(a,{stream:!0});;){let a=e.indexOf("\n");if(a<0)break;let b=e.slice(0,a).trim();if(e=e.slice(a+1),b)try{yield JSON.parse(b)}catch{}}}let a=(e+=d.decode()).trim();if(a)try{yield JSON.parse(a)}catch{}}finally{await c.cancel().catch(()=>{}),c.releaseLock()}}async function*cq(a,b,c){let d="",e="",f=!1;for await(let g of cp(a,c)){if(g.error)return void(yield{error:g.error.message||`Grok error: ${g.error.code}`,done:!0});let a=g.result?.response;if(a){if(a.llmInfo?.modelHash&&!d&&(d=a.llmInfo.modelHash),a.responseId&&(e=a.responseId),a.modelResponse){let c=a.modelResponse;f&&b&&(c.message&&(yield{thinking:c.message}),f=!1),c.message&&(yield{fullMessage:c.message,fingerprint:d,responseId:e}),c.metadata?.llm_info?.modelHash&&(d=c.metadata.llm_info.modelHash);continue}null!=a.token&&(yield{delta:a.token,fingerprint:d,responseId:e})}}yield{done:!0,fingerprint:d,responseId:e}}async function cr(a,b,c,d,e,f){let g="",h="",i=[];for await(let b of cq(a,e,f)){if(b.fingerprint&&(h=b.fingerprint),b.error)return new Response(JSON.stringify({error:{message:b.error,type:"upstream_error",code:"GROK_ERROR"}}),{status:502,headers:{"Content-Type":"application/json"}});if(b.thinking){i.push(b.thinking);continue}if(b.done)break;b.fullMessage?g=b.fullMessage:b.delta&&(g+=b.delta)}let j={role:"assistant",content:g};i.length>0&&(j.reasoning_content=i.join("\n"));let k=Math.ceil(g.length/4),l=Math.ceil(g.length/4);return new Response(JSON.stringify({id:c,object:"chat.completion",created:d,model:b,system_fingerprint:h||null,choices:[{index:0,message:j,finish_reason:"stop",logprobs:null}],usage:{prompt_tokens:k,completion_tokens:l,total_tokens:k+l}}),{status:200,headers:{"Content-Type":"application/json"}})}class cs extends f.H{constructor(){super("grok-web",g.xq["grok-web"])}async execute({model:a,body:b,stream:c,credentials:d,signal:e,log:f}){let g,h,i=b?.messages;if(!i||!Array.isArray(i)||0===i.length)return{response:new Response(JSON.stringify({error:{message:"Missing or empty messages array",type:"invalid_request"}}),{status:400,headers:{"Content-Type":"application/json"}}),url:cl,headers:{},transformedBody:b};let j=cm[a];j||f?.info?.("GROK-WEB",`Unmapped model ${a}, defaulting to grok-4.1-fast`);let{grokModel:k,modelMode:l,isThinking:m}=j||cm["grok-4.1-fast"],n=function(a){let b=[];for(let c of a){let a=String(c.role||"user");"developer"===a&&(a="system");let d="";"string"==typeof c.content?d=c.content:Array.isArray(c.content)&&(d=c.content.filter(a=>"text"===a.type).map(a=>String(a.text||"")).join(" ")),d.trim()&&b.push({role:a,text:d})}let c=-1;for(let a=b.length-1;a>=0;a--)if("user"===b[a].role){c=a;break}let d=[];for(let a=0;a<b.length;a++){let{role:e,text:f}=b[a];d.push(a===c?f:`${e}: ${f}`)}return d.join("\n\n")}(i);if(!n.trim())return{response:new Response(JSON.stringify({error:{message:"Empty query after processing",type:"invalid_request"}}),{status:400,headers:{"Content-Type":"application/json"}}),url:cl,headers:{},transformedBody:b};let o={temporary:!0,modelName:k,modelMode:l,message:n,fileAttachments:[],imageAttachments:[],disableSearch:!1,enableImageGeneration:!1,returnImageBytes:!1,returnRawGrokInXaiRequest:!1,enableImageStreaming:!1,imageGenerationCount:0,forceConcise:!1,toolOverrides:{},enableSideBySide:!0,sendFinalMetadata:!0,isReasoning:!1,disableTextFollowUps:!1,disableMemory:!0,forceSideBySide:!1,isAsyncChat:!1,disableSelfHarmShortCircuit:!1,deviceEnvInfo:{darkModeEnabled:!1,devicePixelRatio:2,screenWidth:2056,screenHeight:1329,viewportWidth:2056,viewportHeight:1083}},p=co(16),q=co(8),r={Accept:"*/*","Accept-Encoding":"gzip, deflate, br, zstd","Accept-Language":"en-US,en;q=0.9",Baggage:"sentry-environment=production,sentry-release=d6add6fb0460641fd482d767a335ef72b9b6abb8,sentry-public_key=b311e0f2690c81f25e2c4cf6d4f7ce1c","Cache-Control":"no-cache","Content-Type":"application/json",Origin:"https://grok.com",Pragma:"no-cache",Referer:"https://grok.com/","Sec-Ch-Ua":'"Google Chrome";v="136", "Chromium";v="136", "Not(A:Brand";v="24"',"Sec-Ch-Ua-Mobile":"?0","Sec-Ch-Ua-Platform":'"macOS"',"Sec-Fetch-Dest":"empty","Sec-Fetch-Mode":"cors","Sec-Fetch-Site":"same-origin","User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36","x-statsig-id":btoa(.5>Math.random()?`e:TypeError: Cannot read properties of null (reading 'children["${cn(5,!0)}"]')`:`e:TypeError: Cannot read properties of undefined (reading '${cn(10)}')`),"x-xai-request-id":crypto.randomUUID(),traceparent:`00-${p}-${q}-00`};if(d.apiKey){let a=d.apiKey;a.startsWith("sso=")&&(a=a.slice(4)),r.Cookie=`sso=${a}`}f?.info?.("GROK-WEB",`Query to ${a} (grok=${k}, mode=${l}), len=${n.length}`);try{g=await fetch(cl,{method:"POST",headers:r,body:JSON.stringify(o),signal:e})}catch(a){return f?.error?.("GROK-WEB",`Fetch failed: ${a.message||String(a)}`),{response:new Response(JSON.stringify({error:{message:`Grok connection failed: ${a.message||String(a)}`,type:"upstream_error"}}),{status:502,headers:{"Content-Type":"application/json"}}),url:cl,headers:r,transformedBody:o}}if(!g.ok){let a=g.status,b=`Grok returned HTTP ${a}`;return 401===a||403===a?b="Grok auth failed — SSO cookie may be expired. Re-paste your sso cookie value from grok.com.":429===a&&(b="Grok rate limited. Wait a moment and retry, or rotate cookies."),f?.warn?.("GROK-WEB",b),{response:new Response(JSON.stringify({error:{message:b,type:"upstream_error",code:`HTTP_${a}`}}),{status:a,headers:{"Content-Type":"application/json"}}),url:cl,headers:r,transformedBody:o}}if(!g.body)return{response:new Response(JSON.stringify({error:{message:"Grok returned empty response body",type:"upstream_error"}}),{status:502,headers:{"Content-Type":"application/json"}}),url:cl,headers:r,transformedBody:o};let s=`chatcmpl-grok-${crypto.randomUUID().slice(0,12)}`,t=Math.floor(Date.now()/1e3);if(c){var u;let b;h=new Response((u=g.body,b=new TextEncoder,new ReadableStream({async start(c){try{c.enqueue(b.encode(bm({id:s,object:"chat.completion.chunk",created:t,model:a,system_fingerprint:null,choices:[{index:0,delta:{role:"assistant"},finish_reason:null,logprobs:null}]})));let d="";for await(let f of cq(u,m,e)){if(f.fingerprint&&(d=f.fingerprint),f.error){c.enqueue(b.encode(bm({id:s,object:"chat.completion.chunk",created:t,model:a,system_fingerprint:d||null,choices:[{index:0,delta:{content:`[Error: ${f.error}]`},finish_reason:null,logprobs:null}]})));break}if(f.thinking){c.enqueue(b.encode(bm({id:s,object:"chat.completion.chunk",created:t,model:a,system_fingerprint:d||null,choices:[{index:0,delta:{reasoning_content:f.thinking},finish_reason:null,logprobs:null}]})));continue}if(f.done)break;f.delta&&c.enqueue(b.encode(bm({id:s,object:"chat.completion.chunk",created:t,model:a,system_fingerprint:d||null,choices:[{index:0,delta:{content:f.delta},finish_reason:null,logprobs:null}]})))}c.enqueue(b.encode(bm({id:s,object:"chat.completion.chunk",created:t,model:a,system_fingerprint:d||null,choices:[{index:0,delta:{},finish_reason:"stop",logprobs:null}]}))),c.enqueue(b.encode(Y.$U))}catch(d){c.enqueue(b.encode(bm({id:s,object:"chat.completion.chunk",created:t,model:a,system_fingerprint:null,choices:[{index:0,delta:{content:`[Stream error: ${d.message||String(d)}]`},finish_reason:"stop",logprobs:null}]}))),c.enqueue(b.encode(Y.$U))}finally{c.close()}}})),{status:200,headers:{...Y.uB}})}else h=await cr(g.body,a,s,t,m,e);return{response:h,url:cl,headers:r,transformedBody:o}}}var ct=c(13247);let{machineIdSync:cu}=(0,bp.createRequire)("file:///Volumes/Files/Projects/EzRouter/EzRouter/open-sse/shared/machineId.js")("node-machine-id"),cv=null;async function cw(a="endpoint-proxy-salt"){let b=function(){if(cv)return cv;try{cv=cu()}catch{cv=e.randomUUID()}return cv}();return e.createHash("sha256").update(b+a).digest("hex").substring(0,16)}let cx=new Set(["model","input","instructions","reasoning","reasoning_effort","include","tools","tool_choice","text","max_output_tokens","temperature","top_p","parallel_tool_calls","stream","store"]),cy=new Set(["system","user","assistant"]),cz=/^rs_[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i,cA=new Set(["function_call","function_call_output"]),cB=new Set(["internal_chat_message_metadata_passthrough"]),cC=new Set(["web_search","x_search"]),cD=new Set(["auto","none","required"]),cE=new Set(["low","medium","high","xhigh"]),cF={type:"object",properties:{input:{type:"string"}},required:["input"]};class cG extends Error{constructor(a,b=null){super(a),this.name="GrokCliCompatibilityError",this.status=400,this.path=b}}function cH(a,b){return Array.isArray(a)?a.flatMap(a=>!a||"object"!=typeof a||Array.isArray(a)||"string"!=typeof a.text?[]:[{type:b,text:a.text}]):[]}function cI(a,b,c){let d="string"==typeof a?a.trim():"";if(!d)throw new cG(`Grok CLI ${b} must be a non-empty string`,c);return d}function cJ(a){if("string"==typeof a)return a;try{return JSON.stringify(a)??"null"}catch{return"null"}}function cK(a){if(!a||"object"!=typeof a||Array.isArray(a))return null;if(["input_text","output_text","text"].includes(a.type)&&"string"==typeof a.text)return{type:"input_text",text:a.text};if("input_image"!==a.type)return null;let b={type:"input_image"};return("string"==typeof a.image_url&&a.image_url&&(b.image_url=a.image_url),"string"==typeof a.file_id&&a.file_id&&(b.file_id=a.file_id),b.image_url||b.file_id)?(["auto","low","high"].includes(a.detail)&&(b.detail=a.detail),b):null}function cL(a){return"number"==typeof a&&Number.isFinite(a)}function cM(a){if(!a||"object"!=typeof a||Array.isArray(a)||!["function","custom"].includes(a.type))return"";let b=a.name??a.function?.name;return"string"==typeof b?b.trim().slice(0,128):""}let cN=["low","medium","high","xhigh"],cO=new Map,cP=new WeakMap,cQ=new WeakMap;async function cR(a){let b=a?.providerSpecificData||{},c=b.deviceId||b.agentId;if(c)return c;let d=a?.connectionId||a?.id||b.userId||b.principalId||a?.userId||a?.providerUserId||b.email||a?.email||"anonymous";try{var f;let a,b,c=await cw("grok-cli-agent");return f=`${c}\0${d}`,(a=e.createHash("sha256").update(f).digest("hex").slice(0,32).split(""))[12]="5",a[16]=["8","9","a","b"][Number.parseInt(a[16],16)%4],b=a.join(""),`${b.slice(0,8)}-${b.slice(8,12)}-${b.slice(12,16)}-${b.slice(16,20)}-${b.slice(20)}`}catch{return e.randomUUID()}}class cS extends f.H{constructor(){super("grok-cli",g.xq["grok-cli"]),this._currentSessionId=null,this._currentReqId=null,this._currentTurnIdx=1,this._agentId=null}buildUrl(){return this.config.baseUrl}async refreshCredentials(a,b,c=null){return a?.refreshToken?(0,am.Vq)("grok-cli",a,b,c):null}needsRefresh(a){return(0,am.fp)("grok-cli",a)}buildHeaders(a,b=!0){let c=super.buildHeaders(a,b);for(let[a,b]of Object.entries(this.config.headers||{}))null!=b&&void 0===c[a]&&(c[a]=b);c["x-grok-client-identifier"]=this.config.clientIdentifier||c["x-grok-client-identifier"]||ct.rK,c["x-grok-client-version"]=this.config.clientVersion||c["x-grok-client-version"]||ct.uG,c["X-XAI-Token-Auth"]||="xai-grok-cli",c["x-authenticateresponse"]||="authenticate-response",c["x-grok-client-mode"]||="headless";let d=this._currentSessionId||a?.connectionId||e.randomUUID(),f=this._currentReqId||e.randomUUID();c["x-grok-session-id"]=d,c["x-grok-conv-id"]=d,c["x-grok-req-id"]=f,c["x-grok-turn-idx"]=String(this._currentTurnIdx||1),this._agentId&&(c["x-grok-agent-id"]=this._agentId),this._currentModel&&(c["x-grok-model-override"]=this._currentModel);let g=a?.providerSpecificData||{},h=g.userId||a?.userId||a?.providerUserId;return h&&(c["x-grok-user-id"]=h),g.deploymentId&&(c["x-grok-deployment-id"]=g.deploymentId),delete c["x-email"],delete c["x-userid"],c}parseError(a,b){if(402===a.status&&b)try{let a=JSON.parse(b),c=a?.code||"",d=a?.error||a?.message||b;return{status:402,message:"string"==typeof d?d:b,code:"string"==typeof c?c:void 0}}catch{}return super.parseError(a,b)}transformRequest(a,b,c,d){let f;this._currentSessionId=(f={prompt_cache_key:b?.prompt_cache_key,session_id:b?.session_id,conversation_id:b?.conversation_id,metadata:b?.metadata},(0,u.oV)({headers:d?.rawHeaders,body:f,connectionId:d?.connectionId||d?.id,workspaceId:d?.providerSpecificData?.workspaceId,scope:"grok-cli"})),this._currentReqId=function(a){if(!a||"object"!=typeof a)return e.randomUUID();let b=cQ.get(a);if(b)return b;let c=e.randomUUID();return cQ.set(a,c),c}(b);let g=d?.providerSpecificData?.deviceId||d?.providerSpecificData?.agentId||null;g&&(this._agentId=g);let h=b&&"object"==typeof b&&!Array.isArray(b)?b:{},i=h.model||a,j=function(a){if(!a||"string"!=typeof a)return null;for(let b of cN)if(a.endsWith(`-${b}`))return b;return null}(i),k=j?i.replace(RegExp(`-${j}$`),""):i,l=(0,aZ.kt)("gcli",i)||(0,aZ.kt)("grok-cli",i)||k;this._currentModel=l;let m=h.input;null==m&&Array.isArray(h.messages)&&(m=h.messages.map(a=>({type:"message",role:a?.role||"user",content:"string"==typeof a?.content?a.content:JSON.stringify(a?.content??"")})));let n={...h,model:l,input:m};h.reasoning?.effort==null&&null==h.reasoning_effort&&j&&(n.reasoning_effort=j);let{body:o,diagnostics:p}=function(a={},b={}){var c,d;let e;if(!a||"object"!=typeof a||Array.isArray(a))throw new cG("Grok CLI request body must be an object","body");let f={droppedTopLevel:Object.keys(a).filter(a=>!cx.has(a)),droppedInputTypes:[],droppedToolTypes:[],convertedCustomTools:0,repairedHistory:0},g=function(a,b){if("string"==typeof a)return[{type:"message",role:"user",content:a||"..."}];if(null==a)return[];if(!Array.isArray(a))throw new cG("Grok CLI input must be a string or array","input");var c=a.flatMap((a,c)=>{if(!a||"object"!=typeof a||Array.isArray(a))throw new cG("Grok CLI input item must be an object",`input[${c}]`);let d=function(a,b,c){let d=a.type||(a.role?"message":""),e=`input[${b}]`;if("message"===d){let b="string"==typeof a.role?a.role.trim().toLowerCase():"",c="developer"===b?"system":b;if(!cy.has(c))throw new cG(`Unsupported Grok CLI message role: ${b||"<missing>"}`,`${e}.role`);let d=function(a,b){if("string"==typeof a)return a.length?a:null;if(null==a)return null;if(!Array.isArray(a))throw new cG("Unsupported Grok CLI message content",b);let c=[];for(let d=0;d<a.length;d+=1){let e=a[d],f=`${b}[${d}]`;if(!e||"object"!=typeof e||Array.isArray(e))throw new cG("Unsupported Grok CLI message content",f);if(["input_text","output_text","text"].includes(e.type)){if("string"!=typeof e.text)throw new cG("Grok CLI message text must be a string",f);e.text.length&&c.push({type:"input_text",text:e.text});continue}if("input_image"!==e.type)throw new cG(`Unsupported Grok CLI message content type: ${e.type||"<missing>"}`,f);let g={type:"input_image"};if("string"==typeof e.image_url&&e.image_url&&(g.image_url=e.image_url),"string"==typeof e.file_id&&e.file_id&&(g.file_id=e.file_id),!g.image_url&&!g.file_id)throw new cG("Grok CLI input image requires image_url or file_id",f);["auto","low","high"].includes(e.detail)&&(g.detail=e.detail),c.push(g)}return c.length?c:null}(a.content,`${e}.content`);return null===d?null:{type:"message",role:c,content:d}}if("reasoning"===d){if(!("string"==typeof a.id&&"string"==typeof a.encrypted_content&&(cz.test(a.id)||a.id.startsWith("tco_")&&a.encrypted_content.startsWith(`${a.id}_`))))return c.droppedInputTypes.push("reasoning"),null;let b={type:"reasoning",id:a.id,encrypted_content:a.encrypted_content,summary:cH(a.summary,"summary_text")};return Array.isArray(a.content)&&(b.content=cH(a.content,"reasoning_text")),b}if("function_call"===d)return{type:"function_call",call_id:cI(a.call_id,"function call_id",e),name:cI(a.name,"function name",e),arguments:function(a){let b;if("string"==typeof a)b=a;else try{b=JSON.stringify(a??{})}catch{return"{}"}try{return JSON.parse(b),b}catch{return"{}"}}(a.arguments)};if(["function_call_output","custom_tool_call_output"].includes(d)){let b;return(b="string"==typeof a.call_id?a.call_id.trim():"")?{type:"function_call_output",call_id:b,output:function(a){if("string"==typeof a)return a;if(Array.isArray(a)&&a.length>0){let b=a.map(cK);if(b.every(Boolean))return b}return cJ(a)}(a.output)}:null}if("custom_tool_call"===d)return"string"==typeof a.id&&a.id.startsWith("ctc_")&&"string"==typeof a.call_id&&a.call_id.startsWith("xs_call-")?{type:"custom_tool_call",id:a.id,call_id:a.call_id,name:a.name,input:a.input,status:a.status}:{type:"function_call",call_id:cI(a.call_id,"custom tool call_id",e),name:cI(a.name,"custom tool name",e),arguments:JSON.stringify({input:cJ(a.input)})};if(["web_search_call","code_interpreter_call"].includes(d))return Object.fromEntries(Object.entries(a).filter(([a])=>!cB.has(a)).map(([a,b])=>[a,structuredClone(b)]));if("item_reference"===d)return null;throw new cG(`Unsupported Grok CLI input item type: ${d||"<missing>"}`,e)}(a,c,b);return d?[d]:[]});let d=[];for(let a=0;a<c.length;){if(!cA.has(c[a].type)){d.push(c[a]),a+=1;continue}let e=a+1;for(;e<c.length&&cA.has(c[e].type);)e+=1;d.push(...function(a,b){let c=new Map,d=new Map;for(let b=0;b<a.length;b+=1){let e=a[b];"function_call"!==e.type||c.has(e.call_id)?"function_call_output"===e.type&&d.set(e.call_id,b):c.set(e.call_id,e)}let e=[];for(let f=0;f<a.length;f+=1){let g=a[f];if("function_call"===g.type){if(c.get(g.call_id)!==g){b.repairedHistory+=1;continue}e.push(g);continue}if(!c.has(g.call_id)||d.get(g.call_id)!==f){b.repairedHistory+=1;continue}e.push(g)}for(let[a,f]of c)d.has(a)||(e.push({type:"function_call_output",call_id:a,output:`Tool execution was cancelled by the user (tool \`${f.name}\` was not executed).`}),b.repairedHistory+=1);return e}(c.slice(a,e),b)),a=e}return d}(a.input,f),h="string"==typeof a.instructions&&a.instructions.trim()?a.instructions:"";h&&(c=g[0],!(c?.type==="message"&&"system"===c.role&&("string"==typeof c.content?c.content===h:Array.isArray(c.content)&&1===c.content.length&&c.content[0]?.type==="input_text"&&c.content[0]?.text===h)))&&g.unshift({type:"message",role:"system",content:h}),0===g.length&&g.push({type:"message",role:"user",content:"..."});let i={model:b.model||a.model,input:g};Number.isInteger(a.max_output_tokens)&&a.max_output_tokens>0&&(i.max_output_tokens=a.max_output_tokens),cL(a.temperature)&&(i.temperature=a.temperature),cL(a.top_p)&&(i.top_p=a.top_p),"boolean"==typeof a.parallel_tool_calls&&(i.parallel_tool_calls=a.parallel_tool_calls);let j=function(a,b,c=""){if(!Array.isArray(a))return[];let d=[],e=[],f=new Set;for(let[c,g]of a.entries()){if(!g||"object"!=typeof g||Array.isArray(g)){b.droppedToolTypes.push("<invalid>");continue}let a="string"==typeof g.type?g.type:"";if(cC.has(a)){if(f.has(a)){b.droppedToolTypes.push(a);continue}f.add(a),e.push("web_search"===a?function(a){let b=Array.isArray(a.filters?.allowed_domains)?[...new Set(a.filters.allowed_domains.filter(a=>"string"==typeof a).map(a=>a.trim()).filter(Boolean))]:[];return b.length?{type:"web_search",filters:{allowed_domains:b}}:{type:"web_search"}}(g):{type:"x_search"});continue}let h="custom"===a,i="function"===a||h||!a&&(g.name||g.function);if(a&&!i)throw new cG(`Unsupported Grok CLI tool type: ${a}`,`tools[${c}].type`);if(!i){b.droppedToolTypes.push(a||"<missing>");continue}let j=function(a,b=!1){let c=a.function&&"object"==typeof a.function&&!Array.isArray(a.function)?a.function:null,d="string"==typeof a.name?a.name:c?.name,e="string"==typeof d?d.trim().slice(0,128):"";if(!e)return null;let f="string"==typeof a.description?a.description:c?.description,g=a.parameters&&"object"==typeof a.parameters&&!Array.isArray(a.parameters)?a.parameters:c?.parameters,h="boolean"==typeof a.strict?a.strict:c?.strict,i={type:"function",name:e};return"string"==typeof f&&f&&(i.description=f),i.parameters=b?structuredClone(cF):g&&"object"==typeof g&&!Array.isArray(g)?structuredClone(g):{type:"object",properties:{}},b||"boolean"!=typeof h||(i.strict=h),i}(g,h);if(!j){b.droppedToolTypes.push(a||"function");continue}h&&(b.convertedCustomTools+=1),d.push(j)}let g=new Set(e.map(a=>a.type)),h=d.filter(a=>!g.has(a.name)||(b.droppedToolTypes.push(`function:${a.name}`),!1));if(h.length+e.length<=200)return[...h,...e];let i=Math.max(0,200-e.length),j=h.slice(0,i),k=h.find(a=>a.name===c);k&&!j.includes(k)&&i>0&&(j[i-1]=k);let l=new Set(j);for(let a of h)l.has(a)||b.droppedToolTypes.push(`limit:function:${a.name}`);return[...j,...e]}(a.tools,f,cM(a.tool_choice));j.length&&(i.tools=j);let k=function(a,b){if(!b.length)return;if("string"==typeof a)return cD.has(a)?a:void 0;if(!a||"object"!=typeof a||Array.isArray(a)||!["function","custom"].includes(a.type))return;let c=cM(a),d=new Set(b.filter(a=>"function"===a.type).map(a=>a.name));return c&&d.has(c)?{type:"function",name:c}:void 0}(a.tool_choice,j);void 0!==k&&(i.tool_choice=k),i.reasoning={summary:"concise"},b.supportsReasoningEffort&&(i.reasoning.effort="max"===(e="string"==typeof(d=a.reasoning?.effort??a.reasoning_effort)?d.trim().toLowerCase():"")?"xhigh":cE.has(e)?e:"high"),i.include=["reasoning.encrypted_content"];let l=function(a){let b=a?.format;if(!b||"object"!=typeof b||Array.isArray(b))return;if("text"===b.type)return{format:{type:"text"}};if("json_schema"!==b.type||void 0===b.schema)return;let c={type:"json_schema",name:"string"==typeof b.name&&b.name.trim()?b.name.trim():"structured_output",schema:structuredClone(b.schema),strict:"boolean"!=typeof b.strict||b.strict};return"string"==typeof b.description&&b.description&&(c.description=b.description),{format:c}}(a.text);return l&&(i.text=l),i.stream=!0,i.store=!1,{body:i,diagnostics:f}}(n,{model:l,supportsReasoningEffort:(0,ct.Au)(l)});return(0,a$.s)("GROK_COMPAT",JSON.stringify(p)),this._currentTurnIdx=function(a,b,c=null){let d=function(a){if(!Array.isArray(a))return 1;let b=0;for(let c of a){if(!c||"object"!=typeof c||Array.isArray(c))continue;let a="string"==typeof c.type?c.type:"";"user"!==c.role||a&&"message"!==a||(b+=1)}return Math.max(1,b)}(b);if(!a)return d;if(c&&cP.has(c))return cP.get(c);let e=Date.now(),f=cO.get(a),g=f&&e-f.lastUsed<=aa.v1.sessionTtlMs?f.turn:0;f&&cO.delete(a);let h=g>0?Math.max(d,g+ +!!c):d;for(;cO.size>=5e3;)cO.delete(cO.keys().next().value);return cO.set(a,{turn:h,lastUsed:e}),c&&cP.set(c,h),h}(this._currentSessionId,o.input,b),o}async execute(a){let b=await cR(a.credentials);this._agentId=b;let c={...a.credentials||{},providerSpecificData:{...a.credentials?.providerSpecificData||{},agentId:b}};try{return await super.execute({...a,credentials:c})}catch(b){if(!(b instanceof cG))throw b;return{response:new Response(JSON.stringify({error:{message:b.message,type:"invalid_request_error",param:b.path,code:"grok_cli_compatibility_error"}}),{status:400,headers:{"Content-Type":"application/json"}}),url:this.buildUrl(a.model,a.stream,0,c),headers:{},transformedBody:a.body}}}}let cT=g.xq["perplexity-web"].baseUrl,cU="2.18",cV={"pplx-auto":["concise","pplx_pro"],"pplx-sonar":["copilot","experimental"],"pplx-gpt":["copilot","gpt54"],"pplx-gemini":["copilot","gemini31pro_high"],"pplx-sonnet":["copilot","claude46sonnet"],"pplx-opus":["copilot","claude46opus"],"pplx-nemotron":["copilot","nv_nemotron_3_super"]},cW={"pplx-gpt":"gpt54_thinking","pplx-sonnet":"claude46sonnetthinking","pplx-opus":"claude46opusthinking"},cX=/\[\d+\]/g,cY=/<grok:[^>]*>.*?<\/grok:[^>]*>/gs,cZ=/<grok:[^>]*\/>/g,c$=/<[?]xml[^?]*[?]>/g,c_=/<\/?response\b[^>]*>/gi,c0=/ {2,}/g,c1=/\n{3,}/g,c2=new Map;function c3(a){let b=a.map(a=>`${a.role}:${a.content}`).join("\n"),c=0x811c9dc5;for(let a=0;a<b.length;a++)c^=b.charCodeAt(a),c=0x1000193*c>>>0;return c.toString(16).padStart(8,"0")}function c4(a,b,c,d){if(!d)return;let e=c3([...a,{role:"user",content:b},{role:"assistant",content:c}]);if(c2.set(e,{backendUuid:d,ts:Date.now()}),c2.size>200){let a=null,b=1/0;for(let[c,d]of c2)d.ts<b&&(b=d.ts,a=c);a&&c2.delete(a)}}function c5(a,b=!0){let c=a;return c=(c=(c=(c=(c=c.replace(c$,"")).replace(cX,"")).replace(cY,"")).replace(cZ,"")).replace(c_,""),b&&(c=(c=(c=c.replace(c0," ")).replace(c1,"\n\n")).trim()),c}async function*c6(a,b){let c=a.getReader(),d=new TextDecoder,e="",f=[];function g(){if(0===f.length)return null;let a=f.join("\n");f=[];let b=a.trim();if(!b||"[DONE]"===b)return"done";try{return JSON.parse(b)}catch{return null}}try{for(;;){if(b?.aborted)return;let{value:a,done:h}=await c.read();if(h)break;for(e+=d.decode(a,{stream:!0});;){let a=e.indexOf("\n");if(a<0)break;let b=e.slice(0,a);e=e.slice(a+1);let c=b.endsWith("\r")?b.slice(0,-1):b;if(""===c){let a=g();if("done"===a)return;a&&(yield a);continue}if(c.startsWith("data:")&&f.push(c.slice(5).trimStart()),"event: end_of_stream"===c)return}}(e+=d.decode()).trim().startsWith("data:")&&f.push(e.trim().slice(5).trimStart());let a=g();a&&"done"!==a&&(yield a)}finally{await c.cancel().catch(()=>{}),c.releaseLock()}}async function*c7(a,b){let c="",d=null,e=0,f=new Set;for await(let g of c6(a,b)){if(g.error_code||g.error_message)return void(yield{error:g.error_message||`Perplexity error: ${g.error_code}`,done:!0});g.backend_uuid&&(d=g.backend_uuid);let a=g.blocks??[];for(let b of a){let a=b.intended_usage??"";if("pro_search_steps"===a&&b.plan_block?.steps){for(let a of b.plan_block.steps)if("SEARCH_WEB"===a.step_type)for(let b of a.search_web_content?.queries??[]){let a=b.query??"";a&&!f.has(a)&&(f.add(a),yield{thinking:`Searching: ${a}`,backendUuid:d??void 0})}else if("READ_RESULTS"===a.step_type)for(let b of(a.read_results_content?.urls??[]).slice(0,3))b&&!f.has(b)&&(f.add(b),yield{thinking:`Reading: ${b}`,backendUuid:d??void 0})}if("plan"===a&&b.plan_block?.goals)for(let a of b.plan_block.goals){let b=a.description??"";b&&!f.has(b)&&(f.add(b),yield{thinking:b,backendUuid:d??void 0})}if(!a.includes("markdown"))continue;let g=b.markdown_block;if(!g)continue;let h=g.chunks??[];if(0!==h.length)if("DONE"===g.progress)c=h.join("");else{let a=c+h.join("");if(a.length>e){let b=a.slice(e);c=a,e=a.length,yield{delta:b,answer:c,backendUuid:d??void 0}}}}if(0===a.length&&g.text){let a=g.text.trim();if(a.length>e){let b=a.slice(e);c=a,e=a.length,yield{delta:b,answer:c,backendUuid:d??void 0}}}if(g.final||"COMPLETED"===g.status)break}yield{delta:"",answer:c,backendUuid:d??void 0,done:!0}}async function c8(a,b,c,d,e,f,g){let h="",i=null,j=[];for await(let b of c7(a,g)){if(b.backendUuid&&(i=b.backendUuid),b.error)return new Response(JSON.stringify({error:{message:b.error,type:"upstream_error",code:"PPLX_ERROR"}}),{status:502,headers:{"Content-Type":"application/json"}});if(b.thinking){j.push(b.thinking);continue}if(b.done){h=b.answer||h;break}b.answer&&(h=b.answer)}c4(e,f,h=c5(h),i);let k=j.length>0?j.join("\n"):void 0,l={role:"assistant",content:h};k&&(l.reasoning_content=k);let m=Math.ceil(f.length/4),n=Math.ceil(h.length/4);return new Response(JSON.stringify({id:c,object:"chat.completion",created:d,model:b,system_fingerprint:null,choices:[{index:0,message:l,finish_reason:"stop",logprobs:null}],usage:{prompt_tokens:m,completion_tokens:n,total_tokens:m+n}}),{status:200,headers:{"Content-Type":"application/json"}})}class c9 extends f.H{constructor(){super("perplexity-web",g.xq["perplexity-web"])}async execute({model:a,body:b,stream:c,credentials:d,signal:e,log:f}){var g,h,i,j,k;let l,m,n,o,p,q=b?.messages;if(!q||!Array.isArray(q)||0===q.length)return{response:new Response(JSON.stringify({error:{message:"Missing or empty messages array",type:"invalid_request"}}),{status:400,headers:{"Content-Type":"application/json"}}),url:cT,headers:{},transformedBody:b};(b?.thinking===!0||b?.reasoning_effort!=null&&"none"!==b.reasoning_effort)&&cW[a]?(l="copilot",m=cW[a],f?.info?.("PPLX-WEB",`Thinking mode → ${a} using ${m}`)):cV[a]?[l,m]=cV[a]:(l="copilot",m=a,f?.info?.("PPLX-WEB",`Unmapped model ${a}, using as raw preference`));let r=function(a){let b="",c=[];for(let d of a){let a=String(d.role||"user");"developer"===a&&(a="system");let e="";"string"==typeof d.content?e=d.content:Array.isArray(d.content)&&(e=d.content.filter(a=>"text"===a.type).map(a=>String(a.text||"")).join(" ")),e.trim()&&("system"===a?b+=e+"\n":("user"===a||"assistant"===a)&&c.push({role:a,content:e}))}let d="";return c.length>0&&"user"===c[c.length-1].role&&(d=c.pop().content),{systemMsg:b,history:c,currentMsg:d}}(q),s=function(a){if(0===a.length)return null;let b=c3(a),c=c2.get(b);return c?Date.now()-c.ts>36e5?(c2.delete(b),null):c.backendUuid:null}(r.history);s&&f?.info?.("PPLX-WEB",`Session continue: ${s.slice(0,12)}...`);let t=function(a,b,c){if(b)return a.currentMsg;let d={},e=[];a.systemMsg.trim()&&e.push(a.systemMsg.trim());let f=function(a){if(!Array.isArray(a)||0===a.length)return"";let b=a.map(a=>{let b=a?.function||a||{},c=b.name||"unnamed",d=(b.description||"").split("\n")[0].slice(0,200);return`- ${c}: ${d}`});return`Available tools (reference only, cannot invoke):
|
|
154
|
+
${b.join("\n")}`}(c);f&&e.push(f),e.push("You have built-in web search. Answer questions directly using search results."),d.instructions=e,a.history.length>0&&(d.history=a.history),a.currentMsg?d.query=a.currentMsg:0===a.history.length&&(d.query="");let g=JSON.stringify(d);return g.length>96e3?g.slice(-96e3):g}(r,s,b?.tools);if(!t.trim())return{response:new Response(JSON.stringify({error:{message:"Empty query after processing",type:"invalid_request"}}),{status:400,headers:{"Content-Type":"application/json"}}),url:cT,headers:{},transformedBody:b};let u=(g=l,h=m,p="u">typeof Intl?Intl.DateTimeFormat().resolvedOptions().timeZone:"UTC",{query_str:t,params:{query_str:t,search_focus:"internet",mode:g,model_preference:h,sources:["web"],attachments:[],frontend_uuid:crypto.randomUUID(),frontend_context_uuid:crypto.randomUUID(),version:cU,language:"en-US",timezone:p,search_recency_filter:null,is_incognito:!0,use_schematized_api:!0,last_backend_uuid:s}}),v={"Content-Type":"application/json",Accept:"text/event-stream",Origin:"https://www.perplexity.ai",Referer:"https://www.perplexity.ai/","User-Agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36","X-App-ApiClient":"default","X-App-ApiVersion":cU};d.accessToken?v.Authorization=`Bearer ${d.accessToken}`:d.apiKey&&(v.Cookie=`__Secure-next-auth.session-token=${d.apiKey}`),f?.info?.("PPLX-WEB",`Query to ${a} (pref=${m}, mode=${l}), len=${t.length}`);let w={method:"POST",headers:v,body:JSON.stringify(u)};e&&(w.signal=e);try{n=await fetch(cT,w)}catch(a){return f?.error?.("PPLX-WEB",`Fetch failed: ${a.message||String(a)}`),{response:new Response(JSON.stringify({error:{message:`Perplexity connection failed: ${a.message||String(a)}`,type:"upstream_error"}}),{status:502,headers:{"Content-Type":"application/json"}}),url:cT,headers:v,transformedBody:u}}if(!n.ok){let a=n.status,b=`Perplexity returned HTTP ${a}`;return 401===a||403===a?b="Perplexity auth failed — session cookie may be expired. Re-paste your __Secure-next-auth.session-token.":429===a&&(b="Perplexity rate limited. Wait a moment and retry."),f?.warn?.("PPLX-WEB",b),{response:new Response(JSON.stringify({error:{message:b,type:"upstream_error",code:`HTTP_${a}`}}),{status:a,headers:{"Content-Type":"application/json"}}),url:cT,headers:v,transformedBody:u}}if(!n.body)return{response:new Response(JSON.stringify({error:{message:"Perplexity returned empty response body",type:"upstream_error"}}),{status:502,headers:{"Content-Type":"application/json"}}),url:cT,headers:v,transformedBody:u};let x=`chatcmpl-pplx-${crypto.randomUUID().slice(0,12)}`,y=Math.floor(Date.now()/1e3);if(c){let b;o=new Response((i=n.body,j=r.history,k=r.currentMsg,b=new TextEncoder,new ReadableStream({async start(c){try{c.enqueue(b.encode(bm({id:x,object:"chat.completion.chunk",created:y,model:a,system_fingerprint:null,choices:[{index:0,delta:{role:"assistant"},finish_reason:null,logprobs:null}]})));let d="",f=null;for await(let g of c7(i,e)){if(g.backendUuid&&(f=g.backendUuid),g.error){c.enqueue(b.encode(bm({id:x,object:"chat.completion.chunk",created:y,model:a,system_fingerprint:null,choices:[{index:0,delta:{content:`[Error: ${g.error}]`},finish_reason:null,logprobs:null}]})));break}if(g.thinking){c.enqueue(b.encode(bm({id:x,object:"chat.completion.chunk",created:y,model:a,system_fingerprint:null,choices:[{index:0,delta:{reasoning_content:g.thinking+"\n"},finish_reason:null,logprobs:null}]})));continue}if(g.done){d=g.answer||d;break}let e=g.delta||"";e&&(e=c5(e,!1))&&c.enqueue(b.encode(bm({id:x,object:"chat.completion.chunk",created:y,model:a,system_fingerprint:null,choices:[{index:0,delta:{content:e},finish_reason:null,logprobs:null}]}))),g.answer&&(d=g.answer)}c.enqueue(b.encode(bm({id:x,object:"chat.completion.chunk",created:y,model:a,system_fingerprint:null,choices:[{index:0,delta:{},finish_reason:"stop",logprobs:null}]}))),c.enqueue(b.encode(Y.$U)),c4(j,k,c5(d),f)}catch(d){c.enqueue(b.encode(bm({id:x,object:"chat.completion.chunk",created:y,model:a,system_fingerprint:null,choices:[{index:0,delta:{content:`[Stream error: ${d.message||String(d)}]`},finish_reason:"stop",logprobs:null}]}))),c.enqueue(b.encode(Y.$U))}finally{c.close()}}})),{status:200,headers:{...Y.uB}})}else o=await c8(n.body,a,x,y,r.history,r.currentMsg,e);return{response:o,url:cT,headers:v,transformedBody:u}}}class da extends C{constructor(){super("ollama-local")}buildUrl(a,b,c=0,d=null){return`${(0,g.Ak)(d)}/api/chat`}}var db=c(9537);class dc extends f.H{constructor(){super("commandcode",g.xq.commandcode)}transformRequest(a,b,c,d){return b.stream=!0,b}buildHeaders(a,b=!0){let c={"Content-Type":"application/json",...this.config.headers||{},"x-session-id":(0,ah.randomUUID)()},d=a?.apiKey||a?.accessToken;return d&&(c.Authorization=`Bearer ${d}`),b&&(c.Accept="text/event-stream"),c}async execute(a){for(let b=0;b<=2;b++){let c=await super.execute(a);if(!c?.response?.ok||!c.response.body)return c;let d=await dd(c.response,a.model);if(!d.ok&&b<2&&(502===d.status||503===d.status||504===d.status)){a.log?.debug?.("RETRY",`CommandCode upstream returned status ${d.status}, retrying ${b+1}/2...`),await new Promise(a=>setTimeout(a,1e3*(b+1)));continue}return c.response=d,c}}parseError(a,b){let c=null;try{c=JSON.parse(b||"{}")}catch{c=null}let d=c?.error||c,e=d?.message||c?.message||b||a.statusText;return{status:Number(d?.code||d?.statusCode||a.status)||a.status,message:e||`CommandCode upstream error: ${a.status}`}}}async function dd(a,b){var c,d,e;let f,g,h=a.body.getReader(),i=new TextDecoder,j="",k=[],l=null;try{for(;;){let{value:a,done:b}=await h.read();if(b){let a=j.trim();if(a)try{let b=a.startsWith("data:")?a.slice(5).trim():a,c=JSON.parse(b);c?.type==="error"?l=c:k.push(a)}catch{k.push(a)}break}let c=(j+=i.decode(a,{stream:!0})).split("\n");j=c.pop()||"";let d=!1;for(let a of c){let b,c=a.trim();if(!c)continue;let e=c.startsWith("data:")?c.slice(5).trim():c;if(!e||"[DONE]"===e){k.push(c),d=!0;break}try{b=JSON.parse(e)}catch{k.push(c);continue}if(b?.type==="error"){l=b,d=!0;break}if(k.push(c),b?.type==="text-delta"||b?.type==="reasoning-delta"||b?.type==="tool-input-start"||b?.type==="tool-call"||b?.type==="finish"||b?.type==="finish-step"){d=!0;break}}if(d)break}}catch{try{h.releaseLock()}catch{}return a}if(l){try{await h.cancel()}catch{}let{statusCode:a,message:b,type:c}=function(a){if(!a||"object"!=typeof a)return{statusCode:503,message:"CommandCode upstream error",type:"server_error"};let b=a.error??a.message??"unknown",c="",d=null,e="server_error";if("object"==typeof b&&null!==b?(c=b.message||b.error||JSON.stringify(b),b.statusCode&&Number.isInteger(Number(b.statusCode))?d=Number(b.statusCode):b.status&&Number.isInteger(Number(b.status))&&(d=Number(b.status)),b.type&&(e=b.type)):c="string"==typeof b?b:JSON.stringify(b),a.statusCode&&Number.isInteger(Number(a.statusCode))&&(d=Number(a.statusCode)),!d||d<400||d>599){let a=c.toLowerCase();a.includes("rate limit")||a.includes("too many requests")?(d=429,e="rate_limit_error"):a.includes("unauthorized")||a.includes("invalid api key")||a.includes("authentication")?(d=401,e="authentication_error"):a.includes("payment required")||a.includes("billing")?(d=402,e="billing_error"):a.includes("quota")||a.includes("forbidden")||a.includes("permission")?(d=403,e="permission_error"):a.includes("not found")?(d=404,e="invalid_request_error"):a.includes("unavailable")||a.includes("overloaded")||a.includes("server error")?(d=503,e="server_error"):d=503}return{statusCode:d,message:c,type:e}}(l);return new Response(JSON.stringify({error:{message:`[CommandCode error: ${b}]`,type:c,code:a}}),{status:a,statusText:503===a?"Service Unavailable":429===a?"Too Many Requests":"Bad Gateway",headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}})}return function(a,b,c=null){let d=new TextDecoder,e=new TextEncoder,f="",g={model:b},h=(a,b)=>{if(a)for(let c of Array.isArray(a)?a:[a])null!=c&&b.enqueue(e.encode(`data: ${JSON.stringify(c)}
|
|
155
|
+
|
|
156
|
+
`))},i=new TransformStream({transform(a,b){let c=(f+=d.decode(a,{stream:!0})).split("\n");for(let a of(f=c.pop()||"",c)){let c=a.trim();c&&h((0,db.H)(c,g),b)}},flush(a){let b=f.trim();b&&h((0,db.H)(b,g),a),a.enqueue(e.encode(Y.$U))}});return new Response(a.pipeThrough(i),{status:c?.status||200,statusText:c?.statusText||"OK",headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive",...c?.headers?Object.fromEntries(c.headers.entries()):{},"content-type":"text/event-stream"}})}((c=k,d=j,e=h,f=new TextEncoder,g=!1,new ReadableStream({async pull(a){if(!g){g=!0;let b=c.join("\n");b&&d?b+="\n"+d:d?b=d:b&&(b+="\n"),b&&a.enqueue(f.encode(b))}try{let{value:b,done:c}=await e.read();c?a.close():a.enqueue(b)}catch(b){a.error(b)}},async cancel(a){try{await e.cancel(a)}catch{}}})),b,a)}class de extends C{constructor(){super("xiaomi-tokenplan")}buildUrl(a,b,c=0,d=null){let e=(0,g.Yg)(d);return d?.runtimeTransport?.format==="claude"?`${e.replace(/\/v1\/?$/,"")}/anthropic/v1/messages`:`${e}/chat/completions`}}var df=c(78670);let dg=new Set(["mimo-x-pro-preview","mimo-x-flash-preview"]),dh="__mimoAccountCookie";class di extends C{constructor(){super("xiaomi-mimo")}static isPreviewModel(a){let b,c;return dg.has((c=(b=String(a||"")).indexOf("/"))>=0?b.slice(c+1):b)}buildUrl(a,b,c=0,d=null){return di.isPreviewModel(a)?`${df.SE}/api/route/chat/completions`:super.buildUrl(a,b,c,d)}buildHeaders(a,b=!0,c,d){return di.isPreviewModel(d)&&a?.[dh]?{"Content-Type":"application/json",Accept:b?"text/event-stream":"application/json","User-Agent":df.$6,Cookie:a[dh]}:super.buildHeaders(a,b,c,d)}transformRequest(a,b,c,d){let e=super.transformRequest(a,b,c,d);return di.isPreviewModel(a)&&(null==e.thinking&&(e.thinking={type:"enabled"}),null==e.temperature&&(e.temperature=1),null==e.top_p&&(e.top_p=.95),e.max_tokens||(e.max_tokens=4096)),e}async execute(a){let{model:b,credentials:c,proxyOptions:d=null}=a;if(!di.isPreviewModel(b))return super.execute(a);let e=await (0,df.Me)(c?.providerSpecificData,d);if(!e)throw Error("Xiaomi MiMo account session unavailable. Sign in to MiMo Desktop once so its passToken is present, then retry.");c[dh]=e;let f=await super.execute(a);if(401===f.response.status){(0,df.Nv)();let b=await (0,df.Me)(c?.providerSpecificData,d).catch(()=>null);if(b)return c[dh]=b,super.execute(a)}return f}}var dj=c(21820);let dk=g.xq["mimo-free"].baseUrl,dl="abcdefghijklmnopqrstuvwxyz0123456789",dm=["Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36","Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36","Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36"],dn="You are MiMoCode, an interactive CLI tool that helps users with software engineering tasks.",dp=null,dq=0;async function dr(a=null){if(dp&&Date.now()<dq-3e5)return dp;let b=await (0,l.proxyAwareFetch)("https://api.xiaomimimo.com/api/free-ai/bootstrap",{method:"POST",headers:{"Content-Type":"application/json","User-Agent":dm[Math.floor(Math.random()*dm.length)]},body:JSON.stringify({client:function(){let a="unknown-user";try{a=dj.userInfo().username}catch{}let b=(dj.cpus()[0]?.model||"unknown-cpu").trim(),c=`${dj.hostname()}|${dj.platform()}|${dj.arch()}|${b}|${a}`;return(0,ah.createHash)("sha256").update(c).digest("hex")}()})},a);if(!b.ok)throw Error(`MiMo bootstrap failed: ${b.status}`);let c=await b.json();if(!c.jwt)throw Error("MiMo bootstrap returned no JWT");return dp=c.jwt,dq=function(a){try{let b=JSON.parse(Buffer.from(a.split(".")[1],"base64").toString());if(b.exp)return 1e3*b.exp}catch{}return Date.now()+3e6}(c.jwt),dp}class ds extends f.H{constructor(){super("mimo-free",g.xq["mimo-free"])}buildUrl(){return dk}buildHeaders(a,b=!0){let c=a?.connectionId||function(){let a="ses_";for(let b=0;b<24;b++)a+=dl[Math.floor(Math.random()*dl.length)];return a}();return{"Content-Type":"application/json","X-Mimo-Source":"mimocode-cli-free","User-Agent":dm[Math.floor(Math.random()*dm.length)],"x-session-affinity":c,Accept:b?"text/event-stream":"application/json"}}transformRequest(a,b){let c;return!Array.isArray(c=b?.messages)||c.some(a=>a?.role==="system"&&"string"==typeof a.content&&a.content.includes(dn))?b:{...b,messages:[{role:"system",content:dn},...c]}}async execute({model:a,body:b,stream:c,credentials:d,signal:e,log:f,proxyOptions:g=null}){let h;try{h=await dr(g)}catch(a){throw f?.error?.("AUTH",`MiMo bootstrap failed: ${a.message}`),a}let i=this.buildUrl(),j=this.transformRequest(a,b),k={...this.buildHeaders(d,c),Authorization:`Bearer ${h}`},m=JSON.stringify(j);f?.debug?.("FETCH",`MIMO-FREE → ${i} | body=${m.length}B`);let n=await (0,l.proxyAwareFetch)(i,{method:"POST",headers:k,body:m,signal:e},g);return 401===n.status||403===n.status?(f?.debug?.("AUTH",`MiMo auth failed (${n.status}), re-bootstrapping...`),dp=null,dq=0,h=await dr(g),k.Authorization=`Bearer ${h}`,{response:await (0,l.proxyAwareFetch)(i,{method:"POST",headers:k,body:m,signal:e},g),url:i,headers:k,transformedBody:j}):{response:n,url:i,headers:k,transformedBody:j}}}let dt=Object.freeze(["model","messages","stream","temperature","top_p","top_k","n","stop","max_tokens","max_completion_tokens","presence_penalty","frequency_penalty","logit_bias","user","tools","tool_choice","parallel_tool_calls","response_format","seed","reasoning_effort","reasoning_summary"]),du=Object.freeze(new Set(["none","off",""]));function dv(a,{preserveUnknownFields:b=!1}={}){if(!a||"object"!=typeof a)return{stream:!0,messages:[]};let c=b?{...a}:{};if(!b)for(let b of dt)void 0!==a[b]&&(c[b]=a[b]);c.stream=!0;let d=c.reasoning_effort,e="string"==typeof d?d.trim().toLowerCase():null==d?"":String(d);return!e||du.has(e)?(delete c.reasoning_effort,delete c.reasoning_summary):(null==c.reasoning_summary||""===c.reasoning_summary)&&(c.reasoning_summary="auto"),Array.isArray(c.tools)&&0===c.tools.length&&delete c.tools,c}function dw(a){if(!a.startsWith("data:"))return a;let b=a.slice(5).trimStart();if(!b||"[DONE]"===b)return a;try{let c=JSON.parse(b),d=function(a){if(!a||"object"!=typeof a||!Array.isArray(a.choices))return a;let b=!1,c=a.choices.map(a=>{if(!a||"object"!=typeof a)return a;let c=a;""===a.finish_reason&&(c={...c,finish_reason:null},b=!0);let d=c.delta;if(d&&"object"==typeof d&&d.function_call){let a=d.function_call,e=a?.name,f=a?.arguments;if((null==e||""===e)&&(null==f||""===f)){let{function_call:a,...e}=d;c={...c,delta:e},b=!0}}return c});return b?{...a,choices:c}:a}(c);if(d===c)return a;return`data: ${JSON.stringify(d)}`}catch{return a}}class dx extends C{constructor(){super("codebuddy-cn")}transformRequest(a,b,c,d){let e=super.transformRequest(a,b,c,d);return dv(e&&"object"==typeof e?e:b)}async execute(a){let b,c,d,e=await super.execute(a);if(!e?.response?.ok||!e.response.body)return e;let f=new Response(e.response.body.pipeThrough((b="",c=new TextDecoder,d=new TextEncoder,new TransformStream({transform(a,e){let f=(b+="string"==typeof a?a:c.decode(a,{stream:!0})).split("\n");for(let a of(b=f.pop()??"",f))e.enqueue(d.encode(`${dw(a)}
|
|
157
|
+
`))},flush(a){b.length&&(a.enqueue(d.encode(dw(b))),b="")}}))),{status:e.response.status,statusText:e.response.statusText,headers:e.response.headers});return{...e,response:f}}}class dy extends C{constructor(){super("codebuddy-intl")}transformRequest(a,b,c,d){let e=super.transformRequest(a,b,c,d);return dv(e&&"object"==typeof e?e:b,{preserveUnknownFields:!0})}}let dz=parseInt(process.env.TRAE_STREAM_TIMEOUT_MS||"300000",10);class dA extends f.H{constructor(){super("trae",g.xq.trae)}base(){return(this.config.baseUrl||"https://core-normal.trae.ai/api/remote/v1").replace(/\/$/,"")}buildHeaders(a,b=!0){let c=a?.accessToken||"",d=a?.providerSpecificData||{};return{Authorization:`Cloud-IDE-JWT ${c}`,"Content-Type":"application/json","X-Trae-Client-Type":"web","X-Preferenced-Language":d.appLanguage||"en","x-user-region":d.userRegion||"US",Referer:"https://solo.trae.ai/","User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36",Accept:b?"text/event-stream":"application/json"}}resolveMode(a){let b=(a||"").trim().toLowerCase();if("work"===b||"auto-work"===b||"solo-work"===b)return{mode:"work",strategy:"auto",modelName:""};let c=!b||"auto"===b;return{mode:"code",strategy:c?"auto":"manual",modelName:c?"":a}}commonParams(a,b,c){let d={language:"en-us",app_language:a.appLanguage||"en",quality:"stable",app_version:a.appVersion||"1.0.0.1229",web_id:a.webId||"",user_identity:a.userIdentity||"Free",is_freshman:"0",biz_user_id:a.bizUserId||"",user_unique_id:a.userUniqueId||"",scope:a.scope||"marscode-us",tenant:a.tenant||"marscode",region:a.region||"US-East",aiRegion:a.aiRegion||a.region||"US-East",is_privacy_mode:0,privacy_mode:"off",solo_chat_mode:b};return c&&(d.biz_session_id=c),JSON.stringify(d)}async createSession(a,b,c,d,e){let{mode:f,strategy:g,modelName:h}=this.resolveMode(c),i={mode:f,environment_id:"default",initial_message:{chat_session_id:"",content:[],query:b,model_name:h,agent_type:"solo_agent_remote",model_selection_strategy:g,common_params:this.commonParams(d,f)},env:"remote",auto_create_project:!1,origin:"web"},j=await (0,l.proxyAwareFetch)(`${this.base()}/chat_sessions`,{method:"POST",headers:a,body:JSON.stringify(i),signal:e},null),k=await j.text();if(!j.ok)throw Error(`[${j.status}] ${k}`);let m=JSON.parse(k);if(m?.code!==0)throw Error(`Trae create_session: ${JSON.stringify(m)}`);return{sessionId:m.data.chat_session_id,messageId:m.data.message_id}}async streamEvents(a,b,c,d,e){let f=`${this.base()}/chat_sessions/${b}/events?reply_to_message_id=${encodeURIComponent(c)}`,g=new AbortController;e?.aborted&&g.abort();let h=setTimeout(()=>g.abort(Error("trae stream timeout")),dz),i=()=>g.abort();e&&e.addEventListener("abort",i,{once:!0});try{let b=await (0,l.proxyAwareFetch)(f,{method:"GET",headers:a,signal:g.signal},null);if(!b.ok||!b.body)throw Error(`[${b.status}] events stream failed`);let c=b.body.getReader(),e=new TextDecoder,h="",i=null;for(;;){let a,{done:b,value:f}=await c.read();if(b)break;for(h+=e.decode(f,{stream:!0});(a=h.indexOf("\n"))>=0;){let b=h.slice(0,a).replace(/\r$/,"");if(h=h.slice(a+1),b.startsWith("event:"))i=b.slice(6).trim();else if(b.startsWith("data:")){let a,e=b.slice(5).trim();try{a=JSON.parse(e)}catch{a={_raw:e}}if(d(i,a))return void await c.cancel().catch(()=>{})}else""===b&&(i=null)}}}finally{clearTimeout(h),e&&e.removeEventListener("abort",i)}}async execute({model:a,body:b,stream:c,credentials:d,signal:e}){let f,g=this.buildHeaders(d,!1!==c),h=d?.providerSpecificData||{},i=function(a){let b=[];for(let c of a){let a="";"string"==typeof c.content?a=c.content:Array.isArray(c.content)&&(a=c.content.map(a=>"string"==typeof a?a:a&&"object"==typeof a?String(a.text??""):"").join("")),"system"===c.role?b.push(`[System]
|
|
158
|
+
${a}`):"assistant"===c.role?b.push(`[Assistant]
|
|
159
|
+
${a}`):b.push(a)}return JSON.stringify([{type:"text",data:{content:b.join("\n\n")}}])}(b?.messages||[]),j=`chatcmpl-trae-${Date.now()}`,k=Math.floor(Date.now()/1e3),l=(a,b)=>new Response(JSON.stringify({error:{message:b,type:"api_error",code:""}}),{status:a,headers:{"Content-Type":"application/json"}});try{f=await this.createSession(g,i,a,h,e)}catch(a){return{response:l(502,a?.message?String(a.message):String(a)),url:this.base(),headers:g,transformedBody:b}}let m=[],n={},o=0,p=null,q=null,r=a=>{let b=a.id;if(!b)return"";b in n||m.push(b);let c=a.thought||"";c.length>=(n[b]||"").length&&(n[b]=c);let d=m.map(a=>n[a]).join(""),e=d.slice(o);return o=d.length,e};if(!1!==c){let c=new TextEncoder;return{response:new Response(new ReadableStream({start:async b=>{let d=a=>b.enqueue(c.encode(`data: ${JSON.stringify(a)}
|
|
160
|
+
|
|
161
|
+
`));d({id:j,object:"chat.completion.chunk",created:k,model:a,choices:[{index:0,delta:{role:"assistant"},finish_reason:null}]});try{await this.streamEvents(g,f.sessionId,f.messageId,(b,c)=>{if("error"===b)return q=c,!0;if("token_usage"===b&&(p=c),"plan_item"===b){let b=r(c);b&&d({id:j,object:"chat.completion.chunk",created:k,model:a,choices:[{index:0,delta:{content:b},finish_reason:null}]})}return"done"===b},e),q?d({id:j,object:"chat.completion.chunk",created:k,model:a,choices:[],error:{message:`trae ${q.code||""}: ${q.message||""}`,type:"api_error"}}):(d({id:j,object:"chat.completion.chunk",created:k,model:a,choices:[{index:0,delta:{},finish_reason:"stop"}]}),p&&d({id:j,object:"chat.completion.chunk",created:k,model:a,choices:[],usage:{prompt_tokens:p.prompt_tokens||0,completion_tokens:p.completion_tokens||0,total_tokens:p.total_tokens||0}})),b.enqueue(c.encode("data: [DONE]\n\n")),b.close()}catch(a){b.error(a)}}}),{status:200,headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"}}),url:this.base(),headers:g,transformedBody:b}}try{await this.streamEvents(g,f.sessionId,f.messageId,(a,b)=>"error"===a?(q=b,!0):("token_usage"===a&&(p=b),"plan_item"===a&&r(b),"done"===a),e)}catch(a){return{response:l(502,a?.message?String(a.message):String(a)),url:this.base(),headers:g,transformedBody:b}}if(q)return{response:l(502,`trae ${q.code||""}: ${q.message||""}`),url:this.base(),headers:g,transformedBody:b};let s={id:j,object:"chat.completion",created:k,model:a,choices:[{index:0,message:{role:"assistant",content:m.map(a=>n[a]).join("")},finish_reason:"stop"}]};return p&&(s.usage={prompt_tokens:p.prompt_tokens||0,completion_tokens:p.completion_tokens||0,total_tokens:p.total_tokens||0}),{response:new Response(JSON.stringify(s),{status:200,headers:{"Content-Type":"application/json"}}),url:this.base(),headers:g,transformedBody:b}}async refreshCredentials(){return null}}var dB=c(29229),dC=c(49716),dD=c(83589),dE=c(45136),dF=c(49934);let dG="anthropic",dH="open_ai",dI="google",dJ="x_ai";function dK(a,b){let c=String(a||"").toLowerCase();if("anthropic"===c)return dG;if("openai"===c||"open_ai"===c)return dH;if("google"===c||"gemini"===c)return dI;if("xai"===c||"x_ai"===c||"x-ai"===c)return dJ;let d=String(b||"").toLowerCase();return d.includes("claude")?dG:d.includes("gemini")?dI:d.includes("grok")||d.includes("xai")?dJ:dH}function dL(a,b,c){return a===dG?(0,dD.P)(b,c):a===dI?(0,dE.o)(b,c):a===dH?(0,ac.v)(b,c):b}function dM(a,b,c){if(c)for(let d of Array.isArray(c)?c:[c])d&&a.enqueue(b.encode(`data: ${JSON.stringify(d)}
|
|
162
|
+
|
|
163
|
+
`))}class dN extends f.H{constructor(){super("zed")}async resolveModel(a,b,c,d){try{let d=await (0,dF.w9)(b,{config:this.config,signal:c}),e=d?.rawById?.get(a)??null;if(!e){let d=await (0,dF.w9)(b,{config:this.config,signal:c,forceRefresh:!0});e=d?.rawById?.get(a)??null}return{raw:e,provider:dK(e?.provider,a)}}catch(c){let b=c instanceof Error?c.message:String(c);return d?.warn?.("ZED",`model catalog unavailable, inferring provider for ${a}: ${b}`),{raw:null,provider:dK(null,a)}}}async execute({model:a,body:b,stream:c,credentials:d,signal:e,log:f,proxyOptions:g=null}){let{provider:h}=await this.resolveModel(a,d,e,f),i=function(a,b,c,d,e){if(a===dG)return(0,dB.p)(b,c,!0);if(a===dI){let a=(0,dC.m$)(b,c,!0);return delete a.safetySettings,a}return a===dH?(0,ab.h)(b,c,!0,e):{...c||{},model:b,stream:!1!==d}}(h,a,b,c,d),j=b||{},k={thread_id:j.thread_id||d?._clientSessionId,prompt_id:j.prompt_id,provider:h,model:a,provider_request:i},l=await (0,dF.zn)(d,"/completions",{config:this.config,signal:e,fetchOptions:{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/x-ndjson, text/event-stream, */*","User-Agent":"9router/zed","x-zed-version":this.config?.appVersion?.toString()||"0.200.0",[dF.xK.clientSupportsStatus]:"true",[dF.xK.clientSupportsStreamEnded]:"true"},body:JSON.stringify(k)}});return{response:l.ok?function(a,b,c){if(!a.ok||!a.body)return a;let d=new TextDecoder,e=new TextEncoder,f=function(a,b){if(a===dG)return(0,ad.Ws)(ae.h.CLAUDE);if(a===dI)return(0,ad.Ws)(ae.h.GEMINI);if(a===dH)return(0,ad.Ws)(ae.h.OPENAI_RESPONSES);let c=(0,ad.Ws)(ae.h.OPENAI);return c.model=b,c}(b,c),g="",h=!1,i=a=>{h||(dM(a,e,dL(b,null,f)),a.enqueue(e.encode("data: [DONE]\n\n")),h=!0)},j=(a,d)=>{if(h)return;let g=function(a){let b=a.replace(/\r$/,"").trim();if(!b)return null;if(b.startsWith("data:")&&(b=b.slice(5).trimStart()),"[DONE]"===b)return{done:!0};try{let a=JSON.parse(b);if(a&&Object.prototype.hasOwnProperty.call(a,"event"))return{event:a.event};if(a&&Object.prototype.hasOwnProperty.call(a,"status"))return{status:a.status};return{event:a}}catch{return null}}(a);if(g){if(g.done)return void i(d);if(g.status){let a=function(a){if(!a)return null;if("string"==typeof a)return{type:a};if("object"==typeof a){let b=Object.keys(a)[0];return b&&"object"==typeof a[b]?{type:b,...a[b]}:a}return null}(g.status);if(a?.type==="failed"||a?.failed){let b=a.failed||a,f=String(b.message||b.error||b.code||"request failed");dM(d,e,{id:`chatcmpl-zed-error-${Date.now()}`,object:"chat.completion.chunk",created:Math.floor(Date.now()/1e3),model:c,choices:[{index:0,delta:{content:`[Zed error] ${f}`},finish_reason:"stop"}]}),i(d)}else(a?.type==="stream_ended"||"stream_ended"===a)&&i(d);return}dM(d,e,dL(b,g.event,f))}};return new Response(a.body.pipeThrough(new TransformStream({transform(a,b){let c;for(g+=d.decode(a,{stream:!0});-1!==(c=g.indexOf("\n"));){let a=g.slice(0,c);g=g.slice(c+1),j(a,b)}},flush(a){(g+=d.decode())&&(j(g,a),g=""),i(a)}})),{status:a.status,statusText:a.statusText,headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache"}})}(l,h,a):l,url:`${this.config?.llmBaseUrl||"https://cloud.zed.dev"}/completions`,headers:{"Content-Type":"application/json",Authorization:"Bearer <zed-llm-token>"},transformedBody:k}}parseError(a,b){let c=null;try{c=JSON.parse(b||"{}")}catch{c=null}let d=c?.error||void 0,e=c?.code||d?.code||"",f=c?.message||d?.message||b||a.statusText;return"trial_blocked"===e?{status:a.status,message:`Zed trial access is blocked upstream. The account can list hosted models, but Zed is refusing completions until trial/billing access is enabled or unblocked. Zed says: ${f}`}:e?{status:a.status,message:`Zed ${e}: ${f}`}:{status:a.status,message:f||`Zed upstream error: ${a.status}`}}async refreshCredentials(){return null}needsRefresh(){return!1}}let dO="https://server.codeium.com/exa.language_server_pb.LanguageServerService/GetChatMessage",dP="3.14.0",dQ={"swe-1.6-fast":"swe-1-6-fast","swe-1.6":"swe-1-6","swe-1.5-fast":"swe-1-5-fast","swe-1.5":"swe-1-5","claude-opus-4.7-max":"claude-opus-4-7-max","claude-opus-4.7-xhigh":"claude-opus-4-7-xhigh","claude-opus-4.7-high":"claude-opus-4-7-high","claude-opus-4.7-medium":"claude-opus-4-7-medium","claude-opus-4.7-low":"claude-opus-4-7-low","claude-opus-4.7-review":"opus-4-7-review","claude-sonnet-4.6-thinking-1m":"claude-sonnet-4-6-thinking-1m","claude-sonnet-4.6-1m":"claude-sonnet-4-6-1m","claude-sonnet-4.6-thinking":"claude-sonnet-4-6-thinking","claude-sonnet-4.6":"claude-sonnet-4-6","claude-opus-4.6-thinking":"claude-opus-4-6-thinking","claude-opus-4.6":"claude-opus-4-6","claude-opus-4.5-thinking":"MODEL_CLAUDE_4_5_OPUS_THINKING","claude-opus-4.5":"MODEL_CLAUDE_4_5_OPUS","claude-sonnet-4.5-thinking":"MODEL_PRIVATE_3","claude-sonnet-4.5":"MODEL_PRIVATE_2","claude-haiku-4.5":"MODEL_PRIVATE_11","gpt-5.5-xhigh-fast":"gpt-5-5-xhigh-priority","gpt-5.5-high-fast":"gpt-5-5-high-priority","gpt-5.5-medium-fast":"gpt-5-5-medium-priority","gpt-5.5-low-fast":"gpt-5-5-low-priority","gpt-5.5-none-fast":"gpt-5-5-none-priority","gpt-5.5-xhigh":"gpt-5-5-xhigh","gpt-5.5-high":"gpt-5-5-high","gpt-5.5-medium":"gpt-5-5-medium","gpt-5.5-low":"gpt-5-5-low","gpt-5.5-none":"gpt-5-5-none","gpt-5.5-review":"gpt-5-5-review","gpt-5.5":"gpt-5-5-medium","gpt-5.4-xhigh-fast":"gpt-5-4-xhigh-priority","gpt-5.4-high-fast":"gpt-5-4-high-priority","gpt-5.4-medium-fast":"gpt-5-4-medium-priority","gpt-5.4-low-fast":"gpt-5-4-low-priority","gpt-5.4-none-fast":"gpt-5-4-none-priority","gpt-5.4-xhigh":"gpt-5-4-xhigh","gpt-5.4-high":"gpt-5-4-high","gpt-5.4-medium":"gpt-5-4-medium","gpt-5.4-low":"gpt-5-4-low","gpt-5.4-none":"gpt-5-4-none","gpt-5.4-mini-xhigh":"gpt-5-4-mini-xhigh","gpt-5.4-mini-high":"gpt-5-4-mini-high","gpt-5.4-mini-medium":"gpt-5-4-mini-medium","gpt-5.4-mini-low":"gpt-5-4-mini-low","gpt-5.4":"gpt-5-4-medium","gpt-5.3-codex-xhigh-fast":"gpt-5-3-codex-xhigh-priority","gpt-5.3-codex-high-fast":"gpt-5-3-codex-high-priority","gpt-5.3-codex-medium-fast":"gpt-5-3-codex-medium-priority","gpt-5.3-codex-low-fast":"gpt-5-3-codex-low-priority","gpt-5.3-codex-xhigh":"gpt-5-3-codex-xhigh","gpt-5.3-codex-high":"gpt-5-3-codex-high","gpt-5.3-codex-medium":"gpt-5-3-codex-medium","gpt-5.3-codex-low":"gpt-5-3-codex-low","gpt-5.3-codex":"gpt-5-3-codex-medium","gpt-5.2-xhigh":"MODEL_GPT_5_2_XHIGH","gpt-5.2-high":"MODEL_GPT_5_2_HIGH","gpt-5.2-medium":"MODEL_GPT_5_2_MEDIUM","gpt-5.2-low":"MODEL_GPT_5_2_LOW","gpt-5.2-none":"MODEL_GPT_5_2_NONE","gpt-5.2":"MODEL_GPT_5_2_MEDIUM","gpt-5":"gpt-5","gpt-4.1":"MODEL_CHAT_GPT_4_1_2025_04_14","gpt-4.1-mini":"gpt-4.1-mini","gpt-4o":"MODEL_CHAT_GPT_4O_2024_08_06","gemini-3.1-pro-high":"gemini-3-1-pro-high","gemini-3.1-pro-low":"gemini-3-1-pro-low","gemini-3.1-pro":"gemini-3-1-pro-high","gemini-3.0-flash-high":"MODEL_GOOGLE_GEMINI_3_0_FLASH_HIGH","gemini-3.0-flash-medium":"MODEL_GOOGLE_GEMINI_3_0_FLASH_MEDIUM","gemini-3.0-flash-low":"MODEL_GOOGLE_GEMINI_3_0_FLASH_LOW","gemini-3.0-flash-minimal":"MODEL_GOOGLE_GEMINI_3_0_FLASH_MINIMAL","gemini-3.0-flash":"MODEL_GOOGLE_GEMINI_3_0_FLASH_HIGH","gemini-2.5-pro":"MODEL_GOOGLE_GEMINI_2_5_PRO","deepseek-v4":"deepseek-v4","kimi-k2.6":"kimi-k2-6","kimi-k2.5":"kimi-k2-5","glm-5.1":"glm-5-1"};function dR(a){let b=[],c=a>>>0;for(;c>127;)b.push(127&c|128),c>>>=7;return b.push(127&c),new Uint8Array(b)}function dS(a){let b=new Uint8Array(a.reduce((a,b)=>a+b.length,0)),c=0;for(let d of a)b.set(d,c),c+=d.length;return b}let dT=new TextEncoder,dU=new TextDecoder;function dV(a,b){return dS([dR(a<<3|2),dR(b.length),b])}function dW(a,b){return dV(a,dT.encode(b))}function dX(a,b){let c=0,d=0;for(;b<a.length;){let e=a[b++];if(c|=(127&e)<<d,(128&e)==0)break;d+=7}return[c>>>0,b]}function dY(a,b){let c=0;for(;c<a.length;){let d;[d,c]=dX(a,c);let e=d>>>3,f=7&d;if(2===f){let d;[d,c]=dX(a,c);let f=a.slice(c,c+d);if(c+=d,e===b)return dU.decode(f)}else if(0===f){let b;[b,c]=dX(a,c)}else if(1===f)c+=8;else if(5===f)c+=4;else break}return null}class dZ extends f.H{constructor(){super("windsurf",g.xq.windsurf||{id:"windsurf",baseUrl:dO})}buildUrl(){return dO}buildHeaders(a,b=!0){let c=a?.accessToken||a?.apiKey||"";return{"Content-Type":"application/grpc-web+proto",Accept:"application/grpc-web+proto",...c?{Authorization:`Bearer ${c}`}:{},"User-Agent":`windsurf/${dP}`,"X-Grpc-Web":"1"}}transformRequest(){return null}async execute({model:a,body:b,stream:c,credentials:d,signal:f,log:g,upstreamExtraHeaders:h,proxyOptions:i=null}){let j,k=d?.accessToken||d?.apiKey||"",m=dQ[a]??a,n=b??{},o=function(a){let b=[];for(let c of a){let a=String(c.role||"user"),d="";if("string"==typeof c.content)d=c.content;else if(Array.isArray(c.content))for(let a of c.content)a&&"object"==typeof a&&"text"===a.type&&(d+=String(a.text||""));b.push({role:a,content:d,toolCallId:c.tool_call_id})}return b}(Array.isArray(n.messages)?n.messages:[]);0===o.length&&o.push({role:"user",content:""});let p=function(a,b,c){let d=(0,e.randomUUID)(),f=(0,e.randomUUID)(),g=[dV(1,dS([dW(1,a),dW(2,"windsurf"),dW(3,dP),dW(4,"3.14.0"),dW(5,d),dW(6,"en-US")])),dW(2,f),dV(3,dW(1,b))];for(let a of c)g.push(dV(4,function(a){let b=[dW(1,a.role),dW(2,a.content)];return a.toolCallId&&b.push(dW(3,a.toolCallId)),dS(b)}(a)));return dS(g)}(k,m,o),q=((j=new Uint8Array(5+p.length))[0]=0,new DataView(j.buffer).setUint32(1,p.length,!1),j.set(p,5),j),r=this.buildUrl(),s=this.buildHeaders(d);h&&Object.assign(s,h),g?.debug?.("WS",`Windsurf → ${m} (${o.length} messages)`);let t=await (0,l.proxyAwareFetch)(r,{method:"POST",headers:s,body:q,signal:f},i);return t.ok||200===t.status?{response:this.transformToSSE(t,a),url:r,headers:s,transformedBody:p}:{response:t,url:r,headers:s,transformedBody:p}}transformToSSE(a,b){let c=`chatcmpl-ws-${Date.now()}`,d=Math.floor(Date.now()/1e3),e=this,f=new ReadableStream({async start(f){let g=new TextEncoder,h=!1,i="",j=0,k=0,l=null,m=a=>f.enqueue(g.encode(a));try{let g=new Uint8Array(0),n=a.body?.getReader(),o=(a,f)=>{if(128===a){let a=dU.decode(f),b=/grpc-status:\s*(\d+)/i.exec(a);if(b&&"0"!==b[1]){let c=/grpc-message:\s*(.+)/i.exec(a);l=c?decodeURIComponent(c[1].trim()):`gRPC status ${b[1]}`}return}if(0!==a)return;let g=e.constructor.decodeCompletionChunk?e.constructor.decodeCompletionChunk(f):function(a){let b=0;for(;b<a.length;){let c;[c,b]=dX(a,b);let d=c>>>3,e=7&c;if(2===e){let c;[c,b]=dX(a,b);let e=a.slice(b,b+c);if(b+=c,1===d){let a=dY(e,1);if(null!==a)return{kind:"content",text:a}}else if(3===d){let a=function(a){let b=0,c=null;for(;b<a.length;){let d;[d,b]=dX(a,b);let e=d>>>3,f=7&d;if(2===f){let d;[d,b]=dX(a,b),1===e&&(c=a.slice(b,b+d)),b+=d}else if(0===f){let c;[c,b]=dX(a,b)}else break}if(!c)return[0,0];let d=0,e=0;for(b=0;b<c.length;){let a;[a,b]=dX(c,b);let f=a>>>3,g=7&a;if(0===g){let a;[a,b]=dX(c,b),1===f?d=a:2===f&&(e=a)}else if(2===g){let a;[a,b]=dX(c,b),b+=a}else break}return[d,e]}(e);return{kind:"done",promptTokens:a[0],completionTokens:a[1]}}else if(4===d)return{kind:"error",message:dY(e,1)??"unknown windsurf error"}}else if(0===e){let c;[c,b]=dX(a,b)}else if(1===e)b+=8;else if(5===e)b+=4;else break}return{kind:"unknown"}}(f);"content"===g.kind&&g.text?(i+=g.text,h||(m(`data: ${JSON.stringify({id:c,object:"chat.completion.chunk",created:d,model:b,choices:[{index:0,delta:{role:"assistant",content:""},finish_reason:null}]})}
|
|
164
|
+
|
|
165
|
+
`),h=!0),m(`data: ${JSON.stringify({id:c,object:"chat.completion.chunk",created:d,model:b,choices:[{index:0,delta:{content:g.text},finish_reason:null}]})}
|
|
166
|
+
|
|
167
|
+
`)):"done"===g.kind?(j=g.promptTokens,k=g.completionTokens):"error"===g.kind&&(l=g.message)},p=()=>{let a=0;for(;a+5<=g.length;){let b=g[a],c=g[a+1]<<24|g[a+2]<<16|g[a+3]<<8|g[a+4];if(c<0||a+5+c>g.length)break;o(b,g.slice(a+5,a+5+c)),a+=5+c}a>0&&(g=g.slice(a))};if(n)try{for(;;){let{done:a,value:b}=await n.read();if(a)break;b&&(g=0===g.length?b:dS([g,b]),p())}}finally{n.releaseLock()}if(p(),l){m(`data: ${JSON.stringify({error:{message:l,type:"windsurf_error",code:"upstream_error"}})}
|
|
168
|
+
|
|
169
|
+
`),m("data: [DONE]\n\n"),f.close();return}!h&&i&&(m(`data: ${JSON.stringify({id:c,object:"chat.completion.chunk",created:d,model:b,choices:[{index:0,delta:{role:"assistant",content:""},finish_reason:null}]})}
|
|
170
|
+
|
|
171
|
+
`),m(`data: ${JSON.stringify({id:c,object:"chat.completion.chunk",created:d,model:b,choices:[{index:0,delta:{content:i},finish_reason:null}]})}
|
|
172
|
+
|
|
173
|
+
`));let q={id:c,object:"chat.completion.chunk",created:d,model:b,choices:[{index:0,delta:{},finish_reason:"stop"}]};(j>0||k>0)&&(q.usage={prompt_tokens:j,completion_tokens:k,total_tokens:j+k}),m(`data: ${JSON.stringify(q)}
|
|
174
|
+
|
|
175
|
+
`),m("data: [DONE]\n\n")}catch(b){let a=b?.message?String(b.message):String(b);m(`data: ${JSON.stringify({error:{message:`Windsurf stream error: ${a}`,type:"windsurf_error"}})}
|
|
176
|
+
|
|
177
|
+
`),m("data: [DONE]\n\n")}f.close()}});return new Response(f,{status:200,headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"}})}async refreshCredentials(){return null}}class d$ extends C{constructor(){super("openrouter",g.xq.openrouter)}transformRequest(a,b){let c=super.transformRequest(a,b);if(!c||"object"!=typeof c)return c;let d=c.provider;return null==d?c.provider={allow_fallbacks:!0}:"object"!=typeof d||Array.isArray(d)||void 0!==d.allow_fallbacks||(c.provider={...d,allow_fallbacks:!0}),c}}var d_=c(31421),d0=c(76760),d1=c(48161),d2=c(73024);let d3=`
|
|
178
|
+
import readline from "node:readline";
|
|
179
|
+
const TOOLS = JSON.parse(process.env.DEVIN_MCP_TOOLS || "[]");
|
|
180
|
+
const RESULTS = JSON.parse(process.env.DEVIN_MCP_RESULTS || "{}");
|
|
181
|
+
const rl = readline.createInterface({ input: process.stdin });
|
|
182
|
+
function send(o){ process.stdout.write(JSON.stringify(o) + "\\n"); }
|
|
183
|
+
rl.on("line", (line) => {
|
|
184
|
+
let m; try { m = JSON.parse(line); } catch { return; }
|
|
185
|
+
if (m.method === "initialize") {
|
|
186
|
+
send({ jsonrpc: "2.0", id: m.id, result: { protocolVersion: "2024-11-05", capabilities: { tools: {} }, serverInfo: { name: "clientTools", version: "1.0" } } });
|
|
187
|
+
} else if (m.method === "tools/list") {
|
|
188
|
+
send({ jsonrpc: "2.0", id: m.id, result: { tools: TOOLS } });
|
|
189
|
+
} else if (m.method === "tools/call") {
|
|
190
|
+
const name = m.params?.name || "";
|
|
191
|
+
const seeded = RESULTS[name];
|
|
192
|
+
const text = seeded !== undefined
|
|
193
|
+
? String(seeded)
|
|
194
|
+
: "(awaiting client tool_result)";
|
|
195
|
+
process.stderr.write("[client-tools] tool_call name=" + name + " seeded=" + (seeded !== undefined) + "\\n");
|
|
196
|
+
send({ jsonrpc: "2.0", id: m.id, result: { content: [{ type: "text", text }] } });
|
|
197
|
+
}
|
|
198
|
+
});
|
|
199
|
+
`.trimStart(),d4="mcp_";function d5(a){return a.startsWith(d4)?a:d4+a}class d6 extends f.H{constructor(){super("devin-cli",{id:"devin-cli",baseUrl:"devin://acp/stdio"})}buildUrl(){return"devin://acp/stdio"}buildHeaders(){return{}}transformRequest(){return null}async execute({model:a,body:b,credentials:c,signal:d,log:e}){let f=b??{},g=Array.isArray(f.messages)?f.messages:Array.isArray(f.input)?f.input:[],h=function(a){let b=[];for(let c of a){let a=String(c.role||"user"),d="";if("string"==typeof c.content)d=c.content;else if(Array.isArray(c.content)){for(let a of c.content)if(a&&"object"==typeof a){if("text"===a.type)d+=String(a.text||"");else if("tool_use"===a.type)d+=`
|
|
200
|
+
[Tool call ${a.name} id=${a.id}]
|
|
201
|
+
${JSON.stringify(a.input??{})}
|
|
202
|
+
`;else if("tool_result"===a.type){let b="string"==typeof a.content?a.content:JSON.stringify(a.content??"");d+=`
|
|
203
|
+
[Tool result id=${a.tool_use_id}]
|
|
204
|
+
${b}
|
|
205
|
+
`}}}if("assistant"===a&&Array.isArray(c.tool_calls)&&c.tool_calls.length&&(d=[d,...c.tool_calls.map(a=>{let b=a.function?.name||a.name||"tool",c=a.function?.arguments??a.arguments??{},d="string"==typeof c?c:JSON.stringify(c);return`[Tool call ${b} id=${a.id}]
|
|
206
|
+
${d}`})].filter(Boolean).join("\n\n")),"tool"===a){let a="string"==typeof c.content?c.content:JSON.stringify(c.content??"");d=`[Tool result id=${c.tool_call_id||""}]
|
|
207
|
+
${a}`}d.trim()&&("system"===a?b.push(`[System]
|
|
208
|
+
${d}`):"assistant"===a?b.push(`[Assistant]
|
|
209
|
+
${d}`):"tool"===a?b.push(`[Tool]
|
|
210
|
+
${d}`):b.push(`[User]
|
|
211
|
+
${d}`))}return b.join("\n\n")||"(empty)"}(g),i=function(a){let b=[],c=a=>{"string"==typeof a&&a.trim()&&b.push(a.trim())};c(a?.cwd),c(a?.working_directory),c(a?.workdir),c(a?.workspace),c(a?.metadata?.cwd),c(a?.metadata?.working_directory);let d=a=>{if("string"==typeof a)for(let b of a.matchAll(/<cwd>\s*([^<]+?)\s*<\/cwd>/gi))c(b[1])},e=a=>{if(Array.isArray(a)){for(let b of a)if(b){if("string"==typeof b.content)d(b.content);else if(Array.isArray(b.content))for(let a of b.content)"string"==typeof a?d(a):a&&"object"==typeof a&&(d(a.text),d(a.input_text),d(a.content));if("string"==typeof b&&d(b),"message"===b.type&&Array.isArray(b.content))for(let a of b.content)d(a?.text||a?.input_text)}}};for(let c of(e(a?.messages),e(a?.input),b))try{if(d0.isAbsolute(c)&&d2.existsSync(c)&&d2.statSync(c).isDirectory())return c}catch{}return d1.tmpdir()}(f),j=function(){let a=process.env.CLI_DEVIN_BIN?.trim();if(a)return a;let b="win32"===process.platform,c=d1.homedir();for(let a of b?[d0.join(process.env.LOCALAPPDATA||d0.join(c,"AppData","Local"),"devin","cli","bin","devin.exe"),d0.join(c,".local","bin","devin.exe"),d0.join(c,"scoop","shims","devin.exe"),d0.join(process.env.LOCALAPPDATA||d0.join(c,"AppData","Local"),"Programs","devin","devin.exe")]:[d0.join(c,".local","share","devin","bin","devin"),d0.join(c,".devin","bin","devin"),d0.join(c,".local","bin","devin"),"/opt/homebrew/bin/devin","/usr/local/bin/devin","/usr/bin/devin"])if(d2.existsSync(a))return a;return b?"devin.exe":"devin"}();e?.info?.("DEVIN",`devin acp → model=${a}, bin=${j}, cwd=${i}`);let k=null,l={},m=process.env.DEVIN_MCP_SERVERS?.trim();if(m)try{Object.assign(l,JSON.parse(m))}catch(a){e?.info?.("DEVIN",`DEVIN_MCP_SERVERS parse failed: ${a.message}`)}let n=Array.isArray(f.tools)?f.tools.filter(Boolean):[],o=function(a){let b=new Map,c={};for(let d of a){if(d?.role==="assistant"&&Array.isArray(d.tool_calls))for(let a of d.tool_calls){let c=a?.function?.name||a?.name;a?.id&&c&&b.set(a.id,d5(c))}if(d?.role==="assistant"&&Array.isArray(d.content))for(let a of d.content)a?.type==="tool_use"&&a.id&&a.name&&b.set(a.id,d5(a.name));if(d?.role==="tool"&&d.tool_call_id){let a=b.get(d.tool_call_id);a&&(c[a]="string"==typeof d.content?d.content:JSON.stringify(d.content??""))}if(d?.role==="user"&&Array.isArray(d.content)){for(let a of d.content)if(a?.type==="tool_result"&&a.tool_use_id){let d=b.get(a.tool_use_id);if(d){let b=a.content;c[d]="string"==typeof b?b:JSON.stringify(b??"")}}}}return c}(g),p=function(a,b){let c,d=[];for(let b of a){if(!b)continue;let a=b.function||b;a?.name&&d.push({name:d5(a.name),description:a.description||"",inputSchema:a.parameters||a.input_schema||{type:"object",properties:{}}})}if(!d.length)return null;let e={DEVIN_MCP_TOOLS:JSON.stringify(d)};return b&&Object.keys(b).length&&(e.DEVIN_MCP_RESULTS=JSON.stringify(b)),{command:process.execPath,args:[(c=d0.join(d1.tmpdir(),"9router-devin-client-tools.mjs"),d2.writeFileSync(c,d3),c)],env:e}}(n,o),q=!!p;if(p){l.clientTools=p;let a=Object.keys(o).length;e?.info?.("DEVIN",`exposing ${n.length} client tool(s) as MCP`+(a?` (seeded ${a} result(s))`:""))}if(Object.keys(l).length)try{k=d2.mkdtempSync(d0.join(d1.tmpdir(),"devin-mcp-"));let a=d0.join(k,"devin");d2.mkdirSync(a,{recursive:!0}),d2.writeFileSync(d0.join(a,"config.json"),JSON.stringify({mcpServers:l})),e?.info?.("DEVIN",`mcp config written → ${k}`)}catch(a){e?.info?.("DEVIN",`mcp config write failed: ${a.message}`),k=null}let r=()=>{if(k){try{d2.rmSync(k,{recursive:!0,force:!0})}catch{}k=null}};return{response:new Response(new ReadableStream({start(b){let c=new TextEncoder,f=a=>b.enqueue(c.encode(a)),g={...process.env};g.DEVIN_PERMISSION_MODE=process.env.DEVIN_PERMISSION_MODE||"bypass",k&&(g.XDG_CONFIG_HOME=k);let l=process.env.CLI_DEVIN_AGENT_TYPE?.trim(),m=["acp"];l&&m.push("--agent-type",l);let n=(0,d_.spawn)(j,m,{env:g,cwd:i,stdio:["pipe","pipe","pipe"],shell:"win32"===process.platform}),o=null,p=!1;n.on("error",a=>{o=a;let c=a.message.includes("ENOENT")||a.message.includes("not found")?`Devin CLI not found: ${j}. Install via https://cli.devin.ai or set CLI_DEVIN_BIN env var.`:`Devin CLI spawn error: ${a.message}`;f(`data: ${JSON.stringify({error:{message:c,type:"devin_cli_error",code:"spawn_failed"}})}
|
|
212
|
+
|
|
213
|
+
`),f("data: [DONE]\n\n"),b.close()}),d&&d.addEventListener("abort",()=>{n.killed||n.kill("SIGTERM")});let s=1,t=null,u=!1,v=!1,w=!1,x=`chatcmpl-devin-${Date.now()}`,y=Math.floor(Date.now()/1e3),z=!1,A="",B=!1,C=(a,b)=>{if(p||n.stdin.destroyed)return;let c=s++;try{let d;n.stdin.write((d={jsonrpc:"2.0",method:a,params:b},void 0!==c&&(d.id=c),JSON.stringify(d)+"\n"))}catch{}return c},D=b=>{z||(f(`data: ${JSON.stringify({id:x,object:"chat.completion.chunk",created:y,model:a,choices:[{index:0,delta:{role:"assistant",content:""},finish_reason:null}]})}
|
|
214
|
+
|
|
215
|
+
`),z=!0),A+=b,f(`data: ${JSON.stringify({id:x,object:"chat.completion.chunk",created:y,model:a,choices:[{index:0,delta:{content:b},finish_reason:null}]})}
|
|
216
|
+
|
|
217
|
+
`)},E=!1,F=new Map,G=(b,c,d)=>{let e="string"==typeof c?c:JSON.stringify(c??{});z||(f(`data: ${JSON.stringify({id:x,object:"chat.completion.chunk",created:y,model:a,choices:[{index:0,delta:{role:"assistant",content:null},finish_reason:null}]})}
|
|
218
|
+
|
|
219
|
+
`),z=!0),f(`data: ${JSON.stringify({id:x,object:"chat.completion.chunk",created:y,model:a,choices:[{index:0,delta:{tool_calls:[{index:0,id:d,type:"function",function:{name:b,arguments:e}}]},finish_reason:null}]})}
|
|
220
|
+
|
|
221
|
+
`)},H=(c,d="stop")=>{if(B)return;B=!0,c?f(`data: ${JSON.stringify({error:{message:c,type:"devin_cli_error"}})}
|
|
222
|
+
|
|
223
|
+
`):f(`data: ${JSON.stringify({id:x,object:"chat.completion.chunk",created:y,model:a,choices:[{index:0,delta:{},finish_reason:d}],usage:{prompt_tokens:Math.ceil(h.length/4),completion_tokens:Math.ceil(A.length/4),total_tokens:Math.ceil((h.length+A.length)/4),estimated:!0}})}
|
|
224
|
+
|
|
225
|
+
`),f("data: [DONE]\n\n");try{p||(p=!0,n.stdin.end())}catch{}let e=setTimeout(()=>{n.killed||n.kill("SIGKILL")},2e3);e.unref?.(),b.close(),r()},I="";n.stdout.on("data",b=>{let c;for(I+=b.toString("utf8");-1!==(c=I.indexOf("\n"));){let b,e=I.slice(0,c).trim();if(I=I.slice(c+1),e){try{b=JSON.parse(e)}catch{continue}if(!u&&void 0!==b.result&&!b.method){u=!0,C("session/new",{cwd:i,mcpServers:[],model:a||void 0});continue}if(u&&!v&&void 0!==b.result&&!b.method){if(!(t=(b.result||{}).sessionId||null))return void H("Devin ACP: session/new returned no sessionId");v=!0,w=!0,C("session/prompt",{sessionId:t,prompt:[{type:"text",text:h}]});continue}if(v&&w&&void 0!==b.result&&!b.method){if(!z){let a=b.result||void 0,c=function(a){if("string"==typeof a.content)return a.content;if("string"==typeof a.text)return a.text;let b=a.message;if(b&&"string"==typeof b.content)return b.content;let c=a.messages;return Array.isArray(c)?c.filter(a=>"assistant"===a.role).map(a=>String(a.content||"")).join("\n"):""}(a);c&&(A=c,D(c));let d=a&&a.stopReason||"";if(d&&"cancelled"!==d)return void H()}continue}if("session/request_permission"===b.method&&void 0!==b.id){let a=b.params?.options||[],c=a.find(a=>/allow/i.test(String(a.kind||"")))||a[0];c&&n.stdin.write(JSON.stringify({jsonrpc:"2.0",id:b.id,result:{outcome:{outcome:"selected",optionId:c.optionId}}})+"\n");continue}if("_cognition.ai/agent_stopped"===b.method||"$/agent_stopped"===b.method)return void("error"===b.params?.cause?H(String(b.params?.errorMessage||b.params?.message||b.params?.error||"Devin agent error")):H());if("session/update"===b.method||"$/update"===b.method){let a=b.params;if(!a)continue;let c=a.update||{},e=c.sessionUpdate||a.type,f=void 0!==c.content?c.content:a.content,g="string"==typeof f?f:f?.text??a.delta??a.text??"";if(q&&!E&&("tool_call"===e||"tool_call_update"===e)){let a=c.toolCallId;if("string"==typeof c.title&&c.title.startsWith("Calling mcp_")&&/from clientTools\b/.test(c.title)){var d;let b=c.title.match(/^Calling (mcp_\S+)\b/),e=(d=b?b[1]:"").startsWith(d4)?d.slice(d4.length):d;a&&e&&F.set(a,e)}let b=a?F.get(a):null;if(b&&c.rawInput){E=!0,F.delete(a),G(b,c.rawInput,a||`call_${Date.now()}`),H(null,"tool_calls");return}continue}if("agent_message_chunk"===e||"message_delta"===e||"text_delta"===e||"content_delta"===e)g&&D(g);else if("agent_thought_chunk"===e);else if("message_stop"===e||"stop"===e||"done"===e)return void H();else if("error"===e)return void H(String(a.message||a.error||"Devin ACP error"));continue}if(b.error)return void H(`Devin ACP error ${b.error.code}: ${b.error.message}`)}}}),n.stderr.on("data",a=>{e?.debug?.("DEVIN",`stderr: ${a.toString("utf8").slice(0,200)}`)}),n.on("close",a=>{B?r():0===a||o?H():H(z?void 0:`Devin CLI exited with code ${a}`)}),C("initialize",{protocolVersion:"0.3",clientInfo:{name:"9router",version:"1.0"},capabilities:{}})}}),{status:200,headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"}}),url:"devin://acp/stdio",headers:{},transformedBody:{model:a,cwd:i,clientTools:n.map(a=>a?.function?.name||a?.name).filter(Boolean),clientToolResults:Object.keys(o),mcpServers:Object.keys(l),promptLength:Array.isArray(b?.messages)?b.messages.length:Array.isArray(b?.input)?b.input.length:0}}}}let d7={antigravity:new d.c,azure:new E,"gemini-cli":new _,github:new ai,iflow:new aj,qoder:new an,"qoderwork-cn":new an("qoderwork-cn"),kiro:new aS,kimchi:new aV,codex:new bj,cursor:new bD,cu:new bD,vertex:new bH("vertex"),"vertex-partner":new bH("vertex-partner"),opencode:new ca,"opencode-zen":new ce,"opencode-go":new ck,"grok-web":new cs,"grok-cli":new cS,gcli:new cS,gb:new cS,"perplexity-web":new c9,"ollama-local":new da,commandcode:new dc,"xiaomi-tokenplan":new de,"xiaomi-mimo":new di,"mimo-free":new ds,mmf:new ds,"codebuddy-cn":new dx,"codebuddy-intl":new dy,trae:new dA,zed:new dN,windsurf:new dZ,"devin-cli":new d6,openrouter:new d$,bedrock:new Z,br:new Z},d8=new Map;function d9(a){return d7[a]?d7[a]:(d8.has(a)||d8.set(a,new C(a)),d8.get(a))}},66451:(a,b,c)=>{c.d(b,{PN:()=>j,Xh:()=>k,g2:()=>i,js:()=>m,sc:()=>l});var d=c(30717),e=c(29485);let f={el:"elevenlabs",jina:"jina-ai","jina-ai":"jina-ai",polly:"aws-polly","aws-polly":"aws-polly"};for(let a of d.default)for(let b of(f[a.id]=a.id,a.alias&&(f[a.alias]=a.id),a.aliases||[]))f[b]=a.id;let g={"grok-build":"gcli/grok-build"},h=new Map;for(let a of d.default)a.noAuth&&a.modelsFetcher&&a.alias&&h.set(a.id,a.alias);function i(a){return f[a]||a}function j(a){if(!a)return null;let b=[];for(let[c,d]of Object.entries(e.PROVIDER_MODELS))Array.isArray(d)&&d.some(b=>b&&b.id===a)&&b.push(c);if(0===b.length)return null;if(1===b.length)return i(b[0]);let c=b.find(b=>a.startsWith(b));return c?i(c):null}function k(a){if(!a)return{provider:null,model:null,isAlias:!1,providerAlias:null};if(a.includes("/")){let b=a.indexOf("/"),c=a.slice(0,b),d=a.slice(b+1);return{provider:i(c),model:d,isAlias:!1,providerAlias:c}}return{provider:null,model:a,isAlias:!0,providerAlias:null}}function l(a,b){if(!b)return null;let c=b[a];if(!c)return null;if("string"==typeof c&&c.includes("/")){let a=c.indexOf("/");return{provider:i(c.slice(0,a)),model:c.slice(a+1)}}return"object"==typeof c&&c.provider&&c.model?{provider:i(c.provider),model:c.model}:null}async function m(a,b){let c=k(a);if(!c.isAlias)return{provider:c.provider,model:c.model};let d="function"==typeof b?await b():b,e=l(c.model,d)||l(c.model,g);return e||{provider:function(a){if(!a)return"openai";let b=a.toLowerCase();return"default"===b||"auto"===b?"cursor":n.find(([a])=>a.test(b))?.[1]||"openai"}(c.model),model:c.model}}let n=[[/^codex-auto-review$/,"codex"],[/^claude-/,"anthropic"],[/^gemini-/,"gemini"],[/^grok-/,"xai"],[/^gpt-/,"openai"],[/^o[134]/,"openai"],[/^deepseek-/,"openrouter"]]}};
|