@hilbras/omnihilbras 2.9.12 → 2.9.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/app/.next-cli-build/BUILD_ID +1 -1
- package/app/.next-cli-build/app-path-routes-manifest.json +17 -17
- package/app/.next-cli-build/build-manifest.json +3 -3
- package/app/.next-cli-build/react-loadable-manifest.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/observability/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/observability/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/_global-error/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/_global-error.html +1 -1
- package/app/.next-cli-build/server/app/_global-error.rsc +1 -1
- package/app/.next-cli-build/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/_not-found/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/_not-found.html +1 -1
- package/app/.next-cli-build/server/app/_not-found.rsc +2 -2
- package/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
- 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 +2 -2
- package/app/.next-cli-build/server/app/api/auth/login/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/logout/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/oidc/start/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/oidc/test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/reset-password/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/saml/acs/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/saml/metadata/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/saml/start/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/saml/test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/status/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js.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.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/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.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/devin-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/forge-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/grok-build-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/hermes-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.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/pi-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/smelt-settings/route.js.nft.json +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.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/combos/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/headroom/extras/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/headroom/proxy/[...path]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/headroom/restart/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/headroom/start/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/headroom/status/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/headroom/stop/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/health/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/init/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/keys/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/keys/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/locale/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/alias/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/chat/route.js +1 -1
- package/app/.next-cli-build/server/app/api/models/chat/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/custom/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/disabled/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/route.js +1 -1
- package/app/.next-cli-build/server/app/api/models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/test-batch/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/codex/bulk-import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/api-key/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/import-cli-proxy/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/api-key/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/auto-import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/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.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/observability/export/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/observability/log/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/observability/logs/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/observability/settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/observability/stats/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pricing/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/provider-nodes/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js +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.nft.json +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]/refresh/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/client/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/kilo/free-models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/suggested-models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/test-batch/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/validate/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/web-session/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/netlify-deploy/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/health/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/install/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/logs/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/restart/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/start/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/stats/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/status/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/stop/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/settings/database/route.js +1 -1
- package/app/.next-cli-build/server/app/api/settings/database/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/settings/proxy-test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/settings/require-login/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/shutdown/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/skills/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/skills/install/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/skills/mine/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/skills/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.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/translator/translate/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/disable/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/enable/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/status/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js.nft.json +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.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/chart/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/logs/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/providers/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/rate-limit/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/request-details/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/request-logs/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/stats/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/stream/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/api/chat/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/audio/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js.nft.json +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.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.nft.json +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.nft.json +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.nft.json +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.nft.json +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.nft.json +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.nft.json +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.nft.json +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.nft.json +1 -1
- package/app/.next-cli-build/server/app/callback/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/callback/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/callback.html +1 -1
- package/app/.next-cli-build/server/app/callback.rsc +2 -2
- package/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +2 -2
- 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 +2 -2
- package/app/.next-cli-build/server/app/dashboard/basic-chat.html +2 -2
- package/app/.next-cli-build/server/app/dashboard/basic-chat.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_full.segment.rsc +2 -2
- 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 +2 -2
- package/app/.next-cli-build/server/app/dashboard/cli-tools.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_full.segment.rsc +2 -2
- 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 +2 -2
- package/app/.next-cli-build/server/app/dashboard/combos.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/combos.segments/_full.segment.rsc +2 -2
- 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 +2 -2
- package/app/.next-cli-build/server/app/dashboard/endpoint.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_full.segment.rsc +2 -2
- 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 +2 -2
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_full.segment.rsc +2 -2
- 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 +2 -2
- package/app/.next-cli-build/server/app/dashboard/mitm.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/mitm.segments/_full.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/mitm.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/observability.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/observability.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/observability.segments/!KGRhc2hib2FyZCk/dashboard/observability/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/observability.segments/_full.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/observability.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/profile.html +2 -2
- package/app/.next-cli-build/server/app/dashboard/profile.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/profile.segments/_full.segment.rsc +2 -2
- 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 +2 -2
- package/app/.next-cli-build/server/app/dashboard/providers/new.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_full.segment.rsc +2 -2
- 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 +2 -2
- package/app/.next-cli-build/server/app/dashboard/providers.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/providers.segments/_full.segment.rsc +2 -2
- 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 +2 -2
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +2 -2
- 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 +2 -2
- package/app/.next-cli-build/server/app/dashboard/pxpipe.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard/pxpipe/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_full.segment.rsc +2 -2
- 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 +2 -2
- package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/quota.segments/_full.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/quota.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +2 -2
- 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 +2 -2
- package/app/.next-cli-build/server/app/dashboard/skills.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/skills.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/skills.segments/_full.segment.rsc +2 -2
- 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 +2 -2
- package/app/.next-cli-build/server/app/dashboard/token-saver.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_full.segment.rsc +2 -2
- 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 +2 -2
- package/app/.next-cli-build/server/app/dashboard/translator.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/translator.segments/_full.segment.rsc +2 -2
- 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 +2 -2
- package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/usage.segments/_full.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/usage.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard.html +2 -2
- package/app/.next-cli-build/server/app/dashboard.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard.segments/_full.segment.rsc +2 -2
- 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 +2 -2
- package/app/.next-cli-build/server/app/index.segments/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/index.segments/_full.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/index.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/landing/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/landing/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/landing.html +1 -1
- package/app/.next-cli-build/server/app/landing.rsc +2 -2
- package/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +2 -2
- 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 +2 -2
- 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 +2 -2
- package/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/login.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/manifest.webmanifest/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app-paths-manifest.json +17 -17
- package/app/.next-cli-build/server/chunks/2617.js +1 -1
- package/app/.next-cli-build/server/chunks/3867.js +1 -0
- package/app/.next-cli-build/server/chunks/436.js +1 -1
- package/app/.next-cli-build/server/chunks/7803.js +1 -1
- package/app/.next-cli-build/server/chunks/820.js +1 -1
- package/app/.next-cli-build/server/chunks/8287.js +1 -1
- package/app/.next-cli-build/server/chunks/8401.js +1 -1
- package/app/.next-cli-build/server/chunks/8525.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/{2723-eeed7da0db48ce16.js → 2723-883d3f1978a34f61.js} +1 -1
- package/app/.next-cli-build/static/chunks/{webpack-bf173b790feb7842.js → webpack-838fc980fcb6998d.js} +1 -1
- package/app/package.json +1 -1
- package/package.json +1 -1
- /package/app/.next-cli-build/static/{TOJIxZp9c-49CspJYn9zz → qbNpekiBhXmFJRDeYHchv}/_buildManifest.js +0 -0
- /package/app/.next-cli-build/static/{TOJIxZp9c-49CspJYn9zz → qbNpekiBhXmFJRDeYHchv}/_ssgManifest.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";exports.id=8401,exports.ids=[8401],exports.modules={7803:(a,b,c)=>{c.r(b),c.d(b,{debug:()=>o,error:()=>r,errorLine:()=>l,fmtThink:()=>m,info:()=>p,line:()=>k,maskKey:()=>v,nextTag:()=>i,request:()=>s,response:()=>t,stream:()=>u,tagForSession:()=>j,warn:()=>q});let d={DEBUG:0,INFO:1,WARN:2,ERROR:3},e=d[process.env.LOG_LEVEL?.toUpperCase?.()]??d.INFO;function f(){return new Date().toLocaleTimeString("en-US",{hour12:!1})}let g=["\uD83D\uDFE2","\uD83D\uDD35","\uD83D\uDFE3","\uD83D\uDFE1","\uD83D\uDFE0","\uD83D\uDD34","⚪","\uD83D\uDFE4"],h=0;function i(){let a=g[h%g.length];return h++,a}function j(a){if(!a)return i();let b=0;for(let c=0;c<a.length;c++)b=31*b+a.charCodeAt(c)|0;return g[Math.abs(b)%g.length]}function k(a,b,c){e>d.INFO||console.log(`[${f()}] ${a} ${b} ${c}`)}function l(a,b,c){console.log(`[${f()}] ${a} ${b} ${c}`)}function m(a){return a&&a.mode?"none"===a.mode?"off":"auto"===a.mode?"auto":"budget"===a.mode?a.budget>=1e3?`${Math.round(a.budget/1e3)}k`:`${a.budget}`:"level"===a.mode?a.level:null:null}function n(a){if(!a)return"";if("string"==typeof a)return a;try{return JSON.stringify(a)}catch{return String(a)}}function o(a,b,c){if(e<=d.DEBUG){let d=c?` ${n(c)}`:"";console.log(`[${f()}] 🔍 [${a}] ${b}${d}`)}}function p(a,b,c){if(e<=d.INFO){let d=c?` ${n(c)}`:"";console.log(`[${f()}] ℹ️ [${a}] ${b}${d}`)}}function q(a,b,c){if(e<=d.WARN){let d=c?` ${n(c)}`:"";console.warn(`[${f()}] ⚠️ [${a}] ${b}${d}`)}}function r(a,b,c){if(e<=d.ERROR){let d=c?` ${n(c)}`:"";console.log(`[${f()}] ❌ [${a}] ${b}${d}`)}}function s(a,b,c){let d=c?` ${n(c)}`:"";console.log(`\x1b[36m[${f()}] 📥 ${a} ${b}${d}\x1b[0m`)}function t(a,b,c){let d=c?` ${n(c)}`:"";console.log(`[${f()}] ${a<400?"\uD83D\uDCE4":"\uD83D\uDCA5"} ${a} (${b}ms)${d}`)}function u(a,b){let c=b?` ${n(b)}`:"";console.log(`[${f()}] 🌊 [STREAM] ${a}${c}`)}function v(a){return!a||a.length<8?"***":`${a.slice(0,4)}...${a.slice(-4)}`}},8303:(a,b,c)=>{c.d(b,{B3:()=>k,T1:()=>l,im:()=>j,sv:()=>i});var d=c(48645);let e=[3e4,12e4,6e5,18e5],f=new Map;function g(){return Date.now()}function h(a){let b=f.get(a);return b?b.lastFailAt&&g()-b.lastFailAt>36e5&&(!b.lockUntil||g()>=b.lockUntil)?(f.delete(a),null):b:null}function i(a){let b=h(a);if(!b||!b.lockUntil)return{locked:!1};let c=b.lockUntil-g();return c<=0?{locked:!1}:{locked:!0,retryAfter:Math.ceil(c/1e3)}}function j(a){let b=h(a)||{fails:0,lockUntil:0,lockLevel:0,lastFailAt:0};if(b.fails+=1,b.lastFailAt=g(),b.fails>=5){let a=e[Math.min(b.lockLevel,e.length-1)];b.lockUntil=g()+a,b.lockLevel+=1,b.fails=0}return f.set(a,b),{remainingBeforeLock:Math.max(0,5-b.fails)}}function k(a){f.delete(a)}function l(a){if((0,d.M)(a)){let b=a.headers.get("x-9r-real-ip");if(b)return b}if("true"===process.env.TRUST_PROXY){let b=a.headers.get("x-forwarded-for");if(b)return b.split(",")[0].trim()}return"unknown"}},13867:(a,b,c)=>{c.d(b,{gN:()=>g});var d=c(54603);let e=null;async function f(){return e||(e=await (0,d.X)("9r-cli-auth")),e}async function g(a){let b=a?.headers?.get?.("x-9r-cli-token");return!!b&&b===await f()}},27811:(a,b,c)=>{c.d(b,{Ge:()=>y,QU:()=>w,TM:()=>p,Wl:()=>o,cI:()=>v,dR:()=>x,j:()=>z});var d=c(74452),e=c(1541),f=c(30653),g=c(38775),h=c(40615),i=c(38606),j=c(43659),k=c(41004),l=c(7803);let m=a=>String(a).toLowerCase(),n=(a,b)=>m(`${a}/${b}`);function o(a){let b=a?.headers;if(!b?.get)return null;let c=b.get("Authorization");if(c?.startsWith("Bearer "))return c.slice(7);let d=b.get("x-api-key");if(d)return d;let e=b.get("x-goog-api-key");if(e)return e;try{return new URL(a.url).searchParams.get("key")||null}catch{return null}}async function p(a){let b=o(a);if(!b)return null;let c=await (0,d.getApiKeyByKey)(b);return c?.access?.restricted?{keyId:c.id,keyName:c.name||c.id,allow:c.access.allow||[],_sets:null}:null}async function q(a){if(a._sets)return a._sets;let b=await r(),c=new Set,d=new Set,e=new Set;for(let f of a.allow){let a=await s(f,b);if(a.combo){c.add(m(f));continue}a.model&&d.add(a.model),a.provider&&e.add(a.provider)}return a._sets={combos:c,models:d,providers:e},a._sets}async function r(){let a=(0,f.R0)();if(a)return a;let b=new Set((await (0,e.Uv)()).map(a=>m(a.name)));return(0,f.Ex)(b),b}async function s(a,b){let c,d=(0,f.u6)(a);if(d)return d;if(b.has(m(a)))c={combo:!0,model:null,provider:null};else{let b=await (0,g.mA)(a);c=b?.provider===null?{combo:!0,model:null,provider:null}:{combo:!1,model:b?.provider&&b.model?n(b.provider,b.model):null,provider:a.includes("/")?null:m((0,h.rs)(a))}}return(0,f.Zo)(a,c),c}async function t(a,b){let c=await q(a),d=await (0,g.mA)(b);return d?.provider?c.models.has(n(d.provider,d.model)):c.combos.has(m(b))}function u(a,b){return l.warn("AUTH",`key-access: key "${a.keyName}" denied "${b}"`),(0,j.yj)(k.gx.FORBIDDEN,(0,i.Cq)(b))}async function v(a,b){if(!a)return null;if("string"!=typeof b||!b)return u(a,String(b??""));let c=await q(a);return(await (0,g.d_)(b)?c.combos.has(m(b)):await t(a,b))?null:u(a,b)}async function w(a,b,c,d){if(!a)return null;let e=b||(c?`${c}/${d??""}`:"");return c&&d&&(await q(a)).models.has(n(c,d))?null:u(a,e)}async function x(a,b,c){if(!a)return null;if("string"!=typeof b||!b)return u(a,String(b??""));let d=await q(a);return(c?d.combos.has(m(b)):d.providers.has(m((0,h.rs)(b))))?null:u(a,b)}async function y(a,b,c){if(!a||!Array.isArray(b))return b;let d=new Set(c||[]),e=[];for(let c of b)d.has(c)||await t(a,c)?e.push(c):l.info("AUTH",`key-access: key "${a.keyName}" skips adapter model "${c}" (not allowed)`);return e}async function z(a,b){if(!a||!Array.isArray(b))return b;let c=await q(a),d=[];for(let a of b){if(!a?.id)continue;if(a.owned_by===i.WR){c.combos.has(m(a.id))&&d.push(a);continue}let b=await (0,g.mA)(a.id);if(b?.provider){if(i.YR.includes(a.kind)){c.providers.has(m(b.provider))&&d.push(a);continue}c.models.has(n(b.provider,b.model))&&d.push(a)}}return d}},33792:(a,b,c)=>{c.d(b,{Dc:()=>r,OZ:()=>u,YK:()=>p,dY:()=>s,nz:()=>v,tm:()=>t});var d=c(8292),e=c(17509),f=c(34013),g=c(73024),h=c.n(g),i=c(76760),j=c.n(i),k=c(77598),l=c.n(k),m=c(49120),n=c(89718);let o=new TextEncoder().encode(function(){if(process.env.JWT_SECRET)return process.env.JWT_SECRET;let a=j().join(m.n,"jwt-secret");try{return h().readFileSync(a,"utf8").trim()}catch{}h().mkdirSync(m.n,{recursive:!0,mode:448});let b=l().randomBytes(32).toString("hex");return h().writeFileSync(a,b,{mode:384}),b}());function p(a){let b="true"===process.env.AUTH_COOKIE_SECURE,c=a?.headers?.get?.("x-forwarded-proto");return b||"https"===c}async function q(a={}){return new d.P({authenticated:!0,...a}).setProtectedHeader({alg:"HS256"}).setIssuedAt().setExpirationTime("24h").sign(o)}async function r(a){if(!a)return!1;try{return await (0,e.V)(a,o),!0}catch{return!1}}async function s(a){if(!a)return null;try{let{payload:b}=await (0,e.V)(a,o);return b}catch{return null}}async function t(a,b,c={}){let d=await q(c);a.set("auth_token",d,{httpOnly:!0,secure:p(b),sameSite:"lax",path:"/",maxAge:86400})}function u(a){a.delete("auth_token")}async function v(a){if("string"!=typeof a||!a)return!1;let b=await (0,n.mt)(),c=b?.password;if(c)return f.Ay.compare(a,c);let d=process.env.INITIAL_PASSWORD;return!!d&&a===d}},48645:(a,b,c)=>{c.d(b,{M:()=>d});function d(a){let b=process.env.OMNIHILBRAS_PEER_TOKEN;return!!b&&a.headers.get("x-9r-peer-token")===b}},54603:(a,b,c)=>{c.d(b,{X:()=>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,mode:448}),f().writeFileSync(l,o,{mode:384})}catch{}return o}(),e="9r-cli-auth"===b?function(){if(p)return p;try{f().chmodSync(m,448)}catch{}try{if(p=f().readFileSync(n,"utf8").trim())return p}catch{}p=j().randomBytes(32).toString("hex");try{f().mkdirSync(m,{recursive:!0,mode:448}),f().writeFileSync(n,p,{mode:384})}catch{}return p}():"";return j().createHash("sha256").update(c+b+e).digest("hex").substring(0,16)}},68401:(a,b,c)=>{c.d(b,{Gb:()=>E,UE:()=>D});var d=c(89718),e=c(74452),f=c(42655),g=c(8303),h=c(80650),i=c(47370),j=c(26856);let k=["requests","tokens","concurrency","fanout","error"],l=new Map,m=0;function n(a,b){let c=l.get(a);if(!c){let b;b=Date.now(),c={scope:a,keyId:null,keyName:null,requests:Array(60).fill(0),tokens:Array(60).fill(0),seconds:Array(60).fill(0),rejections:{requests:0,tokens:0,concurrency:0,fanout:0,error:0},admitted:0,rejected:0,firstSeen:b,lastSeen:b,sequence:++m},l.set(a,c)}return b?.keyId!==void 0&&null!==b.keyId&&(c.keyId=b.keyId),b?.keyName&&(c.keyName=b.keyName),c.lastSeen=Date.now(),c}function o(a){for(let[b,c]of l)a-c.lastSeen>9e5&&l.delete(b);for(;l.size>512;){let a=null,b=1/0;for(let[c,d]of l)d.lastSeen<b&&(b=d.lastSeen,a=c);if(!a)break;l.delete(a)}}function p(a,b,c){let d=c-59,e=0;for(let f=0;f<60;f++){let g=a.seconds[f];g<d||g>c||(e+=a[b][f])}return e}function q(a,b,c={}){if(!a||!k.includes(b))return;let d=Date.now(),e=n(a,c);e.rejections[b]+=1,e.rejected+=1,o(d)}var r=c(93297),s=c(43659),t=c(41004),u=c(27811),v=c(7803);let w=f.a$.rateLimit;function x(a,b){if(null==a||""===a)return b;let c=Number(a);return!Number.isFinite(c)||c<0?b:c}async function y(a){let b=(0,u.Wl)(a);if(b){let a=(0,j.CP)(b),c=null,d=null;try{let a=await (0,e.getApiKeyByKey)(b);a?.id&&(c=a.id,d=a.name||a.id)}catch{}return{bucket:a,scope:c?`key:${c}`:a,keyId:c,keyName:d,byKey:!0}}let c=(0,g.T1)(a),d=(0,j.CH)(c);return{bucket:d,scope:d,keyId:null,keyName:null,byKey:!1,ip:c}}function z(a,b){let c={requestsPerMinute:x(a?.requestsPerMinute,w.requestsPerMinute),tokensPerMinute:x(a?.tokensPerMinute,w.tokensPerMinute),concurrencyGlobal:x(a?.concurrency?.global,w.concurrency.global),concurrencyPerKey:x(a?.concurrency?.perKey,w.concurrency.perKey)},d=b?.keyId?a?.keyOverrides?.[b.keyId]:null;return d&&"object"==typeof d?{requestsPerMinute:x(d.requestsPerMinute,c.requestsPerMinute),tokensPerMinute:x(d.tokensPerMinute,c.tokensPerMinute),concurrencyGlobal:c.concurrencyGlobal,concurrencyPerKey:x(d.concurrency,c.concurrencyPerKey)}:c}function A(a,b){let c=Math.max(1,Math.ceil(b/1e3)),d="tokens"===a?`Rate limit exceeded: too many tokens per minute for this key. Retry after ${c}s.`:`Rate limit exceeded: too many requests per minute for this key. Retry after ${c}s.`;return(0,s.yj)(t.gx.RATE_LIMITED,d,{"Retry-After":String(c)})}function B(a){try{a()}catch{}}async function C(a){if((0,h.v5)(a))return{ctx:{}};let b=await (0,d.mt)(),c=b?.rateLimit;if(!c||!1===c.enabled)return{ctx:{}};let e=await y(a),f=z(c,e),g={keyId:e.keyId,keyName:e.keyName},k=(0,j.LZ)(e.bucket,f.requestsPerMinute,1);if(!k.allowed)return v.warn("RATELIMIT",`requests/min exceeded for ${e.bucket}`),B(()=>q(e.scope,"requests",g)),{response:A("requests",k.retryAfterMs)};let l=function(a,b){let c=a?.headers?.get?.("content-type")||"";if(!/json/i.test(c))return 0;let d=Number.parseInt(a?.headers?.get?.("content-length")||"",10);return!Number.isFinite(d)||d<=0?0:Math.min(x(b.maxInputTokensPerRequest,w.maxInputTokensPerRequest),Math.ceil(d/4))}(a,c),m=(0,j.fz)(e.bucket,f.tokensPerMinute,l);if(!m.allowed)return v.warn("RATELIMIT",`tokens/min exceeded for ${e.bucket}`),B(()=>q(e.scope,"tokens",g)),{response:A("tokens",m.retryAfterMs)};let p=function(a,b){let c=a.scope||"unknown",d=(0,i.Dv)();if(b.concurrencyGlobal>0&&d.total>=b.concurrencyGlobal)return{acquired:!1,reason:"global"};if(b.concurrencyPerKey>0&&(d.byScope?.[c]||0)>=b.concurrencyPerKey)return{acquired:!1,reason:"key"};(0,i.cx)(c,!0);let e=!1;return{acquired:!0,release:()=>{e||(e=!0,(0,i.cx)(c,!1))}}}(e,f);if(!p.acquired){let a;return v.warn("RATELIMIT",`concurrency cap reached (${p.reason}) for ${e.bucket}`),B(()=>q(e.scope,"concurrency",g)),{response:(a="global"===p.reason?"Gateway is at capacity: too many requests in flight. Retry after 5s.":"Too many concurrent requests for this key. Retry after 5s.",(0,s.yj)(t.gx.SERVICE_UNAVAILABLE,a,{"Retry-After":String(5)}))}}return B(()=>(function(a,b={}){var c;let d;if(!a)return;let e=Date.now(),f=n(a,b),g=Number(b.requests)>0?Number(b.requests):0,h=Number(b.tokens)>0?Number(b.tokens):0;d=((c=Math.floor(e/1e3))%60+60)%60,f.seconds[d]!==c&&(f.seconds[d]=c,f.requests[d]=0,f.tokens[d]=0),f.requests[d]+=g,f.tokens[d]+=h,f.admitted+=g,o(e)})(e.scope,{requests:1,tokens:l,...g})),{ctx:{identity:e,limits:f,fanOutBudget:(0,r.createFanOutBudget)(c.maxUpstreamCallsPerRequest,()=>{B(()=>q(e.scope,"fanout",g))})},release:p.release}}async function D(){let a=await (0,d.mt)(),b=a?.rateLimit||w,c=(function(){let a=Math.floor(Date.now()/1e3),b=[];for(let c of l.values())b.push({scope:c.scope,keyId:c.keyId,keyName:c.keyName,requestsPerMinute:p(c,"requests",a),tokensPerMinute:p(c,"tokens",a),admitted:c.admitted,rejected:c.rejected,rejections:{...c.rejections},firstSeen:c.firstSeen,lastSeen:c.lastSeen,sequence:c.sequence});return b.sort((a,b)=>b.lastSeen-a.lastSeen||b.sequence-a.sequence),b})().map(a=>{let c=z(b,{keyId:a.keyId});return{...a,limits:{requestsPerMinute:c.requestsPerMinute,tokensPerMinute:c.tokensPerMinute,concurrencyPerKey:c.concurrencyPerKey}}});return{enabled:!1!==b.enabled,defaults:{requestsPerMinute:x(b?.requestsPerMinute,w.requestsPerMinute),tokensPerMinute:x(b?.tokensPerMinute,w.tokensPerMinute),concurrency:{global:x(b?.concurrency?.global,w.concurrency.global),perKey:x(b?.concurrency?.perKey,w.concurrency.perKey)},maxUpstreamCallsPerRequest:x(b?.maxUpstreamCallsPerRequest,w.maxUpstreamCallsPerRequest)},identities:c,inFlight:(0,i.Dv)()}}async function E(a,b){let c,d;try{c=await C(a)}catch(b){v.warn("RATELIMIT",`limiter error — allowing request: ${b?.message||b}`),B(()=>q(function(a){try{let b=(0,u.Wl)(a);if(b)return(0,j.CP)(b);return(0,j.CH)((0,g.T1)(a))}catch{return"unknown"}}(a),"error",{})),c={ctx:{}}}if(c.response)return c.response;if(!c.release)return await b(c.ctx||{});try{d=await b(c.ctx||{})}catch(a){throw c.release(),a}return function(a,b){if(!b)return a;try{let c=a?.body;if(!c||"function"!=typeof c.getReader)return b(),a;let d=c.getReader(),e=!1,f=()=>{e||(e=!0,b())},g=new ReadableStream({async pull(a){try{let{done:b,value:c}=await d.read();if(b){f(),a.close();return}a.enqueue(c)}catch(b){f(),a.error(b)}},cancel(a){f(),d.cancel(a).catch(()=>{})}});return new Response(g,{status:a.status,statusText:a.statusText,headers:a.headers})}catch{return b(),a}}(d,c.release)}},80650:(a,b,c)=>{c.d(b,{v5:()=>i}),c(23211);var d=c(89718),e=c(33792),f=c(48645);c(13867),[...new Set([...[{source:"/v1/v1/:path*",destination:"/api/v1/:path*"},{source:"/v1/v1",destination:"/api/v1"},{source:"/codex/:path*",destination:"/api/v1/responses"},{source:"/responses",destination:"/api/v1/responses"},{source:"/systemone",destination:"/api/v1/systemone"},{source:"/v1beta/:path*",destination:"/api/v1beta/:path*"},{source:"/v1beta",destination:"/api/v1beta"},{source:"/v1/:path*",destination:"/api/v1/:path*"},{source:"/v1",destination:"/api/v1"}].map(a=>`/${a.source.split("/")[1]}`),"/api/v1","/api/v1beta"])].sort();let g=new Set(["localhost","127.0.0.1","::1"]);function h(a){if(!a)return!1;let b=String(a).trim().toLowerCase();if(b.startsWith("[")){let a=b.indexOf("]");if(-1===a)return!1;b=b.slice(1,a)}else -1!==b.indexOf(":")&&b.indexOf(":")===b.lastIndexOf(":")&&(b=b.slice(0,b.indexOf(":")));return b.startsWith("::ffff:")&&(b=b.slice(7)),g.has(b)}function i(a){if(a.headers.get("x-9r-via-proxy")||!((0,f.M)(a)&&h(a.headers.get("x-9r-real-ip"))))return!1;let b=a.headers.get("origin");if(b)try{if(!h(new URL(b).hostname))return!1}catch{return!1}return!0}},93297:(a,b,c)=>{c.r(b),c.d(b,{consumeFanOutSlot:()=>g,createFanOutBudget:()=>f,fanOutLimitResponse:()=>i,fanOutRemaining:()=>h});var d=c(43659),e=c(41004);function f(a,b=null){return{limit:Number.isFinite(a)&&a>0?Math.floor(a):1/0,used:0,exhausted:!1,labels:[],onExhaust:b}}function g(a,b){if(!a)return!0;if(a.used>=a.limit){if(!a.exhausted){a.exhausted=!0;try{a.onExhaust?.()}catch{}}return!1}return a.used+=1,b&&a.labels.push(b),!0}function h(a){return a?Math.max(0,a.limit-a.used):1/0}function i(a){let b=Number.isFinite(a?.limit)?a.limit:"unlimited",c=`Request exceeded the upstream call limit for a single client request (max ${b} upstream calls). Use a smaller combo, or split the request.`;return(0,d.yj)(e.gx.RATE_LIMITED,c,{"Retry-After":"60"})}}};
|
|
1
|
+
"use strict";exports.id=8401,exports.ids=[3867,8401],exports.modules={7803:(a,b,c)=>{c.r(b),c.d(b,{debug:()=>o,error:()=>r,errorLine:()=>l,fmtThink:()=>m,info:()=>p,line:()=>k,maskKey:()=>v,nextTag:()=>i,request:()=>s,response:()=>t,stream:()=>u,tagForSession:()=>j,warn:()=>q});let d={DEBUG:0,INFO:1,WARN:2,ERROR:3},e=d[process.env.LOG_LEVEL?.toUpperCase?.()]??d.INFO;function f(){return new Date().toLocaleTimeString("en-US",{hour12:!1})}let g=["\uD83D\uDFE2","\uD83D\uDD35","\uD83D\uDFE3","\uD83D\uDFE1","\uD83D\uDFE0","\uD83D\uDD34","⚪","\uD83D\uDFE4"],h=0;function i(){let a=g[h%g.length];return h++,a}function j(a){if(!a)return i();let b=0;for(let c=0;c<a.length;c++)b=31*b+a.charCodeAt(c)|0;return g[Math.abs(b)%g.length]}function k(a,b,c){e>d.INFO||console.log(`[${f()}] ${a} ${b} ${c}`)}function l(a,b,c){console.log(`[${f()}] ${a} ${b} ${c}`)}function m(a){return a&&a.mode?"none"===a.mode?"off":"auto"===a.mode?"auto":"budget"===a.mode?a.budget>=1e3?`${Math.round(a.budget/1e3)}k`:`${a.budget}`:"level"===a.mode?a.level:null:null}function n(a){if(!a)return"";if("string"==typeof a)return a;try{return JSON.stringify(a)}catch{return String(a)}}function o(a,b,c){if(e<=d.DEBUG){let d=c?` ${n(c)}`:"";console.log(`[${f()}] 🔍 [${a}] ${b}${d}`)}}function p(a,b,c){if(e<=d.INFO){let d=c?` ${n(c)}`:"";console.log(`[${f()}] ℹ️ [${a}] ${b}${d}`)}}function q(a,b,c){if(e<=d.WARN){let d=c?` ${n(c)}`:"";console.warn(`[${f()}] ⚠️ [${a}] ${b}${d}`)}}function r(a,b,c){if(e<=d.ERROR){let d=c?` ${n(c)}`:"";console.log(`[${f()}] ❌ [${a}] ${b}${d}`)}}function s(a,b,c){let d=c?` ${n(c)}`:"";console.log(`\x1b[36m[${f()}] 📥 ${a} ${b}${d}\x1b[0m`)}function t(a,b,c){let d=c?` ${n(c)}`:"";console.log(`[${f()}] ${a<400?"\uD83D\uDCE4":"\uD83D\uDCA5"} ${a} (${b}ms)${d}`)}function u(a,b){let c=b?` ${n(b)}`:"";console.log(`[${f()}] 🌊 [STREAM] ${a}${c}`)}function v(a){return!a||a.length<8?"***":`${a.slice(0,4)}...${a.slice(-4)}`}},8303:(a,b,c)=>{c.d(b,{B3:()=>k,T1:()=>l,im:()=>j,sv:()=>i});var d=c(48645);let e=[3e4,12e4,6e5,18e5],f=new Map;function g(){return Date.now()}function h(a){let b=f.get(a);return b?b.lastFailAt&&g()-b.lastFailAt>36e5&&(!b.lockUntil||g()>=b.lockUntil)?(f.delete(a),null):b:null}function i(a){let b=h(a);if(!b||!b.lockUntil)return{locked:!1};let c=b.lockUntil-g();return c<=0?{locked:!1}:{locked:!0,retryAfter:Math.ceil(c/1e3)}}function j(a){let b=h(a)||{fails:0,lockUntil:0,lockLevel:0,lastFailAt:0};if(b.fails+=1,b.lastFailAt=g(),b.fails>=5){let a=e[Math.min(b.lockLevel,e.length-1)];b.lockUntil=g()+a,b.lockLevel+=1,b.fails=0}return f.set(a,b),{remainingBeforeLock:Math.max(0,5-b.fails)}}function k(a){f.delete(a)}function l(a){if((0,d.M)(a)){let b=a.headers.get("x-9r-real-ip");if(b)return b}if("true"===process.env.TRUST_PROXY){let b=a.headers.get("x-forwarded-for");if(b)return b.split(",")[0].trim()}return"unknown"}},13867:(a,b,c)=>{c.d(b,{g:()=>g,getCliToken:()=>f});var d=c(54603);let e=null;async function f(){return e||(e=await (0,d.X)("9r-cli-auth")),e}async function g(a){let b=a?.headers?.get?.("x-9r-cli-token");return!!b&&b===await f()}},27811:(a,b,c)=>{c.d(b,{Ge:()=>y,QU:()=>w,TM:()=>p,Wl:()=>o,cI:()=>v,dR:()=>x,j:()=>z});var d=c(74452),e=c(1541),f=c(30653),g=c(38775),h=c(40615),i=c(38606),j=c(43659),k=c(41004),l=c(7803);let m=a=>String(a).toLowerCase(),n=(a,b)=>m(`${a}/${b}`);function o(a){let b=a?.headers;if(!b?.get)return null;let c=b.get("Authorization");if(c?.startsWith("Bearer "))return c.slice(7);let d=b.get("x-api-key");if(d)return d;let e=b.get("x-goog-api-key");if(e)return e;try{return new URL(a.url).searchParams.get("key")||null}catch{return null}}async function p(a){let b=o(a);if(!b)return null;let c=await (0,d.getApiKeyByKey)(b);return c?.access?.restricted?{keyId:c.id,keyName:c.name||c.id,allow:c.access.allow||[],_sets:null}:null}async function q(a){if(a._sets)return a._sets;let b=await r(),c=new Set,d=new Set,e=new Set;for(let f of a.allow){let a=await s(f,b);if(a.combo){c.add(m(f));continue}a.model&&d.add(a.model),a.provider&&e.add(a.provider)}return a._sets={combos:c,models:d,providers:e},a._sets}async function r(){let a=(0,f.R0)();if(a)return a;let b=new Set((await (0,e.Uv)()).map(a=>m(a.name)));return(0,f.Ex)(b),b}async function s(a,b){let c,d=(0,f.u6)(a);if(d)return d;if(b.has(m(a)))c={combo:!0,model:null,provider:null};else{let b=await (0,g.mA)(a);c=b?.provider===null?{combo:!0,model:null,provider:null}:{combo:!1,model:b?.provider&&b.model?n(b.provider,b.model):null,provider:a.includes("/")?null:m((0,h.rs)(a))}}return(0,f.Zo)(a,c),c}async function t(a,b){let c=await q(a),d=await (0,g.mA)(b);return d?.provider?c.models.has(n(d.provider,d.model)):c.combos.has(m(b))}function u(a,b){return l.warn("AUTH",`key-access: key "${a.keyName}" denied "${b}"`),(0,j.yj)(k.gx.FORBIDDEN,(0,i.Cq)(b))}async function v(a,b){if(!a)return null;if("string"!=typeof b||!b)return u(a,String(b??""));let c=await q(a);return(await (0,g.d_)(b)?c.combos.has(m(b)):await t(a,b))?null:u(a,b)}async function w(a,b,c,d){if(!a)return null;let e=b||(c?`${c}/${d??""}`:"");return c&&d&&(await q(a)).models.has(n(c,d))?null:u(a,e)}async function x(a,b,c){if(!a)return null;if("string"!=typeof b||!b)return u(a,String(b??""));let d=await q(a);return(c?d.combos.has(m(b)):d.providers.has(m((0,h.rs)(b))))?null:u(a,b)}async function y(a,b,c){if(!a||!Array.isArray(b))return b;let d=new Set(c||[]),e=[];for(let c of b)d.has(c)||await t(a,c)?e.push(c):l.info("AUTH",`key-access: key "${a.keyName}" skips adapter model "${c}" (not allowed)`);return e}async function z(a,b){if(!a||!Array.isArray(b))return b;let c=await q(a),d=[];for(let a of b){if(!a?.id)continue;if(a.owned_by===i.WR){c.combos.has(m(a.id))&&d.push(a);continue}let b=await (0,g.mA)(a.id);if(b?.provider){if(i.YR.includes(a.kind)){c.providers.has(m(b.provider))&&d.push(a);continue}c.models.has(n(b.provider,b.model))&&d.push(a)}}return d}},33792:(a,b,c)=>{c.d(b,{Dc:()=>r,OZ:()=>u,YK:()=>p,dY:()=>s,nz:()=>v,tm:()=>t});var d=c(8292),e=c(17509),f=c(34013),g=c(73024),h=c.n(g),i=c(76760),j=c.n(i),k=c(77598),l=c.n(k),m=c(49120),n=c(89718);let o=new TextEncoder().encode(function(){if(process.env.JWT_SECRET)return process.env.JWT_SECRET;let a=j().join(m.n,"jwt-secret");try{return h().readFileSync(a,"utf8").trim()}catch{}h().mkdirSync(m.n,{recursive:!0,mode:448});let b=l().randomBytes(32).toString("hex");return h().writeFileSync(a,b,{mode:384}),b}());function p(a){let b="true"===process.env.AUTH_COOKIE_SECURE,c=a?.headers?.get?.("x-forwarded-proto");return b||"https"===c}async function q(a={}){return new d.P({authenticated:!0,...a}).setProtectedHeader({alg:"HS256"}).setIssuedAt().setExpirationTime("24h").sign(o)}async function r(a){if(!a)return!1;try{return await (0,e.V)(a,o),!0}catch{return!1}}async function s(a){if(!a)return null;try{let{payload:b}=await (0,e.V)(a,o);return b}catch{return null}}async function t(a,b,c={}){let d=await q(c);a.set("auth_token",d,{httpOnly:!0,secure:p(b),sameSite:"lax",path:"/",maxAge:86400})}function u(a){a.delete("auth_token")}async function v(a){if("string"!=typeof a||!a)return!1;let b=await (0,n.mt)(),c=b?.password;if(c)return f.Ay.compare(a,c);let d=process.env.INITIAL_PASSWORD;return!!d&&a===d}},48645:(a,b,c)=>{c.d(b,{M:()=>d});function d(a){let b=process.env.OMNIHILBRAS_PEER_TOKEN;return!!b&&a.headers.get("x-9r-peer-token")===b}},54603:(a,b,c)=>{c.d(b,{X:()=>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,mode:448}),f().writeFileSync(l,o,{mode:384})}catch{}return o}(),e="9r-cli-auth"===b?function(){if(p)return p;try{f().chmodSync(m,448)}catch{}try{if(p=f().readFileSync(n,"utf8").trim())return p}catch{}p=j().randomBytes(32).toString("hex");try{f().mkdirSync(m,{recursive:!0,mode:448}),f().writeFileSync(n,p,{mode:384})}catch{}return p}():"";return j().createHash("sha256").update(c+b+e).digest("hex").substring(0,16)}},68401:(a,b,c)=>{c.d(b,{Gb:()=>E,UE:()=>D});var d=c(89718),e=c(74452),f=c(42655),g=c(8303),h=c(80650),i=c(47370),j=c(26856);let k=["requests","tokens","concurrency","fanout","error"],l=new Map,m=0;function n(a,b){let c=l.get(a);if(!c){let b;b=Date.now(),c={scope:a,keyId:null,keyName:null,requests:Array(60).fill(0),tokens:Array(60).fill(0),seconds:Array(60).fill(0),rejections:{requests:0,tokens:0,concurrency:0,fanout:0,error:0},admitted:0,rejected:0,firstSeen:b,lastSeen:b,sequence:++m},l.set(a,c)}return b?.keyId!==void 0&&null!==b.keyId&&(c.keyId=b.keyId),b?.keyName&&(c.keyName=b.keyName),c.lastSeen=Date.now(),c}function o(a){for(let[b,c]of l)a-c.lastSeen>9e5&&l.delete(b);for(;l.size>512;){let a=null,b=1/0;for(let[c,d]of l)d.lastSeen<b&&(b=d.lastSeen,a=c);if(!a)break;l.delete(a)}}function p(a,b,c){let d=c-59,e=0;for(let f=0;f<60;f++){let g=a.seconds[f];g<d||g>c||(e+=a[b][f])}return e}function q(a,b,c={}){if(!a||!k.includes(b))return;let d=Date.now(),e=n(a,c);e.rejections[b]+=1,e.rejected+=1,o(d)}var r=c(93297),s=c(43659),t=c(41004),u=c(27811),v=c(7803);let w=f.a$.rateLimit;function x(a,b){if(null==a||""===a)return b;let c=Number(a);return!Number.isFinite(c)||c<0?b:c}async function y(a){let b=(0,u.Wl)(a);if(b){let a=(0,j.CP)(b),c=null,d=null;try{let a=await (0,e.getApiKeyByKey)(b);a?.id&&(c=a.id,d=a.name||a.id)}catch{}return{bucket:a,scope:c?`key:${c}`:a,keyId:c,keyName:d,byKey:!0}}let c=(0,g.T1)(a),d=(0,j.CH)(c);return{bucket:d,scope:d,keyId:null,keyName:null,byKey:!1,ip:c}}function z(a,b){let c={requestsPerMinute:x(a?.requestsPerMinute,w.requestsPerMinute),tokensPerMinute:x(a?.tokensPerMinute,w.tokensPerMinute),concurrencyGlobal:x(a?.concurrency?.global,w.concurrency.global),concurrencyPerKey:x(a?.concurrency?.perKey,w.concurrency.perKey)},d=b?.keyId?a?.keyOverrides?.[b.keyId]:null;return d&&"object"==typeof d?{requestsPerMinute:x(d.requestsPerMinute,c.requestsPerMinute),tokensPerMinute:x(d.tokensPerMinute,c.tokensPerMinute),concurrencyGlobal:c.concurrencyGlobal,concurrencyPerKey:x(d.concurrency,c.concurrencyPerKey)}:c}function A(a,b){let c=Math.max(1,Math.ceil(b/1e3)),d="tokens"===a?`Rate limit exceeded: too many tokens per minute for this key. Retry after ${c}s.`:`Rate limit exceeded: too many requests per minute for this key. Retry after ${c}s.`;return(0,s.yj)(t.gx.RATE_LIMITED,d,{"Retry-After":String(c)})}function B(a){try{a()}catch{}}async function C(a){if((0,h.v5)(a))return{ctx:{}};let b=await (0,d.mt)(),c=b?.rateLimit;if(!c||!1===c.enabled)return{ctx:{}};let e=await y(a),f=z(c,e),g={keyId:e.keyId,keyName:e.keyName},k=(0,j.LZ)(e.bucket,f.requestsPerMinute,1);if(!k.allowed)return v.warn("RATELIMIT",`requests/min exceeded for ${e.bucket}`),B(()=>q(e.scope,"requests",g)),{response:A("requests",k.retryAfterMs)};let l=function(a,b){let c=a?.headers?.get?.("content-type")||"";if(!/json/i.test(c))return 0;let d=Number.parseInt(a?.headers?.get?.("content-length")||"",10);return!Number.isFinite(d)||d<=0?0:Math.min(x(b.maxInputTokensPerRequest,w.maxInputTokensPerRequest),Math.ceil(d/4))}(a,c),m=(0,j.fz)(e.bucket,f.tokensPerMinute,l);if(!m.allowed)return v.warn("RATELIMIT",`tokens/min exceeded for ${e.bucket}`),B(()=>q(e.scope,"tokens",g)),{response:A("tokens",m.retryAfterMs)};let p=function(a,b){let c=a.scope||"unknown",d=(0,i.Dv)();if(b.concurrencyGlobal>0&&d.total>=b.concurrencyGlobal)return{acquired:!1,reason:"global"};if(b.concurrencyPerKey>0&&(d.byScope?.[c]||0)>=b.concurrencyPerKey)return{acquired:!1,reason:"key"};(0,i.cx)(c,!0);let e=!1;return{acquired:!0,release:()=>{e||(e=!0,(0,i.cx)(c,!1))}}}(e,f);if(!p.acquired){let a;return v.warn("RATELIMIT",`concurrency cap reached (${p.reason}) for ${e.bucket}`),B(()=>q(e.scope,"concurrency",g)),{response:(a="global"===p.reason?"Gateway is at capacity: too many requests in flight. Retry after 5s.":"Too many concurrent requests for this key. Retry after 5s.",(0,s.yj)(t.gx.SERVICE_UNAVAILABLE,a,{"Retry-After":String(5)}))}}return B(()=>(function(a,b={}){var c;let d;if(!a)return;let e=Date.now(),f=n(a,b),g=Number(b.requests)>0?Number(b.requests):0,h=Number(b.tokens)>0?Number(b.tokens):0;d=((c=Math.floor(e/1e3))%60+60)%60,f.seconds[d]!==c&&(f.seconds[d]=c,f.requests[d]=0,f.tokens[d]=0),f.requests[d]+=g,f.tokens[d]+=h,f.admitted+=g,o(e)})(e.scope,{requests:1,tokens:l,...g})),{ctx:{identity:e,limits:f,fanOutBudget:(0,r.createFanOutBudget)(c.maxUpstreamCallsPerRequest,()=>{B(()=>q(e.scope,"fanout",g))})},release:p.release}}async function D(){let a=await (0,d.mt)(),b=a?.rateLimit||w,c=(function(){let a=Math.floor(Date.now()/1e3),b=[];for(let c of l.values())b.push({scope:c.scope,keyId:c.keyId,keyName:c.keyName,requestsPerMinute:p(c,"requests",a),tokensPerMinute:p(c,"tokens",a),admitted:c.admitted,rejected:c.rejected,rejections:{...c.rejections},firstSeen:c.firstSeen,lastSeen:c.lastSeen,sequence:c.sequence});return b.sort((a,b)=>b.lastSeen-a.lastSeen||b.sequence-a.sequence),b})().map(a=>{let c=z(b,{keyId:a.keyId});return{...a,limits:{requestsPerMinute:c.requestsPerMinute,tokensPerMinute:c.tokensPerMinute,concurrencyPerKey:c.concurrencyPerKey}}});return{enabled:!1!==b.enabled,defaults:{requestsPerMinute:x(b?.requestsPerMinute,w.requestsPerMinute),tokensPerMinute:x(b?.tokensPerMinute,w.tokensPerMinute),concurrency:{global:x(b?.concurrency?.global,w.concurrency.global),perKey:x(b?.concurrency?.perKey,w.concurrency.perKey)},maxUpstreamCallsPerRequest:x(b?.maxUpstreamCallsPerRequest,w.maxUpstreamCallsPerRequest)},identities:c,inFlight:(0,i.Dv)()}}async function E(a,b){let c,d;try{c=await C(a)}catch(b){v.warn("RATELIMIT",`limiter error — allowing request: ${b?.message||b}`),B(()=>q(function(a){try{let b=(0,u.Wl)(a);if(b)return(0,j.CP)(b);return(0,j.CH)((0,g.T1)(a))}catch{return"unknown"}}(a),"error",{})),c={ctx:{}}}if(c.response)return c.response;if(!c.release)return await b(c.ctx||{});try{d=await b(c.ctx||{})}catch(a){throw c.release(),a}return function(a,b){if(!b)return a;try{let c=a?.body;if(!c||"function"!=typeof c.getReader)return b(),a;let d=c.getReader(),e=!1,f=()=>{e||(e=!0,b())},g=new ReadableStream({async pull(a){try{let{done:b,value:c}=await d.read();if(b){f(),a.close();return}a.enqueue(c)}catch(b){f(),a.error(b)}},cancel(a){f(),d.cancel(a).catch(()=>{})}});return new Response(g,{status:a.status,statusText:a.statusText,headers:a.headers})}catch{return b(),a}}(d,c.release)}},80650:(a,b,c)=>{c.d(b,{v5:()=>i}),c(23211);var d=c(89718),e=c(33792),f=c(48645);c(13867),[...new Set([...[{source:"/v1/v1/:path*",destination:"/api/v1/:path*"},{source:"/v1/v1",destination:"/api/v1"},{source:"/codex/:path*",destination:"/api/v1/responses"},{source:"/responses",destination:"/api/v1/responses"},{source:"/systemone",destination:"/api/v1/systemone"},{source:"/v1beta/:path*",destination:"/api/v1beta/:path*"},{source:"/v1beta",destination:"/api/v1beta"},{source:"/v1/:path*",destination:"/api/v1/:path*"},{source:"/v1",destination:"/api/v1"}].map(a=>`/${a.source.split("/")[1]}`),"/api/v1","/api/v1beta"])].sort();let g=new Set(["localhost","127.0.0.1","::1"]);function h(a){if(!a)return!1;let b=String(a).trim().toLowerCase();if(b.startsWith("[")){let a=b.indexOf("]");if(-1===a)return!1;b=b.slice(1,a)}else -1!==b.indexOf(":")&&b.indexOf(":")===b.lastIndexOf(":")&&(b=b.slice(0,b.indexOf(":")));return b.startsWith("::ffff:")&&(b=b.slice(7)),g.has(b)}function i(a){if(a.headers.get("x-9r-via-proxy")||!((0,f.M)(a)&&h(a.headers.get("x-9r-real-ip"))))return!1;let b=a.headers.get("origin");if(b)try{if(!h(new URL(b).hostname))return!1}catch{return!1}return!0}},93297:(a,b,c)=>{c.r(b),c.d(b,{consumeFanOutSlot:()=>g,createFanOutBudget:()=>f,fanOutLimitResponse:()=>i,fanOutRemaining:()=>h});var d=c(43659),e=c(41004);function f(a,b=null){return{limit:Number.isFinite(a)&&a>0?Math.floor(a):1/0,used:0,exhausted:!1,labels:[],onExhaust:b}}function g(a,b){if(!a)return!0;if(a.used>=a.limit){if(!a.exhausted){a.exhausted=!0;try{a.onExhaust?.()}catch{}}return!1}return a.used+=1,b&&a.labels.push(b),!0}function h(a){return a?Math.max(0,a.limit-a.used):1/0}function i(a){let b=Number.isFinite(a?.limit)?a.limit:"unlimited",c=`Request exceeded the upstream call limit for a single client request (max ${b} upstream calls). Use a smaller combo, or split the request.`;return(0,d.yj)(e.gx.RATE_LIMITED,c,{"Retry-After":"60"})}}};
|