tokenhop 1.0.1 → 1.0.3
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 +8 -8
- package/app/.next-cli-build/build-manifest.json +3 -3
- package/app/.next-cli-build/prerender-manifest.json +3 -3
- package/app/.next-cli-build/react-loadable-manifest.json +29 -29
- package/app/.next-cli-build/required-server-files.json +1 -0
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/[...missing]/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/[...missing]/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/[...missing]/page_client-reference-manifest.js +1 -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/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/media-providers/[kind]/[id]/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js +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/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js +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 +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-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 +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/settings/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/settings/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/settings/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 +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/ui-kit/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/ui-kit/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/ui-kit/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/_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 +5 -5
- package/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +5 -5
- 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.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/logout/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js.nft.json +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.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/reset-password/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/saml/acs/route.js.nft.json +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.nft.json +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.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tool-settings/[toolId]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tool-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js +4 -4
- package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js +2 -2
- 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 +2 -2
- 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 +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 +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/devin-settings/route.js +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 +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/grok-build-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/grok-build-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js +3 -3
- package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/combos/[id]/headroom/route.js +1 -1
- package/app/.next-cli-build/server/app/api/combos/[id]/headroom/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/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/gateway/status/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/headroom/extras/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/headroom/proxy/[...path]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/headroom/restart/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/headroom/start/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/headroom/status/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/headroom/stop/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/health/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/home/live-routes/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/home/quota/route.js +1 -1
- package/app/.next-cli-build/server/app/api/home/quota/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/home/summary/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/init/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/keys/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/keys/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/locale/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/alias/route.js +1 -1
- package/app/.next-cli-build/server/app/api/models/alias/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/availability/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/catalog-sync/route.js +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.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/codex/bulk-import/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/codex/bulk-import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/api-key/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/api-key/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/import-cli-proxy/route.js.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.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/auto-import/route.js +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.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/provider-nodes/route.js +1 -1
- package/app/.next-cli-build/server/app/api/provider-nodes/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/models/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/test/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js +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.nft.json +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.nft.json +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.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/health/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/install/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/logs/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/restart/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/start/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/stats/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/status/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/stop/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/settings/config/export/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/settings/config/import/route.js +1 -1
- package/app/.next-cli-build/server/app/api/settings/config/import/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/environment/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/settings/proxy-test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/settings/require-login/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/settings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/shell/savings-milestone/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/shell/summary/route.js +1 -1
- package/app/.next-cli-build/server/app/api/shell/summary/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/shutdown/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tags/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/translator/console-logs/route.js +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 +1 -1
- package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/translator/load/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/translator/save/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/translator/send/route.js +9 -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 +9 -1
- package/app/.next-cli-build/server/app/api/translator/translate/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/disable/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/enable/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/status/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js +2 -2
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/[connectionId]/codex-reset-credits/route.js +9 -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 +9 -1
- package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/chart/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/history/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/last-activity/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/logs/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/providers/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/providers/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/request-details/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/request-logs/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/savings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/stats/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/stream/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/api/chat/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/api/chat/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/audio/voices/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/audio/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/embeddings/route.js +9 -1
- package/app/.next-cli-build/server/app/api/v1/embeddings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/images/generations/route.js +2 -2
- package/app/.next-cli-build/server/app/api/v1/images/generations/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/messages/count_tokens/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/messages/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/messages/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/models/[...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/shutdown/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 +5 -5
- package/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +5 -5
- 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 +5 -5
- package/app/.next-cli-build/server/app/dashboard/basic-chat.html +2 -2
- package/app/.next-cli-build/server/app/dashboard/basic-chat.rsc +11 -11
- package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +11 -11
- package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_full.segment.rsc +11 -11
- package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/combos.html +2 -2
- package/app/.next-cli-build/server/app/dashboard/combos.rsc +11 -11
- package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +11 -11
- package/app/.next-cli-build/server/app/dashboard/combos.segments/_full.segment.rsc +11 -11
- package/app/.next-cli-build/server/app/dashboard/combos.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 +9 -9
- package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_full.segment.rsc +9 -9
- package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.html +2 -2
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.rsc +11 -11
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web/__PAGE__.segment.rsc +11 -11
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_full.segment.rsc +11 -11
- 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/media-providers.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/media-providers.rsc +10 -10
- package/app/.next-cli-build/server/app/dashboard/media-providers.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/__PAGE__.segment.rsc +10 -10
- package/app/.next-cli-build/server/app/dashboard/media-providers.segments/_full.segment.rsc +10 -10
- package/app/.next-cli-build/server/app/dashboard/media-providers.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/mitm.html +2 -2
- package/app/.next-cli-build/server/app/dashboard/mitm.rsc +11 -11
- package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +11 -11
- package/app/.next-cli-build/server/app/dashboard/mitm.segments/_full.segment.rsc +11 -11
- 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 +10 -10
- package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +10 -10
- package/app/.next-cli-build/server/app/dashboard/profile.segments/_full.segment.rsc +10 -10
- 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 +2 -2
- package/app/.next-cli-build/server/app/dashboard/providers/new.rsc +11 -11
- package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +11 -11
- package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_full.segment.rsc +11 -11
- package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.html +2 -2
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.rsc +10 -10
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +10 -10
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +10 -10
- 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 +2 -2
- package/app/.next-cli-build/server/app/dashboard/pxpipe.rsc +10 -10
- package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard/pxpipe/__PAGE__.segment.rsc +10 -10
- package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_full.segment.rsc +10 -10
- 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 +1 -1
- package/app/.next-cli-build/server/app/dashboard/quota.rsc +11 -11
- package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +11 -11
- package/app/.next-cli-build/server/app/dashboard/quota.segments/_full.segment.rsc +11 -11
- package/app/.next-cli-build/server/app/dashboard/quota.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 +5 -5
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +5 -5
- 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 +5 -5
- package/app/.next-cli-build/server/app/dashboard/settings.html +2 -2
- package/app/.next-cli-build/server/app/dashboard/settings.rsc +11 -11
- package/app/.next-cli-build/server/app/dashboard/settings.segments/!KGRhc2hib2FyZCk/dashboard/settings/__PAGE__.segment.rsc +11 -11
- package/app/.next-cli-build/server/app/dashboard/settings.segments/_full.segment.rsc +11 -11
- package/app/.next-cli-build/server/app/dashboard/settings.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/skills.html +2 -2
- package/app/.next-cli-build/server/app/dashboard/skills.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills/__PAGE__.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/skills.segments/_full.segment.rsc +8 -8
- 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 +11 -11
- package/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver/__PAGE__.segment.rsc +11 -11
- package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_full.segment.rsc +11 -11
- 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 +2 -2
- package/app/.next-cli-build/server/app/dashboard/translator.rsc +11 -11
- package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +11 -11
- package/app/.next-cli-build/server/app/dashboard/translator.segments/_full.segment.rsc +11 -11
- package/app/.next-cli-build/server/app/dashboard/translator.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/ui-kit.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/ui-kit.rsc +10 -10
- package/app/.next-cli-build/server/app/dashboard/ui-kit.segments/!KGRhc2hib2FyZCk/dashboard/ui-kit/__PAGE__.segment.rsc +10 -10
- package/app/.next-cli-build/server/app/dashboard/ui-kit.segments/_full.segment.rsc +10 -10
- package/app/.next-cli-build/server/app/dashboard/ui-kit.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 +11 -11
- package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +11 -11
- package/app/.next-cli-build/server/app/dashboard/usage.segments/_full.segment.rsc +11 -11
- 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 +11 -11
- package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +11 -11
- package/app/.next-cli-build/server/app/dashboard.segments/_full.segment.rsc +11 -11
- package/app/.next-cli-build/server/app/dashboard.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/index.html +1 -1
- package/app/.next-cli-build/server/app/index.rsc +5 -5
- package/app/.next-cli-build/server/app/index.segments/__PAGE__.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/index.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/index.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/landing/page.js +1 -1
- package/app/.next-cli-build/server/app/landing/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/landing/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/landing.html +1 -1
- package/app/.next-cli-build/server/app/landing.rsc +6 -6
- package/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +6 -6
- 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 +6 -6
- 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/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/login.segments/login/__PAGE__.segment.rsc +5 -5
- 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/skills/[...slug]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app-paths-manifest.json +8 -8
- package/app/.next-cli-build/server/chunks/{6734.js → 1004.js} +1 -1
- package/app/.next-cli-build/server/chunks/{4037.js → 1215.js} +1 -1
- package/app/.next-cli-build/server/chunks/1533.js +1 -1
- package/app/.next-cli-build/server/chunks/2217.js +1 -1
- package/app/.next-cli-build/server/chunks/2380.js +3 -3
- package/app/.next-cli-build/server/chunks/24.js +1 -1
- package/app/.next-cli-build/server/chunks/2460.js +1 -1
- package/app/.next-cli-build/server/chunks/257.js +10 -0
- package/app/.next-cli-build/server/chunks/2592.js +1 -1
- package/app/.next-cli-build/server/chunks/2705.js +9 -0
- package/app/.next-cli-build/server/chunks/318.js +2 -10
- package/app/.next-cli-build/server/chunks/3943.js +1 -1
- package/app/.next-cli-build/server/chunks/4123.js +1 -1
- package/app/.next-cli-build/server/chunks/4334.js +1 -1
- package/app/.next-cli-build/server/chunks/5230.js +1 -0
- package/app/.next-cli-build/server/chunks/5260.js +1 -1
- package/app/.next-cli-build/server/chunks/5559.js +9 -0
- package/app/.next-cli-build/server/chunks/5615.js +1 -1
- package/app/.next-cli-build/server/chunks/5649.js +1 -0
- package/app/.next-cli-build/server/chunks/5827.js +1 -1
- package/app/.next-cli-build/server/chunks/5869.js +9 -0
- package/app/.next-cli-build/server/chunks/5908.js +1 -0
- package/app/.next-cli-build/server/chunks/620.js +1 -1
- package/app/.next-cli-build/server/chunks/{1854.js → 6355.js} +1 -1
- package/app/.next-cli-build/server/chunks/6493.js +1 -0
- package/app/.next-cli-build/server/chunks/6496.js +1 -1
- package/app/.next-cli-build/server/chunks/7485.js +9 -0
- package/app/.next-cli-build/server/chunks/{3676.js → 7695.js} +1 -1
- package/app/.next-cli-build/server/chunks/7716.js +1 -1
- package/app/.next-cli-build/server/chunks/7819.js +1 -1
- package/app/.next-cli-build/server/chunks/8171.js +1 -1
- package/app/.next-cli-build/server/chunks/8261.js +1 -0
- package/app/.next-cli-build/server/chunks/878.js +1 -0
- package/app/.next-cli-build/server/chunks/8895.js +10 -10
- package/app/.next-cli-build/server/chunks/8954.js +1 -0
- package/app/.next-cli-build/server/chunks/9016.js +9 -0
- package/app/.next-cli-build/server/chunks/9343.js +1 -1
- package/app/.next-cli-build/server/chunks/9421.js +1 -1
- package/app/.next-cli-build/server/chunks/9489.js +1 -1
- package/app/.next-cli-build/server/chunks/9578.js +1 -1
- package/app/.next-cli-build/server/instrumentation.js.nft.json +1 -1
- package/app/.next-cli-build/server/middleware-build-manifest.js +1 -1
- package/app/.next-cli-build/server/middleware-react-loadable-manifest.js +1 -1
- package/app/.next-cli-build/server/middleware.js.nft.json +1 -1
- package/app/.next-cli-build/server/pages/404.html +1 -1
- package/app/.next-cli-build/server/pages/500.html +1 -1
- package/app/.next-cli-build/server/server-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/server-reference-manifest.json +1 -1
- package/app/.next-cli-build/static/chunks/{198-0c7f5eadfd257db1.js → 198-7c5bbea89ef8bc14.js} +1 -1
- package/app/.next-cli-build/static/chunks/{3670-90f5cd325f460eb5.js → 3670-d6dc44bc181c9b8a.js} +1 -1
- package/app/.next-cli-build/static/chunks/{6174.f1da2912aec81c15.js → 6174.a18fedfa3d765b1e.js} +1 -1
- package/app/.next-cli-build/static/chunks/7899-a12f962af02edf7f.js +1 -0
- package/app/.next-cli-build/static/chunks/8105-71d1aea9708976db.js +1 -0
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/console-log/{page-084fc21b1dbae00d.js → page-1df6ad7d9adfc2a7.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/new/{page-de53f51d191eec46.js → page-25d06b77bd1a5edb.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/translator/{page-243d3da0a2c6cbe9.js → page-5bb99ecaf48bde39.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/ui-kit/{page-998f8c5a36dac961.js → page-1bc393f267badc04.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/{layout-96ebd2b46f1f8d39.js → layout-a94f45e334f1841b.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/landing/{page-bcaea5febe1c68c0.js → page-98f05847e3372b16.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/{layout-c266f1acedfb4651.js → layout-29d74e164758a126.js} +1 -1
- package/app/.next-cli-build/static/chunks/{webpack-8693ccf029e9af63.js → webpack-1e19a4b05298b49d.js} +1 -1
- package/app/.next-cli-build/static/css/{9f0b95a0d0bc5e51.css → ffa1d9c3cbb4e959.css} +1 -1
- package/app/package.json +4 -5
- package/app/server.js +1 -1
- package/package.json +1 -1
- package/app/.next-cli-build/server/chunks/1764.js +0 -1
- package/app/.next-cli-build/server/chunks/3306.js +0 -1
- package/app/.next-cli-build/server/chunks/3558.js +0 -1
- package/app/.next-cli-build/server/chunks/368.js +0 -1
- package/app/.next-cli-build/server/chunks/4199.js +0 -2
- package/app/.next-cli-build/server/chunks/4903.js +0 -1
- package/app/.next-cli-build/server/chunks/6000.js +0 -1
- package/app/.next-cli-build/server/chunks/6403.js +0 -1
- package/app/.next-cli-build/server/chunks/6565.js +0 -1
- package/app/.next-cli-build/server/chunks/7901.js +0 -1
- package/app/.next-cli-build/server/chunks/8372.js +0 -1
- package/app/.next-cli-build/server/chunks/9219.js +0 -1
- package/app/.next-cli-build/static/chunks/7899-83edd7bbf1a98c4a.js +0 -1
- package/app/.next-cli-build/static/chunks/8105-bdd81b911fed8537.js +0 -1
- /package/app/.next-cli-build/static/{J4xdfHpBUAMOCO5dsemSj → gdVYVwJMM6JES9Y1KPQyw}/_buildManifest.js +0 -0
- /package/app/.next-cli-build/static/{J4xdfHpBUAMOCO5dsemSj → gdVYVwJMM6JES9Y1KPQyw}/_ssgManifest.js +0 -0
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";exports.id=2705,exports.ids=[2705],exports.modules={2451:(a,b,c)=>{c.d(b,{T:()=>d});function d(a,b){try{if(!Array.isArray(a))return{id:null,currentWeights:new Map};let c=b instanceof Map?b:new Map,d=new Map,e=new Set,f=0,g=null,h=-1/0;for(let b of a){let a=b?.id;if("string"!=typeof a||0===a.length||e.has(a))continue;e.add(a);let i=b?.weight;if(!Number.isFinite(i)||i<=0)continue;let j=(c.get(a)??0)+i;d.set(a,j),f+=i,j>h&&(g=a,h=j)}if(null===g)return{id:null,currentWeights:new Map};return d.set(g,d.get(g)-f),{id:g,currentWeights:d}}catch{return{id:null,currentWeights:new Map}}}},3662:(a,b,c)=>{c.d(b,{LY:()=>d,O:()=>e,t2:()=>g,x6:()=>f});let d={400:{type:"invalid_request_error",code:"bad_request"},401:{type:"authentication_error",code:"invalid_api_key"},402:{type:"billing_error",code:"payment_required"},403:{type:"permission_error",code:"insufficient_quota"},404:{type:"invalid_request_error",code:"model_not_found"},406:{type:"invalid_request_error",code:"model_not_supported"},429:{type:"rate_limit_error",code:"rate_limit_exceeded"},500:{type:"server_error",code:"internal_server_error"},502:{type:"server_error",code:"bad_gateway"},503:{type:"server_error",code:"service_unavailable"},504:{type:"server_error",code:"gateway_timeout"}},e={400:"Bad request",401:"Invalid API key provided",402:"Payment required",403:"You exceeded your current quota",404:"Model not found",406:"Model not supported",429:"Rate limit exceeded",500:"Internal server error",502:"Bad gateway - upstream provider error",503:"Service temporarily unavailable",504:"Gateway timeout"},f="out of extra usage",g=[{text:"no credentials",cooldownMs:12e4},{text:"request not allowed",cooldownMs:5e3},{text:"improperly formed request",cooldownMs:12e4},{text:"rate limit",backoff:!0},{text:"too many requests",backoff:!0},{text:"quota exceeded",backoff:!0},{text:f,cooldownMs:0},{text:"capacity",backoff:!0},{text:"overloaded",backoff:!0},{text:"not supported when using codex with a chatgpt account",cooldownMs:12e4},{status:401,cooldownMs:12e4},{status:402,cooldownMs:12e4},{status:403,cooldownMs:12e4},{status:404,cooldownMs:12e4},{status:429,backoff:!0}]},9024:(a,b,c)=>{c.d(b,{A4:()=>p,c2:()=>k,mb:()=>s,tV:()=>j,uJ:()=>o,v8:()=>r});var d=c(14170),e=c(44090),f=c(19804),g=c(43659),h=c(78959);let i=new TextEncoder;function j(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))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 k(a,b){if(b===d.h.OPENAI&&a.choices?.[0]?.delta){let b=a.choices[0].delta;return b.content&&""!==b.content||""!==(0,e.V)(b)||b.tool_calls&&b.tool_calls.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}let l=a=>"string"==typeof a&&""!==a,m=a=>!!a&&(l(a.function?.name)||l(a.function?.arguments)||l(a.name)),n=new Set(["response.output_text.delta","response.refusal.delta","response.reasoning_text.delta","response.reasoning_summary_text.delta","response.function_call_arguments.delta","response.custom_tool_call_input.delta"]);function o(a){if(a&&"object"==typeof a&&a.event&&a.data&&(a=a.data),!a||"object"!=typeof a)return!1;if(Array.isArray(a.choices)){let b=a.choices[0];if(!b)return!1;let c=b.delta||b.message||null;return!!(l(c?.content)||l(b.text)||l(c?.refusal)||c&&""!==(0,e.V)(c)||l(c?.audio?.data)||l(c?.audio?.transcript)||Array.isArray(c?.images)&&c.images.length>0)||Array.isArray(c?.tool_calls)&&c.tool_calls.some(m)}if("string"==typeof a.type){let b=a.delta;if("content_block_delta"===a.type&&b&&"object"==typeof b)return l(b.text)||l(b.thinking);if("content_block_start"===a.type&&a.content_block){let b=a.content_block;return b.type===f.R4.TOOL_USE||b.type===f.R4.SERVER_TOOL_USE?l(b.name):l(b.text)||l(b.thinking)}if(n.has(a.type))return l(b);if(/audio|image/.test(a.type)&&/delta|partial/.test(a.type))return l(b)||l(a.partial_image_b64);if("response.output_item.added"===a.type&&a.item){let b=a.item;return(b.type===f.Du.FUNCTION_CALL||b.type===f.Du.CUSTOM_TOOL_CALL)&&l(b.name)}return!1}if(a.message&&"object"==typeof a.message){let b=a.message;return l(b.content)||""!==(0,e.V)(b)||Array.isArray(b.tool_calls)&&b.tool_calls.some(m)}if(l(a.content))return!0;let b=a.candidates?.[0]?.content?.parts??a.response?.candidates?.[0]?.content?.parts;return!!Array.isArray(b)&&b.some(a=>l(a?.text)||l(a?.functionCall?.name)||l(a?.inlineData?.data))}function p(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 q(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=q(b.response);a!==b.response&&(b={...b,response:a})}return b}function r(a,b){if(null==a)return"data: null\n\n";if(a&&a.done)return"data: [DONE]\n\n";if(a&&a.event&&a.data){let b=q(a.data);return`event: ${a.event}
|
|
2
|
+
data: ${JSON.stringify(b)}
|
|
3
|
+
|
|
4
|
+
`}return(a=q(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 s(a,b,c){let{error:e}=(0,g.xJ)(a,b),f=c===d.h.CLAUDE?r({type:"error",error:e},d.h.CLAUDE):r({error:e},c)+h.$U;return i.encode(f)}},14170:(a,b,c)=>{c.d(b,{h:()=>d,t:()=>e});let d={OPENAI:"openai",OPENAI_RESPONSES:"openai-responses",OPENAI_RESPONSE:"openai-response",CLAUDE:"claude",GEMINI:"gemini",GEMINI_CLI:"gemini-cli",VERTEX:"vertex",CODEX:"codex",ANTIGRAVITY:"antigravity",KIRO:"kiro",CURSOR:"cursor",OLLAMA:"ollama",COMMANDCODE:"commandcode"};function e(a,b){return a.includes("/v1/responses")?d.OPENAI_RESPONSES:a.includes("/v1/messages")?d.CLAUDE:a.includes("/v1/chat/completions")&&Array.isArray(b?.input)?d.OPENAI:null}},41004:(a,b,c)=>{c.d(b,{C8:()=>u,DR:()=>t,IK:()=>n,KV:()=>r,O9:()=>k,Ps:()=>i,SA:()=>q,Uc:()=>o,cI:()=>s,eo:()=>p,gx:()=>e,h9:()=>l,ii:()=>f,pH:()=>m,v1:()=>g,xM:()=>j});var d=c(31223);c(3662);let e={BAD_REQUEST:400,UNAUTHORIZED:401,PAYMENT_REQUIRED:402,FORBIDDEN:403,NOT_FOUND:404,NOT_ACCEPTABLE:406,REQUEST_TIMEOUT:408,RATE_LIMITED:429,SERVER_ERROR:500,BAD_GATEWAY:502,SERVICE_UNAVAILABLE:503,GATEWAY_TIMEOUT:504},f="/api/combos/probe",g={sessionTtlMs:72e5,sessionCleanupIntervalMs:18e5,dnsCacheTtlMs:3e5,proxyDispatchersMaxSize:20};function h(a,b){let c=process.env[a];if(null==c||""===c)return b;let d=parseInt(c,10);return Number.isFinite(d)&&d>0?d:b}let i=process.env.SEARXNG_URL?.trim()||"http://localhost:8888/search",j=h("STREAM_STALL_TIMEOUT_MS",36e4),k=h("COMBO_STREAM_PROBE_MAX_BYTES",262144),l=h("COMBO_STREAM_PROBE_MAX_MS",1e4);h("STREAM_FIRST_CHUNK_TIMEOUT_MS",2e5);let m=h("FETCH_CONNECT_TIMEOUT_MS",6e4),n=h("GEMINI_NATIVE_TTS_FETCH_TIMEOUT_MS",45e3),o=64e3,p=32e3,q=`${d.qt.headerPrefix}token-saver`,r=`${d.qx.headerPrefix}token-saver`,s={429:{attempts:0,delayMs:0},502:{attempts:3,delayMs:3e3},503:{attempts:3,delayMs:2e3},504:{attempts:2,delayMs:3e3}};function t(a){return null==a?{attempts:0,delayMs:2e3}:"number"==typeof a?{attempts:a,delayMs:2e3}:{attempts:null!=a.attempts?a.attempts:a.tries||0,delayMs:null!=a.delayMs?a.delayMs:2e3}}let u=["Please write a 5-10 word title for the following conversation:"]},58691:(a,b,c)=>{c.d(b,{VF:()=>i,er:()=>h});let d=Object.freeze(["fallback","round-robin","fusion","weighted"]),e="fallback",f=new Set(["__proto__","constructor","prototype"]);function g(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function h(a,b){let c=a?.comboStrategies,f=g(c)&&Object.hasOwn(c,b)&&g(c[b])?c[b]:{},h=f.fallbackStrategy||a?.comboStrategy||e;return{strategy:d.includes(h)?h:e,stickyLimit:a?.comboStickyRoundRobinLimit,weights:g(f.weights)?f.weights:{},judgeModel:f.judgeModel,fusionTuning:f.fusionTuning}}function i(a){if(!g(a))return null;if(Object.hasOwn(a,"comboStrategy")&&!d.includes(a.comboStrategy))return"Invalid comboStrategy";if(!Object.hasOwn(a,"comboStrategies"))return null;let b=a.comboStrategies;if(!g(b))return"comboStrategies must be an object";let c=Object.entries(b);if(c.length>500)return"Too many comboStrategies entries";for(let[a,b]of c){if(f.has(a))return`Invalid combo name "${a}"`;if(!g(b)||void 0!==b.fallbackStrategy&&!d.includes(b.fallbackStrategy))return`Invalid strategy for combo "${a}"`;let c=b.weights;if(void 0!==c){if(!g(c)||Object.keys(c).length>200)return`Invalid weights for combo "${a}"`;for(let[b,d]of Object.entries(c))if(f.has(b)||"number"!=typeof d||!Number.isFinite(d)||d<0||d>1e3)return`Invalid weight for combo "${a}" model "${b}"`}}return null}},78959:(a,b,c)=>{c.d(b,{$U:()=>d,RK:()=>g,pb:()=>e,uB:()=>f});let d="data: [DONE]\n\n",e={"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"},f={"Content-Type":"text/event-stream","Cache-Control":"no-cache","X-Accel-Buffering":"no"},g={"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive","Access-Control-Allow-Origin":"*"}}};
|
|
@@ -1,12 +1,4 @@
|
|
|
1
|
-
"use strict";exports.id=318,exports.ids=[318],exports.modules={324:(a,b,c)=>{c.d(b,{J:()=>e,Q:()=>f});let d={claude:["claude","anthropic"],"gemini-cli":["gemini-cli"],antigravity:["antigravity"],codex:["codex"]};function e(a={},b={}){let c=(a["user-agent"]||"").toLowerCase(),d=(a["x-app"]||"").toLowerCase(),f=(a["openai-intent"]||"").toLowerCase(),g=(a["x-initiator"]||a["X-Initiator"]||"").toLowerCase(),h=(a.originator||"").toLowerCase();return"antigravity"===b.userAgent?"antigravity":c.includes("githubcopilotchat")||"conversation-panel"===f||"user"===g?"github-copilot":c.includes("claude-cli")||c.includes("claude-code")||"cli"===d?"claude":c.includes("gemini-cli")?"gemini-cli":c.includes("codex-tui")||c.includes("codex-cli")||c.includes("codex_cli_rs")||c.includes("codex desktop")||h.startsWith("codex_")?"codex":c.includes("deepseek-tui")?"deepseek-tui":null}function f(a,b){if(!a)return!1;let c=d[a];if(!c)return!1;let e=b.startsWith("anthropic-compatible")?"anthropic":b;return c.includes(e)}},2687:(a,b,c)=>{c.d(b,{B4:()=>g,Eq:()=>f,W1:()=>k});var d=c(55456);let e=new Set([1,15,19,55]),f={REQUEST_CONTEXT:10,MCP:11,MCP_STATE:36},g="Environment: this session is not running inside an IDE. Built-in IDE tools (shell, file read/write/edit/delete, grep, ls, fetch) are unavailable and will be rejected. Use only the tools provided in this request; if none are provided, answer directly.",h=(a,b,c)=>({result:a,caseField:b,reasonField:c}),i={2:h(2,4,3),3:h(3,6,2),4:h(4,6,2),5:h(5,2,1),7:h(7,3,2),8:h(8,3,2),9:h(9,3,2),14:h(14,5,3),16:h(16,3,3),17:h(17,3,1),18:h(18,3,2),20:h(20,2,2),21:h(21,4,1),22:h(22,2,1),23:h(23,2,1),27:{result:27},28:h(28,2,2),29:h(29,3,2),30:{result:30},31:{result:31},37:h(37,4,2),38:h(38,2,1),40:h(40,2,2),41:{result:41},42:{result:42},43:{result:43},44:{result:44},45:h(46,2,1),46:h(47,2,1),47:h(48,3,1),48:h(49,3,1),49:h(50,2,1),50:h(51,2,1),51:h(52,2,1),52:h(55,4,3),53:h(53,2,1),54:h(54,2,1)},j=a=>a in i||Object.values(f).includes(a);function k(a,{tools:b=[]}={}){var c,h;let l,m=(l=[...a||[]].filter(([a,b])=>!e.has(a)&&b[0]?.wireType===2).map(([a])=>a)).find(j)??l[0]??null;if(null===m)return null;let n=[...a.keys()].join(","),o=(b,c,e,f)=>{let g,h,i;return{frame:(g=Number(a?.get(1)?.[0]?.value||0),h=(0,d.ww)(a,15),i=[],g&&i.push((0,d.Xh)(1,0,g)),i.push((0,d.Xh)(15,2,h)),i.push((0,d.Xh)(b,2,c)),(0,d.tM)((0,d.Xh)(2,2,(0,d.zI)(...i)))),variant:m,level:e,message:`AgentService ${f}`}};if(m===f.REQUEST_CONTEXT)return o(m,(0,d.Xh)(1,2,(0,d.Xh)(1,2,new Uint8Array)),"info","request_context ack");if(m===f.MCP_STATE){let c,e;return o(m,(c=(0,d.zI)((0,d.Xh)(1,2,d.Yz),(0,d.Xh)(2,2,d.Yz),...b.map(a=>(0,d.Xh)(5,2,(0,d.Mm)(a))),(0,d.Xh)(6,2,(0,d.zI)((0,d.Xh)(1,2,d.Yz),(0,d.Xh)(2,2,g),(0,d.Xh)(3,2,d.Yz)))),(0,d.Xh)(1,2,(0,d.Xh)(1,2,c))),"info",`mcp_state reply tools=${b.length} requested=${(e=a.get(f.MCP_STATE)[0].value,((0,d.Y8)(e).get(1)||[]).map(a=>Buffer.from(a.value).toString("utf8")).join(","))}`)}if(m===f.MCP)return o(m,(0,d.SV)("MCP tool call is missing a tool name"),"warn",`rejected MCP exec without a tool name variant=${m} fields=${n}`);let p=i[m];return p?o(p.result,(c=p.caseField,h=p.reasonField,c?(0,d.Xh)(c,2,(0,d.Xh)(h,2,"Tool not available in this environment. Use the MCP tools provided instead.")):new Uint8Array),"info",`rejected IDE exec variant=${m} fields=${n}`):o(m,new Uint8Array,"warn",`rejected unrecognized IDE exec variant=${m} fields=${n}`)}},4493:(a,b,c)=>{c.d(b,{j9:()=>K});var d=c(55511),e=c.n(d),f=c(74957),g=c(35024),h=c(41004),i=c(72239),j=c(86724),k=c(80662),l=c(59096),m=c(74129),n=c(37981);let o="x-opencode-session",p="_opencodeSession",q="_opencodeRequest",r=/^ses_[0-9a-f]{12}[0-9A-Za-z]{14}$/,s=/^msg_[0-9a-f]{12}[0-9A-Za-z]{14}$/,t="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",u=[{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:{}}}}],v=[{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 w(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 v)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 u)b.has(c.function.name)||a.tools.push({...c,function:{...c.function}})}else a.tools=u.map(a=>({...a,function:{...a.function}})),a.tool_choice||(a.tool_choice="none")}let x=new Set(["muse-spark-1.2-contributor-free","muse-spark-1.3-contributor-free"]),y=new Set(["union-alpha"]),z=0,A=0;function B(){let a=e().randomBytes(14),b="";for(let c=0;c<14;c++)b+=t[a[c]%62];return b}function C(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}${B()}`}function D(a,b=""){if("string"==typeof a&&r.test(a.trim()))return a.trim();let c=e().createHash("sha256").update(`opencode\0${b||"generic"}\0${a||""}`).digest(),d=c.subarray(0,6).toString("hex"),f="";for(let a=6;a<20;a++)f+=t[c[a]%62];return`ses_${d}${f}`}function E(a){if("string"!=typeof a)return null;let b=a.trim();return!b||b.length>256?null:b}let F=new Map,G=setInterval(()=>{let a=Date.now();for(let[b,c]of F)a-c.lastUsed>h.v1.sessionTtlMs&&F.delete(b)},h.v1.sessionCleanupIntervalMs);function H(a){if("string"!=typeof a)return null;let b=a.trim();return!b||b.length>256?null:s.test(b)?b:null}function I(a){return String(a||"").replace(/\([^()]+\)\s*$/,"").trim()}function J(a){let b=I(a);return x.has(b)||(0,l.nh)(b)}G.unref&&G.unref();class K extends f.H{constructor(){super("opencode",g.xq.opencode)}prepareRequestCredentials({body:a,credentials:b,providerSessionId:c,clientTool:d}={}){let f=b||{},g=function(a,b,c,d){let f=b?.rawHeaders||{},g=function(a){if(!a||"object"!=typeof a)return null;for(let[b,c]of Object.entries(a))if(b.toLowerCase()===o){let a=E(c);if(a&&r.test(a))return a}return null}(f);if(g)return g;let h=null;for(let[a,b]of Object.entries(f))if(a.toLowerCase()===o){h=E(b);break}let i=h||E(c);if(i)return D(i,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,k.oV)({headers:f,body:a,connectionId:b?.connectionId,scope:"opencode"})}catch{c=null}if(c)return D(c,d)}let j=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=e().createHash("sha256").update(String(d)).digest("hex").slice(0,32);return`opencode:auth:${a}`}return"opencode:default"}(b),l=F.get(j);if(l)return l.lastUsed=Date.now(),F.delete(j),F.set(j,l),l.sessionId;let m=function(a=Date.now()){a!==z&&(z=a,A=0),A++;let b=~(4096n*BigInt(a)+BigInt(A)),c=Array.from({length:6},(a,c)=>Number(b>>BigInt(40-8*c)&255n).toString(16).padStart(2,"0")).join("");return`ses_${c}${B()}`}();return F.size>=1e3&&F.delete(F.keys().next().value),F.set(j,{sessionId:m,lastUsed:Date.now()}),m}(a,f,c,d);return{...f,[p]:g,[q]:function(a,b,c){for(let[a,c]of Object.entries(b?.rawHeaders||{}))if("x-opencode-request"===a.toLowerCase()){let a=H(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 C();let d=e().createHash("sha256").update(`opencode-req\0${a||""}\0${c}`).digest(),f=d.subarray(0,6).toString("hex"),g="";for(let a=6;a<20;a++)g+=t[d[a]%62];let h=`msg_${f}${g}`;return s.test(h)?h:C()}(c,a)}(a,f,g)}}transformRequest(a,b,c,d){if(b&&"object"==typeof b&&a&&!b.model&&(b.model=a),b&&"object"==typeof b&&(b.stream=!0),J(a||b?.model)&&b&&"object"==typeof b){"tool_choice"in b&&"auto"!==b.tool_choice&&this.config.quirks?.forceAutoToolChoiceModels?.includes(I(a))&&(b.tool_choice="auto");let c=(0,n.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=I(a||b.model),g=(0,i.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:{}};"object"!==f.type||f.properties||(f={...f,properties:{}});let g=(0,n.c7)(a);for(let b of Object.keys(a))delete a[b];return a.type="function",a.name=d.slice(0,128),e&&(a.description=e),a.parameters=f,void 0!==g&&(a.strict=g),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,n.N8)(a.call_id),a.arguments=(0,n.We)(a.arguments),!0):("function_call_output"===a.type&&(a.call_id=(0,n.N8)(a.call_id),a.output=(0,n.DP)(a.output)),!0)))),Array.isArray(b.tools)&&0!==b.tools.length||w(b,!0)}else b&&"object"==typeof b&&w(b,!1);return(0,j.Z)({provider:this.provider,model:a,body:b})}async execute(a){return super.execute({...a,credentials:this.prepareRequestCredentials(a)})}buildUrl(a){let b=this.config.baseUrl;return J(a)?`${b}/zen/v1/responses`:y.has(I(a))?`${b}/zen/v1/messages`:`${b}/zen/v1/chat/completions`}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),h=a?.[p]||this.prepareRequestCredentials({credentials:a})[p],i=H(e["x-opencode-request"]),j=a?.[q]||i||C(),k={"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":h,"x-opencode-request":j,"x-opencode-project":e["x-opencode-project"]||"global",Accept:b?"text/event-stream":"*/*"};return c.endsWith("/messages")&&(k["anthropic-version"]=m.b8),k}}},9024:(a,b,c)=>{c.d(b,{A4:()=>k,c2:()=>j,mb:()=>n,tV:()=>i,v8:()=>m});var d=c(14170),e=c(44090),f=c(43659),g=c(78959);let h=new TextEncoder;function i(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))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 j(a,b){if(b===d.h.OPENAI&&a.choices?.[0]?.delta){let b=a.choices[0].delta;return b.content&&""!==b.content||""!==(0,e.V)(b)||b.tool_calls&&b.tool_calls.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 k(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 l(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=l(b.response);a!==b.response&&(b={...b,response:a})}return b}function m(a,b){if(null==a)return"data: null\n\n";if(a&&a.done)return"data: [DONE]\n\n";if(a&&a.event&&a.data){let b=l(a.data);return`event: ${a.event}
|
|
2
|
-
data: ${JSON.stringify(b)}
|
|
3
|
-
|
|
4
|
-
`}return(a=l(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 n(a,b,c){let{error:e}=(0,f.xJ)(a,b),i=c===d.h.CLAUDE?m({type:"error",error:e},d.h.CLAUDE):m({error:e},c)+g.$U;return h.encode(i)}},9708:(a,b,c)=>{c.d(b,{D:()=>f});var d=c(96179),e=c(35024);class f extends d.L{constructor(){super("ollama-local")}buildUrl(a,b,c=0,d=null){return`${(0,e.Ak)(d)}/api/chat`}}},11655:(a,b,c)=>{c.d(b,{x:()=>s});var d=c(74957),e=c(35024),f=c(75924),g=c(41004),h=c(65377),i=c(4845),j=c(82380),k=c(14170),l=c(9024),m=c(39609),n=c(96760),o=c(78959),p=c(74129),q=c(55511),r=c.n(q);class s extends d.H{constructor(){super("github",e.xq.github),this.knownCodexModels=new Set}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;return{Authorization:`Bearer ${c}`,"Content-Type":"application/json","copilot-integration-id":"vscode-chat","editor-version":`vscode/${f.x0.VSCODE_VERSION}`,"editor-plugin-version":`copilot-chat/${f.x0.COPILOT_CHAT_VERSION}`,"user-agent":f.x0.USER_AGENT,"openai-intent":"conversation-panel","x-github-api-version":f.x0.API_VERSION,"x-request-id":r().randomUUID?.()||`${Date.now()}-${Math.random().toString(36).slice(2)}`,"x-vscode-user-agent-library-version":"electron-fetch","X-Initiator":"user","anthropic-version":p.b8,Accept:b?"text/event-stream":"application/json"}}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};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,(0,n.c)("github",a,e),e}supportsResponsesEndpoint(a){let b=(a||"").toLowerCase();return!(b.includes("gemini")||b.includes("claude"))}async execute(a){let{model:b,log:c}=a;if(this.isClaudeModel(b))return c?.debug("GITHUB",`Using /v1/messages route for ${b}`),this.executeWithMessagesEndpoint(a);if(this.knownCodexModels.has(b)&&this.supportsResponsesEndpoint(b))return c?.debug("GITHUB",`Using cached /responses route for ${b}`),this.executeWithResponsesEndpoint(a);let d={...a,body:this.sanitizeMessagesForChatCompletions(a.body)},e=await super.execute({...d,proxyOptions:a.proxyOptions||null});if(e.response.status===g.gx.BAD_REQUEST&&this.supportsResponsesEndpoint(b)){let d=await e.response.clone().text();if(d.includes("not accessible via the /chat/completions endpoint")||d.includes("The requested model is not supported"))return c?.warn("GITHUB",`Model ${b} requires /responses. Switching...`),this.knownCodexModels.add(b),this.executeWithResponsesEndpoint(a)}return e}async executeWithResponsesEndpoint({model:a,body:b,stream:c,credentials:d,signal:e,log:f,proxyOptions:g=null}){let k=this.config.responsesUrl,n=this.buildHeaders(d,c),p=(0,h.h)(a,b,c,d);f?.debug("GITHUB","Sending translated request to /responses");let q=await (0,m.proxyAwareFetch)(k,{method:"POST",headers:n,body:JSON.stringify(p),signal:e},g);if(!q.ok)return{response:q,url:k,headers:n,transformedBody:p};let r=(0,j.Ws)("openai-responses");r.model=a;let s=new TextDecoder,t="",u=new TransformStream({async transform(a,b){let d=(t+=s.decode(a,{stream:!0})).split("\n");for(let a of(t=d.pop()||"",d)){let d=a.trim();if(!d)continue;let e=(0,l.tV)(d);if(!e)continue;if(e.done&&!0===c){b.enqueue(new TextEncoder().encode(o.$U));continue}let f=(0,i.v)(e,r);if(f){let a=(0,l.v8)(f,"openai");b.enqueue(new TextEncoder().encode(a))}}},flush(a){if(t.trim()){let b=(0,l.tV)(t.trim());if(b&&!b.done){let c=(0,i.v)(b,r);c&&a.enqueue(new TextEncoder().encode((0,l.v8)(c,"openai")))}}}});return q.body?{response:new Response(q.body.pipeThrough(u),{status:q.status,statusText:q.statusText,headers:q.headers}),url:k,headers:n,transformedBody:p}:{response:new Response("",{status:q.status,headers:q.headers}),url:k,headers:n,transformedBody:p}}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),n=(0,j.GH)(k.h.OPENAI,k.h.CLAUDE,a,b,!0,d,"github"),p=n._toolNameMap;delete n._toolNameMap,f?.debug("GITHUB","Sending translated request to /v1/messages");let q=await (0,m.proxyAwareFetch)(h,{method:"POST",headers:i,body:JSON.stringify(n),signal:e},g);if(!q.ok)return{response:q,url:h,headers:i,transformedBody:n};let r=(0,j.Ws)(k.h.CLAUDE);r.model=a,p&&(r.toolNameMap=p);let s=new TextDecoder,t="",u=(a,b)=>{for(let c of b)a.enqueue(new TextEncoder().encode((0,l.v8)(c,"openai")))},v=new TransformStream({async transform(a,b){let d=(t+=s.decode(a,{stream:!0})).split("\n");for(let a of(t=d.pop()||"",d)){let d=a.trim();if(!d)continue;let e=(0,l.tV)(d);if(e){if(e.done&&!0===c){b.enqueue(new TextEncoder().encode(o.$U));continue}u(b,(0,j.Y8)(k.h.CLAUDE,k.h.OPENAI,e,r))}}},flush(a){if(t.trim()){let b=(0,l.tV)(t.trim());b&&!b.done&&u(a,(0,j.Y8)(k.h.CLAUDE,k.h.OPENAI,b,r))}}});return q.body?{response:new Response(q.body.pipeThrough(v),{status:q.status,statusText:q.statusText,headers:q.headers}),url:h,headers:i,transformedBody:n}:{response:new Response("",{status:q.status,headers:q.headers}),url:h,headers:i,transformedBody:n}}async refreshCopilotToken(a,b,c=null){try{let d=await (0,m.proxyAwareFetch)("https://api.github.com/copilot_internal/v2/token",{headers:{Authorization:`token ${a}`,"User-Agent":f.x0.USER_AGENT,"Editor-Version":`vscode/${f.x0.VSCODE_VERSION}`,"Editor-Plugin-Version":`copilot-chat/${f.x0.COPILOT_CHAT_VERSION}`,Accept:"application/json","x-github-api-version":f.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,m.proxyAwareFetch)(f.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 g=await e.json();return b?.info?.("TOKEN","GitHub token refreshed"),{accessToken:g.access_token,refreshToken:g.refresh_token||a,expiresIn:g.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)}}},12132:(a,b,c)=>{c.d(b,{$6:()=>A,Fp:()=>C,Me:()=>B,Nv:()=>y,SE:()=>z,fg:()=>t});var d=c(73024),e=c.n(d),f=c(48161),g=c.n(f),h=c(76760),i=c.n(h),j=c(77598),k=c.n(j),l=c(39609);let m="https://mimo-server-cn.xiaomimimo.com",n="account.xiaomi.com",o="miNative PC/Normal Windows_NT/10.0.19045 SDKV/1.0.0 DEVT/PC DEVS/Windows APP/miaccount_desktop APPV/0.1.0",p="MiClaw/1.0",q=new Map,r=new Map;async function s(){let a,b=(a=g().homedir(),"win32"===process.platform?i().join(a,"AppData","Roaming","Xiaomi MiMo","Partitions","xiaomi-account","Network","Cookies"):"darwin"===process.platform?i().join(a,"Library","Application Support","Xiaomi MiMo","Partitions","xiaomi-account","Network","Cookies"):i().join(a,".config","Xiaomi MiMo","Partitions","xiaomi-account","Network","Cookies"));if(!e().existsSync(b))return null;let d=i().join(g().tmpdir(),`9r-mimo-cookies-${process.pid}-${k().randomBytes(4).toString("hex")}.db`);try{e().copyFileSync(b,d)}catch{return null}try{let{DatabaseSync:a}=await Promise.resolve().then(c.t.bind(c,80099,23)),b=new a(d,{readOnly:!0}),e=b.prepare("SELECT name, value FROM cookies WHERE host_key = ?").all("."+n);b.close();let f=Object.fromEntries(e.map(a=>[a.name,a.value]));return f.passToken?f:null}catch{return null}finally{try{e().unlinkSync(d)}catch{}}}async function t(){try{let a=await s();if(!a?.passToken)return null;return{passToken:a.passToken,userId:a.userId||null,cUserId:a.cUserId||null}}catch{return null}}function u(a,b){for(let c of b.headers.getSetCookie?.()||[]){let b=/^([^=]+)=([^;]*)/.exec(c.trim());b&&b[2]&&(a[b[1]]=b[2])}}function v(a){return Object.entries(a).filter(([,a])=>a).map(([a,b])=>`${a}=${b}`).join("; ")}async function w(a,b){var c;let d,e={...a},f=(await (0,l.proxyAwareFetch)(`${m}/api/user/xiaomi/me`,{redirect:"manual",headers:{"User-Agent":o,Cookie:v(e)}},b)).headers.get("location");if(!f)return null;let g=new URL(f).searchParams.get("callback");if(!g)return null;let h=await (0,l.proxyAwareFetch)(`https://${n}/pass/serviceLogin?sid=passportapi&_json=true`,{headers:{Cookie:v(e),"User-Agent":p,Accept:"application/json"}},b),i=JSON.parse((await h.text()).replace(/^&&&START&&&/,"")),j=i.nonce||(i.location?new URL(i.location).searchParams.get("nonce"):null);if(!j||!i.location)return null;let q=await (0,l.proxyAwareFetch)(`${i.location}&clientSign=${(d=`nonce=${j}`+((c=i.ssecurity)&&c.trim()?`&${c}`:""),encodeURIComponent(k().createHash("sha1").update(d).digest("base64")))}`,{redirect:"manual",headers:{Cookie:v(e),"User-Agent":p}},b);u(e,q);let r=await (0,l.proxyAwareFetch)(`https://${n}/pass/serviceLogin?sid=mimopc&callback=${encodeURIComponent(g)}&_json=true`,{headers:{Cookie:v(e),"User-Agent":p,Accept:"application/json"}},b),s=JSON.parse((await r.text()).replace(/^&&&START&&&/,""));if(u(e,r),!s?.location||!/\/api\/sts/.test(s.location))return null;let t=await (0,l.proxyAwareFetch)(s.location,{redirect:"manual",headers:{"User-Agent":o,Cookie:v(e)}},b);if(u(e,t),!e.serviceToken)return null;let w={};for(let a of["serviceToken","mimopc_ph","mimopc_slh","userId"])e[a]&&(w[a]=e[a]);return v(w)}async function x(a,b){let c=a?.mimoPassToken?{passToken:a.mimoPassToken,userId:a.mimoUserId,cUserId:a.mimoCUserId}:await s();if(!c)return{cookie:null,reason:"no-pass-token"};let d=k().createHash("sha256").update(c.passToken).digest("hex"),e=q.get(d);if(e&&Date.now()-e.at<18e5)return{cookie:e.cookie};let f=r.get(d);if(f){let a=await f;return a?{cookie:a}:{cookie:null,reason:"sso-failed"}}let g=(async()=>{try{return await w(c,b)}catch{return null}finally{r.delete(d)}})();r.set(d,g);let h=await g;return h?(q.set(d,{cookie:h,at:Date.now()}),{cookie:h}):{cookie:null,reason:"sso-failed"}}function y(){q.clear()}let z=m,A=o;async function B(a=null,b=null){try{let{cookie:c}=await x(a,b);return c}catch{return null}}async function C(a=null,b=null){let{cookie:c,reason:d}=await x(a,b);if(!c)return{error:"no-pass-token"===d?"no-session":"session-failed"};try{let a=await (0,l.proxyAwareFetch)(`${m}/api/user/usage`,{headers:{"User-Agent":o,Cookie:c,Accept:"application/json"},signal:AbortSignal.timeout(1e4)},b);if(!a.ok)return{error:`http-${a.status}`};let d=await a.json().catch(()=>null);if(!d||0!==d.code||!d.data)return{error:"bad-response"};return{percent:d.data.percent,resetDate:d.data.resetDate,resetAt:d.data.resetAt}}catch(a){return{error:a.message}}}},13120:(a,b,c)=>{c.d(b,{H:()=>o});var d=c(77598),e=c.n(d),f=c(96179),g=c(80662),h=c(99511),i=c(57247),j=c(37981);let k="x-opencode-session",l="_opencodeGoSession";function m(a){if("string"!=typeof a)return null;let b=a.trim();return!b||b.length>256?null:b}function n(a){let b=(0,i.SM)("opencode-go").find(b=>b.id===String(a||"").replace(/\([^()]+\)\s*$/,"").trim());return"openai-responses"===(0,h.gr)(b)}class o extends f.L{constructor(){super("opencode-go")}buildUrl(a,b,c=0,d=null){return n(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,h=b||{},i=function(a){if(!a||"object"!=typeof a)return null;for(let[b,c]of Object.entries(a))if(b.toLowerCase()===k)return m(c);return null}(h.rawHeaders),j=m(c)||(0,g.oV)({headers:h.rawHeaders,body:a,connectionId:h.connectionId,scope:"opencode-go"});return{...h,[l]:i||(f=e().createHash("sha256").update(`opencode-go\0${d||"generic"}\0${j}`).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?.[l];if(f)return e[k]=f,e;let g=this.prepareRequestCredentials({credentials:a});return e[k]=g[l],e}transformRequest(a,b,c,d){let e=super.transformRequest(a,b);if(!n(a||b?.model))return e;let f=(0,j.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:{}};"object"!==f.type||f.properties||(f={...f,properties:{}});let g=(0,j.c7)(a);for(let b of Object.keys(a))delete a[b];return a.type="function",a.name=d.slice(0,128),e&&(a.description=e),a.parameters=f,void 0!==g&&(a.strict=g),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,j.N8)(a.call_id),a.arguments=(0,j.We)(a.arguments),!0):("function_call_output"===a.type&&(a.call_id=(0,j.N8)(a.call_id),a.output=(0,j.DP)(a.output)),!0)))),e}}},16046:(a,b,c)=>{c.d(b,{Yh:()=>q});var d=c(74957),e=c(35024),f=c(39609),g=c(55511),h=c(21820),i=c.n(h);let j=e.xq["mimo-free"].baseUrl,k="abcdefghijklmnopqrstuvwxyz0123456789",l=["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"],m="You are MiMoCode, an interactive CLI tool that helps users with software engineering tasks.",n=null,o=0;async function p(a=null){if(n&&Date.now()<o-3e5)return n;let b=await (0,f.proxyAwareFetch)("https://api.xiaomimimo.com/api/free-ai/bootstrap",{method:"POST",headers:{"Content-Type":"application/json","User-Agent":l[Math.floor(Math.random()*l.length)]},body:JSON.stringify({client:function(){let a="unknown-user";try{a=i().userInfo().username}catch{}let b=(i().cpus()[0]?.model||"unknown-cpu").trim(),c=`${i().hostname()}|${i().platform()}|${i().arch()}|${b}|${a}`;return(0,g.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 n=c.jwt,o=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),n}class q extends d.H{constructor(){super("mimo-free",e.xq["mimo-free"]),this.sessionId=function(){let a="ses_";for(let b=0;b<24;b++)a+=k[Math.floor(Math.random()*k.length)];return a}()}buildUrl(){return j}buildHeaders(a,b=!0){return{"Content-Type":"application/json","X-Mimo-Source":"mimocode-cli-free","User-Agent":l[Math.floor(Math.random()*l.length)],"x-session-affinity":this.sessionId,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(m))?b:{...b,messages:[{role:"system",content:m},...c]}}async execute({model:a,body:b,stream:c,credentials:d,signal:e,log:g,proxyOptions:h=null}){let i;try{i=await p(h)}catch(a){throw g?.error?.("AUTH",`MiMo bootstrap failed: ${a.message}`),a}let j=this.buildUrl(),k=this.transformRequest(a,b),l={...this.buildHeaders(d,c),Authorization:`Bearer ${i}`},m=JSON.stringify(k);g?.debug?.("FETCH",`MIMO-FREE → ${j} | body=${m.length}B`);let q=await (0,f.proxyAwareFetch)(j,{method:"POST",headers:l,body:m,signal:e},h);return 401===q.status||403===q.status?(g?.debug?.("AUTH",`MiMo auth failed (${q.status}), re-bootstrapping...`),n=null,o=0,i=await p(h),l.Authorization=`Bearer ${i}`,{response:await (0,f.proxyAwareFetch)(j,{method:"POST",headers:l,body:m,signal:e},h),url:j,headers:l,transformedBody:k}):{response:q,url:j,headers:l,transformedBody:k}}}},19932:(a,b,c)=>{c.d(b,{T:()=>C});var d=c(74957);let e=`You are Codex, based on GPT-5. You are running as a coding agent in the Codex CLI on a user's computer.
|
|
1
|
+
"use strict";exports.id=318,exports.ids=[318],exports.modules={324:(a,b,c)=>{c.d(b,{J:()=>e,Q:()=>f});let d={claude:["claude","anthropic"],"gemini-cli":["gemini-cli"],antigravity:["antigravity"],codex:["codex"]};function e(a={},b={}){let c=(a["user-agent"]||"").toLowerCase(),d=(a["x-app"]||"").toLowerCase(),f=(a["openai-intent"]||"").toLowerCase(),g=(a["x-initiator"]||a["X-Initiator"]||"").toLowerCase(),h=(a.originator||"").toLowerCase();return"antigravity"===b.userAgent?"antigravity":c.includes("githubcopilotchat")||"conversation-panel"===f||"user"===g?"github-copilot":c.includes("claude-cli")||c.includes("claude-code")||"cli"===d?"claude":c.includes("gemini-cli")?"gemini-cli":c.includes("codex-tui")||c.includes("codex-cli")||c.includes("codex_cli_rs")||c.includes("codex desktop")||h.startsWith("codex_")?"codex":c.includes("deepseek-tui")?"deepseek-tui":null}function f(a,b){if(!a)return!1;let c=d[a];if(!c)return!1;let e=b.startsWith("anthropic-compatible")?"anthropic":b;return c.includes(e)}},2687:(a,b,c)=>{c.d(b,{B4:()=>g,Eq:()=>f,W1:()=>k});var d=c(55456);let e=new Set([1,15,19,55]),f={REQUEST_CONTEXT:10,MCP:11,MCP_STATE:36},g="Environment: this session is not running inside an IDE. Built-in IDE tools (shell, file read/write/edit/delete, grep, ls, fetch) are unavailable and will be rejected. Use only the tools provided in this request; if none are provided, answer directly.",h=(a,b,c)=>({result:a,caseField:b,reasonField:c}),i={2:h(2,4,3),3:h(3,6,2),4:h(4,6,2),5:h(5,2,1),7:h(7,3,2),8:h(8,3,2),9:h(9,3,2),14:h(14,5,3),16:h(16,3,3),17:h(17,3,1),18:h(18,3,2),20:h(20,2,2),21:h(21,4,1),22:h(22,2,1),23:h(23,2,1),27:{result:27},28:h(28,2,2),29:h(29,3,2),30:{result:30},31:{result:31},37:h(37,4,2),38:h(38,2,1),40:h(40,2,2),41:{result:41},42:{result:42},43:{result:43},44:{result:44},45:h(46,2,1),46:h(47,2,1),47:h(48,3,1),48:h(49,3,1),49:h(50,2,1),50:h(51,2,1),51:h(52,2,1),52:h(55,4,3),53:h(53,2,1),54:h(54,2,1)},j=a=>a in i||Object.values(f).includes(a);function k(a,{tools:b=[]}={}){var c,h;let l,m=(l=[...a||[]].filter(([a,b])=>!e.has(a)&&b[0]?.wireType===2).map(([a])=>a)).find(j)??l[0]??null;if(null===m)return null;let n=[...a.keys()].join(","),o=(b,c,e,f)=>{let g,h,i;return{frame:(g=Number(a?.get(1)?.[0]?.value||0),h=(0,d.ww)(a,15),i=[],g&&i.push((0,d.Xh)(1,0,g)),i.push((0,d.Xh)(15,2,h)),i.push((0,d.Xh)(b,2,c)),(0,d.tM)((0,d.Xh)(2,2,(0,d.zI)(...i)))),variant:m,level:e,message:`AgentService ${f}`}};if(m===f.REQUEST_CONTEXT)return o(m,(0,d.Xh)(1,2,(0,d.Xh)(1,2,new Uint8Array)),"info","request_context ack");if(m===f.MCP_STATE){let c,e;return o(m,(c=(0,d.zI)((0,d.Xh)(1,2,d.Yz),(0,d.Xh)(2,2,d.Yz),...b.map(a=>(0,d.Xh)(5,2,(0,d.Mm)(a))),(0,d.Xh)(6,2,(0,d.zI)((0,d.Xh)(1,2,d.Yz),(0,d.Xh)(2,2,g),(0,d.Xh)(3,2,d.Yz)))),(0,d.Xh)(1,2,(0,d.Xh)(1,2,c))),"info",`mcp_state reply tools=${b.length} requested=${(e=a.get(f.MCP_STATE)[0].value,((0,d.Y8)(e).get(1)||[]).map(a=>Buffer.from(a.value).toString("utf8")).join(","))}`)}if(m===f.MCP)return o(m,(0,d.SV)("MCP tool call is missing a tool name"),"warn",`rejected MCP exec without a tool name variant=${m} fields=${n}`);let p=i[m];return p?o(p.result,(c=p.caseField,h=p.reasonField,c?(0,d.Xh)(c,2,(0,d.Xh)(h,2,"Tool not available in this environment. Use the MCP tools provided instead.")):new Uint8Array),"info",`rejected IDE exec variant=${m} fields=${n}`):o(m,new Uint8Array,"warn",`rejected unrecognized IDE exec variant=${m} fields=${n}`)}},4493:(a,b,c)=>{c.d(b,{j9:()=>K});var d=c(55511),e=c.n(d),f=c(74957),g=c(35024),h=c(41004),i=c(72239),j=c(86724),k=c(80662),l=c(59096),m=c(74129),n=c(37981);let o="x-opencode-session",p="_opencodeSession",q="_opencodeRequest",r=/^ses_[0-9a-f]{12}[0-9A-Za-z]{14}$/,s=/^msg_[0-9a-f]{12}[0-9A-Za-z]{14}$/,t="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",u=[{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:{}}}}],v=[{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 w(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 v)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 u)b.has(c.function.name)||a.tools.push({...c,function:{...c.function}})}else a.tools=u.map(a=>({...a,function:{...a.function}})),a.tool_choice||(a.tool_choice="none")}let x=new Set(["muse-spark-1.2-contributor-free","muse-spark-1.3-contributor-free"]),y=new Set(["union-alpha"]),z=0,A=0;function B(){let a=e().randomBytes(14),b="";for(let c=0;c<14;c++)b+=t[a[c]%62];return b}function C(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}${B()}`}function D(a,b=""){if("string"==typeof a&&r.test(a.trim()))return a.trim();let c=e().createHash("sha256").update(`opencode\0${b||"generic"}\0${a||""}`).digest(),d=c.subarray(0,6).toString("hex"),f="";for(let a=6;a<20;a++)f+=t[c[a]%62];return`ses_${d}${f}`}function E(a){if("string"!=typeof a)return null;let b=a.trim();return!b||b.length>256?null:b}let F=new Map,G=setInterval(()=>{let a=Date.now();for(let[b,c]of F)a-c.lastUsed>h.v1.sessionTtlMs&&F.delete(b)},h.v1.sessionCleanupIntervalMs);function H(a){if("string"!=typeof a)return null;let b=a.trim();return!b||b.length>256?null:s.test(b)?b:null}function I(a){return String(a||"").replace(/\([^()]+\)\s*$/,"").trim()}function J(a){let b=I(a);return x.has(b)||(0,l.nh)(b)}G.unref&&G.unref();class K extends f.H{constructor(){super("opencode",g.xq.opencode)}prepareRequestCredentials({body:a,credentials:b,providerSessionId:c,clientTool:d}={}){let f=b||{},g=function(a,b,c,d){let f=b?.rawHeaders||{},g=function(a){if(!a||"object"!=typeof a)return null;for(let[b,c]of Object.entries(a))if(b.toLowerCase()===o){let a=E(c);if(a&&r.test(a))return a}return null}(f);if(g)return g;let h=null;for(let[a,b]of Object.entries(f))if(a.toLowerCase()===o){h=E(b);break}let i=h||E(c);if(i)return D(i,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,k.oV)({headers:f,body:a,connectionId:b?.connectionId,scope:"opencode"})}catch{c=null}if(c)return D(c,d)}let j=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=e().createHash("sha256").update(String(d)).digest("hex").slice(0,32);return`opencode:auth:${a}`}return"opencode:default"}(b),l=F.get(j);if(l)return l.lastUsed=Date.now(),F.delete(j),F.set(j,l),l.sessionId;let m=function(a=Date.now()){a!==z&&(z=a,A=0),A++;let b=~(4096n*BigInt(a)+BigInt(A)),c=Array.from({length:6},(a,c)=>Number(b>>BigInt(40-8*c)&255n).toString(16).padStart(2,"0")).join("");return`ses_${c}${B()}`}();return F.size>=1e3&&F.delete(F.keys().next().value),F.set(j,{sessionId:m,lastUsed:Date.now()}),m}(a,f,c,d);return{...f,[p]:g,[q]:function(a,b,c){for(let[a,c]of Object.entries(b?.rawHeaders||{}))if("x-opencode-request"===a.toLowerCase()){let a=H(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 C();let d=e().createHash("sha256").update(`opencode-req\0${a||""}\0${c}`).digest(),f=d.subarray(0,6).toString("hex"),g="";for(let a=6;a<20;a++)g+=t[d[a]%62];let h=`msg_${f}${g}`;return s.test(h)?h:C()}(c,a)}(a,f,g)}}transformRequest(a,b,c,d){if(b&&"object"==typeof b&&a&&!b.model&&(b.model=a),b&&"object"==typeof b&&(b.stream=!0),J(a||b?.model)&&b&&"object"==typeof b){"tool_choice"in b&&"auto"!==b.tool_choice&&this.config.quirks?.forceAutoToolChoiceModels?.includes(I(a))&&(b.tool_choice="auto");let c=(0,n.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=I(a||b.model),g=(0,i.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:{}};"object"!==f.type||f.properties||(f={...f,properties:{}});let g=(0,n.c7)(a);for(let b of Object.keys(a))delete a[b];return a.type="function",a.name=d.slice(0,128),e&&(a.description=e),a.parameters=f,void 0!==g&&(a.strict=g),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,n.N8)(a.call_id),a.arguments=(0,n.We)(a.arguments),!0):("function_call_output"===a.type&&(a.call_id=(0,n.N8)(a.call_id),a.output=(0,n.DP)(a.output)),!0)))),Array.isArray(b.tools)&&0!==b.tools.length||w(b,!0)}else b&&"object"==typeof b&&w(b,!1);return(0,j.Z)({provider:this.provider,model:a,body:b})}async execute(a){return super.execute({...a,credentials:this.prepareRequestCredentials(a)})}buildUrl(a){let b=this.config.baseUrl;return J(a)?`${b}/zen/v1/responses`:y.has(I(a))?`${b}/zen/v1/messages`:`${b}/zen/v1/chat/completions`}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),h=a?.[p]||this.prepareRequestCredentials({credentials:a})[p],i=H(e["x-opencode-request"]),j=a?.[q]||i||C(),k={"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":h,"x-opencode-request":j,"x-opencode-project":e["x-opencode-project"]||"global",Accept:b?"text/event-stream":"*/*"};return c.endsWith("/messages")&&(k["anthropic-version"]=m.b8),k}}},9708:(a,b,c)=>{c.d(b,{D:()=>f});var d=c(96179),e=c(35024);class f extends d.L{constructor(){super("ollama-local")}buildUrl(a,b,c=0,d=null){return`${(0,e.Ak)(d)}/api/chat`}}},11655:(a,b,c)=>{c.d(b,{x:()=>s});var d=c(74957),e=c(35024),f=c(75924),g=c(41004),h=c(65377),i=c(4845),j=c(82380),k=c(14170),l=c(9024),m=c(39609),n=c(96760),o=c(78959),p=c(74129),q=c(55511),r=c.n(q);class s extends d.H{constructor(){super("github",e.xq.github),this.knownCodexModels=new Set}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;return{Authorization:`Bearer ${c}`,"Content-Type":"application/json","copilot-integration-id":"vscode-chat","editor-version":`vscode/${f.x0.VSCODE_VERSION}`,"editor-plugin-version":`copilot-chat/${f.x0.COPILOT_CHAT_VERSION}`,"user-agent":f.x0.USER_AGENT,"openai-intent":"conversation-panel","x-github-api-version":f.x0.API_VERSION,"x-request-id":r().randomUUID?.()||`${Date.now()}-${Math.random().toString(36).slice(2)}`,"x-vscode-user-agent-library-version":"electron-fetch","X-Initiator":"user","anthropic-version":p.b8,Accept:b?"text/event-stream":"application/json"}}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};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,(0,n.c)("github",a,e),e}supportsResponsesEndpoint(a){let b=(a||"").toLowerCase();return!(b.includes("gemini")||b.includes("claude"))}async execute(a){let{model:b,log:c}=a;if(this.isClaudeModel(b))return c?.debug("GITHUB",`Using /v1/messages route for ${b}`),this.executeWithMessagesEndpoint(a);if(this.knownCodexModels.has(b)&&this.supportsResponsesEndpoint(b))return c?.debug("GITHUB",`Using cached /responses route for ${b}`),this.executeWithResponsesEndpoint(a);let d={...a,body:this.sanitizeMessagesForChatCompletions(a.body)},e=await super.execute({...d,proxyOptions:a.proxyOptions||null});if(e.response.status===g.gx.BAD_REQUEST&&this.supportsResponsesEndpoint(b)){let d=await e.response.clone().text();if(d.includes("not accessible via the /chat/completions endpoint")||d.includes("The requested model is not supported"))return c?.warn("GITHUB",`Model ${b} requires /responses. Switching...`),this.knownCodexModels.add(b),this.executeWithResponsesEndpoint(a)}return e}async executeWithResponsesEndpoint({model:a,body:b,stream:c,credentials:d,signal:e,log:f,proxyOptions:g=null}){let k=this.config.responsesUrl,n=this.buildHeaders(d,c),p=(0,h.h)(a,b,c,d);f?.debug("GITHUB","Sending translated request to /responses");let q=await (0,m.proxyAwareFetch)(k,{method:"POST",headers:n,body:JSON.stringify(p),signal:e},g);if(!q.ok)return{response:q,url:k,headers:n,transformedBody:p};let r=(0,j.Ws)("openai-responses");r.model=a;let s=new TextDecoder,t="",u=new TransformStream({async transform(a,b){let d=(t+=s.decode(a,{stream:!0})).split("\n");for(let a of(t=d.pop()||"",d)){let d=a.trim();if(!d)continue;let e=(0,l.tV)(d);if(!e)continue;if(e.done&&!0===c){b.enqueue(new TextEncoder().encode(o.$U));continue}let f=(0,i.v)(e,r);if(f){let a=(0,l.v8)(f,"openai");b.enqueue(new TextEncoder().encode(a))}}},flush(a){if(t.trim()){let b=(0,l.tV)(t.trim());if(b&&!b.done){let c=(0,i.v)(b,r);c&&a.enqueue(new TextEncoder().encode((0,l.v8)(c,"openai")))}}}});return q.body?{response:new Response(q.body.pipeThrough(u),{status:q.status,statusText:q.statusText,headers:q.headers}),url:k,headers:n,transformedBody:p}:{response:new Response("",{status:q.status,headers:q.headers}),url:k,headers:n,transformedBody:p}}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),n=(0,j.GH)(k.h.OPENAI,k.h.CLAUDE,a,b,!0,d,"github"),p=n._toolNameMap;delete n._toolNameMap,f?.debug("GITHUB","Sending translated request to /v1/messages");let q=await (0,m.proxyAwareFetch)(h,{method:"POST",headers:i,body:JSON.stringify(n),signal:e},g);if(!q.ok)return{response:q,url:h,headers:i,transformedBody:n};let r=(0,j.Ws)(k.h.CLAUDE);r.model=a,p&&(r.toolNameMap=p);let s=new TextDecoder,t="",u=(a,b)=>{for(let c of b)a.enqueue(new TextEncoder().encode((0,l.v8)(c,"openai")))},v=new TransformStream({async transform(a,b){let d=(t+=s.decode(a,{stream:!0})).split("\n");for(let a of(t=d.pop()||"",d)){let d=a.trim();if(!d)continue;let e=(0,l.tV)(d);if(e){if(e.done&&!0===c){b.enqueue(new TextEncoder().encode(o.$U));continue}u(b,(0,j.Y8)(k.h.CLAUDE,k.h.OPENAI,e,r))}}},flush(a){if(t.trim()){let b=(0,l.tV)(t.trim());b&&!b.done&&u(a,(0,j.Y8)(k.h.CLAUDE,k.h.OPENAI,b,r))}}});return q.body?{response:new Response(q.body.pipeThrough(v),{status:q.status,statusText:q.statusText,headers:q.headers}),url:h,headers:i,transformedBody:n}:{response:new Response("",{status:q.status,headers:q.headers}),url:h,headers:i,transformedBody:n}}async refreshCopilotToken(a,b,c=null){try{let d=await (0,m.proxyAwareFetch)("https://api.github.com/copilot_internal/v2/token",{headers:{Authorization:`token ${a}`,"User-Agent":f.x0.USER_AGENT,"Editor-Version":`vscode/${f.x0.VSCODE_VERSION}`,"Editor-Plugin-Version":`copilot-chat/${f.x0.COPILOT_CHAT_VERSION}`,Accept:"application/json","x-github-api-version":f.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,m.proxyAwareFetch)(f.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 g=await e.json();return b?.info?.("TOKEN","GitHub token refreshed"),{accessToken:g.access_token,refreshToken:g.refresh_token||a,expiresIn:g.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)}}},12132:(a,b,c)=>{c.d(b,{$6:()=>A,Fp:()=>C,Me:()=>B,Nv:()=>y,SE:()=>z,fg:()=>t});var d=c(73024),e=c.n(d),f=c(48161),g=c.n(f),h=c(76760),i=c.n(h),j=c(77598),k=c.n(j),l=c(39609);let m="https://mimo-server-cn.xiaomimimo.com",n="account.xiaomi.com",o="miNative PC/Normal Windows_NT/10.0.19045 SDKV/1.0.0 DEVT/PC DEVS/Windows APP/miaccount_desktop APPV/0.1.0",p="MiClaw/1.0",q=new Map,r=new Map;async function s(){let a,b=(a=g().homedir(),"win32"===process.platform?i().join(a,"AppData","Roaming","Xiaomi MiMo","Partitions","xiaomi-account","Network","Cookies"):"darwin"===process.platform?i().join(a,"Library","Application Support","Xiaomi MiMo","Partitions","xiaomi-account","Network","Cookies"):i().join(a,".config","Xiaomi MiMo","Partitions","xiaomi-account","Network","Cookies"));if(!e().existsSync(b))return null;let d=i().join(g().tmpdir(),`9r-mimo-cookies-${process.pid}-${k().randomBytes(4).toString("hex")}.db`);try{e().copyFileSync(b,d)}catch{return null}try{let{DatabaseSync:a}=await Promise.resolve().then(c.t.bind(c,80099,23)),b=new a(d,{readOnly:!0}),e=b.prepare("SELECT name, value FROM cookies WHERE host_key = ?").all("."+n);b.close();let f=Object.fromEntries(e.map(a=>[a.name,a.value]));return f.passToken?f:null}catch{return null}finally{try{e().unlinkSync(d)}catch{}}}async function t(){try{let a=await s();if(!a?.passToken)return null;return{passToken:a.passToken,userId:a.userId||null,cUserId:a.cUserId||null}}catch{return null}}function u(a,b){for(let c of b.headers.getSetCookie?.()||[]){let b=/^([^=]+)=([^;]*)/.exec(c.trim());b&&b[2]&&(a[b[1]]=b[2])}}function v(a){return Object.entries(a).filter(([,a])=>a).map(([a,b])=>`${a}=${b}`).join("; ")}async function w(a,b){var c;let d,e={...a},f=(await (0,l.proxyAwareFetch)(`${m}/api/user/xiaomi/me`,{redirect:"manual",headers:{"User-Agent":o,Cookie:v(e)}},b)).headers.get("location");if(!f)return null;let g=new URL(f).searchParams.get("callback");if(!g)return null;let h=await (0,l.proxyAwareFetch)(`https://${n}/pass/serviceLogin?sid=passportapi&_json=true`,{headers:{Cookie:v(e),"User-Agent":p,Accept:"application/json"}},b),i=JSON.parse((await h.text()).replace(/^&&&START&&&/,"")),j=i.nonce||(i.location?new URL(i.location).searchParams.get("nonce"):null);if(!j||!i.location)return null;let q=await (0,l.proxyAwareFetch)(`${i.location}&clientSign=${(d=`nonce=${j}`+((c=i.ssecurity)&&c.trim()?`&${c}`:""),encodeURIComponent(k().createHash("sha1").update(d).digest("base64")))}`,{redirect:"manual",headers:{Cookie:v(e),"User-Agent":p}},b);u(e,q);let r=await (0,l.proxyAwareFetch)(`https://${n}/pass/serviceLogin?sid=mimopc&callback=${encodeURIComponent(g)}&_json=true`,{headers:{Cookie:v(e),"User-Agent":p,Accept:"application/json"}},b),s=JSON.parse((await r.text()).replace(/^&&&START&&&/,""));if(u(e,r),!s?.location||!/\/api\/sts/.test(s.location))return null;let t=await (0,l.proxyAwareFetch)(s.location,{redirect:"manual",headers:{"User-Agent":o,Cookie:v(e)}},b);if(u(e,t),!e.serviceToken)return null;let w={};for(let a of["serviceToken","mimopc_ph","mimopc_slh","userId"])e[a]&&(w[a]=e[a]);return v(w)}async function x(a,b){let c=a?.mimoPassToken?{passToken:a.mimoPassToken,userId:a.mimoUserId,cUserId:a.mimoCUserId}:await s();if(!c)return{cookie:null,reason:"no-pass-token"};let d=k().createHash("sha256").update(c.passToken).digest("hex"),e=q.get(d);if(e&&Date.now()-e.at<18e5)return{cookie:e.cookie};let f=r.get(d);if(f){let a=await f;return a?{cookie:a}:{cookie:null,reason:"sso-failed"}}let g=(async()=>{try{return await w(c,b)}catch{return null}finally{r.delete(d)}})();r.set(d,g);let h=await g;return h?(q.set(d,{cookie:h,at:Date.now()}),{cookie:h}):{cookie:null,reason:"sso-failed"}}function y(){q.clear()}let z=m,A=o;async function B(a=null,b=null){try{let{cookie:c}=await x(a,b);return c}catch{return null}}async function C(a=null,b=null){let{cookie:c,reason:d}=await x(a,b);if(!c)return{error:"no-pass-token"===d?"no-session":"session-failed"};try{let a=await (0,l.proxyAwareFetch)(`${m}/api/user/usage`,{headers:{"User-Agent":o,Cookie:c,Accept:"application/json"},signal:AbortSignal.timeout(1e4)},b);if(!a.ok)return{error:`http-${a.status}`};let d=await a.json().catch(()=>null);if(!d||0!==d.code||!d.data)return{error:"bad-response"};return{percent:d.data.percent,resetDate:d.data.resetDate,resetAt:d.data.resetAt}}catch(a){return{error:a.message}}}},13120:(a,b,c)=>{c.d(b,{H:()=>o});var d=c(77598),e=c.n(d),f=c(96179),g=c(80662),h=c(99511),i=c(57247),j=c(37981);let k="x-opencode-session",l="_opencodeGoSession";function m(a){if("string"!=typeof a)return null;let b=a.trim();return!b||b.length>256?null:b}function n(a){let b=(0,i.SM)("opencode-go").find(b=>b.id===String(a||"").replace(/\([^()]+\)\s*$/,"").trim());return"openai-responses"===(0,h.gr)(b)}class o extends f.L{constructor(){super("opencode-go")}buildUrl(a,b,c=0,d=null){return n(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,h=b||{},i=function(a){if(!a||"object"!=typeof a)return null;for(let[b,c]of Object.entries(a))if(b.toLowerCase()===k)return m(c);return null}(h.rawHeaders),j=m(c)||(0,g.oV)({headers:h.rawHeaders,body:a,connectionId:h.connectionId,scope:"opencode-go"});return{...h,[l]:i||(f=e().createHash("sha256").update(`opencode-go\0${d||"generic"}\0${j}`).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?.[l];if(f)return e[k]=f,e;let g=this.prepareRequestCredentials({credentials:a});return e[k]=g[l],e}transformRequest(a,b,c,d){let e=super.transformRequest(a,b);if(!n(a||b?.model))return e;let f=(0,j.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:{}};"object"!==f.type||f.properties||(f={...f,properties:{}});let g=(0,j.c7)(a);for(let b of Object.keys(a))delete a[b];return a.type="function",a.name=d.slice(0,128),e&&(a.description=e),a.parameters=f,void 0!==g&&(a.strict=g),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,j.N8)(a.call_id),a.arguments=(0,j.We)(a.arguments),!0):("function_call_output"===a.type&&(a.call_id=(0,j.N8)(a.call_id),a.output=(0,j.DP)(a.output)),!0)))),e}}},16046:(a,b,c)=>{c.d(b,{Yh:()=>q});var d=c(74957),e=c(35024),f=c(39609),g=c(55511),h=c(21820),i=c.n(h);let j=e.xq["mimo-free"].baseUrl,k="abcdefghijklmnopqrstuvwxyz0123456789",l=["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"],m="You are MiMoCode, an interactive CLI tool that helps users with software engineering tasks.",n=null,o=0;async function p(a=null){if(n&&Date.now()<o-3e5)return n;let b=await (0,f.proxyAwareFetch)("https://api.xiaomimimo.com/api/free-ai/bootstrap",{method:"POST",headers:{"Content-Type":"application/json","User-Agent":l[Math.floor(Math.random()*l.length)]},body:JSON.stringify({client:function(){let a="unknown-user";try{a=i().userInfo().username}catch{}let b=(i().cpus()[0]?.model||"unknown-cpu").trim(),c=`${i().hostname()}|${i().platform()}|${i().arch()}|${b}|${a}`;return(0,g.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 n=c.jwt,o=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),n}class q extends d.H{constructor(){super("mimo-free",e.xq["mimo-free"]),this.sessionId=function(){let a="ses_";for(let b=0;b<24;b++)a+=k[Math.floor(Math.random()*k.length)];return a}()}buildUrl(){return j}buildHeaders(a,b=!0){return{"Content-Type":"application/json","X-Mimo-Source":"mimocode-cli-free","User-Agent":l[Math.floor(Math.random()*l.length)],"x-session-affinity":this.sessionId,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(m))?b:{...b,messages:[{role:"system",content:m},...c]}}async execute({model:a,body:b,stream:c,credentials:d,signal:e,log:g,proxyOptions:h=null}){let i;try{i=await p(h)}catch(a){throw g?.error?.("AUTH",`MiMo bootstrap failed: ${a.message}`),a}let j=this.buildUrl(),k=this.transformRequest(a,b),l={...this.buildHeaders(d,c),Authorization:`Bearer ${i}`},m=JSON.stringify(k);g?.debug?.("FETCH",`MIMO-FREE → ${j} | body=${m.length}B`);let q=await (0,f.proxyAwareFetch)(j,{method:"POST",headers:l,body:m,signal:e},h);return 401===q.status||403===q.status?(g?.debug?.("AUTH",`MiMo auth failed (${q.status}), re-bootstrapping...`),n=null,o=0,i=await p(h),l.Authorization=`Bearer ${i}`,{response:await (0,f.proxyAwareFetch)(j,{method:"POST",headers:l,body:m,signal:e},h),url:j,headers:l,transformedBody:k}):{response:q,url:j,headers:l,transformedBody:k}}}},19932:(a,b,c)=>{c.d(b,{T:()=>C});var d=c(74957);let e=`You are Codex, based on GPT-5. You are running as a coding agent in the Codex CLI on a user's computer.
|
|
10
2
|
|
|
11
3
|
## General
|
|
12
4
|
|
|
@@ -157,7 +149,7 @@ data: [DONE]
|
|
|
157
149
|
|
|
158
150
|
${d}`:d}return c}(b.body,"invalid_tool"===g?"tool":g):structuredClone(b.body||{}),i=this.shouldRetry.bind(this),j=Object.create(this,{shouldRetry:{value:(a,b)=>!f.QR.has(a)&&i(a,b)},getFallbackCount:{value:()=>1}}),k=await d.H.prototype.execute.call(j,{...b,body:h,signal:c.signal});if(!k?.response?.ok){let a="";try{a=await E(k?.response,c.signal,Math.min(c.maxBytes,4096),c.stallTimeoutMs)}catch(a){if("AbortError"===a.name)throw a}return K("kiro_integrity_retry_upstream_error",a||`Kiro integrity retry failed with HTTP ${k?.response?.status||502}`,{status:k?.response?.status||502})}let l=await this.readRecoverableIntegrityAttempt(k.response,b.model,c,"retry");return"complete"===l.kind?l.bytes:"terminal_stop"===l.kind||"upstream_error"===l.kind?this.integrityFailureSSE(l):K("ellipsis"===l.kind?"kiro_ellipsis_retry_failed":"short_final"===l.kind?"kiro_short_final_retry_failed":"invalid_tool"===l.kind?"kiro_tool_call_repair_retry_failed":"kiro_missing_terminal_retry_failed",`Kiro integrity validation failed after one bounded retry: ${l.message||l.kind}`,{attempts:[e.diagnostics,l.diagnostics].filter(Boolean)})}integrityFailureSSE(a){let b=a.diagnostics?.stop_disposition;return K(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 D(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 n.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(J(j.content)||!j.content.trim()&&J(j.reasoning))return{kind:"ellipsis",diagnostics:k};if(a=String(j.content||"").trim().replaceAll("’","'"),r.test(a)||!(s.test(a)&&t.test(a)||u.test(a)&&v.test(a))&&a.length>0&&a.length<=800&&q.test(a)&&!w.test(a)&&!x.test(a)&&!y.test(a))return{kind:"short_final",diagnostics:k}}return{kind:"complete",bytes:B(g,h),diagnostics:k}}transformEventStreamToSSE(a,b,c={}){let d=`chatcmpl-${Date.now()}`,e=Math.floor(Date.now()/1e3),g=(0,f.$D)(b).upstream,h=(0,j.getCapabilitiesForModel)("kiro",g).contextWindow||2e5,k={},o={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,thinkTail:"",toolValidationError:null,validatedFrames:0,finished:!1},p=(a={})=>({terminal_provenance:o.terminalProvenance||"clean_eventstream_eof",transport_state:o.transportState,stop_reason:o.stopReason,stop_disposition:H(o.stopReason,o.hasToolCalls),response_state:o.hasToolCalls?"valid_tool":o.hasText||o.hasReasoning||o.hasCode?"text_reasoning":o.explicitStop?"explicit_stop":"no_semantic_output",event_counts:{...k},incomplete_frame_bytes:o.buffer.byteLength,...a}),q=(a,c=null,f)=>m.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}:{}})}
|
|
159
151
|
|
|
160
|
-
`),r=(a,b)=>{0===o.chunkIndex&&(b={role:"assistant",...b}),o.chunkIndex++,a.enqueue(q(b))},s=(a,b,d,e,f={})=>{o.finished=!0,o.terminalProvenance=b,o.transportState=f.transport_state||"corrupt_frame";let g=p({stop_disposition:f.stop_disposition||"terminal_incomplete",...f});c.onTerminalState?.(g),a.enqueue(K(d,e,g))},t=()=>{if(o.bufferedToolBytes<=(c.maxToolBytes||4194304))return;let a=Error("Kiro buffered tool input exceeded the integrity memory bound");throw a.code="KIRO_BUFFER_EXCEEDED",a},u=(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),o.bufferedToolBytes+=m.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",o.bufferedToolBytes-=a.inputBytes||0,a.inputObject=b,a.inputBytes=m.encode(JSON.stringify(b)).byteLength,o.bufferedToolBytes+=a.inputBytes}else throw Error("Kiro tool input must be a JSON object");t()}},v=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})`)}},w=(a,b)=>{let c=a.headers[":message-type"];if("error"===c||"exception"===c)return s(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=l.has(d)?d:"other";if(k[f]=(k[f]||0)+1,"assistantResponseEvent"===d&&"string"==typeof a.payload?.content){let c=(a=>{let b=o.thinkTail+a;o.thinkTail="";let c="";for(;b.length>0;){let a=o.inThinking?"</thinking>":"<thinking>",d=b.indexOf(a);if(d>=0){o.inThinking||(c+=b.slice(0,d)),b=b.slice(d+a.length),o.inThinking&&(b=b.replace(/^\n/u,"")),o.inThinking=!o.inThinking;continue}let e=Math.min(a.length-1,b.length),f=0;for(let c=e;c>0;c--)if(b.endsWith(a.slice(0,c))){f=c;break}o.thinkTail=b.slice(b.length-f),o.inThinking||(c+=b.slice(0,b.length-f));break}return c})(a.payload.content);(c||!o.hasReasoning)&&(o.hasText||=c.length>0,o.totalContentLength+=c.length,r(b,{content:c}))}else if("reasoningContentEvent"===d){let c=a.payload?.reasoningContentEvent||a.payload||{},d="string"==typeof c?c:c.text||c.content||"";d&&(o.hasReasoning=!0,o.totalContentLength+=d.length,r(b,{reasoning_content:d}))}else if("codeEvent"===d&&"string"==typeof a.payload?.content)o.hasCode=!0,o.totalContentLength+=a.payload.content.length,r(b,{content:a.payload.content});else if("toolUseEvent"===d){o.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}_${o.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=o.tools.get(b);if(d){if(d.name!==c)throw Error("Kiro tool name changed between fragments")}else d={id:b,name:c},o.tools.set(b,d),o.bufferedToolBytes+=m.encode(b).byteLength+m.encode(c).byteLength+32,t();u(d,a.input)}}else if("messageStopEvent"===d){o.explicitStop=!0;let b=F(a.payload?.stopReason??a.payload?.stop_reason)||(o.sawToolUse?"tool_use":"end_turn"),c=I(o.stopReason,b);c!==o.stopReason&&(o.terminalProvenance="message_stop_event"),o.stopReason=c}else if("metadataEvent"===d||"MetadataEvent"===d){let b=a.payload?.metadataEvent||a.payload?.metadata||a.payload,c=F(b?.stopReason??b?.stop_reason);if(c){o.explicitStop=!0;let a=I(o.stopReason,c);a!==o.stopReason&&(o.terminalProvenance="metadata_stop_reason"),o.stopReason=a}}else if("contextUsageEvent"===d){let b=Number(a.payload?.contextUsagePercentage);Number.isFinite(b)&&(o.contextUsagePercentage=b,o.hasContextUsage=!0)}else if("meteringEvent"===d){o.hasMetering=!0;let b=a.payload?.meteringEvent||a.payload||{},c=Number(b.usage);Number.isFinite(c)&&(o.usage={...o.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){o.usage={...o.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&&(o.usage.cache_read_input_tokens=a),e&&(o.usage.cache_creation_input_tokens=e)}}return!0},x=(a,b)=>{let d=o.buffer.byteLength+a.byteLength;if(d>(c.maxRawBytes||0x1800000))return s(b,"corrupt_eventstream_frame","kiro_missing_terminal","Kiro EventStream buffered bytes exceed the protocol bound"),!1;if(0===o.buffer.byteLength)o.buffer=a;else{let b=new Uint8Array(d);b.set(o.buffer),b.set(a,o.buffer.byteLength),o.buffer=b}for(;o.buffer.byteLength>=12;){let a,c=new DataView(o.buffer.buffer,o.buffer.byteOffset);if(c.getUint32(8,!1)!==z(o.buffer.subarray(0,8)))return s(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 s(b,"corrupt_eventstream_frame","kiro_missing_terminal","Kiro EventStream frame bounds are invalid"),!1;if(o.buffer.byteLength<d)break;let f=o.buffer.slice(0,d);o.buffer=o.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)!==z(a.subarray(0,8)))throw Error("AWS EventStream prelude CRC mismatch");if(b.getUint32(c-4,!1)!==z(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=n.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?n.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=n.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 s(b,"corrupt_eventstream_frame","kiro_missing_terminal",a.message),!1}o.transportState="valid_complete_frame",o.validatedFrames++;try{if(!w(a,b))return!1}catch(a){if("KIRO_BUFFER_EXCEEDED"!==a.code){o.toolValidationError||=a.message,console.error(`[Kiro] tool fragment rejected, keeping ${o.tools.size} buffered tool(s): ${a.message}`);continue}return s(b,"integrity_buffer_exceeded","kiro_integrity_buffer_exceeded",a.message,{transport_state:o.transportState,stop_disposition:"terminal_incomplete"}),!1}}return!0};if(!a.body){let b=p({terminal_provenance:"missing_response_body",transport_state:"missing_body",stop_disposition:"terminal_incomplete"});return c.onTerminalState?.(b),new Response(K("kiro_missing_terminal","Kiro response did not include an EventStream body",b),{status:a.status,headers:{...i.pb}})}let y=a.body.getReader();return new Response(new ReadableStream({start:async a=>{try{for(;!o.finished;){let{done:b,value:c}=await y.read();if(b)break;let d=o.chunkIndex,e=o.validatedFrames;if(!x(c,a)){await y.cancel("invalid Kiro EventStream").catch(()=>{});break}o.validatedFrames>e&&o.chunkIndex===d&&a.enqueue(m.encode(": kiro-upstream\n\n"))}(a=>{if(o.finished)return;if(o.buffer.byteLength)return s(a,"incomplete_eventstream_frame","kiro_missing_terminal","Kiro EventStream ended with a truncated frame",{transport_state:"incomplete_frame"});o.transportState="clean_eof",!o.inThinking&&o.thinkTail&&(o.hasText=!0,o.totalContentLength+=o.thinkTail.length,r(a,{content:o.thinkTail}),o.thinkTail="");let b=H(o.stopReason,o.sawToolUse),d="terminal_incomplete"===b&&G.has(o.stopReason)&&o.chunkIndex>0;if(d&&console.error(`[Kiro] truncated after ${o.chunkIndex} chunk(s) (stop_reason=${o.stopReason}); keeping output`),!d&&["retryable_protocol_failure","terminal_incomplete","terminal_refusal","unknown_failure"].includes(b))return s(a,o.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: ${o.stopReason}`,{transport_state:o.transportState,stop_disposition:b});try{for(let b of o.tools.values()){let c;try{if(c=v(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.hasOwn(c,"arguments"))throw Error("Invalid Kiro tool_call payload: missing nested MCP tool arguments")}}catch(a){o.droppedTools=(o.droppedTools||0)+1,o.toolValidationError||=a.message,console.error(`[Kiro] dropping unusable tool call ${b.id} (${b.name}): ${a.message}`);continue}let d=o.toolCounter++;r(a,{tool_calls:[{index:d,id:b.id,type:"function",function:{name:b.name,arguments:""}}]});let e=JSON.stringify(c);r(a,{tool_calls:[{index:d,function:{arguments:e}}]}),o.totalContentLength+=b.name.length+e.length,o.hasToolCalls=!0}if(o.tools.clear(),o.bufferedToolBytes=0,"tool_use"===o.stopReason&&!o.hasToolCalls&&!o.hasText&&!o.hasReasoning&&!o.hasCode)throw Error("Kiro tool_use stop reason did not include a complete tool call")}catch(b){s(a,"invalid_tool_call","invalid_kiro_tool_call",b.message,{transport_state:o.transportState,stop_disposition:"retryable_protocol_failure"});return}if(o.toolValidationError&&!o.hasToolCalls&&!o.hasText&&!o.hasReasoning&&!o.hasCode)return s(a,"invalid_tool_call","invalid_kiro_tool_call",o.toolValidationError,{transport_state:o.transportState,stop_disposition:"retryable_protocol_failure"});if(!(o.hasText||o.hasReasoning||o.hasCode||o.hasToolCalls)&&!o.explicitStop)return s(a,"empty_response_eof","kiro_missing_terminal","Kiro EventStream ended without model output",{transport_state:o.transportState});let e=H(o.stopReason,o.hasToolCalls),f="terminal_incomplete"===e&&G.has(o.stopReason)&&o.chunkIndex>0;if(f&&console.error(`[Kiro] truncated after ${o.chunkIndex} chunk(s) (stop_reason=${o.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";s(a,o.terminalProvenance||"metadata_stop_reason",b,`Kiro ended with non-success stop reason: ${o.stopReason}`,{transport_state:o.transportState,stop_disposition:e});return}if(o.hasMetering&&o.hasContextUsage&&!o.usage?.total_tokens){let a=o.totalContentLength?Math.max(1,Math.floor(o.totalContentLength/4)):0,b=Math.floor(o.contextUsagePercentage*h/100);o.usage={...o.usage||{},prompt_tokens:b,completion_tokens:a,total_tokens:b+a}}let g=f?"length":o.hasToolCalls?"tool_calls":"length"===e?"length":"stop";a.enqueue(q({},g,o.usage)),a.enqueue(m.encode(i.$U)),o.finished=!0,c.onTerminalState?.(p({terminal_provenance:o.terminalProvenance||"clean_eventstream_eof",transport_state:o.transportState,stop_disposition:f?"length":e}))})(a),a.close()}catch(b){o.finished||s(a,"upstream_read_error","kiro_missing_terminal",b.message||"Kiro EventStream read failed",{transport_state:"upstream_error"}),a.close()}},cancel:a=>y.cancel(a)}),{status:a.status,statusText:a.statusText,headers:{...i.pb}})}async refreshCredentials(a,b,c=null){if(!a.refreshToken)return null;try{return await (0,h.Ql)(a.refreshToken,a.providerSpecificData,b,c)}catch(a){return b?.error?.("TOKEN",`Kiro refresh error: ${a.message}`),null}}}},78959:(a,b,c)=>{c.d(b,{$U:()=>d,RK:()=>g,pb:()=>e,uB:()=>f});let d="data: [DONE]\n\n",e={"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"},f={"Content-Type":"text/event-stream","Cache-Control":"no-cache","X-Accel-Buffering":"no"},g={"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive","Access-Control-Allow-Origin":"*"}},85308:(a,b,c)=>{c.d(b,{A:()=>h});var d=c(74957),e=c(39609),f=c(35024);let g=parseInt(process.env.TRAE_STREAM_TIMEOUT_MS||"300000",10);class h extends d.H{constructor(){super("trae",f.xq.trae),this.supportsRefresh=!1}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,f){let{mode:g,strategy:h,modelName:i}=this.resolveMode(c),j={mode:g,environment_id:"default",initial_message:{chat_session_id:"",content:[],query:b,model_name:i,agent_type:"solo_agent_remote",model_selection_strategy:h,common_params:this.commonParams(d,g)},env:"remote",auto_create_project:!1,origin:"web"},k=await (0,e.proxyAwareFetch)(`${this.base()}/chat_sessions`,{method:"POST",headers:a,body:JSON.stringify(j),signal:f},null),l=await k.text();if(!k.ok)throw Error(`[${k.status}] ${l}`);let m=JSON.parse(l);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,f){let h=`${this.base()}/chat_sessions/${b}/events?reply_to_message_id=${encodeURIComponent(c)}`,i=new AbortController;f?.aborted&&i.abort();let j=setTimeout(()=>i.abort(Error("trae stream timeout")),g),k=()=>i.abort();f&&f.addEventListener("abort",k,{once:!0});try{let b=await (0,e.proxyAwareFetch)(h,{method:"GET",headers:a,signal:i.signal},null);if(!b.ok||!b.body)throw Error(`[${b.status}] events stream failed`);let c=b.body.getReader(),f=new TextDecoder,g="",j=null;for(;;){let a,{done:b,value:e}=await c.read();if(b)break;for(g+=f.decode(e,{stream:!0});(a=g.indexOf("\n"))>=0;){let b=g.slice(0,a).replace(/\r$/,"");if(g=g.slice(a+1),b.startsWith("event:"))j=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(j,a))return void await c.cancel().catch(()=>{})}else""===b&&(j=null)}}}finally{clearTimeout(j),f&&f.removeEventListener("abort",k)}}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]
|
|
152
|
+
`),r=(a,b)=>{0===o.chunkIndex&&(b={role:"assistant",...b}),o.chunkIndex++,a.enqueue(q(b))},s=(a,b,d,e,f={})=>{o.finished=!0,o.terminalProvenance=b,o.transportState=f.transport_state||"corrupt_frame";let g=p({stop_disposition:f.stop_disposition||"terminal_incomplete",...f});c.onTerminalState?.(g),a.enqueue(K(d,e,g))},t=()=>{if(o.bufferedToolBytes<=(c.maxToolBytes||4194304))return;let a=Error("Kiro buffered tool input exceeded the integrity memory bound");throw a.code="KIRO_BUFFER_EXCEEDED",a},u=(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),o.bufferedToolBytes+=m.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",o.bufferedToolBytes-=a.inputBytes||0,a.inputObject=b,a.inputBytes=m.encode(JSON.stringify(b)).byteLength,o.bufferedToolBytes+=a.inputBytes}else throw Error("Kiro tool input must be a JSON object");t()}},v=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})`)}},w=(a,b)=>{let c=a.headers[":message-type"];if("error"===c||"exception"===c)return s(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=l.has(d)?d:"other";if(k[f]=(k[f]||0)+1,"assistantResponseEvent"===d&&"string"==typeof a.payload?.content){let c=(a=>{let b=o.thinkTail+a;o.thinkTail="";let c="";for(;b.length>0;){let a=o.inThinking?"</thinking>":"<thinking>",d=b.indexOf(a);if(d>=0){o.inThinking||(c+=b.slice(0,d)),b=b.slice(d+a.length),o.inThinking&&(b=b.replace(/^\n/u,"")),o.inThinking=!o.inThinking;continue}let e=Math.min(a.length-1,b.length),f=0;for(let c=e;c>0;c--)if(b.endsWith(a.slice(0,c))){f=c;break}o.thinkTail=b.slice(b.length-f),o.inThinking||(c+=b.slice(0,b.length-f));break}return c})(a.payload.content);(c||!o.hasReasoning)&&(o.hasText||=c.length>0,o.totalContentLength+=c.length,r(b,{content:c}))}else if("reasoningContentEvent"===d){let c=a.payload?.reasoningContentEvent||a.payload||{},d="string"==typeof c?c:c.text||c.content||"";d&&(o.hasReasoning=!0,o.totalContentLength+=d.length,r(b,{reasoning_content:d}))}else if("codeEvent"===d&&"string"==typeof a.payload?.content)o.hasCode=!0,o.totalContentLength+=a.payload.content.length,r(b,{content:a.payload.content});else if("toolUseEvent"===d){o.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}_${o.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=o.tools.get(b);if(d){if(d.name!==c)throw Error("Kiro tool name changed between fragments")}else d={id:b,name:c},o.tools.set(b,d),o.bufferedToolBytes+=m.encode(b).byteLength+m.encode(c).byteLength+32,t();u(d,a.input)}}else if("messageStopEvent"===d){o.explicitStop=!0;let b=F(a.payload?.stopReason??a.payload?.stop_reason)||(o.sawToolUse?"tool_use":"end_turn"),c=I(o.stopReason,b);c!==o.stopReason&&(o.terminalProvenance="message_stop_event"),o.stopReason=c}else if("metadataEvent"===d||"MetadataEvent"===d){let b=a.payload?.metadataEvent||a.payload?.metadata||a.payload,c=F(b?.stopReason??b?.stop_reason);if(c){o.explicitStop=!0;let a=I(o.stopReason,c);a!==o.stopReason&&(o.terminalProvenance="metadata_stop_reason"),o.stopReason=a}}else if("contextUsageEvent"===d){let b=Number(a.payload?.contextUsagePercentage);Number.isFinite(b)&&(o.contextUsagePercentage=b,o.hasContextUsage=!0)}else if("meteringEvent"===d){o.hasMetering=!0;let b=a.payload?.meteringEvent||a.payload||{},c=Number(b.usage);Number.isFinite(c)&&(o.usage={...o.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){o.usage={...o.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&&(o.usage.cache_read_input_tokens=a),e&&(o.usage.cache_creation_input_tokens=e)}}return!0},x=(a,b)=>{let d=o.buffer.byteLength+a.byteLength;if(d>(c.maxRawBytes||0x1800000))return s(b,"corrupt_eventstream_frame","kiro_missing_terminal","Kiro EventStream buffered bytes exceed the protocol bound"),!1;if(0===o.buffer.byteLength)o.buffer=a;else{let b=new Uint8Array(d);b.set(o.buffer),b.set(a,o.buffer.byteLength),o.buffer=b}for(;o.buffer.byteLength>=12;){let a,c=new DataView(o.buffer.buffer,o.buffer.byteOffset);if(c.getUint32(8,!1)!==z(o.buffer.subarray(0,8)))return s(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 s(b,"corrupt_eventstream_frame","kiro_missing_terminal","Kiro EventStream frame bounds are invalid"),!1;if(o.buffer.byteLength<d)break;let f=o.buffer.slice(0,d);o.buffer=o.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)!==z(a.subarray(0,8)))throw Error("AWS EventStream prelude CRC mismatch");if(b.getUint32(c-4,!1)!==z(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=n.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?n.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=n.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 s(b,"corrupt_eventstream_frame","kiro_missing_terminal",a.message),!1}o.transportState="valid_complete_frame",o.validatedFrames++;try{if(!w(a,b))return!1}catch(a){if("KIRO_BUFFER_EXCEEDED"!==a.code){o.toolValidationError||=a.message,console.error(`[Kiro] tool fragment rejected, keeping ${o.tools.size} buffered tool(s): ${a.message}`);continue}return s(b,"integrity_buffer_exceeded","kiro_integrity_buffer_exceeded",a.message,{transport_state:o.transportState,stop_disposition:"terminal_incomplete"}),!1}}return!0};if(!a.body){let b=p({terminal_provenance:"missing_response_body",transport_state:"missing_body",stop_disposition:"terminal_incomplete"});return c.onTerminalState?.(b),new Response(K("kiro_missing_terminal","Kiro response did not include an EventStream body",b),{status:a.status,headers:{...i.pb}})}let y=a.body.getReader();return new Response(new ReadableStream({start:async a=>{try{for(;!o.finished;){let{done:b,value:c}=await y.read();if(b)break;let d=o.chunkIndex,e=o.validatedFrames;if(!x(c,a)){await y.cancel("invalid Kiro EventStream").catch(()=>{});break}o.validatedFrames>e&&o.chunkIndex===d&&a.enqueue(m.encode(": kiro-upstream\n\n"))}(a=>{if(o.finished)return;if(o.buffer.byteLength)return s(a,"incomplete_eventstream_frame","kiro_missing_terminal","Kiro EventStream ended with a truncated frame",{transport_state:"incomplete_frame"});o.transportState="clean_eof",!o.inThinking&&o.thinkTail&&(o.hasText=!0,o.totalContentLength+=o.thinkTail.length,r(a,{content:o.thinkTail}),o.thinkTail="");let b=H(o.stopReason,o.sawToolUse),d="terminal_incomplete"===b&&G.has(o.stopReason)&&o.chunkIndex>0;if(d&&console.error(`[Kiro] truncated after ${o.chunkIndex} chunk(s) (stop_reason=${o.stopReason}); keeping output`),!d&&["retryable_protocol_failure","terminal_incomplete","terminal_refusal","unknown_failure"].includes(b))return s(a,o.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: ${o.stopReason}`,{transport_state:o.transportState,stop_disposition:b});try{for(let b of o.tools.values()){let c;try{if(c=v(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.hasOwn(c,"arguments"))throw Error("Invalid Kiro tool_call payload: missing nested MCP tool arguments")}}catch(a){o.droppedTools=(o.droppedTools||0)+1,o.toolValidationError||=a.message,console.error(`[Kiro] dropping unusable tool call ${b.id} (${b.name}): ${a.message}`);continue}let d=o.toolCounter++;r(a,{tool_calls:[{index:d,id:b.id,type:"function",function:{name:b.name,arguments:""}}]});let e=JSON.stringify(c);r(a,{tool_calls:[{index:d,function:{arguments:e}}]}),o.totalContentLength+=b.name.length+e.length,o.hasToolCalls=!0}if(o.tools.clear(),o.bufferedToolBytes=0,"tool_use"===o.stopReason&&!o.hasToolCalls&&!o.hasText&&!o.hasReasoning&&!o.hasCode)throw Error("Kiro tool_use stop reason did not include a complete tool call")}catch(b){s(a,"invalid_tool_call","invalid_kiro_tool_call",b.message,{transport_state:o.transportState,stop_disposition:"retryable_protocol_failure"});return}if(o.toolValidationError&&!o.hasToolCalls&&!o.hasText&&!o.hasReasoning&&!o.hasCode)return s(a,"invalid_tool_call","invalid_kiro_tool_call",o.toolValidationError,{transport_state:o.transportState,stop_disposition:"retryable_protocol_failure"});if(!(o.hasText||o.hasReasoning||o.hasCode||o.hasToolCalls)&&!o.explicitStop)return s(a,"empty_response_eof","kiro_missing_terminal","Kiro EventStream ended without model output",{transport_state:o.transportState});let e=H(o.stopReason,o.hasToolCalls),f="terminal_incomplete"===e&&G.has(o.stopReason)&&o.chunkIndex>0;if(f&&console.error(`[Kiro] truncated after ${o.chunkIndex} chunk(s) (stop_reason=${o.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";s(a,o.terminalProvenance||"metadata_stop_reason",b,`Kiro ended with non-success stop reason: ${o.stopReason}`,{transport_state:o.transportState,stop_disposition:e});return}if(o.hasMetering&&o.hasContextUsage&&!o.usage?.total_tokens){let a=o.totalContentLength?Math.max(1,Math.floor(o.totalContentLength/4)):0,b=Math.floor(o.contextUsagePercentage*h/100);o.usage={...o.usage||{},prompt_tokens:b,completion_tokens:a,total_tokens:b+a}}let g=f?"length":o.hasToolCalls?"tool_calls":"length"===e?"length":"stop";a.enqueue(q({},g,o.usage)),a.enqueue(m.encode(i.$U)),o.finished=!0,c.onTerminalState?.(p({terminal_provenance:o.terminalProvenance||"clean_eventstream_eof",transport_state:o.transportState,stop_disposition:f?"length":e}))})(a),a.close()}catch(b){o.finished||s(a,"upstream_read_error","kiro_missing_terminal",b.message||"Kiro EventStream read failed",{transport_state:"upstream_error"}),a.close()}},cancel:a=>y.cancel(a)}),{status:a.status,statusText:a.statusText,headers:{...i.pb}})}async refreshCredentials(a,b,c=null){if(!a.refreshToken)return null;try{return await (0,h.Ql)(a.refreshToken,a.providerSpecificData,b,c)}catch(a){return b?.error?.("TOKEN",`Kiro refresh error: ${a.message}`),null}}}},85308:(a,b,c)=>{c.d(b,{A:()=>h});var d=c(74957),e=c(39609),f=c(35024);let g=parseInt(process.env.TRAE_STREAM_TIMEOUT_MS||"300000",10);class h extends d.H{constructor(){super("trae",f.xq.trae),this.supportsRefresh=!1}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,f){let{mode:g,strategy:h,modelName:i}=this.resolveMode(c),j={mode:g,environment_id:"default",initial_message:{chat_session_id:"",content:[],query:b,model_name:i,agent_type:"solo_agent_remote",model_selection_strategy:h,common_params:this.commonParams(d,g)},env:"remote",auto_create_project:!1,origin:"web"},k=await (0,e.proxyAwareFetch)(`${this.base()}/chat_sessions`,{method:"POST",headers:a,body:JSON.stringify(j),signal:f},null),l=await k.text();if(!k.ok)throw Error(`[${k.status}] ${l}`);let m=JSON.parse(l);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,f){let h=`${this.base()}/chat_sessions/${b}/events?reply_to_message_id=${encodeURIComponent(c)}`,i=new AbortController;f?.aborted&&i.abort();let j=setTimeout(()=>i.abort(Error("trae stream timeout")),g),k=()=>i.abort();f&&f.addEventListener("abort",k,{once:!0});try{let b=await (0,e.proxyAwareFetch)(h,{method:"GET",headers:a,signal:i.signal},null);if(!b.ok||!b.body)throw Error(`[${b.status}] events stream failed`);let c=b.body.getReader(),f=new TextDecoder,g="",j=null;for(;;){let a,{done:b,value:e}=await c.read();if(b)break;for(g+=f.decode(e,{stream:!0});(a=g.indexOf("\n"))>=0;){let b=g.slice(0,a).replace(/\r$/,"");if(g=g.slice(a+1),b.startsWith("event:"))j=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(j,a))return void await c.cancel().catch(()=>{})}else""===b&&(j=null)}}}finally{clearTimeout(j),f&&f.removeEventListener("abort",k)}}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]
|
|
161
153
|
${a}`):"assistant"===c.role?b.push(`[Assistant]
|
|
162
154
|
${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)}
|
|
163
155
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";exports.id=3943,exports.ids=[3943],exports.modules={11061:(a,b,c)=>{c.d(b,{$8:()=>m,Oq:()=>p,V5:()=>l,Vn:()=>o,w$:()=>q,w2:()=>n});var d=c(77598),e=c.n(d),f=c(26070),g=c(38660),h=c(39609);let i=["loginUrl","pollUrl","refreshUrl","refreshClientId"],j="Cursor login expired or was rejected. Start the login again.";function k(){let a=f.sr.cursor,b=i.filter(b=>!a?.[b]);if(b.length>0)throw Error(`Cursor OAuth registry config is missing: ${b.join(", ")}`);let{loginUrl:c,pollUrl:d,refreshUrl:e,refreshClientId:g}=a;return{loginUrl:c,pollUrl:d,refreshUrl:e,refreshClientId:g}}function l({challenge:a,uuid:b}){let c=new URLSearchParams({challenge:a,uuid:b,mode:"login",redirectTarget:"cli"});return`${k().loginUrl}?${c}`}async function m({uuid:a,verifier:b},c=null){let d,{pollUrl:e}=k(),f=new URLSearchParams({uuid:a,verifier:b});try{d=await (0,h.proxyAwareFetch)(`${e}?${f}`,{method:"GET",signal:AbortSignal.timeout(15e3)},c)}catch{return{status:"error",message:"Cursor login poll failed (network error)"}}let{status:g}=d;if(404===g)return{status:"pending"};if(200===g){let a=await d.json().catch(()=>null);return a?.accessToken?{status:"success",accessToken:a.accessToken,refreshToken:a.refreshToken||null}:{status:"expired",message:j}}return 403===g&&(await d.text().catch(()=>"")).includes("sign_in_policy_violation")?{status:"denied",message:"Cursor organization sign-in policy blocked this device"}:g>=400&&g<500&&429!==g?{status:"expired",message:j}:{status:"error",message:`Cursor login poll failed (${g})`}}async function n(a,b=null){let c,{refreshUrl:d,refreshClientId:e}=k();try{c=await (0,h.proxyAwareFetch)(d,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({grant_type:"refresh_token",client_id:e,refresh_token:a}),signal:AbortSignal.timeout(15e3)},b)}catch{return{ok:!1,dead:!1,status:0}}let{status:f}=c;if(401===f||403===f)return{ok:!1,dead:!0,status:f};if(200!==f)return{ok:!1,dead:!1,status:f};let g=await c.json().catch(()=>null);return g?!0!==g.shouldLogout&&g.access_token?{ok:!0,accessToken:g.access_token,idToken:g.id_token||null}:{ok:!1,dead:!0,status:f}:{ok:!1,dead:!1,status:f}}function o(a,b=86400){let c=(0,g.K)(a)?.exp;return"number"==typeof c&&Number.isFinite(c)?Math.max(60,Math.floor(c-Date.now()/1e3)):b}function p(a){let b=(0,g.K)(a);return{email:b?.email||b?.sub||null,userId:b?.sub||null}}function q(){return e().createHash("sha256").update(e().randomUUID()).digest("hex")}},18080:(a,b,c)=>{c.d(b,{Xj:()=>i,uo:()=>j});let d=new Set(["login.microsoftonline.com","login.microsoft.com","login.windows.net"]);function e(a){return"string"==typeof a?a.trim():""}function f(a){let b,c=e(a);if(!c)throw Error("token_endpoint is required");try{b=new URL(c)}catch{throw Error("token_endpoint must be a valid URL")}if("https:"!==b.protocol)throw Error("token_endpoint must use https");let f=b.hostname.toLowerCase();if(!d.has(f))throw Error("token_endpoint must be a Microsoft login endpoint");return b.toString()}function g(a){return Array.isArray(a)?a.map(e).filter(Boolean).join(" "):e(a)}function h(a){try{if(!a||"string"!=typeof a)return null;let b=a.split(".");if(3!==b.length)return null;let c=b[1].replace(/-/g,"+").replace(/_/g,"/"),d=(4-c.length%4)%4;return JSON.parse(Buffer.from(`${c}${"=".repeat(d)}`,"base64").toString("utf8"))}catch{return null}}function i(a){let b=a;if("string"==typeof b)try{b=JSON.parse(b)}catch{throw Error("CLIProxyAPI auth JSON is invalid")}if(!b||"object"!=typeof b)throw Error("CLIProxyAPI auth JSON is required");let c=e(b.auth_method||b.authMethod);if(c&&"external_idp"!==c)throw Error("Only external_idp Kiro auth is supported by this importer");let d=e(b.access_token||b.accessToken),i=e(b.refresh_token||b.refreshToken),j=e(b.client_id||b.clientId),k=f(b.token_endpoint||b.tokenEndpoint),l=e(b.profile_arn||b.profileArn),m=e(b.region)||"us-east-1",n=g(b.scopes||b.scope);if(!d)throw Error("access_token is required");if(!i)throw Error("refresh_token is required");if(!j)throw Error("client_id is required");if(!n)throw Error("scopes is required");if(!l)throw Error("profile_arn is required");let o=h(d),p=b.email||o?.email||o?.preferred_username||o?.upn||o?.sub||null;return{accessToken:d,refreshToken:i,expiresAt:function(a){let b=a.expired||a.expires_at||a.expiresAt;if(b){let a=new Date(b).getTime();if(Number.isFinite(a))return new Date(a).toISOString()}let c=Number(a.expires_in||a.expiresIn||0);if(Number.isFinite(c)&&c>0)return new Date(Date.now()+1e3*c).toISOString();let d=h(a.access_token||a.accessToken);return d?.exp?new Date(1e3*d.exp).toISOString():new Date(Date.now()+36e5).toISOString()}(b),email:p,providerSpecificData:{profileArn:l,region:m,authMethod:"external_idp",provider:"CLIProxyAPI",clientId:j,tokenEndpoint:k,scope:n}}}function j(a,b={}){let c=e(b.clientId||b.client_id),d=f(b.tokenEndpoint||b.token_endpoint),h=g(b.scope||b.scopes);if(!a)throw Error("refresh token is required");if(!c)throw Error("clientId is required for external_idp refresh");if(!h)throw Error("scope is required for external_idp refresh");return{tokenEndpoint:d,body:new URLSearchParams({grant_type:"refresh_token",client_id:c,refresh_token:a,scope:h}),providerSpecificData:{...b,authMethod:"external_idp",clientId:c,tokenEndpoint:d,scope:h}}}},24042:(a,b,c)=>{c.d(b,{k:()=>f});var d=c(26070),e=c(24295);async function f(a,b=null){if(!a)throw Error("Meta Code: missing OAuth token");let c=await (0,e.u9)(d.sr["meta-code"].mintUrl,{method:"POST",headers:{Authorization:`Bearer ${a}`,"x-api-version":"1.0.0","Content-Type":"application/json",Accept:"application/json"},body:"{}"},15e3,b);if(!c.ok){let a=Error(`Meta Code key mint failed (${c.status})`);throw a.status=c.status,a.detail=(await c.text().catch(()=>"")).slice(0,200),a}let g=await c.json();if(!g?.api_key){let a=g?.action_url?` Finish setup at ${g.action_url}`:"";throw Error(`Meta Code: account has no Model API key yet.${a}`)}return g}},24249:(a,b,c)=>{c.d(b,{A:()=>e});let d=new Map;async function e(a,b,c,e){if(!b)return c();let f=`${a}:${b}`,g=d.get(f);if(g){if(g.promise)return e?.info?.("TOKEN_REFRESH",`Reusing in-flight refresh for ${a}`),g.promise;if(g.expiresAt>Date.now())return e?.info?.("TOKEN_REFRESH",`Reusing recent refresh result for ${a}`),g.result;d.delete(f)}let h=(async()=>{try{let a=await c();return d.set(f,{result:a,expiresAt:Date.now()+1e4}),a}catch(a){throw d.delete(f),a}})();return d.set(f,{promise:h}),h}},38660:(a,b,c)=>{c.d(b,{K:()=>d});function d(a){try{let b=String(a||"").split(".")[1];if(!b)return null;let c=JSON.parse(Buffer.from(b,"base64url").toString("utf8"));return c&&"object"==typeof c?c:null}catch{return null}}},63419:(a,b,c)=>{c.d(b,{oD:()=>D,Og:()=>F,jT:()=>E,Sc:()=>G,ge:()=>p,Wm:()=>r,jR:()=>w,I9:()=>q,Ql:()=>t,J2:()=>A,$B:()=>L,pb:()=>I,qZ:()=>M});var d=c(35024),e=c(75924),f=c(39609),g=c(24042),h=c(24249),i=c(18080);let j=null;async function k(a,b,d=null){return a?(0,h.A)("xai",a,async()=>{try{j||(j=new(await Promise.all([c.e(5615),c.e(4730)]).then(c.bind(c,84730))).XaiService);let b=await j.refreshAccessToken(a,d);return{accessToken:b.access_token,refreshToken:b.refresh_token||a,expiresIn:b.expires_in,idToken:b.id_token}}catch(c){b?.warn?.("TOKEN_REFRESH",`xai refresh failed: ${c?.message||c}`);let a=String(c?.message||"");if(a.includes("invalid_grant")||a.includes("invalid_request"))return{error:"invalid_grant"};return null}},b):null}let l={claude:{bodyFormat:"json",includeClientSecret:!1,url:()=>e.NA.anthropic.token,dedupKey:"claude"},iflow:{url:()=>e.NA.iflow.token,dedupKey:"iflow",extraHeaders:(a,b)=>({Authorization:`Basic ${btoa(`${b.clientId}:${b.clientSecret}`)}`})},github:{url:()=>e.NA.github.token,dedupKey:"github",includeClientSecret:a=>!!a?.clientSecret},kimi:{dedupKey:"kimi",extraHeaders:a=>(0,e.buildKimiHeaders)(a?.providerSpecificData?.deviceId)}};async function m(a,b,c,e,g=null){let i=d.xq[a],j=l[a]||{},k=function(a,b,c){if(c?.url)try{return c.url()}catch{}return b?.refreshUrl||d.sr[a]?.tokenUrl||null}(a,i,j);if(!i||!k)return e?.warn?.("TOKEN_REFRESH",`No refresh URL configured for provider: ${a}`),null;if(!b)return e?.warn?.("TOKEN_REFRESH",`No refresh token available for provider: ${a}`),null;let n=j.dedupKey||a;return(0,h.A)(n,b,async()=>{try{let d,h,l,{format:m,body:n}=(d=j?.bodyFormat==="json"?"json":"form",h=j?.includeClientSecret===void 0||("function"==typeof j.includeClientSecret?j.includeClientSecret(i):j.includeClientSecret),l={grant_type:"refresh_token",refresh_token:b,client_id:i.clientId},(h&&i.clientSecret&&(l.client_secret=i.clientSecret),"json"===d)?{format:"json",body:JSON.stringify(l)}:{format:"form",body:new URLSearchParams(l)}),o={"Content-Type":"json"===m?"application/json":"application/x-www-form-urlencoded",Accept:"application/json",...j.extraHeaders&&j.extraHeaders(c,i)||{}},p=await (0,f.proxyAwareFetch)(k,{method:"POST",headers:o,body:n},g);if(!p.ok){let b=await p.text();return e?.error?.("TOKEN_REFRESH",`Failed to refresh token for ${a}`,{status:p.status,error:b}),null}let q=await p.json();return e?.info?.("TOKEN_REFRESH",`Successfully refreshed token for ${a}`,{hasNewAccessToken:!!q.access_token,hasNewRefreshToken:!!q.refresh_token,expiresIn:q.expires_in}),{accessToken:q.access_token,refreshToken:q.refresh_token||b,expiresIn:q.expires_in,...j.parse&&j.parse(q)||{}}}catch(b){return e?.error?.("TOKEN_REFRESH",`Error refreshing token for ${a}`,{error:b.message}),null}},e)}async function n(a,b,c,d=null){return m("kimi",a,b,c,d)}async function o(a,b,c=null){return a?(0,h.A)("cline",a,async()=>{try{let e=await (0,f.proxyAwareFetch)(d.xq.cline?.refreshUrl,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify({refreshToken:a,grantType:"refresh_token",clientType:"extension"})},c);if(!e.ok){let a=await e.text();return b?.error?.("TOKEN_REFRESH","Failed to refresh Cline token",{status:e.status,error:a}),null}let g=await e.json(),h=g?.data||g;if(!h?.accessToken)return null;let i=h.expiresAt?Math.max(1,Math.floor((new Date(h.expiresAt).getTime()-Date.now())/1e3)):h.expiresIn||h.expires_in||3600;return{accessToken:h.accessToken,refreshToken:h.refreshToken||a,expiresIn:i}}catch(a){return b?.error?.("TOKEN_REFRESH",`Error refreshing Cline token: ${a.message}`),null}},b):null}async function p(a,b,c=null){return m("claude",a,{},b,c)}async function q(a,b,c,d,g=null){return a?b&&c?(0,h.A)(`google:${b}`,a,async()=>{try{let h=await (0,f.proxyAwareFetch)(e.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,client_id:b,client_secret:c})},g);if(!h.ok){let a=await h.text();return d?.error?.("TOKEN_REFRESH","Failed to refresh Google token",{status:h.status,error:a}),null}let i=await h.json();return d?.info?.("TOKEN_REFRESH","Successfully refreshed Google token",{hasNewAccessToken:!!i.access_token,expiresIn:i.expires_in}),{accessToken:i.access_token,refreshToken:i.refresh_token||a,expiresIn:i.expires_in}}catch(a){return d?.error?.("TOKEN_REFRESH",`Network error refreshing Google token: ${a.message}`),null}},d):(d?.error?.("TOKEN_REFRESH","Google OAuth client not configured: set GEMINI_OAUTH_CLIENT_ID/_SECRET (gemini, gemini-cli) or ANTIGRAVITY_OAUTH_CLIENT_ID/_SECRET (antigravity)"),null):null}async function r(a,b,c=null){return a?(0,h.A)("codex",a,async()=>{try{let g=await (0,f.proxyAwareFetch)(e.NA.openai.token,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify({client_id:d.xq.codex.clientId,grant_type:"refresh_token",refresh_token:a})},c);if(!g.ok){let a=await g.text(),c=function(a="",b=0){let c=null;try{c=a?JSON.parse(a):null}catch{c=null}let d=c?.error?.code||c?.error||c?.error_code||"",e=c?.error_description||c?.message||a||"",f=`${d} ${e}`.toLowerCase();return{status:b,code:d,description:e,permanent:["refresh_token_expired","refresh_token_reused","refresh_token_invalidated","invalid_grant"].some(a=>f.includes(a))}}(a,g.status);if(c.permanent)return b?.error?.("TOKEN_REFRESH","Codex refresh token already used or invalid. Re-auth required.",{status:g.status,code:c.code}),{error:"unrecoverable_refresh_error",code:c.code};return b?.error?.("TOKEN_REFRESH","Failed to refresh Codex token",{status:g.status,error:a,code:c.code,permanent:c.permanent}),null}let h=await g.json();return b?.info?.("TOKEN_REFRESH","Successfully refreshed Codex token",{hasNewAccessToken:!!h.access_token,hasNewRefreshToken:!!h.refresh_token,hasIdToken:!!h.id_token,expiresIn:h.expires_in}),{accessToken:h.access_token,refreshToken:h.refresh_token||a,idToken:h.id_token,expiresIn:h.expires_in}}catch(a){return b?.error?.("TOKEN_REFRESH",`Network error refreshing Codex token: ${a.message}`),null}},b):null}async function s(a,b,d){if(a?.profileArn)return{};let e=d?.trim?.()||null;if(!e)try{let{fetchKiroProfileArn:a}=await Promise.all([c.e(7774),c.e(5433),c.e(8920),c.e(24),c.e(965),c.e(3225),c.e(2051),c.e(1159),c.e(3676),c.e(2380),c.e(318),c.e(8895),c.e(3306),c.e(3535)]).then(c.bind(c,74177));e=await a(b)}catch{return{}}return e?{providerSpecificData:{profileArn:e}}:{}}async function t(a,b,c,e=null){return a?(0,h.A)("kiro",a,async()=>{let g=b?.authMethod,h=b?.clientId,j=b?.clientSecret,k=b?.region;if("external_idp"===g){let d;try{d=(0,i.uo)(a,b)}catch(a){return c?.warn?.("TOKEN_REFRESH",`Invalid Kiro external_idp refresh config: ${a.message}`),null}try{let b=await (0,f.proxyAwareFetch)(d.tokenEndpoint,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:d.body},e);if(!b.ok){let a=await b.text();return c?.error?.("TOKEN_REFRESH","Failed to refresh Kiro external_idp token",{status:b.status,error:a}),null}let g=await b.json();return c?.info?.("TOKEN_REFRESH","Successfully refreshed Kiro external_idp token",{hasNewAccessToken:!!g.access_token,hasNewRefreshToken:!!g.refresh_token,expiresIn:g.expires_in}),{accessToken:g.access_token,refreshToken:g.refresh_token||a,expiresIn:g.expires_in,providerSpecificData:d.providerSpecificData}}catch(a){return c?.error?.("TOKEN_REFRESH",`Error refreshing Kiro external_idp token: ${a.message}`),null}}try{if(h&&j){let d="idc"===g&&k?`https://oidc.${k}.amazonaws.com/token`:"https://oidc.us-east-1.amazonaws.com/token",i=await (0,f.proxyAwareFetch)(d,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify({clientId:h,clientSecret:j,refreshToken:a,grantType:"refresh_token"})},e);if(!i.ok){let a=await i.text();return c?.error?.("TOKEN_REFRESH","Failed to refresh Kiro AWS token",{status:i.status,error:a}),null}let l=await i.json();return c?.info?.("TOKEN_REFRESH","Successfully refreshed Kiro AWS token",{hasNewAccessToken:!!l.accessToken,expiresIn:l.expiresIn}),{accessToken:l.accessToken,refreshToken:l.refreshToken||a,expiresIn:l.expiresIn,...await s(b,l.accessToken,l.profileArn)}}}catch(a){return c?.error?.("TOKEN_REFRESH",`Error refreshing Kiro AWS token: ${a.message}`),null}try{let g=await (0,f.proxyAwareFetch)(d.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})},e);if(!g.ok){let a=await g.text();return c?.error?.("TOKEN_REFRESH","Failed to refresh Kiro social token",{status:g.status,error:a}),null}let h=await g.json();return c?.info?.("TOKEN_REFRESH","Successfully refreshed Kiro social token",{hasNewAccessToken:!!h.accessToken,expiresIn:h.expiresIn}),{accessToken:h.accessToken,refreshToken:h.refreshToken||a,expiresIn:h.expiresIn,...await s(b,h.accessToken,h.profileArn)}}catch(a){return c?.error?.("TOKEN_REFRESH",`Error refreshing Kiro social token: ${a.message}`),null}},c):null}async function u(a,b,c=null){return m("iflow",a,{},b,c)}async function v(a,b,c=null){return m("github",a,{},b,c)}async function w(a,b,c=null){return a?(0,h.A)("copilot",a,async()=>{try{let g=await (0,f.proxyAwareFetch)(d.sr.github?.copilotTokenUrl,{headers:{Authorization:`token ${a}`,"User-Agent":e.x0.USER_AGENT,"Editor-Version":`vscode/${e.x0.VSCODE_VERSION}`,"Editor-Plugin-Version":`copilot-chat/${e.x0.COPILOT_CHAT_VERSION}`,Accept:"application/json","x-github-api-version":e.x0.API_VERSION}},c);if(!g.ok){let a=await g.text();return b?.error?.("TOKEN_REFRESH","Failed to refresh Copilot token",{status:g.status,error:a}),null}let h=await g.json();return b?.info?.("TOKEN_REFRESH","Successfully refreshed Copilot token",{hasToken:!!h.token,expiresAt:h.expires_at}),{token:h.token,expiresAt:h.expires_at}}catch(a){return b?.error?.("TOKEN_REFRESH","Error refreshing Copilot token",{error:a.message}),null}},b):null}async function x(a,b,c=null){return a?(0,h.A)("codebuddy-cn",a,async()=>{try{let e=d.sr["codebuddy-cn"]||{},g=await (0,f.proxyAwareFetch)(e.refreshUrl,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json","User-Agent":e.userAgent,"X-Requested-With":"XMLHttpRequest","X-Domain":"copilot.tencent.com","X-Refresh-Token":a,"X-Auth-Refresh-Source":"plugin","X-Product":"SaaS"},body:"{}"},c);if(!g.ok){let a=await g.text();return b?.error?.("TOKEN_REFRESH","Failed to refresh CodeBuddy token",{status:g.status,error:a}),null}let h=await g.json();if(0!==h.code||!h.data?.accessToken)return b?.error?.("TOKEN_REFRESH","CodeBuddy token refresh returned no token",{code:h.code,msg:h.msg}),null;return b?.info?.("TOKEN_REFRESH","Successfully refreshed CodeBuddy token",{hasNewAccessToken:!!h.data.accessToken,hasNewRefreshToken:!!h.data.refreshToken,expiresIn:h.data.expiresIn}),{accessToken:h.data.accessToken,refreshToken:h.data.refreshToken||a,expiresIn:h.data.expiresIn}}catch(a){return b?.error?.("TOKEN_REFRESH",`Error refreshing CodeBuddy token: ${a.message}`),null}},b):null}async function y(a,b,c=null){return a?(0,h.A)("codebuddy-intl",a,async()=>{try{let e=d.sr["codebuddy-intl"]||{},g=await (0,f.proxyAwareFetch)(e.refreshUrl,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json","User-Agent":e.userAgent,"X-Requested-With":"XMLHttpRequest","X-Domain":"www.codebuddy.ai","X-Refresh-Token":a,"X-Auth-Refresh-Source":"plugin","X-Product":"SaaS"},body:"{}"},c);if(!g.ok){let a=await g.text();return b?.error?.("TOKEN_REFRESH","Failed to refresh CodeBuddy intl token",{status:g.status,error:a}),null}let h=await g.json();if(0!==h.code||!h.data?.accessToken)return b?.error?.("TOKEN_REFRESH","CodeBuddy intl token refresh returned no token",{code:h.code,msg:h.msg}),null;return b?.info?.("TOKEN_REFRESH","Successfully refreshed CodeBuddy intl token",{hasNewAccessToken:!!h.data.accessToken,hasNewRefreshToken:!!h.data.refreshToken,expiresIn:h.data.expiresIn}),{accessToken:h.data.accessToken,refreshToken:h.data.refreshToken||a,expiresIn:h.data.expiresIn}}catch(a){return b?.error?.("TOKEN_REFRESH",`Error refreshing CodeBuddy intl token: ${a.message}`),null}},b):null}async function z(a,b,c,e=null){if(!a)return null;let g=d.sr.trae||{},i=g.exchangeTokenUrl||g.tokenUrl;return i?(0,h.A)("trae",a,async()=>{try{let b,d=await (0,f.proxyAwareFetch)(i,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json","User-Agent":"Trae/1.0.0 antigravity-cockpit-tools"},body:JSON.stringify({ClientID:g.clientId||"ono9krqynydwx5",RefreshToken:a,ClientSecret:g.clientSecret||"-",UserID:""})},e);if(!d.ok){let a=await d.text();return c?.error?.("TOKEN_REFRESH","Failed to refresh Trae token",{status:d.status,error:a}),null}let h=await d.json(),j=h?.Result||h?.result||h,k=j?.AccessToken||j?.accessToken;if(!k)return c?.error?.("TOKEN_REFRESH","Trae refresh returned no AccessToken",{payload:h}),null;let l=j?.RefreshToken||j?.refreshToken||a,m=j?.ExpiresAt||j?.expiresAt;if("number"==typeof m)b=Math.max(1,m-Math.floor(Date.now()/1e3));else if("string"==typeof m){let a=new Date(m).getTime()-Date.now();b=a>0?Math.floor(a/1e3):void 0}return c?.info?.("TOKEN_REFRESH","Successfully refreshed Trae token",{hasNewAccessToken:!!k,hasNewRefreshToken:l!==a,expiresIn:b}),{accessToken:k,refreshToken:l,expiresIn:b}}catch(a){return c?.error?.("TOKEN_REFRESH",`Error refreshing Trae token: ${a.message}`),null}},c):(c?.warn?.("TOKEN_REFRESH","No Trae exchangeTokenUrl configured"),null)}async function A(a,b,c=null){return a?(0,h.A)("meta-code",a,async()=>{try{return{accessToken:(await (0,g.k)(a,c)).api_key,refreshToken:a}}catch(a){if(a?.status===401||a?.status===403)return b?.warn?.("TOKEN_REFRESH",`Meta Code re-mint rejected (${a.status})`),{error:"invalid_grant"};return b?.warn?.("TOKEN_REFRESH",`Meta Code re-mint failed: ${a?.message||a}`),null}},b):null}async function B(a,b){return b?.info?.("TOKEN_REFRESH","windsurf: apiKey is long-lived (no refresh_token flow) — skipping"),null}var C=c(81627);let D=3e5;function E(a){return a&&"object"==typeof a&&("unrecoverable_refresh_error"===a.error||"refresh_token_reused"===a.error||"invalid_request"===a.error||"invalid_grant"===a.error)}function F(a){return e.Wu[a]?e.Wu[a]:"kimi-coding"===a&&e.Wu.kimi?e.Wu.kimi:D}function G(a){if("string"!=typeof a)return null;try{let b=JSON.parse(a);if("service_account"===b.type&&b.client_email&&b.private_key&&b.project_id)return b;return null}catch{return null}}let H=new Map;async function I(a,b,d=null){let g=a.client_email,h=H.get(g);if(h&&h.expiresAt-Date.now()>3e5)return{accessToken:h.token,expiresAt:h.expiresAt};try{let{SignJWT:h,importPKCS8:i}=await Promise.all([c.e(7469),c.e(1455)]).then(c.bind(c,71455));b?.debug?.("TOKEN_REFRESH",`Vertex minting token for ${a.client_email}`);let j=await i(a.private_key.replace(/\\n/g,"\n"),"RS256"),k=Math.floor(Date.now()/1e3),l=await new h({scope:"https://www.googleapis.com/auth/cloud-platform"}).setProtectedHeader({alg:"RS256"}).setIssuer(a.client_email).setAudience(e.NA.google.token).setIssuedAt(k).setExpirationTime(k+3600).sign(j),m=await (0,f.proxyAwareFetch)(e.NA.google.token,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:new URLSearchParams({grant_type:"urn:ietf:params:oauth:grant-type:jwt-bearer",assertion:l})},d);if(!m.ok){let a=await m.text();return b?.error?.("TOKEN_REFRESH",`Vertex token mint failed: ${a}`),null}let{access_token:n,expires_in:o}=await m.json(),p=Date.now()+(o??3600)*1e3;return H.set(g,{token:n,expiresAt:p}),b?.info?.("TOKEN_REFRESH",`Vertex token minted for ${a.client_email}`),{accessToken:n,expiresAt:p}}catch(a){return b?.error?.("TOKEN_REFRESH",`Vertex token error: ${a.message}`),null}}function J(a,b,c){let d=G(a.apiKey);return d?I(d,b,c):null}let K={"gemini-cli":(a,b,c)=>q(a.refreshToken,d.xq["gemini-cli"].clientId,d.xq["gemini-cli"].clientSecret,b,c),antigravity:(a,b,c)=>q(a.refreshToken,d.xq.antigravity.clientId,d.xq.antigravity.clientSecret,b,c),claude:(a,b,c)=>p(a.refreshToken,b,c),codex:(a,b,c)=>r(a.refreshToken,b,c),iflow:(a,b,c)=>u(a.refreshToken,b,c),github:(a,b,c)=>v(a.refreshToken,b,c),kiro:(a,b,c)=>t(a.refreshToken,a.providerSpecificData,b,c),xai:(a,b,c)=>k(a.refreshToken,b,c),"grok-cli":(a,b,c)=>k(a.refreshToken,b,c),gcli:(a,b,c)=>k(a.refreshToken,b,c),"meta-code":(a,b,c)=>A(a.refreshToken,b,c),"codebuddy-cn":(a,b,c)=>x(a.refreshToken,b,c),"codebuddy-intl":(a,b,c)=>y(a.refreshToken,b,c),trae:(a,b,c)=>z(a.refreshToken,a,b,c),cline:(a,b,c)=>o(a.refreshToken,b,c),clinepass:(a,b,c)=>o(a.refreshToken,b,c),zed:()=>null,cursor:(a,b,c)=>(0,C.Z)((0,C.H)(a),b,c),windsurf:(a,b)=>B(a,b),kimi:(a,b,c)=>n(a.refreshToken,a,b,c),"kimi-coding":(a,b,c)=>n(a.refreshToken,a,b,c),vertex:J,"vertex-partner":J};async function L(a,b,c,d=null){if(!b.refreshToken)return null;let e=K[a];return e?e(b,c,d):m(a,b.refreshToken,b,c,d)}async function M(a,b=3,c=null){for(let d=0;d<b;d++){if(d>0){let a=1e3*d;c?.debug?.("TOKEN_REFRESH",`Retry ${d}/${b} after ${a}ms`),await new Promise(b=>setTimeout(b,a))}try{let b=await a();if(b)return b}catch(a){c?.warn?.("TOKEN_REFRESH",`Attempt ${d+1}/${b} failed: ${a.message}`)}}return c?.error?.("TOKEN_REFRESH",`All ${b} retry attempts failed`),null}},81627:(a,b,c)=>{c.d(b,{H:()=>f,Z:()=>g});var d=c(24249),e=c(11061);function f(a){return a?.refreshToken||a?.accessToken||null}async function g(a,b,c=null){return a?(0,d.A)("cursor",a,async()=>{let d=await (0,e.w2)(a,c);return d.ok?(b?.info?.("TOKEN_REFRESH","Successfully refreshed token for cursor"),{accessToken:d.accessToken,refreshToken:d.accessToken,expiresIn:(0,e.Vn)(d.accessToken),idToken:d.idToken}):d.dead?(b?.warn?.("TOKEN_REFRESH",`cursor session rejected (${d.status})`),{error:"invalid_grant"}):(b?.warn?.("TOKEN_REFRESH",`cursor refresh failed (${d.status})`),null)},b):null}},93943:(a,b,c)=>{c.d(b,{Dz:()=>i,Vq:()=>l,fp:()=>j});var d=c(63419),e=c(26070);let f=e.sr.codex?.maxRefreshAgeMs,g=new Map;function h(a){if(null==a||""===a)return null;if("number"==typeof a)return a<1e12?1e3*a:a;let b=new Date(a).getTime();return Number.isFinite(b)?b:null}function i(a){return h(a?.expiresAt??a?.tokenExpiresAt)}function j(a,b,c=Date.now()){if(!b)return!1;let g=i(b);if(null!==g&&g-c<(0,d.Og)(a))return!0;let k=e.sr[a]?.maxRefreshAgeMs;return!!(k&&b.refreshToken&&function(a,b=Date.now(),c=f){let d=h(a?.lastRefreshAt??a?.lastRefresh??a?.providerSpecificData?.lastRefreshAt);return!d||b-d>=c}(b,c,k))}async function k(a,b,c){let d,e=(d=b?.connectionId||b?.id||b?.email||b?.name||b?.refreshToken?.slice?.(-16)||"default",`${a}:${d}`),f=g.get(e);if(f)return f;let h=Promise.resolve().then(c).finally(()=>{g.delete(e)});return g.set(e,h),h}async function l(a,b,c,f=null){return b?k(a,b,async()=>{let g=await (0,d.$B)(a,b,c,f);return function(a,b,c,f=Date.now()){var g,h;if(!c)return null;if((0,d.jT)(c))return c;let i={},j=new Date(f).toISOString();c.accessToken&&(i.accessToken=c.accessToken),c.apiKey&&(i.apiKey=c.apiKey),c.token&&(i.token=c.token);let k=c.refreshToken??b?.refreshToken;k&&(i.refreshToken=k);let l=c.idToken??b?.idToken;return l&&(i.idToken=l),c.expiresIn?(i.expiresIn=c.expiresIn,i.expiresAt=function(a,b=Date.now()){return a?new Date(b+1e3*a).toISOString():null}(c.expiresIn,f)):c.expiresAt&&(i.expiresAt=c.expiresAt),c.projectId&&(i.projectId=c.projectId),c.providerSpecificData&&(g=b?.providerSpecificData,i.providerSpecificData=(h=c.providerSpecificData)&&"object"==typeof h?{...g||{},...h}:g),c.copilotToken&&(i.copilotToken=c.copilotToken),c.copilotTokenExpiresAt&&(i.copilotTokenExpiresAt=c.copilotTokenExpiresAt),(e.sr[a]?.trackRefreshAt||i.accessToken||i.apiKey||i.token||i.refreshToken||i.copilotToken)&&(i.lastRefreshAt=c.lastRefreshAt||j),i}(a,b,g)}):null}}};
|
|
1
|
+
"use strict";exports.id=3943,exports.ids=[3943],exports.modules={11061:(a,b,c)=>{c.d(b,{$8:()=>m,Oq:()=>p,V5:()=>l,Vn:()=>o,w$:()=>q,w2:()=>n});var d=c(77598),e=c.n(d),f=c(26070),g=c(38660),h=c(39609);let i=["loginUrl","pollUrl","refreshUrl","refreshClientId"],j="Cursor login expired or was rejected. Start the login again.";function k(){let a=f.sr.cursor,b=i.filter(b=>!a?.[b]);if(b.length>0)throw Error(`Cursor OAuth registry config is missing: ${b.join(", ")}`);let{loginUrl:c,pollUrl:d,refreshUrl:e,refreshClientId:g}=a;return{loginUrl:c,pollUrl:d,refreshUrl:e,refreshClientId:g}}function l({challenge:a,uuid:b}){let c=new URLSearchParams({challenge:a,uuid:b,mode:"login",redirectTarget:"cli"});return`${k().loginUrl}?${c}`}async function m({uuid:a,verifier:b},c=null){let d,{pollUrl:e}=k(),f=new URLSearchParams({uuid:a,verifier:b});try{d=await (0,h.proxyAwareFetch)(`${e}?${f}`,{method:"GET",signal:AbortSignal.timeout(15e3)},c)}catch{return{status:"error",message:"Cursor login poll failed (network error)"}}let{status:g}=d;if(404===g)return{status:"pending"};if(200===g){let a=await d.json().catch(()=>null);return a?.accessToken?{status:"success",accessToken:a.accessToken,refreshToken:a.refreshToken||null}:{status:"expired",message:j}}return 403===g&&(await d.text().catch(()=>"")).includes("sign_in_policy_violation")?{status:"denied",message:"Cursor organization sign-in policy blocked this device"}:g>=400&&g<500&&429!==g?{status:"expired",message:j}:{status:"error",message:`Cursor login poll failed (${g})`}}async function n(a,b=null){let c,{refreshUrl:d,refreshClientId:e}=k();try{c=await (0,h.proxyAwareFetch)(d,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({grant_type:"refresh_token",client_id:e,refresh_token:a}),signal:AbortSignal.timeout(15e3)},b)}catch{return{ok:!1,dead:!1,status:0}}let{status:f}=c;if(401===f||403===f)return{ok:!1,dead:!0,status:f};if(200!==f)return{ok:!1,dead:!1,status:f};let g=await c.json().catch(()=>null);return g?!0!==g.shouldLogout&&g.access_token?{ok:!0,accessToken:g.access_token,idToken:g.id_token||null}:{ok:!1,dead:!0,status:f}:{ok:!1,dead:!1,status:f}}function o(a,b=86400){let c=(0,g.K)(a)?.exp;return"number"==typeof c&&Number.isFinite(c)?Math.max(60,Math.floor(c-Date.now()/1e3)):b}function p(a){let b=(0,g.K)(a);return{email:b?.email||b?.sub||null,userId:b?.sub||null}}function q(){return e().createHash("sha256").update(e().randomUUID()).digest("hex")}},18080:(a,b,c)=>{c.d(b,{Xj:()=>i,uo:()=>j});let d=new Set(["login.microsoftonline.com","login.microsoft.com","login.windows.net"]);function e(a){return"string"==typeof a?a.trim():""}function f(a){let b,c=e(a);if(!c)throw Error("token_endpoint is required");try{b=new URL(c)}catch{throw Error("token_endpoint must be a valid URL")}if("https:"!==b.protocol)throw Error("token_endpoint must use https");let f=b.hostname.toLowerCase();if(!d.has(f))throw Error("token_endpoint must be a Microsoft login endpoint");return b.toString()}function g(a){return Array.isArray(a)?a.map(e).filter(Boolean).join(" "):e(a)}function h(a){try{if(!a||"string"!=typeof a)return null;let b=a.split(".");if(3!==b.length)return null;let c=b[1].replace(/-/g,"+").replace(/_/g,"/"),d=(4-c.length%4)%4;return JSON.parse(Buffer.from(`${c}${"=".repeat(d)}`,"base64").toString("utf8"))}catch{return null}}function i(a){let b=a;if("string"==typeof b)try{b=JSON.parse(b)}catch{throw Error("CLIProxyAPI auth JSON is invalid")}if(!b||"object"!=typeof b)throw Error("CLIProxyAPI auth JSON is required");let c=e(b.auth_method||b.authMethod);if(c&&"external_idp"!==c)throw Error("Only external_idp Kiro auth is supported by this importer");let d=e(b.access_token||b.accessToken),i=e(b.refresh_token||b.refreshToken),j=e(b.client_id||b.clientId),k=f(b.token_endpoint||b.tokenEndpoint),l=e(b.profile_arn||b.profileArn),m=e(b.region)||"us-east-1",n=g(b.scopes||b.scope);if(!d)throw Error("access_token is required");if(!i)throw Error("refresh_token is required");if(!j)throw Error("client_id is required");if(!n)throw Error("scopes is required");if(!l)throw Error("profile_arn is required");let o=h(d),p=b.email||o?.email||o?.preferred_username||o?.upn||o?.sub||null;return{accessToken:d,refreshToken:i,expiresAt:function(a){let b=a.expired||a.expires_at||a.expiresAt;if(b){let a=new Date(b).getTime();if(Number.isFinite(a))return new Date(a).toISOString()}let c=Number(a.expires_in||a.expiresIn||0);if(Number.isFinite(c)&&c>0)return new Date(Date.now()+1e3*c).toISOString();let d=h(a.access_token||a.accessToken);return d?.exp?new Date(1e3*d.exp).toISOString():new Date(Date.now()+36e5).toISOString()}(b),email:p,providerSpecificData:{profileArn:l,region:m,authMethod:"external_idp",provider:"CLIProxyAPI",clientId:j,tokenEndpoint:k,scope:n}}}function j(a,b={}){let c=e(b.clientId||b.client_id),d=f(b.tokenEndpoint||b.token_endpoint),h=g(b.scope||b.scopes);if(!a)throw Error("refresh token is required");if(!c)throw Error("clientId is required for external_idp refresh");if(!h)throw Error("scope is required for external_idp refresh");return{tokenEndpoint:d,body:new URLSearchParams({grant_type:"refresh_token",client_id:c,refresh_token:a,scope:h}),providerSpecificData:{...b,authMethod:"external_idp",clientId:c,tokenEndpoint:d,scope:h}}}},24042:(a,b,c)=>{c.d(b,{k:()=>f});var d=c(26070),e=c(24295);async function f(a,b=null){if(!a)throw Error("Meta Code: missing OAuth token");let c=await (0,e.u9)(d.sr["meta-code"].mintUrl,{method:"POST",headers:{Authorization:`Bearer ${a}`,"x-api-version":"1.0.0","Content-Type":"application/json",Accept:"application/json"},body:"{}"},15e3,b);if(!c.ok){let a=Error(`Meta Code key mint failed (${c.status})`);throw a.status=c.status,a.detail=(await c.text().catch(()=>"")).slice(0,200),a}let g=await c.json();if(!g?.api_key){let a=g?.action_url?` Finish setup at ${g.action_url}`:"";throw Error(`Meta Code: account has no Model API key yet.${a}`)}return g}},24249:(a,b,c)=>{c.d(b,{A:()=>e});let d=new Map;async function e(a,b,c,e){if(!b)return c();let f=`${a}:${b}`,g=d.get(f);if(g){if(g.promise)return e?.info?.("TOKEN_REFRESH",`Reusing in-flight refresh for ${a}`),g.promise;if(g.expiresAt>Date.now())return e?.info?.("TOKEN_REFRESH",`Reusing recent refresh result for ${a}`),g.result;d.delete(f)}let h=(async()=>{try{let a=await c();return d.set(f,{result:a,expiresAt:Date.now()+1e4}),a}catch(a){throw d.delete(f),a}})();return d.set(f,{promise:h}),h}},38660:(a,b,c)=>{c.d(b,{K:()=>d});function d(a){try{let b=String(a||"").split(".")[1];if(!b)return null;let c=JSON.parse(Buffer.from(b,"base64url").toString("utf8"));return c&&"object"==typeof c?c:null}catch{return null}}},63419:(a,b,c)=>{c.d(b,{oD:()=>D,Og:()=>F,jT:()=>E,Sc:()=>G,ge:()=>p,Wm:()=>r,jR:()=>w,I9:()=>q,Ql:()=>t,J2:()=>A,$B:()=>L,pb:()=>I,qZ:()=>M});var d=c(35024),e=c(75924),f=c(39609),g=c(24042),h=c(24249),i=c(18080);let j=null;async function k(a,b,d=null){return a?(0,h.A)("xai",a,async()=>{try{j||(j=new(await Promise.all([c.e(5615),c.e(4730)]).then(c.bind(c,84730))).XaiService);let b=await j.refreshAccessToken(a,d);return{accessToken:b.access_token,refreshToken:b.refresh_token||a,expiresIn:b.expires_in,idToken:b.id_token}}catch(c){b?.warn?.("TOKEN_REFRESH",`xai refresh failed: ${c?.message||c}`);let a=String(c?.message||"");if(a.includes("invalid_grant")||a.includes("invalid_request"))return{error:"invalid_grant"};return null}},b):null}let l={claude:{bodyFormat:"json",includeClientSecret:!1,url:()=>e.NA.anthropic.token,dedupKey:"claude"},iflow:{url:()=>e.NA.iflow.token,dedupKey:"iflow",extraHeaders:(a,b)=>({Authorization:`Basic ${btoa(`${b.clientId}:${b.clientSecret}`)}`})},github:{url:()=>e.NA.github.token,dedupKey:"github",includeClientSecret:a=>!!a?.clientSecret},kimi:{dedupKey:"kimi",extraHeaders:a=>(0,e.buildKimiHeaders)(a?.providerSpecificData?.deviceId)}};async function m(a,b,c,e,g=null){let i=d.xq[a],j=l[a]||{},k=function(a,b,c){if(c?.url)try{return c.url()}catch{}return b?.refreshUrl||d.sr[a]?.tokenUrl||null}(a,i,j);if(!i||!k)return e?.warn?.("TOKEN_REFRESH",`No refresh URL configured for provider: ${a}`),null;if(!b)return e?.warn?.("TOKEN_REFRESH",`No refresh token available for provider: ${a}`),null;let n=j.dedupKey||a;return(0,h.A)(n,b,async()=>{try{let d,h,l,{format:m,body:n}=(d=j?.bodyFormat==="json"?"json":"form",h=j?.includeClientSecret===void 0||("function"==typeof j.includeClientSecret?j.includeClientSecret(i):j.includeClientSecret),l={grant_type:"refresh_token",refresh_token:b,client_id:i.clientId},(h&&i.clientSecret&&(l.client_secret=i.clientSecret),"json"===d)?{format:"json",body:JSON.stringify(l)}:{format:"form",body:new URLSearchParams(l)}),o={"Content-Type":"json"===m?"application/json":"application/x-www-form-urlencoded",Accept:"application/json",...j.extraHeaders&&j.extraHeaders(c,i)||{}},p=await (0,f.proxyAwareFetch)(k,{method:"POST",headers:o,body:n},g);if(!p.ok){let b=await p.text();return e?.error?.("TOKEN_REFRESH",`Failed to refresh token for ${a}`,{status:p.status,error:b}),null}let q=await p.json();return e?.info?.("TOKEN_REFRESH",`Successfully refreshed token for ${a}`,{hasNewAccessToken:!!q.access_token,hasNewRefreshToken:!!q.refresh_token,expiresIn:q.expires_in}),{accessToken:q.access_token,refreshToken:q.refresh_token||b,expiresIn:q.expires_in,...j.parse&&j.parse(q)||{}}}catch(b){return e?.error?.("TOKEN_REFRESH",`Error refreshing token for ${a}`,{error:b.message}),null}},e)}async function n(a,b,c,d=null){return m("kimi",a,b,c,d)}async function o(a,b,c=null){return a?(0,h.A)("cline",a,async()=>{try{let e=await (0,f.proxyAwareFetch)(d.xq.cline?.refreshUrl,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify({refreshToken:a,grantType:"refresh_token",clientType:"extension"})},c);if(!e.ok){let a=await e.text();return b?.error?.("TOKEN_REFRESH","Failed to refresh Cline token",{status:e.status,error:a}),null}let g=await e.json(),h=g?.data||g;if(!h?.accessToken)return null;let i=h.expiresAt?Math.max(1,Math.floor((new Date(h.expiresAt).getTime()-Date.now())/1e3)):h.expiresIn||h.expires_in||3600;return{accessToken:h.accessToken,refreshToken:h.refreshToken||a,expiresIn:i}}catch(a){return b?.error?.("TOKEN_REFRESH",`Error refreshing Cline token: ${a.message}`),null}},b):null}async function p(a,b,c=null){return m("claude",a,{},b,c)}async function q(a,b,c,d,g=null){return a?b&&c?(0,h.A)(`google:${b}`,a,async()=>{try{let h=await (0,f.proxyAwareFetch)(e.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,client_id:b,client_secret:c})},g);if(!h.ok){let a=await h.text();return d?.error?.("TOKEN_REFRESH","Failed to refresh Google token",{status:h.status,error:a}),null}let i=await h.json();return d?.info?.("TOKEN_REFRESH","Successfully refreshed Google token",{hasNewAccessToken:!!i.access_token,expiresIn:i.expires_in}),{accessToken:i.access_token,refreshToken:i.refresh_token||a,expiresIn:i.expires_in}}catch(a){return d?.error?.("TOKEN_REFRESH",`Network error refreshing Google token: ${a.message}`),null}},d):(d?.error?.("TOKEN_REFRESH","Google OAuth client not configured: set GEMINI_OAUTH_CLIENT_ID/_SECRET (gemini, gemini-cli) or ANTIGRAVITY_OAUTH_CLIENT_ID/_SECRET (antigravity)"),null):null}async function r(a,b,c=null){return a?(0,h.A)("codex",a,async()=>{try{let g=await (0,f.proxyAwareFetch)(e.NA.openai.token,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify({client_id:d.xq.codex.clientId,grant_type:"refresh_token",refresh_token:a})},c);if(!g.ok){let a=await g.text(),c=function(a="",b=0){let c=null;try{c=a?JSON.parse(a):null}catch{c=null}let d=c?.error?.code||c?.error||c?.error_code||"",e=c?.error_description||c?.message||a||"",f=`${d} ${e}`.toLowerCase();return{status:b,code:d,description:e,permanent:["refresh_token_expired","refresh_token_reused","refresh_token_invalidated","invalid_grant"].some(a=>f.includes(a))}}(a,g.status);if(c.permanent)return b?.error?.("TOKEN_REFRESH","Codex refresh token already used or invalid. Re-auth required.",{status:g.status,code:c.code}),{error:"unrecoverable_refresh_error",code:c.code};return b?.error?.("TOKEN_REFRESH","Failed to refresh Codex token",{status:g.status,error:a,code:c.code,permanent:c.permanent}),null}let h=await g.json();return b?.info?.("TOKEN_REFRESH","Successfully refreshed Codex token",{hasNewAccessToken:!!h.access_token,hasNewRefreshToken:!!h.refresh_token,hasIdToken:!!h.id_token,expiresIn:h.expires_in}),{accessToken:h.access_token,refreshToken:h.refresh_token||a,idToken:h.id_token,expiresIn:h.expires_in}}catch(a){return b?.error?.("TOKEN_REFRESH",`Network error refreshing Codex token: ${a.message}`),null}},b):null}async function s(a,b,d){if(a?.profileArn)return{};let e=d?.trim?.()||null;if(!e)try{let{fetchKiroProfileArn:a}=await Promise.all([c.e(7774),c.e(5433),c.e(8920),c.e(24),c.e(965),c.e(3225),c.e(2051),c.e(1159),c.e(7695),c.e(2380),c.e(318),c.e(8895),c.e(5869),c.e(3535)]).then(c.bind(c,74177));e=await a(b)}catch{return{}}return e?{providerSpecificData:{profileArn:e}}:{}}async function t(a,b,c,e=null){return a?(0,h.A)("kiro",a,async()=>{let g=b?.authMethod,h=b?.clientId,j=b?.clientSecret,k=b?.region;if("external_idp"===g){let d;try{d=(0,i.uo)(a,b)}catch(a){return c?.warn?.("TOKEN_REFRESH",`Invalid Kiro external_idp refresh config: ${a.message}`),null}try{let b=await (0,f.proxyAwareFetch)(d.tokenEndpoint,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:d.body},e);if(!b.ok){let a=await b.text();return c?.error?.("TOKEN_REFRESH","Failed to refresh Kiro external_idp token",{status:b.status,error:a}),null}let g=await b.json();return c?.info?.("TOKEN_REFRESH","Successfully refreshed Kiro external_idp token",{hasNewAccessToken:!!g.access_token,hasNewRefreshToken:!!g.refresh_token,expiresIn:g.expires_in}),{accessToken:g.access_token,refreshToken:g.refresh_token||a,expiresIn:g.expires_in,providerSpecificData:d.providerSpecificData}}catch(a){return c?.error?.("TOKEN_REFRESH",`Error refreshing Kiro external_idp token: ${a.message}`),null}}try{if(h&&j){let d="idc"===g&&k?`https://oidc.${k}.amazonaws.com/token`:"https://oidc.us-east-1.amazonaws.com/token",i=await (0,f.proxyAwareFetch)(d,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify({clientId:h,clientSecret:j,refreshToken:a,grantType:"refresh_token"})},e);if(!i.ok){let a=await i.text();return c?.error?.("TOKEN_REFRESH","Failed to refresh Kiro AWS token",{status:i.status,error:a}),null}let l=await i.json();return c?.info?.("TOKEN_REFRESH","Successfully refreshed Kiro AWS token",{hasNewAccessToken:!!l.accessToken,expiresIn:l.expiresIn}),{accessToken:l.accessToken,refreshToken:l.refreshToken||a,expiresIn:l.expiresIn,...await s(b,l.accessToken,l.profileArn)}}}catch(a){return c?.error?.("TOKEN_REFRESH",`Error refreshing Kiro AWS token: ${a.message}`),null}try{let g=await (0,f.proxyAwareFetch)(d.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})},e);if(!g.ok){let a=await g.text();return c?.error?.("TOKEN_REFRESH","Failed to refresh Kiro social token",{status:g.status,error:a}),null}let h=await g.json();return c?.info?.("TOKEN_REFRESH","Successfully refreshed Kiro social token",{hasNewAccessToken:!!h.accessToken,expiresIn:h.expiresIn}),{accessToken:h.accessToken,refreshToken:h.refreshToken||a,expiresIn:h.expiresIn,...await s(b,h.accessToken,h.profileArn)}}catch(a){return c?.error?.("TOKEN_REFRESH",`Error refreshing Kiro social token: ${a.message}`),null}},c):null}async function u(a,b,c=null){return m("iflow",a,{},b,c)}async function v(a,b,c=null){return m("github",a,{},b,c)}async function w(a,b,c=null){return a?(0,h.A)("copilot",a,async()=>{try{let g=await (0,f.proxyAwareFetch)(d.sr.github?.copilotTokenUrl,{headers:{Authorization:`token ${a}`,"User-Agent":e.x0.USER_AGENT,"Editor-Version":`vscode/${e.x0.VSCODE_VERSION}`,"Editor-Plugin-Version":`copilot-chat/${e.x0.COPILOT_CHAT_VERSION}`,Accept:"application/json","x-github-api-version":e.x0.API_VERSION}},c);if(!g.ok){let a=await g.text();return b?.error?.("TOKEN_REFRESH","Failed to refresh Copilot token",{status:g.status,error:a}),null}let h=await g.json();return b?.info?.("TOKEN_REFRESH","Successfully refreshed Copilot token",{hasToken:!!h.token,expiresAt:h.expires_at}),{token:h.token,expiresAt:h.expires_at}}catch(a){return b?.error?.("TOKEN_REFRESH","Error refreshing Copilot token",{error:a.message}),null}},b):null}async function x(a,b,c=null){return a?(0,h.A)("codebuddy-cn",a,async()=>{try{let e=d.sr["codebuddy-cn"]||{},g=await (0,f.proxyAwareFetch)(e.refreshUrl,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json","User-Agent":e.userAgent,"X-Requested-With":"XMLHttpRequest","X-Domain":"copilot.tencent.com","X-Refresh-Token":a,"X-Auth-Refresh-Source":"plugin","X-Product":"SaaS"},body:"{}"},c);if(!g.ok){let a=await g.text();return b?.error?.("TOKEN_REFRESH","Failed to refresh CodeBuddy token",{status:g.status,error:a}),null}let h=await g.json();if(0!==h.code||!h.data?.accessToken)return b?.error?.("TOKEN_REFRESH","CodeBuddy token refresh returned no token",{code:h.code,msg:h.msg}),null;return b?.info?.("TOKEN_REFRESH","Successfully refreshed CodeBuddy token",{hasNewAccessToken:!!h.data.accessToken,hasNewRefreshToken:!!h.data.refreshToken,expiresIn:h.data.expiresIn}),{accessToken:h.data.accessToken,refreshToken:h.data.refreshToken||a,expiresIn:h.data.expiresIn}}catch(a){return b?.error?.("TOKEN_REFRESH",`Error refreshing CodeBuddy token: ${a.message}`),null}},b):null}async function y(a,b,c=null){return a?(0,h.A)("codebuddy-intl",a,async()=>{try{let e=d.sr["codebuddy-intl"]||{},g=await (0,f.proxyAwareFetch)(e.refreshUrl,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json","User-Agent":e.userAgent,"X-Requested-With":"XMLHttpRequest","X-Domain":"www.codebuddy.ai","X-Refresh-Token":a,"X-Auth-Refresh-Source":"plugin","X-Product":"SaaS"},body:"{}"},c);if(!g.ok){let a=await g.text();return b?.error?.("TOKEN_REFRESH","Failed to refresh CodeBuddy intl token",{status:g.status,error:a}),null}let h=await g.json();if(0!==h.code||!h.data?.accessToken)return b?.error?.("TOKEN_REFRESH","CodeBuddy intl token refresh returned no token",{code:h.code,msg:h.msg}),null;return b?.info?.("TOKEN_REFRESH","Successfully refreshed CodeBuddy intl token",{hasNewAccessToken:!!h.data.accessToken,hasNewRefreshToken:!!h.data.refreshToken,expiresIn:h.data.expiresIn}),{accessToken:h.data.accessToken,refreshToken:h.data.refreshToken||a,expiresIn:h.data.expiresIn}}catch(a){return b?.error?.("TOKEN_REFRESH",`Error refreshing CodeBuddy intl token: ${a.message}`),null}},b):null}async function z(a,b,c,e=null){if(!a)return null;let g=d.sr.trae||{},i=g.exchangeTokenUrl||g.tokenUrl;return i?(0,h.A)("trae",a,async()=>{try{let b,d=await (0,f.proxyAwareFetch)(i,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json","User-Agent":"Trae/1.0.0 antigravity-cockpit-tools"},body:JSON.stringify({ClientID:g.clientId||"ono9krqynydwx5",RefreshToken:a,ClientSecret:g.clientSecret||"-",UserID:""})},e);if(!d.ok){let a=await d.text();return c?.error?.("TOKEN_REFRESH","Failed to refresh Trae token",{status:d.status,error:a}),null}let h=await d.json(),j=h?.Result||h?.result||h,k=j?.AccessToken||j?.accessToken;if(!k)return c?.error?.("TOKEN_REFRESH","Trae refresh returned no AccessToken",{payload:h}),null;let l=j?.RefreshToken||j?.refreshToken||a,m=j?.ExpiresAt||j?.expiresAt;if("number"==typeof m)b=Math.max(1,m-Math.floor(Date.now()/1e3));else if("string"==typeof m){let a=new Date(m).getTime()-Date.now();b=a>0?Math.floor(a/1e3):void 0}return c?.info?.("TOKEN_REFRESH","Successfully refreshed Trae token",{hasNewAccessToken:!!k,hasNewRefreshToken:l!==a,expiresIn:b}),{accessToken:k,refreshToken:l,expiresIn:b}}catch(a){return c?.error?.("TOKEN_REFRESH",`Error refreshing Trae token: ${a.message}`),null}},c):(c?.warn?.("TOKEN_REFRESH","No Trae exchangeTokenUrl configured"),null)}async function A(a,b,c=null){return a?(0,h.A)("meta-code",a,async()=>{try{return{accessToken:(await (0,g.k)(a,c)).api_key,refreshToken:a}}catch(a){if(a?.status===401||a?.status===403)return b?.warn?.("TOKEN_REFRESH",`Meta Code re-mint rejected (${a.status})`),{error:"invalid_grant"};return b?.warn?.("TOKEN_REFRESH",`Meta Code re-mint failed: ${a?.message||a}`),null}},b):null}async function B(a,b){return b?.info?.("TOKEN_REFRESH","windsurf: apiKey is long-lived (no refresh_token flow) — skipping"),null}var C=c(81627);let D=3e5;function E(a){return a&&"object"==typeof a&&("unrecoverable_refresh_error"===a.error||"refresh_token_reused"===a.error||"invalid_request"===a.error||"invalid_grant"===a.error)}function F(a){return e.Wu[a]?e.Wu[a]:"kimi-coding"===a&&e.Wu.kimi?e.Wu.kimi:D}function G(a){if("string"!=typeof a)return null;try{let b=JSON.parse(a);if("service_account"===b.type&&b.client_email&&b.private_key&&b.project_id)return b;return null}catch{return null}}let H=new Map;async function I(a,b,d=null){let g=a.client_email,h=H.get(g);if(h&&h.expiresAt-Date.now()>3e5)return{accessToken:h.token,expiresAt:h.expiresAt};try{let{SignJWT:h,importPKCS8:i}=await Promise.all([c.e(7469),c.e(1455)]).then(c.bind(c,71455));b?.debug?.("TOKEN_REFRESH",`Vertex minting token for ${a.client_email}`);let j=await i(a.private_key.replace(/\\n/g,"\n"),"RS256"),k=Math.floor(Date.now()/1e3),l=await new h({scope:"https://www.googleapis.com/auth/cloud-platform"}).setProtectedHeader({alg:"RS256"}).setIssuer(a.client_email).setAudience(e.NA.google.token).setIssuedAt(k).setExpirationTime(k+3600).sign(j),m=await (0,f.proxyAwareFetch)(e.NA.google.token,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:new URLSearchParams({grant_type:"urn:ietf:params:oauth:grant-type:jwt-bearer",assertion:l})},d);if(!m.ok){let a=await m.text();return b?.error?.("TOKEN_REFRESH",`Vertex token mint failed: ${a}`),null}let{access_token:n,expires_in:o}=await m.json(),p=Date.now()+(o??3600)*1e3;return H.set(g,{token:n,expiresAt:p}),b?.info?.("TOKEN_REFRESH",`Vertex token minted for ${a.client_email}`),{accessToken:n,expiresAt:p}}catch(a){return b?.error?.("TOKEN_REFRESH",`Vertex token error: ${a.message}`),null}}function J(a,b,c){let d=G(a.apiKey);return d?I(d,b,c):null}let K={"gemini-cli":(a,b,c)=>q(a.refreshToken,d.xq["gemini-cli"].clientId,d.xq["gemini-cli"].clientSecret,b,c),antigravity:(a,b,c)=>q(a.refreshToken,d.xq.antigravity.clientId,d.xq.antigravity.clientSecret,b,c),claude:(a,b,c)=>p(a.refreshToken,b,c),codex:(a,b,c)=>r(a.refreshToken,b,c),iflow:(a,b,c)=>u(a.refreshToken,b,c),github:(a,b,c)=>v(a.refreshToken,b,c),kiro:(a,b,c)=>t(a.refreshToken,a.providerSpecificData,b,c),xai:(a,b,c)=>k(a.refreshToken,b,c),"grok-cli":(a,b,c)=>k(a.refreshToken,b,c),gcli:(a,b,c)=>k(a.refreshToken,b,c),"meta-code":(a,b,c)=>A(a.refreshToken,b,c),"codebuddy-cn":(a,b,c)=>x(a.refreshToken,b,c),"codebuddy-intl":(a,b,c)=>y(a.refreshToken,b,c),trae:(a,b,c)=>z(a.refreshToken,a,b,c),cline:(a,b,c)=>o(a.refreshToken,b,c),clinepass:(a,b,c)=>o(a.refreshToken,b,c),zed:()=>null,cursor:(a,b,c)=>(0,C.Z)((0,C.H)(a),b,c),windsurf:(a,b)=>B(a,b),kimi:(a,b,c)=>n(a.refreshToken,a,b,c),"kimi-coding":(a,b,c)=>n(a.refreshToken,a,b,c),vertex:J,"vertex-partner":J};async function L(a,b,c,d=null){if(!b.refreshToken)return null;let e=K[a];return e?e(b,c,d):m(a,b.refreshToken,b,c,d)}async function M(a,b=3,c=null){for(let d=0;d<b;d++){if(d>0){let a=1e3*d;c?.debug?.("TOKEN_REFRESH",`Retry ${d}/${b} after ${a}ms`),await new Promise(b=>setTimeout(b,a))}try{let b=await a();if(b)return b}catch(a){c?.warn?.("TOKEN_REFRESH",`Attempt ${d+1}/${b} failed: ${a.message}`)}}return c?.error?.("TOKEN_REFRESH",`All ${b} retry attempts failed`),null}},81627:(a,b,c)=>{c.d(b,{H:()=>f,Z:()=>g});var d=c(24249),e=c(11061);function f(a){return a?.refreshToken||a?.accessToken||null}async function g(a,b,c=null){return a?(0,d.A)("cursor",a,async()=>{let d=await (0,e.w2)(a,c);return d.ok?(b?.info?.("TOKEN_REFRESH","Successfully refreshed token for cursor"),{accessToken:d.accessToken,refreshToken:d.accessToken,expiresIn:(0,e.Vn)(d.accessToken),idToken:d.idToken}):d.dead?(b?.warn?.("TOKEN_REFRESH",`cursor session rejected (${d.status})`),{error:"invalid_grant"}):(b?.warn?.("TOKEN_REFRESH",`cursor refresh failed (${d.status})`),null)},b):null}},93943:(a,b,c)=>{c.d(b,{Dz:()=>i,Vq:()=>l,fp:()=>j});var d=c(63419),e=c(26070);let f=e.sr.codex?.maxRefreshAgeMs,g=new Map;function h(a){if(null==a||""===a)return null;if("number"==typeof a)return a<1e12?1e3*a:a;let b=new Date(a).getTime();return Number.isFinite(b)?b:null}function i(a){return h(a?.expiresAt??a?.tokenExpiresAt)}function j(a,b,c=Date.now()){if(!b)return!1;let g=i(b);if(null!==g&&g-c<(0,d.Og)(a))return!0;let k=e.sr[a]?.maxRefreshAgeMs;return!!(k&&b.refreshToken&&function(a,b=Date.now(),c=f){let d=h(a?.lastRefreshAt??a?.lastRefresh??a?.providerSpecificData?.lastRefreshAt);return!d||b-d>=c}(b,c,k))}async function k(a,b,c){let d,e=(d=b?.connectionId||b?.id||b?.email||b?.name||b?.refreshToken?.slice?.(-16)||"default",`${a}:${d}`),f=g.get(e);if(f)return f;let h=Promise.resolve().then(c).finally(()=>{g.delete(e)});return g.set(e,h),h}async function l(a,b,c,f=null){return b?k(a,b,async()=>{let g=await (0,d.$B)(a,b,c,f);return function(a,b,c,f=Date.now()){var g,h;if(!c)return null;if((0,d.jT)(c))return c;let i={},j=new Date(f).toISOString();c.accessToken&&(i.accessToken=c.accessToken),c.apiKey&&(i.apiKey=c.apiKey),c.token&&(i.token=c.token);let k=c.refreshToken??b?.refreshToken;k&&(i.refreshToken=k);let l=c.idToken??b?.idToken;return l&&(i.idToken=l),c.expiresIn?(i.expiresIn=c.expiresIn,i.expiresAt=function(a,b=Date.now()){return a?new Date(b+1e3*a).toISOString():null}(c.expiresIn,f)):c.expiresAt&&(i.expiresAt=c.expiresAt),c.projectId&&(i.projectId=c.projectId),c.providerSpecificData&&(g=b?.providerSpecificData,i.providerSpecificData=(h=c.providerSpecificData)&&"object"==typeof h?{...g||{},...h}:g),c.copilotToken&&(i.copilotToken=c.copilotToken),c.copilotTokenExpiresAt&&(i.copilotTokenExpiresAt=c.copilotTokenExpiresAt),(e.sr[a]?.trackRefreshAt||i.accessToken||i.apiKey||i.token||i.refreshToken||i.copilotToken)&&(i.lastRefreshAt=c.lastRefreshAt||j),i}(a,b,g)}):null}}};
|
|
@@ -4,4 +4,4 @@
|
|
|
4
4
|
data: ${d}
|
|
5
5
|
|
|
6
6
|
`)}catch{}}}),f.stderr.on("data",b=>console.log(`[mcp:${a}]`,b.toString().trim())),f.on("exit",c=>{console.log(`[mcp:${a}] exited`,c),b.delete(a)}),c}a.exports={getOrSpawn:k,registerSession:function(a,b){let c=k(a),d=e.randomUUID();return c.sessions.set(d,b),d},unregisterSession:function(a,b){let c=i().get(a);if(c&&(c.sessions.delete(b),0===c.sessions.size)){try{c.proc.kill()}catch{}i().delete(a)}},sendToChild:function(a,b){let c=i().get(a);if(!c?.proc?.stdin?.writable)throw Error(`Bridge not running: ${a}`);c.proc.stdin.write(`${JSON.stringify(b)}
|
|
7
|
-
`)},isRunning:function(a){let b=i().get(a);return!!(b?.proc&&!b.proc.killed&&null===b.proc.exitCode)},findPlugin:j,killAllBridges:function(){let a=i();for(let[b,c]of a){try{c.proc.kill()}catch{}a.delete(b)}}}},28286:a=>{a.exports={DEFAULT_PLUGINS:[{name:"exa",title:"Exa",description:"Real-time web search and code documentation",url:"https://mcp.exa.ai/mcp",transport:"http",oauth:!1,toolNames:["web_search_exa","web_fetch_exa"]},{name:"tavily",title:"Tavily",description:"Real-time web search optimized for LLM agents",url:"https://mcp.tavily.com/mcp",transport:"http",oauth:!0,toolNames:["tavily_search","tavily_extract","tavily_crawl","tavily_map"]}],LOCAL_STDIO_PLUGINS:[{name:"browsermcp",title:"Browser MCP",description:"Control your running Chrome (requires Chrome extension)",extensionUrl:"https://chromewebstore.google.com/detail/browser-mcp-automate-your/bjfgambnhccakkhmkepdoekmckoijdlc",command:"npx",args:["-y","@browsermcp/mcp@latest"],toolNames:["browser_navigate","browser_snapshot","browser_click","browser_type","browser_screenshot","browser_get_console_logs","browser_wait","browser_press_key","browser_go_back","browser_go_forward"]}],buildManagedMcpServers:function(a){let b=Array.isArray(a)?a:[],c=[],d=new Set;for(let a of b){if(!a?.name||!a?.url||d.has(a.name))continue;d.add(a.name);let b={name:a.name,url:a.url,transport:a.transport||(/\/sse(\b|\/)/i.test(a.url)?"sse":"http")};if(a.oauth&&(b.oauth=!0),Array.isArray(a.toolNames)&&a.toolNames.length>0){let c=`${a.name}-`,d=new Set;for(let b of a.toolNames){if("string"!=typeof b||!b)continue;let a=b;for(;a.startsWith(c);)a=a.slice(c.length);d.add(a)}let e={};for(let a of d)e[a]="allow",e[`${c}${a}`]="allow";b.toolPolicy=e}c.push(b)}return c}}},76476:(a,b,c)=>{c.d(b,{N:()=>l,v:()=>k});var d=c(29021),e=c.n(d),f=c(33873),g=c.n(f),h=c(49120);let i=g().join(h.nJ,"mitm","aliases.json");function j(a){let b=g().dirname(i);e().mkdirSync(b,{recursive:!0});let c=`${i}.tmp`;e().writeFileSync(c,JSON.stringify(a,null,2),"utf8"),e().renameSync(c,i)}async function k(){try{let{getMitmAlias:a}=await Promise.resolve().then(c.bind(c,9460)),b=await a();j(b||{})}catch(a){console.log("[mitmAliasCache] sync failed:",a.message)}}function l(a,b){try{let c={};if(e().existsSync(i))try{c=JSON.parse(e().readFileSync(i,"utf8"))}catch{}c[a]=b||{},j(c)}catch(a){console.log("[mitmAliasCache] write failed:",a.message)}}},94123:(a,b,c)=>{c.d(b,{Ay:()=>x,Zh:()=>w});var d=c(21820),e=c.n(d),f=c(1932),g=c(33873),h=c(29021),i=c(31223),j=c(89718),k=c(67976),l=c(7642),m=c(96182),n=c(76476),o=c(17113);if(!process.env.MITM_SERVER_PATH)try{let a=(0,f.fileURLToPath)("file:///home/runner/work/tokenhop/tokenhop/src/shared/services/initializeApp.js"),b=(0,g.dirname)((0,g.dirname)(a)),c=(0,g.join)(b,"mitm","server.js");(0,h.existsSync)(c)&&(process.env.MITM_SERVER_PATH=c)}catch{}try{(0,m.initDbHooks)(j.getSettings,j.Xx)}catch{}process.setMaxListeners(20);let p=global.__appSingleton??={signalHandlersRegistered:!1,watchdogInterval:null,networkMonitorInterval:null,lastNetworkFingerprint:null,lastWatchdogTick:Date.now(),lastOnline:null,mitmStartInProgress:!1,tunnelAutoResumed:!1,tailscaleAutoResumed:!1};async function q(){var a;await (0,j.bI)();let b=await (0,j.getSettings)();if(b.tunnelEnabled&&!p.tunnelAutoResumed&&(p.tunnelAutoResumed=!0,console.log("[InitApp] Tunnel was enabled, auto-resuming..."),t("startup").catch(a=>console.log("[InitApp] Tunnel resume failed:",a.message))),b.tailscaleEnabled&&!p.tailscaleAutoResumed&&(p.tailscaleAutoResumed=!0,console.log("[InitApp] Tailscale was enabled, auto-resuming..."),u("startup").catch(a=>console.log("[InitApp] Tailscale resume failed:",a.message))),b.tunnelEnabled&&(0,l.Al)().catch(()=>{}),b.mitmEnabled&&"1"===(0,i.sx)("DISABLE_MITM")){console.log("[InitApp] MITM disabled by launcher after repeated crashes");try{await (0,j.Xx)({mitmEnabled:!1})}catch(a){console.log("[InitApp] Failed to persist mitmEnabled=false:",a.message)}}else b.mitmEnabled&&((0,n.v)().catch(()=>{}),r(b));w(b),a=b,[a?.claudeAutoPing,a?.codexAutoPing].some(a=>Object.values(a?.connections||{}).some(Boolean))&&Promise.all([c.e(7774),c.e(7819),c.e(6070),c.e(1152),c.e(7616),c.e(3943),c.e(8920),c.e(24),c.e(965),c.e(3225),c.e(2051),c.e(1159),c.e(
|
|
7
|
+
`)},isRunning:function(a){let b=i().get(a);return!!(b?.proc&&!b.proc.killed&&null===b.proc.exitCode)},findPlugin:j,killAllBridges:function(){let a=i();for(let[b,c]of a){try{c.proc.kill()}catch{}a.delete(b)}}}},28286:a=>{a.exports={DEFAULT_PLUGINS:[{name:"exa",title:"Exa",description:"Real-time web search and code documentation",url:"https://mcp.exa.ai/mcp",transport:"http",oauth:!1,toolNames:["web_search_exa","web_fetch_exa"]},{name:"tavily",title:"Tavily",description:"Real-time web search optimized for LLM agents",url:"https://mcp.tavily.com/mcp",transport:"http",oauth:!0,toolNames:["tavily_search","tavily_extract","tavily_crawl","tavily_map"]}],LOCAL_STDIO_PLUGINS:[{name:"browsermcp",title:"Browser MCP",description:"Control your running Chrome (requires Chrome extension)",extensionUrl:"https://chromewebstore.google.com/detail/browser-mcp-automate-your/bjfgambnhccakkhmkepdoekmckoijdlc",command:"npx",args:["-y","@browsermcp/mcp@latest"],toolNames:["browser_navigate","browser_snapshot","browser_click","browser_type","browser_screenshot","browser_get_console_logs","browser_wait","browser_press_key","browser_go_back","browser_go_forward"]}],buildManagedMcpServers:function(a){let b=Array.isArray(a)?a:[],c=[],d=new Set;for(let a of b){if(!a?.name||!a?.url||d.has(a.name))continue;d.add(a.name);let b={name:a.name,url:a.url,transport:a.transport||(/\/sse(\b|\/)/i.test(a.url)?"sse":"http")};if(a.oauth&&(b.oauth=!0),Array.isArray(a.toolNames)&&a.toolNames.length>0){let c=`${a.name}-`,d=new Set;for(let b of a.toolNames){if("string"!=typeof b||!b)continue;let a=b;for(;a.startsWith(c);)a=a.slice(c.length);d.add(a)}let e={};for(let a of d)e[a]="allow",e[`${c}${a}`]="allow";b.toolPolicy=e}c.push(b)}return c}}},76476:(a,b,c)=>{c.d(b,{N:()=>l,v:()=>k});var d=c(29021),e=c.n(d),f=c(33873),g=c.n(f),h=c(49120);let i=g().join(h.nJ,"mitm","aliases.json");function j(a){let b=g().dirname(i);e().mkdirSync(b,{recursive:!0});let c=`${i}.tmp`;e().writeFileSync(c,JSON.stringify(a,null,2),"utf8"),e().renameSync(c,i)}async function k(){try{let{getMitmAlias:a}=await Promise.resolve().then(c.bind(c,9460)),b=await a();j(b||{})}catch(a){console.log("[mitmAliasCache] sync failed:",a.message)}}function l(a,b){try{let c={};if(e().existsSync(i))try{c=JSON.parse(e().readFileSync(i,"utf8"))}catch{}c[a]=b||{},j(c)}catch(a){console.log("[mitmAliasCache] write failed:",a.message)}}},94123:(a,b,c)=>{c.d(b,{Ay:()=>x,Zh:()=>w});var d=c(21820),e=c.n(d),f=c(1932),g=c(33873),h=c(29021),i=c(31223),j=c(89718),k=c(67976),l=c(7642),m=c(96182),n=c(76476),o=c(17113);if(!process.env.MITM_SERVER_PATH)try{let a=(0,f.fileURLToPath)("file:///home/runner/work/tokenhop/tokenhop/src/shared/services/initializeApp.js"),b=(0,g.dirname)((0,g.dirname)(a)),c=(0,g.join)(b,"mitm","server.js");(0,h.existsSync)(c)&&(process.env.MITM_SERVER_PATH=c)}catch{}try{(0,m.initDbHooks)(j.getSettings,j.Xx)}catch{}process.setMaxListeners(20);let p=global.__appSingleton??={signalHandlersRegistered:!1,watchdogInterval:null,networkMonitorInterval:null,lastNetworkFingerprint:null,lastWatchdogTick:Date.now(),lastOnline:null,mitmStartInProgress:!1,tunnelAutoResumed:!1,tailscaleAutoResumed:!1};async function q(){var a;await (0,j.bI)();let b=await (0,j.getSettings)();if(b.tunnelEnabled&&!p.tunnelAutoResumed&&(p.tunnelAutoResumed=!0,console.log("[InitApp] Tunnel was enabled, auto-resuming..."),t("startup").catch(a=>console.log("[InitApp] Tunnel resume failed:",a.message))),b.tailscaleEnabled&&!p.tailscaleAutoResumed&&(p.tailscaleAutoResumed=!0,console.log("[InitApp] Tailscale was enabled, auto-resuming..."),u("startup").catch(a=>console.log("[InitApp] Tailscale resume failed:",a.message))),b.tunnelEnabled&&(0,l.Al)().catch(()=>{}),b.mitmEnabled&&"1"===(0,i.sx)("DISABLE_MITM")){console.log("[InitApp] MITM disabled by launcher after repeated crashes");try{await (0,j.Xx)({mitmEnabled:!1})}catch(a){console.log("[InitApp] Failed to persist mitmEnabled=false:",a.message)}}else b.mitmEnabled&&((0,n.v)().catch(()=>{}),r(b));w(b),a=b,[a?.claudeAutoPing,a?.codexAutoPing].some(a=>Object.values(a?.connections||{}).some(Boolean))&&Promise.all([c.e(7774),c.e(7819),c.e(6070),c.e(1152),c.e(7616),c.e(3943),c.e(8920),c.e(24),c.e(965),c.e(3225),c.e(2051),c.e(1159),c.e(7695),c.e(9124),c.e(2380),c.e(8416),c.e(318),c.e(8895),c.e(1245),c.e(7211),c.e(7716),c.e(2705)]).then(c.bind(c,1133)).then(({startQuotaAutoPing:a})=>a()).catch(a=>console.log("[AutoPing] scheduler start failed:",a.message)),Promise.all([c.e(7774),c.e(7819),c.e(6070),c.e(1152),c.e(7616),c.e(3943),c.e(8920),c.e(24),c.e(965),c.e(3225),c.e(2051),c.e(1159),c.e(7695),c.e(9124),c.e(2380),c.e(8416),c.e(318),c.e(8895),c.e(1245),c.e(7211),c.e(9016)]).then(c.bind(c,78632)).then(({syncQuotaSnapshotPoller:a})=>a()).catch(a=>console.log("[QuotaSnapshotPoller] scheduler start failed:",a.message)),Promise.all([c.e(7819),c.e(6070),c.e(7616),c.e(3943),c.e(1215)]).then(c.bind(c,3256)).then(({startBackgroundTokenRefresh:a})=>a()).catch(a=>console.log("[BackgroundTokenRefresh] scheduler start failed:",a.message))}async function r(a){if(!p.mitmStartInProgress){p.mitmStartInProgress=!0;try{if(!a.mitmEnabled||(await (0,m.getMitmStatus)()).running)return;let b=await (0,m.loadEncryptedPassword)();if(!b&&"win32"!==process.platform)return void console.log("[InitApp] MITM was enabled but no saved password found, skipping auto-start");let c=(await (0,j.PX)()).find(a=>!1!==a.isActive);console.log("[InitApp] MITM was enabled, auto-starting..."),await (0,m.startMitm)(c?.key||i.Hc.defaultApiKey,b),console.log("[InitApp] MITM auto-started");try{await (0,m.restoreToolDNS)(b),console.log("[InitApp] DNS restored from saved state")}catch(a){console.log("[InitApp] DNS restore failed:",a.message)}}catch(a){console.log("[InitApp] MITM auto-start failed:",a.message)}finally{p.mitmStartInProgress=!1}}}let s=/^(startup|netchange|sleep|sleep\+netchange|online|unexpected-exit)$/;async function t(a){let b=(0,l.Qn)();if(!(await (0,j.getSettings)()).tunnelEnabled||b.cancelToken.cancelled||b.spawnInProgress)return;let c=s.test(a);if(!(0,l.nN)()){if(!c&&Date.now()-b.lastRestartAt<l.Lh)return void console.log(`[Tunnel] degraded but cooldown active, skip (${a})`);if(await (0,l.u7)()){console.log(`[Tunnel] safeRestart (${a}) — tunnel unreachable${c?" [force]":""}`);try{await (0,l.cb)(),b.lastRestartAt=Date.now(),console.log("[Tunnel] restart success")}catch(a){/cloudflared killed|tunnel cancelled/.test(a.message)||console.log("[Tunnel] restart failed:",a.message)}}}}async function u(a){let b=(0,l.oN)();if(!(await (0,j.getSettings)()).tailscaleEnabled||b.cancelToken.cancelled||b.spawnInProgress||("startup"===a?await (0,l.hp)():(0,l.Kp)()))return;if((0,l.si)()&&b.activeLocalPort){try{await (0,l.LC)(b.activeLocalPort),b.lastRestartAt=Date.now(),console.log("[Tailscale] funnel re-established (daemon alive)")}catch(a){console.log("[Tailscale] funnel recovery failed:",a.message)}return}let c=s.test(a);if(!c&&Date.now()-b.lastRestartAt<l.Lh)return void console.log(`[Tailscale] degraded but cooldown active, skip (${a})`);if(await (0,l.u7)()){console.log(`[Tailscale] safeRestart (${a}) — daemon not running${c?" [force]":""}`);try{await (0,l.mh)(),b.lastRestartAt=Date.now(),console.log("[Tailscale] restart success")}catch(a){console.log("[Tailscale] restart failed:",a.message)}}}function v(){let a=e().networkInterfaces(),b=[];for(let[c,d]of Object.entries(a))if(d&&!l.Lx.test(c))for(let a of d)a.internal||"IPv4"!==a.family||b.push(`${c}:${a.address}`);return b.sort().join("|")}function w(a){if(a?.tunnelEnabled||a?.tailscaleEnabled){!p.watchdogInterval&&(p.watchdogInterval=setInterval(()=>{t("watchdog").catch(()=>{}),u("watchdog").catch(()=>{})},l.DA),p.watchdogInterval.unref&&p.watchdogInterval.unref()),!p.networkMonitorInterval&&(p.lastNetworkFingerprint=v(),p.lastWatchdogTick=Date.now(),p.lastOnline=null,p.networkMonitorInterval=setInterval(async()=>{try{let a=Date.now(),b=a-p.lastWatchdogTick;p.lastWatchdogTick=a;let c=v(),d=c!==p.lastNetworkFingerprint,e=b>6*l.rI;d&&(p.lastNetworkFingerprint=c);let f=await (0,l.u7)(),g=!1===p.lastOnline;if(p.lastOnline=f,!f||!d&&!e&&!g)return;await new Promise(a=>setTimeout(a,l.cw));let h=g?"online":e&&d?"sleep+netchange":e?"sleep":"netchange";t(h).catch(()=>{}),u(h).catch(()=>{})}catch(a){console.log("[NetworkMonitor] error:",a.message)}},l.rI),p.networkMonitorInterval.unref&&p.networkMonitorInterval.unref());return}p.watchdogInterval&&(clearInterval(p.watchdogInterval),p.watchdogInterval=null),p.networkMonitorInterval&&(clearInterval(p.networkMonitorInterval),p.networkMonitorInterval=null,p.lastNetworkFingerprint=null,p.lastOnline=null)}let x=async function a(){try{if(!p.signalHandlersRegistered){let a=()=>{try{(0,m.removeAllDNSEntriesSync)()}catch{}try{(0,o.killAllBridges)()}catch{}(0,l.ss)(),(0,k.G)(),process.exit()};process.on("SIGINT",a),process.on("SIGTERM",a),process.on("exit",()=>{try{(0,m.removeAllDNSEntriesSync)()}catch{}}),p.signalHandlersRegistered=!0}(0,l.X$)(()=>{t("unexpected-exit").catch(()=>{})}),setTimeout(()=>{q().catch(a=>console.error("[InitApp] deferred startup failed:",a.message))},3e3)}catch(a){console.error("[InitApp] Error:",a)}}}};
|