@jheavenknows/bluerouter 5.3.64 → 5.3.66
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 +7 -7
- package/app/.next-cli-build/build-manifest.json +2 -2
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/ai-power-index/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/analytics/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/api-keys/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/audit-proxy/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/audit-proxy/page_client-reference-manifest.js +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/model-profiles/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/cluster/page_client-reference-manifest.js +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_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/local-ai-report/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/logs/console/page.js +1 -0
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/logs/console/page.js.nft.json +1 -0
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/logs/console/page_client-reference-manifest.js +1 -0
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/logs/page.js +1 -0
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/logs/page.js.nft.json +1 -0
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/logs/page_client-reference-manifest.js +1 -0
- 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_client-reference-manifest.js +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_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/personal/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/personalcloudprovider/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/personalcloudprovidermonitor/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/personalquota/page_client-reference-manifest.js +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/prompt-logs/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/provider-health/page_client-reference-manifest.js +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_client-reference-manifest.js +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/providers/stt/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/tts/page_client-reference-manifest.js +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/quota/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/resource-monitor/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/routing-topology/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/settings/pricing/page_client-reference-manifest.js +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_client-reference-manifest.js +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_client-reference-manifest.js +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_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/_not-found.html +1 -1
- package/app/.next-cli-build/server/app/_not-found.rsc +5 -5
- package/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/_not-found.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/api/audit-proxy/ca/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/audit-proxy/route.js +16 -15
- package/app/.next-cli-build/server/app/api/audit-proxy/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/ldap/test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/ldap/users/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/login/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/logout/route.js.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/status/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/view-mode/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/branding/[asset]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/branding/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/branding/upload/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-model-profiles/cloud-models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-model-profiles/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/autostart/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/prompt-log-db/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/root-ca/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/copilot-settings/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/cluster/config/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cluster/heartbeat/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cluster/peers/[id]/command/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cluster/peers/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cluster/peers/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cluster/snapshot/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cluster/sync/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cluster/test/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/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/dashboard/ai-power-index/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/dashboard/analytics/ai-models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/dashboard/analytics/analyze/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/dashboard/analytics/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/dashboard/combos/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/dashboard/endpoint/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/dashboard/local-ai-report/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/dashboard/prompt-logs/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/dashboard/prompt-logs/options/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/dashboard/prompt-logs/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/dashboard/routing-topology/config/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/dashboard/routing-topology/live/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/dashboard/routing-topology/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/dashboard/token-saver/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/keys/[id]/caveman-test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/keys/[id]/rotate/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/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/models/alias/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/availability/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/custom/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/disabled/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/route.js +1 -1
- package/app/.next-cli-build/server/app/api/models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/test/route.js +1 -1
- package/app/.next-cli-build/server/app/api/models/test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/grok-cli/device-code/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/grok-cli/poll/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/import/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/personal-cloud-providers/[id]/api-key-models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/personal-cloud-providers/[id]/import-models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/personal-cloud-providers/[id]/models/[...routeModel]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/personal-cloud-providers/[id]/move/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/personal-cloud-providers/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/personal-cloud-providers/[id]/usage/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/personal-cloud-providers/client/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/personal-cloud-providers/monitor/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/personal-cloud-providers/permissions/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/personal-cloud-providers/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/personal-cloud-providers/routing/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/personal-cloud-providers/shares/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/personal-cloud-providers/visibility/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pricing/catalog/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pricing/recalculate/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-health/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/openai-compatible/manage/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/providers/[id]/models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/test/route.js.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.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/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/proxy-pools/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/resource-monitor/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/resource-monitor/ai-models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/resource-monitor/analyze/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/resource-monitor/history/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/resource-monitor/route.js.nft.json +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/require-login/route.js.nft.json +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/translator/console-logs/route.js +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/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/tunnel/tailscale-login/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-start-daemon/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/history/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/logs/route.js +1 -0
- package/app/.next-cli-build/server/app/api/usage/logs/route.js.nft.json +1 -0
- package/app/.next-cli-build/server/app/api/usage/logs/route_client-reference-manifest.js +1 -0
- package/app/.next-cli-build/server/app/api/usage/providers/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/request-details/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/request-logs/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/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/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/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/models/[kind]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/models/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/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/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_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/callback.html +1 -1
- package/app/.next-cli-build/server/app/callback.rsc +5 -5
- package/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/callback.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/callback.segments/callback/__PAGE__.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/ai-power-index.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/ai-power-index.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/ai-power-index.segments/!KGRhc2hib2FyZCk/dashboard/ai-power-index/__PAGE__.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/ai-power-index.segments/_full.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/ai-power-index.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/api-keys.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/api-keys.rsc +10 -10
- package/app/.next-cli-build/server/app/dashboard/api-keys.segments/!KGRhc2hib2FyZCk/dashboard/api-keys/__PAGE__.segment.rsc +10 -10
- package/app/.next-cli-build/server/app/dashboard/api-keys.segments/_full.segment.rsc +10 -10
- package/app/.next-cli-build/server/app/dashboard/api-keys.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/basic-chat.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/basic-chat.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_full.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/cli-tools/model-profiles.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/cli-tools/model-profiles.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/cli-tools/model-profiles.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/model-profiles/__PAGE__.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/cli-tools/model-profiles.segments/_full.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/cli-tools/model-profiles.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/cli-tools.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/cli-tools.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_full.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/cluster.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/cluster.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/cluster.segments/!KGRhc2hib2FyZCk/dashboard/cluster/__PAGE__.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/cluster.segments/_full.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/cluster.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/combos.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/combos.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/combos.segments/_full.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/combos.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/endpoint.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/endpoint.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_full.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/local-ai-report.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/local-ai-report.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/local-ai-report.segments/!KGRhc2hib2FyZCk/dashboard/local-ai-report/__PAGE__.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/local-ai-report.segments/_full.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/local-ai-report.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/logs.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/logs.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/logs.segments/!KGRhc2hib2FyZCk/dashboard/logs/__PAGE__.segment.rsc +34 -0
- package/app/.next-cli-build/server/app/dashboard/logs.segments/_full.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/logs.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web/__PAGE__.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_full.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/mitm.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/mitm.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/mitm.segments/_full.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/mitm.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/personal.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/personal.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/personal.segments/!KGRhc2hib2FyZCk/dashboard/personal/__PAGE__.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/personal.segments/_full.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/personal.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/profile.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/profile.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/profile.segments/_full.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/profile.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/prompt-logs.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/prompt-logs.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/!KGRhc2hib2FyZCk/dashboard/prompt-logs/__PAGE__.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/_full.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/provider-health.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/provider-health.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/provider-health.segments/!KGRhc2hib2FyZCk/dashboard/provider-health/__PAGE__.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/provider-health.segments/_full.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/provider-health.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/providers/new.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/providers/new.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_full.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/providers/stt.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/providers/stt.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/providers/stt.segments/!KGRhc2hib2FyZCk/dashboard/providers/stt/__PAGE__.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/providers/stt.segments/_full.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/providers/stt.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/providers/tts.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/providers/tts.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/providers/tts.segments/!KGRhc2hib2FyZCk/dashboard/providers/tts/__PAGE__.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/providers/tts.segments/_full.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/providers/tts.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/providers.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/providers.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/providers.segments/_full.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/providers.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/quota.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/quota.rsc +9 -9
- package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +9 -9
- package/app/.next-cli-build/server/app/dashboard/quota.segments/_full.segment.rsc +9 -9
- package/app/.next-cli-build/server/app/dashboard/quota.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/resource-monitor.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/resource-monitor.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/resource-monitor.segments/!KGRhc2hib2FyZCk/dashboard/resource-monitor/__PAGE__.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/resource-monitor.segments/_full.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/resource-monitor.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/routing-topology.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/routing-topology.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/routing-topology.segments/!KGRhc2hib2FyZCk/dashboard/routing-topology/__PAGE__.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/routing-topology.segments/_full.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/routing-topology.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/!KGRhc2hib2FyZCk/dashboard/settings/pricing/__PAGE__.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_tree.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 +8 -8
- package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills/__PAGE__.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/skills.segments/_full.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/skills.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/token-saver.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/token-saver.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver/__PAGE__.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_full.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/translator.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/translator.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/translator.segments/_full.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/translator.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/usage.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/usage.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/usage.segments/_full.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/usage.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard.html +1 -1
- package/app/.next-cli-build/server/app/dashboard.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard.segments/_full.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/index.html +1 -1
- package/app/.next-cli-build/server/app/index.rsc +5 -5
- package/app/.next-cli-build/server/app/index.segments/__PAGE__.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/index.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/index.segments/_tree.segment.rsc +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 +5 -5
- package/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +5 -5
- 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 +5 -5
- 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 +6 -6
- package/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +6 -6
- 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 +6 -6
- package/app/.next-cli-build/server/app/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app-paths-manifest.json +7 -7
- package/app/.next-cli-build/server/chunks/3958.js +13 -13
- package/app/.next-cli-build/server/chunks/4746.js +1 -1
- package/app/.next-cli-build/server/chunks/6328.js +1 -1
- package/app/.next-cli-build/server/chunks/6811.js +1 -1
- package/app/.next-cli-build/server/chunks/6992.js +1 -1
- package/app/.next-cli-build/server/chunks/7639.js +1 -1
- package/app/.next-cli-build/server/chunks/8640.js +1 -1
- package/app/.next-cli-build/server/middleware-build-manifest.js +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/{5263-c6b39d40ec347228.js → 5263-364748ccd1292403.js} +1 -1
- package/app/.next-cli-build/static/chunks/{5497-62041685e14c39dd.js → 5497-2dc4edc91d3952bc.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/logs/console/page-af2a2dafe517754e.js +1 -0
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/logs/page-713a4c40ed9a2e81.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/usage/logs/route-a48c4c9356e97886.js +1 -0
- package/app/.next-cli-build/static/css/221b81ade2eff395.css +31 -0
- package/app/cli/.build-home/AppData/Local/npm-cache/_update-notifier-last-checked +0 -0
- package/app/cli/.build-home/AppData/Roaming/bluerouter/db/backups/{upgrade-5.3.59-to-5.3.60-5.3.60-20260823-094446 → upgrade-5.3.62-to-5.3.63-5.3.63-20260823-105132}/data.sqlite +0 -0
- package/app/cli/.build-home/AppData/Roaming/bluerouter/db/backups/{upgrade-5.3.59-to-5.3.60-5.3.60-20260823-094447 → upgrade-5.3.63-to-5.3.64-5.3.64-20260823-110953}/data.sqlite +0 -0
- package/app/cli/.build-home/AppData/Roaming/bluerouter/db/data.sqlite +0 -0
- package/app/package.json +1 -1
- package/package.json +1 -1
- package/app/.next-cli-build/static/css/a242477e315442ed.css +0 -31
- /package/app/.next-cli-build/static/{epOjdzlWmZvmyQGk8gxP2 → KCY4ORmC17jFBWLE5W0QX}/_buildManifest.js +0 -0
- /package/app/.next-cli-build/static/{epOjdzlWmZvmyQGk8gxP2 → KCY4ORmC17jFBWLE5W0QX}/_ssgManifest.js +0 -0
|
@@ -9,11 +9,11 @@ d:I[27123,[],"default",1]
|
|
|
9
9
|
:HL["/_next/static/css/7a3e1568f247f3d0.css","style"]
|
|
10
10
|
:HL["/_next/static/css/2efd59dd4cc5acfe.css","style"]
|
|
11
11
|
8:X
|
|
12
|
-
0:{"P":null,"c":["","_not-found"],"q":"","i":false,"f":[[["",{"children":["_not-found",{"children":["__PAGE__",{},"$undefined","$undefined",4608]},"$undefined","$undefined",4608]},"$undefined","$undefined",4624],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/7a3e1568f247f3d0.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/2efd59dd4cc5acfe.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],"$L2"]}],{"children":[["$","$1","c",{"children":[null,["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],null,["$","$L5",null,{"children":["$","$6",null,{"name":"Next.MetadataOutlet","children":"$@7"}]}]]}],{},null,false,null]},null,false,"$8"]},null,false,null],["$","$1","h",{"children":[["$","meta",null,{"name":"robots","content":"noindex"}],["$","$L9",null,{"children":"$La"}],["$","div",null,{"hidden":true,"children":["$","$Lb",null,{"children":["$","$6",null,{"name":"Next.Metadata","children":"$Lc"}]}]}],null]}],false]],"m":"$undefined","G":["$d",[]],"S":true,"h":null,"r":"$undefined","s":"$undefined","a":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"
|
|
13
|
-
e:I[44656,["3862","static/chunks/1a258343-a1c000c55ff2ed8c.js","8500","static/chunks/8500-01a63dafd809e317.js","9893","static/chunks/9893-065a17773674bd0a.js","9959","static/chunks/9959-ac64565001d4586c.js","7050","static/chunks/7050-a706e6827db952b3.js","5564","static/chunks/5564-f72b35ee73d33b9b.js","5263","static/chunks/5263-
|
|
14
|
-
f:I[70255,["3862","static/chunks/1a258343-a1c000c55ff2ed8c.js","8500","static/chunks/8500-01a63dafd809e317.js","9893","static/chunks/9893-065a17773674bd0a.js","9959","static/chunks/9959-ac64565001d4586c.js","7050","static/chunks/7050-a706e6827db952b3.js","5564","static/chunks/5564-f72b35ee73d33b9b.js","5263","static/chunks/5263-
|
|
15
|
-
10:I[21110,["3862","static/chunks/1a258343-a1c000c55ff2ed8c.js","8500","static/chunks/8500-01a63dafd809e317.js","9893","static/chunks/9893-065a17773674bd0a.js","9959","static/chunks/9959-ac64565001d4586c.js","7050","static/chunks/7050-a706e6827db952b3.js","5564","static/chunks/5564-f72b35ee73d33b9b.js","5263","static/chunks/5263-
|
|
16
|
-
11:I[94635,["1101","static/chunks/1101-24e8a2ac5c831741.js","5564","static/chunks/5564-f72b35ee73d33b9b.js","5263","static/chunks/5263-
|
|
12
|
+
0:{"P":null,"c":["","_not-found"],"q":"","i":false,"f":[[["",{"children":["_not-found",{"children":["__PAGE__",{},"$undefined","$undefined",4608]},"$undefined","$undefined",4608]},"$undefined","$undefined",4624],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/7a3e1568f247f3d0.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/2efd59dd4cc5acfe.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],"$L2"]}],{"children":[["$","$1","c",{"children":[null,["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],null,["$","$L5",null,{"children":["$","$6",null,{"name":"Next.MetadataOutlet","children":"$@7"}]}]]}],{},null,false,null]},null,false,"$8"]},null,false,null],["$","$1","h",{"children":[["$","meta",null,{"name":"robots","content":"noindex"}],["$","$L9",null,{"children":"$La"}],["$","div",null,{"hidden":true,"children":["$","$Lb",null,{"children":["$","$6",null,{"name":"Next.Metadata","children":"$Lc"}]}]}],null]}],false]],"m":"$undefined","G":["$d",[]],"S":true,"h":null,"r":"$undefined","s":"$undefined","a":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"KCY4ORmC17jFBWLE5W0QX"}
|
|
13
|
+
e:I[44656,["3862","static/chunks/1a258343-a1c000c55ff2ed8c.js","8500","static/chunks/8500-01a63dafd809e317.js","9893","static/chunks/9893-065a17773674bd0a.js","9959","static/chunks/9959-ac64565001d4586c.js","7050","static/chunks/7050-a706e6827db952b3.js","5564","static/chunks/5564-f72b35ee73d33b9b.js","5263","static/chunks/5263-364748ccd1292403.js","7033","static/chunks/7033-c1289a2f17cb7185.js","5497","static/chunks/5497-2dc4edc91d3952bc.js","9305","static/chunks/app/(dashboard)/layout-e5f8b9540dd02062.js"],"BrandingProvider"]
|
|
14
|
+
f:I[70255,["3862","static/chunks/1a258343-a1c000c55ff2ed8c.js","8500","static/chunks/8500-01a63dafd809e317.js","9893","static/chunks/9893-065a17773674bd0a.js","9959","static/chunks/9959-ac64565001d4586c.js","7050","static/chunks/7050-a706e6827db952b3.js","5564","static/chunks/5564-f72b35ee73d33b9b.js","5263","static/chunks/5263-364748ccd1292403.js","7033","static/chunks/7033-c1289a2f17cb7185.js","5497","static/chunks/5497-2dc4edc91d3952bc.js","9305","static/chunks/app/(dashboard)/layout-e5f8b9540dd02062.js"],"default"]
|
|
15
|
+
10:I[21110,["3862","static/chunks/1a258343-a1c000c55ff2ed8c.js","8500","static/chunks/8500-01a63dafd809e317.js","9893","static/chunks/9893-065a17773674bd0a.js","9959","static/chunks/9959-ac64565001d4586c.js","7050","static/chunks/7050-a706e6827db952b3.js","5564","static/chunks/5564-f72b35ee73d33b9b.js","5263","static/chunks/5263-364748ccd1292403.js","7033","static/chunks/7033-c1289a2f17cb7185.js","5497","static/chunks/5497-2dc4edc91d3952bc.js","9305","static/chunks/app/(dashboard)/layout-e5f8b9540dd02062.js"],"ThemeProvider"]
|
|
16
|
+
11:I[94635,["1101","static/chunks/1101-24e8a2ac5c831741.js","5564","static/chunks/5564-f72b35ee73d33b9b.js","5263","static/chunks/5263-364748ccd1292403.js","7177","static/chunks/app/layout-246e5f10ac28be17.js"],"RuntimeI18nProvider"]
|
|
17
17
|
8:C
|
|
18
18
|
2:["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{"children":["$","script",null,{"dangerouslySetInnerHTML":{"__html":"if(document.fonts&&document.fonts.ready){document.fonts.ready.then(function(){document.documentElement.classList.add('fonts-loaded')})}else{document.documentElement.classList.add('fonts-loaded')}"}}]}],["$","body",null,{"className":"__variable_f367f3 font-sans antialiased","children":["$","$Le",null,{"initialBranding":{"siteTitle":"","siteShortName":"","siteDescription":"","logoUrl":null,"faviconUrl":null,"logoMime":null,"faviconMime":null,"hasLogo":false,"hasFavicon":false},"children":[["$","$Lf",null,{}],["$","$L10",null,{"children":["$","$L11",null,{"children":["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]}]}]]}]}]]}]
|
|
19
19
|
a:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","2",{"name":"theme-color","content":"#0a0a0a"}]]
|
|
@@ -9,11 +9,11 @@ d:I[27123,[],"default",1]
|
|
|
9
9
|
:HL["/_next/static/css/7a3e1568f247f3d0.css","style"]
|
|
10
10
|
:HL["/_next/static/css/2efd59dd4cc5acfe.css","style"]
|
|
11
11
|
8:X
|
|
12
|
-
0:{"P":null,"c":["","_not-found"],"q":"","i":false,"f":[[["",{"children":["_not-found",{"children":["__PAGE__",{},"$undefined","$undefined",4608]},"$undefined","$undefined",4608]},"$undefined","$undefined",4624],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/7a3e1568f247f3d0.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/2efd59dd4cc5acfe.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],"$L2"]}],{"children":[["$","$1","c",{"children":[null,["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],null,["$","$L5",null,{"children":["$","$6",null,{"name":"Next.MetadataOutlet","children":"$@7"}]}]]}],{},null,false,null]},null,false,"$8"]},null,false,null],["$","$1","h",{"children":[["$","meta",null,{"name":"robots","content":"noindex"}],["$","$L9",null,{"children":"$La"}],["$","div",null,{"hidden":true,"children":["$","$Lb",null,{"children":["$","$6",null,{"name":"Next.Metadata","children":"$Lc"}]}]}],null]}],false]],"m":"$undefined","G":["$d",[]],"S":true,"h":null,"r":"$undefined","s":"$undefined","a":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"
|
|
13
|
-
e:I[44656,["3862","static/chunks/1a258343-a1c000c55ff2ed8c.js","8500","static/chunks/8500-01a63dafd809e317.js","9893","static/chunks/9893-065a17773674bd0a.js","9959","static/chunks/9959-ac64565001d4586c.js","7050","static/chunks/7050-a706e6827db952b3.js","5564","static/chunks/5564-f72b35ee73d33b9b.js","5263","static/chunks/5263-
|
|
14
|
-
f:I[70255,["3862","static/chunks/1a258343-a1c000c55ff2ed8c.js","8500","static/chunks/8500-01a63dafd809e317.js","9893","static/chunks/9893-065a17773674bd0a.js","9959","static/chunks/9959-ac64565001d4586c.js","7050","static/chunks/7050-a706e6827db952b3.js","5564","static/chunks/5564-f72b35ee73d33b9b.js","5263","static/chunks/5263-
|
|
15
|
-
10:I[21110,["3862","static/chunks/1a258343-a1c000c55ff2ed8c.js","8500","static/chunks/8500-01a63dafd809e317.js","9893","static/chunks/9893-065a17773674bd0a.js","9959","static/chunks/9959-ac64565001d4586c.js","7050","static/chunks/7050-a706e6827db952b3.js","5564","static/chunks/5564-f72b35ee73d33b9b.js","5263","static/chunks/5263-
|
|
16
|
-
11:I[94635,["1101","static/chunks/1101-24e8a2ac5c831741.js","5564","static/chunks/5564-f72b35ee73d33b9b.js","5263","static/chunks/5263-
|
|
12
|
+
0:{"P":null,"c":["","_not-found"],"q":"","i":false,"f":[[["",{"children":["_not-found",{"children":["__PAGE__",{},"$undefined","$undefined",4608]},"$undefined","$undefined",4608]},"$undefined","$undefined",4624],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/7a3e1568f247f3d0.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/2efd59dd4cc5acfe.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],"$L2"]}],{"children":[["$","$1","c",{"children":[null,["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],null,["$","$L5",null,{"children":["$","$6",null,{"name":"Next.MetadataOutlet","children":"$@7"}]}]]}],{},null,false,null]},null,false,"$8"]},null,false,null],["$","$1","h",{"children":[["$","meta",null,{"name":"robots","content":"noindex"}],["$","$L9",null,{"children":"$La"}],["$","div",null,{"hidden":true,"children":["$","$Lb",null,{"children":["$","$6",null,{"name":"Next.Metadata","children":"$Lc"}]}]}],null]}],false]],"m":"$undefined","G":["$d",[]],"S":true,"h":null,"r":"$undefined","s":"$undefined","a":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"KCY4ORmC17jFBWLE5W0QX"}
|
|
13
|
+
e:I[44656,["3862","static/chunks/1a258343-a1c000c55ff2ed8c.js","8500","static/chunks/8500-01a63dafd809e317.js","9893","static/chunks/9893-065a17773674bd0a.js","9959","static/chunks/9959-ac64565001d4586c.js","7050","static/chunks/7050-a706e6827db952b3.js","5564","static/chunks/5564-f72b35ee73d33b9b.js","5263","static/chunks/5263-364748ccd1292403.js","7033","static/chunks/7033-c1289a2f17cb7185.js","5497","static/chunks/5497-2dc4edc91d3952bc.js","9305","static/chunks/app/(dashboard)/layout-e5f8b9540dd02062.js"],"BrandingProvider"]
|
|
14
|
+
f:I[70255,["3862","static/chunks/1a258343-a1c000c55ff2ed8c.js","8500","static/chunks/8500-01a63dafd809e317.js","9893","static/chunks/9893-065a17773674bd0a.js","9959","static/chunks/9959-ac64565001d4586c.js","7050","static/chunks/7050-a706e6827db952b3.js","5564","static/chunks/5564-f72b35ee73d33b9b.js","5263","static/chunks/5263-364748ccd1292403.js","7033","static/chunks/7033-c1289a2f17cb7185.js","5497","static/chunks/5497-2dc4edc91d3952bc.js","9305","static/chunks/app/(dashboard)/layout-e5f8b9540dd02062.js"],"default"]
|
|
15
|
+
10:I[21110,["3862","static/chunks/1a258343-a1c000c55ff2ed8c.js","8500","static/chunks/8500-01a63dafd809e317.js","9893","static/chunks/9893-065a17773674bd0a.js","9959","static/chunks/9959-ac64565001d4586c.js","7050","static/chunks/7050-a706e6827db952b3.js","5564","static/chunks/5564-f72b35ee73d33b9b.js","5263","static/chunks/5263-364748ccd1292403.js","7033","static/chunks/7033-c1289a2f17cb7185.js","5497","static/chunks/5497-2dc4edc91d3952bc.js","9305","static/chunks/app/(dashboard)/layout-e5f8b9540dd02062.js"],"ThemeProvider"]
|
|
16
|
+
11:I[94635,["1101","static/chunks/1101-24e8a2ac5c831741.js","5564","static/chunks/5564-f72b35ee73d33b9b.js","5263","static/chunks/5263-364748ccd1292403.js","7177","static/chunks/app/layout-246e5f10ac28be17.js"],"RuntimeI18nProvider"]
|
|
17
17
|
8:C
|
|
18
18
|
2:["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{"children":["$","script",null,{"dangerouslySetInnerHTML":{"__html":"if(document.fonts&&document.fonts.ready){document.fonts.ready.then(function(){document.documentElement.classList.add('fonts-loaded')})}else{document.documentElement.classList.add('fonts-loaded')}"}}]}],["$","body",null,{"className":"__variable_f367f3 font-sans antialiased","children":["$","$Le",null,{"initialBranding":{"siteTitle":"","siteShortName":"","siteDescription":"","logoUrl":null,"faviconUrl":null,"logoMime":null,"faviconMime":null,"hasLogo":false,"hasFavicon":false},"children":[["$","$Lf",null,{}],["$","$L10",null,{"children":["$","$L11",null,{"children":["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]}]}]]}]}]]}]
|
|
19
19
|
a:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","2",{"name":"theme-color","content":"#0a0a0a"}]]
|
|
@@ -6,16 +6,16 @@
|
|
|
6
6
|
9:I[86869,[],"IconMark"]
|
|
7
7
|
b:I[57121,[],""]
|
|
8
8
|
c:I[74581,[],""]
|
|
9
|
-
f:I[44656,["3862","static/chunks/1a258343-a1c000c55ff2ed8c.js","8500","static/chunks/8500-01a63dafd809e317.js","9893","static/chunks/9893-065a17773674bd0a.js","9959","static/chunks/9959-ac64565001d4586c.js","7050","static/chunks/7050-a706e6827db952b3.js","5564","static/chunks/5564-f72b35ee73d33b9b.js","5263","static/chunks/5263-
|
|
10
|
-
10:I[70255,["3862","static/chunks/1a258343-a1c000c55ff2ed8c.js","8500","static/chunks/8500-01a63dafd809e317.js","9893","static/chunks/9893-065a17773674bd0a.js","9959","static/chunks/9959-ac64565001d4586c.js","7050","static/chunks/7050-a706e6827db952b3.js","5564","static/chunks/5564-f72b35ee73d33b9b.js","5263","static/chunks/5263-
|
|
11
|
-
11:I[21110,["3862","static/chunks/1a258343-a1c000c55ff2ed8c.js","8500","static/chunks/8500-01a63dafd809e317.js","9893","static/chunks/9893-065a17773674bd0a.js","9959","static/chunks/9959-ac64565001d4586c.js","7050","static/chunks/7050-a706e6827db952b3.js","5564","static/chunks/5564-f72b35ee73d33b9b.js","5263","static/chunks/5263-
|
|
12
|
-
12:I[94635,["1101","static/chunks/1101-24e8a2ac5c831741.js","5564","static/chunks/5564-f72b35ee73d33b9b.js","5263","static/chunks/5263-
|
|
9
|
+
f:I[44656,["3862","static/chunks/1a258343-a1c000c55ff2ed8c.js","8500","static/chunks/8500-01a63dafd809e317.js","9893","static/chunks/9893-065a17773674bd0a.js","9959","static/chunks/9959-ac64565001d4586c.js","7050","static/chunks/7050-a706e6827db952b3.js","5564","static/chunks/5564-f72b35ee73d33b9b.js","5263","static/chunks/5263-364748ccd1292403.js","7033","static/chunks/7033-c1289a2f17cb7185.js","5497","static/chunks/5497-2dc4edc91d3952bc.js","9305","static/chunks/app/(dashboard)/layout-e5f8b9540dd02062.js"],"BrandingProvider"]
|
|
10
|
+
10:I[70255,["3862","static/chunks/1a258343-a1c000c55ff2ed8c.js","8500","static/chunks/8500-01a63dafd809e317.js","9893","static/chunks/9893-065a17773674bd0a.js","9959","static/chunks/9959-ac64565001d4586c.js","7050","static/chunks/7050-a706e6827db952b3.js","5564","static/chunks/5564-f72b35ee73d33b9b.js","5263","static/chunks/5263-364748ccd1292403.js","7033","static/chunks/7033-c1289a2f17cb7185.js","5497","static/chunks/5497-2dc4edc91d3952bc.js","9305","static/chunks/app/(dashboard)/layout-e5f8b9540dd02062.js"],"default"]
|
|
11
|
+
11:I[21110,["3862","static/chunks/1a258343-a1c000c55ff2ed8c.js","8500","static/chunks/8500-01a63dafd809e317.js","9893","static/chunks/9893-065a17773674bd0a.js","9959","static/chunks/9959-ac64565001d4586c.js","7050","static/chunks/7050-a706e6827db952b3.js","5564","static/chunks/5564-f72b35ee73d33b9b.js","5263","static/chunks/5263-364748ccd1292403.js","7033","static/chunks/7033-c1289a2f17cb7185.js","5497","static/chunks/5497-2dc4edc91d3952bc.js","9305","static/chunks/app/(dashboard)/layout-e5f8b9540dd02062.js"],"ThemeProvider"]
|
|
12
|
+
12:I[94635,["1101","static/chunks/1101-24e8a2ac5c831741.js","5564","static/chunks/5564-f72b35ee73d33b9b.js","5263","static/chunks/5263-364748ccd1292403.js","7177","static/chunks/app/layout-246e5f10ac28be17.js"],"RuntimeI18nProvider"]
|
|
13
13
|
:HL["/_next/static/css/7a3e1568f247f3d0.css","style"]
|
|
14
14
|
:HL["/_next/static/css/2efd59dd4cc5acfe.css","style"]
|
|
15
15
|
6:X
|
|
16
16
|
e:X
|
|
17
17
|
e:C
|
|
18
|
-
0:{"buildId":"
|
|
18
|
+
0:{"buildId":"KCY4ORmC17jFBWLE5W0QX","data":[{"rsc":["$","$1","c",{"children":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],null,["$","$L2",null,{"children":["$","$3",null,{"name":"Next.MetadataOutlet","children":"$@4"}]}]]}],"isPartial":"$@5","staleTime":"$6","varyParams":null},{"rsc":["$","$1","h",{"children":[["$","meta",null,{"name":"robots","content":"noindex"}],["$","$L7",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","2",{"name":"theme-color","content":"#0a0a0a"}]]}],["$","div",null,{"hidden":true,"children":["$","$L8",null,{"children":["$","$3",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"AI Router Gateway - AI Infrastructure Management"}],["$","meta","1",{"name":"description","content":"One endpoint for all your AI providers. Manage keys, monitor usage, and scale effortlessly."}],["$","link","2",{"rel":"manifest","href":"/manifest.webmanifest"}],["$","link","3",{"rel":"icon","href":"/favicon.ico?d69b7278ea27dcf7","type":"image/x-icon","sizes":"32x32"}],["$","link","4",{"rel":"icon","href":"/favicon.svg"}],["$","$L9","5",{}]]}]}]}],null]}],"isPartial":"$@a","staleTime":"$6","varyParams":null},{"rsc":["$","$1","c",{"children":[null,["$","$Lb",null,{"parallelRouterKey":"children","template":["$","$Lc",null,{}]}]]}],"isPartial":"$@d","staleTime":"$6","varyParams":"$e"},{"rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/7a3e1568f247f3d0.css","precedence":"next"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/2efd59dd4cc5acfe.css","precedence":"next"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{"children":["$","script",null,{"dangerouslySetInnerHTML":{"__html":"if(document.fonts&&document.fonts.ready){document.fonts.ready.then(function(){document.documentElement.classList.add('fonts-loaded')})}else{document.documentElement.classList.add('fonts-loaded')}"}}]}],["$","body",null,{"className":"__variable_f367f3 font-sans antialiased","children":["$","$Lf",null,{"initialBranding":{"siteTitle":"","siteShortName":"","siteDescription":"","logoUrl":null,"faviconUrl":null,"logoMime":null,"faviconMime":null,"hasLogo":false,"hasFavicon":false},"children":[["$","$L10",null,{}],["$","$L11",null,{"children":["$","$L12",null,{"children":["$","$Lb",null,{"parallelRouterKey":"children","template":["$","$Lc",null,{}]}]}]}]]}]}]]}]]}],"isPartial":"$@13","staleTime":"$6","varyParams":null}],"isUpgradeableISRFallback":false,"a":"$@14","rootVaryParams":null,"needsRuntimeRequest":"$@15"}
|
|
19
19
|
4:null
|
|
20
20
|
6:300
|
|
21
21
|
15:true
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
:HL["/_next/static/css/7a3e1568f247f3d0.css","style"]
|
|
2
2
|
:HL["/_next/static/css/2efd59dd4cc5acfe.css","style"]
|
|
3
|
-
0:{"tree":{"name":"","param":null,"prefetchHints":4176,"slots":{"children":{"name":"_not-found","param":null,"prefetchHints":4192,"slots":{"children":{"name":"__PAGE__","param":null,"prefetchHints":4256,"slots":null}}}}},"staleTime":300,"buildId":"
|
|
3
|
+
0:{"tree":{"name":"","param":null,"prefetchHints":4176,"slots":{"children":{"name":"_not-found","param":null,"prefetchHints":4192,"slots":{"children":{"name":"__PAGE__","param":null,"prefetchHints":4256,"slots":null}}}}},"staleTime":300,"buildId":"KCY4ORmC17jFBWLE5W0QX"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":1,"files":["../../../../../../cli/.build-home/AppData/Roaming/bluerouter/db/backups/upgrade-5.3.58-to-5.3.59-5.3.59-20260823-093629/data.sqlite","../../../../../../cli/.build-home/AppData/Roaming/bluerouter/db/backups/upgrade-5.3.59-to-5.3.60-5.3.60-20260823-094446/data.sqlite","../../../../../../cli/.build-home/AppData/Roaming/bluerouter/db/backups/upgrade-5.3.59-to-5.3.60-5.3.60-20260823-094447/data.sqlite","../../../../../../cli/.build-home/AppData/Roaming/bluerouter/db/backups/upgrade-5.3.60-to-5.3.61-5.3.61-20260823-100135/data.sqlite","../../../../../../cli/.build-home/AppData/Roaming/bluerouter/db/backups/upgrade-5.3.61-to-5.3.62-5.3.62-20260823-101004/data.sqlite","../../../../../../cli/.build-home/AppData/Roaming/bluerouter/db/data.sqlite","../../../../../../cli/.build-home/AppData/Roaming/bluerouter/db/data.sqlite-shm","../../../../../../cli/.build-home/AppData/Roaming/bluerouter/db/data.sqlite-wal","../../../../../../cli/.build-home/AppData/Roaming/bluerouter/jwt-secret","../../../../../../cli/.build-home/AppData/Roaming/bluerouter/machine-id","../../../../../../cli/.build-home/AppData/Roaming/nextjs-nodejs/Config/config.json","../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../node_modules/@swc/helpers/package.json","../../../../../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../../node_modules/better-sqlite3/package.json","../../../../../../node_modules/bindings/bindings.js","../../../../../../node_modules/bindings/package.json","../../../../../../node_modules/file-uri-to-path/index.js","../../../../../../node_modules/file-uri-to-path/package.json","../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../node_modules/next/dist/server/app-render/blocking-route-messages.js","../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-tracking.js","../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../node_modules/next/dist/server/app-render/sync-io-messages.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../node_modules/next/dist/shared/lib/instant-messages.js","../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../node_modules/next/package.json","../../../../../../node_modules/pg-cloudflare/dist/empty.js","../../../../../../node_modules/pg-cloudflare/dist/index.js","../../../../../../node_modules/pg-cloudflare/package.json","../../../../../../node_modules/pg-connection-string/index.js","../../../../../../node_modules/pg-connection-string/package.json","../../../../../../node_modules/pg-int8/index.js","../../../../../../node_modules/pg-int8/package.json","../../../../../../node_modules/pg-pool/index.js","../../../../../../node_modules/pg-pool/package.json","../../../../../../node_modules/pg-protocol/dist/buffer-reader.js","../../../../../../node_modules/pg-protocol/dist/buffer-writer.js","../../../../../../node_modules/pg-protocol/dist/index.js","../../../../../../node_modules/pg-protocol/dist/messages.js","../../../../../../node_modules/pg-protocol/dist/parser.js","../../../../../../node_modules/pg-protocol/dist/serializer.js","../../../../../../node_modules/pg-protocol/package.json","../../../../../../node_modules/pg-types/index.js","../../../../../../node_modules/pg-types/lib/arrayParser.js","../../../../../../node_modules/pg-types/lib/binaryParsers.js","../../../../../../node_modules/pg-types/lib/builtins.js","../../../../../../node_modules/pg-types/lib/textParsers.js","../../../../../../node_modules/pg-types/package.json","../../../../../../node_modules/pg/esm/index.mjs","../../../../../../node_modules/pg/lib/client.js","../../../../../../node_modules/pg/lib/connection-parameters.js","../../../../../../node_modules/pg/lib/connection.js","../../../../../../node_modules/pg/lib/crypto/cert-signatures.js","../../../../../../node_modules/pg/lib/crypto/sasl.js","../../../../../../node_modules/pg/lib/crypto/utils.js","../../../../../../node_modules/pg/lib/defaults.js","../../../../../../node_modules/pg/lib/index.js","../../../../../../node_modules/pg/lib/native/client.js","../../../../../../node_modules/pg/lib/native/index.js","../../../../../../node_modules/pg/lib/native/query.js","../../../../../../node_modules/pg/lib/query.js","../../../../../../node_modules/pg/lib/result.js","../../../../../../node_modules/pg/lib/stream.js","../../../../../../node_modules/pg/lib/type-overrides.js","../../../../../../node_modules/pg/lib/utils.js","../../../../../../node_modules/pg/package.json","../../../../../../node_modules/pgpass/lib/helper.js","../../../../../../node_modules/pgpass/lib/index.js","../../../../../../node_modules/pgpass/package.json","../../../../../../node_modules/postgres-array/index.js","../../../../../../node_modules/postgres-array/package.json","../../../../../../node_modules/postgres-bytea/index.js","../../../../../../node_modules/postgres-bytea/package.json","../../../../../../node_modules/postgres-date/index.js","../../../../../../node_modules/postgres-date/package.json","../../../../../../node_modules/postgres-interval/index.js","../../../../../../node_modules/postgres-interval/package.json","../../../../../../node_modules/react/cjs/react.development.js","../../../../../../node_modules/react/cjs/react.production.js","../../../../../../node_modules/react/index.js","../../../../../../node_modules/react/package.json","../../../../../../node_modules/split2/index.js","../../../../../../node_modules/split2/package.json","../../../../../../node_modules/sql.js/dist/sql-wasm.js","../../../../../../node_modules/sql.js/package.json","../../../../../../node_modules/xtend/mutable.js","../../../../../../node_modules/xtend/package.json","../../../../../../package.json","../../../../../../src/lib/db/adapters/betterSqliteAdapter.js","../../../../../../src/lib/db/adapters/bunSqliteAdapter.js","../../../../../../src/lib/db/adapters/nodeSqliteAdapter.js","../../../../../../src/lib/db/adapters/sqljsAdapter.js","../../../../../../src/lib/db/migrate.js","../../../../../../src/shared/utils/apiKey.js","../../../../../package.json","../../../../chunks/1002.js","../../../../chunks/1455.js","../../../../chunks/1817.js","../../../../chunks/1998.js","../../../../chunks/2155.js","../../../../chunks/2242.js","../../../../chunks/241.js","../../../../chunks/2430.js","../../../../chunks/2506.js","../../../../chunks/2507.js","../../../../chunks/2512.js","../../../../chunks/2556.js","../../../../chunks/2566.js","../../../../chunks/2611.js","../../../../chunks/2650.js","../../../../chunks/2664.js","../../../../chunks/2731.js","../../../../chunks/2891.js","../../../../chunks/2944.js","../../../../chunks/3031.js","../../../../chunks/3104.js","../../../../chunks/318.js","../../../../chunks/3433.js","../../../../chunks/3484.js","../../../../chunks/3593.js","../../../../chunks/3609.js","../../../../chunks/3696.js","../../../../chunks/3738.js","../../../../chunks/3767.js","../../../../chunks/3801.js","../../../../chunks/3824.js","../../../../chunks/3958.js","../../../../chunks/3960.js","../../../../chunks/4013.js","../../../../chunks/4017.js","../../../../chunks/402.js","../../../../chunks/4123.js","../../../../chunks/4177.js","../../../../chunks/4298.js","../../../../chunks/4315.js","../../../../chunks/436.js","../../../../chunks/4404.js","../../../../chunks/4433.js","../../../../chunks/4632.js","../../../../chunks/4696.js","../../../../chunks/4739.js","../../../../chunks/4741.js","../../../../chunks/4746.js","../../../../chunks/476.js","../../../../chunks/4778.js","../../../../chunks/4780.js","../../../../chunks/4790.js","../../../../chunks/4803.js","../../../../chunks/507.js","../../../../chunks/5206.js","../../../../chunks/5210.js","../../../../chunks/5213.js","../../../../chunks/5258.js","../../../../chunks/5312.js","../../../../chunks/541.js","../../../../chunks/5424.js","../../../../chunks/5433.js","../../../../chunks/5573.js","../../../../chunks/5592.js","../../../../chunks/564.js","../../../../chunks/5681.js","../../../../chunks/5852.js","../../../../chunks/5901.js","../../../../chunks/5915.js","../../../../chunks/595.js","../../../../chunks/6053.js","../../../../chunks/6064.js","../../../../chunks/607.js","../../../../chunks/6103.js","../../../../chunks/6108.js","../../../../chunks/6118.js","../../../../chunks/6182.js","../../../../chunks/6252.js","../../../../chunks/6328.js","../../../../chunks/6404.js","../../../../chunks/6492.js","../../../../chunks/6811.js","../../../../chunks/6844.js","../../../../chunks/689.js","../../../../chunks/6936.js","../../../../chunks/6956.js","../../../../chunks/6977.js","../../../../chunks/6979.js","../../../../chunks/698.js","../../../../chunks/6992.js","../../../../chunks/7126.js","../../../../chunks/7242.js","../../../../chunks/7341.js","../../../../chunks/7464.js","../../../../chunks/7639.js","../../../../chunks/7669.js","../../../../chunks/7707.js","../../../../chunks/7753.js","../../../../chunks/7774.js","../../../../chunks/7812.js","../../../../chunks/7828.js","../../../../chunks/7965.js","../../../../chunks/7986.js","../../../../chunks/8023.js","../../../../chunks/8062.js","../../../../chunks/8099.js","../../../../chunks/814.js","../../../../chunks/8255.js","../../../../chunks/8316.js","../../../../chunks/8347.js","../../../../chunks/8352.js","../../../../chunks/8360.js","../../../../chunks/8469.js","../../../../chunks/8491.js","../../../../chunks/8520.js","../../../../chunks/8590.js","../../../../chunks/8640.js","../../../../chunks/8895.js","../../../../chunks/8946.js","../../../../chunks/9483.js","../../../../chunks/9489.js","../../../../chunks/9609.js","../../../../chunks/9868.js","../../../../webpack-runtime.js","route_client-reference-manifest.js"]}
|
|
1
|
+
{"version":1,"files":["../../../../../../cli/.build-home/AppData/Roaming/bluerouter/db/backups/upgrade-5.3.59-to-5.3.60-5.3.60-20260823-094447/data.sqlite","../../../../../../cli/.build-home/AppData/Roaming/bluerouter/db/backups/upgrade-5.3.60-to-5.3.61-5.3.61-20260823-100135/data.sqlite","../../../../../../cli/.build-home/AppData/Roaming/bluerouter/db/backups/upgrade-5.3.61-to-5.3.62-5.3.62-20260823-101004/data.sqlite","../../../../../../cli/.build-home/AppData/Roaming/bluerouter/db/backups/upgrade-5.3.62-to-5.3.63-5.3.63-20260823-105132/data.sqlite","../../../../../../cli/.build-home/AppData/Roaming/bluerouter/db/backups/upgrade-5.3.63-to-5.3.64-5.3.64-20260823-110953/data.sqlite","../../../../../../cli/.build-home/AppData/Roaming/bluerouter/db/data.sqlite","../../../../../../cli/.build-home/AppData/Roaming/bluerouter/db/data.sqlite-shm","../../../../../../cli/.build-home/AppData/Roaming/bluerouter/db/data.sqlite-wal","../../../../../../cli/.build-home/AppData/Roaming/bluerouter/jwt-secret","../../../../../../cli/.build-home/AppData/Roaming/bluerouter/machine-id","../../../../../../cli/.build-home/AppData/Roaming/nextjs-nodejs/Config/config.json","../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../node_modules/@swc/helpers/package.json","../../../../../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../../node_modules/better-sqlite3/package.json","../../../../../../node_modules/bindings/bindings.js","../../../../../../node_modules/bindings/package.json","../../../../../../node_modules/file-uri-to-path/index.js","../../../../../../node_modules/file-uri-to-path/package.json","../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../node_modules/next/dist/server/app-render/blocking-route-messages.js","../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-tracking.js","../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../node_modules/next/dist/server/app-render/sync-io-messages.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../node_modules/next/dist/shared/lib/instant-messages.js","../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../node_modules/next/package.json","../../../../../../node_modules/pg-cloudflare/dist/empty.js","../../../../../../node_modules/pg-cloudflare/dist/index.js","../../../../../../node_modules/pg-cloudflare/package.json","../../../../../../node_modules/pg-connection-string/index.js","../../../../../../node_modules/pg-connection-string/package.json","../../../../../../node_modules/pg-int8/index.js","../../../../../../node_modules/pg-int8/package.json","../../../../../../node_modules/pg-pool/index.js","../../../../../../node_modules/pg-pool/package.json","../../../../../../node_modules/pg-protocol/dist/buffer-reader.js","../../../../../../node_modules/pg-protocol/dist/buffer-writer.js","../../../../../../node_modules/pg-protocol/dist/index.js","../../../../../../node_modules/pg-protocol/dist/messages.js","../../../../../../node_modules/pg-protocol/dist/parser.js","../../../../../../node_modules/pg-protocol/dist/serializer.js","../../../../../../node_modules/pg-protocol/package.json","../../../../../../node_modules/pg-types/index.js","../../../../../../node_modules/pg-types/lib/arrayParser.js","../../../../../../node_modules/pg-types/lib/binaryParsers.js","../../../../../../node_modules/pg-types/lib/builtins.js","../../../../../../node_modules/pg-types/lib/textParsers.js","../../../../../../node_modules/pg-types/package.json","../../../../../../node_modules/pg/esm/index.mjs","../../../../../../node_modules/pg/lib/client.js","../../../../../../node_modules/pg/lib/connection-parameters.js","../../../../../../node_modules/pg/lib/connection.js","../../../../../../node_modules/pg/lib/crypto/cert-signatures.js","../../../../../../node_modules/pg/lib/crypto/sasl.js","../../../../../../node_modules/pg/lib/crypto/utils.js","../../../../../../node_modules/pg/lib/defaults.js","../../../../../../node_modules/pg/lib/index.js","../../../../../../node_modules/pg/lib/native/client.js","../../../../../../node_modules/pg/lib/native/index.js","../../../../../../node_modules/pg/lib/native/query.js","../../../../../../node_modules/pg/lib/query.js","../../../../../../node_modules/pg/lib/result.js","../../../../../../node_modules/pg/lib/stream.js","../../../../../../node_modules/pg/lib/type-overrides.js","../../../../../../node_modules/pg/lib/utils.js","../../../../../../node_modules/pg/package.json","../../../../../../node_modules/pgpass/lib/helper.js","../../../../../../node_modules/pgpass/lib/index.js","../../../../../../node_modules/pgpass/package.json","../../../../../../node_modules/postgres-array/index.js","../../../../../../node_modules/postgres-array/package.json","../../../../../../node_modules/postgres-bytea/index.js","../../../../../../node_modules/postgres-bytea/package.json","../../../../../../node_modules/postgres-date/index.js","../../../../../../node_modules/postgres-date/package.json","../../../../../../node_modules/postgres-interval/index.js","../../../../../../node_modules/postgres-interval/package.json","../../../../../../node_modules/react/cjs/react.development.js","../../../../../../node_modules/react/cjs/react.production.js","../../../../../../node_modules/react/index.js","../../../../../../node_modules/react/package.json","../../../../../../node_modules/split2/index.js","../../../../../../node_modules/split2/package.json","../../../../../../node_modules/sql.js/dist/sql-wasm.js","../../../../../../node_modules/sql.js/package.json","../../../../../../node_modules/xtend/mutable.js","../../../../../../node_modules/xtend/package.json","../../../../../../package.json","../../../../../../src/lib/db/adapters/betterSqliteAdapter.js","../../../../../../src/lib/db/adapters/bunSqliteAdapter.js","../../../../../../src/lib/db/adapters/nodeSqliteAdapter.js","../../../../../../src/lib/db/adapters/sqljsAdapter.js","../../../../../../src/lib/db/migrate.js","../../../../../../src/shared/utils/apiKey.js","../../../../../package.json","../../../../chunks/1002.js","../../../../chunks/1455.js","../../../../chunks/1817.js","../../../../chunks/1998.js","../../../../chunks/2155.js","../../../../chunks/2242.js","../../../../chunks/241.js","../../../../chunks/2430.js","../../../../chunks/2506.js","../../../../chunks/2507.js","../../../../chunks/2512.js","../../../../chunks/2556.js","../../../../chunks/2566.js","../../../../chunks/2611.js","../../../../chunks/2650.js","../../../../chunks/2664.js","../../../../chunks/2731.js","../../../../chunks/2891.js","../../../../chunks/2944.js","../../../../chunks/3031.js","../../../../chunks/3104.js","../../../../chunks/318.js","../../../../chunks/3433.js","../../../../chunks/3484.js","../../../../chunks/3593.js","../../../../chunks/3609.js","../../../../chunks/3696.js","../../../../chunks/3738.js","../../../../chunks/3767.js","../../../../chunks/3801.js","../../../../chunks/3824.js","../../../../chunks/3958.js","../../../../chunks/3960.js","../../../../chunks/4013.js","../../../../chunks/4017.js","../../../../chunks/402.js","../../../../chunks/4123.js","../../../../chunks/4177.js","../../../../chunks/4298.js","../../../../chunks/4315.js","../../../../chunks/436.js","../../../../chunks/4404.js","../../../../chunks/4433.js","../../../../chunks/4632.js","../../../../chunks/4696.js","../../../../chunks/4739.js","../../../../chunks/4741.js","../../../../chunks/4746.js","../../../../chunks/476.js","../../../../chunks/4778.js","../../../../chunks/4780.js","../../../../chunks/4790.js","../../../../chunks/4803.js","../../../../chunks/507.js","../../../../chunks/5206.js","../../../../chunks/5210.js","../../../../chunks/5213.js","../../../../chunks/5258.js","../../../../chunks/5312.js","../../../../chunks/541.js","../../../../chunks/5424.js","../../../../chunks/5433.js","../../../../chunks/5573.js","../../../../chunks/5592.js","../../../../chunks/564.js","../../../../chunks/5681.js","../../../../chunks/5852.js","../../../../chunks/5901.js","../../../../chunks/5915.js","../../../../chunks/595.js","../../../../chunks/6053.js","../../../../chunks/6064.js","../../../../chunks/607.js","../../../../chunks/6103.js","../../../../chunks/6108.js","../../../../chunks/6118.js","../../../../chunks/6182.js","../../../../chunks/6252.js","../../../../chunks/6328.js","../../../../chunks/6404.js","../../../../chunks/6492.js","../../../../chunks/6811.js","../../../../chunks/6844.js","../../../../chunks/689.js","../../../../chunks/6936.js","../../../../chunks/6956.js","../../../../chunks/6977.js","../../../../chunks/6979.js","../../../../chunks/698.js","../../../../chunks/6992.js","../../../../chunks/7126.js","../../../../chunks/7242.js","../../../../chunks/7341.js","../../../../chunks/7464.js","../../../../chunks/7639.js","../../../../chunks/7669.js","../../../../chunks/7707.js","../../../../chunks/7753.js","../../../../chunks/7774.js","../../../../chunks/7812.js","../../../../chunks/7828.js","../../../../chunks/7965.js","../../../../chunks/7986.js","../../../../chunks/8023.js","../../../../chunks/8062.js","../../../../chunks/8099.js","../../../../chunks/814.js","../../../../chunks/8255.js","../../../../chunks/8316.js","../../../../chunks/8347.js","../../../../chunks/8352.js","../../../../chunks/8360.js","../../../../chunks/8469.js","../../../../chunks/8491.js","../../../../chunks/8520.js","../../../../chunks/8590.js","../../../../chunks/8640.js","../../../../chunks/8895.js","../../../../chunks/8946.js","../../../../chunks/9483.js","../../../../chunks/9489.js","../../../../chunks/9609.js","../../../../chunks/9868.js","../../../../webpack-runtime.js","route_client-reference-manifest.js"]}
|
|
@@ -17,14 +17,15 @@ Content-Type: application/json\r
|
|
|
17
17
|
Content-Length: ${e.length}\r
|
|
18
18
|
Connection: close\r
|
|
19
19
|
\r
|
|
20
|
-
`),j.write(e)}),j.on("data",a=>k.push(Buffer.from(a))),j.on("end",()=>{clearTimeout(l),h(function(a){let b=a.indexOf("\r\n\r\n");if(b<0)throw Error("Invalid HTTP/1.1 response");let c=a.subarray(0,b).toString("latin1"),d={};for(let a of c.split("\r\n").slice(1)){let b=a.indexOf(":");b>0&&(d[a.slice(0,b).toLowerCase()]=a.slice(b+1).trim())}let e=Number(d["content-length"]||0);return{head:c,headers:d,body:a.subarray(b+4,e?b+4+e:void 0)}}(Buffer.concat(k)))})})}async function x({socket:a,ca:b,servername:c,port:e,body:g,path:h}){let i=f.connect({socket:a,ca:b,servername:c,rejectUnauthorized:!0,ALPNProtocols:["h2"]});await new Promise((a,b)=>{let c=setTimeout(()=>b(Error("TLS HTTP/2 handshake timeout")),1e4);i.once("secureConnect",()=>{clearTimeout(c),"h2"!==i.alpnProtocol?b(Error(`Expected h2, got ${i.alpnProtocol||"none"}`)):a()}),i.once("error",b)});let j=d.connect(`https://${c}:${e}`,{createConnection:()=>i});await new Promise((a,b)=>{j.once("connect",a),j.once("error",b)});let k=j.request({":method":"POST",":path":h,":scheme":"https",":authority":`${c}:${e}`,authorization:"Bearer test-secret-authorization-123456789","x-api-key":"sk-test-supersecret-123456789","x-9r-source-tool":"should-not-reach-upstream","content-type":"application/json","content-length":String(g.length)}),l=[],m={};k.on("response",a=>{m=a}),k.on("data",a=>l.push(Buffer.from(a)));let n=new Promise((a,b)=>{k.once("end",a),k.once("error",b)});return k.end(g),await n,j.close(),{headers:m,body:Buffer.concat(l)}}a.exports={runSelfTest:async function(){let a=Date.now(),b=[],c=(a,c,d="")=>b.push({name:a,ok:!!c,detail:d}),f=n(["172.16.253.3","10.20.30.0/24","2001:db8::/64"]);c("Client IP exact allowlist match",m("::ffff:172.16.253.3",f)),c("Client IPv4 CIDR allowlist match",m("10.20.30.77",f)),c("Client IPv6 CIDR allowlist match",m("2001:db8::1234",f)),c("Client IP outside allowlist denied",!m("10.20.31.77",f)),c("Public destination accepted",o("1.1.1.1")),c("Private destination rejected",!o("127.0.0.1")&&!o("169.254.169.254"));let h=JSON.stringify({type:"message",content:[{type:"text",text:"brotli audit ok"}]}),i=new k(1048576);i.add(g.brotliCompressSync(Buffer.from(h)));let y=await i.finish("application/json","br");c("Brotli audit body decoded",!0===y.decoded&&y.body.includes("brotli audit ok")&&!y.decodeError);let z=q("BlueRouter Audit Self Test Upstream CA"),A=r(z,"localhost"),B=q("BlueRouter Audit Self Test Proxy CA"),C=r(B,"localhost"),D=Buffer.from(JSON.stringify({type:"message",content:[{type:"text",text:"compressed response preserved"}]})),E=g.brotliCompressSync(D),F=[],G=d.createSecureServer({key:A.key,cert:A.cert,allowHTTP1:!0});G.on("request",(a,b)=>{let c=[];a.on("data",a=>c.push(Buffer.from(a))),a.on("end",()=>{F.push({protocol:2===a.httpVersionMajor?"h2":"http/1.1",path:a.url,authorization:a.headers.authorization,apiKey:a.headers["x-api-key"],internalHeader:a.headers["x-9r-source-tool"],body:Buffer.concat(c)}),b.writeHead(200,{"content-type":"application/json","content-encoding":"br","content-length":String(E.length)}),b.end(E)})});let H=[],I=null,J=null;try{var K;let a=await s(G);I=j({allowedHosts:["localhost"],passthroughUnknown:!1,captureBodies:!0,captureLimitBytes:1048576,verifyUpstreamTls:!0,allowedConnectPorts:[a.port],connectTimeoutMs:5e3,tlsHandshakeTimeoutMs:5e3,responseHeaderTimeoutMs:5e3,idleTimeoutMs:3e4},{certificateProvider:()=>C,upstreamCa:z.certPem,resolveTarget:u,onAudit:a=>H.push(a)});let b=await s(I),d=await (K=b.port,new Promise((a,b)=>{let c=e.connect(K,"127.0.0.1"),d=[],f=setTimeout(()=>b(Error("Plain HTTP rejection timeout")),5e3);c.once("connect",()=>c.end("GET http://example.com/ HTTP/1.1\r\nHost: example.com\r\nConnection: close\r\n\r\n")),c.on("data",a=>d.push(Buffer.from(a))),c.once("error",b),c.once("end",()=>{clearTimeout(f),a(Buffer.concat(d).toString("utf8"))})}));c("Plain HTTP forward proxy is disabled",d.startsWith("HTTP/1.1 403"));let f=Buffer.from(JSON.stringify({model:"audit-self-test-h1",messages:[{role:"user",content:"hello h1 ✓"}]})),g="/v1/messages?beta=true&encoded=%2F",h=await v(b.port,`localhost:${a.port}`),i=await w({socket:h,ca:B.certPem,servername:"localhost",port:a.port,body:f,path:g});c("HTTP/1.1 CONNECT and TLS succeeded",i.head.startsWith("HTTP/1.1 200")),c("HTTP/1.1 compressed response bytes preserved",p(i.body)===p(E));let k=Buffer.from(JSON.stringify({model:"audit-self-test-h2",messages:[{role:"user",content:"hello h2 ✓"}]})),m="/v1/messages?beta=true&protocol=h2",n=await v(b.port,`localhost:${a.port}`),o=await x({socket:n,ca:B.certPem,servername:"localhost",port:a.port,body:k,path:m});c("HTTP/2 negotiated through Audit Proxy",200===Number(o.headers[":status"])),c("HTTP/2 compressed response bytes preserved",p(o.body)===p(E)),await new Promise(a=>setTimeout(a,100));let q=F.find(a=>"http/1.1"===a.protocol),r=F.find(a=>"h2"===a.protocol);c("HTTP/1.1 path/query preserved",q?.path===g),c("HTTP/2 path/query preserved",r?.path===m),c("HTTP/1.1 request body byte-identical",q&&p(q.body)===p(f)),c("HTTP/2 request body byte-identical",r&&p(r.body)===p(k)),c("Authorization preserved on wire",F.every(a=>"Bearer test-secret-authorization-123456789"===a.authorization)),c("x-api-key preserved on wire",F.every(a=>"sk-test-supersecret-123456789"===a.apiKey)),c("Internal x-9r-* header stripped",F.every(a=>null==a.internalHeader));let t=H.find(a=>"http/1.1"===a.protocol),y=H.find(a=>"h2"===a.protocol);c("HTTP/1.1 audit event captured",!!t),c("HTTP/2 audit event captured",!!y),c("Request wire SHA-256 recorded",t?.request?.wireSha256===p(f)&&y?.request?.wireSha256===p(k)),c("Response wire SHA-256 recorded",t?.response?.wireSha256===p(E)&&y?.response?.wireSha256===p(E)),c("Compressed audit response decoded",t?.response?.body?.includes("compressed response preserved")&&y?.response?.body?.includes("compressed response preserved")),c("Authorization redacted in audit",H.every(a=>a.request?.headers?.authorization==="[REDACTED]")),c("x-api-key redacted in audit",H.every(a=>a.request?.headers?.["x-api-key"]==="[REDACTED]")),c("No likely API secret persisted",H.length>=2&&H.every(a=>!l(a))),J=j({allowedHosts:["localhost"],passthroughUnknown:!1,captureBodies:!0,captureLimitBytes:1048576,verifyUpstreamTls:!0,allowedConnectPorts:[a.port],connectTimeoutMs:5e3,tlsHandshakeTimeoutMs:5e3,responseHeaderTimeoutMs:5e3,idleTimeoutMs:3e4},{certificateProvider:()=>C,upstreamCa:z.certPem,resolveTarget:u,onAudit:()=>{throw Error("simulated audit sink failure")}});let A=await s(J),D=await v(A.port,`localhost:${a.port}`),L=await w({socket:D,ca:B.certPem,servername:"localhost",port:a.port,body:f,path:g});c("Audit sink failure does not fail proxied request",L.head.startsWith("HTTP/1.1 200"))}catch(a){c("Self-test execution",!1,a.message||String(a))}finally{await t(J),await t(I),await t(G)}return{ok:b.length>0&&b.every(a=>a.ok),checks:b,passed:b.filter(a=>a.ok).length,total:b.length,durationMs:Date.now()-a}}}},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87496:(a,b,c)=>{c.r(b),c.d(b,{GET:()=>u,POST:()=>w,PUT:()=>v,dynamic:()=>o,revalidate:()=>p,runtime:()=>n});var d=c(23211),e=c(9588),f=c(45903);let g="__blueRouterAuditRecentMysqlReader";function h(){return globalThis[g]||(globalThis[g]={pool:null,poolKey:"",poolPromise:null,cache:{expiresAt:0,limit:0,result:null}}),globalThis[g]}async function i(a){let b=h(),d=JSON.stringify({host:a.host,port:Number(a.port||3306),database:a.database,username:a.username,password:a.password,ssl:!0===a.ssl});if(b.pool&&b.poolKey===d||b.poolPromise&&(await b.poolPromise.catch(()=>{}),b.pool&&b.poolKey===d))return b.pool;b.poolPromise=(async()=>{if(b.pool&&b.poolKey!==d){try{await b.pool.end()}catch{}b.pool=null,b.poolKey=""}let e=await c.e(8491).then(c.t.bind(c,38491,19)),f=(e.default||e).createPool({host:a.host,port:Number(a.port||3306),database:a.database,user:a.username,password:a.password,ssl:a.ssl?{rejectUnauthorized:!0}:void 0,connectTimeout:2500,waitForConnections:!0,connectionLimit:1,maxIdle:1,idleTimeout:3e4,queueLimit:4,enableKeepAlive:!0,keepAliveInitialDelay:3e4,timezone:"Z",dateStrings:!0});return b.pool=f,b.poolKey=d,f})();try{return await b.poolPromise}finally{b.poolPromise=null}}function j(a){if(null==a||""===a)return null;let b=Number(a);return Number.isFinite(b)?b:null}function k(a){let b=function(a){if(!a)return{};if("object"==typeof a&&!Buffer.isBuffer(a))return a;try{return JSON.parse(Buffer.isBuffer(a)?a.toString("utf8"):String(a))}catch{return{}}}(a.meta_json),c=Number(b.requestCapturedBytes||0),d=Number(b.requestTotalBytes||c||0),e=Number(b.responseCapturedBytes||0),f=Number(b.responseTotalBytes||e||0);return{id:String(b.auditEventId||a.id),timestamp:function(a){if(a instanceof Date)return a.toISOString();let b=String(a||"").trim();if(!b)return new Date().toISOString();let c=b.replace(" ","T"),d=new Date(/(?:Z|[+-]\d{2}:?\d{2})$/i.test(c)?c:`${c}Z`);return Number.isNaN(d.getTime())?new Date().toISOString():d.toISOString()}(a.created_at),protocol:String(b.protocol||"http/1.1"),client:{ip:a.client_ip||"",port:j(a.client_port),userAgent:a.client_user_agent||""},provider:a.provider||"other",host:b.host||a.client_host||a.source_host||"",port:Number(b.port||443),method:b.method||"REQUEST",path:b.path||a.endpoint||"",model:a.model||null,status:j(a.status_code),durationMs:Number(b.durationMs||0),error:a.error_text||null,request:{headers:{},body:a.prompt_text||"",capturedBytes:c,totalBytes:d,wireSha256:b.requestWireSha256||null,truncated:!0===b.requestTruncated,previewOnly:!0},response:{headers:{},body:a.response_text||"",capturedBytes:e,totalBytes:f,wireSha256:b.responseWireSha256||null,truncated:!0===b.responseTruncated,previewOnly:!0},persistenceSource:"mysql"}}async function l(a=50){let b=Math.max(1,Math.min(500,Number(a)||50)),c=h(),d=Date.now();if(c.cache.result&&c.cache.expiresAt>d&&c.cache.limit>=b)return{...c.cache.result,events:c.cache.result.events.slice(0,b),cached:!0};try{let a=await (0,f.getPromptLogDbConfig)();if(!a?.enabled)return{events:[],available:!1,reason:"Prompt Log MySQL is disabled",error:null};if("mysql"!==String(a.type||"").toLowerCase())return{events:[],available:!1,reason:`Prompt Log database type is ${a.type||"unknown"}`,error:null};let e=await i(a),g=`SELECT
|
|
21
|
-
id, created_at, model, endpoint, provider,
|
|
20
|
+
`),j.write(e)}),j.on("data",a=>k.push(Buffer.from(a))),j.on("end",()=>{clearTimeout(l),h(function(a){let b=a.indexOf("\r\n\r\n");if(b<0)throw Error("Invalid HTTP/1.1 response");let c=a.subarray(0,b).toString("latin1"),d={};for(let a of c.split("\r\n").slice(1)){let b=a.indexOf(":");b>0&&(d[a.slice(0,b).toLowerCase()]=a.slice(b+1).trim())}let e=Number(d["content-length"]||0);return{head:c,headers:d,body:a.subarray(b+4,e?b+4+e:void 0)}}(Buffer.concat(k)))})})}async function x({socket:a,ca:b,servername:c,port:e,body:g,path:h}){let i=f.connect({socket:a,ca:b,servername:c,rejectUnauthorized:!0,ALPNProtocols:["h2"]});await new Promise((a,b)=>{let c=setTimeout(()=>b(Error("TLS HTTP/2 handshake timeout")),1e4);i.once("secureConnect",()=>{clearTimeout(c),"h2"!==i.alpnProtocol?b(Error(`Expected h2, got ${i.alpnProtocol||"none"}`)):a()}),i.once("error",b)});let j=d.connect(`https://${c}:${e}`,{createConnection:()=>i});await new Promise((a,b)=>{j.once("connect",a),j.once("error",b)});let k=j.request({":method":"POST",":path":h,":scheme":"https",":authority":`${c}:${e}`,authorization:"Bearer test-secret-authorization-123456789","x-api-key":"sk-test-supersecret-123456789","x-9r-source-tool":"should-not-reach-upstream","content-type":"application/json","content-length":String(g.length)}),l=[],m={};k.on("response",a=>{m=a}),k.on("data",a=>l.push(Buffer.from(a)));let n=new Promise((a,b)=>{k.once("end",a),k.once("error",b)});return k.end(g),await n,j.close(),{headers:m,body:Buffer.concat(l)}}a.exports={runSelfTest:async function(){let a=Date.now(),b=[],c=(a,c,d="")=>b.push({name:a,ok:!!c,detail:d}),f=n(["172.16.253.3","10.20.30.0/24","2001:db8::/64"]);c("Client IP exact allowlist match",m("::ffff:172.16.253.3",f)),c("Client IPv4 CIDR allowlist match",m("10.20.30.77",f)),c("Client IPv6 CIDR allowlist match",m("2001:db8::1234",f)),c("Client IP outside allowlist denied",!m("10.20.31.77",f)),c("Public destination accepted",o("1.1.1.1")),c("Private destination rejected",!o("127.0.0.1")&&!o("169.254.169.254"));let h=JSON.stringify({type:"message",content:[{type:"text",text:"brotli audit ok"}]}),i=new k(1048576);i.add(g.brotliCompressSync(Buffer.from(h)));let y=await i.finish("application/json","br");c("Brotli audit body decoded",!0===y.decoded&&y.body.includes("brotli audit ok")&&!y.decodeError);let z=q("BlueRouter Audit Self Test Upstream CA"),A=r(z,"localhost"),B=q("BlueRouter Audit Self Test Proxy CA"),C=r(B,"localhost"),D=Buffer.from(JSON.stringify({type:"message",content:[{type:"text",text:"compressed response preserved"}]})),E=g.brotliCompressSync(D),F=[],G=d.createSecureServer({key:A.key,cert:A.cert,allowHTTP1:!0});G.on("request",(a,b)=>{let c=[];a.on("data",a=>c.push(Buffer.from(a))),a.on("end",()=>{F.push({protocol:2===a.httpVersionMajor?"h2":"http/1.1",path:a.url,authorization:a.headers.authorization,apiKey:a.headers["x-api-key"],internalHeader:a.headers["x-9r-source-tool"],body:Buffer.concat(c)}),b.writeHead(200,{"content-type":"application/json","content-encoding":"br","content-length":String(E.length)}),b.end(E)})});let H=[],I=null,J=null;try{var K;let a=await s(G);I=j({allowedHosts:["localhost"],passthroughUnknown:!1,captureBodies:!0,captureLimitBytes:1048576,verifyUpstreamTls:!0,allowedConnectPorts:[a.port],connectTimeoutMs:5e3,tlsHandshakeTimeoutMs:5e3,responseHeaderTimeoutMs:5e3,idleTimeoutMs:3e4},{certificateProvider:()=>C,upstreamCa:z.certPem,resolveTarget:u,onAudit:a=>H.push(a)});let b=await s(I),d=await (K=b.port,new Promise((a,b)=>{let c=e.connect(K,"127.0.0.1"),d=[],f=setTimeout(()=>b(Error("Plain HTTP rejection timeout")),5e3);c.once("connect",()=>c.end("GET http://example.com/ HTTP/1.1\r\nHost: example.com\r\nConnection: close\r\n\r\n")),c.on("data",a=>d.push(Buffer.from(a))),c.once("error",b),c.once("end",()=>{clearTimeout(f),a(Buffer.concat(d).toString("utf8"))})}));c("Plain HTTP forward proxy is disabled",d.startsWith("HTTP/1.1 403"));let f=Buffer.from(JSON.stringify({model:"audit-self-test-h1",messages:[{role:"user",content:"hello h1 ✓"}]})),g="/v1/messages?beta=true&encoded=%2F",h=await v(b.port,`localhost:${a.port}`),i=await w({socket:h,ca:B.certPem,servername:"localhost",port:a.port,body:f,path:g});c("HTTP/1.1 CONNECT and TLS succeeded",i.head.startsWith("HTTP/1.1 200")),c("HTTP/1.1 compressed response bytes preserved",p(i.body)===p(E));let k=Buffer.from(JSON.stringify({model:"audit-self-test-h2",messages:[{role:"user",content:"hello h2 ✓"}]})),m="/v1/messages?beta=true&protocol=h2",n=await v(b.port,`localhost:${a.port}`),o=await x({socket:n,ca:B.certPem,servername:"localhost",port:a.port,body:k,path:m});c("HTTP/2 negotiated through Audit Proxy",200===Number(o.headers[":status"])),c("HTTP/2 compressed response bytes preserved",p(o.body)===p(E)),await new Promise(a=>setTimeout(a,100));let q=F.find(a=>"http/1.1"===a.protocol),r=F.find(a=>"h2"===a.protocol);c("HTTP/1.1 path/query preserved",q?.path===g),c("HTTP/2 path/query preserved",r?.path===m),c("HTTP/1.1 request body byte-identical",q&&p(q.body)===p(f)),c("HTTP/2 request body byte-identical",r&&p(r.body)===p(k)),c("Authorization preserved on wire",F.every(a=>"Bearer test-secret-authorization-123456789"===a.authorization)),c("x-api-key preserved on wire",F.every(a=>"sk-test-supersecret-123456789"===a.apiKey)),c("Internal x-9r-* header stripped",F.every(a=>null==a.internalHeader));let t=H.find(a=>"http/1.1"===a.protocol),y=H.find(a=>"h2"===a.protocol);c("HTTP/1.1 audit event captured",!!t),c("HTTP/2 audit event captured",!!y),c("Request wire SHA-256 recorded",t?.request?.wireSha256===p(f)&&y?.request?.wireSha256===p(k)),c("Response wire SHA-256 recorded",t?.response?.wireSha256===p(E)&&y?.response?.wireSha256===p(E)),c("Compressed audit response decoded",t?.response?.body?.includes("compressed response preserved")&&y?.response?.body?.includes("compressed response preserved")),c("Authorization redacted in audit",H.every(a=>a.request?.headers?.authorization==="[REDACTED]")),c("x-api-key redacted in audit",H.every(a=>a.request?.headers?.["x-api-key"]==="[REDACTED]")),c("No likely API secret persisted",H.length>=2&&H.every(a=>!l(a))),J=j({allowedHosts:["localhost"],passthroughUnknown:!1,captureBodies:!0,captureLimitBytes:1048576,verifyUpstreamTls:!0,allowedConnectPorts:[a.port],connectTimeoutMs:5e3,tlsHandshakeTimeoutMs:5e3,responseHeaderTimeoutMs:5e3,idleTimeoutMs:3e4},{certificateProvider:()=>C,upstreamCa:z.certPem,resolveTarget:u,onAudit:()=>{throw Error("simulated audit sink failure")}});let A=await s(J),D=await v(A.port,`localhost:${a.port}`),L=await w({socket:D,ca:B.certPem,servername:"localhost",port:a.port,body:f,path:g});c("Audit sink failure does not fail proxied request",L.head.startsWith("HTTP/1.1 200"))}catch(a){c("Self-test execution",!1,a.message||String(a))}finally{await t(J),await t(I),await t(G)}return{ok:b.length>0&&b.every(a=>a.ok),checks:b,passed:b.filter(a=>a.ok).length,total:b.length,durationMs:Date.now()-a}}}},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87496:(a,b,c)=>{c.r(b),c.d(b,{GET:()=>x,POST:()=>z,PUT:()=>y,dynamic:()=>r,revalidate:()=>s,runtime:()=>q});var d=c(23211),e=c(9588),f=c(45903);let g="audit-proxy",h="client",i="provider_response",j="__blueRouterAuditRecentMysqlReader";function k(){return globalThis[j]||(globalThis[j]={pool:null,poolKey:"",poolPromise:null,cache:{expiresAt:0,limit:0,result:null}}),globalThis[j]}async function l(a){let b=k(),d=JSON.stringify({host:a.host,port:Number(a.port||3306),database:a.database,username:a.username,password:a.password,ssl:!0===a.ssl});if(b.pool&&b.poolKey===d||b.poolPromise&&(await b.poolPromise.catch(()=>{}),b.pool&&b.poolKey===d))return b.pool;b.poolPromise=(async()=>{if(b.pool&&b.poolKey!==d){try{await b.pool.end()}catch{}b.pool=null,b.poolKey=""}let e=await c.e(8491).then(c.t.bind(c,38491,19)),f=(e.default||e).createPool({host:a.host,port:Number(a.port||3306),database:a.database,user:a.username,password:a.password,ssl:a.ssl?{rejectUnauthorized:!0}:void 0,connectTimeout:2500,waitForConnections:!0,connectionLimit:1,maxIdle:1,idleTimeout:3e4,queueLimit:4,enableKeepAlive:!0,keepAliveInitialDelay:3e4,timezone:"Z",dateStrings:!0});return b.pool=f,b.poolKey=d,f})();try{return await b.poolPromise}finally{b.poolPromise=null}}function m(a){if(null==a||""===a)return null;let b=Number(a);return Number.isFinite(b)?b:null}function n(a){let b=Date.parse(a||0);return Number.isFinite(b)?b:0}async function o(a=50){let b=Math.max(1,Math.min(500,Number(a)||50)),c=k(),d=Date.now();if(c.cache.result&&c.cache.expiresAt>d&&c.cache.limit>=b)return{...c.cache.result,events:c.cache.result.events.slice(0,b),cached:!0};try{let a=await (0,f.getPromptLogDbConfig)();if(!a?.enabled)return{events:[],available:!1,reason:"Prompt Log MySQL is disabled",error:null};if("mysql"!==String(a.type||"").toLowerCase())return{events:[],available:!1,reason:`Prompt Log database type is ${a.type||"unknown"}`,error:null};let e=await l(a),j=Math.min(1200,2*b+20),k=`SELECT
|
|
21
|
+
id, created_at, stage, model, endpoint, provider,
|
|
22
22
|
client_ip, client_port, client_user_agent, client_host, source_host,
|
|
23
23
|
prompt_text, response_text, status_code, error_text, meta_json
|
|
24
24
|
FROM prompt_logs
|
|
25
25
|
WHERE stage = ?
|
|
26
|
+
OR (session_id LIKE 'audit-%' AND stage IN (?, ?))
|
|
26
27
|
ORDER BY created_at DESC
|
|
27
|
-
LIMIT ${
|
|
28
|
+
LIMIT ${j}`,[o]=await e.query({sql:k,timeout:2500},[g,h,i]),p={events:function(a,b){let c=new Map;for(let b of a||[]){let a=function(a){let b=function(a){if(!a)return{};if("object"==typeof a&&!Buffer.isBuffer(a))return a;try{return JSON.parse(Buffer.isBuffer(a)?a.toString("utf8"):String(a))}catch{return{}}}(a.meta_json),c=Number(b.requestCapturedBytes||0),d=Number(b.requestTotalBytes||c||0),e=Number(b.responseCapturedBytes||0),f=Number(b.responseTotalBytes||e||0);return{id:String(b.auditEventId||a.id),timestamp:function(a){if(a instanceof Date)return a.toISOString();let b=String(a||"").trim();if(!b)return new Date().toISOString();let c=b.replace(" ","T"),d=new Date(/(?:Z|[+-]\d{2}:?\d{2})$/i.test(c)?c:`${c}Z`);return Number.isNaN(d.getTime())?new Date().toISOString():d.toISOString()}(a.created_at),protocol:String(b.protocol||"http/1.1"),client:{ip:a.client_ip||"",port:m(a.client_port),userAgent:a.client_user_agent||""},provider:a.provider||"other",host:b.host||a.client_host||a.source_host||"",port:Number(b.port||443),method:b.method||"REQUEST",path:b.path||a.endpoint||"",model:a.model||null,status:m(a.status_code),durationMs:Number(b.durationMs||0),error:a.error_text||null,request:{headers:{},body:a.prompt_text||"",capturedBytes:c,totalBytes:d,wireSha256:b.requestWireSha256||null,truncated:!0===b.requestTruncated,previewOnly:!0},response:{headers:{},body:a.response_text||"",capturedBytes:e,totalBytes:f,wireSha256:b.responseWireSha256||null,truncated:!0===b.responseTruncated,previewOnly:!0},persistenceSource:"mysql"}}(b),d=a.id,e=String(b.stage||"");if(e===g){let b=c.get(d);(!b||n(a.timestamp)>=n(b.timestamp))&&c.set(d,a);continue}let f=c.get(d);f||(f={...a,request:{...a.request,body:""},response:{...a.response,body:""}},c.set(d,f)),n(a.timestamp)>n(f.timestamp)&&(f.timestamp=a.timestamp),!f.model&&a.model&&(f.model=a.model),!f.host&&a.host&&(f.host=a.host),!f.path&&a.path&&(f.path=a.path),e===h?f.request=a.request:e===i&&(f.response=a.response,f.status=a.status,f.error=a.error)}return[...c.values()].sort((a,b)=>n(b.timestamp)-n(a.timestamp)).slice(0,b)}(o||[],b),available:!0,reason:null,error:null};return c.cache={expiresAt:d+3e3,limit:b,result:p},p}catch(e){let a={events:[],available:!1,reason:null,error:e?.message||String(e)};return c.cache={expiresAt:d+3e3,limit:b,result:a},a}}var p=c(49083);let q="nodejs",r="force-dynamic",s=0,t={"Cache-Control":"no-store"};async function u(){let{response:a}=await (0,e.hH)();return a}function v(a){let b=Date.parse(a?.timestamp||0);return Number.isFinite(b)?b:0}async function w(){let a=await (0,p.runSelfTest)();if(a.ok)return{...a,attempts:1,recoveredAfterRetry:!1};await new Promise(a=>setTimeout(a,250));let b=await (0,p.runSelfTest)();return{...b,attempts:2,recoveredAfterRetry:!0===b.ok,firstAttempt:{passed:a.passed,total:a.total,durationMs:a.durationMs,failed:(a?.checks||[]).filter(a=>!a.ok).map(a=>({name:a.name,detail:a.detail||""}))}}}async function x(a){let b=await u();if(b)return b;try{let{searchParams:b}=new URL(a.url),c=Math.max(1,Math.min(500,Number(b.get("limit"))||50)),e=await (0,p.getSnapshot)(c),f=e.events||[],g=await o(c),h=function(a,...b){let c=new Map;for(let a of b)for(let b of a||[]){if(!b)continue;let a=String(b.id||`${b.timestamp||""}:${b.host||""}:${b.path||""}`),d=c.get(a);(!d||v(b)>v(d))&&c.set(a,b)}return[...c.values()].sort((a,b)=>v(b)-v(a)).slice(0,a)}(c,f,g.events),i=e.status?.auditStore||{},j={...e.status,auditStore:{...i,recentRead:{localCount:f.length,mysqlCount:g.events?.length||0,mergedCount:h.length,mysqlAvailable:!0===g.available,mysqlCached:!0===g.cached,mysqlReason:g.reason||null,mysqlError:g.error||null}}};return d.NextResponse.json({success:!0,...e,status:j,events:h},{headers:t})}catch(a){return d.NextResponse.json({error:a.message||"Failed to read Audit Proxy state"},{status:500,headers:t})}}async function y(a){let b=await u();if(b)return b;try{let b=await a.json(),c=(0,p.updateConfig)(b?.config||b||{});return d.NextResponse.json({success:!0,config:c},{headers:t})}catch(b){let a=/Stop or restart/.test(b.message||"")?409:400;return d.NextResponse.json({error:b.message||"Failed to save Audit Proxy configuration"},{status:a,headers:t})}}async function z(a){let b=await u();if(b)return b;try{let b=await a.json().catch(()=>({})),c=String(b?.action||"").trim().toLowerCase();if("start"===c)return d.NextResponse.json({success:!0,status:await (0,p.startProxy)(b.config||null)},{headers:t});if("stop"===c)return d.NextResponse.json({success:!0,status:await (0,p.stopProxy)()},{headers:t});if("restart"===c)return d.NextResponse.json({success:!0,status:await (0,p.restartProxy)(b.config||null)},{headers:t});if("save-client-host"===c){let a=(0,p.updateClientProxyHost)(b.clientProxyHost);return d.NextResponse.json({success:!0,config:a},{headers:t})}if("save-ip-filter"===c){let a=await (0,p.updateClientIpFilter)({enabled:!0===b.enabled,allowedClientIps:b.allowedClientIps});return d.NextResponse.json({success:!0,...a},{headers:t})}if("test"===c){let a=await w();return d.NextResponse.json({success:!0,test:a},{headers:t})}if("clear-logs"===c)return await (0,p.clearAudit)(),d.NextResponse.json({success:!0},{headers:t});return d.NextResponse.json({error:"Unsupported Audit Proxy action"},{status:400,headers:t})}catch(c){let a=c.message||"Audit Proxy action failed",b=/Invalid client IP|Invalid CIDR|requires at least one|not allowed|Invalid CONNECT/.test(a)?400:500;return d.NextResponse.json({error:a},{status:b,headers:t})}}},87550:a=>{a.exports=require("better-sqlite3")},90173:(a,b,c)=>{let d=c(29021),e=c(33873),f=c(4984),g=c(55511),{AUDIT_LOG_PATH:h,AUDIT_LOG_DIR:i,ensureAuditDir:j,loadConfig:k}=c(43096),{redactObject:l,scrubString:m}=c(48350),n="audit-proxy",o="client",p="provider_response",q={expiresAt:0,config:null},r=null,s=null,t="",u=Promise.resolve(),v=Promise.resolve(),w=0,x=null,y=new Map,z={queue:[],workers:new Set,activeWorkers:0,clearing:!1,enqueued:0,written:0,dropped:0,failed:0,mysqlWritten:0,mysqlFailed:0,lastError:null,lastWrittenAt:null};function A(a){let b=Date.now();b-w<6e4||(w=b,console.warn(`[AuditProxy][PromptDB] ${a}`))}function B(a){z.lastError=String(a||"Audit store failure"),console.warn(`[AuditProxy][Store] ${z.lastError}`)}async function C(){let a=Date.now();if(q.expiresAt>a)return q.config;r||(r=Promise.resolve().then(c.bind(c,45903)));let b=await r,d=await b.getPromptLogDbConfig();return q={expiresAt:a+5e3,config:d},d}async function D(a){let b=g.createHash("sha256").update(JSON.stringify({host:a.host,port:Number(a.port||3306),database:a.database,username:a.username,password:a.password,ssl:!!a.ssl})).digest("hex");if(s&&t===b)return s;let d=u.then(async()=>{if(s&&t===b)return s;if(s){try{await s.end()}catch{}s=null,t=""}let d=await c.e(8491).then(c.t.bind(c,38491,19)),e=(d.default||d).createPool({host:a.host,port:Number(a.port||3306),database:a.database,user:a.username,password:a.password,ssl:a.ssl?{rejectUnauthorized:!0}:void 0,connectTimeout:3e3,waitForConnections:!0,connectionLimit:4,maxIdle:4,idleTimeout:6e4,queueLimit:100,enableKeepAlive:!0,keepAliveInitialDelay:3e4});return s=e,t=b,e});return u=d.then(()=>void 0,()=>void 0),d}function E(a){let b=a?new Date(a):new Date;return(Number.isNaN(b.getTime())?new Date:b).toISOString().replace("T"," ").replace("Z","")}function F(a){if("string"!=typeof a)return a;let b=a.trim();if(!b||!b.startsWith("{")&&!b.startsWith("["))return a;try{return JSON.parse(b)}catch{return a}}function G(a,b=0,c=[]){if(null==a||b>12||c.join("\n").length>=2e5)return c;if("string"==typeof a)return a.trim()&&c.push(a.trim()),c;if(Array.isArray(a)){for(let d of a)G(d,b+1,c);return c}if("object"!=typeof a)return c;for(let[d,e]of Object.entries(a)){let a=d.toLowerCase();["content","text","prompt","input","message","output_text"].includes(a)?G(e,b+1,c):b<8&&["messages","contents","parts","body","request","payload","response","choices","output","item","items"].includes(a)&&G(e,b+1,c)}return c}async function H(a,b,c,d){if(!c)return null;let e=g.createHash("sha256").update(c).digest("hex"),f=Buffer.byteLength(String(c||""),"utf8");return await a.query(`INSERT INTO prompt_log_payloads (
|
|
28
29
|
payload_hash, created_at, last_seen_at, content_type, payload_size_bytes, ref_count, payload_json
|
|
29
30
|
) VALUES (?, ?, ?, ?, ?, 1, CAST(? AS JSON))
|
|
30
31
|
ON DUPLICATE KEY UPDATE
|
|
@@ -34,18 +35,18 @@ Connection: close\r
|
|
|
34
35
|
WHEN content_type = VALUES(content_type) THEN content_type
|
|
35
36
|
WHEN content_type IS NULL OR content_type = '' THEN VALUES(content_type)
|
|
36
37
|
ELSE content_type
|
|
37
|
-
END`,[e,b,b,d,f,c]),{payloadHash:e,payloadSizeBytes:f}}async function
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
`,c=Buffer.byteLength(b),e=await
|
|
47
|
-
`)}catch{}await new Promise((a,b)=>{e.end(a),e.once("error",b)}),await d.promises.rename(b,h)}async function
|
|
38
|
+
END`,[e,b,b,d,f,c]),{payloadHash:e,payloadSizeBytes:f}}async function I(a,b){await a.query(`INSERT INTO prompt_logs (
|
|
39
|
+
id, created_at, session_id, source_format, target_format, model,
|
|
40
|
+
endpoint, stage, provider_url, provider, account_name, connection_id, display_model,
|
|
41
|
+
client_ip, client_port, client_user_agent, client_host,
|
|
42
|
+
source_tool, source_tool_label, source_host, content_mode, payload_hash, payload_size_bytes,
|
|
43
|
+
response_payload_hash, response_payload_size_bytes,
|
|
44
|
+
prompt_text, full_request_json,
|
|
45
|
+
response_text, status_code, error_text, meta_json
|
|
46
|
+
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, CAST(? AS JSON), ?, ?, ?, CAST(? AS JSON))`,[b.id,b.createdAt,b.sessionId,b.sourceFormat,b.targetFormat,b.model,b.endpoint,b.stage,b.providerUrl,b.provider,b.accountName,b.connectionId,b.displayModel,b.clientIp,b.clientPort,b.clientUserAgent,b.clientHost,b.sourceTool,b.sourceToolLabel,b.sourceHost,b.contentMode,b.payloadHash,b.payloadSizeBytes,b.responsePayloadHash,b.responsePayloadSizeBytes,b.promptText,b.fullRequestJson,b.responseText,b.statusCode,b.errorText,JSON.stringify(b.meta||{})])}async function J(a){let b=null;try{var c;let d,e,f,h,i=await C();if(!i?.enabled)return{written:!1,disabled:!0};if("mysql"!==String(i.type||"").toLowerCase())return A(`Audit mirroring requires MySQL; current type is ${i.type||"unknown"}`),{written:!1,unsupported:!0};let j=function(a){try{let b=JSON.parse(JSON.stringify(a??null)),c=l(b);return JSON.parse(m(JSON.stringify(c)))}catch{return m(String(a??""))}}(a),{requestPayload:k,responsePayload:q}=(d=j.request||{},e=j.response||{},{requestPayload:{timestamp:j.timestamp,protocol:j.protocol||"http/1.1",method:j.method,endpoint:j.path,headers:d.headers||{},body:F(d.body),capturedBytes:Number(d.capturedBytes||0),totalBytes:Number(d.totalBytes||0),wireSha256:d.wireSha256||null,truncated:!0===d.truncated},responsePayload:{timestamp:j.timestamp,protocol:j.protocol||"http/1.1",status:j.status,headers:e.headers||{},body:F(e.body),capturedBytes:Number(e.capturedBytes||0),totalBytes:Number(e.totalBytes||0),wireSha256:e.wireSha256||null,truncated:!0===e.truncated}}),r=JSON.stringify(k),s=JSON.stringify(q),t=Math.max(0,Number(j.durationMs||0)),u=new Date(j.timestamp||Date.now()),v=Number.isNaN(u.getTime())?new Date:u,w=new Date(v.getTime()-t),x=E(w),y=E(v),z=(c=j.client?.userAgent,(f=String(c||"").toLowerCase()).includes("claude")?{tool:"claude-code",label:"Claude Code"}:f.includes("codex")?{tool:"codex",label:"Codex"}:{tool:"audit-proxy",label:"Enterprise AI Audit Proxy"}),B=String(j.provider||"other"),J=j.model?String(j.model):null,K=String(j.host||""),L=Number(j.port||443),M=String(j.path||""),N=K?`https://${K}${443!==L?`:${L}`:""}${M}`:null,O=await D(i);b=await O.getConnection(),await b.beginTransaction();let P=await H(b,x,r,"request_json"),Q=await H(b,y,s,"response_json"),R={source:n,auditEventId:j.id||null,protocol:j.protocol||"http/1.1",host:K||null,port:L,method:j.method||null,path:M||null,durationMs:t,requestCapturedBytes:Number(j.request?.capturedBytes||0),requestTotalBytes:Number(j.request?.totalBytes||0),requestWireSha256:j.request?.wireSha256||null,requestTruncated:j.request?.truncated===!0,responseCapturedBytes:Number(j.response?.capturedBytes||0),responseTotalBytes:Number(j.response?.totalBytes||0),responseWireSha256:j.response?.wireSha256||null,responseTruncated:j.response?.truncated===!0,payloadHash:P?.payloadHash||null,payloadSizeBytes:P?.payloadSizeBytes||0,payloadStorage:P?"prompt_log_payloads":null,responsePayloadHash:Q?.payloadHash||null,responsePayloadSizeBytes:Q?.payloadSizeBytes||0,responsePayloadStorage:Q?"prompt_log_payloads":null},S=String(j.id||g.randomUUID()),T={sessionId:`audit-${S}`,sourceFormat:B,targetFormat:B,model:J,endpoint:M||null,providerUrl:N,provider:B,accountName:null,connectionId:null,displayModel:J?`${B}/${J}`:null,clientIp:j.client?.ip||null,clientPort:j.client?.port!=null?String(j.client.port):null,clientUserAgent:j.client?.userAgent||null,clientHost:K||null,sourceTool:z.tool,sourceToolLabel:z.label,sourceHost:K||null};return await I(b,{...T,id:`${S}:request`,createdAt:x,stage:o,contentMode:j.request?.body?"raw_json_preview":"metadata_only",payloadHash:P?.payloadHash||null,payloadSizeBytes:P?.payloadSizeBytes||0,responsePayloadHash:null,responsePayloadSizeBytes:0,promptText:(h=G(k?.body??k??{}).join("\n\n"))?h.slice(0,2e3):null,fullRequestJson:null,responseText:null,statusCode:null,errorText:null,meta:{...R,auditDirection:"request"}}),await I(b,{...T,id:`${S}:response`,createdAt:y,stage:p,contentMode:j.response?.body?"raw_json_preview":"metadata_only",payloadHash:null,payloadSizeBytes:0,responsePayloadHash:Q?.payloadHash||null,responsePayloadSizeBytes:Q?.payloadSizeBytes||0,promptText:null,fullRequestJson:null,responseText:function(a){let b=a?.body;if("string"==typeof b)return b.slice(0,2e3)||null;let c=G(b??a??{}).join("\n\n");return c?c.slice(0,2e3):null}(q),statusCode:null!=j.status?Number(j.status):null,errorText:j.error||null,meta:{...R,auditDirection:"response"}}),await b.commit(),{written:!0,rowsWritten:2}}catch(a){if(b)try{await b.rollback()}catch{}return A(`Failed to mirror audit event to prompt_logs: ${a.message||a}`),{written:!1,error:a.message||String(a)}}finally{try{b?.release()}catch{}}}async function K(a,b){let c;j();let f=(Number.isNaN((c=a?new Date(a):new Date).getTime())?new Date:c).toISOString().slice(0,10),g=y.get(f);if(!g){let a=await d.promises.readdir(i).catch(()=>[]),b=RegExp(`^audit-${f.replace(/-/g,"\\-")}(?:\\.(\\d+))?\\.jsonl$`),c=0;for(let d of a){let a=d.match(b);a&&(c=Math.max(c,Number(a[1]||0)))}let h=e.join(i,`audit-${f}${c?`.${c}`:""}.jsonl`),j=await d.promises.stat(h).catch(()=>null);g={segment:c,filePath:h,size:j?.size||0},y.set(f,g)}return g.size>0&&g.size+b>0x8000000&&(g={segment:g.segment+1,filePath:e.join(i,`audit-${f}.${g.segment+1}.jsonl`),size:0},y.set(f,g)),g}async function L(a){let b=`${JSON.stringify(a)}
|
|
47
|
+
`,c=Buffer.byteLength(b),e=await K(a.timestamp,c);return await d.promises.appendFile(e.filePath,b,{encoding:"utf8",mode:384}),e.size+=c,e.filePath}async function M(a){try{let b,c=await a.finalize(),d=(v=(b=v.then(()=>L(c))).then(()=>void 0,()=>void 0),b).catch(a=>(B(`Local JSONL write failed: ${a.message||a}`),null)),e=J(c),[,f]=await Promise.all([d,e]);f?.written?z.mysqlWritten+=1:f?.error&&(z.mysqlFailed+=1),z.written+=1,z.lastWrittenAt=new Date().toISOString()}catch(a){z.failed+=1,B(a.message||a)}}async function N(){z.activeWorkers+=1;try{for(;!z.clearing;){let a=z.queue.shift();if(!a)break;await M(a)}}finally{z.activeWorkers=Math.max(0,z.activeWorkers-1)}}function O(){if(!z.clearing)for(;z.queue.length&&z.activeWorkers<4;){let a;a=N().finally(()=>{z.workers.delete(a),!z.clearing&&z.queue.length&&setImmediate(O)}),z.workers.add(a)}}function P(a){return"function"==typeof a&&(z.queue.length>=1e3?(z.dropped+=1,B(`Audit queue full; dropped event ${z.dropped}`),!1):(z.queue.push({finalize:a,enqueuedAt:Date.now()}),z.enqueued+=1,z.clearing||setImmediate(O),!0))}async function Q(){j();let a=(await d.promises.readdir(i).catch(()=>[])).filter(a=>/^audit-\d{4}-\d{2}-\d{2}(?:\.\d+)?\.jsonl$/.test(a)).sort((a,b)=>b.localeCompare(a,void 0,{numeric:!0})).map(a=>e.join(i,a));return d.existsSync(h)&&a.push(h),a}async function R(a,b){let c=await d.promises.stat(a).catch(()=>null);if(!c?.size||b<=0)return[];let e=await d.promises.open(a,"r");try{let a=c.size,d=Buffer.alloc(0),f=0;for(;a>0&&d.length<0x4000000&&f<=b;){let b=Math.min(262144,a,0x4000000-d.length);a-=b;let c=Buffer.alloc(b);await e.read(c,0,b,a),d=Buffer.concat([c,d]),f+=c.reduce((a,b)=>a+ +(10===b),0)}let g=d.toString("utf8");if(a>0){let a=g.indexOf("\n");g=a>=0?g.slice(a+1):""}return g.split("\n").filter(Boolean).slice(-b).reverse().map(a=>{try{return JSON.parse(a)}catch{return null}}).filter(Boolean)}finally{await e.close()}}async function S(a=50){let b=Math.max(1,Math.min(1e3,Number(a)||50)),c=[];for(let a of(await Q())){if(c.length>=b)break;let d=await R(a,b-c.length);c.push(...d)}return c.slice(0,b)}async function T(a){if(!d.existsSync(h))return;let b=`${h}.tmp`,c=d.createReadStream(h,{encoding:"utf8"}),e=d.createWriteStream(b,{encoding:"utf8",mode:384});for await(let b of f.createInterface({input:c,crlfDelay:1/0}))if(b)try{let c=JSON.parse(b);Date.parse(c.timestamp||0)>=a&&e.write(`${b}
|
|
48
|
+
`)}catch{}await new Promise((a,b)=>{e.end(a),e.once("error",b)}),await d.promises.rename(b,h)}async function U(){j();let a=k(),b=Date.now()-24*a.retentionDays*36e5;for(let a of(await d.promises.readdir(i).catch(()=>[]))){if(!/^audit-\d{4}-\d{2}-\d{2}(?:\.\d+)?\.jsonl$/.test(a))continue;let c=e.join(i,a),f=await d.promises.stat(c).catch(()=>null);if(f&&f.mtimeMs<b)for(let[a,b]of(await d.promises.unlink(c).catch(()=>{}),y.entries()))b.filePath===c&&y.delete(a)}await T(b).catch(a=>B(`Legacy log prune failed: ${a.message||a}`))}async function V(a=5e3){let b=Date.now()+Math.max(0,Number(a)||0);for(;(z.queue.length||z.activeWorkers)&&Date.now()<b;){O();let a=[...z.workers];a.length?await Promise.race([Promise.allSettled(a),new Promise(a=>setTimeout(a,50))]):await new Promise(a=>setTimeout(a,10))}return 0===z.queue.length&&0===z.activeWorkers}async function W(){let a=null;try{let b=await C();if(!b?.enabled||"mysql"!==String(b.type||"").toLowerCase())return;let c=await D(b);a=await c.getConnection(),await a.beginTransaction();let d="(stage = ? OR (session_id LIKE 'audit-%' AND stage IN (?, ?)))",[e]=await a.query(`SELECT payload_hash, response_payload_hash FROM prompt_logs WHERE ${d}`,[n,o,p]);await a.query(`DELETE FROM prompt_logs WHERE ${d}`,[n,o,p]);let f=new Map;for(let a of e||[])for(let b of[a.payload_hash,a.response_payload_hash]){let a=String(b||"").trim();a&&f.set(a,(f.get(a)||0)+1)}for(let[b,c]of f.entries())await a.query("UPDATE prompt_log_payloads SET ref_count = GREATEST(ref_count - ?, 0) WHERE payload_hash = ?",[c,b]),await a.query(`DELETE p FROM prompt_log_payloads p
|
|
48
49
|
WHERE p.payload_hash = ?
|
|
49
50
|
AND p.last_seen_at < UTC_TIMESTAMP(3) - INTERVAL 5 MINUTE
|
|
50
51
|
AND NOT EXISTS (SELECT 1 FROM prompt_logs r WHERE r.payload_hash = p.payload_hash)
|
|
51
|
-
AND NOT EXISTS (SELECT 1 FROM prompt_logs r WHERE r.response_payload_hash = p.payload_hash)`,[b]);await a.commit()}catch(b){if(a)try{await a.rollback()}catch{}
|
|
52
|
+
AND NOT EXISTS (SELECT 1 FROM prompt_logs r WHERE r.response_payload_hash = p.payload_hash)`,[b]);await a.commit()}catch(b){if(a)try{await a.rollback()}catch{}A(`Failed to clear mirrored audit rows: ${b.message||b}`)}finally{try{a?.release()}catch{}}}a.exports={appendAudit:function(a){return P(async()=>a)},enqueueAuditJob:P,readRecent:S,clearAudit:async function a(){z.clearing=!0,z.queue.length=0,z.workers.size&&await Promise.allSettled([...z.workers]),j();let a=await d.promises.readdir(i).catch(()=>[]);await Promise.all(a.filter(a=>a.endsWith(".jsonl")).map(a=>d.promises.unlink(e.join(i,a)).catch(()=>{}))),await d.promises.writeFile(h,"",{mode:384}).catch(()=>{}),y.clear(),await W(),z.clearing=!1,z.queue.length&&setImmediate(O)},pruneExpired:U,startAuditMaintenance:function(){x||(x=setInterval(()=>void U(),36e5),x.unref?.())},stopAuditMaintenance:function(){x&&clearInterval(x),x=null},flushAuditQueue:V,getAuditStoreStats:function(){return{queueDepth:z.queue.length,queueLimit:1e3,workerRunning:z.activeWorkers>0,workerConcurrency:4,activeWorkers:z.activeWorkers,mysqlPoolConnections:4,enqueued:z.enqueued,written:z.written,dropped:z.dropped,failed:z.failed,mysqlWritten:z.mysqlWritten,mysqlFailed:z.mysqlFailed,lastError:z.lastError,lastWrittenAt:z.lastWrittenAt,logDirectory:i}},appendPromptLog:J}},91645:a=>{a.exports=require("net")},94735:a=>{a.exports=require("events")}};var b=require("../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,5592,5573,4433,7669,402,3767],()=>b(b.s=3697));module.exports=c})();
|