@hilbras/omnihilbras 2.1.0 → 2.3.0
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 +10 -10
- package/app/.next-cli-build/build-manifest.json +3 -3
- package/app/.next-cli-build/react-loadable-manifest.json +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/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/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/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 +4 -4
- package/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/_not-found.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/api/auth/login/route.js +1 -1
- package/app/.next-cli-build/server/app/api/auth/login/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/logout/route.js +1 -1
- package/app/.next-cli-build/server/app/api/auth/logout/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js +1 -1
- package/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/oidc/start/route.js +1 -1
- package/app/.next-cli-build/server/app/api/auth/oidc/start/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/oidc/test/route.js +1 -1
- package/app/.next-cli-build/server/app/api/auth/oidc/test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/reset-password/route.js +1 -1
- package/app/.next-cli-build/server/app/api/auth/reset-password/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/saml/acs/route.js +1 -1
- package/app/.next-cli-build/server/app/api/auth/saml/acs/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/saml/metadata/route.js +1 -1
- package/app/.next-cli-build/server/app/api/auth/saml/metadata/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/saml/start/route.js +1 -1
- package/app/.next-cli-build/server/app/api/auth/saml/start/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/saml/test/route.js +1 -1
- package/app/.next-cli-build/server/app/api/auth/saml/test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/status/route.js +1 -1
- package/app/.next-cli-build/server/app/api/auth/status/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/codewhale-settings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/codewhale-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/codex-profiles/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/crush-settings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/crush-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/devin-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/forge-settings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/forge-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/grok-build-settings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/grok-build-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/hermes-profiles/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/omp-settings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/omp-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/pi-settings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/pi-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/smelt-settings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/smelt-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/combos/[id]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/combos/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/combos/presets/route.js +1 -1
- package/app/.next-cli-build/server/app/api/combos/presets/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/combos/route.js +1 -1
- package/app/.next-cli-build/server/app/api/combos/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/headroom/extras/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/headroom/proxy/[...path]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/headroom/proxy/[...path]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/headroom/restart/route.js +1 -1
- package/app/.next-cli-build/server/app/api/headroom/restart/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/headroom/start/route.js +1 -1
- package/app/.next-cli-build/server/app/api/headroom/start/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/headroom/status/route.js +1 -1
- package/app/.next-cli-build/server/app/api/headroom/status/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/headroom/stop/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/health/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/init/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/keys/[id]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/keys/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/keys/route.js +1 -1
- package/app/.next-cli-build/server/app/api/keys/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/locale/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js.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 +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/alias/route.js +1 -1
- package/app/.next-cli-build/server/app/api/models/alias/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/availability/route.js +1 -1
- package/app/.next-cli-build/server/app/api/models/availability/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/catalog-sync/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/custom/route.js +1 -1
- package/app/.next-cli-build/server/app/api/models/custom/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/disabled/route.js +1 -1
- package/app/.next-cli-build/server/app/api/models/disabled/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/route.js +1 -1
- package/app/.next-cli-build/server/app/api/models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/test/route.js +1 -1
- package/app/.next-cli-build/server/app/api/models/test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/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 +1 -1
- package/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/api-key/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/api-key/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/import-cli-proxy/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/import-cli-proxy/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/api-key/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/api-key/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/auto-import/route.js +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/oauth/xiaomi-mimo/login/start/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/login/status/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/zed/auto-import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/zed/import/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/zed/import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pricing/route.js +1 -1
- package/app/.next-cli-build/server/app/api/pricing/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/provider-nodes/route.js +1 -1
- package/app/.next-cli-build/server/app/api/provider-nodes/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js +1 -1
- package/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/models/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/overrides/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/overrides/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/test/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/client/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/client/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/kilo/free-models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/suggested-models/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/suggested-models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/test-batch/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/test-batch/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/validate/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/validate/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js +2 -2
- package/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/netlify-deploy/route.js +2 -2
- package/app/.next-cli-build/server/app/api/proxy-pools/netlify-deploy/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/route.js +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/health/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/install/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/logs/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/restart/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/start/route.js +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/start/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/stats/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/status/route.js +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/status/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/stop/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/settings/database/route.js +1 -1
- package/app/.next-cli-build/server/app/api/settings/database/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/settings/proxy-test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/settings/require-login/route.js +1 -1
- package/app/.next-cli-build/server/app/api/settings/require-login/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/settings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/shutdown/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tags/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/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 +1 -1
- package/app/.next-cli-build/server/app/api/translator/send/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/translator/translate/route.js +1 -1
- package/app/.next-cli-build/server/app/api/translator/translate/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/disable/route.js +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/disable/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/enable/route.js +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/enable/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/status/route.js +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/status/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/[connectionId]/claude-reset/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/[connectionId]/claude-reset/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/[connectionId]/codex-reset-credits/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/[connectionId]/codex-reset-credits/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/chart/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/chart/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/history/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/history/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/logs/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/logs/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/providers/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/providers/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/request-details/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/request-details/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/request-logs/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/request-logs/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/stats/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/stats/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/stream/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/stream/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/api/chat/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/api/chat/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/audio/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/embeddings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/embeddings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/images/generations/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/images/generations/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/messages/count_tokens/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/messages/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/messages/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/models/[...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.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/systemone/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/systemone/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/videos/[id]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/videos/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/videos/edits/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/videos/edits/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/videos/extensions/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/videos/extensions/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/videos/generations/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/videos/generations/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/web/fetch/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/web/fetch/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1beta/models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/version/route.js +1 -1
- package/app/.next-cli-build/server/app/api/version/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/version/shutdown/route.js +1 -1
- package/app/.next-cli-build/server/app/api/version/shutdown/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/version/update/route.js +1 -1
- package/app/.next-cli-build/server/app/api/version/update/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/callback/page.js +1 -1
- package/app/.next-cli-build/server/app/callback/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/callback/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/callback.html +1 -1
- package/app/.next-cli-build/server/app/callback.rsc +4 -4
- package/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/callback.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/callback.segments/callback/__PAGE__.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/basic-chat.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/basic-chat.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_full.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/cli-tools.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/cli-tools.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_full.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/combos.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/combos.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/combos.segments/_full.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/combos.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/endpoint.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/endpoint.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_full.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web/__PAGE__.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_full.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/mitm.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/mitm.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/mitm.segments/_full.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/mitm.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/profile.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/profile.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/profile.segments/_full.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/profile.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/providers/new.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/providers/new.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_full.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/providers.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/providers.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/providers.segments/_full.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/providers.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/pxpipe.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/pxpipe.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard/pxpipe/__PAGE__.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_full.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/quota.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/quota.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/quota.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/quota.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing/page.js +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/skills.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/skills.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills/__PAGE__.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/skills.segments/_full.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/skills.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/token-saver.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/token-saver.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver/__PAGE__.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_full.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/translator.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/translator.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/translator.segments/_full.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/translator.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/usage.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/usage.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/usage.segments/_full.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/usage.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard.html +1 -1
- package/app/.next-cli-build/server/app/dashboard.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard.segments/_full.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/favicon.ico/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/index.html +1 -1
- package/app/.next-cli-build/server/app/index.rsc +4 -4
- package/app/.next-cli-build/server/app/index.segments/__PAGE__.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/index.segments/_full.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/index.segments/_tree.segment.rsc +1 -1
- 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 +4 -4
- package/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/landing.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/landing.segments/landing/__PAGE__.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/login/page.js +1 -1
- package/app/.next-cli-build/server/app/login/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/login/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/login.html +1 -1
- package/app/.next-cli-build/server/app/login.rsc +4 -4
- package/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/login.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/login.segments/login/__PAGE__.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/manifest.webmanifest/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/page.js +1 -1
- package/app/.next-cli-build/server/app/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app-paths-manifest.json +10 -10
- package/app/.next-cli-build/server/chunks/1019.js +1 -1
- package/app/.next-cli-build/server/chunks/1998.js +1 -1
- package/app/.next-cli-build/server/chunks/2132.js +1 -1
- package/app/.next-cli-build/server/chunks/3770.js +1 -1
- package/app/.next-cli-build/server/chunks/3799.js +1 -1
- package/app/.next-cli-build/server/chunks/4043.js +1 -1
- package/app/.next-cli-build/server/chunks/4049.js +1 -1
- package/app/.next-cli-build/server/chunks/412.js +1 -1
- package/app/.next-cli-build/server/chunks/4199.js +1 -1
- package/app/.next-cli-build/server/chunks/436.js +1 -1
- package/app/.next-cli-build/server/chunks/4663.js +1 -1
- package/app/.next-cli-build/server/chunks/4785.js +25 -0
- package/app/.next-cli-build/server/chunks/5245.js +1 -1
- package/app/.next-cli-build/server/chunks/5615.js +3 -3
- package/app/.next-cli-build/server/chunks/5919.js +1 -1
- package/app/.next-cli-build/server/chunks/7211.js +1 -1
- package/app/.next-cli-build/server/chunks/7525.js +1 -1
- package/app/.next-cli-build/server/chunks/7557.js +1 -1
- package/app/.next-cli-build/server/chunks/7736.js +1 -0
- package/app/.next-cli-build/server/chunks/7811.js +1 -1
- package/app/.next-cli-build/server/chunks/7828.js +1 -1
- package/app/.next-cli-build/server/chunks/827.js +1 -1
- package/app/.next-cli-build/server/chunks/8416.js +1 -1
- package/app/.next-cli-build/server/chunks/8895.js +1 -1
- package/app/.next-cli-build/server/chunks/915.js +1 -1
- package/app/.next-cli-build/server/chunks/9609.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/static/chunks/5497-2e9a32814b3c5456.js +7 -0
- package/app/.next-cli-build/static/chunks/{85-e9224bc05bb529c8.js → 85-5559e19d4224f416.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/[id]/{page-e0e9fb7e9f122644.js → page-4e274865de44f799.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/quota/page-1d6c37a1e6f380be.js +1 -0
- package/app/.next-cli-build/static/chunks/app/(dashboard)/{layout-20e79861e79ed846.js → layout-f29206280cf7fde5.js} +1 -1
- package/app/.next-cli-build/static/chunks/{webpack-b6470f9f7f52f8e5.js → webpack-2f7145048105cbc9.js} +1 -1
- package/app/cli/.build-home/.omnihilbras/db/data.sqlite +0 -0
- package/app/package.json +1 -1
- package/package.json +1 -1
- package/app/.next-cli-build/server/chunks/5036.js +0 -1
- package/app/.next-cli-build/server/chunks/9100.js +0 -21
- package/app/.next-cli-build/static/chunks/5497-dea83eee58687b78.js +0 -7
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/quota/page-e925ebcef32004ab.js +0 -1
- /package/app/.next-cli-build/static/{et6N1f81x-mr8bhwUnwYo → _r8FbwjptBrzz3D20y29J}/_buildManifest.js +0 -0
- /package/app/.next-cli-build/static/{et6N1f81x-mr8bhwUnwYo → _r8FbwjptBrzz3D20y29J}/_ssgManifest.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";exports.id=4199,exports.ids=[4199],exports.modules={16655:(a,b,c)=>{c.d(b,{oF:()=>d.oF,tm:()=>d.tm,vF:()=>d.vF});var d=c(83192)},19225:(a,b,c)=>{a.exports=c(44870)},27547:(a,b,c)=>{c.r(b),c.d(b,{GET:()=>J,OPTIONS:()=>I,buildModelsList:()=>H});var d=c(81329),e=c(40615),f=c(89718),g=c(16655),h=c(27811),i=c(29679),j=c(52007),k=c(53225),l=c(39609),m=c(75924),n=c(8521);let o=new Map;async function p(a,b){let c=new AbortController,d=setTimeout(()=>c.abort(),1e4);try{let d=await (0,l.proxyAwareFetch)("https://api.githubcopilot.com/models",{method:"GET",headers:{Authorization:`Bearer ${a}`,"Content-Type":"application/json","Copilot-Integration-Id":"vscode-chat","editor-version":`vscode/${m.x0.VSCODE_VERSION}`,"editor-plugin-version":`copilot-chat/${m.x0.COPILOT_CHAT_VERSION}`,"user-agent":m.x0.USER_AGENT,"x-github-api-version":m.x0.API_VERSION},cache:"no-store",signal:b||c.signal});if(!d.ok){let a=Error(`Copilot /models returned ${d.status}`);throw a.status=d.status,a}let e=await d.json();return Array.isArray(e?.data)?e.data:[]}finally{clearTimeout(d)}}async function q(a,b={}){let c,d=a?.providerSpecificData?.copilotToken||a?.accessToken;if(!d)return b.log?.debug?.("COPILOT_MODELS","No copilotToken/accessToken; skipping live fetch"),null;let e=a?.providerSpecificData?.copilotToken||a?.accessToken||"copilot-anonymous",f=Date.now();if(!b.forceRefresh){let a=o.get(e);if(a&&a.expiresAt>f)return{models:a.models}}try{c=await p(d,b.signal)}catch(d){if(!d||401!==d.status&&403!==d.status||!a.accessToken)return b.log?.warn?.("COPILOT_MODELS",`Live model fetch failed: ${d?.message||d}`),null;{b.log?.info?.("COPILOT_MODELS",`Got ${d.status}; refreshing Copilot token`);let e=await (0,n.jR)(a.accessToken);if(!e?.token)return b.log?.warn?.("COPILOT_MODELS","Token refresh did not return a token"),null;if("function"==typeof b.onCredentialsRefreshed)try{await b.onCredentialsRefreshed({copilotToken:e.token,copilotTokenExpiresAt:e.expiresAt})}catch(a){b.log?.warn?.("COPILOT_MODELS",`onCredentialsRefreshed failed: ${a?.message||a}`)}try{c=await p(e.token,b.signal)}catch(a){return b.log?.warn?.("COPILOT_MODELS",`Retry after refresh failed: ${a?.message||a}`),null}}}let g=function(a){let b=new Set,c=[];for(let d of a){if(!d||"object"!=typeof d||d.capabilities?.type!=="chat"||d.policy&&"enabled"!==d.policy.state)continue;let a=d.id;!a||b.has(a)||(b.add(a),c.push({id:a,name:d.name||a}))}return c}(c);return g.length?(o.set(e,{expiresAt:f+3e5,models:g}),{models:g}):null}var r=c(28948),s=c(38709),t=c(82578),u=c(49804),v=c(67828),w=c(39326),x=c(24);async function y(a,b){let c=await (0,k.EV)({provider:b,accessToken:a.accessToken,apiKey:a.apiKey,refreshToken:a.refreshToken,email:a.email,displayName:a.displayName,providerSpecificData:a.providerSpecificData||{}}),d=(0,k.So)(c);return d.length?{models:d.map(a=>({id:a.id,name:a.name}))}:null}let z={...Object.fromEntries(Object.entries(d.Xg).map(([a,b])=>[b,a])),...e.js};function A(a){let b=a.indexOf("/");if(b<=0)return null;let c=a.slice(0,b);return(0,x.getCapabilitiesForModel)(z[c]||c,a.slice(b+1))}let B={kiro:async a=>{let b=await (0,i.cW)({accessToken:a.accessToken,refreshToken:a.refreshToken,providerSpecificData:a.providerSpecificData||{}},{log:console});return b?.models?.length?{models:b.models}:null},qoder:async a=>y(a,"qoder"),"qoder-cn":async a=>y(a,"qoder-cn"),kimchi:async a=>{let b=await (0,j.av)({accessToken:a.accessToken,apiKey:a.apiKey,providerSpecificData:a.providerSpecificData||{}},{log:console});return b?.models?.length?{models:b.models}:null},github:async a=>{let b=await q({accessToken:a.accessToken,refreshToken:a.refreshToken,providerSpecificData:a.providerSpecificData||{}},{log:console,onCredentialsRefreshed:async b=>{await (0,v.vN)(a.id,{copilotToken:b.copilotToken,copilotTokenExpiresAt:b.copilotTokenExpiresAt,existingProviderSpecificData:a.providerSpecificData||{}})}});return b?.models?.length?{models:b.models}:null},clinepass:async a=>{let b=await (0,r.P)({accessToken:a.accessToken,apiKey:a.apiKey});return b?.models?.length?{models:b.models}:null},cline:async a=>{let b=await (0,r.M)({accessToken:a.accessToken,apiKey:a.apiKey});return b?.models?.length?{models:b.models}:null},"grok-cli":async a=>{let b=await (0,w.B)(a.providerSpecificData||{}),c=await (0,s.M)({...a,connectionId:a.id},{log:console,proxyOptions:{connectionProxyEnabled:!0===b.connectionProxyEnabled,connectionProxyUrl:b.connectionProxyUrl||"",connectionNoProxy:b.connectionNoProxy||"",vercelRelayUrl:b.vercelRelayUrl||"",strictProxy:!0===b.strictProxy},onCredentialsRefreshed:async b=>{await (0,v.vN)(a.id,{...b,existingProviderSpecificData:a.providerSpecificData||{}})}});return c?.models?.length?{models:c.models}:null},cursor:async a=>{let b=await (0,t.FD)({accessToken:a.accessToken,providerSpecificData:a.providerSpecificData||{}},{log:console});return b?.models?.length?{models:b.models}:null},zed:async a=>{let b=await (0,u.w9)({accessToken:a.accessToken,providerSpecificData:a.providerSpecificData||{}});return b?.models?.length?{models:b.models.filter(a=>!a.isDisabled).map(a=>({id:a.id,name:a.name,capabilities:a.supportsTools?{tools:!0}:void 0}))}:null}},C="x-9r-internal-models-fetch",D={image:"image",tts:"tts",embedding:"embedding",stt:"stt",imageToText:"imageToText",video:"video"};function E(a){let b=a?.kind||a?.type;return b&&D[b]||"llm"}async function F(a){if(!a?.apiKey)return[];let b="string"==typeof a?.providerSpecificData?.baseUrl?a.providerSpecificData.baseUrl.trim().replace(/\/$/,""):"";if(!b)return[];let c=b;(0,e.gb)(a.provider)&&c.endsWith("/messages")&&(c=c.slice(0,-9));let d=`${c}/models`,f={"Content-Type":"application/json"};if((0,e.mq)(a.provider))f.Authorization=`Bearer ${a.apiKey}`;else{if(!(0,e.gb)(a.provider))return[];f["x-api-key"]=a.apiKey,f["anthropic-version"]="2023-06-01",f.Authorization=`Bearer ${a.apiKey}`}try{var g;let a=new AbortController,b=setTimeout(()=>a.abort(),5e3),c=await fetch(d,{method:"GET",headers:{...f,[C]:"1"},cache:"no-store",signal:a.signal});if(clearTimeout(b),!c.ok)return[];let e=(g=await c.json(),Array.isArray(g)?g:g?.data||g?.models||g?.results||[]);return Array.from(new Set(e.map(a=>a?.id||a?.name||a?.model).filter(a=>"string"==typeof a&&""!==a.trim())))}catch{return[]}}function G(a,b){let c=e.AI_PROVIDERS[a],d=Array.isArray(c?.serviceKinds)&&c.serviceKinds.length>0?c.serviceKinds:["llm"];return b.some(a=>d.includes(a))}async function H(a,b={}){let c=!0===b.skipDynamicFetch,h=[];try{h=(h=await (0,f.getProviderConnections)()).filter(a=>!1!==a.isActive)}catch(a){console.log("Could not fetch providers, returning all models")}let i=[];try{i=await (0,f.Uv)()}catch(a){console.log("Could not fetch combos")}let j=[];try{j=await (0,f.uv)()}catch(a){console.log("Could not fetch custom models")}let k={};try{k=await (0,f.OM)()}catch(a){console.log("Could not fetch model aliases")}let l={};try{l=await (0,g.vF)()}catch(a){console.log("Could not fetch disabled models")}let m=(a,b)=>Array.isArray(l[a])&&l[a].includes(b),n=new Map;for(let a of h)n.has(a.provider)||n.set(a.provider,a);for(let[a,b]of Object.entries(e.IS||{}))b?.noAuth&&!n.has(a)&&n.set(a,{id:"noauth",provider:a,isActive:!0});let o=[],p=new Map(i.filter(a=>"string"==typeof a?.name).map(a=>[a.name,a])),q=Object.fromEntries(i.map(a=>[a.name,a.models]));for(let b of i){if(!function(a,b){let c=a?.kind||"llm";return b.includes(c)}(b,a))continue;let c={id:b.name,object:"model",owned_by:"combo"};if("webSearch"===b.kind||"webFetch"===b.kind)c.kind=b.kind;else{let a=(0,x.aggregateComboCapabilities)(b.models,q,A);a&&(c.capabilities=a);let{contextWindow:d,maxOutput:e}=function a(b,c,d=new Set){let e="string"==typeof b?.name?b.name:null;if(e){if(d.has(e))return{contextWindow:void 0,maxOutput:void 0};d.add(e)}let f=1/0,g=1/0;try{for(let e of Array.isArray(b?.models)?b.models:[]){if("string"!=typeof e)continue;if(0>=e.indexOf("/")){let b=c.get(e);if(b){let e=a(b,c,d);Number.isFinite(e.contextWindow)&&(f=Math.min(f,e.contextWindow)),Number.isFinite(e.maxOutput)&&(g=Math.min(g,e.maxOutput));continue}}let b=A(e)||(0,x.getCapabilitiesForModel)(null,e);Number.isFinite(b?.contextWindow)&&(f=Math.min(f,b.contextWindow)),Number.isFinite(b?.maxOutput)&&(g=Math.min(g,b.maxOutput))}}finally{e&&d.delete(e)}return{contextWindow:Number.isFinite(f)?f:void 0,maxOutput:Number.isFinite(g)?g:void 0}}(b,p);Number.isFinite(d)&&(c.context_length=d),Number.isFinite(e)&&(c.max_completion_tokens=e)}o.push(c)}if(0===h.length){for(let[b,c]of Object.entries(d.vq)){let d=z[b]||b;if(G(d,a))for(let e of c)a.includes(E(e))&&(m(b,e.id)||m(d,e.id)||o.push({id:`${b}/${e.id}`,object:"model",owned_by:b,capabilities:(0,x.getCapabilitiesForModel)(b,e.id)}))}for(let b of j){if(!b?.id||b.type&&"llm"!==b.type||!a.includes("llm"))continue;let c=b.providerAlias;if(!c)continue;let d=String(b.id).trim();d&&o.push({id:`${c}/${d}`,object:"model",owned_by:c})}}else for(let[b,f]of n.entries()){if(!G(b,a))continue;let g=d.Xg[b]||b,h=(f?.providerSpecificData?.prefix||(0,e.wG)(b)||g).trim(),i=d.vq[g]||[],l=f?.providerSpecificData?.enabledModels,n=Array.isArray(l)&&l.length>0,p=(0,e.mq)(b)||(0,e.gb)(b),q=new Map(i.map(a=>[a.id,E(a)])),r=new Map,s=new Map,t=n?Array.from(new Set(l.filter(a=>"string"==typeof a&&""!==a.trim()))):i.map(a=>a.id);p&&0===t.length&&!c&&(t=await F(f));let u=B[b];if(u&&!n)try{let a=await u(f);a?.models?.length&&(t=a.models.map(a=>a.id),r=new Map(a.models.filter(a=>a?.id).map(a=>[a.id,E(a)])),s=new Map(a.models.filter(a=>a?.id&&a.capabilities).map(a=>[a.id,a.capabilities])))}catch(a){console.log(`Live model fetch failed for ${b}: ${a?.message||a}`)}let v=t.map(a=>a.startsWith(`${h}/`)?a.slice(h.length+1):a.startsWith(`${g}/`)?a.slice(g.length+1):a.startsWith(`${b}/`)?a.slice(b.length+1):a).filter(a=>"string"==typeof a&&""!==a.trim()),w=new Map;for(let c of Array.from(new Set([...v,...j.filter(c=>{if(!c?.id)return!1;let e=(0,d.CP)(c)||"llm";if(!a.includes(e)&&!("imageToText"===e&&a.includes("llm")))return!1;let f=c.providerAlias;return f===g||f===h||f===b}).map(a=>{let b=String(a.id).trim();return b&&w.set(b,(0,d.CP)(a)||"llm"),b}).filter(a=>""!==a),...Object.values(k||{}).filter(a=>"string"==typeof a&&!!a.includes("/")&&(a.startsWith(`${h}/`)||a.startsWith(`${g}/`)||a.startsWith(`${b}/`))).map(a=>a.startsWith(`${h}/`)?a.slice(h.length+1):a.startsWith(`${g}/`)?a.slice(g.length+1):a.startsWith(`${b}/`)?a.slice(b.length+1):a).filter(a=>"string"==typeof a&&""!==a.trim())]))){let d=w.get(c),e=r.get(c),f=d||e||q.get(c)||function(a){let b=String(a).toLowerCase();return/embed/.test(b)?"embedding":/tts|speech|audio|voice/.test(b)?"tts":/image|imagen|dall-?e|flux|sdxl|sd-|stable-diffusion/.test(b)?"image":"llm"}(c),i="imageToText"===f&&a.includes("llm");if(!a.includes(f)&&!i||m(h,c)||m(g,c)||m(b,c))continue;let j={id:`${h}/${c}`,object:"model",owned_by:h},k=s.get(c),l=(0,x.capabilitiesFromServiceKind)(d||e),n=k||l||("llm"===f?(0,x.getCapabilitiesForModel)(b,c):null);if(n&&(j.capabilities=n),"llm"===f||i){let a=n?.contextWindow,d=n?.maxOutput;if(!Number.isFinite(a)||!Number.isFinite(d)){let e=(0,x.getCapabilitiesForModel)(b,c);Number.isFinite(a)||(a=e.contextWindow),Number.isFinite(d)||(d=e.maxOutput)}Number.isFinite(a)&&(j.context_length=a),Number.isFinite(d)&&(j.max_completion_tokens=d)}o.push(j)}let y=e.AI_PROVIDERS[b];a.includes("webSearch")&&y?.searchConfig&&o.push({id:`${h}/search`,object:"model",kind:"webSearch",owned_by:h}),a.includes("webFetch")&&y?.fetchConfig&&o.push({id:`${h}/fetch`,object:"model",kind:"webFetch",owned_by:h})}let r=[],s=new Set;for(let a of o)!a?.id||s.has(a.id)||(s.add(a.id),r.push(a));return r}async function I(){return new Response(null,{headers:{"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET, OPTIONS","Access-Control-Allow-Headers":"*"}})}async function J(a){try{let b=a?.headers?.get(C)==="1",c=await (0,h.j)(await (0,h.TM)(a),await H(["llm"],{skipDynamicFetch:b}));return Response.json({object:"list",data:c},{headers:{"Access-Control-Allow-Origin":"*"}})}catch(a){return console.log("Error fetching models:",a),Response.json({error:{message:a.message,type:"server_error"}},{status:500})}}},40669:(a,b,c)=>{c.d(b,{Xh:()=>h,g2:()=>g,js:()=>j});var d=c(4043);let e={el:"elevenlabs",jina:"jina-ai","jina-ai":"jina-ai",polly:"aws-polly","aws-polly":"aws-polly"};for(let a of d.default)for(let b of(e[a.id]=a.id,a.alias&&(e[a.alias]=a.id),a.aliases||[]))e[b]=a.id;let f={"grok-build":"gcli/grok-build"};function g(a){return e[a]||a}function h(a){if(!a)return{provider:null,model:null,isAlias:!1,providerAlias:null};if(a.includes("/")){let b=a.indexOf("/"),c=a.slice(0,b),d=a.slice(b+1);return{provider:g(c),model:d,isAlias:!1,providerAlias:c}}return{provider:null,model:a,isAlias:!0,providerAlias:null}}function i(a,b){if(!b)return null;let c=b[a];if(!c)return null;if("string"==typeof c&&c.includes("/")){let a=c.indexOf("/");return{provider:g(c.slice(0,a)),model:c.slice(a+1)}}return"object"==typeof c&&c.provider&&c.model?{provider:g(c.provider),model:c.model}:null}async function j(a,b){let c=h(a);if(!c.isAlias)return{provider:c.provider,model:c.model};let d="function"==typeof b?await b():b,e=i(c.model,d)||i(c.model,f);return e||{provider:function(a){if(!a)return"openai";let b=a.toLowerCase();return k.find(([a])=>a.test(b))?.[1]||"openai"}(c.model),model:c.model}}let k=[[/^codex-auto-review$/,"codex"],[/^gpt-[56]\./,"codex"],[/^gpt-6-/,"codex"],[/^gpt-daybreak-/,"codex"],[/^gpt-reserve/,"codex"],[/^claude-/,"anthropic"],[/^(us|eu|ap|global)\.(anthropic|meta|amazon|mistral|xai)\./,"bedrock"],[/^gemini-/,"gemini"],[/^gpt-/,"openai"],[/^o[134]/,"openai"],[/^deepseek-/,"openrouter"]]},92280:(a,b,c)=>{Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(28208),e=c(47617),f=c(62018);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}}};
|
|
1
|
+
"use strict";exports.id=4199,exports.ids=[4199],exports.modules={16655:(a,b,c)=>{c.d(b,{oF:()=>d.oF,tm:()=>d.tm,vF:()=>d.vF});var d=c(47765)},19225:(a,b,c)=>{a.exports=c(44870)},27547:(a,b,c)=>{c.r(b),c.d(b,{GET:()=>J,OPTIONS:()=>I,buildModelsList:()=>H});var d=c(81329),e=c(40615),f=c(89718),g=c(16655),h=c(27811),i=c(29679),j=c(52007),k=c(53225),l=c(39609),m=c(75924),n=c(8521);let o=new Map;async function p(a,b){let c=new AbortController,d=setTimeout(()=>c.abort(),1e4);try{let d=await (0,l.proxyAwareFetch)("https://api.githubcopilot.com/models",{method:"GET",headers:{Authorization:`Bearer ${a}`,"Content-Type":"application/json","Copilot-Integration-Id":"vscode-chat","editor-version":`vscode/${m.x0.VSCODE_VERSION}`,"editor-plugin-version":`copilot-chat/${m.x0.COPILOT_CHAT_VERSION}`,"user-agent":m.x0.USER_AGENT,"x-github-api-version":m.x0.API_VERSION},cache:"no-store",signal:b||c.signal});if(!d.ok){let a=Error(`Copilot /models returned ${d.status}`);throw a.status=d.status,a}let e=await d.json();return Array.isArray(e?.data)?e.data:[]}finally{clearTimeout(d)}}async function q(a,b={}){let c,d=a?.providerSpecificData?.copilotToken||a?.accessToken;if(!d)return b.log?.debug?.("COPILOT_MODELS","No copilotToken/accessToken; skipping live fetch"),null;let e=a?.providerSpecificData?.copilotToken||a?.accessToken||"copilot-anonymous",f=Date.now();if(!b.forceRefresh){let a=o.get(e);if(a&&a.expiresAt>f)return{models:a.models}}try{c=await p(d,b.signal)}catch(d){if(!d||401!==d.status&&403!==d.status||!a.accessToken)return b.log?.warn?.("COPILOT_MODELS",`Live model fetch failed: ${d?.message||d}`),null;{b.log?.info?.("COPILOT_MODELS",`Got ${d.status}; refreshing Copilot token`);let e=await (0,n.jR)(a.accessToken);if(!e?.token)return b.log?.warn?.("COPILOT_MODELS","Token refresh did not return a token"),null;if("function"==typeof b.onCredentialsRefreshed)try{await b.onCredentialsRefreshed({copilotToken:e.token,copilotTokenExpiresAt:e.expiresAt})}catch(a){b.log?.warn?.("COPILOT_MODELS",`onCredentialsRefreshed failed: ${a?.message||a}`)}try{c=await p(e.token,b.signal)}catch(a){return b.log?.warn?.("COPILOT_MODELS",`Retry after refresh failed: ${a?.message||a}`),null}}}let g=function(a){let b=new Set,c=[];for(let d of a){if(!d||"object"!=typeof d||d.capabilities?.type!=="chat"||d.policy&&"enabled"!==d.policy.state)continue;let a=d.id;!a||b.has(a)||(b.add(a),c.push({id:a,name:d.name||a}))}return c}(c);return g.length?(o.set(e,{expiresAt:f+3e5,models:g}),{models:g}):null}var r=c(28948),s=c(38709),t=c(82578),u=c(49804),v=c(67828),w=c(39326),x=c(24);async function y(a,b){let c=await (0,k.EV)({provider:b,accessToken:a.accessToken,apiKey:a.apiKey,refreshToken:a.refreshToken,email:a.email,displayName:a.displayName,providerSpecificData:a.providerSpecificData||{}}),d=(0,k.So)(c);return d.length?{models:d.map(a=>({id:a.id,name:a.name}))}:null}let z={...Object.fromEntries(Object.entries(d.Xg).map(([a,b])=>[b,a])),...e.js};function A(a){let b=a.indexOf("/");if(b<=0)return null;let c=a.slice(0,b);return(0,x.getCapabilitiesForModel)(z[c]||c,a.slice(b+1))}let B={kiro:async a=>{let b=await (0,i.cW)({accessToken:a.accessToken,refreshToken:a.refreshToken,providerSpecificData:a.providerSpecificData||{}},{log:console});return b?.models?.length?{models:b.models}:null},qoder:async a=>y(a,"qoder"),"qoder-cn":async a=>y(a,"qoder-cn"),kimchi:async a=>{let b=await (0,j.av)({accessToken:a.accessToken,apiKey:a.apiKey,providerSpecificData:a.providerSpecificData||{}},{log:console});return b?.models?.length?{models:b.models}:null},github:async a=>{let b=await q({accessToken:a.accessToken,refreshToken:a.refreshToken,providerSpecificData:a.providerSpecificData||{}},{log:console,onCredentialsRefreshed:async b=>{await (0,v.vN)(a.id,{copilotToken:b.copilotToken,copilotTokenExpiresAt:b.copilotTokenExpiresAt,existingProviderSpecificData:a.providerSpecificData||{}})}});return b?.models?.length?{models:b.models}:null},clinepass:async a=>{let b=await (0,r.P)({accessToken:a.accessToken,apiKey:a.apiKey});return b?.models?.length?{models:b.models}:null},cline:async a=>{let b=await (0,r.M)({accessToken:a.accessToken,apiKey:a.apiKey});return b?.models?.length?{models:b.models}:null},"grok-cli":async a=>{let b=await (0,w.B)(a.providerSpecificData||{}),c=await (0,s.M)({...a,connectionId:a.id},{log:console,proxyOptions:{connectionProxyEnabled:!0===b.connectionProxyEnabled,connectionProxyUrl:b.connectionProxyUrl||"",connectionNoProxy:b.connectionNoProxy||"",vercelRelayUrl:b.vercelRelayUrl||"",strictProxy:!0===b.strictProxy},onCredentialsRefreshed:async b=>{await (0,v.vN)(a.id,{...b,existingProviderSpecificData:a.providerSpecificData||{}})}});return c?.models?.length?{models:c.models}:null},cursor:async a=>{let b=await (0,t.FD)({accessToken:a.accessToken,providerSpecificData:a.providerSpecificData||{}},{log:console});return b?.models?.length?{models:b.models}:null},zed:async a=>{let b=await (0,u.w9)({accessToken:a.accessToken,providerSpecificData:a.providerSpecificData||{}});return b?.models?.length?{models:b.models.filter(a=>!a.isDisabled).map(a=>({id:a.id,name:a.name,capabilities:a.supportsTools?{tools:!0}:void 0}))}:null}},C="x-9r-internal-models-fetch",D={image:"image",tts:"tts",embedding:"embedding",stt:"stt",imageToText:"imageToText",video:"video"};function E(a){let b=a?.kind||a?.type;return b&&D[b]||"llm"}async function F(a){if(!a?.apiKey)return[];let b="string"==typeof a?.providerSpecificData?.baseUrl?a.providerSpecificData.baseUrl.trim().replace(/\/$/,""):"";if(!b)return[];let c=b;(0,e.gb)(a.provider)&&c.endsWith("/messages")&&(c=c.slice(0,-9));let d=`${c}/models`,f={"Content-Type":"application/json"};if((0,e.mq)(a.provider))f.Authorization=`Bearer ${a.apiKey}`;else{if(!(0,e.gb)(a.provider))return[];f["x-api-key"]=a.apiKey,f["anthropic-version"]="2023-06-01",f.Authorization=`Bearer ${a.apiKey}`}try{var g;let a=new AbortController,b=setTimeout(()=>a.abort(),5e3),c=await fetch(d,{method:"GET",headers:{...f,[C]:"1"},cache:"no-store",signal:a.signal});if(clearTimeout(b),!c.ok)return[];let e=(g=await c.json(),Array.isArray(g)?g:g?.data||g?.models||g?.results||[]);return Array.from(new Set(e.map(a=>a?.id||a?.name||a?.model).filter(a=>"string"==typeof a&&""!==a.trim())))}catch{return[]}}function G(a,b){let c=e.AI_PROVIDERS[a],d=Array.isArray(c?.serviceKinds)&&c.serviceKinds.length>0?c.serviceKinds:["llm"];return b.some(a=>d.includes(a))}async function H(a,b={}){let c=!0===b.skipDynamicFetch,h=[];try{h=(h=await (0,f.getProviderConnections)()).filter(a=>!1!==a.isActive)}catch(a){console.log("Could not fetch providers, returning all models")}let i=[];try{i=await (0,f.Uv)()}catch(a){console.log("Could not fetch combos")}let j=[];try{j=await (0,f.uv)()}catch(a){console.log("Could not fetch custom models")}let k={};try{k=await (0,f.OM)()}catch(a){console.log("Could not fetch model aliases")}let l={};try{l=await (0,g.vF)()}catch(a){console.log("Could not fetch disabled models")}let m=(a,b)=>Array.isArray(l[a])&&l[a].includes(b),n=new Map;for(let a of h)n.has(a.provider)||n.set(a.provider,a);for(let[a,b]of Object.entries(e.IS||{}))b?.noAuth&&!n.has(a)&&n.set(a,{id:"noauth",provider:a,isActive:!0});let o=[],p=new Map(i.filter(a=>"string"==typeof a?.name).map(a=>[a.name,a])),q=Object.fromEntries(i.map(a=>[a.name,a.models]));for(let b of i){if(!function(a,b){let c=a?.kind||"llm";return b.includes(c)}(b,a))continue;let c={id:b.name,object:"model",owned_by:"combo"};if("webSearch"===b.kind||"webFetch"===b.kind)c.kind=b.kind;else{let a=(0,x.aggregateComboCapabilities)(b.models,q,A);a&&(c.capabilities=a);let{contextWindow:d,maxOutput:e}=function a(b,c,d=new Set){let e="string"==typeof b?.name?b.name:null;if(e){if(d.has(e))return{contextWindow:void 0,maxOutput:void 0};d.add(e)}let f=1/0,g=1/0;try{for(let e of Array.isArray(b?.models)?b.models:[]){if("string"!=typeof e)continue;if(0>=e.indexOf("/")){let b=c.get(e);if(b){let e=a(b,c,d);Number.isFinite(e.contextWindow)&&(f=Math.min(f,e.contextWindow)),Number.isFinite(e.maxOutput)&&(g=Math.min(g,e.maxOutput));continue}}let b=A(e)||(0,x.getCapabilitiesForModel)(null,e);Number.isFinite(b?.contextWindow)&&(f=Math.min(f,b.contextWindow)),Number.isFinite(b?.maxOutput)&&(g=Math.min(g,b.maxOutput))}}finally{e&&d.delete(e)}return{contextWindow:Number.isFinite(f)?f:void 0,maxOutput:Number.isFinite(g)?g:void 0}}(b,p);Number.isFinite(d)&&(c.context_length=d),Number.isFinite(e)&&(c.max_completion_tokens=e)}o.push(c)}if(0===h.length){for(let[b,c]of Object.entries(d.vq)){let d=z[b]||b;if(G(d,a))for(let e of c)a.includes(E(e))&&(m(b,e.id)||m(d,e.id)||o.push({id:`${b}/${e.id}`,object:"model",owned_by:b,capabilities:(0,x.getCapabilitiesForModel)(b,e.id)}))}for(let b of j){if(!b?.id||b.type&&"llm"!==b.type||!a.includes("llm"))continue;let c=b.providerAlias;if(!c)continue;let d=String(b.id).trim();d&&o.push({id:`${c}/${d}`,object:"model",owned_by:c})}}else for(let[b,f]of n.entries()){if(!G(b,a))continue;let g=d.Xg[b]||b,h=(f?.providerSpecificData?.prefix||(0,e.wG)(b)||g).trim(),i=d.vq[g]||[],l=f?.providerSpecificData?.enabledModels,n=Array.isArray(l)&&l.length>0,p=(0,e.mq)(b)||(0,e.gb)(b),q=new Map(i.map(a=>[a.id,E(a)])),r=new Map,s=new Map,t=n?Array.from(new Set(l.filter(a=>"string"==typeof a&&""!==a.trim()))):i.map(a=>a.id);p&&0===t.length&&!c&&(t=await F(f));let u=B[b];if(u&&!n)try{let a=await u(f);a?.models?.length&&(t=a.models.map(a=>a.id),r=new Map(a.models.filter(a=>a?.id).map(a=>[a.id,E(a)])),s=new Map(a.models.filter(a=>a?.id&&a.capabilities).map(a=>[a.id,a.capabilities])))}catch(a){console.log(`Live model fetch failed for ${b}: ${a?.message||a}`)}let v=t.map(a=>a.startsWith(`${h}/`)?a.slice(h.length+1):a.startsWith(`${g}/`)?a.slice(g.length+1):a.startsWith(`${b}/`)?a.slice(b.length+1):a).filter(a=>"string"==typeof a&&""!==a.trim()),w=new Map;for(let c of Array.from(new Set([...v,...j.filter(c=>{if(!c?.id)return!1;let e=(0,d.CP)(c)||"llm";if(!a.includes(e)&&!("imageToText"===e&&a.includes("llm")))return!1;let f=c.providerAlias;return f===g||f===h||f===b}).map(a=>{let b=String(a.id).trim();return b&&w.set(b,(0,d.CP)(a)||"llm"),b}).filter(a=>""!==a),...Object.values(k||{}).filter(a=>"string"==typeof a&&!!a.includes("/")&&(a.startsWith(`${h}/`)||a.startsWith(`${g}/`)||a.startsWith(`${b}/`))).map(a=>a.startsWith(`${h}/`)?a.slice(h.length+1):a.startsWith(`${g}/`)?a.slice(g.length+1):a.startsWith(`${b}/`)?a.slice(b.length+1):a).filter(a=>"string"==typeof a&&""!==a.trim())]))){let d=w.get(c),e=r.get(c),f=d||e||q.get(c)||function(a){let b=String(a).toLowerCase();return/embed/.test(b)?"embedding":/tts|speech|audio|voice/.test(b)?"tts":/image|imagen|dall-?e|flux|sdxl|sd-|stable-diffusion/.test(b)?"image":"llm"}(c),i="imageToText"===f&&a.includes("llm");if(!a.includes(f)&&!i||m(h,c)||m(g,c)||m(b,c))continue;let j={id:`${h}/${c}`,object:"model",owned_by:h},k=s.get(c),l=(0,x.capabilitiesFromServiceKind)(d||e),n=k||l||("llm"===f?(0,x.getCapabilitiesForModel)(b,c):null);if(n&&(j.capabilities=n),"llm"===f||i){let a=n?.contextWindow,d=n?.maxOutput;if(!Number.isFinite(a)||!Number.isFinite(d)){let e=(0,x.getCapabilitiesForModel)(b,c);Number.isFinite(a)||(a=e.contextWindow),Number.isFinite(d)||(d=e.maxOutput)}Number.isFinite(a)&&(j.context_length=a),Number.isFinite(d)&&(j.max_completion_tokens=d)}o.push(j)}let y=e.AI_PROVIDERS[b];a.includes("webSearch")&&y?.searchConfig&&o.push({id:`${h}/search`,object:"model",kind:"webSearch",owned_by:h}),a.includes("webFetch")&&y?.fetchConfig&&o.push({id:`${h}/fetch`,object:"model",kind:"webFetch",owned_by:h})}let r=[],s=new Set;for(let a of o)!a?.id||s.has(a.id)||(s.add(a.id),r.push(a));return r}async function I(){return new Response(null,{headers:{"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET, OPTIONS","Access-Control-Allow-Headers":"*"}})}async function J(a){try{let b=a?.headers?.get(C)==="1",c=await (0,h.j)(await (0,h.TM)(a),await H(["llm"],{skipDynamicFetch:b}));return Response.json({object:"list",data:c},{headers:{"Access-Control-Allow-Origin":"*"}})}catch(a){return console.log("Error fetching models:",a),Response.json({error:{message:a.message,type:"server_error"}},{status:500})}}},40669:(a,b,c)=>{c.d(b,{Xh:()=>h,g2:()=>g,js:()=>j});var d=c(4043);let e={el:"elevenlabs",jina:"jina-ai","jina-ai":"jina-ai",polly:"aws-polly","aws-polly":"aws-polly"};for(let a of d.default)for(let b of(e[a.id]=a.id,a.alias&&(e[a.alias]=a.id),a.aliases||[]))e[b]=a.id;let f={"grok-build":"gcli/grok-build"};function g(a){return e[a]||a}function h(a){if(!a)return{provider:null,model:null,isAlias:!1,providerAlias:null};if(a.includes("/")){let b=a.indexOf("/"),c=a.slice(0,b),d=a.slice(b+1);return{provider:g(c),model:d,isAlias:!1,providerAlias:c}}return{provider:null,model:a,isAlias:!0,providerAlias:null}}function i(a,b){if(!b)return null;let c=b[a];if(!c)return null;if("string"==typeof c&&c.includes("/")){let a=c.indexOf("/");return{provider:g(c.slice(0,a)),model:c.slice(a+1)}}return"object"==typeof c&&c.provider&&c.model?{provider:g(c.provider),model:c.model}:null}async function j(a,b){let c=h(a);if(!c.isAlias)return{provider:c.provider,model:c.model};let d="function"==typeof b?await b():b,e=i(c.model,d)||i(c.model,f);return e||{provider:function(a){if(!a)return"openai";let b=a.toLowerCase();return k.find(([a])=>a.test(b))?.[1]||"openai"}(c.model),model:c.model}}let k=[[/^codex-auto-review$/,"codex"],[/^gpt-[56]\./,"codex"],[/^gpt-6-/,"codex"],[/^gpt-daybreak-/,"codex"],[/^gpt-reserve/,"codex"],[/^claude-/,"anthropic"],[/^(us|eu|ap|global)\.(anthropic|meta|amazon|mistral|xai)\./,"bedrock"],[/^gemini-/,"gemini"],[/^gpt-/,"openai"],[/^o[134]/,"openai"],[/^deepseek-/,"openrouter"]]},92280:(a,b,c)=>{Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(28208),e=c(47617),f=c(62018);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";exports.id=436,exports.ids=[436],exports.modules={35024:(a,b,c)=>{c.d(b,{Ak:()=>e,Yg:()=>h,sr:()=>d.sr,xq:()=>d.xq});var d=c(26070);function e(a){return(a?.providerSpecificData?.baseUrl?.trim()||"http://localhost:11434").replace(/\/$/,"")}let f=d.xq["xiaomi-tokenplan"]?.regions||{},g=d.xq["xiaomi-tokenplan"]?.defaultRegion;function h(a){return f[a?.providerSpecificData?.region]||f[g]}},39006:a=>{a.exports={rE:"2.
|
|
1
|
+
"use strict";exports.id=436,exports.ids=[436],exports.modules={35024:(a,b,c)=>{c.d(b,{Ak:()=>e,Yg:()=>h,sr:()=>d.sr,xq:()=>d.xq});var d=c(26070);function e(a){return(a?.providerSpecificData?.baseUrl?.trim()||"http://localhost:11434").replace(/\/$/,"")}let f=d.xq["xiaomi-tokenplan"]?.regions||{},g=d.xq["xiaomi-tokenplan"]?.defaultRegion;function h(a){return f[a?.providerSpecificData?.region]||f[g]}},39006:a=>{a.exports={rE:"2.3.0"}},39609:(a,b,c)=>{c.r(b),c.d(b,{default:()=>u,proxyAwareFetch:()=>s});var d=c(27910),e=c(41004);let f=globalThis.fetch,g=new Map,h=new Map,i=new Set(["SELF_SIGNED_CERT_IN_CHAIN","DEPTH_ZERO_SELF_SIGNED_CERT","UNABLE_TO_VERIFY_LEAF_SIGNATURE","UNABLE_TO_GET_ISSUER_CERT","UNABLE_TO_GET_ISSUER_CERT_LOCALLY","CERT_HAS_EXPIRED","ERR_TLS_CERT_ALTNAME_INVALID"]),j=["cloudcode-pa.googleapis.com","daily-cloudcode-pa.googleapis.com","api.individual.githubcopilot.com","q.us-east-1.amazonaws.com","codewhisperer.us-east-1.amazonaws.com","api2.cursor.sh"],k=["8.8.8.8","8.8.4.4"];function l(a){return null==a?"":String(a).trim()}async function m(a){let b=h.get(a);if(b&&Date.now()<b.expiry)return b.ip;try{let b=await Promise.resolve().then(c.t.bind(c,14985,23)),{promisify:d}=await Promise.resolve().then(c.t.bind(c,28354,23)),f=new b.Resolver;f.setServers(k);let g=d(f.resolve4.bind(f)),i=await g(a);return h.set(a,{ip:i[0],expiry:Date.now()+e.v1.dnsCacheTtlMs}),i[0]}catch(b){return console.warn(`[ProxyFetch] DNS resolve failed for ${a}:`,b.message),null}}function n(a,b){let c,d=l(b);if(!d)return!1;try{c=new URL(a).hostname.toLowerCase()}catch{return!1}return d.split(",").map(a=>a.trim().toLowerCase()).filter(Boolean).some(a=>"*"===a||(a.startsWith(".")?c.endsWith(a)||c===a.slice(1):c===a||c.endsWith(`.${a}`)))}function o(a){let b=l(a);if(!b)return null;try{return new URL(b),b}catch{return`http://${b}`}}async function p(a,b=!1){let d=o(a);if(!d&&!b)return null;let f=`${d||"direct"}::${b?"insecure":"secure"}`;if(!g.has(f)){g.size>=e.v1.proxyDispatchersMaxSize&&g.delete(g.keys().next().value);let{Agent:a,ProxyAgent:h}=await c.e(7774).then(c.t.bind(c,47774,19)),i=b?{rejectUnauthorized:!1}:void 0,j=d?new h({uri:d,...b?{requestTls:i}:{}}):new a({connect:i});g.set(f,j)}return g.get(f)}async function q(a,b,c){try{let d=c?await p(c):void 0;return await f(a,d?{...b,dispatcher:d}:b)}catch(e){let d;if("true"!==process.env.STRICT_SSL&&"1"!==process.env.STRICT_SSL&&(d=e?.cause?.code||e?.code,i.has(d))){if(b.body&&"function"==typeof b.body.getReader&&b.body.locked)throw e;console.warn(`[ProxyFetch] TLS cert verification failed (${e.cause?.code||e.code}), retrying with insecure TLS: ${a}`);let d=await p(c,!0);return await f(a,{...b,dispatcher:d})}throw e}}async function r(a,b,e){let f=await Promise.resolve().then(c.t.bind(c,55591,23)),g=await Promise.resolve().then(c.t.bind(c,91645,23)),h=f.default??f,i=g.default??g;return new Promise((c,f)=>{let g=new i.Socket;if(g.connect(443,b,()=>{let b={socket:g,servername:a.hostname,path:a.pathname+a.search,method:e.method||"POST",headers:{...e.headers,Host:a.hostname}},i=h.request(b,a=>{let b={ok:a.statusCode>=200&&a.statusCode<300,status:a.statusCode,statusText:a.statusMessage,headers:new Map(Object.entries(a.headers)),body:d.Readable.toWeb(a),text:async()=>{let b=[];for await(let c of a)b.push(c);return Buffer.concat(b).toString()},json:async()=>JSON.parse(await b.text())};c(b)});i.on("error",f),e.body&&i.write("string"==typeof e.body?e.body:JSON.stringify(e.body)),i.end()}),g.on("error",f),e.signal){let a=!1,b=()=>{a||(a=!0,g.destroy(),f(new DOMException("The operation was aborted","AbortError")))};e.signal.aborted?b():(e.signal.addEventListener("abort",b,{once:!0}),g.once("close",()=>e.signal.removeEventListener("abort",b)))}})}async function s(a,b={},c=null){let d="string"==typeof a?a:a.toString(),e=l(c?.vercelRelayUrl);if(e){let a=new URL(d),c={...b.headers instanceof Headers?Object.fromEntries(b.headers.entries()):{...b.headers||{}},"x-relay-target":`${a.protocol}//${a.host}`,"x-relay-path":`${a.pathname}${a.search}`};return f(e,{...b,headers:c})}let g=function(a,b){if(b?.enabled!==!0&&b?.connectionProxyEnabled!==!0)return null;let c=l(b?.url??b?.connectionProxyUrl);if(!c)return null;let d=l(b?.noProxy??b?.connectionNoProxy);return d&&n(a,d)?null:o(c)}(d,c),h=g?null:o(function(a){let b;if(n(a,process.env.NO_PROXY||process.env.no_proxy))return null;try{b=new URL(a).protocol}catch{return null}return"https:"===b?process.env.HTTPS_PROXY||process.env.https_proxy||process.env.ALL_PROXY||process.env.all_proxy:process.env.HTTP_PROXY||process.env.http_proxy||process.env.ALL_PROXY||process.env.all_proxy}(d)),i=g||h;if(function(a){try{let b=new URL(a).hostname;return j.some(a=>b.includes(a))}catch{return!1}}(d)){if(i)try{return await q(a,b,i)}catch(a){if(c?.strictProxy===!0)throw Error(`[ProxyFetch] Proxy required but failed (strictProxy=true): ${a.message}`);console.warn(`[ProxyFetch] Proxy failed, falling back to direct bypass: ${a.message}`)}try{let a=new URL(d),c=await m(a.hostname);if(c)return await r(a,c,b)}catch(a){console.warn(`[ProxyFetch] MITM bypass failed: ${a.message}`)}}if(i)try{return await q(a,b,i)}catch(d){if(c?.strictProxy===!0)throw Error(`[ProxyFetch] Proxy required but failed (strictProxy=true): ${d.message}`);return console.warn(`[ProxyFetch] Proxy failed, falling back to direct: ${d.message}`),q(a,b,null)}let k=c?.proxyPoolId||c?.enabled===!0||c?.connectionProxyEnabled===!0||!!l(c?.url??c?.connectionProxyUrl);if(c?.strictProxy===!0&&k)throw Error("[ProxyFetch] Proxy required but none resolved (strictProxy=true)");return q(a,b,null)}async function t(a,b={}){return s(a,b,null)}globalThis.fetch!==t&&(globalThis.fetch=t);let u=t},75924:(a,b,c)=>{let d;c.d(b,{Ch:()=>k,Cn:()=>p,Co:()=>z,Ic:()=>w,J5:()=>t,K:()=>u,NA:()=>C,Ok:()=>h,QH:()=>q,Wu:()=>B,buildKimiHeaders:()=>D,dw:()=>s,go:()=>j,iO:()=>A,j5:()=>x,nZ:()=>v,sX:()=>l,uR:()=>r,x0:()=>n,zv:()=>y});var e=c(21820),f=c(35024),g=c(74129);let h={hostname:"inference-api.nousresearch.com",chatCompletionsPath:"/v1/chat/completions",tags:["product=omnihilbras","client=omnihilbras","user=omnihilbras"]},i=f.xq["gemini-cli"]?.cliVersion,j=f.xq["gemini-cli"]?.apiClient,k=f.xq.codex?.cliVersion;function l(a="unknown"){let b;return`GeminiCLI/${i}/${a||"unknown"} (${(0,e.platform)()}; ${"ia32"===(b=(0,e.arch)())?"x86":b}; terminal)`}let m=f.xq.github?.copilot||{},n={VSCODE_VERSION:m.vscodeVersion,COPILOT_CHAT_VERSION:m.chatVersion,USER_AGENT:m.userAgent,API_VERSION:m.apiVersion};function o(){let a=(0,e.platform)(),b=(0,e.arch)();return"darwin"===a?"arm64"===b?2:1:"linux"===a?"arm64"===b?4:3:5*("win32"===a)}let p={ideType:9,platform:o(),pluginType:2},q="_ide",r="_ide",s=new Set(["Task","TaskOutput","TaskStop","TaskCreate","TaskGet","TaskUpdate","TaskList","Bash","Glob","Grep","Read","Edit","Write","NotebookEdit","WebFetch","WebSearch","AskUserQuestion","Skill","EnterPlanMode","ExitPlanMode"]),t=new Set(["browser_subagent","command_status","find_by_name","generate_image","grep_search","list_dir","list_resources","multi_replace_file_content","notify_user","read_resource","read_terminal","read_url_content","replace_file_content","run_command","search_web","send_command_input","task_boundary","view_content_chunk","view_file","write_to_file"]),u={"User-Agent":g.Of},v={"gemini-cli":{loadCodeAssist:"https://cloudcode-pa.googleapis.com/v1internal:loadCodeAssist",onboardUser:"https://cloudcode-pa.googleapis.com/v1internal:onboardUser"},antigravity:{loadCodeAssist:"https://cloudcode-pa.googleapis.com/v1internal:loadCodeAssist",onboardUser:"https://cloudcode-pa.googleapis.com/v1internal:onboardUser"}},w={"Content-Type":"application/json","User-Agent":"google-api-nodejs-client/9.15.1","X-Goog-Api-Client":"google-cloud-sdk vscode_cloudshelleditor/0.1","Client-Metadata":JSON.stringify({ideType:9,platform:o(),pluginType:2})},x={"Content-Type":"application/json","User-Agent":g.Of},y={ideType:9,platform:o(),pluginType:2},z="You are Claude Code, Anthropic's official CLI for Claude.",A=[{from:"You are a Claude agent, built on Anthropic's Claude Agent SDK.",to:""},{from:/You are Hermes(?: Agent)?(?:,\s*(?:an intelligent AI assistant|an AI assistant|an AI agent))?(?:,?\s*(?:built|created)\s+by\s+Nous Research)?\./gi,to:"You are an AI assistant."},{from:/^x-anthropic-billing-header:[^\n]*(?:\r?\n)*/gim,to:""},{from:/opencode/gi,to:a=>"OpenCode"===a?"Antigravity":"OPENCODE"===a?"ANTIGRAVITY":"antigravity"}],B=Object.fromEntries(Object.entries(f.sr).filter(([,a])=>a.refreshLeadMs).map(([a,b])=>[a,b.refreshLeadMs])),C={google:{token:"https://oauth2.googleapis.com/token",auth:"https://accounts.google.com/o/oauth2/auth"},openai:{token:f.sr.codex?.tokenUrl,auth:f.sr.codex?.authorizeUrl},anthropic:{token:f.sr.claude?.tokenUrl,auth:"https://api.anthropic.com/v1/oauth/authorize"},iflow:{token:f.sr.iflow?.tokenUrl,auth:f.sr.iflow?.authorizeUrl},github:{token:f.sr.github?.tokenUrl,auth:f.sr.github?.authorizeUrl,deviceCode:f.sr.github?.deviceCodeUrl}};function D(a){let b=(0,e.platform)(),f=(0,e.arch)(),g=`${b} ${f}`;"darwin"===b?g=`macOS ${f}`:"win32"===b?g=`Windows ${f}`:"linux"===b&&(g=`Linux ${f}`);let h="unknown";try{h=(0,e.hostname)()||"unknown"}catch{h="unknown"}let i="string"==typeof a&&a.trim()?a.trim():`kimi-${Date.now()}`;return{"X-Msh-Platform":"omnihilbras","X-Msh-Version":function(){if(d)return d;try{d=c(39006).rE||"0.0.0"}catch{d=process.env.npm_package_version||"0.0.0"}return d}(),"X-Msh-Device-Name":h,"X-Msh-Device-Model":g,"X-Msh-Device-Id":i}}}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";exports.id=4663,exports.ids=[3662,4663],exports.modules={3662:(a,b,c)=>{c.d(b,{EQ:()=>f,LY:()=>d,O:()=>e,fh:()=>h,t2:()=>i,wf:()=>g});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={base:2e3,max:3e5,maxLevel:15},g=3e4,h=18e5,i=[{provider:"codex",text:"model is not supported when using codex with a chatgpt account",cooldownMs:18e5},{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:"capacity",backoff:!0},{text:"overloaded",backoff:!0},{status:401,cooldownMs:12e4},{status:402,cooldownMs:12e4},{status:403,cooldownMs:12e4},{status:404,cooldownMs:12e4},{status:429,backoff:!0}]},15857:(a,b,c)=>{c.d(b,{P:()=>j});var d=c(89718),e=c(40615),f=c(54098),g=c(30869),h=c(54603);async function i(){let a=null;try{let b=(await (0,d.PX)()).filter(a=>!1!==a.isActive);a=(b.find(a=>!a.access?.restricted)||b[0])?.key||null}catch{}let b={"Content-Type":"application/json"};return a&&(b.Authorization=`Bearer ${a}`),b["x-9r-cli-token"]=await (0,h.Xj)("9r-cli-auth"),b}async function j(a,b,c=`http://127.0.0.1:${process.env.PORT||g.h0.appPort}`){let d=await i(),h=Date.now();if("embedding"===b){let b=await fetch(`${c}/api/v1/embeddings`,{method:"POST",headers:d,body:JSON.stringify({model:a,input:"test"}),signal:AbortSignal.timeout(15e3)}),e=Date.now()-h,f=await b.text().catch(()=>""),g=null;try{g=f?JSON.parse(f):null}catch{}if(!b.ok){let a=g?.error?.message||g?.error||f;return{ok:!1,latencyMs:e,error:`HTTP ${b.status}${a?`: ${String(a).slice(0,240)}`:""}`,status:b.status}}return Array.isArray(g?.data)&&g.data.length>0&&Array.isArray(g.data[0]?.embedding)?{ok:!0,latencyMs:e,error:null,status:b.status}:{ok:!1,latencyMs:e,status:b.status,error:"Provider returned no embedding data"}}if("image"===b){let b=await fetch(`${c}/api/v1/images/generations`,{method:"POST",headers:d,body:JSON.stringify({model:a,prompt:"test"}),signal:AbortSignal.timeout(15e3)}),e=Date.now()-h,f=await b.text().catch(()=>""),g=null;try{g=f?JSON.parse(f):null}catch{}if(!b.ok){let a=g?.error?.message||g?.msg||g?.message||g?.error||f;return{ok:!1,latencyMs:e,error:`HTTP ${b.status}${a?`: ${String(a).slice(0,240)}`:""}`,status:b.status}}return Array.isArray(g?.data)&&g.data.length>0?{ok:!0,latencyMs:e,error:null,status:b.status}:{ok:!1,latencyMs:e,status:b.status,error:"Provider returned no image data for this model"}}if("stt"===b){let b,e,f,g,i=new FormData,j=(f=new DataView(e=new ArrayBuffer(44+(b=8e3))),(g=(a,b)=>{for(let c=0;c<b.length;c+=1)f.setUint8(a+c,b.charCodeAt(c))})(0,"RIFF"),f.setUint32(4,36+b,!0),g(8,"WAVE"),g(12,"fmt "),f.setUint32(16,16,!0),f.setUint16(20,1,!0),f.setUint16(22,1,!0),f.setUint32(24,16e3,!0),f.setUint32(28,32e3,!0),f.setUint16(32,2,!0),f.setUint16(34,16,!0),g(36,"data"),f.setUint32(40,b,!0),new Blob([e],{type:"audio/wav"}));i.append("file",j,"test.wav"),i.append("model",a);let k=await fetch(`${c}/api/v1/audio/transcriptions`,{method:"POST",headers:Object.fromEntries(Object.entries(d).filter(([a])=>"content-type"!==a.toLowerCase())),body:i,signal:AbortSignal.timeout(15e3)}),l=Date.now()-h,m=await k.text().catch(()=>""),n=null;try{n=m?JSON.parse(m):null}catch{}if(!k.ok){let a=n?.error?.message||n?.msg||n?.message||n?.error||m;return{ok:!1,latencyMs:l,error:`HTTP ${k.status}${a?`: ${String(a).slice(0,240)}`:""}`,status:k.status}}return("string"==typeof n?.text?n.text:"").trim()?{ok:!0,latencyMs:l,error:null,status:k.status}:{ok:!1,latencyMs:l,status:k.status,error:"Provider returned no transcription text for this model"}}if("systemone"===b){let b=await fetch(`${c}/api/v1/systemone`,{method:"POST",headers:d,body:JSON.stringify({model:a,state:"Customer: I was charged twice for my order this morning.",questions:{probe:{type:"noul",instructions:"Is the customer reporting a billing problem?"}}}),signal:AbortSignal.timeout(15e3)}),e=Date.now()-h,f=await b.text().catch(()=>""),g=null;try{g=f?JSON.parse(f):null}catch{}if(!b.ok){let a=g?.error?.message||g?.msg||g?.message||g?.error||f;return{ok:!1,latencyMs:e,error:`HTTP ${b.status}${a?`: ${String(a).slice(0,240)}`:""}`,status:b.status}}return g?.answers&&"object"==typeof g.answers&&Object.keys(g.answers).length>0?{ok:!0,latencyMs:e,error:null,status:b.status}:{ok:!1,latencyMs:e,status:b.status,error:"Provider returned no answers for this model"}}let k=await fetch(`${c}/api/v1/chat/completions`,{method:"POST",headers:d,body:JSON.stringify({model:a,max_tokens:1024,stream:!1,messages:[{role:"user",content:"hi"}]}),signal:AbortSignal.timeout(15e3)}),l=Date.now()-h,m=await k.text().catch(()=>""),n=null;try{n=m?JSON.parse(m):null}catch{}let o=(0,e.rs)(String(a).split("/")[0]);if(n=(0,f.x)(n,o),!k.ok){let a=n?.error?.message||n?.msg||n?.message||n?.error||m;return{ok:!1,latencyMs:l,error:`HTTP ${k.status}${a?`: ${String(a).slice(0,500)}`:""}`,status:k.status}}let p=n?.status,q=n?.msg||n?.message;if(null!=p&&"200"!==String(p)&&"0"!==String(p)&&q)return{ok:!1,latencyMs:l,status:k.status,error:`Provider status ${p}: ${String(q).slice(0,240)}`};if(n?.error){let a=n?.error?.message||n?.error||"Provider returned an error";return{ok:!1,latencyMs:l,status:k.status,error:String(a).slice(0,240)}}let r=Array.isArray(n?.choices)&&n.choices.length>0,s=n?.choices?.[0]||{},t=s.message?.reasoning||s.message?.reasoning_content||s.message?.thinking||s.message?.thinking_content,u=!String(s.message?.content||"").trim();return r&&"length"===s.finish_reason&&u&&t?{ok:!0,latencyMs:l,error:null,status:k.status,note:"reasoning-only response (length-limited)"}:r?{ok:!0,latencyMs:l,error:null,status:k.status}:{ok:!1,latencyMs:l,status:k.status,error:"Provider returned no completion choices for this model"}}},30869:(a,b,c)=>{c.d(b,{UY:()=>h,eh:()=>f.eh,fg:()=>e.fg,h0:()=>g,oc:()=>i});var d=c(39006),e=c(40615),f=c(81329);d.rE;let g={npmPackageName:"@hilbras/omnihilbras",installCmd:"npm i -g @hilbras/omnihilbras",installCmdLatest:"npm i -g @hilbras/omnihilbras@latest --prefer-online",shutdownCountdownSec:3,exitDelayMs:500,statusPort:20129,statusPollIntervalMs:1e3,statusLogTailLines:8,installRetries:3,installRetryDelayMs:5e3,lingerAfterDoneMs:3e4,waitForExitMinMs:5e3,waitForExitMaxMs:2e4,waitForExitCheckMs:500,appPort:20128},h={maxLines:200,pollIntervalMs:1e3},i={tickIntervalMs:6e4,pingLeadMs:5e3,refreshAheadMs:3e5,failureCooldownMs:9e5,providers:{claude:{settingsKey:"claudeAutoPing",quotaKey:"session (5h)",pingModel:"claude-haiku-4-5-20251001",pingText:"hi",pingMaxTokens:1},codex:{settingsKey:"codexAutoPing",quotaKey:"session",pingWhenResetAtSlides:!0,resetAtDriftMs:3e4,minPingIntervalMs:6e5,skipWhenBlockingQuotaExhausted:!0,pingModel:"gpt-5.6-terra",pingText:"hi",pingInstructions:"Reply with OK.",pingReasoningEffort:"none"}}}},39006:a=>{a.exports={rE:"2.
|
|
1
|
+
"use strict";exports.id=4663,exports.ids=[3662,4663],exports.modules={3662:(a,b,c)=>{c.d(b,{EQ:()=>f,LY:()=>d,O:()=>e,fh:()=>h,t2:()=>i,wf:()=>g});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={base:2e3,max:3e5,maxLevel:15},g=3e4,h=18e5,i=[{provider:"codex",text:"model is not supported when using codex with a chatgpt account",cooldownMs:18e5},{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:"capacity",backoff:!0},{text:"overloaded",backoff:!0},{status:401,cooldownMs:12e4},{status:402,cooldownMs:12e4},{status:403,cooldownMs:12e4},{status:404,cooldownMs:12e4},{status:429,backoff:!0}]},15857:(a,b,c)=>{c.d(b,{P:()=>j});var d=c(89718),e=c(40615),f=c(54098),g=c(30869),h=c(54603);async function i(){let a=null;try{let b=(await (0,d.PX)()).filter(a=>!1!==a.isActive);a=(b.find(a=>!a.access?.restricted)||b[0])?.key||null}catch{}let b={"Content-Type":"application/json"};return a&&(b.Authorization=`Bearer ${a}`),b["x-9r-cli-token"]=await (0,h.Xj)("9r-cli-auth"),b}async function j(a,b,c=`http://127.0.0.1:${process.env.PORT||g.h0.appPort}`){let d=await i(),h=Date.now();if("embedding"===b){let b=await fetch(`${c}/api/v1/embeddings`,{method:"POST",headers:d,body:JSON.stringify({model:a,input:"test"}),signal:AbortSignal.timeout(15e3)}),e=Date.now()-h,f=await b.text().catch(()=>""),g=null;try{g=f?JSON.parse(f):null}catch{}if(!b.ok){let a=g?.error?.message||g?.error||f;return{ok:!1,latencyMs:e,error:`HTTP ${b.status}${a?`: ${String(a).slice(0,240)}`:""}`,status:b.status}}return Array.isArray(g?.data)&&g.data.length>0&&Array.isArray(g.data[0]?.embedding)?{ok:!0,latencyMs:e,error:null,status:b.status}:{ok:!1,latencyMs:e,status:b.status,error:"Provider returned no embedding data"}}if("image"===b){let b=await fetch(`${c}/api/v1/images/generations`,{method:"POST",headers:d,body:JSON.stringify({model:a,prompt:"test"}),signal:AbortSignal.timeout(15e3)}),e=Date.now()-h,f=await b.text().catch(()=>""),g=null;try{g=f?JSON.parse(f):null}catch{}if(!b.ok){let a=g?.error?.message||g?.msg||g?.message||g?.error||f;return{ok:!1,latencyMs:e,error:`HTTP ${b.status}${a?`: ${String(a).slice(0,240)}`:""}`,status:b.status}}return Array.isArray(g?.data)&&g.data.length>0?{ok:!0,latencyMs:e,error:null,status:b.status}:{ok:!1,latencyMs:e,status:b.status,error:"Provider returned no image data for this model"}}if("stt"===b){let b,e,f,g,i=new FormData,j=(f=new DataView(e=new ArrayBuffer(44+(b=8e3))),(g=(a,b)=>{for(let c=0;c<b.length;c+=1)f.setUint8(a+c,b.charCodeAt(c))})(0,"RIFF"),f.setUint32(4,36+b,!0),g(8,"WAVE"),g(12,"fmt "),f.setUint32(16,16,!0),f.setUint16(20,1,!0),f.setUint16(22,1,!0),f.setUint32(24,16e3,!0),f.setUint32(28,32e3,!0),f.setUint16(32,2,!0),f.setUint16(34,16,!0),g(36,"data"),f.setUint32(40,b,!0),new Blob([e],{type:"audio/wav"}));i.append("file",j,"test.wav"),i.append("model",a);let k=await fetch(`${c}/api/v1/audio/transcriptions`,{method:"POST",headers:Object.fromEntries(Object.entries(d).filter(([a])=>"content-type"!==a.toLowerCase())),body:i,signal:AbortSignal.timeout(15e3)}),l=Date.now()-h,m=await k.text().catch(()=>""),n=null;try{n=m?JSON.parse(m):null}catch{}if(!k.ok){let a=n?.error?.message||n?.msg||n?.message||n?.error||m;return{ok:!1,latencyMs:l,error:`HTTP ${k.status}${a?`: ${String(a).slice(0,240)}`:""}`,status:k.status}}return("string"==typeof n?.text?n.text:"").trim()?{ok:!0,latencyMs:l,error:null,status:k.status}:{ok:!1,latencyMs:l,status:k.status,error:"Provider returned no transcription text for this model"}}if("systemone"===b){let b=await fetch(`${c}/api/v1/systemone`,{method:"POST",headers:d,body:JSON.stringify({model:a,state:"Customer: I was charged twice for my order this morning.",questions:{probe:{type:"noul",instructions:"Is the customer reporting a billing problem?"}}}),signal:AbortSignal.timeout(15e3)}),e=Date.now()-h,f=await b.text().catch(()=>""),g=null;try{g=f?JSON.parse(f):null}catch{}if(!b.ok){let a=g?.error?.message||g?.msg||g?.message||g?.error||f;return{ok:!1,latencyMs:e,error:`HTTP ${b.status}${a?`: ${String(a).slice(0,240)}`:""}`,status:b.status}}return g?.answers&&"object"==typeof g.answers&&Object.keys(g.answers).length>0?{ok:!0,latencyMs:e,error:null,status:b.status}:{ok:!1,latencyMs:e,status:b.status,error:"Provider returned no answers for this model"}}let k=await fetch(`${c}/api/v1/chat/completions`,{method:"POST",headers:d,body:JSON.stringify({model:a,max_tokens:1024,stream:!1,messages:[{role:"user",content:"hi"}]}),signal:AbortSignal.timeout(15e3)}),l=Date.now()-h,m=await k.text().catch(()=>""),n=null;try{n=m?JSON.parse(m):null}catch{}let o=(0,e.rs)(String(a).split("/")[0]);if(n=(0,f.x)(n,o),!k.ok){let a=n?.error?.message||n?.msg||n?.message||n?.error||m;return{ok:!1,latencyMs:l,error:`HTTP ${k.status}${a?`: ${String(a).slice(0,500)}`:""}`,status:k.status}}let p=n?.status,q=n?.msg||n?.message;if(null!=p&&"200"!==String(p)&&"0"!==String(p)&&q)return{ok:!1,latencyMs:l,status:k.status,error:`Provider status ${p}: ${String(q).slice(0,240)}`};if(n?.error){let a=n?.error?.message||n?.error||"Provider returned an error";return{ok:!1,latencyMs:l,status:k.status,error:String(a).slice(0,240)}}let r=Array.isArray(n?.choices)&&n.choices.length>0,s=n?.choices?.[0]||{},t=s.message?.reasoning||s.message?.reasoning_content||s.message?.thinking||s.message?.thinking_content,u=!String(s.message?.content||"").trim();return r&&"length"===s.finish_reason&&u&&t?{ok:!0,latencyMs:l,error:null,status:k.status,note:"reasoning-only response (length-limited)"}:r?{ok:!0,latencyMs:l,error:null,status:k.status}:{ok:!1,latencyMs:l,status:k.status,error:"Provider returned no completion choices for this model"}}},30869:(a,b,c)=>{c.d(b,{UY:()=>h,eh:()=>f.eh,fg:()=>e.fg,h0:()=>g,oc:()=>i});var d=c(39006),e=c(40615),f=c(81329);d.rE;let g={npmPackageName:"@hilbras/omnihilbras",installCmd:"npm i -g @hilbras/omnihilbras",installCmdLatest:"npm i -g @hilbras/omnihilbras@latest --prefer-online",shutdownCountdownSec:3,exitDelayMs:500,statusPort:20129,statusPollIntervalMs:1e3,statusLogTailLines:8,installRetries:3,installRetryDelayMs:5e3,lingerAfterDoneMs:3e4,waitForExitMinMs:5e3,waitForExitMaxMs:2e4,waitForExitCheckMs:500,appPort:20128},h={maxLines:200,pollIntervalMs:1e3},i={tickIntervalMs:6e4,pingLeadMs:5e3,refreshAheadMs:3e5,failureCooldownMs:9e5,providers:{claude:{settingsKey:"claudeAutoPing",quotaKey:"session (5h)",pingModel:"claude-haiku-4-5-20251001",pingText:"hi",pingMaxTokens:1},codex:{settingsKey:"codexAutoPing",quotaKey:"session",pingWhenResetAtSlides:!0,resetAtDriftMs:3e4,minPingIntervalMs:6e5,skipWhenBlockingQuotaExhausted:!0,pingModel:"gpt-5.6-terra",pingText:"hi",pingInstructions:"Reply with OK.",pingReasoningEffort:"none"}}}},39006:a=>{a.exports={rE:"2.3.0"}},54098:(a,b,c)=>{c.d(b,{x:()=>e});var d=c(26070);function e(a,b){if(!b||!d.xq[b]?.quirks?.clineEnvelope)return a;let{success:c,data:e}=a||{};return!0!==c||!e||"object"!=typeof e||Array.isArray(e)?a:e}},54603:(a,b,c)=>{c.d(b,{Xj:()=>q});var d=c(19713),e=c(73024),f=c.n(e),g=c(76760),h=c.n(g),i=c(77598),j=c.n(i),k=c(49120);let l=h().join(k.n,"machine-id"),m=h().join(k.n,"auth"),n=h().join(m,"cli-secret"),o=null,p=null;async function q(a=null){let b=a||process.env.MACHINE_ID_SALT||"endpoint-proxy-salt",c=function(){if(o)return o;try{if(o=f().readFileSync(l,"utf8").trim())return o}catch{}try{o=(0,d.machineIdSync)()}catch{o=j().randomUUID()}try{f().mkdirSync(k.n,{recursive:!0}),f().writeFileSync(l,o,{mode:384})}catch{}return o}(),e="9r-cli-auth"===b?function(){if(p)return p;try{if(p=f().readFileSync(n,"utf8").trim())return p}catch{}p=j().randomBytes(32).toString("hex");try{f().mkdirSync(m,{recursive:!0}),f().writeFileSync(n,p,{mode:384})}catch{}return p}():"";return j().createHash("sha256").update(c+b+e).digest("hex").substring(0,16)}},89718:(a,b,c)=>{c.d(b,{CG:()=>d.CG,Dj:()=>d.Dj,Fh:()=>d.Fh,Iq:()=>d.Iq,K1:()=>d.K1,KJ:()=>d.KJ,L:()=>d.L,L9:()=>d.L9,Lh:()=>d.Lh,OM:()=>d.OM,PX:()=>d.PX,Pc:()=>d.Pc,Q_:()=>d.Q_,Qu:()=>d.Qu,S8:()=>d.S8,Uv:()=>d.Uv,VT:()=>d.VT,XW:()=>d.XW,Xx:()=>d.Xx,Yd:()=>d.Yd,ZO:()=>d.ZO,bI:()=>d.bI,c:()=>d.c,ek:()=>d.ek,fK:()=>d.fK,fv:()=>d.fv,getProviderConnectionById:()=>d.Mc,getProviderConnections:()=>d.P,ho:()=>d.ho,hr:()=>d.hr,i0:()=>d.i0,iE:()=>d.iE,jd:()=>d.jd,mt:()=>d.mt,o5:()=>d.o5,oG:()=>d.oG,op:()=>d.op,r4:()=>d.r4,uL:()=>d.uL,ui:()=>d.ui,updateProviderConnection:()=>d.rj,uv:()=>d.uv,yF:()=>d.yF,yg:()=>d.yg,zP:()=>d.zP});var d=c(47765)}};
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
exports.id=4785,exports.ids=[4785],exports.modules={644:(a,b,c)=>{"use strict";function d(a,b=null){if(null==a)return b;if("string"!=typeof a)return a;try{return JSON.parse(a)}catch{return b}}function e(a){return JSON.stringify(a??null)}c.d(b,{q:()=>d,s:()=>e})},1129:(a,b,c)=>{"use strict";c.r(b),c.d(b,{createProviderNode:()=>k,deleteProviderNode:()=>m,getProviderNodeById:()=>j,getProviderNodes:()=>i,updateProviderNode:()=>l});var d=c(94755),e=c(36366),f=c(644);function g(a){return a?{...(0,f.q)(a.data,{}),id:a.id,type:a.type,name:a.name,createdAt:a.createdAt,updatedAt:a.updatedAt}:null}function h(a,b){let c=function(a){let{id:b,type:c,name:d,createdAt:e,updatedAt:g,...h}=a;return{id:b,type:c??null,name:d??null,data:(0,f.s)(h),createdAt:e,updatedAt:g}}(b);a.run(`INSERT INTO providerNodes(id, type, name, data, createdAt, updatedAt)
|
|
2
|
+
VALUES(?, ?, ?, ?, ?, ?)
|
|
3
|
+
ON CONFLICT(id) DO UPDATE SET
|
|
4
|
+
type=excluded.type, name=excluded.name, data=excluded.data, updatedAt=excluded.updatedAt`,[c.id,c.type,c.name,c.data,c.createdAt,c.updatedAt])}async function i(a={}){let b=await (0,e.c)(),c=[],d=[];a.type&&(c.push("type = ?"),d.push(a.type));let f=`SELECT * FROM providerNodes${c.length?` WHERE ${c.join(" AND ")}`:""}`;return b.all(f,d).map(g)}async function j(a){return g((await (0,e.c)()).get("SELECT * FROM providerNodes WHERE id = ?",[a]))}async function k(a){let b=await (0,e.c)(),c=new Date().toISOString(),f={id:a.id||(0,d.A)(),type:a.type,name:a.name,prefix:a.prefix,apiType:a.apiType,baseUrl:a.baseUrl,createdAt:c,updatedAt:c};return h(b,f),f}async function l(a,b){let c=await (0,e.c)(),d=null;return c.transaction(()=>{let e=c.get("SELECT * FROM providerNodes WHERE id = ?",[a]);if(!e)return;let f={...g(e),...b,updatedAt:new Date().toISOString()};h(c,f),d=f}),d}async function m(a){let b=await (0,e.c)(),c=null;return b.transaction(()=>{let d=b.get("SELECT * FROM providerNodes WHERE id = ?",[a]);d&&(c=g(d),b.run("DELETE FROM providerNodes WHERE id = ?",[a]),b.run("DELETE FROM kv WHERE scope = 'customModels' AND key LIKE ?",[`${a}|%`]))}),c}},1541:(a,b,c)=>{"use strict";c.d(b,{CG:()=>m,Dj:()=>j,L:()=>i,Uv:()=>h,jd:()=>k,oG:()=>l});var d=c(94755),e=c(36366),f=c(644);function g(a){return a?{id:a.id,name:a.name,kind:a.kind,models:(0,f.q)(a.models,[]),createdAt:a.createdAt,updatedAt:a.updatedAt}:null}async function h(){return(await (0,e.c)()).all("SELECT * FROM combos ORDER BY createdAt ASC").map(g)}async function i(a){return g((await (0,e.c)()).get("SELECT * FROM combos WHERE id = ?",[a]))}async function j(a){return g((await (0,e.c)()).get("SELECT * FROM combos WHERE name = ?",[a]))}async function k(a){let b=await (0,e.c)(),c=new Date().toISOString(),g={id:(0,d.A)(),name:a.name,kind:a.kind||null,models:a.models||[],createdAt:c,updatedAt:c};return b.run("INSERT INTO combos(id, name, kind, models, createdAt, updatedAt) VALUES(?, ?, ?, ?, ?, ?)",[g.id,g.name,g.kind,(0,f.s)(g.models),g.createdAt,g.updatedAt]),g}async function l(a,b){let c=await (0,e.c)(),d=null;return c.transaction(()=>{let e=c.get("SELECT * FROM combos WHERE id = ?",[a]);if(!e)return;let h={...g(e),...b,updatedAt:new Date().toISOString()};c.run("UPDATE combos SET name = ?, kind = ?, models = ?, updatedAt = ? WHERE id = ?",[h.name,h.kind,(0,f.s)(h.models||[]),h.updatedAt,a]),d=h}),d}async function m(a){let b=(await (0,e.c)()).run("DELETE FROM combos WHERE id = ?",[a]);return(b?.changes??0)>0}},5781:(a,b,c)=>{"use strict";c.r(b),c.d(b,{cleanupProviderConnections:()=>s,createProviderConnection:()=>n,deleteProviderConnection:()=>p,deleteProviderConnectionsByProvider:()=>q,getProviderConnectionById:()=>l,getProviderConnections:()=>k,reorderProviderConnections:()=>r,updateProviderConnection:()=>o});var d=c(94755),e=c(36366),f=c(644);let g=["displayName","email","globalPriority","defaultModel","accessToken","refreshToken","expiresAt","tokenType","scope","projectId","apiKey","testStatus","lastTested","lastError","lastErrorAt","rateLimitedUntil","expiresIn","errorCode","consecutiveUseCount","idToken","lastRefreshAt"];function h(a,b){if(b?.testStatus!=="active")return b;let c={...b,testStatus:"active",lastError:Object.hasOwn(b,"lastError")?b.lastError:null,lastErrorAt:Object.hasOwn(b,"lastErrorAt")?b.lastErrorAt:null,errorCode:null,rateLimitedUntil:null,backoffLevel:0};for(let b of Object.keys(a||{}))b.startsWith("modelLock_")&&(c[b]=null);return c}function i(a){return a?{...(0,f.q)(a.data,{}),id:a.id,provider:a.provider,authType:a.authType,name:a.name,email:a.email,priority:a.priority,isActive:1===a.isActive||!0===a.isActive,createdAt:a.createdAt,updatedAt:a.updatedAt}:null}function j(a,b){let c=function(a){let{id:b,provider:c,authType:d,name:e,email:g,priority:h,isActive:i,createdAt:j,updatedAt:k,...l}=a;return{id:b,provider:c,authType:d,name:e??null,email:g??null,priority:h??null,isActive:+(!1!==i),data:(0,f.s)(l),createdAt:j,updatedAt:k}}(b);a.run(`INSERT INTO providerConnections(id, provider, authType, name, email, priority, isActive, data, createdAt, updatedAt)
|
|
5
|
+
VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
6
|
+
ON CONFLICT(id) DO UPDATE SET
|
|
7
|
+
provider=excluded.provider, authType=excluded.authType, name=excluded.name,
|
|
8
|
+
email=excluded.email, priority=excluded.priority, isActive=excluded.isActive,
|
|
9
|
+
data=excluded.data, updatedAt=excluded.updatedAt`,[c.id,c.provider,c.authType,c.name,c.email,c.priority,c.isActive,c.data,c.createdAt,c.updatedAt])}async function k(a={}){let b=await (0,e.c)(),c=[],d=[];a.provider&&(c.push("provider = ?"),d.push(a.provider)),void 0!==a.isActive&&(c.push("isActive = ?"),d.push(+!!a.isActive));let f=`SELECT * FROM providerConnections${c.length?` WHERE ${c.join(" AND ")}`:""}`,g=b.all(f,d).map(i);return g.sort((a,b)=>(a.priority||999)-(b.priority||999)),g}async function l(a){return i((await (0,e.c)()).get("SELECT * FROM providerConnections WHERE id = ?",[a]))}function m(a,b){let c=a.all("SELECT * FROM providerConnections WHERE provider = ?",[b]).map(i);c.sort((a,b)=>{let c=(a.priority||0)-(b.priority||0);return 0!==c?c:new Date(b.updatedAt||0)-new Date(a.updatedAt||0)}),c.forEach((b,c)=>{let d=c+1;(b.priority||0)!==d&&a.run("UPDATE providerConnections SET priority = ? WHERE id = ?",[d,b.id])})}async function n(a){let b,c=await (0,e.c)(),f=new Date().toISOString();return c.transaction(()=>{var e;let k="apikey"===a.authType&&!!a.name,l=k?c.all("SELECT * FROM providerConnections WHERE provider = ? AND authType = ? AND name = ?",[a.provider,"apikey",a.name]).map(i):c.all("SELECT * FROM providerConnections WHERE provider = ?",[a.provider]).map(i),m=k?c.get("SELECT COUNT(*) AS n FROM providerConnections WHERE provider = ?",[a.provider])?.n??l.length:l.length,n=null;if("oauth"===a.authType&&a.email){let b=a.providerSpecificData?.username,c=a.providerSpecificData?.chatgptAccountId;n=l.find(d=>{if("oauth"!==d.authType||d.email!==a.email)return!1;if("codex"===a.provider){let a=d.providerSpecificData?.chatgptAccountId;return!!c&&!!a&&c===a}let e=d.providerSpecificData?.chatgptAccountId;if(c&&e)return c===e;if(c&&!e||!c&&e)return!1;let f=d.providerSpecificData?.username;return b&&f?b===f:!b&&!f})}else"apikey"===a.authType&&a.name&&(n=l.find(b=>"apikey"===b.authType&&b.name===a.name));if(n){if(!1===a.allowOverwrite){let b=Error(`A connection named "${n.name}" already exists for provider "${a.provider}". Pass allowOverwrite: true to replace it.`);throw b.code="PROVIDER_NAME_CONFLICT",b.existingId=n.id,b.existingName=n.name,b}let d=h(n,a),e={...n,...d,updatedAt:f};j(c,e),b=e;return}let o=a.name||null;o||"oauth"!==a.authType&&"access_token"!==a.authType||(e=a.email||`Account ${m+1}`,o="github"===a.provider&&(a.providerSpecificData?.githubLogin||a.providerSpecificData?.githubEmail||a.email||a.providerSpecificData?.githubName)||e);let p=a.priority;if(!p){let b=c.get("SELECT MAX(priority) AS m FROM providerConnections WHERE provider = ?",[a.provider]);p=(b?.m||0)+1}let q={id:(0,d.A)(),provider:a.provider,authType:a.authType||"oauth",name:o,priority:p,isActive:void 0===a.isActive||a.isActive,createdAt:f,updatedAt:f};for(let b of g)void 0!==a[b]&&null!==a[b]&&(q[b]=a[b]);a.providerSpecificData&&Object.keys(a.providerSpecificData).length>0&&(q.providerSpecificData=a.providerSpecificData),void 0!==a.email&&(q.email=a.email),j(c,q),b=q}),b}async function o(a,b){let c,d=await (0,e.c)();return d.transaction(()=>{let e=d.get("SELECT * FROM providerConnections WHERE id = ?",[a]);if(!e){c=null;return}let f=i(e),g=h(f,b),k={...f,...g,updatedAt:new Date().toISOString()};j(d,k),void 0!==b.priority&&m(d,f.provider),c=k}),c}async function p(a){let b=await (0,e.c)(),c=!1;return b.transaction(()=>{let d=b.get("SELECT provider FROM providerConnections WHERE id = ?",[a]);d&&(b.run("DELETE FROM providerConnections WHERE id = ?",[a]),m(b,d.provider),c=!0)}),c}async function q(a){let b=await (0,e.c)(),c=b.get("SELECT COUNT(*) AS n FROM providerConnections WHERE provider = ?",[a]);return b.run("DELETE FROM providerConnections WHERE provider = ?",[a]),c?.n||0}async function r(a){let b=await (0,e.c)();b.transaction(()=>m(b,a))}async function s(){let a=await (0,e.c)(),b=["displayName","email","globalPriority","defaultModel","accessToken","refreshToken","expiresAt","tokenType","scope","projectId","apiKey","testStatus","lastTested","lastError","lastErrorAt","rateLimitedUntil","expiresIn","consecutiveUseCount"],c=0;return a.transaction(()=>{for(let d of a.all("SELECT * FROM providerConnections")){let e=i(d),f=!1;for(let a of b)(null===e[a]||void 0===e[a])&&a in e&&(delete e[a],c++,f=!0);e.providerSpecificData&&0===Object.keys(e.providerSpecificData).length&&(delete e.providerSpecificData,c++,f=!0),f&&j(a,e)}}),c}},9460:(a,b,c)=>{"use strict";c.d(b,{L9:()=>r,OM:()=>j,S8:()=>o,fv:()=>l,getMitmAlias:()=>q,o5:()=>k,uL:()=>p,uv:()=>n});var d=c(36366),e=c(644),f=c(22846);let g=(0,f.U)("modelAliases"),h=(0,f.U)("customModels"),i=(0,f.U)("mitmAlias");async function j(){return await g.getAll()}async function k(a,b){await g.set(a,b)}async function l(a){await g.remove(a)}function m(a,b,c){return`${a}|${b}|${c}`}async function n(){return Object.values(await h.getAll())}async function o({providerAlias:a,id:b,type:c="llm",name:f,caps:g,transport:h,origin:i}){let j=m(a,b,c),k=await (0,d.c)(),l=!1;return k.transaction(()=>{let d=k.get("SELECT value FROM kv WHERE scope = 'customModels' AND key = ?",[j]);if(d){let a={...(0,e.q)(d.value)||{},...f?{name:f}:{},...g?{caps:g}:{},...h?{transport:h}:{}};k.run("UPDATE kv SET value = ? WHERE scope = 'customModels' AND key = ?",[(0,e.s)(a),j]);return}let m=(0,e.s)({providerAlias:a,id:b,type:c,name:f||b,...i?{origin:i}:{},...g?{caps:g}:{},...h?{transport:h}:{}});k.run("INSERT INTO kv(scope, key, value) VALUES('customModels', ?, ?)",[j,m]),l=!0}),l}async function p({providerAlias:a,id:b,type:c="llm"}){await h.remove(m(a,b,c))}async function q(a){return a?await i.get(a)||{}:await i.getAll()}async function r(a,b){await i.set(a,b||{})}},22846:(a,b,c)=>{"use strict";c.d(b,{U:()=>f});var d=c(36366),e=c(644);function f(a){return{async get(b,c=null){let f=(await (0,d.c)()).get("SELECT value FROM kv WHERE scope = ? AND key = ?",[a,b]);return f?(0,e.q)(f.value,c):c},async getAll(){let b=(await (0,d.c)()).all("SELECT key, value FROM kv WHERE scope = ?",[a]),c={};for(let a of b)c[a.key]=(0,e.q)(a.value);return c},async set(b,c){(await (0,d.c)()).run("INSERT INTO kv(scope, key, value) VALUES(?, ?, ?) ON CONFLICT(scope, key) DO UPDATE SET value = excluded.value",[a,b,(0,e.s)(c)])},async setMany(b){let c=await (0,d.c)();c.transaction(()=>{for(let[d,f]of Object.entries(b))c.run("INSERT INTO kv(scope, key, value) VALUES(?, ?, ?) ON CONFLICT(scope, key) DO UPDATE SET value = excluded.value",[a,d,(0,e.s)(f)])})},async remove(b){(await (0,d.c)()).run("DELETE FROM kv WHERE scope = ? AND key = ?",[a,b])},async clear(){(await (0,d.c)()).run("DELETE FROM kv WHERE scope = ?",[a])}}}},33666:(a,b,c)=>{"use strict";c.d(b,{M7:()=>h,aB:()=>g,xE:()=>f});var d=c(38606);function e(a){if(!Array.isArray(a))return[];let b=new Set,c=[];for(let d of a){if("string"!=typeof d)continue;let a=d.trim();if(!a)continue;let e=a.toLowerCase();b.has(e)||(b.add(e),c.push(a))}return c}function f(a,b){if(1!==a&&!0!==a)return{restricted:!1,allow:[]};let c=[];if("string"==typeof b&&b)try{c=JSON.parse(b)}catch{c=[]}return{restricted:!0,allow:e(c)}}function g(a){let b=a||d.M0;return{accessRestricted:+!!b.restricted,accessAllow:JSON.stringify(b.restricted?e(b.allow):[])}}function h(a){if(!a||"object"!=typeof a||Array.isArray(a))return{ok:!1,error:"access must be an object { restricted, allow }"};let b=Object.keys(a).filter(a=>"restricted"!==a&&"allow"!==a);if(b.length)return{ok:!1,error:`access: unexpected field(s) ${b.join(", ")}`};if("boolean"!=typeof a.restricted)return{ok:!1,error:"access.restricted must be a boolean"};let c=void 0===a.allow?[]:a.allow;return!Array.isArray(c)||c.some(a=>"string"!=typeof a)?{ok:!1,error:"access.allow must be an array of strings"}:c.length>d.lO?{ok:!1,error:`access.allow has more than ${d.lO} entries`}:c.some(a=>a.trim().length>d.AM)?{ok:!1,error:`access.allow entries must be at most ${d.AM} characters`}:{ok:!0,value:{restricted:a.restricted,allow:e(c)}}}},36366:(a,b,c)=>{"use strict";c.d(b,{c:()=>k});var d=c(95658);global._dbAdapter||(global._dbAdapter={instance:null,initPromise:null,logged:!1});let e=global._dbAdapter;async function f(){if(!process.versions.bun)return null;try{let{createBunSqliteAdapter:a}=await c.e(4739).then(c.bind(c,24739));return await a(d.AL)}catch(a){return console.warn(`[DB] bun:sqlite unavailable: ${a.message}`),null}}async function g(){if(process.versions.bun)return null;let[a]=process.versions.node.split(".").map(Number);if(a>=24)return null;try{let{createBetterSqliteAdapter:a}=await c.e(5258).then(c.bind(c,25258));return a(d.AL)}catch(a){return console.warn(`[DB] better-sqlite3 unavailable: ${a.message}`),null}}async function h(){if(process.versions.bun)return null;let[a,b]=process.versions.node.split(".").map(Number);if(a<22||22===a&&b<5)return null;try{let{createNodeSqliteAdapter:a}=await c.e(8520).then(c.bind(c,88520));return await a(d.AL)}catch(a){return console.warn(`[DB] node:sqlite unavailable: ${a.message}`),null}}async function i(){try{let{createSqlJsAdapter:a}=await c.e(3593).then(c.bind(c,53593));return await a(d.AL)}catch(a){return console.warn(`[DB] sql.js unavailable: ${a.message}`),null}}async function j(){(0,d.Jh)();let a=await f();if(a||(a=await g()),a||(a=await h()),a||(a=await i()),!a)throw Error("[DB] No SQLite driver available (bun/better/node/sql.js all failed)");e.logged||(console.log(`[DB] Driver: ${a.driver} | file: ${d.AL}`),e.logged=!0);let{runMigrationOnce:b}=await c.e(5217).then(c.bind(c,45217));return await b(a),a}async function k(){return e.instance?e.instance:(e.initPromise||(e.initPromise=j().then(a=>(e.instance=a,a))),e.initPromise)}},38606:(a,b,c)=>{"use strict";c.d(b,{AM:()=>e,Cq:()=>i,M0:()=>f,WR:()=>h,YR:()=>g,lO:()=>d});let d=200,e=256,f=Object.freeze({restricted:!1,allow:Object.freeze([])}),g=Object.freeze(["webSearch","webFetch"]),h="combo";function i(a){return`This API key is not allowed to use model "${a}"`}},42655:(a,b,c)=>{"use strict";c.d(b,{Xx:()=>j,exportSettings:()=>k,getSettings:()=>i});var d=c(36366),e=c(644);let f={cloudEnabled:!1,tunnelEnabled:!1,tunnelUrl:"",tunnelProvider:"cloudflare",tailscaleEnabled:!1,tailscaleUrl:"",stickyRoundRobinLimit:3,providerStrategies:{},quotaVisibility:{},comboStrategy:"fallback",comboStickyRoundRobinLimit:1,comboStrategies:{},capacityAdapter:{vision:{enabled:!0,roundRobin:!1,models:[]},pdf:{enabled:!1,roundRobin:!1,models:[]},audioInput:{enabled:!0,roundRobin:!1,models:[]},videoInput:{enabled:!1,roundRobin:!1,models:[]}},requireLogin:!0,requireApiKey:!0,tunnelDashboardAccess:!0,authMode:"password",ssoType:"oidc",oidcIssuerUrl:"",oidcClientId:"",oidcClientSecret:"",oidcScopes:"openid profile email",oidcLoginLabel:"Sign in with OIDC",samlEntryPoint:"",samlIssuer:"urn:omnihilbras:sp",samlCert:"",samlLoginLabel:"Sign in with SAML SSO",samlAttributeEmail:"email",samlAttributeName:"name",enableObservability:!1,observabilityMaxRecords:1e3,observabilityBatchSize:20,observabilityFlushIntervalMs:5e3,observabilityMaxJsonSize:5,outboundProxyEnabled:!1,outboundProxyUrl:"",outboundNoProxy:"",mitmRouterBaseUrl:"http://localhost:20128",dnsToolEnabled:{},rtkEnabled:!0,headroomEnabled:!1,headroomUrl:process.env.HEADROOM_URL||"http://localhost:8787",headroomCompressUserMessages:!1,headroomTimeoutMs:3e3,cavemanEnabled:!1,cavemanLevel:"full",ponytailEnabled:!1,ponytailLevel:"full",pxpipeEnabled:!1,pxpipeAutoInstall:!0,pxpipeMinChars:25e3,pxpipeTimeoutMs:15e3,providerOverrides:{}};async function g(){let a=(await (0,d.c)()).get("SELECT data FROM settings WHERE id = 1");return a?(0,e.q)(a.data,{}):{}}function h(a){let b={...f,...a||{}};for(let[a,c]of Object.entries(f))void 0===b[a]&&("outboundProxyEnabled"===a&&"string"==typeof b.outboundProxyUrl&&b.outboundProxyUrl.trim()?b[a]=!0:b[a]=c);if(b.capacityAdapter&&"object"==typeof b.capacityAdapter)for(let a of Object.keys(b.capacityAdapter)){let c=b.capacityAdapter[a];Array.isArray(c?.models)&&(c.models=c.models.map(a=>"oc/mimo-v2.5-free"===a?"oc/mimo-v2.6-flash-free":a))}return b}async function i(){return h(await g())}async function j(a){let b,c=await (0,d.c)();return c.transaction(function(){let d=c.get("SELECT data FROM settings WHERE id = 1");b={...d?(0,e.q)(d.data,{}):{},...a},c.run("INSERT INTO settings(id, data) VALUES(1, ?) ON CONFLICT(id) DO UPDATE SET data = excluded.data",[(0,e.s)(b)])}),h(b)}async function k(){return await g()}},47765:(a,b,c)=>{"use strict";c.d(b,{S8:()=>u.S8,E5:()=>A.E5,bI:()=>i.cleanupProviderConnections,Iq:()=>s.createApiKey,jd:()=>t.jd,iE:()=>i.createProviderConnection,i0:()=>j.createProviderNode,ZO:()=>p,Lh:()=>s.deleteApiKey,CG:()=>t.CG,uL:()=>u.uL,fv:()=>u.fv,fK:()=>i.deleteProviderConnection,op:()=>i.deleteProviderConnectionsByProvider,Pc:()=>j.deleteProviderNode,Yd:()=>r,tm:()=>y,oF:()=>z,zP:()=>N,rg:()=>A.rg,yg:()=>s.getApiKeyById,PX:()=>s.getApiKeys,j$:()=>A.j$,L:()=>t.L,Dj:()=>t.Dj,Uv:()=>t.Uv,uv:()=>u.uv,vF:()=>x,Lk:()=>L,c:()=>u.getMitmAlias,OM:()=>u.OM,r4:()=>v.r4,Mc:()=>i.getProviderConnectionById,P:()=>i.getProviderConnections,Qu:()=>j.getProviderNodeById,Fh:()=>j.getProviderNodes,hr:()=>o,ui:()=>n,Zx:()=>A.Zx,SL:()=>K,mt:()=>h.getSettings,BY:()=>A.BY,K1:()=>O,VT:()=>v.VT,yF:()=>v.yF,ox:()=>J,sZ:()=>A.sZ,L9:()=>u.L9,o5:()=>u.o5,_V:()=>A._V,uw:()=>A.uw,XW:()=>s.updateApiKey,oG:()=>t.oG,KJ:()=>v.KJ,rj:()=>i.updateProviderConnection,ho:()=>j.updateProviderNode,Q_:()=>q,Xx:()=>h.Xx,ek:()=>s.validateApiKey});var d=c(36366),e=c(644),f=c(33666),g=c(38606),h=c(42655),i=c(5781),j=c(1129),k=c(94755);function l(a){return a?{...(0,e.q)(a.data,{}),id:a.id,isActive:1===a.isActive||!0===a.isActive,testStatus:a.testStatus,createdAt:a.createdAt,updatedAt:a.updatedAt}:null}function m(a,b){let c=function(a){let{id:b,isActive:c,testStatus:d,createdAt:f,updatedAt:g,...h}=a;return{id:b,isActive:+(!1!==c),testStatus:d??null,data:(0,e.s)(h),createdAt:f,updatedAt:g}}(b);a.run(`INSERT INTO proxyPools(id, isActive, testStatus, data, createdAt, updatedAt)
|
|
10
|
+
VALUES(?, ?, ?, ?, ?, ?)
|
|
11
|
+
ON CONFLICT(id) DO UPDATE SET
|
|
12
|
+
isActive=excluded.isActive, testStatus=excluded.testStatus,
|
|
13
|
+
data=excluded.data, updatedAt=excluded.updatedAt`,[c.id,c.isActive,c.testStatus,c.data,c.createdAt,c.updatedAt])}async function n(a={}){let b=await (0,d.c)(),c=[],e=[];void 0!==a.isActive&&(c.push("isActive = ?"),e.push(+!!a.isActive)),a.testStatus&&(c.push("testStatus = ?"),e.push(a.testStatus));let f=`SELECT * FROM proxyPools${c.length?` WHERE ${c.join(" AND ")}`:""}`,g=b.all(f,e).map(l);return g.sort((a,b)=>new Date(b.updatedAt||0)-new Date(a.updatedAt||0)),g}async function o(a){return l((await (0,d.c)()).get("SELECT * FROM proxyPools WHERE id = ?",[a]))}async function p(a){let b=await (0,d.c)(),c=new Date().toISOString(),e={id:a.id||(0,k.A)(),name:a.name,proxyUrl:a.proxyUrl,noProxy:a.noProxy||"",type:a.type||"http",isActive:void 0===a.isActive||a.isActive,strictProxy:!0===a.strictProxy,testStatus:a.testStatus||"unknown",lastTestedAt:a.lastTestedAt||null,lastError:a.lastError||null,createdAt:c,updatedAt:c};return m(b,e),e}async function q(a,b){let c=await (0,d.c)(),e=null;return c.transaction(()=>{let d=c.get("SELECT * FROM proxyPools WHERE id = ?",[a]);if(!d)return;let f={...l(d),...b,updatedAt:new Date().toISOString()};m(c,f),e=f}),e}async function r(a){let b=await (0,d.c)(),c=null;return b.transaction(()=>{let d=b.get("SELECT * FROM proxyPools WHERE id = ?",[a]);d&&(c=l(d),b.run("DELETE FROM proxyPools WHERE id = ?",[a]))}),c}var s=c(74452),t=c(1541),u=c(9460),v=c(97914);let w="disabledModels";async function x(){let a=(await (0,d.c)()).all("SELECT key, value FROM kv WHERE scope = ?",[w]),b={};for(let c of a)b[c.key]=(0,e.q)(c.value,[]);return b}async function y(a,b){if(!a||!Array.isArray(b))return;let c=await (0,d.c)();c.transaction(()=>{let d=c.get("SELECT value FROM kv WHERE scope = ? AND key = ?",[w,a]),f=[...new Set([...d&&(0,e.q)(d.value,[])||[],...b])];c.run("INSERT INTO kv(scope, key, value) VALUES(?, ?, ?) ON CONFLICT(scope, key) DO UPDATE SET value = excluded.value",[w,a,(0,e.s)(f)])})}async function z(a,b){if(!a)return;let c=await (0,d.c)();c.transaction(()=>{if(!Array.isArray(b)||0===b.length)return void c.run("DELETE FROM kv WHERE scope = ? AND key = ?",[w,a]);let d=c.get("SELECT value FROM kv WHERE scope = ? AND key = ?",[w,a]),f=d&&(0,e.q)(d.value,[])||[],g=new Set(b),h=f.filter(a=>!g.has(a));0===h.length?c.run("DELETE FROM kv WHERE scope = ? AND key = ?",[w,a]):c.run("INSERT INTO kv(scope, key, value) VALUES(?, ?, ?) ON CONFLICT(scope, key) DO UPDATE SET value = excluded.value",[w,a,(0,e.s)(h)])})}var A=c(99703);let B=null,C=0;async function D(){if(B&&Date.now()-C<5e3)return B;try{let{getSettings:a}=await Promise.resolve().then(c.bind(c,42655)),b=await a(),d=process.env.ENABLE_REQUEST_LOGS;if(void 0!==d)return B={enabled:"true"===d.toLowerCase(),maxRecords:b.observabilityMaxRecords||parseInt(process.env.OBSERVABILITY_MAX_RECORDS||String(200),10),batchSize:b.observabilityBatchSize||parseInt(process.env.OBSERVABILITY_BATCH_SIZE||String(20),10),flushIntervalMs:b.observabilityFlushIntervalMs||parseInt(process.env.OBSERVABILITY_FLUSH_INTERVAL_MS||String(5e3),10),maxJsonSize:1024*(b.observabilityMaxJsonSize||parseInt(process.env.OBSERVABILITY_MAX_JSON_SIZE||"5",10))},C=Date.now(),B;let e="false"!==process.env.OBSERVABILITY_ENABLED;B={enabled:"boolean"==typeof b.enableObservability?b.enableObservability:e,maxRecords:b.observabilityMaxRecords||parseInt(process.env.OBSERVABILITY_MAX_RECORDS||String(200),10),batchSize:b.observabilityBatchSize||parseInt(process.env.OBSERVABILITY_BATCH_SIZE||String(20),10),flushIntervalMs:b.observabilityFlushIntervalMs||parseInt(process.env.OBSERVABILITY_FLUSH_INTERVAL_MS||String(5e3),10),maxJsonSize:1024*(b.observabilityMaxJsonSize||parseInt(process.env.OBSERVABILITY_MAX_JSON_SIZE||"5",10))}}catch{B={enabled:!1,maxRecords:200,batchSize:20,flushIntervalMs:5e3,maxJsonSize:5120}}return C=Date.now(),B}let E=[],F=null,G=!1;function H(a,b){let c=JSON.stringify(a||{});return c.length>b?{_truncated:!0,_originalSize:c.length,_preview:c.substring(0,200)}:a||{}}async function I(){if(!G&&0!==E.length){G=!0;try{for(;E.length>0;){let a=E.splice(0,E.length),b=await (0,d.c)(),c=await D();b.transaction(()=>{for(let d of a){d.id||(d.id=function(a){let b=new Date().toISOString(),c=Math.random().toString(36).substring(2,8),d=a?a.replace(/[^a-zA-Z0-9-]/g,"-"):"unknown";return`${b}-${c}-${d}`}(d.model)),d.timestamp||(d.timestamp=new Date().toISOString()),d.request?.headers&&(d.request.headers=function(a){if(!a||"object"!=typeof a)return{};let b=["authorization","x-api-key","cookie","token","api-key"],c={...a};for(let a of Object.keys(c))b.some(b=>a.toLowerCase().includes(b))&&delete c[a];return c}(d.request.headers));let a={id:d.id,provider:d.provider||null,model:d.model||null,connectionId:d.connectionId||null,timestamp:d.timestamp,status:d.status||null,latency:d.latency||{},tokens:d.tokens||{},request:H(d.request,c.maxJsonSize),providerRequest:H(d.providerRequest,c.maxJsonSize),providerResponse:H(d.providerResponse,c.maxJsonSize),response:H(d.response,c.maxJsonSize),pxpipe:d.pxpipe||void 0};b.run("INSERT INTO requestDetails(id, timestamp, provider, model, connectionId, status, data) VALUES(?, ?, ?, ?, ?, ?, ?) ON CONFLICT(id) DO UPDATE SET timestamp = excluded.timestamp, provider = excluded.provider, model = excluded.model, connectionId = excluded.connectionId, status = excluded.status, data = excluded.data",[a.id,a.timestamp,a.provider,a.model,a.connectionId,a.status,(0,e.s)(a)])}let d=b.get("SELECT COUNT(*) as c FROM requestDetails");d&&d.c>c.maxRecords&&b.run("DELETE FROM requestDetails WHERE id IN (SELECT id FROM requestDetails ORDER BY timestamp ASC LIMIT ?)",[d.c-c.maxRecords])})}}catch(a){console.error("[requestDetailsRepo] Batch write failed:",a)}finally{G=!1}}}async function J(a){let b=await D();b.enabled&&(E.push(a),E.length>=b.batchSize?(F&&(clearTimeout(F),F=null),I().catch(a=>console.error("[requestDetailsRepo] flush err:",a))):F||(F=setTimeout(()=>{F=null,I().catch(()=>{})},b.flushIntervalMs)))}async function K(a={}){let b=await (0,d.c)(),c=[],f=[];a.provider&&(c.push("provider = ?"),f.push(a.provider)),a.model&&(c.push("model = ?"),f.push(a.model)),a.connectionId&&(c.push("connectionId = ?"),f.push(a.connectionId)),a.status&&(c.push("status = ?"),f.push(a.status)),a.startDate&&(c.push("timestamp >= ?"),f.push(new Date(a.startDate).toISOString())),a.endDate&&(c.push("timestamp <= ?"),f.push(new Date(a.endDate).toISOString()));let g=c.length?`WHERE ${c.join(" AND ")}`:"",h=b.get(`SELECT COUNT(*) as c FROM requestDetails ${g}`,f),i=h?h.c:0,j=a.page||1,k=a.pageSize||50,l=Math.ceil(i/k);return{details:b.all(`SELECT data FROM requestDetails ${g} ORDER BY timestamp DESC LIMIT ? OFFSET ?`,[...f,k,(j-1)*k]).map(a=>(0,e.q)(a.data,{})),pagination:{page:j,pageSize:k,totalItems:i,totalPages:l,hasNext:j<l,hasPrev:j>1}}}async function L(){return(await (0,d.c)()).all("SELECT DISTINCT provider FROM requestDetails WHERE provider IS NOT NULL ORDER BY provider ASC").map(a=>a.provider)}let M=async()=>{F&&(clearTimeout(F),F=null),E.length>0&&await I()};async function N(){let a=await (0,d.c)(),{exportSettings:b}=await Promise.resolve().then(c.bind(c,42655)),g={settings:await b(),providerConnections:a.all("SELECT * FROM providerConnections").map(a=>({...(0,e.q)(a.data,{}),id:a.id,provider:a.provider,authType:a.authType,name:a.name,email:a.email,priority:a.priority,isActive:1===a.isActive,createdAt:a.createdAt,updatedAt:a.updatedAt})),providerNodes:a.all("SELECT * FROM providerNodes").map(a=>({...(0,e.q)(a.data,{}),id:a.id,type:a.type,name:a.name,createdAt:a.createdAt,updatedAt:a.updatedAt})),proxyPools:a.all("SELECT * FROM proxyPools").map(a=>({...(0,e.q)(a.data,{}),id:a.id,isActive:1===a.isActive,testStatus:a.testStatus,createdAt:a.createdAt,updatedAt:a.updatedAt})),apiKeys:a.all("SELECT * FROM apiKeys").map(a=>({id:a.id,key:a.key,name:a.name,machineId:a.machineId,isActive:1===a.isActive,createdAt:a.createdAt,access:(0,f.xE)(a.accessRestricted,a.accessAllow)})),combos:a.all("SELECT * FROM combos").map(a=>({id:a.id,name:a.name,kind:a.kind,models:(0,e.q)(a.models,[]),createdAt:a.createdAt,updatedAt:a.updatedAt})),modelAliases:{},customModels:[],mitmAlias:{},pricing:{}};for(let b of a.all("SELECT key, value FROM kv WHERE scope = 'modelAliases'"))g.modelAliases[b.key]=(0,e.q)(b.value);for(let b of a.all("SELECT key, value FROM kv WHERE scope = 'customModels'"))g.customModels.push((0,e.q)(b.value));for(let b of a.all("SELECT key, value FROM kv WHERE scope = 'mitmAlias'"))g.mitmAlias[b.key]=(0,e.q)(b.value);for(let b of a.all("SELECT key, value FROM kv WHERE scope = 'pricing'"))g.pricing[b.key]=(0,e.q)(b.value);return g}async function O(a){if(!a||"object"!=typeof a||Array.isArray(a))throw Error("Invalid database payload");let b=await (0,d.c)();return b.transaction(()=>{for(let c of(b.run("DELETE FROM settings"),b.run("DELETE FROM providerConnections"),b.run("DELETE FROM providerNodes"),b.run("DELETE FROM proxyPools"),b.run("DELETE FROM apiKeys"),b.run("DELETE FROM combos"),b.run("DELETE FROM kv WHERE scope IN ('modelAliases', 'customModels', 'mitmAlias', 'pricing')"),a.settings&&b.run("INSERT INTO settings(id, data) VALUES(1, ?) ON CONFLICT(id) DO UPDATE SET data = excluded.data",[(0,e.s)(a.settings)]),a.providerConnections||[])){let{id:a,provider:d,authType:f,name:g,email:h,priority:i,isActive:j,createdAt:k,updatedAt:l,...m}=c;b.run("INSERT OR REPLACE INTO providerConnections(id, provider, authType, name, email, priority, isActive, data, createdAt, updatedAt) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?)",[a,d,f||"oauth",g||null,h||null,i||null,+(!1!==j),(0,e.s)(m),k||new Date().toISOString(),l||new Date().toISOString()])}for(let c of a.providerNodes||[]){let{id:a,type:d,name:f,createdAt:g,updatedAt:h,...i}=c;b.run("INSERT OR REPLACE INTO providerNodes(id, type, name, data, createdAt, updatedAt) VALUES(?, ?, ?, ?, ?, ?)",[a,d||null,f||null,(0,e.s)(i),g||new Date().toISOString(),h||new Date().toISOString()])}for(let c of a.proxyPools||[]){let{id:a,isActive:d,testStatus:f,createdAt:g,updatedAt:h,...i}=c;b.run("INSERT OR REPLACE INTO proxyPools(id, isActive, testStatus, data, createdAt, updatedAt) VALUES(?, ?, ?, ?, ?, ?)",[a,+(!1!==d),f||"unknown",(0,e.s)(i),g||new Date().toISOString(),h||new Date().toISOString()])}for(let c of a.apiKeys||[]){let a=g.M0;if(void 0!==c.access){let b=(0,f.M7)(c.access);if(!b.ok)throw Error(`apiKeys ${c.id}: ${b.error}`);a=b.value}let d=(0,f.aB)(a);b.run("INSERT OR REPLACE INTO apiKeys(id, key, name, machineId, isActive, createdAt, accessRestricted, accessAllow) VALUES(?, ?, ?, ?, ?, ?, ?, ?)",[c.id,c.key,c.name||null,c.machineId||null,+(!1!==c.isActive),c.createdAt||new Date().toISOString(),d.accessRestricted,d.accessAllow])}for(let c of a.combos||[])b.run("INSERT OR REPLACE INTO combos(id, name, kind, models, createdAt, updatedAt) VALUES(?, ?, ?, ?, ?, ?)",[c.id,c.name,c.kind||null,(0,e.s)(c.models||[]),c.createdAt||new Date().toISOString(),c.updatedAt||new Date().toISOString()]);for(let[c,d]of Object.entries(a.modelAliases||{}))b.run("INSERT OR REPLACE INTO kv(scope, key, value) VALUES('modelAliases', ?, ?)",[c,(0,e.s)(d)]);for(let c of a.customModels||[]){let a=`${c.providerAlias}|${c.id}|${c.type||"llm"}`;b.run("INSERT OR REPLACE INTO kv(scope, key, value) VALUES('customModels', ?, ?)",[a,(0,e.s)(c)])}for(let[c,d]of Object.entries(a.mitmAlias||{}))b.run("INSERT OR REPLACE INTO kv(scope, key, value) VALUES('mitmAlias', ?, ?)",[c,(0,e.s)(d||{})]);for(let[c,d]of Object.entries(a.pricing||{}))b.run("INSERT OR REPLACE INTO kv(scope, key, value) VALUES('pricing', ?, ?)",[c,(0,e.s)(d||{})])}),await N()}process.off("beforeExit",M),process.off("SIGINT",M),process.off("SIGTERM",M),process.off("exit",M),process.on("beforeExit",M),process.on("SIGINT",M),process.on("SIGTERM",M),process.on("exit",M)},49120:(a,b,c)=>{"use strict";c.d(b,{n:()=>l});var d=c(73024),e=c.n(d),f=c(33873),g=c.n(f),h=c(21820),i=c.n(h);let j="omnihilbras";function k(){return"win32"===process.platform?g().join(process.env.APPDATA||g().join(i().homedir(),"AppData","Roaming"),j):g().join(i().homedir(),`.${j}`)}let l=function(){let a=process.env.DATA_DIR;if(!a)return k();if("win32"===process.platform&&/^\//.test(a))return console.warn(`[DATA_DIR] '${a}' is a Unix path on Windows → fallback to default`),k();try{return e().mkdirSync(a,{recursive:!0}),a}catch(b){if(b?.code==="EACCES"||b?.code==="EPERM")return console.warn(`[DATA_DIR] '${a}' not writable → fallback ~/.${j}`),k();throw b}}()},62674:(a,b,c)=>{"use strict";function d(a,b,c=null){let e=a.get("SELECT value FROM _meta WHERE key = ?",[b]);return e?e.value:c}function e(a,b,c){a.run("INSERT INTO _meta(key, value) VALUES(?, ?) ON CONFLICT(key) DO UPDATE SET value = excluded.value",[b,String(c)])}c.d(b,{dy:()=>d,np:()=>e}),c(36366)},74452:(a,b,c)=>{"use strict";c.r(b),c.d(b,{createApiKey:()=>l,deleteApiKey:()=>n,getApiKeyById:()=>j,getApiKeyByKey:()=>k,getApiKeys:()=>i,updateApiKey:()=>m,validateApiKey:()=>o});var d=c(94755),e=c(36366),f=c(33666),g=c(38606);function h(a){return a?{id:a.id,key:a.key,name:a.name,machineId:a.machineId,isActive:1===a.isActive||!0===a.isActive,createdAt:a.createdAt,access:(0,f.xE)(a.accessRestricted,a.accessAllow)}:null}async function i(){return(await (0,e.c)()).all("SELECT * FROM apiKeys ORDER BY createdAt ASC").map(h)}async function j(a){return h((await (0,e.c)()).get("SELECT * FROM apiKeys WHERE id = ?",[a]))}async function k(a){return a?h((await (0,e.c)()).get("SELECT * FROM apiKeys WHERE key = ?",[a])):null}async function l(a,b){if(!b)throw Error("machineId is required");let h=await (0,e.c)(),{generateApiKeyWithMachine:i}=await c.e(6844).then(c.bind(c,86844)),j=i(b),k={id:(0,d.A)(),name:a,key:j.key,machineId:b,isActive:!0,createdAt:new Date().toISOString(),access:{restricted:!1,allow:[]}},l=(0,f.aB)(g.M0);return h.run("INSERT INTO apiKeys(id, key, name, machineId, isActive, createdAt, accessRestricted, accessAllow) VALUES(?, ?, ?, ?, ?, ?, ?, ?)",[k.id,k.key,k.name,k.machineId,1,k.createdAt,l.accessRestricted,l.accessAllow]),k}async function m(a,b){let c=await (0,e.c)(),d=null;return c.transaction(()=>{let e=c.get("SELECT * FROM apiKeys WHERE id = ?",[a]);if(!e)return;let g={...h(e),...b},i=(0,f.aB)(g.access);c.run("UPDATE apiKeys SET key = ?, name = ?, machineId = ?, isActive = ?, accessRestricted = ?, accessAllow = ? WHERE id = ?",[g.key,g.name,g.machineId,+!!g.isActive,i.accessRestricted,i.accessAllow,a]),d=h(c.get("SELECT * FROM apiKeys WHERE id = ?",[a]))}),d}async function n(a){let b=(await (0,e.c)()).run("DELETE FROM apiKeys WHERE id = ?",[a]);return(b?.changes??0)>0}async function o(a){let b=(await (0,e.c)()).get("SELECT isActive FROM apiKeys WHERE key = ?",[a]);return!!b&&(1===b.isActive||!0===b.isActive)}},78335:()=>{},95658:(a,b,c)=>{"use strict";c.d(b,{AL:()=>j,HG:()=>i,Jh:()=>m,KQ:()=>k,Or:()=>l});var d=c(76760),e=c.n(d),f=c(73024),g=c.n(f),h=c(49120);let i=e().join(h.n,"db"),j=e().join(i,"data.sqlite"),k=e().join(i,"backups"),l={main:e().join(h.n,"db.json"),usage:e().join(h.n,"usage.json"),disabled:e().join(h.n,"disabledModels.json"),details:e().join(h.n,"request-details.json")};function m(){for(let a of[h.n,i,k])g().existsSync(a)||g().mkdirSync(a,{recursive:!0})}},96487:()=>{},97914:(a,b,c)=>{"use strict";c.d(b,{KJ:()=>l,VT:()=>n,getPricingForModel:()=>k,r4:()=>j,yF:()=>m});var d=c(36366),e=c(644);let f=(0,c(22846).U)("pricing"),g={value:null,expiresAt:0};function h(){g={value:null,expiresAt:0}}async function i(){return await f.getAll()}async function j(){let a=Date.now();if(g.value&&g.expiresAt>a)return g.value;let b=await i(),{PROVIDER_PRICING:d}=await c.e(8920).then(c.bind(c,58920)),e={};for(let[a,c]of Object.entries(d))if(e[a]={...c},b[a])for(let[c,d]of Object.entries(b[a]))e[a][c]=e[a][c]?{...e[a][c],...d}:d;for(let[a,c]of Object.entries(b))if(e[a])for(let[b,d]of Object.entries(c))e[a][b]||(e[a][b]=d);else e[a]={...c};return g={value:e,expiresAt:a+5e3},e}async function k(a,b){if(!b)return null;let d=await i();if(a&&d[a]?.[b])return d[a][b];let{getPricingForModel:e}=await c.e(8920).then(c.bind(c,58920));return e(a,b)}async function l(a){let b=await (0,d.c)();return b.transaction(()=>{for(let[c,d]of Object.entries(a)){let a=b.get("SELECT value FROM kv WHERE scope = 'pricing' AND key = ?",[c]),f={...a&&(0,e.q)(a.value,{})||{}};for(let[a,b]of Object.entries(d))f[a]=b;b.run("INSERT INTO kv(scope, key, value) VALUES('pricing', ?, ?) ON CONFLICT(scope, key) DO UPDATE SET value = excluded.value",[c,(0,e.s)(f)])}}),h(),await i()}async function m(a,b){if(!a)return await i();let c=await (0,d.c)();return c.transaction(()=>{if(!b)return void c.run("DELETE FROM kv WHERE scope = 'pricing' AND key = ?",[a]);let d=c.get("SELECT value FROM kv WHERE scope = 'pricing' AND key = ?",[a]),f=d&&(0,e.q)(d.value,{})||{};delete f[b],0===Object.keys(f).length?c.run("DELETE FROM kv WHERE scope = 'pricing' AND key = ?",[a]):c.run("INSERT INTO kv(scope, key, value) VALUES('pricing', ?, ?) ON CONFLICT(scope, key) DO UPDATE SET value = excluded.value",[a,(0,e.s)(f)])}),h(),await i()}async function n(){return await f.clear(),h(),{}}},99703:(a,b,c)=>{"use strict";c.d(b,{BY:()=>y,E5:()=>A,Zx:()=>B,_V:()=>n,getUsageTotalsForConnection:()=>t,j$:()=>z,rg:()=>v,sZ:()=>w,uw:()=>u});var d=c(94735),e=c(36366),f=c(644);function g(a){if(!a||"string"!=typeof a)return null;let b=a.trim();return b.length<=12?b.charAt(0)+"***":b.slice(0,8)+"***"+b.slice(-4)}c(62674);global._pendingRequests||(global._pendingRequests={byModel:{},byAccount:{}}),global._lastErrorProvider||(global._lastErrorProvider={provider:"",ts:0}),global._statsEmitter||(global._statsEmitter=new d.EventEmitter,global._statsEmitter.setMaxListeners(50)),global._pendingTimers||(global._pendingTimers={}),global._recentRing||(global._recentRing={items:[],initialized:!1}),global._connectionMapCache||(global._connectionMapCache={map:{},ts:0}),global._statsEmitTimers||(global._statsEmitTimers={pending:null,update:null});let h=global._pendingRequests,i=global._lastErrorProvider,j=global._pendingTimers,k=global._recentRing,l=global._connectionMapCache,m=global._statsEmitTimers,n=global._statsEmitter;function o(a,b=150){let c="update"===a?"update":"pending";m[c]||(m[c]=setTimeout(()=>{m[c]=null,n.emit(a)},b),m[c]?.unref?.())}function p(a,b,c){a[b]||(a[b]={requests:0,promptTokens:0,completionTokens:0,cachedTokens:0,cost:0}),a[b].requests+=c.requests||1,a[b].promptTokens+=c.promptTokens||0,a[b].completionTokens+=c.completionTokens||0,a[b].cachedTokens+=c.cachedTokens||0,a[b].cost+=c.cost||0,c.meta&&Object.assign(a[b],c.meta)}async function q(){if(Date.now()-l.ts<3e4)return l.map;try{let{getProviderConnections:a}=await Promise.resolve().then(c.bind(c,5781)),b=await a(),d={};for(let a of b)d[a.id]=a.name||a.email||a.id;l.map=d,l.ts=Date.now()}catch{}return l.map}async function r(){if(!k.initialized){k.initialized=!0;try{k.items=(await (0,e.c)()).all("SELECT timestamp, provider, model, connectionId, apiKey, endpoint, cost, status, tokens FROM usageHistory ORDER BY id DESC LIMIT ?",[50]).reverse().map(a=>({timestamp:a.timestamp,provider:a.provider,model:a.model,connectionId:a.connectionId,apiKey:a.apiKey,endpoint:a.endpoint,cost:a.cost,status:a.status,tokens:(0,f.q)(a.tokens,{})}))}catch{}}}async function s(a,b,d){if(!d||!a||!b)return 0;try{let{getPricingForModel:e}=await Promise.resolve().then(c.bind(c,97914)),f=await e(a,b);if(!f)return 0;let{calculateCostFromTokens:g}=await c.e(8920).then(c.bind(c,58920));return g(d,f)}catch(a){return console.error("Error calculating cost:",a),0}}async function t(a,b=2592e6){if(!a)return null;try{let c=await (0,e.c)(),d=new Date(Date.now()-b).toISOString(),f=c.get(`SELECT COUNT(*) AS requests,
|
|
14
|
+
COALESCE(SUM(promptTokens), 0) AS promptTokens,
|
|
15
|
+
COALESCE(SUM(completionTokens), 0) AS completionTokens,
|
|
16
|
+
COALESCE(SUM(cost), 0) AS cost
|
|
17
|
+
FROM usageHistory WHERE connectionId = ? AND timestamp >= ?`,[a,d]);if(!f||!(f.requests>0))return null;return{windowMs:b,requests:f.requests,tokens:f.promptTokens+f.completionTokens,cost:f.cost}}catch(a){return console.error("getUsageTotalsForConnection failed:",a.message),null}}function u(a,b,c,d,e=!1){let f=b?`${a} (${b})`:a,g=`${c}|${f}`;h.byModel[f]||(h.byModel[f]=0),h.byModel[f]=Math.max(0,h.byModel[f]+(d?1:-1)),0===h.byModel[f]&&delete h.byModel[f],c&&(h.byAccount[c]||(h.byAccount[c]={}),h.byAccount[c][f]||(h.byAccount[c][f]=0),h.byAccount[c][f]=Math.max(0,h.byAccount[c][f]+(d?1:-1)),0===h.byAccount[c][f]&&(delete h.byAccount[c][f],0===Object.keys(h.byAccount[c]).length&&delete h.byAccount[c])),d?(clearTimeout(j[g]),j[g]=setTimeout(()=>{delete j[g],h.byModel[f]>0&&(h.byModel[f]=0),c&&h.byAccount[c]?.[f]>0&&(h.byAccount[c][f]=0),o("pending")},6e4)):(clearTimeout(j[g]),delete j[g]),!d&&e&&b&&(i.provider=b.toLowerCase(),i.ts=Date.now()),o("pending")}async function v(){let a=[],b=await q();for(let[c,d]of Object.entries(h.byAccount))for(let[e,f]of Object.entries(d))if(f>0){let d=b[c]||`Account ${c.slice(0,8)}...`,g=e.match(/^(.*) \((.*)\)$/);a.push({model:g?g[1]:e,provider:g?g[2]:"unknown",account:d,count:f})}await r();let c=new Set;return{activeRequests:a,recentRequests:[...k.items].sort((a,b)=>new Date(b.timestamp)-new Date(a.timestamp)).map(a=>{let b=a.tokens||{};return{timestamp:a.timestamp,model:a.model,provider:a.provider||"",promptTokens:b.prompt_tokens||b.input_tokens||0,completionTokens:b.completion_tokens||b.output_tokens||0,status:a.status||"ok"}}).filter(a=>{if(0===a.promptTokens&&0===a.completionTokens)return!1;let b=a.timestamp?a.timestamp.slice(0,16):"",d=`${a.model}|${a.provider}|${a.promptTokens}|${a.completionTokens}|${b}`;return!c.has(d)&&(c.add(d),!0)}).slice(0,20),errorProvider:Date.now()-i.ts<1e4?i.provider:""}}async function w(a){try{let b=await (0,e.c)();a.timestamp||(a.timestamp=new Date().toISOString()),a.cost=await s(a.provider,a.model,a.tokens);let c=a.tokens||{},d=c.prompt_tokens||c.input_tokens||0,g=c.completion_tokens||c.output_tokens||0,h=!1;(b.transaction(()=>{var e;let i,j=b.get(`SELECT id, endpoint FROM usageHistory
|
|
18
|
+
WHERE timestamp = ?
|
|
19
|
+
AND COALESCE(provider, '') = COALESCE(?, '')
|
|
20
|
+
AND COALESCE(model, '') = COALESCE(?, '')
|
|
21
|
+
AND COALESCE(connectionId, '') = COALESCE(?, '')
|
|
22
|
+
AND COALESCE(apiKey, '') = COALESCE(?, '')
|
|
23
|
+
AND promptTokens = ?
|
|
24
|
+
AND completionTokens = ?
|
|
25
|
+
ORDER BY id DESC LIMIT 1`,[a.timestamp,a.provider||null,a.model||null,a.connectionId||null,a.apiKey||null,d,g]);if(j){!j.endpoint&&a.endpoint&&b.run("UPDATE usageHistory SET endpoint = ? WHERE id = ?",[a.endpoint,j.id]);return}b.run("INSERT INTO usageHistory(timestamp, provider, model, connectionId, apiKey, endpoint, promptTokens, completionTokens, cost, status, tokens, meta) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)",[a.timestamp,a.provider||null,a.model||null,a.connectionId||null,a.apiKey||null,a.endpoint||null,d,g,a.cost||0,a.status||"ok",(0,f.s)(c),(0,f.s)({})]);let k=(i=(e=a.timestamp)?new Date(e):new Date,`${i.getFullYear()}-${String(i.getMonth()+1).padStart(2,"0")}-${String(i.getDate()).padStart(2,"0")}`),l=b.get("SELECT data FROM usageDaily WHERE dateKey = ?",[k]),m=l?(0,f.q)(l.data,{}):{requests:0,promptTokens:0,completionTokens:0,cost:0,byProvider:{},byModel:{},byAccount:{},byApiKey:{},byEndpoint:{}};!function(a,b){let c=b.tokens?.prompt_tokens||b.tokens?.input_tokens||0,d=b.tokens?.completion_tokens||b.tokens?.output_tokens||0,e=b.tokens?.cached_tokens||b.tokens?.cache_read_input_tokens||0,f=b.cost||0,g={promptTokens:c,completionTokens:d,cachedTokens:e,cost:f};a.requests=(a.requests||0)+1,a.promptTokens=(a.promptTokens||0)+c,a.completionTokens=(a.completionTokens||0)+d,a.cachedTokens=(a.cachedTokens||0)+e,a.cost=(a.cost||0)+f,a.byProvider||={},a.byModel||={},a.byAccount||={},a.byApiKey||={},a.byEndpoint||={},b.provider&&p(a.byProvider,b.provider,g);let h=b.provider?`${b.model}|${b.provider}`:b.model;if(p(a.byModel,h,{...g,meta:{rawModel:b.model,provider:b.provider}}),b.connectionId){let c=`${b.connectionId}|${b.model}|${b.provider||"unknown"}`;p(a.byAccount,c,{...g,meta:{rawModel:b.model,provider:b.provider}})}let i=b.apiKey&&"string"==typeof b.apiKey?b.apiKey:"local-no-key",j=`${i}|${b.model}|${b.provider||"unknown"}`;p(a.byApiKey,j,{...g,meta:{rawModel:b.model,provider:b.provider,apiKey:b.apiKey||null}});let k=b.endpoint||"Unknown",l=`${k}|${b.model}|${b.provider||"unknown"}`;p(a.byEndpoint,l,{...g,meta:{endpoint:k,rawModel:b.model,provider:b.provider}})}(m,a),b.run("INSERT INTO usageDaily(dateKey, data) VALUES(?, ?) ON CONFLICT(dateKey) DO UPDATE SET data = excluded.data",[k,(0,f.s)(m)]);let n=b.get("SELECT value FROM _meta WHERE key = 'totalRequestsLifetime'"),o=(n?parseInt(n.value,10):0)+1;b.run("INSERT INTO _meta(key, value) VALUES('totalRequestsLifetime', ?) ON CONFLICT(key) DO UPDATE SET value = excluded.value",[String(o)]),h=!0}),h)&&(k.items.push(a),k.items.length>50&&(k.items=k.items.slice(-50)),o("update",250))}catch(a){console.error("Failed to save usage stats:",a)}}function x(a,b){if(null==b)return a.all("SELECT dateKey, data FROM usageDaily ORDER BY dateKey ASC");let c=new Date,d=new Date(c.getFullYear(),c.getMonth(),c.getDate()-b+1),e=`${d.getFullYear()}-${String(d.getMonth()+1).padStart(2,"0")}-${String(d.getDate()).padStart(2,"0")}`;return a.all("SELECT dateKey, data FROM usageDaily WHERE dateKey >= ? ORDER BY dateKey ASC",[e])}async function y(a="all"){let b=await (0,e.c)(),[{getProviderConnections:d},{getApiKeys:j},{getProviderNodes:k}]=await Promise.all([Promise.resolve().then(c.bind(c,5781)),Promise.resolve().then(c.bind(c,74452)),Promise.resolve().then(c.bind(c,1129))]),l=[];try{l=await d()}catch{}let m={};for(let a of l)m[a.id]=a.name||a.email||a.id;let n={};try{for(let a of(await k()))a.id&&a.name&&(n[a.id]=a.name)}catch{}let o=[];try{o=await j()}catch{}let p={};for(let a of o)a.key&&(p[a.key.trim()]={name:a.name,id:a.id,createdAt:a.createdAt});let q=b.all("SELECT timestamp, provider, model, tokens, status FROM usageHistory ORDER BY id DESC LIMIT 100"),r=new Set,s={totalRequests:0,totalPromptTokens:0,totalCompletionTokens:0,totalCachedTokens:0,totalCost:0,byProvider:{},byModel:{},byAccount:{},byApiKey:{},byEndpoint:{},last10Minutes:[],pending:h,activeRequests:[],recentRequests:q.map(a=>{let b=(0,f.q)(a.tokens,{})||{};return{timestamp:a.timestamp,model:a.model,provider:a.provider||"",promptTokens:b.prompt_tokens||b.input_tokens||0,completionTokens:b.completion_tokens||b.output_tokens||0,cachedTokens:b.cached_tokens||b.cache_read_input_tokens||0,status:a.status||"ok"}}).filter(a=>{if(0===a.promptTokens&&0===a.completionTokens)return!1;let b=a.timestamp?a.timestamp.slice(0,16):"",c=`${a.model}|${a.provider}|${a.promptTokens}|${a.completionTokens}|${b}`;return!r.has(c)&&(r.add(c),!0)}).slice(0,20),errorProvider:Date.now()-i.ts<1e4?i.provider:""};for(let[a,b]of Object.entries(h.byAccount))for(let[c,d]of Object.entries(b))if(d>0){let b=m[a]||`Account ${a.slice(0,8)}...`,e=c.match(/^(.*) \((.*)\)$/);s.activeRequests.push({model:e?e[1]:c,provider:e?e[2]:"unknown",account:b,count:d})}let t=new Date,u=new Date(6e4*Math.floor(t.getTime()/6e4)),v=new Date(u.getTime()-54e4),w={};for(let a=0;a<10;a++){let b=u.getTime()-(9-a)*6e4;w[b]={requests:0,promptTokens:0,completionTokens:0,cost:0},s.last10Minutes.push(w[b])}for(let a of b.all("SELECT timestamp, promptTokens, completionTokens, cost FROM usageHistory WHERE timestamp >= ? AND timestamp <= ?",[v.toISOString(),t.toISOString()])){let b=6e4*Math.floor(new Date(a.timestamp).getTime()/6e4);w[b]&&(w[b].requests++,w[b].promptTokens+=a.promptTokens||0,w[b].completionTokens+=a.completionTokens||0,w[b].cost+=a.cost||0)}if("24h"!==a&&"today"!==a){let c={"7d":7,"30d":30,"60d":60}[a]||null;for(let a of x(b,c)){let b=a.dateKey,c=(0,f.q)(a.data,{});for(let[a,b]of(s.totalPromptTokens+=c.promptTokens||0,s.totalCompletionTokens+=c.completionTokens||0,s.totalCachedTokens+=c.cachedTokens||0,s.totalCost+=c.cost||0,Object.entries(c.byProvider||{})))s.byProvider[a]||(s.byProvider[a]={requests:0,promptTokens:0,completionTokens:0,cachedTokens:0,cost:0}),s.byProvider[a].requests+=b.requests||0,s.byProvider[a].promptTokens+=b.promptTokens||0,s.byProvider[a].completionTokens+=b.completionTokens||0,s.byProvider[a].cachedTokens+=b.cachedTokens||0,s.byProvider[a].cost+=b.cost||0;for(let[a,d]of Object.entries(c.byModel||{})){let c=d.rawModel||a.split("|")[0],e=d.provider||a.split("|")[1]||"",f=e?`${c} (${e})`:c,g=n[e]||e;s.byModel[f]||(s.byModel[f]={requests:0,promptTokens:0,completionTokens:0,cachedTokens:0,cost:0,rawModel:c,provider:g,lastUsed:b}),s.byModel[f].requests+=d.requests||0,s.byModel[f].promptTokens+=d.promptTokens||0,s.byModel[f].completionTokens+=d.completionTokens||0,s.byModel[f].cachedTokens+=d.cachedTokens||0,s.byModel[f].cost+=d.cost||0,b>(s.byModel[f].lastUsed||"")&&(s.byModel[f].lastUsed=b)}for(let[a,d]of Object.entries(c.byAccount||{})){let c=a,e=d.rawModel||"",f=d.provider||"";if(a.includes("|")){let b=a.split("|");c=b[0],e=b[1]??e,f=b[2]??f}let g=m[c]||`Account ${c.slice(0,8)}...`,h=n[f]||f,i=`${e} (${f} - ${g})`;s.byAccount[i]||(s.byAccount[i]={requests:0,promptTokens:0,completionTokens:0,cachedTokens:0,cost:0,rawModel:e,provider:h,connectionId:c,accountName:g,lastUsed:b}),s.byAccount[i].requests+=d.requests||0,s.byAccount[i].promptTokens+=d.promptTokens||0,s.byAccount[i].completionTokens+=d.completionTokens||0,s.byAccount[i].cachedTokens+=d.cachedTokens||0,s.byAccount[i].cost+=d.cost||0,b>(s.byAccount[i].lastUsed||"")&&(s.byAccount[i].lastUsed=b)}for(let[a,d]of Object.entries(c.byApiKey||{})){let c=d.rawModel||"",e=d.provider||"",f=n[e]||e,h=d.apiKey?d.apiKey.trim():null,i=h?p[h]:null,j=g(h),k=i?.name||(h?j||h.slice(0,8)+"...":"Local (No API Key)"),l=j||"local-no-key";s.byApiKey[a]||(s.byApiKey[a]={requests:0,promptTokens:0,completionTokens:0,cachedTokens:0,cost:0,rawModel:c,provider:f,apiKeyMasked:j,keyName:k,apiKeyKey:l,lastUsed:b}),s.byApiKey[a].requests+=d.requests||0,s.byApiKey[a].promptTokens+=d.promptTokens||0,s.byApiKey[a].completionTokens+=d.completionTokens||0,s.byApiKey[a].cachedTokens+=d.cachedTokens||0,s.byApiKey[a].cost+=d.cost||0,b>(s.byApiKey[a].lastUsed||"")&&(s.byApiKey[a].lastUsed=b)}for(let[a,d]of Object.entries(c.byEndpoint||{})){let c=d.endpoint||a.split("|")[0]||"Unknown",e=d.rawModel||"",f=d.provider||"",g=n[f]||f;s.byEndpoint[a]||(s.byEndpoint[a]={requests:0,promptTokens:0,completionTokens:0,cachedTokens:0,cost:0,endpoint:c,rawModel:e,provider:g,lastUsed:b}),s.byEndpoint[a].requests+=d.requests||0,s.byEndpoint[a].promptTokens+=d.promptTokens||0,s.byEndpoint[a].completionTokens+=d.completionTokens||0,s.byEndpoint[a].cachedTokens+=d.cachedTokens||0,s.byEndpoint[a].cost+=d.cost||0,b>(s.byEndpoint[a].lastUsed||"")&&(s.byEndpoint[a].lastUsed=b)}}let d=Math.max(c?Date.now()-864e5*c:0,Date.now()-1728e5);for(let a of b.all("SELECT timestamp, provider, model, connectionId, apiKey, endpoint FROM usageHistory WHERE timestamp >= ?",[new Date(d).toISOString()])){let b=a.timestamp,c=a.provider?`${a.model} (${a.provider})`:a.model;if(s.byModel[c]&&new Date(b)>new Date(s.byModel[c].lastUsed)&&(s.byModel[c].lastUsed=b),a.connectionId){let c=m[a.connectionId]||`Account ${a.connectionId.slice(0,8)}...`,d=`${a.model} (${a.provider} - ${c})`;s.byAccount[d]&&new Date(b)>new Date(s.byAccount[d].lastUsed)&&(s.byAccount[d].lastUsed=b)}let d=a.apiKey&&"string"==typeof a.apiKey?`${a.apiKey}|${a.model}|${a.provider||"unknown"}`:"local-no-key";s.byApiKey[d]&&new Date(b)>new Date(s.byApiKey[d].lastUsed)&&(s.byApiKey[d].lastUsed=b);let e=a.endpoint||"Unknown",f=`${e}|${a.model}|${a.provider||"unknown"}`;s.byEndpoint[f]&&new Date(b)>new Date(s.byEndpoint[f].lastUsed)&&(s.byEndpoint[f].lastUsed=b)}}else{let c;if("today"===a){let a=new Date;a.setHours(0,0,0,0),c=a.toISOString()}else c=new Date(Date.now()-864e5).toISOString();for(let a of b.all("SELECT timestamp, provider, model, connectionId, apiKey, endpoint, promptTokens, completionTokens, cost, tokens FROM usageHistory WHERE timestamp >= ?",[c])){let b=(0,f.q)(a.tokens,{})||{},c=b.prompt_tokens||b.input_tokens||a.promptTokens||0,d=b.completion_tokens||b.output_tokens||a.completionTokens||0,e=b.cached_tokens||b.cache_read_input_tokens||0,h=a.cost||0,i=n[a.provider]||a.provider;s.totalPromptTokens+=c,s.totalCompletionTokens+=d,s.totalCachedTokens+=e,s.totalCost+=h,s.byProvider[a.provider]||(s.byProvider[a.provider]={requests:0,promptTokens:0,completionTokens:0,cachedTokens:0,cost:0}),s.byProvider[a.provider].requests++,s.byProvider[a.provider].promptTokens+=c,s.byProvider[a.provider].completionTokens+=d,s.byProvider[a.provider].cachedTokens+=e,s.byProvider[a.provider].cost+=h;let j=a.provider?`${a.model} (${a.provider})`:a.model;if(s.byModel[j]||(s.byModel[j]={requests:0,promptTokens:0,completionTokens:0,cachedTokens:0,cost:0,rawModel:a.model,provider:i,lastUsed:a.timestamp}),s.byModel[j].requests++,s.byModel[j].promptTokens+=c,s.byModel[j].completionTokens+=d,s.byModel[j].cachedTokens+=e,s.byModel[j].cost+=h,new Date(a.timestamp)>new Date(s.byModel[j].lastUsed)&&(s.byModel[j].lastUsed=a.timestamp),a.connectionId){let b=m[a.connectionId]||`Account ${a.connectionId.slice(0,8)}...`,f=`${a.model} (${a.provider} - ${b})`;s.byAccount[f]||(s.byAccount[f]={requests:0,promptTokens:0,completionTokens:0,cachedTokens:0,cost:0,rawModel:a.model,provider:i,connectionId:a.connectionId,accountName:b,lastUsed:a.timestamp}),s.byAccount[f].requests++,s.byAccount[f].promptTokens+=c,s.byAccount[f].completionTokens+=d,s.byAccount[f].cachedTokens+=e,s.byAccount[f].cost+=h,new Date(a.timestamp)>new Date(s.byAccount[f].lastUsed)&&(s.byAccount[f].lastUsed=a.timestamp)}if(a.apiKey&&"string"==typeof a.apiKey){let b=a.apiKey.trim(),f=p[b],j=g(b),k=f?.name||j||a.apiKey.slice(0,8)+"...",l=`${a.apiKey}|${a.model}|${a.provider||"unknown"}`;s.byApiKey[l]||(s.byApiKey[l]={requests:0,promptTokens:0,completionTokens:0,cachedTokens:0,cost:0,rawModel:a.model,provider:i,apiKeyMasked:j,keyName:k,apiKeyKey:j,lastUsed:a.timestamp});let m=s.byApiKey[l];m.requests++,m.promptTokens+=c,m.completionTokens+=d,m.cachedTokens+=e,m.cost+=h,new Date(a.timestamp)>new Date(m.lastUsed)&&(m.lastUsed=a.timestamp)}else{s.byApiKey["local-no-key"]||(s.byApiKey["local-no-key"]={requests:0,promptTokens:0,completionTokens:0,cachedTokens:0,cost:0,rawModel:a.model,provider:i,apiKeyMasked:null,keyName:"Local (No API Key)",apiKeyKey:"local-no-key",lastUsed:a.timestamp});let b=s.byApiKey["local-no-key"];b.requests++,b.promptTokens+=c,b.completionTokens+=d,b.cachedTokens+=e,b.cost+=h,new Date(a.timestamp)>new Date(b.lastUsed)&&(b.lastUsed=a.timestamp)}let k=a.endpoint||"Unknown",l=`${k}|${a.model}|${a.provider||"unknown"}`;s.byEndpoint[l]||(s.byEndpoint[l]={requests:0,promptTokens:0,completionTokens:0,cachedTokens:0,cost:0,endpoint:k,rawModel:a.model,provider:i,lastUsed:a.timestamp});let o=s.byEndpoint[l];o.requests++,o.promptTokens+=c,o.completionTokens+=d,o.cachedTokens+=e,o.cost+=h,new Date(a.timestamp)>new Date(o.lastUsed)&&(o.lastUsed=a.timestamp)}}return s.totalRequests=Object.values(s.byProvider).reduce((a,b)=>a+(b.requests||0),0),s}async function z(a="7d"){let b=await (0,e.c)(),c=Date.now();if("today"===a){let a=new Date;a.setHours(0,0,0,0);let c=a.getTime(),d=c+864e5,e=Array.from({length:24},(a,b)=>({label:new Date(c+36e5*b).toLocaleTimeString("en-US",{hour:"2-digit",minute:"2-digit",hour12:!1}),tokens:0,cost:0,requests:0}));for(let a of b.all("SELECT timestamp, promptTokens, completionTokens, cost FROM usageHistory WHERE timestamp >= ?",[new Date(c).toISOString()])){let b=new Date(a.timestamp).getTime();if(b<c||b>=d)continue;let f=Math.floor((b-c)/36e5);f>=0&&f<24&&(e[f].tokens+=(a.promptTokens||0)+(a.completionTokens||0),e[f].cost+=a.cost||0,e[f].requests+=1)}return e}if("24h"===a){let a=c-864e5,d=Array.from({length:24},(b,c)=>({label:new Date(a+36e5*c).toLocaleTimeString("en-US",{hour:"2-digit",minute:"2-digit",hour12:!1}),tokens:0,cost:0,requests:0}));for(let e of b.all("SELECT timestamp, promptTokens, completionTokens, cost FROM usageHistory WHERE timestamp >= ?",[new Date(a).toISOString()])){let b=new Date(e.timestamp).getTime();if(b<a||b>c)continue;let f=Math.min(Math.floor((b-a)/36e5),23);d[f].tokens+=(e.promptTokens||0)+(e.completionTokens||0),d[f].cost+=e.cost||0,d[f].requests+=1}return d}let d=a=>a.toLocaleDateString("en-US",{month:"short",day:"numeric"});if("all"===a){let a=x(b,null);if(!a.length)return[];let c={};for(let b of a)c[b.dateKey]=(0,f.q)(b.data,{});let e=new Date(a[0].dateKey+"T00:00:00"),g=new Date;return g.setHours(0,0,0,0),Array.from({length:Math.max(1,Math.round((g-e)/864e5)+1)},(a,b)=>{let f=new Date(e);f.setDate(f.getDate()+b);let g=c[`${f.getFullYear()}-${String(f.getMonth()+1).padStart(2,"0")}-${String(f.getDate()).padStart(2,"0")}`];return{label:d(f),tokens:g?(g.promptTokens||0)+(g.completionTokens||0):0,cost:g&&g.cost||0,requests:g&&g.requests||0}})}let g="7d"===a?7:"30d"===a?30:60,h=new Date,i=x(b,g),j={};for(let a of i)j[a.dateKey]=(0,f.q)(a.data,{});return Array.from({length:g},(a,b)=>{let c=new Date(h);c.setDate(c.getDate()-(g-1-b));let e=j[`${c.getFullYear()}-${String(c.getMonth()+1).padStart(2,"0")}-${String(c.getDate()).padStart(2,"0")}`];return{label:d(c),tokens:e?(e.promptTokens||0)+(e.completionTokens||0):0,cost:e&&e.cost||0,requests:e&&e.requests||0}})}async function A(){}async function B(a=200){try{let b=(await (0,e.c)()).all("SELECT timestamp, provider, model, connectionId, promptTokens, completionTokens, status, tokens FROM usageHistory ORDER BY id DESC LIMIT ?",[a]);if(!b.length)return[];let d={};try{let{getProviderConnections:a}=await Promise.resolve().then(c.bind(c,5781));for(let b of(await a()))d[b.id]=b.name||b.email||""}catch{}return b.map(a=>{let b=function(a=new Date){let b=a=>String(a).padStart(2,"0");return`${b(a.getDate())}-${b(a.getMonth()+1)}-${a.getFullYear()} ${b(a.getHours())}:${b(a.getMinutes())}:${b(a.getSeconds())}`}(new Date(a.timestamp)),c=a.provider?.toUpperCase()||"-",e=a.model||"-",g=d[a.connectionId]||(a.connectionId?a.connectionId.slice(0,8):"-"),h=a.tokens?(0,f.q)(a.tokens,{}):{},i=a.promptTokens??h.prompt_tokens??"-",j=a.completionTokens??h.completion_tokens??"-";return`${b} | ${e} | ${c} | ${g} | ${i} | ${j} | ${a.status||"-"}`})}catch(a){return console.error("[usageRepo] getRecentLogs failed:",a.message),[]}}}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";exports.id=5245,exports.ids=[3662,5245],exports.modules={3662:(a,b,c)=>{c.d(b,{EQ:()=>f,LY:()=>d,O:()=>e,fh:()=>h,t2:()=>i,wf:()=>g});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={base:2e3,max:3e5,maxLevel:15},g=3e4,h=18e5,i=[{provider:"codex",text:"model is not supported when using codex with a chatgpt account",cooldownMs:18e5},{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:"capacity",backoff:!0},{text:"overloaded",backoff:!0},{status:401,cooldownMs:12e4},{status:402,cooldownMs:12e4},{status:403,cooldownMs:12e4},{status:404,cooldownMs:12e4},{status:429,backoff:!0}]},21350:(a,b,c)=>{c.r(b),c.d(b,{DELETE:()=>Q,GET:()=>O,POST:()=>P});var d=c(49796),e=c(23211),f=c(79748),g=c.n(f),h=c(33873),i=c.n(h),j=c(21820),k=c.n(j),l=c(55511),m=c.n(l),n=c(28286),o=c(30869),p=c(54603),q=c(24424);let r=o.h0.appPort,s=`http://localhost:${r}/api/mcp/`,t=null,u=async()=>(t||(t=await (0,p.Xj)("9r-cli-auth")),t),v=async a=>{let b=await u();for(let c of a)"string"==typeof c?.url&&c.url.startsWith(s)&&(c.headers={...c.headers||{},"x-9r-cli-token":b});return a},w="gateway",x={coworkEgressAllowedHosts:["*"],disabledBuiltinTools:[],isLocalDevMcpEnabled:!0,isDesktopExtensionEnabled:!0,isDesktopExtensionDirectoryEnabled:!0,isDesktopExtensionSignatureRequired:!1,isClaudeCodeForDesktopEnabled:!0,disableEssentialTelemetry:!0,disableNonessentialTelemetry:!0,disableNonessentialServices:!0},y=()=>{if("darwin"===k().platform()){let a=i().join(k().homedir(),"Library","Application Support");return[i().join(a,"Claude-3p"),i().join(a,"Claude")]}if("win32"===k().platform()){let a=process.env.LOCALAPPDATA||i().join(k().homedir(),"AppData","Local"),b=process.env.APPDATA||i().join(k().homedir(),"AppData","Roaming");return[i().join(a,"Claude-3p"),i().join(b,"Claude-3p"),i().join(a,"Claude"),i().join(b,"Claude")]}return[i().join(k().homedir(),".config","Claude-3p"),i().join(k().homedir(),".config","Claude")]},z=async()=>{let a=y();for(let b of a)try{return await g().access(i().join(b,"configLibrary")),b}catch{}return a[0]},A=()=>y()[0],B=async()=>i().join(await z(),"configLibrary"),C=()=>i().join(A(),"configLibrary"),D=async()=>i().join(await B(),"_meta.json"),E=()=>{if("darwin"===k().platform())return i().join(k().homedir(),"Library","Application Support","Claude");if("win32"===k().platform()){let a=process.env.APPDATA||i().join(k().homedir(),"AppData","Roaming");return i().join(a,"Claude")}return i().join(k().homedir(),".config","Claude")},F=()=>i().join(E(),"claude_desktop_config.json"),G=async()=>{try{let a=(await g().readFile(F(),"utf-8")).replace(/,(\s*[}\]])/g,"$1");return JSON.parse(a)||{}}catch(a){return{}}},H=async a=>{await g().mkdir(E(),{recursive:!0}),await g().writeFile(F(),JSON.stringify(a,null,2))},I=async()=>{let a=await G();return"3p"!==a.deploymentMode&&(a.deploymentMode="3p",await H(a),!0)},J=async()=>{let a=await G();if(!a.mcpServers||"object"!=typeof a.mcpServers)return;let b=new Set(n.LOCAL_STDIO_PLUGINS.map(a=>a.name));for(let c of Object.keys(a.mcpServers))b.has(c)&&delete a.mcpServers[c];0===Object.keys(a.mcpServers).length&&delete a.mcpServers,await H(a)},K=async()=>{for(let a of[...y(),...(()=>{if("darwin"===k().platform())return["/Applications/Claude.app",i().join(k().homedir(),"Applications","Claude.app")];if("win32"===k().platform()){let a=process.env.LOCALAPPDATA||i().join(k().homedir(),"AppData","Local"),b=process.env.ProgramFiles||"C:\\Program Files";return[i().join(a,"AnthropicClaude"),i().join(b,"Claude"),i().join(b,"AnthropicClaude")]}return[]})()])try{return await g().access(a),!0}catch{}return!1},L=async a=>{try{let b=(await g().readFile(a,"utf-8")).replace(/,(\s*[}\]])/g,"$1");return JSON.parse(b)}catch(a){return null}},M=async()=>{let a=i().join(C(),"_meta.json"),b=await L(a);if(!b||!b.appliedId){let c=await L(await D());if(c?.appliedId)b=c;else{let a=m().randomUUID();b={appliedId:a,entries:[{id:a,name:"Default"}]}}await g().mkdir(C(),{recursive:!0}),await g().writeFile(a,JSON.stringify(b,null,2))}return b};async function N(a){let b=i().join(A(),"config.json"),c={};try{c=JSON.parse(await g().readFile(b,"utf-8"))||{}}catch(a){if("ENOENT"!==a.code)return{error:a.code}}let d={};for(let b of a)b?.name&&(d[b.name]=!0);return c.operonSkipMcpApprovals=d,await g().mkdir(A(),{recursive:!0}),await g().writeFile(b,JSON.stringify(c,null,2)),{written:Object.keys(d).length}}async function O(){try{if(!await K())return e.NextResponse.json({installed:!1,config:null,message:"Claude Desktop (Cowork mode) not detected"});let a=await L(await D()),b=a?.appliedId||null,c=await B(),d=b?i().join(c,`${b}.json`):null,f=d?await L(d):null,g=f?.inferenceGatewayBaseUrl||null,h=Array.isArray(f?.inferenceModels)?f.inferenceModels.map(a=>"string"==typeof a?a:a?.name).filter(Boolean):[],j=Array.isArray(f?.managedMcpServers)?f.managedMcpServers:[],k=!!(f?.inferenceProvider===w&&g),l=new Set(n.LOCAL_STDIO_PLUGINS.map(a=>a.name)),m=j.filter(a=>l.has(a.name)&&"string"==typeof a.url&&a.url.includes("/api/mcp/")).map(a=>a.name),o=j.filter(a=>a.custom||!l.has(a.name)&&"string"==typeof a.url&&a.url.includes("/api/mcp/")).map(a=>({name:a.name,url:a.url,transport:a.transport,custom:!0}));return e.NextResponse.json({installed:!0,config:f,hasOmniHilbras:k,configPath:d,cowork:{appliedId:b,baseUrl:g,models:h,provider:f?.inferenceProvider||null,plugins:j.filter(a=>!a.custom&&!(l.has(a.name)&&"string"==typeof a.url&&a.url.includes("/api/mcp/"))).map(a=>{let b=a.toolPolicy?Object.keys(a.toolPolicy):[],c=`${a.name}-`,d=new Set;for(let a of b){let b=a;for(;b.startsWith(c);)b=b.slice(c.length);d.add(b)}let e=n.DEFAULT_PLUGINS.find(b=>b.name===a.name),f=e&&Array.isArray(e.toolNames)?e.toolNames:Array.from(d);return{name:a.name,url:a.url,transport:a.transport,oauth:!!a.oauth,toolNames:f}}),localPlugins:m,customPlugins:o},defaultPlugins:n.DEFAULT_PLUGINS,localStdioPlugins:n.LOCAL_STDIO_PLUGINS})}catch(a){return console.log("Error reading cowork settings:",a),e.NextResponse.json({error:"Failed to read cowork settings"},{status:500})}}async function P(a){try{let{baseUrl:b,apiKey:c,models:d,plugins:f,localPlugins:h,customPlugins:j}=await a.json();if(!b||!c)return e.NextResponse.json({error:"baseUrl and apiKey are required"},{status:400});let k=Array.isArray(d)?d.filter(a=>"string"==typeof a&&a.trim()):[];if(0===k.length)return e.NextResponse.json({error:"At least one model is required"},{status:400});let l=Array.isArray(f)?f:n.DEFAULT_PLUGINS,m=Array.isArray(h)?h:[],o=(Array.isArray(j)?j:[]).filter(a=>a?.url),p=await v((a=>{let b=Array.isArray(a)?a:[],c=[];for(let a of b){let b=n.LOCAL_STDIO_PLUGINS.find(b=>b.name===a);if(!b)continue;let d={name:b.name,url:`http://localhost:${r}/api/mcp/${b.name}/sse`,transport:"sse"};if(Array.isArray(b.toolNames)&&b.toolNames.length>0){let a=`${b.name}-`,c={};for(let d of b.toolNames)c[d]="allow",c[`${a}${d}`]="allow";d.toolPolicy=c}c.push(d)}return c})(m)),q=await v((a=>{if(!Array.isArray(a))return[];let b=[];for(let c of a)c?.name&&c?.url&&b.push({name:c.name,url:c.url,transport:c.transport||"sse",custom:!0});return b})(o)),s=[...(0,n.buildManagedMcpServers)(l),...p,...q],t=await I(),u=await M(),y=i().join(C(),`${u.appliedId}.json`),z={...x,inferenceProvider:w,inferenceGatewayBaseUrl:b,inferenceGatewayApiKey:c,inferenceModels:k.map(a=>({name:a}))};s.length>0&&(z.managedMcpServers=s),await g().writeFile(y,JSON.stringify(z,null,2));let A=null;try{A=await N(s)}catch(a){A={error:a.message}}try{await J()}catch{}return e.NextResponse.json({success:!0,bootstrapped:t,message:t?"Cowork enabled (3p mode set). Quit & reopen Claude Desktop.":"Cowork settings applied. Quit & reopen Claude Desktop.",configPath:y,skipApprovals:A,localMcp:{applied:m,via:"3p-sse-bridge"}})}catch(a){return console.log("Error applying cowork settings:",a),e.NextResponse.json({error:"Failed to apply cowork settings"},{status:500})}}async function Q(){try{let a=await L(await D());if(!a?.appliedId)return e.NextResponse.json({success:!0,message:"No active config to reset"});let b=i().join(await B(),`${a.appliedId}.json`);try{await g().writeFile(b,JSON.stringify({},null,2))}catch(a){if("ENOENT"!==a.code)throw a}try{await N([])}catch{}try{await J()}catch{}return e.NextResponse.json({success:!0,message:"Cowork config reset"})}catch(a){return console.log("Error resetting cowork settings:",a),e.NextResponse.json({error:"Failed to reset cowork settings"},{status:500})}}(0,q.D)([O,P,Q]),(0,d.A)(O,"004517dbe1838f5a142508ce2343035e366226246f",null),(0,d.A)(P,"404652f62c85465237991833b74ebad72e2be49a93",null),(0,d.A)(Q,"00c6499241c3d6c187c751dfe5593380d3198660a7",null)},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}}},30869:(a,b,c)=>{c.d(b,{UY:()=>h,eh:()=>f.eh,fg:()=>e.fg,h0:()=>g,oc:()=>i});var d=c(39006),e=c(40615),f=c(81329);d.rE;let g={npmPackageName:"@hilbras/omnihilbras",installCmd:"npm i -g @hilbras/omnihilbras",installCmdLatest:"npm i -g @hilbras/omnihilbras@latest --prefer-online",shutdownCountdownSec:3,exitDelayMs:500,statusPort:20129,statusPollIntervalMs:1e3,statusLogTailLines:8,installRetries:3,installRetryDelayMs:5e3,lingerAfterDoneMs:3e4,waitForExitMinMs:5e3,waitForExitMaxMs:2e4,waitForExitCheckMs:500,appPort:20128},h={maxLines:200,pollIntervalMs:1e3},i={tickIntervalMs:6e4,pingLeadMs:5e3,refreshAheadMs:3e5,failureCooldownMs:9e5,providers:{claude:{settingsKey:"claudeAutoPing",quotaKey:"session (5h)",pingModel:"claude-haiku-4-5-20251001",pingText:"hi",pingMaxTokens:1},codex:{settingsKey:"codexAutoPing",quotaKey:"session",pingWhenResetAtSlides:!0,resetAtDriftMs:3e4,minPingIntervalMs:6e5,skipWhenBlockingQuotaExhausted:!0,pingModel:"gpt-5.6-terra",pingText:"hi",pingInstructions:"Reply with OK.",pingReasoningEffort:"none"}}}},39006:a=>{a.exports={rE:"2.1.0"}},54603:(a,b,c)=>{c.d(b,{Xj:()=>q});var d=c(19713),e=c(73024),f=c.n(e),g=c(76760),h=c.n(g),i=c(77598),j=c.n(i),k=c(49120);let l=h().join(k.n,"machine-id"),m=h().join(k.n,"auth"),n=h().join(m,"cli-secret"),o=null,p=null;async function q(a=null){let b=a||process.env.MACHINE_ID_SALT||"endpoint-proxy-salt",c=function(){if(o)return o;try{if(o=f().readFileSync(l,"utf8").trim())return o}catch{}try{o=(0,d.machineIdSync)()}catch{o=j().randomUUID()}try{f().mkdirSync(k.n,{recursive:!0}),f().writeFileSync(l,o,{mode:384})}catch{}return o}(),e="9r-cli-auth"===b?function(){if(p)return p;try{if(p=f().readFileSync(n,"utf8").trim())return p}catch{}p=j().randomBytes(32).toString("hex");try{f().mkdirSync(m,{recursive:!0}),f().writeFileSync(n,p,{mode:384})}catch{}return p}():"";return j().createHash("sha256").update(c+b+e).digest("hex").substring(0,16)}}};
|
|
1
|
+
"use strict";exports.id=5245,exports.ids=[3662,5245],exports.modules={3662:(a,b,c)=>{c.d(b,{EQ:()=>f,LY:()=>d,O:()=>e,fh:()=>h,t2:()=>i,wf:()=>g});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={base:2e3,max:3e5,maxLevel:15},g=3e4,h=18e5,i=[{provider:"codex",text:"model is not supported when using codex with a chatgpt account",cooldownMs:18e5},{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:"capacity",backoff:!0},{text:"overloaded",backoff:!0},{status:401,cooldownMs:12e4},{status:402,cooldownMs:12e4},{status:403,cooldownMs:12e4},{status:404,cooldownMs:12e4},{status:429,backoff:!0}]},21350:(a,b,c)=>{c.r(b),c.d(b,{DELETE:()=>Q,GET:()=>O,POST:()=>P});var d=c(49796),e=c(23211),f=c(79748),g=c.n(f),h=c(33873),i=c.n(h),j=c(21820),k=c.n(j),l=c(55511),m=c.n(l),n=c(28286),o=c(30869),p=c(54603),q=c(24424);let r=o.h0.appPort,s=`http://localhost:${r}/api/mcp/`,t=null,u=async()=>(t||(t=await (0,p.Xj)("9r-cli-auth")),t),v=async a=>{let b=await u();for(let c of a)"string"==typeof c?.url&&c.url.startsWith(s)&&(c.headers={...c.headers||{},"x-9r-cli-token":b});return a},w="gateway",x={coworkEgressAllowedHosts:["*"],disabledBuiltinTools:[],isLocalDevMcpEnabled:!0,isDesktopExtensionEnabled:!0,isDesktopExtensionDirectoryEnabled:!0,isDesktopExtensionSignatureRequired:!1,isClaudeCodeForDesktopEnabled:!0,disableEssentialTelemetry:!0,disableNonessentialTelemetry:!0,disableNonessentialServices:!0},y=()=>{if("darwin"===k().platform()){let a=i().join(k().homedir(),"Library","Application Support");return[i().join(a,"Claude-3p"),i().join(a,"Claude")]}if("win32"===k().platform()){let a=process.env.LOCALAPPDATA||i().join(k().homedir(),"AppData","Local"),b=process.env.APPDATA||i().join(k().homedir(),"AppData","Roaming");return[i().join(a,"Claude-3p"),i().join(b,"Claude-3p"),i().join(a,"Claude"),i().join(b,"Claude")]}return[i().join(k().homedir(),".config","Claude-3p"),i().join(k().homedir(),".config","Claude")]},z=async()=>{let a=y();for(let b of a)try{return await g().access(i().join(b,"configLibrary")),b}catch{}return a[0]},A=()=>y()[0],B=async()=>i().join(await z(),"configLibrary"),C=()=>i().join(A(),"configLibrary"),D=async()=>i().join(await B(),"_meta.json"),E=()=>{if("darwin"===k().platform())return i().join(k().homedir(),"Library","Application Support","Claude");if("win32"===k().platform()){let a=process.env.APPDATA||i().join(k().homedir(),"AppData","Roaming");return i().join(a,"Claude")}return i().join(k().homedir(),".config","Claude")},F=()=>i().join(E(),"claude_desktop_config.json"),G=async()=>{try{let a=(await g().readFile(F(),"utf-8")).replace(/,(\s*[}\]])/g,"$1");return JSON.parse(a)||{}}catch(a){return{}}},H=async a=>{await g().mkdir(E(),{recursive:!0}),await g().writeFile(F(),JSON.stringify(a,null,2))},I=async()=>{let a=await G();return"3p"!==a.deploymentMode&&(a.deploymentMode="3p",await H(a),!0)},J=async()=>{let a=await G();if(!a.mcpServers||"object"!=typeof a.mcpServers)return;let b=new Set(n.LOCAL_STDIO_PLUGINS.map(a=>a.name));for(let c of Object.keys(a.mcpServers))b.has(c)&&delete a.mcpServers[c];0===Object.keys(a.mcpServers).length&&delete a.mcpServers,await H(a)},K=async()=>{for(let a of[...y(),...(()=>{if("darwin"===k().platform())return["/Applications/Claude.app",i().join(k().homedir(),"Applications","Claude.app")];if("win32"===k().platform()){let a=process.env.LOCALAPPDATA||i().join(k().homedir(),"AppData","Local"),b=process.env.ProgramFiles||"C:\\Program Files";return[i().join(a,"AnthropicClaude"),i().join(b,"Claude"),i().join(b,"AnthropicClaude")]}return[]})()])try{return await g().access(a),!0}catch{}return!1},L=async a=>{try{let b=(await g().readFile(a,"utf-8")).replace(/,(\s*[}\]])/g,"$1");return JSON.parse(b)}catch(a){return null}},M=async()=>{let a=i().join(C(),"_meta.json"),b=await L(a);if(!b||!b.appliedId){let c=await L(await D());if(c?.appliedId)b=c;else{let a=m().randomUUID();b={appliedId:a,entries:[{id:a,name:"Default"}]}}await g().mkdir(C(),{recursive:!0}),await g().writeFile(a,JSON.stringify(b,null,2))}return b};async function N(a){let b=i().join(A(),"config.json"),c={};try{c=JSON.parse(await g().readFile(b,"utf-8"))||{}}catch(a){if("ENOENT"!==a.code)return{error:a.code}}let d={};for(let b of a)b?.name&&(d[b.name]=!0);return c.operonSkipMcpApprovals=d,await g().mkdir(A(),{recursive:!0}),await g().writeFile(b,JSON.stringify(c,null,2)),{written:Object.keys(d).length}}async function O(){try{if(!await K())return e.NextResponse.json({installed:!1,config:null,message:"Claude Desktop (Cowork mode) not detected"});let a=await L(await D()),b=a?.appliedId||null,c=await B(),d=b?i().join(c,`${b}.json`):null,f=d?await L(d):null,g=f?.inferenceGatewayBaseUrl||null,h=Array.isArray(f?.inferenceModels)?f.inferenceModels.map(a=>"string"==typeof a?a:a?.name).filter(Boolean):[],j=Array.isArray(f?.managedMcpServers)?f.managedMcpServers:[],k=!!(f?.inferenceProvider===w&&g),l=new Set(n.LOCAL_STDIO_PLUGINS.map(a=>a.name)),m=j.filter(a=>l.has(a.name)&&"string"==typeof a.url&&a.url.includes("/api/mcp/")).map(a=>a.name),o=j.filter(a=>a.custom||!l.has(a.name)&&"string"==typeof a.url&&a.url.includes("/api/mcp/")).map(a=>({name:a.name,url:a.url,transport:a.transport,custom:!0}));return e.NextResponse.json({installed:!0,config:f,hasOmniHilbras:k,configPath:d,cowork:{appliedId:b,baseUrl:g,models:h,provider:f?.inferenceProvider||null,plugins:j.filter(a=>!a.custom&&!(l.has(a.name)&&"string"==typeof a.url&&a.url.includes("/api/mcp/"))).map(a=>{let b=a.toolPolicy?Object.keys(a.toolPolicy):[],c=`${a.name}-`,d=new Set;for(let a of b){let b=a;for(;b.startsWith(c);)b=b.slice(c.length);d.add(b)}let e=n.DEFAULT_PLUGINS.find(b=>b.name===a.name),f=e&&Array.isArray(e.toolNames)?e.toolNames:Array.from(d);return{name:a.name,url:a.url,transport:a.transport,oauth:!!a.oauth,toolNames:f}}),localPlugins:m,customPlugins:o},defaultPlugins:n.DEFAULT_PLUGINS,localStdioPlugins:n.LOCAL_STDIO_PLUGINS})}catch(a){return console.log("Error reading cowork settings:",a),e.NextResponse.json({error:"Failed to read cowork settings"},{status:500})}}async function P(a){try{let{baseUrl:b,apiKey:c,models:d,plugins:f,localPlugins:h,customPlugins:j}=await a.json();if(!b||!c)return e.NextResponse.json({error:"baseUrl and apiKey are required"},{status:400});let k=Array.isArray(d)?d.filter(a=>"string"==typeof a&&a.trim()):[];if(0===k.length)return e.NextResponse.json({error:"At least one model is required"},{status:400});let l=Array.isArray(f)?f:n.DEFAULT_PLUGINS,m=Array.isArray(h)?h:[],o=(Array.isArray(j)?j:[]).filter(a=>a?.url),p=await v((a=>{let b=Array.isArray(a)?a:[],c=[];for(let a of b){let b=n.LOCAL_STDIO_PLUGINS.find(b=>b.name===a);if(!b)continue;let d={name:b.name,url:`http://localhost:${r}/api/mcp/${b.name}/sse`,transport:"sse"};if(Array.isArray(b.toolNames)&&b.toolNames.length>0){let a=`${b.name}-`,c={};for(let d of b.toolNames)c[d]="allow",c[`${a}${d}`]="allow";d.toolPolicy=c}c.push(d)}return c})(m)),q=await v((a=>{if(!Array.isArray(a))return[];let b=[];for(let c of a)c?.name&&c?.url&&b.push({name:c.name,url:c.url,transport:c.transport||"sse",custom:!0});return b})(o)),s=[...(0,n.buildManagedMcpServers)(l),...p,...q],t=await I(),u=await M(),y=i().join(C(),`${u.appliedId}.json`),z={...x,inferenceProvider:w,inferenceGatewayBaseUrl:b,inferenceGatewayApiKey:c,inferenceModels:k.map(a=>({name:a}))};s.length>0&&(z.managedMcpServers=s),await g().writeFile(y,JSON.stringify(z,null,2));let A=null;try{A=await N(s)}catch(a){A={error:a.message}}try{await J()}catch{}return e.NextResponse.json({success:!0,bootstrapped:t,message:t?"Cowork enabled (3p mode set). Quit & reopen Claude Desktop.":"Cowork settings applied. Quit & reopen Claude Desktop.",configPath:y,skipApprovals:A,localMcp:{applied:m,via:"3p-sse-bridge"}})}catch(a){return console.log("Error applying cowork settings:",a),e.NextResponse.json({error:"Failed to apply cowork settings"},{status:500})}}async function Q(){try{let a=await L(await D());if(!a?.appliedId)return e.NextResponse.json({success:!0,message:"No active config to reset"});let b=i().join(await B(),`${a.appliedId}.json`);try{await g().writeFile(b,JSON.stringify({},null,2))}catch(a){if("ENOENT"!==a.code)throw a}try{await N([])}catch{}try{await J()}catch{}return e.NextResponse.json({success:!0,message:"Cowork config reset"})}catch(a){return console.log("Error resetting cowork settings:",a),e.NextResponse.json({error:"Failed to reset cowork settings"},{status:500})}}(0,q.D)([O,P,Q]),(0,d.A)(O,"004517dbe1838f5a142508ce2343035e366226246f",null),(0,d.A)(P,"404652f62c85465237991833b74ebad72e2be49a93",null),(0,d.A)(Q,"00c6499241c3d6c187c751dfe5593380d3198660a7",null)},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}}},30869:(a,b,c)=>{c.d(b,{UY:()=>h,eh:()=>f.eh,fg:()=>e.fg,h0:()=>g,oc:()=>i});var d=c(39006),e=c(40615),f=c(81329);d.rE;let g={npmPackageName:"@hilbras/omnihilbras",installCmd:"npm i -g @hilbras/omnihilbras",installCmdLatest:"npm i -g @hilbras/omnihilbras@latest --prefer-online",shutdownCountdownSec:3,exitDelayMs:500,statusPort:20129,statusPollIntervalMs:1e3,statusLogTailLines:8,installRetries:3,installRetryDelayMs:5e3,lingerAfterDoneMs:3e4,waitForExitMinMs:5e3,waitForExitMaxMs:2e4,waitForExitCheckMs:500,appPort:20128},h={maxLines:200,pollIntervalMs:1e3},i={tickIntervalMs:6e4,pingLeadMs:5e3,refreshAheadMs:3e5,failureCooldownMs:9e5,providers:{claude:{settingsKey:"claudeAutoPing",quotaKey:"session (5h)",pingModel:"claude-haiku-4-5-20251001",pingText:"hi",pingMaxTokens:1},codex:{settingsKey:"codexAutoPing",quotaKey:"session",pingWhenResetAtSlides:!0,resetAtDriftMs:3e4,minPingIntervalMs:6e5,skipWhenBlockingQuotaExhausted:!0,pingModel:"gpt-5.6-terra",pingText:"hi",pingInstructions:"Reply with OK.",pingReasoningEffort:"none"}}}},39006:a=>{a.exports={rE:"2.3.0"}},54603:(a,b,c)=>{c.d(b,{Xj:()=>q});var d=c(19713),e=c(73024),f=c.n(e),g=c(76760),h=c.n(g),i=c(77598),j=c.n(i),k=c(49120);let l=h().join(k.n,"machine-id"),m=h().join(k.n,"auth"),n=h().join(m,"cli-secret"),o=null,p=null;async function q(a=null){let b=a||process.env.MACHINE_ID_SALT||"endpoint-proxy-salt",c=function(){if(o)return o;try{if(o=f().readFileSync(l,"utf8").trim())return o}catch{}try{o=(0,d.machineIdSync)()}catch{o=j().randomUUID()}try{f().mkdirSync(k.n,{recursive:!0}),f().writeFileSync(l,o,{mode:384})}catch{}return o}(),e="9r-cli-auth"===b?function(){if(p)return p;try{if(p=f().readFileSync(n,"utf8").trim())return p}catch{}p=j().randomBytes(32).toString("hex");try{f().mkdirSync(m,{recursive:!0}),f().writeFileSync(n,p,{mode:384})}catch{}return p}():"";return j().createHash("sha256").update(c+b+e).digest("hex").substring(0,16)}}};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";exports.id=5615,exports.ids=[3535,5615],exports.modules={13808:(a,b,c)=>{c.d(b,{$N:()=>f,OK:()=>g,Zl:()=>h,lz:()=>i});var d=c(55511),e=c.n(d);function f(a=32){return e().randomBytes(a).toString("base64url")}function g(a){return e().createHash("sha256").update(a).digest("base64url")}function h(){return e().randomBytes(32).toString("base64url")}function i(a=32){let b=f(a),c=g(b);return{codeVerifier:b,codeChallenge:c,state:h()}}},22898:(a,b,c)=>{c.d(b,{Ag:()
|
|
1
|
+
"use strict";exports.id=5615,exports.ids=[3535,5615],exports.modules={13808:(a,b,c)=>{c.d(b,{$N:()=>f,OK:()=>g,Zl:()=>h,lz:()=>i});var d=c(55511),e=c.n(d);function f(a=32){return e().randomBytes(a).toString("base64url")}function g(a){return e().createHash("sha256").update(a).digest("base64url")}function h(){return e().randomBytes(32).toString("base64url")}function i(a=32){let b=f(a),c=g(b);return{codeVerifier:b,codeChallenge:c,state:h()}}},22898:(a,b,c)=>{c.d(b,{Ag:()=>ad,E1:()=>ab,ET:()=>ae,Ex:()=>K,Fi:()=>B,GJ:()=>ao,Hd:()=>n,IF:()=>s,JF:()=>D,Jm:()=>aa,Pd:()=>i,Rb:()=>ac,S3:()=>C,VZ:()=>L,Xd:()=>U,Y0:()=>r,ZP:()=>x,_V:()=>w,ag:()=>an,cn:()=>o,dR:()=>p,dW:()=>N,hj:()=>O,jl:()=>E,n3:()=>aj,nu:()=>F,og:()=>M,rd:()=>X,uw:()=>y,wl:()=>V,wq:()=>T,zG:()=>ak,zg:()=>al,zq:()=>W});var d=c(81630),e=c.n(d),f=c(1932),g=c(92990);function h(a){return!a||/^http:\/\/(127\.0\.0\.1|localhost)(:\d+)?$/.test(a)}function i(a,b=null){return new Promise((c,d)=>{let g=e().createServer((b,c)=>{let d=new f.URL(b.url,"http://localhost");if("/callback"===d.pathname||"/auth/callback"===d.pathname){let b=Object.fromEntries(d.searchParams);c.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),c.end(`<!DOCTYPE html>
|
|
2
2
|
<html>
|
|
3
3
|
<head>
|
|
4
4
|
<meta charset="utf-8">
|
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
<style>body{font-family:system-ui;display:flex;justify-content:center;align-items:center;height:100vh;margin:0;background:#f5f5f5}.c{text-align:center;padding:2rem;background:#fff;border-radius:8px;box-shadow:0 2px 10px rgba(0,0,0,.1)}.i{color:${a?"#22c55e":"#ef4444"};font-size:3rem}h1{margin:1rem 0}p{color:#666}</style>
|
|
41
41
|
</head><body><div class="c"><div class="i">${a?"✓":"✗"}</div><h1>${c}</h1><p>${d}</p><p>Closing in <span id="cd">3</span>s...</p>
|
|
42
42
|
<script>let n=3;const c=document.getElementById("cd");const t=setInterval(()=>{n--;c.textContent=n;if(n<=0){clearInterval(t);window.close();}},1000);<\/script>
|
|
43
|
-
</div></body></html>`}function r(a){return new Promise(b=>{if(j)return void b({success:!0});let d=e().createServer(async(b,d)=>{let e=new f.URL(b.url,"http://localhost");if("/callback"!==e.pathname&&"/auth/callback"!==e.pathname){d.writeHead(404),d.end("Not found");return}let g=e.searchParams.get("code"),h=e.searchParams.get("state"),i=e.searchParams.get("error"),j=h?m.get(h):null;if(j){try{if(i)throw Error(e.searchParams.get("error_description")||i);if(!g)throw Error("No authorization code received");let{exchangeTokens:a}=await Promise.all([c.e(7774),c.e(5433),c.e(8920),c.e(24),c.e(2578),c.e(3225),c.e(6922),c.e(5215),c.e(9696),c.e(7552),c.e(8499),c.e(6249),c.e(5330),c.e(8895),c.e(4049)]).then(c.bind(c,74177)),{createProviderConnection:b}=await c.e(1998).then(c.bind(c,71998)),f=await a("codex",g,j.redirectUri,j.codeVerifier,h),k=await b({provider:"codex",authType:"oauth",...f,expiresAt:f.expiresIn?new Date(Date.now()+1e3*f.expiresIn).toISOString():null,testStatus:"active"});j.status="done",j.connectionId=k.id,j.email=k.email,d.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),d.end(q(!0,"You can close this window."))}catch(a){j.status="error",j.error=a.message,d.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),d.end(q(!1,a.message))}finally{s()}return}let k=`http://localhost:${a}/callback${e.search}`;d.writeHead(302,{Location:k}),d.end(),s()});d.listen(l,"127.0.0.1",()=>{j=d,k=setTimeout(()=>s(),3e5),b({success:!0})}),d.on("error",a=>{"EADDRINUSE"===a.code?b({success:!1,reason:"port_busy"}):b({success:!1,reason:a.message})})})}function s(){k&&(clearTimeout(k),k=null),j&&(j.close(),j=null)}let t=null,u=null,v=new Map;function w({state:a,codeVerifier:b,redirectUri:c}){return!!a&&!!b&&!!c&&(v.set(a,{codeVerifier:b,redirectUri:c,status:"pending",createdAt:Date.now()}),!0)}function x(a){return v.get(a)||null}function y(a){v.delete(a)}function z(a){return new Promise(b=>{if(t)return void b({success:!0});let d=e().createServer(async(b,d)=>{let e=new f.URL(b.url,"http://localhost");if("/callback"!==e.pathname&&"/auth/callback"!==e.pathname){d.writeHead(404),d.end("Not found");return}let g=e.searchParams.get("code"),h=e.searchParams.get("state"),i=e.searchParams.get("error"),j=h?v.get(h):null;if(j){var k;try{if(i)throw Error(e.searchParams.get("error_description")||i);if(!g)throw Error("No authorization code received");let{exchangeTokens:a}=await Promise.all([c.e(7774),c.e(5433),c.e(8920),c.e(24),c.e(2578),c.e(3225),c.e(6922),c.e(5215),c.e(9696),c.e(7552),c.e(8499),c.e(6249),c.e(5330),c.e(8895),c.e(4049)]).then(c.bind(c,74177)),{createProviderConnection:b}=await c.e(1998).then(c.bind(c,71998)),f=await a("xai",g,j.redirectUri,j.codeVerifier,h),k=await b({provider:"xai",authType:"oauth",...f,expiresAt:f.expiresIn?new Date(Date.now()+1e3*f.expiresIn).toISOString():null,testStatus:"active"});j.status="done",j.connectionId=k.id,j.email=k.email,d.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),d.end(q(!0,"You can close this window."))}catch(a){j.status="error",j.error=a.message,d.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),d.end((k=a.message,q(!1,k)))}finally{A()}return}let l=`http://localhost:${a}/callback${e.search}`;d.writeHead(302,{Location:l}),d.end(),A()});d.listen(56121,"127.0.0.1",()=>{t=d,u=setTimeout(()=>A(),3e5),b({success:!0})}),d.on("error",a=>{"EADDRINUSE"===a.code?b({success:!1,reason:"port_busy"}):b({success:!1,reason:a.message})})})}function A(){u&&(clearTimeout(u),u=null),t&&(t.close(),t=null)}let B=null,C=null,D=null,E=null;function F({state:a}){return!!a&&(E={state:a,status:"pending",createdAt:Date.now()},!0)}function G(a){return!E||a&&E.state!==a?null:E}function H(a){(!a||E&&E.state===a)&&(E=null)}function I(){return new Promise(a=>{if(B)return void a({success:!0,port:D,callbackUrl:`http://127.0.0.1:${D}${g.SK.callbackPath}`});let b=e().createServer(async(a,b)=>{let d=new f.URL(a.url,"http://localhost");if(d.pathname!==g.SK.callbackPath&&"/auth/callback"!==d.pathname){b.writeHead(404),b.end("Not found");return}let e=E;if(!e){b.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),b.end(q(!1,"No active Trae login session"));return}if(!h(a.headers.origin)){b.writeHead(403,{"Content-Type":"text/html; charset=utf-8"}),b.end(q(!1,"Cross-origin callback rejected"));return}let i=d.searchParams.get("state");if(i&&e.state&&i!==e.state){e.status="error",e.error="Trae callback state mismatch",b.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),b.end(q(!1,e.error)),J();return}let j=`${d.pathname}?${d.searchParams.toString()}`;try{let{exchangeTokens:a}=await Promise.all([c.e(7774),c.e(5433),c.e(8920),c.e(24),c.e(2578),c.e(3225),c.e(6922),c.e(5215),c.e(9696),c.e(7552),c.e(8499),c.e(6249),c.e(5330),c.e(8895),c.e(4049)]).then(c.bind(c,74177)),{createProviderConnection:d}=await c.e(1998).then(c.bind(c,71998)),f=await a("trae",j),g=await d({provider:"trae",authType:"oauth",...f,expiresAt:f.expiresIn?new Date(Date.now()+1e3*f.expiresIn).toISOString():null,testStatus:"active"});e.status="done",e.connectionId=g.id,e.email=g.email,b.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),b.end(q(!0,"You can close this window."))}catch(a){e.status="error",e.error=a.message,b.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),b.end(q(!1,a.message))}finally{J()}});b.listen(0,"127.0.0.1",()=>{B=b,D=b.address().port,C=setTimeout(()=>J(),g.SK.oauthTimeoutMs),a({success:!0,port:D,callbackUrl:`http://127.0.0.1:${D}${g.SK.callbackPath}`})}),b.on("error",b=>a({success:!1,reason:b.message}))})}function J(){C&&(clearTimeout(C),C=null),B&&(B.close(),B=null),D=null}let K=null,L=null,M=null,N=null;function O({state:a}){return!!a&&(N={state:a,status:"pending",createdAt:Date.now()},!0)}function P(a){return!N||a&&N.state!==a?null:N}function Q(a){(!a||N&&N.state===a)&&(N=null)}function R(){return new Promise(a=>{if(K)return void a({success:!0,port:M,callbackUrl:`http://127.0.0.1:${M}${g.eD.callbackPath}`});let b=e().createServer(async(a,b)=>{let d=new f.URL(a.url,"http://localhost");if(d.pathname!==g.eD.callbackPath){b.writeHead(404),b.end("Not found");return}let e=N;if(!e){b.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),b.end(q(!1,"No active Windsurf login session"));return}if(!h(a.headers.origin)){b.writeHead(403,{"Content-Type":"text/html; charset=utf-8"}),b.end(q(!1,"Cross-origin callback rejected"));return}let i=d.searchParams.get("state");if(!i||!e.state||i!==e.state){e.status="error",e.error="Windsurf callback state mismatch",b.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),b.end(q(!1,e.error)),S();return}let j=`${d.pathname}?${d.searchParams.toString()}`;try{let{exchangeTokens:a}=await Promise.all([c.e(7774),c.e(5433),c.e(8920),c.e(24),c.e(2578),c.e(3225),c.e(6922),c.e(5215),c.e(9696),c.e(7552),c.e(8499),c.e(6249),c.e(5330),c.e(8895),c.e(4049)]).then(c.bind(c,74177)),{createProviderConnection:d}=await c.e(1998).then(c.bind(c,71998)),f=await a("windsurf",j,null,null,e.state),g=await d({provider:"windsurf",authType:"api_key",...f,testStatus:"active"});e.status="done",e.connectionId=g.id,e.email=g.email,b.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),b.end(q(!0,"You can close this window."))}catch(a){e.status="error",e.error=a.message,b.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),b.end(q(!1,a.message))}finally{S()}});b.listen(0,"127.0.0.1",()=>{K=b,M=b.address().port,L=setTimeout(()=>S(),g.eD.oauthTimeoutMs),a({success:!0,port:M,callbackUrl:`http://127.0.0.1:${M}${g.eD.callbackPath}`})}),b.on("error",b=>a({success:!1,reason:b.message}))})}function S(){L&&(clearTimeout(L),L=null),K&&(K.close(),K=null),M=null}let T=null,U=null,V=null,W=null;function X({state:a,codeVerifier:b,systemId:c}){return!!a&&!!b&&(W={state:a,codeVerifier:b,systemId:c||null,status:"pending",createdAt:Date.now()},!0)}function Y(a){return!W||a&&W.state!==a?null:W}function Z(a){(!a||W&&W.state===a)&&(W=null)}function $(a=0){return new Promise(b=>{if(T){U&&clearTimeout(U),U=setTimeout(()=>{console.log("[Zed proxy] timeout, stopping"),_()},g.RY.oauthTimeoutMs),b({success:!0,port:V,callbackUrl:`http://127.0.0.1:${V}/`});return}let d=e().createServer(async(a,b)=>{let d=new f.URL(a.url,"http://localhost"),e=Object.fromEntries(d.searchParams);for(let a of["access_token","user_id","code_verifier","state"])e[a]&&(e[a]="<redacted>");if(console.log("[Zed proxy]",a.method,d.pathname,JSON.stringify(e)),"/"!==d.pathname&&"/callback"!==d.pathname){b.writeHead(404),b.end("Not found");return}let g=W;if(!g){b.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),b.end(q(!1,"No active Zed login session"));return}if(!h(a.headers.origin)){b.writeHead(403,{"Content-Type":"text/html; charset=utf-8"}),b.end(q(!1,"Cross-origin callback rejected"));return}let i=d.searchParams;if(!(i.has("user_id")||i.has("userId")||i.has("access_token")||i.has("accessToken")||i.has("token"))){console.log(`[Zed proxy] ignoring non-callback ${a.method} ${d.pathname} (session kept, server kept)`),b.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),b.end(q(!1,"Waiting for Zed sign-in — this request carried no login data."));return}let j=d.search?`${d.pathname}?${d.searchParams.toString()}`:d.pathname;try{let{exchangeTokens:a}=await Promise.all([c.e(7774),c.e(5433),c.e(8920),c.e(24),c.e(2578),c.e(3225),c.e(6922),c.e(5215),c.e(9696),c.e(7552),c.e(8499),c.e(6249),c.e(5330),c.e(8895),c.e(4049)]).then(c.bind(c,74177)),{createProviderConnection:d}=await c.e(1998).then(c.bind(c,71998)),e=await a("zed",j,null,g.codeVerifier,g.state,g.systemId?{systemId:g.systemId}:void 0),f=await d({provider:"zed",authType:"oauth",...e,testStatus:"active"});g.status="done",g.connectionId=f.id,g.email=f.email,b.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),b.end(q(!0,"You can close this window.")),_()}catch(a){g.status="error",g.error=a.message,b.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),b.end(q(!1,a.message))}}),i=Number(a)||0;d.on("error",a=>{"EADDRINUSE"===a.code&&0!==i?(console.log(`[Zed proxy] port ${i} busy, falling back to random`),d.listen(0,"127.0.0.1",()=>{T=d,V=d.address().port,U=setTimeout(()=>_(),g.RY.oauthTimeoutMs),console.log(`[Zed proxy] listening on random port ${V}`),b({success:!0,port:V,callbackUrl:`http://127.0.0.1:${V}/`})})):(console.log(`[Zed proxy] listen error: ${a.message}`),b({success:!1,reason:a.message}))}),d.listen(i,"127.0.0.1",()=>{T=d,V=d.address().port,U=setTimeout(()=>{console.log("[Zed proxy] timeout, stopping"),_()},g.RY.oauthTimeoutMs),console.log(`[Zed proxy] listening on port ${V}`),b({success:!0,port:V,callbackUrl:`http://127.0.0.1:${V}/`})})})}function _(){console.log(`[Zed proxy] stopping (port ${V||"-"})`),U&&(clearTimeout(U),U=null),T&&(T.close(),T=null),V=null}let aa=null,ab=null,ac=null,ad=new Map;function ae({state:a,privateKeyDer:b}){return!!a&&!!b&&(ad.set(a,{privateKeyDer:b,status:"pending",createdAt:Date.now()}),!0)}function af(a){let b=ad.get(a);return b?{status:b.status,result:b.result||null,error:b.error||null}:null}function ag(a){ad.delete(a)}function ah(a,b){let c=a?"Authentication Successful":"Authentication Failed";return`<!DOCTYPE html>
|
|
43
|
+
</div></body></html>`}function r(a){return new Promise(b=>{if(j)return void b({success:!0});let d=e().createServer(async(b,d)=>{let e=new f.URL(b.url,"http://localhost");if("/callback"!==e.pathname&&"/auth/callback"!==e.pathname){d.writeHead(404),d.end("Not found");return}let g=e.searchParams.get("code"),h=e.searchParams.get("state"),i=e.searchParams.get("error"),j=h?m.get(h):null;if(j){try{if(i)throw Error(e.searchParams.get("error_description")||i);if(!g)throw Error("No authorization code received");let{exchangeTokens:a}=await Promise.all([c.e(7774),c.e(5433),c.e(8920),c.e(24),c.e(2578),c.e(3225),c.e(6922),c.e(5215),c.e(9696),c.e(7552),c.e(8499),c.e(6249),c.e(5330),c.e(8895),c.e(4049)]).then(c.bind(c,74177)),{createProviderConnection:b}=await c.e(1998).then(c.bind(c,71998)),f=await a("codex",g,j.redirectUri,j.codeVerifier,h),k=await b({provider:"codex",authType:"oauth",...f,expiresAt:f.expiresIn?new Date(Date.now()+1e3*f.expiresIn).toISOString():null,testStatus:"active"});j.status="done",j.connectionId=k.id,j.email=k.email,d.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),d.end(q(!0,"You can close this window."))}catch(a){j.status="error",j.error=a.message,d.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),d.end(q(!1,a.message))}finally{s()}return}let k=`http://localhost:${a}/callback${e.search}`;d.writeHead(302,{Location:k}),d.end(),s()});d.listen(l,"127.0.0.1",()=>{j=d,k=setTimeout(()=>s(),3e5),b({success:!0})}),d.on("error",a=>{"EADDRINUSE"===a.code?b({success:!1,reason:"port_busy"}):b({success:!1,reason:a.message})})})}function s(){k&&(clearTimeout(k),k=null),j&&(j.close(),j=null)}let t=null,u=null,v=new Map;function w({state:a,codeVerifier:b,redirectUri:c}){return!!a&&!!b&&!!c&&(v.set(a,{codeVerifier:b,redirectUri:c,status:"pending",createdAt:Date.now()}),!0)}function x(a){return v.get(a)||null}function y(a){v.delete(a)}let z=new Map;function A(){let a=Date.now();for(let[b,c]of z)a-c.createdAt>6e5&&z.delete(b)}function B({state:a,codeVerifier:b,redirectUri:c,authMethod:d}){return!!a&&!!b&&!!c&&(A(),z.set(a,{codeVerifier:b,redirectUri:c,authMethod:d||"google",status:"pending",createdAt:Date.now()}),!0)}function C(a){return a?(A(),z.get(a)||null):null}function D(a){z.delete(a)}function E(a){return new Promise(b=>{if(t)return void b({success:!0});let d=e().createServer(async(b,d)=>{let e=new f.URL(b.url,"http://localhost");if("/callback"!==e.pathname&&"/auth/callback"!==e.pathname){d.writeHead(404),d.end("Not found");return}let g=e.searchParams.get("code"),h=e.searchParams.get("state"),i=e.searchParams.get("error"),j=h?v.get(h):null;if(j){var k;try{if(i)throw Error(e.searchParams.get("error_description")||i);if(!g)throw Error("No authorization code received");let{exchangeTokens:a}=await Promise.all([c.e(7774),c.e(5433),c.e(8920),c.e(24),c.e(2578),c.e(3225),c.e(6922),c.e(5215),c.e(9696),c.e(7552),c.e(8499),c.e(6249),c.e(5330),c.e(8895),c.e(4049)]).then(c.bind(c,74177)),{createProviderConnection:b}=await c.e(1998).then(c.bind(c,71998)),f=await a("xai",g,j.redirectUri,j.codeVerifier,h),k=await b({provider:"xai",authType:"oauth",...f,expiresAt:f.expiresIn?new Date(Date.now()+1e3*f.expiresIn).toISOString():null,testStatus:"active"});j.status="done",j.connectionId=k.id,j.email=k.email,d.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),d.end(q(!0,"You can close this window."))}catch(a){j.status="error",j.error=a.message,d.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),d.end((k=a.message,q(!1,k)))}finally{F()}return}let l=`http://localhost:${a}/callback${e.search}`;d.writeHead(302,{Location:l}),d.end(),F()});d.listen(56121,"127.0.0.1",()=>{t=d,u=setTimeout(()=>F(),3e5),b({success:!0})}),d.on("error",a=>{"EADDRINUSE"===a.code?b({success:!1,reason:"port_busy"}):b({success:!1,reason:a.message})})})}function F(){u&&(clearTimeout(u),u=null),t&&(t.close(),t=null)}let G=null,H=null,I=null,J=null;function K({state:a}){return!!a&&(J={state:a,status:"pending",createdAt:Date.now()},!0)}function L(a){return!J||a&&J.state!==a?null:J}function M(a){(!a||J&&J.state===a)&&(J=null)}function N(){return new Promise(a=>{if(G)return void a({success:!0,port:I,callbackUrl:`http://127.0.0.1:${I}${g.SK.callbackPath}`});let b=e().createServer(async(a,b)=>{let d=new f.URL(a.url,"http://localhost");if(d.pathname!==g.SK.callbackPath&&"/auth/callback"!==d.pathname){b.writeHead(404),b.end("Not found");return}let e=J;if(!e){b.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),b.end(q(!1,"No active Trae login session"));return}if(!h(a.headers.origin)){b.writeHead(403,{"Content-Type":"text/html; charset=utf-8"}),b.end(q(!1,"Cross-origin callback rejected"));return}let i=d.searchParams.get("state");if(i&&e.state&&i!==e.state){e.status="error",e.error="Trae callback state mismatch",b.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),b.end(q(!1,e.error)),O();return}let j=`${d.pathname}?${d.searchParams.toString()}`;try{let{exchangeTokens:a}=await Promise.all([c.e(7774),c.e(5433),c.e(8920),c.e(24),c.e(2578),c.e(3225),c.e(6922),c.e(5215),c.e(9696),c.e(7552),c.e(8499),c.e(6249),c.e(5330),c.e(8895),c.e(4049)]).then(c.bind(c,74177)),{createProviderConnection:d}=await c.e(1998).then(c.bind(c,71998)),f=await a("trae",j),g=await d({provider:"trae",authType:"oauth",...f,expiresAt:f.expiresIn?new Date(Date.now()+1e3*f.expiresIn).toISOString():null,testStatus:"active"});e.status="done",e.connectionId=g.id,e.email=g.email,b.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),b.end(q(!0,"You can close this window."))}catch(a){e.status="error",e.error=a.message,b.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),b.end(q(!1,a.message))}finally{O()}});b.listen(0,"127.0.0.1",()=>{G=b,I=b.address().port,H=setTimeout(()=>O(),g.SK.oauthTimeoutMs),a({success:!0,port:I,callbackUrl:`http://127.0.0.1:${I}${g.SK.callbackPath}`})}),b.on("error",b=>a({success:!1,reason:b.message}))})}function O(){H&&(clearTimeout(H),H=null),G&&(G.close(),G=null),I=null}let P=null,Q=null,R=null,S=null;function T({state:a}){return!!a&&(S={state:a,status:"pending",createdAt:Date.now()},!0)}function U(a){return!S||a&&S.state!==a?null:S}function V(a){(!a||S&&S.state===a)&&(S=null)}function W(){return new Promise(a=>{if(P)return void a({success:!0,port:R,callbackUrl:`http://127.0.0.1:${R}${g.eD.callbackPath}`});let b=e().createServer(async(a,b)=>{let d=new f.URL(a.url,"http://localhost");if(d.pathname!==g.eD.callbackPath){b.writeHead(404),b.end("Not found");return}let e=S;if(!e){b.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),b.end(q(!1,"No active Windsurf login session"));return}if(!h(a.headers.origin)){b.writeHead(403,{"Content-Type":"text/html; charset=utf-8"}),b.end(q(!1,"Cross-origin callback rejected"));return}let i=d.searchParams.get("state");if(!i||!e.state||i!==e.state){e.status="error",e.error="Windsurf callback state mismatch",b.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),b.end(q(!1,e.error)),X();return}let j=`${d.pathname}?${d.searchParams.toString()}`;try{let{exchangeTokens:a}=await Promise.all([c.e(7774),c.e(5433),c.e(8920),c.e(24),c.e(2578),c.e(3225),c.e(6922),c.e(5215),c.e(9696),c.e(7552),c.e(8499),c.e(6249),c.e(5330),c.e(8895),c.e(4049)]).then(c.bind(c,74177)),{createProviderConnection:d}=await c.e(1998).then(c.bind(c,71998)),f=await a("windsurf",j,null,null,e.state),g=await d({provider:"windsurf",authType:"api_key",...f,testStatus:"active"});e.status="done",e.connectionId=g.id,e.email=g.email,b.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),b.end(q(!0,"You can close this window."))}catch(a){e.status="error",e.error=a.message,b.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),b.end(q(!1,a.message))}finally{X()}});b.listen(0,"127.0.0.1",()=>{P=b,R=b.address().port,Q=setTimeout(()=>X(),g.eD.oauthTimeoutMs),a({success:!0,port:R,callbackUrl:`http://127.0.0.1:${R}${g.eD.callbackPath}`})}),b.on("error",b=>a({success:!1,reason:b.message}))})}function X(){Q&&(clearTimeout(Q),Q=null),P&&(P.close(),P=null),R=null}let Y=null,Z=null,$=null,_=null;function aa({state:a,codeVerifier:b,systemId:c}){return!!a&&!!b&&(_={state:a,codeVerifier:b,systemId:c||null,status:"pending",createdAt:Date.now()},!0)}function ab(a){return!_||a&&_.state!==a?null:_}function ac(a){(!a||_&&_.state===a)&&(_=null)}function ad(a=0){return new Promise(b=>{if(Y){Z&&clearTimeout(Z),Z=setTimeout(()=>{console.log("[Zed proxy] timeout, stopping"),ae()},g.RY.oauthTimeoutMs),b({success:!0,port:$,callbackUrl:`http://127.0.0.1:${$}/`});return}let d=e().createServer(async(a,b)=>{let d=new f.URL(a.url,"http://localhost"),e=Object.fromEntries(d.searchParams);for(let a of["access_token","user_id","code_verifier","state"])e[a]&&(e[a]="<redacted>");if(console.log("[Zed proxy]",a.method,d.pathname,JSON.stringify(e)),"/"!==d.pathname&&"/callback"!==d.pathname){b.writeHead(404),b.end("Not found");return}let g=_;if(!g){b.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),b.end(q(!1,"No active Zed login session"));return}if(!h(a.headers.origin)){b.writeHead(403,{"Content-Type":"text/html; charset=utf-8"}),b.end(q(!1,"Cross-origin callback rejected"));return}let i=d.searchParams;if(!(i.has("user_id")||i.has("userId")||i.has("access_token")||i.has("accessToken")||i.has("token"))){console.log(`[Zed proxy] ignoring non-callback ${a.method} ${d.pathname} (session kept, server kept)`),b.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),b.end(q(!1,"Waiting for Zed sign-in — this request carried no login data."));return}let j=d.search?`${d.pathname}?${d.searchParams.toString()}`:d.pathname;try{let{exchangeTokens:a}=await Promise.all([c.e(7774),c.e(5433),c.e(8920),c.e(24),c.e(2578),c.e(3225),c.e(6922),c.e(5215),c.e(9696),c.e(7552),c.e(8499),c.e(6249),c.e(5330),c.e(8895),c.e(4049)]).then(c.bind(c,74177)),{createProviderConnection:d}=await c.e(1998).then(c.bind(c,71998)),e=await a("zed",j,null,g.codeVerifier,g.state,g.systemId?{systemId:g.systemId}:void 0),f=await d({provider:"zed",authType:"oauth",...e,testStatus:"active"});g.status="done",g.connectionId=f.id,g.email=f.email,b.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),b.end(q(!0,"You can close this window.")),ae()}catch(a){g.status="error",g.error=a.message,b.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),b.end(q(!1,a.message))}}),i=Number(a)||0;d.on("error",a=>{"EADDRINUSE"===a.code&&0!==i?(console.log(`[Zed proxy] port ${i} busy, falling back to random`),d.listen(0,"127.0.0.1",()=>{Y=d,$=d.address().port,Z=setTimeout(()=>ae(),g.RY.oauthTimeoutMs),console.log(`[Zed proxy] listening on random port ${$}`),b({success:!0,port:$,callbackUrl:`http://127.0.0.1:${$}/`})})):(console.log(`[Zed proxy] listen error: ${a.message}`),b({success:!1,reason:a.message}))}),d.listen(i,"127.0.0.1",()=>{Y=d,$=d.address().port,Z=setTimeout(()=>{console.log("[Zed proxy] timeout, stopping"),ae()},g.RY.oauthTimeoutMs),console.log(`[Zed proxy] listening on port ${$}`),b({success:!0,port:$,callbackUrl:`http://127.0.0.1:${$}/`})})})}function ae(){console.log(`[Zed proxy] stopping (port ${$||"-"})`),Z&&(clearTimeout(Z),Z=null),Y&&(Y.close(),Y=null),$=null}let af=null,ag=null,ah=null,ai=new Map;function aj({state:a,privateKeyDer:b}){return!!a&&!!b&&(ai.set(a,{privateKeyDer:b,status:"pending",createdAt:Date.now()}),!0)}function ak(a){let b=ai.get(a);return b?{status:b.status,result:b.result||null,error:b.error||null}:null}function al(a){ai.delete(a)}function am(a,b){let c=a?"Authentication Successful":"Authentication Failed";return`<!DOCTYPE html>
|
|
44
44
|
<html>
|
|
45
45
|
<head><meta charset="utf-8"><title>${c}</title>
|
|
46
46
|
<style>
|
|
@@ -59,4 +59,4 @@
|
|
|
59
59
|
${a?"<script>setTimeout(() => window.close(), 3000);<\/script>":""}
|
|
60
60
|
</div>
|
|
61
61
|
</body>
|
|
62
|
-
</html>`}function
|
|
62
|
+
</html>`}function an(){return new Promise(a=>{if(af)return void a({success:!0,port:ag,callbackUrl:`http://127.0.0.1:${ag}/`});let b=e().createServer(async(a,b)=>{if(!h(a.headers.origin)){b.writeHead(403),b.end("Forbidden");return}let d=new f.URL(a.url,"http://127.0.0.1").searchParams.get("u");if(!d){b.writeHead(400,{"Content-Type":"text/html; charset=utf-8"}),b.end(am(!1,"Missing encrypted payload (u parameter)."));return}let e=[...ai.entries()].filter(([,a])=>"pending"===a.status);if(0===e.length){b.writeHead(500,{"Content-Type":"text/html; charset=utf-8"}),b.end(am(!1,"No active OAuth session. Please restart the login flow."));return}try{let{decryptCallback:a}=await c.e(4152).then(c.bind(c,34152)),f=null,g=null;for(let[b,c]of e)try{f=a(c.privateKeyDer,d),g=b;break}catch{}if(!f||!g)throw Error("Could not decrypt with any pending session key");if(!f.sk)throw Error("Decrypted payload missing sk (API key)");let h=ai.get(g);h&&(h.status="done",h.result={uid:f.uid,accessToken:f.sk,baseUrl:f.url||"https://api.xiaomimimo.com/v1"}),b.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),b.end(am(!0,"Xiaomi account linked. You can close this tab.")),console.log("[xiaomi-mimo oauth] callback decrypted, uid:",f.uid)}catch(a){for(let[,b]of(console.error("[xiaomi-mimo oauth] decrypt failed:",a.message),e))b.status="error",b.error=a.message;b.writeHead(400,{"Content-Type":"text/html; charset=utf-8"}),b.end(am(!1,`Decryption failed: ${a.message}`))}});b.on("error",b=>{console.log("[xiaomi-mimo oauth] listen error:",b.message),a({success:!1,reason:b.message})}),b.listen(0,"127.0.0.1",()=>{af=b,ag=b.address().port,ah=setTimeout(()=>{console.log("[xiaomi-mimo oauth] timeout, stopping"),ao()},3e5),console.log(`[xiaomi-mimo oauth] listening on port ${ag}`),a({success:!0,port:ag,callbackUrl:`http://127.0.0.1:${ag}/`})})})}function ao(){console.log(`[xiaomi-mimo oauth] stopping (port ${ag||"-"})`),ah&&(clearTimeout(ah),ah=null),af&&(af.close(),af=null),ag=null,ai.clear()}},73159:(a,b,c)=>{c.d(b,{Ue:()=>k,oT:()=>l});var d=c(26070);let e=d.xq.xai?.clientId,f="https://auth.x.ai",g="/oauth2/authorize",h="/oauth2/token",i="/.well-known/openid-configuration",j="/callback",k=96,l={clientId:e,issuer:f,authEndpointPath:g,tokenEndpointPath:h,discoveryPath:i,authorizeUrl:`${f}${g}`,tokenUrl:`${f}${h}`,discoveryUrl:`${f}${i}`,scope:"openid profile email offline_access grok-cli:access api:access",apiBaseUrl:"https://api.x.ai/v1",redirectUri:`http://127.0.0.1:56121${j}`,loopbackPort:56121,callbackPath:j,pkceVerifierBytes:96,refreshLeadSeconds:300,userAgent:"grok-cli/omnihilbras",codeChallengeMethod:"S256"}},92990:(a,b,c)=>{c.d(b,{DI:()=>i,DV:()=>A,LT:()=>j,MZ:()=>v,Nl:()=>z,Nu:()=>p,OV:()=>h,RY:()=>I,S6:()=>s,SK:()=>F,Td:()=>B,Tx:()=>q,WN:()=>t,Ww:()=>K,YT:()=>n,Z2:()=>J,ZL:()=>m,_0:()=>H,aV:()=>u,cD:()=>o,eD:()=>G,f7:()=>y,hF:()=>k,lB:()=>w,oe:()=>E,qp:()=>C,sA:()=>D,t3:()=>l,w1:()=>x});var d=c(21820),e=c(74129),f=c(26070);function g(){let a=(0,d.platform)(),b=(0,d.arch)();return"darwin"===a?"arm64"===b?2:1:"linux"===a?"arm64"===b?4:3:5*("win32"===a)}let h={...f.sr.claude},i={...f.sr.codex},j={...e.dG,...f.sr["gemini-cli"]},k={...f.sr.qoder},l={...f.sr["qoder-cn"]},m={...f.sr.iflow},n={...e.XP,...f.sr.antigravity,loadCodeAssistClientMetadata:JSON.stringify({ideType:9,platform:g(),pluginType:2})};function o(){return{ideType:9,platform:g(),pluginType:2}}({...f.sr.openai});let p={...f.sr.github},q={...f.sr.kiro},r=/^[a-z]{2}-[a-z]+-\d{1,2}$/;function s(a){if("string"!=typeof a||!r.test(a))throw Error("Invalid region");return a}let t={...f.sr.cursor,tokenStoragePaths:{linux:"~/.config/Cursor/User/globalStorage/state.vscdb",macos:"/Users/<user>/Library/Application Support/Cursor/User/globalStorage/state.vscdb",windows:"%APPDATA%\\Cursor\\User\\globalStorage\\state.vscdb"}},u={...f.sr.kimi,clientId:process.env.KIMI_CODING_OAUTH_CLIENT_ID||process.env.KIMI_OAUTH_CLIENT_ID||f.xq.kimi?.clientId||f.sr.kimi?.clientId},v={...f.sr.kilocode},w={...f.sr.cline},x={...f.sr.clinepass},y={...f.sr.gitlab},z={...f.sr["codebuddy-cn"]},A={...f.sr["codebuddy-intl"]},B={...f.sr.kimchi},C={...f.sr["grok-cli"]},D={...f.sr.muse},E={platformUrl:process.env.MIMO_PLATFORM_URL||"https://platform.xiaomimimo.com",defaultBaseUrl:"https://api.xiaomimimo.com/v1",kn:"mimocode",callbackPath:"/",timeoutMs:3e5},F={clientId:"ono9krqynydwx5",clientSecret:"-",loginGuidanceUrls:["https://api.marscode.com/cloudide/api/v3/trae/GetLoginGuidance","https://api.trae.ai/cloudide/api/v3/trae/GetLoginGuidance","https://www.trae.ai/cloudide/api/v3/trae/GetLoginGuidance"],apiOrigins:["https://api.marscode.com","https://api.trae.ai","https://www.trae.ai","https://www.marscode.com"],exchangeTokenPath:"/cloudide/api/v3/trae/oauth/ExchangeToken",getUserInfoPath:"/cloudide/api/v3/trae/GetUserInfo",authorizationPath:"/authorization",callbackPath:"/callback",minAppVersion:"3.5.54",defaultAppVersion:"3.5.54",defaultAppType:"stable",defaultPluginVersion:"local",defaultDeviceId:"0",userAgent:"Trae/1.0.0 antigravity-cockpit-tools",webUrl:"https://www.trae.ai",authScheme:"Cloud-IDE-JWT",tokenLifetimeDays:14,oauthTimeoutMs:6e5},G={clientId:"3GUryQ7ldAeKEuD2obYnppsnmj58eP5u",authBaseUrl:"https://www.windsurf.com",signInPath:"/windsurf/signin",registerApiBaseUrl:"https://register.windsurf.com",registerPath:"/exa.seat_management_pb.SeatManagementService/RegisterUser",oneTimeAuthPath:"/exa.seat_management_pb.SeatManagementService/GetOneTimeAuthToken",currentUserPath:"/exa.seat_management_pb.SeatManagementService/GetCurrentUser",planStatusPath:"/exa.seat_management_pb.SeatManagementService/GetPlanStatus",userStatusPath:"/exa.seat_management_pb.SeatManagementService/GetUserStatus",defaultApiServerUrl:"https://server.codeium.com",firebaseApiKey:"AIzaSyDsOl-1XpT5err0Tcn0TFFod1H8gVGIycY",callbackPath:"/windsurf-auth-callback",userAgent:"antigravity-cockpit-tools",oauthTimeoutMs:6e5},H={...f.sr.glm},I={webBaseUrl:"https://zed.dev",cloudBaseUrl:"https://cloud.zed.dev",llmBaseUrl:"https://cloud.zed.dev",defaultNativeAppPort:58443,oauthTimeoutMs:6e5},J={clientId:"hermes-cli",portalBaseUrl:"https://portal.nousresearch.com",deviceCodeUrl:"https://portal.nousresearch.com/api/oauth/device/code",tokenUrl:"https://portal.nousresearch.com/api/oauth/token",agentKeyUrl:"https://portal.nousresearch.com/api/oauth/agent-key",inferenceBaseUrl:"https://inference-api.nousresearch.com/v1",scope:"inference:invoke inference:mint_agent_key"},K=3e5}};
|