@jheavenknows/bluerouter 4.0.31 → 4.0.32
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/analytics/page.js.nft.json +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.js.nft.json +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/basic-chat/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/prompt-logs/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/prompt-logs/page.js.nft.json +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.js.nft.json +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.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/_global-error/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/_global-error.html +1 -1
- package/app/.next-cli-build/server/app/_global-error.rsc +1 -1
- package/app/.next-cli-build/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/_not-found/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/_not-found.html +1 -1
- package/app/.next-cli-build/server/app/_not-found.rsc +3 -3
- package/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/_not-found.segments/_index.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/_not-found.segments/_tree.segment.rsc +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/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/claude-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/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/analytics/route.js +2 -33
- 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/prompt-logs/[id]/route.js +1 -32
- 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 +1 -32
- 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 +1 -32
- 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/health/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/init/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/keys/[id]/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/locale/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/alias/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/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/iflow/cookie/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/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/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/models/route.js.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/kilo/free-models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/suggested-models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/test-batch/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/validate/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/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/settings/database/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/settings/proxy-test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/settings/require-login/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/shutdown/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tags/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/translator/console-logs/route.js +1 -1
- package/app/.next-cli-build/server/app/api/translator/console-logs/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js +1 -1
- package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/translator/load/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/translator/save/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/translator/send/route.js.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/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/audio/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/embeddings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/images/generations/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/messages/count_tokens/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/messages/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/models/[kind]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/models/info/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/responses/compact/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/responses/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/search/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/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/restart/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/version/route.js +1 -1
- package/app/.next-cli-build/server/app/api/version/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/version/shutdown/route.js +1 -1
- package/app/.next-cli-build/server/app/api/version/shutdown/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/version/update/route.js +1 -1
- package/app/.next-cli-build/server/app/api/version/update/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/callback/page.js.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 +3 -3
- package/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/callback.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/callback.segments/_index.segment.rsc +3 -3
- 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 +1 -1
- package/app/.next-cli-build/server/app/callback.segments/callback.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/analytics.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/analytics.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/analytics.segments/!KGRhc2hib2FyZCk/dashboard/analytics/__PAGE__.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/analytics.segments/!KGRhc2hib2FyZCk/dashboard/analytics.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/analytics.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/analytics.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/analytics.segments/_full.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/analytics.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/analytics.segments/_index.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/analytics.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/api-keys.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/api-keys.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/api-keys.segments/!KGRhc2hib2FyZCk/dashboard/api-keys/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/api-keys.segments/!KGRhc2hib2FyZCk/dashboard/api-keys.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/api-keys.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/api-keys.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/api-keys.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/api-keys.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/api-keys.segments/_index.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/api-keys.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/basic-chat.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/basic-chat.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_index.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/cli-tools.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/cli-tools.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_index.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/combos.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/combos.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/combos.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/combos.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/combos.segments/_index.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/combos.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/endpoint.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/endpoint.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_index.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_index.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/mitm.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/mitm.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/mitm.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/mitm.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/mitm.segments/_index.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/mitm.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/profile.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/profile.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/profile.segments/_full.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/profile.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/profile.segments/_index.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/profile.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/prompt-logs.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/prompt-logs.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/!KGRhc2hib2FyZCk/dashboard/prompt-logs/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/!KGRhc2hib2FyZCk/dashboard/prompt-logs.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/_index.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/provider-health.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/provider-health.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/provider-health.segments/!KGRhc2hib2FyZCk/dashboard/provider-health/__PAGE__.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/provider-health.segments/!KGRhc2hib2FyZCk/dashboard/provider-health.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/provider-health.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/provider-health.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/provider-health.segments/_full.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/provider-health.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/provider-health.segments/_index.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/provider-health.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/providers/new.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/providers/new.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_index.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/providers.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/providers.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/providers.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/providers.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/providers.segments/_index.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/providers.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_index.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/quota.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/quota.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/quota.segments/_full.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/quota.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/quota.segments/_index.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/quota.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_index.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/skills.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/skills.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/skills.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/skills.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/skills.segments/_index.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/skills.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/translator.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/translator.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/translator.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/translator.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/translator.segments/_index.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/translator.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/usage.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/usage.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/usage.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/usage.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/usage.segments/_index.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/usage.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard.html +1 -1
- package/app/.next-cli-build/server/app/dashboard.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard.segments/_index.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/favicon.ico/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/index.html +1 -1
- package/app/.next-cli-build/server/app/index.rsc +3 -3
- package/app/.next-cli-build/server/app/index.segments/__PAGE__.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/index.segments/_full.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/index.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/index.segments/_index.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/index.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/landing/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/landing/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/landing.html +1 -1
- package/app/.next-cli-build/server/app/landing.rsc +3 -3
- package/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/landing.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/landing.segments/_index.segment.rsc +3 -3
- 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 +1 -1
- package/app/.next-cli-build/server/app/landing.segments/landing.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/login/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/login/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/login.html +1 -1
- package/app/.next-cli-build/server/app/login.rsc +4 -4
- package/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/login.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/login.segments/_index.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/login.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/login.segments/login.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/manifest.webmanifest/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app-paths-manifest.json +7 -7
- package/app/.next-cli-build/server/chunks/2338.js +1 -1
- package/app/.next-cli-build/server/chunks/3110.js +1 -1
- package/app/.next-cli-build/server/chunks/402.js +17 -2
- package/app/.next-cli-build/server/chunks/4746.js +1 -1
- package/app/.next-cli-build/server/chunks/5199.js +45 -21
- package/app/.next-cli-build/server/chunks/6050.js +35 -0
- package/app/.next-cli-build/server/chunks/7130.js +1 -1
- package/app/.next-cli-build/server/chunks/7153.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/{620-42419903e6e82cf3.js → 620-3f413b2ac3f99793.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/mitm/page-a189bf76aadc8663.js +1 -0
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/prompt-logs/{page-c7527ff0f6f0aa99.js → page-e19a2953d6caeb72.js} +1 -1
- package/app/cli/.build-home/AppData/Roaming/bluerouter/db/data.sqlite-shm +0 -0
- package/app/cli/.build-home/AppData/Roaming/bluerouter/db/data.sqlite-wal +0 -0
- package/app/package.json +1 -1
- package/package.json +1 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/mitm/page-54d1a2f86248c78f.js +0 -1
- /package/app/.next-cli-build/static/{9rqmgR0QkkYpP56lrddDi → SRjUoDfwGXzeOEEyZ2vMG}/_buildManifest.js +0 -0
- /package/app/.next-cli-build/static/{9rqmgR0QkkYpP56lrddDi → SRjUoDfwGXzeOEEyZ2vMG}/_ssgManifest.js +0 -0
- /package/app/cli/.build-home/AppData/Roaming/bluerouter/db/backups/{upgrade-4.0.14-to-4.0.27-4.0.27-20260619-221058 → upgrade-4.0.30-to-4.0.31-4.0.31-20260621-102809}/data.sqlite +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";exports.id=5199,exports.ids=[5199],exports.modules={47370:(a,b,c)=>{c.d(b,{BY:()=>d.BY,E5:()=>d.E5,SL:()=>d.SL,Zx:()=>d.Zx,_V:()=>d._V,j$:()=>d.j$,ox:()=>d.ox,rg:()=>d.rg,sZ:()=>d.sZ,uw:()=>d.uw});var d=c(56403);c(99703)},71336:(a,b,c)=>{c.d(b,{q7:()=>
|
|
1
|
+
"use strict";exports.id=5199,exports.ids=[5199],exports.modules={47370:(a,b,c)=>{c.d(b,{BY:()=>d.BY,E5:()=>d.E5,SL:()=>d.SL,Zx:()=>d.Zx,_V:()=>d._V,j$:()=>d.j$,ox:()=>d.ox,rg:()=>d.rg,sZ:()=>d.sZ,uw:()=>d.uw});var d=c(56403);c(99703)},71336:(a,b,c)=>{c.d(b,{q7:()=>S});let d="u">typeof process&&process.versions?.node&&!0,e="u">typeof process&&process.env||{},f="false"!==e.ENABLE_REQUEST_LOGS,g="[promptlogs disabled on this combo]",h=new Set(["inherit","enabled","disabled"]),i=Math.max(200,Number(e.PROMPT_LOG_PROMPT_PREVIEW_CHARS||2e3)),j=Math.max(200,Number(e.PROMPT_LOG_RESPONSE_PREVIEW_CHARS||2e3)),k=Math.max(1e4,Number(e.PROMPT_LOG_EXTRACT_LIMIT_CHARS||5e5));function l(a){let b=String(a||"inherit").trim().toLowerCase();return h.has(b)?b:"inherit"}let m=null,n=null,o=null,p=null,q={expiresAt:0,config:null},r=new Set;async function s(){if(d&&f&&!m)try{m=await Promise.resolve().then(c.t.bind(c,29021,23)),n=await Promise.resolve().then(c.t.bind(c,33873,23)),o=await Promise.resolve().then(c.t.bind(c,55511,23)),p=e.REQUEST_LOG_DIR||(e.DATA_DIR?n.join(e.DATA_DIR,"logs","requests"):null)||n.join("u">typeof process&&process.cwd?process.cwd():".","logs")}catch{}}function t(a,b){r.has(a)||(r.add(a),console.log(b))}function u(a){return Array.isArray(a)?a[0]||"":a||""}function v(a={}){let b={};for(let[c,d]of Object.entries(a||{}))b[c.toLowerCase()]=d;return b}function w(a={}){let b=v(a);return{client_ip:String(u(b["x-9r-client-ip"])||u(b["x-forwarded-for"])||"").split(",")[0].trim().replace(/^::ffff:/,"").replace(/^::1$/,"127.0.0.1"),client_port:String(u(b["x-9r-client-port"])||""),client_user_agent:String(u(b["x-9r-client-user-agent"])||u(b["user-agent"])||""),client_host:String(u(b["x-9r-client-host"])||u(b.host)||"")}}function x(a={}){let b=v(a);return{source_tool:String(u(b["x-9r-source-tool"])||""),source_tool_label:String(u(b["x-9r-source-tool-label"])||""),source_host:String(u(b["x-9r-source-host"])||u(b.host)||"")}}function y(a={},b={}){return{...a,...Object.fromEntries(Object.entries(b||{}).filter(([,a])=>null!=a&&""!==String(a)))}}async function z(a){try{let b=await Promise.resolve().then(c.t.bind(c,87550,23)),d=new(b.default||b)(a);return d.pragma("journal_mode = WAL"),d.pragma("busy_timeout = 5000"),{kind:"better-sqlite3",db:d,get:(a,b=[])=>d.prepare(a).get(...b),exec(a){d.exec(a)},run:(a,b=[])=>d.prepare(a).run(...b),close(){d.close()}}}catch(d){let b=new(await Promise.resolve().then(c.t.bind(c,80099,23))).DatabaseSync(a);return b.exec("PRAGMA journal_mode = WAL"),b.exec("PRAGMA busy_timeout = 5000"),{kind:"node:sqlite",db:b,get:(a,c=[])=>b.prepare(a).get(...c),exec(a){b.exec(a)},run:(a,c=[])=>b.prepare(a).run(...c),close(){b.close()}}}}async function A(){if(await s(),!m||!n)return null;let a=Date.now();if(q.config&&q.expiresAt>a)return q.config;let b=null;try{let a=n?e.PROMPT_LOG_CONFIG_DB?e.PROMPT_LOG_CONFIG_DB:e.DATA_DIR?n.join(e.DATA_DIR,"db","data.sqlite"):null:null;if(a&&m.existsSync(a)){let c=await z(a);try{let a=c.get("SELECT data FROM settings WHERE id = 1");a?.data&&(b=JSON.parse(a.data).promptLogDb||null)}finally{c.close()}}}catch(a){t("config-read",`[PromptDB] Failed to read config: ${a.message}`)}return b||"true"!==e.PROMPT_LOG_DB_ENABLED||(b={enabled:!0,type:"sqlite",sqlitePath:e.PROMPT_LOG_DB||(e.DATA_DIR?n.join(e.DATA_DIR,"logs","promptLogs.sqlite"):""),logClientRequest:!0,logSourceRequest:!0,logTargetRequest:!0,logProviderResponse:"true"===e.PROMPT_LOG_DB_RESPONSE,logErrors:!0}),q={config:b,expiresAt:a+5e3},b}function B(a){return"postgres"===a?`
|
|
2
2
|
CREATE TABLE IF NOT EXISTS prompt_logs (
|
|
3
3
|
id TEXT PRIMARY KEY,
|
|
4
4
|
created_at TIMESTAMPTZ NOT NULL,
|
|
@@ -23,8 +23,11 @@
|
|
|
23
23
|
content_mode TEXT,
|
|
24
24
|
payload_hash TEXT,
|
|
25
25
|
payload_size_bytes BIGINT DEFAULT 0,
|
|
26
|
+
response_payload_hash TEXT,
|
|
27
|
+
response_payload_size_bytes BIGINT DEFAULT 0,
|
|
26
28
|
prompt_text TEXT,
|
|
27
29
|
full_request_json JSONB,
|
|
30
|
+
full_response_json JSONB,
|
|
28
31
|
response_text TEXT,
|
|
29
32
|
status_code INTEGER,
|
|
30
33
|
error_text TEXT,
|
|
@@ -73,6 +76,8 @@
|
|
|
73
76
|
content_mode VARCHAR(32),
|
|
74
77
|
payload_hash CHAR(64),
|
|
75
78
|
payload_size_bytes BIGINT DEFAULT 0,
|
|
79
|
+
response_payload_hash CHAR(64),
|
|
80
|
+
response_payload_size_bytes BIGINT DEFAULT 0,
|
|
76
81
|
prompt_text LONGTEXT,
|
|
77
82
|
full_request_json JSON,
|
|
78
83
|
response_text LONGTEXT,
|
|
@@ -85,7 +90,8 @@
|
|
|
85
90
|
INDEX idx_prompt_logs_session (session_id),
|
|
86
91
|
INDEX idx_prompt_logs_client_ip (client_ip),
|
|
87
92
|
INDEX idx_prompt_logs_source_tool (source_tool),
|
|
88
|
-
INDEX idx_prompt_logs_payload_hash (payload_hash)
|
|
93
|
+
INDEX idx_prompt_logs_payload_hash (payload_hash),
|
|
94
|
+
INDEX idx_prompt_logs_response_payload_hash (response_payload_hash)
|
|
89
95
|
) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
90
96
|
|
|
91
97
|
CREATE TABLE IF NOT EXISTS prompt_log_payloads (
|
|
@@ -124,8 +130,11 @@
|
|
|
124
130
|
content_mode TEXT,
|
|
125
131
|
payload_hash TEXT,
|
|
126
132
|
payload_size_bytes INTEGER DEFAULT 0,
|
|
133
|
+
response_payload_hash TEXT,
|
|
134
|
+
response_payload_size_bytes INTEGER DEFAULT 0,
|
|
127
135
|
prompt_text TEXT,
|
|
128
136
|
full_request_json TEXT,
|
|
137
|
+
full_response_json TEXT,
|
|
129
138
|
response_text TEXT,
|
|
130
139
|
status_code INTEGER,
|
|
131
140
|
error_text TEXT,
|
|
@@ -143,7 +152,7 @@
|
|
|
143
152
|
|
|
144
153
|
CREATE INDEX IF NOT EXISTS idx_prompt_logs_session
|
|
145
154
|
ON prompt_logs(session_id);
|
|
146
|
-
`}async function
|
|
155
|
+
`}async function C(a){a.get;let b=[];try{"better-sqlite3"===a.kind?b=a.db.prepare("PRAGMA table_info(prompt_logs)").all():"node:sqlite"===a.kind&&(b=a.db.prepare("PRAGMA table_info(prompt_logs)").all())}catch{b=[]}let c=new Set(b.map(a=>a.name)),d=(b,d)=>{c.has(b)||a.exec(`ALTER TABLE prompt_logs ADD COLUMN ${b} ${d};`)};d("client_ip","TEXT"),d("client_port","TEXT"),d("client_user_agent","TEXT"),d("client_host","TEXT"),d("source_tool","TEXT"),d("source_tool_label","TEXT"),d("source_host","TEXT"),d("provider","TEXT"),d("account_name","TEXT"),d("connection_id","TEXT"),d("display_model","TEXT"),d("content_mode","TEXT"),d("payload_hash","TEXT"),d("payload_size_bytes","INTEGER DEFAULT 0"),d("response_payload_hash","TEXT"),d("response_payload_size_bytes","INTEGER DEFAULT 0"),d("full_response_json","TEXT"),a.exec("CREATE INDEX IF NOT EXISTS idx_prompt_logs_client_ip ON prompt_logs(client_ip);"),a.exec("CREATE INDEX IF NOT EXISTS idx_prompt_logs_source_tool ON prompt_logs(source_tool);"),a.exec("CREATE INDEX IF NOT EXISTS idx_prompt_logs_response_payload_hash ON prompt_logs(response_payload_hash);")}async function D(a){await a.query(`
|
|
147
156
|
ALTER TABLE prompt_logs ADD COLUMN IF NOT EXISTS client_ip TEXT;
|
|
148
157
|
ALTER TABLE prompt_logs ADD COLUMN IF NOT EXISTS client_port TEXT;
|
|
149
158
|
ALTER TABLE prompt_logs ADD COLUMN IF NOT EXISTS client_user_agent TEXT;
|
|
@@ -158,27 +167,33 @@
|
|
|
158
167
|
ALTER TABLE prompt_logs ADD COLUMN IF NOT EXISTS content_mode TEXT;
|
|
159
168
|
ALTER TABLE prompt_logs ADD COLUMN IF NOT EXISTS payload_hash TEXT;
|
|
160
169
|
ALTER TABLE prompt_logs ADD COLUMN IF NOT EXISTS payload_size_bytes BIGINT DEFAULT 0;
|
|
170
|
+
ALTER TABLE prompt_logs ADD COLUMN IF NOT EXISTS response_payload_hash TEXT;
|
|
171
|
+
ALTER TABLE prompt_logs ADD COLUMN IF NOT EXISTS response_payload_size_bytes BIGINT DEFAULT 0;
|
|
172
|
+
ALTER TABLE prompt_logs ADD COLUMN IF NOT EXISTS full_response_json JSONB;
|
|
161
173
|
|
|
162
174
|
CREATE INDEX IF NOT EXISTS idx_prompt_logs_client_ip
|
|
163
175
|
ON prompt_logs(client_ip);
|
|
164
176
|
|
|
165
177
|
CREATE INDEX IF NOT EXISTS idx_prompt_logs_source_tool
|
|
166
178
|
ON prompt_logs(source_tool);
|
|
167
|
-
|
|
179
|
+
|
|
180
|
+
CREATE INDEX IF NOT EXISTS idx_prompt_logs_response_payload_hash
|
|
181
|
+
ON prompt_logs(response_payload_hash);
|
|
182
|
+
`)}async function E(a,b,c,d){let[e]=await a.query(`
|
|
168
183
|
SELECT 1 AS found
|
|
169
184
|
FROM INFORMATION_SCHEMA.COLUMNS
|
|
170
185
|
WHERE TABLE_SCHEMA = ?
|
|
171
186
|
AND TABLE_NAME = ?
|
|
172
187
|
AND COLUMN_NAME = ?
|
|
173
188
|
LIMIT 1
|
|
174
|
-
`,[b,c,d]);return e.length>0}async function
|
|
189
|
+
`,[b,c,d]);return e.length>0}async function F(a,b,c,d){let[e]=await a.query(`
|
|
175
190
|
SELECT 1 AS found
|
|
176
191
|
FROM INFORMATION_SCHEMA.STATISTICS
|
|
177
192
|
WHERE TABLE_SCHEMA = ?
|
|
178
193
|
AND TABLE_NAME = ?
|
|
179
194
|
AND INDEX_NAME = ?
|
|
180
195
|
LIMIT 1
|
|
181
|
-
`,[b,c,d]);return e.length>0}async function
|
|
196
|
+
`,[b,c,d]);return e.length>0}async function G(a,b){let c=async(c,d)=>{await E(a,b.database,"prompt_logs",c)||await a.query(`ALTER TABLE prompt_logs ADD COLUMN ${c} ${d}`)};await c("client_ip","VARCHAR(64)"),await c("client_port","VARCHAR(32)"),await c("client_user_agent","TEXT"),await c("client_host","TEXT"),await c("source_tool","VARCHAR(80)"),await c("source_tool_label","VARCHAR(120)"),await c("source_host","VARCHAR(255)"),await c("provider","VARCHAR(120)"),await c("account_name","VARCHAR(255)"),await c("connection_id","VARCHAR(120)"),await c("display_model","VARCHAR(512)"),await c("content_mode","VARCHAR(32)"),await c("payload_hash","CHAR(64)"),await c("payload_size_bytes","BIGINT DEFAULT 0"),await c("response_payload_hash","CHAR(64)"),await c("response_payload_size_bytes","BIGINT DEFAULT 0"),await F(a,b.database,"prompt_logs","idx_prompt_logs_payload_hash")||await a.query("CREATE INDEX idx_prompt_logs_payload_hash ON prompt_logs(payload_hash)"),await F(a,b.database,"prompt_logs","idx_prompt_logs_response_payload_hash")||await a.query("CREATE INDEX idx_prompt_logs_response_payload_hash ON prompt_logs(response_payload_hash)"),await a.query(`CREATE TABLE IF NOT EXISTS prompt_log_payloads (
|
|
182
197
|
payload_hash CHAR(64) PRIMARY KEY,
|
|
183
198
|
created_at DATETIME(3) NOT NULL,
|
|
184
199
|
last_seen_at DATETIME(3) NOT NULL,
|
|
@@ -188,55 +203,64 @@
|
|
|
188
203
|
payload_json JSON,
|
|
189
204
|
INDEX idx_prompt_log_payloads_created_at (created_at),
|
|
190
205
|
INDEX idx_prompt_log_payloads_last_seen_at (last_seen_at)
|
|
191
|
-
) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci`),await
|
|
206
|
+
) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci`),await F(a,b.database,"prompt_logs","idx_prompt_logs_client_ip")||await a.query("CREATE INDEX idx_prompt_logs_client_ip ON prompt_logs(client_ip)"),await F(a,b.database,"prompt_logs","idx_prompt_logs_source_tool")||await a.query("CREATE INDEX idx_prompt_logs_source_tool ON prompt_logs(source_tool)")}function H(a){if(null==a)return null;if("string"==typeof a)try{return JSON.parse(a),a}catch{return JSON.stringify(a)}try{return JSON.stringify(a)}catch{return JSON.stringify(String(a))}}function I(a){return Buffer.byteLength(String(a||""),"utf8")}function J(a,b,c=null,d=null){if(b)return JSON.stringify({contentLoggingMode:"disabled",contentRedacted:!0});let e=a.meta&&"object"==typeof a.meta?{...a.meta}:a.meta?{value:a.meta}:{};for(let a of["body","requestBody","responseBody","fullRequestJson","fullResponseJson","payload","request","response"])Object.prototype.hasOwnProperty.call(e,a)&&delete e[a];return e.contentLoggingMode=l(a.contentLoggingMode||a.context?.contentLoggingMode),e.contentMode="raw_json_preview",c?.payloadHash&&(e.payloadHash=c.payloadHash,e.payloadSizeBytes=c.payloadSizeBytes||0,e.payloadStorage="prompt_log_payloads"),d?.payloadHash&&(e.responsePayloadHash=d.payloadHash,e.responsePayloadSizeBytes=d.payloadSizeBytes||0,e.responsePayloadStorage="prompt_log_payloads"),Object.keys(e).length?JSON.stringify(e):null}async function K(a,b,c,d="request_json"){if(!c)return null;let e=c&&o?.createHash?o.createHash("sha256").update(c).digest("hex"):null;if(!e)return null;let f=I(c),g=b.created_at.replace("T"," ").replace("Z","");return await a.query(`INSERT INTO prompt_log_payloads (
|
|
192
207
|
payload_hash, created_at, last_seen_at, content_type, payload_size_bytes, ref_count, payload_json
|
|
193
208
|
) VALUES (?, ?, ?, ?, ?, 1, CAST(? AS JSON))
|
|
194
209
|
ON DUPLICATE KEY UPDATE
|
|
195
210
|
last_seen_at = VALUES(last_seen_at),
|
|
196
|
-
ref_count = ref_count + 1
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
211
|
+
ref_count = ref_count + 1,
|
|
212
|
+
content_type = CASE
|
|
213
|
+
WHEN content_type = VALUES(content_type) THEN content_type
|
|
214
|
+
WHEN content_type IS NULL OR content_type = '' THEN VALUES(content_type)
|
|
215
|
+
ELSE content_type
|
|
216
|
+
END`,[e,g,g,d,f,c]),{payloadHash:e,payloadSizeBytes:f,contentType:d,contentMode:"raw_json_preview"}}function L(a,b=[]){if(null==a)return b;if("string"==typeof a)return a.trim()&&b.push(a.trim()),b;if(Array.isArray(a)){for(let c of a)L(c,b);return b}return"object"==typeof a&&("string"==typeof a.text&&a.text.trim()&&b.push(a.text.trim()),Array.isArray(a.parts)&&L(a.parts,b)),b}function M(a){return(function a(b,c=0,d=[]){if(null==b||c>12||d.join("\n").length>k)return d;let e=0===c?function(a){let b=function(a){if(!a||"object"!=typeof a||Array.isArray(a))return null;let b=a.request&&"object"==typeof a.request?a.request:a;for(let c of[a.body?.request&&"object"==typeof a.body.request?a.body.request:null,a.payload?.request&&"object"==typeof a.payload.request?a.payload.request:null,b])if(!(!c||"object"!=typeof c||Array.isArray(c))&&(c.systemInstruction||Array.isArray(c.contents)||Array.isArray(c.tools)))return c;return null}(a);if(!b)return null;let c=[],d=L(b.systemInstruction,[]);d.length&&c.push(`[SYSTEM]
|
|
217
|
+
${d.join("\n\n")}`);let e=[];for(let a of Array.isArray(b.tools)?b.tools:[])for(let b of Array.isArray(a?.functionDeclarations)?a.functionDeclarations:[]){let a=N(b?.name),c=N(b?.description);(a||c)&&e.push(c?`${a}: ${c}`:a)}e.length&&c.push(`[TOOLS]
|
|
218
|
+
${e.join("\n")}`);let f=[];for(let a of Array.isArray(b.contents)?b.contents:[]){let b=N(a?.role)||"message",c=L(a,[]);c.length&&f.push(`${b}: ${c.join("\n")}`)}return f.length&&c.push(`[MESSAGES]
|
|
219
|
+
${f.join("\n\n")}`),c.length?c:null}(b):null;if(e)return d.push(...e),d;if("string"==typeof b)return b.trim()&&d.push(b),d;if(Array.isArray(b)){for(let e of b)a(e,c+1,d);return d}if("object"==typeof b)for(let[e,f]of Object.entries(b)){let b=e.toLowerCase();["content","text","prompt","input","message","reasoning_content","thinking","output_text"].includes(b)?a(f,c+1,d):c<8&&["messages","contents","parts","body","request","payload","response","choices","candidates","candidate","delta","output","item","items"].includes(b)&&a(f,c+1,d)}return d})(a||{}).join("\n\n").slice(0,k)}function N(a){return String(a||"").trim()}function O(a){let b=N(a);if(!b)return"";try{return new URL(b).hostname||""}catch{return b.replace(/^https?:\/\//,"").replace(/\/.*$/,"").replace(/:\d+$/,"")}}async function P(a){try{var b;if(await s(),!m||!n)return;let d=await A(),f=l(a.contentLoggingMode||a.context?.contentLoggingMode),h="disabled"===f;if(!d?.enabled||(b=a.stage,!d?.enabled||("client"===b?!1===d.logClientRequest:"source"===b||"openai"===b?!1===d.logSourceRequest:"target"===b?!1===d.logTargetRequest:"provider_response"===b?!0!==d.logProviderResponse:"error"===b&&!1===d.logErrors)))return;let o=new Date().toISOString(),p="provider_response"===a.stage,q=h||!p?null:function(a={}){return void 0!==a.responseText&&null!==a.responseText?String(a.responseText).slice(0,k):"string"==typeof a.response?a.response.slice(0,k):M(a.response||a.meta?.body||{})}(a),r=h?g:void 0!==a.promptText?String(a.promptText):p?"":M(a.request||a.response||{}),t=h?null:p?q||null:"string"==typeof a.response?a.response:null,u=r?String(r).slice(0,i):null,v=t?String(t).slice(0,j):null,E=h||!a.request?null:H(a.request),F=h||!p?null:H(function(a={}){return void 0!==a.fullResponseJson&&null!==a.fullResponseJson?a.fullResponseJson:void 0!==a.responsePayload&&null!==a.responsePayload?a.responsePayload:a.meta&&"object"==typeof a.meta?a.meta:void 0!==a.response&&null!==a.response?{body:a.response}:null}(a)),L="mysql"===d.type?null:E,P="mysql"===d.type?null:F,Q=w(a.headers||a.request?.headers||{}),R=x(a.headers||a.request?.headers||{}),S=y(Q,a.clientInfo||{}),T=y(R,a.sourceInfo||{}),U=function(a={}){var b,c;let d,e,f,g=a.context||{},h=function(a){let b=N(a),c=b.indexOf("/");if(c<=0)return"";let d=b.slice(0,c);return/^[a-z][a-z0-9_-]{1,60}$/i.test(d)?d:""}(a.model),i=N(g.provider)||N(a.provider)||N(a.providerId)||N(a.provider_id)||h||"",j=(d=N(i),/^openai-compatible-chat-[0-9a-f-]{20,}$/i.test(d)||/^openai-compatible-[0-9a-f-]{20,}$/i.test(d))?"":i,k=N(g.accountName)||N(g.account_name)||N(g.connectionName)||N(a.accountName)||N(a.account_name)||N(a.keyName)||N(a.key_name)||"",l=N(g.connectionId)||N(a.connectionId)||N(a.connection_id)||"",m=(b=N(a.model),c=j||h,e=N(b),(f=N(c))&&e.startsWith(`${f}/`)?e.slice(f.length+1):e),n=O(a.providerUrl)||O(a.endpoint),o="";return j&&k&&k!==j?o=`${j}/${k}`:j?o=j:k?o=k:n&&(o=n),{provider:j||null,accountName:k||null,connectionId:l||null,displayModel:o&&m?`${o}/${m}`:null}}(a),V={id:`${Date.now()}_${Math.random().toString(16).slice(2)}`,created_at:o,session_id:a.sessionId||null,source_format:a.sourceFormat||null,target_format:a.targetFormat||null,model:a.model||null,endpoint:a.endpoint||null,stage:a.stage||null,provider_url:a.providerUrl||null,provider:U.provider||null,account_name:U.accountName||null,connection_id:U.connectionId||null,display_model:U.displayModel||null,client_ip:S.client_ip||null,client_port:S.client_port||null,client_user_agent:S.client_user_agent||null,client_host:S.client_host||null,source_tool:T.source_tool||null,source_tool_label:T.source_tool_label||null,source_host:T.source_host||null,content_mode:h?"disabled":"raw_json_preview",payload_hash:null,payload_size_bytes:E?I(E):0,response_payload_hash:null,response_payload_size_bytes:F?I(F):0,prompt_text:u||null,full_request_json:L,full_response_json:P,response_text:v,status_code:a.statusCode||null,error_text:a.errorText||null,meta_json:J(a,h)};if("postgres"===d.type){let a=new(await Promise.resolve().then(c.bind(c,64939))).Client({host:d.host,port:Number(d.port||5432),database:d.database,user:d.username,password:d.password,ssl:!!d.ssl&&{rejectUnauthorized:!1}});try{await a.connect(),await a.query(B("postgres")),await D(a),await a.query(`INSERT INTO prompt_logs (
|
|
200
220
|
id, created_at, session_id, source_format, target_format, model,
|
|
201
221
|
endpoint, stage, provider_url, provider, account_name, connection_id, display_model,
|
|
202
222
|
client_ip, client_port, client_user_agent, client_host,
|
|
203
223
|
source_tool, source_tool_label, source_host, content_mode, payload_hash, payload_size_bytes,
|
|
204
|
-
|
|
224
|
+
response_payload_hash, response_payload_size_bytes,
|
|
225
|
+
prompt_text, full_request_json, full_response_json,
|
|
205
226
|
response_text, status_code, error_text, meta_json
|
|
206
227
|
) VALUES (
|
|
207
228
|
$1, $2, $3, $4, $5, $6,
|
|
208
229
|
$7, $8, $9, $10, $11, $12, $13,
|
|
209
230
|
$14, $15, $16, $17,
|
|
210
231
|
$18, $19, $20, $21, $22, $23,
|
|
211
|
-
$24, $25
|
|
212
|
-
$26, $27, $28
|
|
213
|
-
|
|
232
|
+
$24, $25,
|
|
233
|
+
$26, $27::jsonb, $28::jsonb,
|
|
234
|
+
$29, $30, $31, $32::jsonb
|
|
235
|
+
)`,[V.id,V.created_at,V.session_id,V.source_format,V.target_format,V.model,V.endpoint,V.stage,V.provider_url,V.provider,V.account_name,V.connection_id,V.display_model,V.client_ip,V.client_port,V.client_user_agent,V.client_host,V.source_tool,V.source_tool_label,V.source_host,V.content_mode,V.payload_hash,V.payload_size_bytes,V.response_payload_hash,V.response_payload_size_bytes,V.prompt_text,V.full_request_json,V.full_response_json,V.response_text,V.status_code,V.error_text,V.meta_json]),V.session_id&&V.display_model&&await a.query(`UPDATE prompt_logs
|
|
214
236
|
SET provider = COALESCE(provider, $1),
|
|
215
237
|
account_name = COALESCE(account_name, $2),
|
|
216
238
|
connection_id = COALESCE(connection_id, $3),
|
|
217
239
|
display_model = $4
|
|
218
|
-
WHERE session_id = $5`,[
|
|
240
|
+
WHERE session_id = $5`,[V.provider,V.account_name,V.connection_id,V.display_model,V.session_id])}finally{await a.end()}return}if("mysql"===d.type){let b=await c.e(8491).then(c.t.bind(c,38491,19)),e=await b.createConnection({host:d.host,port:Number(d.port||3306),database:d.database,user:d.username,password:d.password,ssl:d.ssl?{}:void 0,multipleStatements:!0});try{await e.query(B("mysql")),await G(e,d);let b=await K(e,V,E,"request_json"),c=await K(e,V,F,"response_json");b&&(V.payload_hash=b.payloadHash,V.payload_size_bytes=b.payloadSizeBytes),c&&(V.response_payload_hash=c.payloadHash,V.response_payload_size_bytes=c.payloadSizeBytes),V.meta_json=J(a,h,b,c),await e.query(`INSERT INTO prompt_logs (
|
|
219
241
|
id, created_at, session_id, source_format, target_format, model,
|
|
220
242
|
endpoint, stage, provider_url, provider, account_name, connection_id, display_model,
|
|
221
243
|
client_ip, client_port, client_user_agent, client_host,
|
|
222
244
|
source_tool, source_tool_label, source_host, content_mode, payload_hash, payload_size_bytes,
|
|
245
|
+
response_payload_hash, response_payload_size_bytes,
|
|
223
246
|
prompt_text, full_request_json,
|
|
224
247
|
response_text, status_code, error_text, meta_json
|
|
225
|
-
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, CAST(? AS JSON), ?, ?, ?, CAST(? AS JSON))`,[
|
|
248
|
+
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, CAST(? AS JSON), ?, ?, ?, CAST(? AS JSON))`,[V.id,V.created_at.replace("T"," ").replace("Z",""),V.session_id,V.source_format,V.target_format,V.model,V.endpoint,V.stage,V.provider_url,V.provider,V.account_name,V.connection_id,V.display_model,V.client_ip,V.client_port,V.client_user_agent,V.client_host,V.source_tool,V.source_tool_label,V.source_host,V.content_mode,V.payload_hash,V.payload_size_bytes,V.response_payload_hash,V.response_payload_size_bytes,V.prompt_text,V.full_request_json,V.response_text,V.status_code,V.error_text,V.meta_json]),V.session_id&&V.display_model&&await e.query(`UPDATE prompt_logs
|
|
226
249
|
SET provider = COALESCE(provider, ?),
|
|
227
250
|
account_name = COALESCE(account_name, ?),
|
|
228
251
|
connection_id = COALESCE(connection_id, ?),
|
|
229
252
|
display_model = ?
|
|
230
|
-
WHERE session_id = ?`,[
|
|
253
|
+
WHERE session_id = ?`,[V.provider,V.account_name,V.connection_id,V.display_model,V.session_id])}finally{await e.end()}return}let W=d.sqlitePath||(e.DATA_DIR?n.join(e.DATA_DIR,"logs","promptLogs.sqlite"):null);if(!W)return;m.mkdirSync(n.dirname(W),{recursive:!0});let X=await z(W);try{X.exec(B("sqlite")),await C(X),X.run(`INSERT INTO prompt_logs (
|
|
231
254
|
id, created_at, session_id, source_format, target_format, model,
|
|
232
255
|
endpoint, stage, provider_url, provider, account_name, connection_id, display_model,
|
|
233
256
|
client_ip, client_port, client_user_agent, client_host,
|
|
234
257
|
source_tool, source_tool_label, source_host, content_mode, payload_hash, payload_size_bytes,
|
|
235
|
-
|
|
258
|
+
response_payload_hash, response_payload_size_bytes,
|
|
259
|
+
prompt_text, full_request_json, full_response_json,
|
|
236
260
|
response_text, status_code, error_text, meta_json
|
|
237
|
-
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`,[
|
|
261
|
+
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`,[V.id,V.created_at,V.session_id,V.source_format,V.target_format,V.model,V.endpoint,V.stage,V.provider_url,V.provider,V.account_name,V.connection_id,V.display_model,V.client_ip,V.client_port,V.client_user_agent,V.client_host,V.source_tool,V.source_tool_label,V.source_host,V.content_mode,V.payload_hash,V.payload_size_bytes,V.response_payload_hash,V.response_payload_size_bytes,V.prompt_text,V.full_request_json,V.full_response_json,V.response_text,V.status_code,V.error_text,V.meta_json]),V.session_id&&V.display_model&&X.run(`UPDATE prompt_logs
|
|
238
262
|
SET provider = COALESCE(provider, ?),
|
|
239
263
|
account_name = COALESCE(account_name, ?),
|
|
240
264
|
connection_id = COALESCE(connection_id, ?),
|
|
241
265
|
display_model = ?
|
|
242
|
-
WHERE session_id = ?`,[
|
|
266
|
+
WHERE session_id = ?`,[V.provider,V.account_name,V.connection_id,V.display_model,V.session_id])}finally{X.close()}}catch(a){t("db-write",`[PromptDB] Failed to write prompt log: ${a.message}`)}}async function Q(a,b,c){if(await s(),!m||!p)return null;try{m.existsSync(p)||m.mkdirSync(p,{recursive:!0});let d=function(a=new Date){let b=a=>String(a).padStart(2,"0"),c=a.getFullYear(),d=b(a.getMonth()+1),e=b(a.getDate()),f=b(a.getHours()),g=b(a.getMinutes()),h=b(a.getSeconds()),i=String(a.getMilliseconds()).padStart(3,"0");return`${c}${d}${e}_${f}${g}${h}_${i}`}(),e=(c||"unknown").replace(/[/:]/g,"-"),f=`${a}_${b}_${e}_${d}`,g=n.join(p,f);return m.mkdirSync(g,{recursive:!0}),g}catch(a){return console.log("[LOG] Failed to create log session:",a.message),null}}function R(a){if(!a)return{};let b={...a},c=["authorization","x-api-key","cookie","token","api-key","openai-api-key","anthropic-api-key","gemini-api-key","google-api-key"];for(let a of Object.keys(b)){let d=a.toLowerCase();if(c.some(a=>d.includes(a))){let c=String(b[a]||"");c.length>16?b[a]=`${c.slice(0,6)}...${c.slice(-4)}`:c.length>0&&(b[a]="***")}}return b}async function S(a,b,c,d={}){if(!f)return{sessionPath:null,logClientRawRequest(){},logRawRequest(){},logOpenAIRequest(){},logTargetRequest(){},logProviderResponse(){},appendProviderChunk(){},appendOpenAIChunk(){},logConvertedResponse(){},appendConvertedChunk(){},logError(){}};let e=await Q(a,b,c),h=e?String(e).split(/[\\/]/).pop():null,i="disabled"===l(d?.contentLoggingMode),j={},k={},o=(a,b)=>{var c=i?function(a={}){let b={timestamp:a.timestamp||new Date().toISOString(),contentLoggingMode:"disabled",contentRedacted:!0,note:g};return a.endpoint&&(b.endpoint=a.endpoint),a.url&&(b.url=a.url),void 0!==a.status&&(b.status=a.status),void 0!==a.statusText&&(b.statusText=a.statusText),void 0!==a.error&&(b.error=a.error),b}(b):b;if(m&&e)try{let b=n.join(e,a);m.writeFileSync(b,JSON.stringify(c,null,2))}catch(b){console.log(`[LOG] Failed to write ${a}:`,b.message)}};return{get sessionPath(){return e},logClientRawRequest(e,f,g={}){let i={timestamp:new Date().toISOString(),endpoint:e,headers:R(g),body:f};j=y(j,w(g)),k=y(k,x(g)),o("1_req_client.json",i),P({stage:"client",clientInfo:j,sourceInfo:k,sessionId:h,sourceFormat:a,targetFormat:b,model:c,context:d,endpoint:e,request:i})},logRawRequest(e,f={}){let g={timestamp:new Date().toISOString(),headers:R(f),body:e};j=y(j,w(f)),k=y(k,x(f)),o("2_req_source.json",g),P({stage:"source",clientInfo:j,sourceInfo:k,sessionId:h,sourceFormat:a,targetFormat:b,model:c,context:d,request:g})},logOpenAIRequest(e){let f={timestamp:new Date().toISOString(),body:e};o("3_req_openai.json",f),P({stage:"openai",clientInfo:j,sourceInfo:k,sessionId:h,sourceFormat:a,targetFormat:b,model:c,context:d,request:f})},logTargetRequest(e,f,g){let i={timestamp:new Date().toISOString(),url:e,headers:R(f),body:g};o("4_req_target.json",i),P({stage:"target",clientInfo:j,sourceInfo:k,sessionId:h,sourceFormat:a,targetFormat:b,model:c,context:d,endpoint:e,providerUrl:e,request:i})},logProviderResponse(e,f,g,i){let l={timestamp:new Date().toISOString(),status:e,statusText:f,headers:g?"function"==typeof g.entries?Object.fromEntries(g.entries()):g:{},body:i};o("5_res_provider.json",l),P({stage:"provider_response",clientInfo:j,sourceInfo:k,sessionId:h,sourceFormat:a,targetFormat:b,model:c,context:d,statusCode:e,response:i,meta:l})},appendProviderChunk(a){if(!i&&m&&e)try{let b=n.join(e,"5_res_provider.txt");m.appendFileSync(b,a)}catch{}},appendOpenAIChunk(a){if(!i&&m&&e)try{let b=n.join(e,"6_res_openai.txt");m.appendFileSync(b,a)}catch{}},logConvertedResponse(a){o("7_res_client.json",{timestamp:new Date().toISOString(),body:a})},appendConvertedChunk(a){if(!i&&m&&e)try{let b=n.join(e,"7_res_client.txt");m.appendFileSync(b,a)}catch{}},logError(e,f=null){let g={timestamp:new Date().toISOString(),error:e?.message||String(e),stack:e?.stack,requestBody:f};o("6_error.json",g),P({stage:"error",clientInfo:j,sourceInfo:k,sessionId:h,sourceFormat:a,targetFormat:b,model:c,context:d,errorText:g.error,request:f,meta:g})}}}}};
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";exports.id=6050,exports.ids=[6050],exports.modules={50122:(a,b,c)=>{c.d(b,{k:()=>e});let d=[];for(let a=0;a<256;++a)d.push((a+256).toString(16).slice(1));function e(a,b=0){return(d[a[b+0]]+d[a[b+1]]+d[a[b+2]]+d[a[b+3]]+"-"+d[a[b+4]]+d[a[b+5]]+"-"+d[a[b+6]]+d[a[b+7]]+"-"+d[a[b+8]]+d[a[b+9]]+"-"+d[a[b+10]]+d[a[b+11]]+d[a[b+12]]+d[a[b+13]]+d[a[b+14]]+d[a[b+15]]).toLowerCase()}},94755:(a,b,c)=>{c.d(b,{A:()=>i});var d=c(77598);let e={randomUUID:d.randomUUID},f=new Uint8Array(256),g=f.length;var h=c(50122);let i=function(a,b,c){if(e.randomUUID&&!b&&!a)return e.randomUUID();var i=a,j=c;let k=(i=i||{}).random??i.rng?.()??(g>f.length-16&&((0,d.randomFillSync)(f),g=0),f.slice(g,g+=16));if(k.length<16)throw Error("Random bytes length must be >= 16");if(k[6]=15&k[6]|64,k[8]=63&k[8]|128,b){if((j=j||0)<0||j+16>b.length)throw RangeError(`UUID byte range ${j}:${j+15} is out of buffer bounds`);for(let a=0;a<16;++a)b[j+a]=k[a];return b}return(0,h.k)(k)}},97242:(a,b,c)=>{c.d(b,{DU:()=>B,Ws:()=>C,_3:()=>E,nv:()=>D});var d=c(45903);let e=new Set;function f(a,b,c=null){let d=Number(a);if(!Number.isFinite(d)||d<0)return b;let e=Math.floor(d);return c?Math.min(e,c):e}function g(a){return String(a||"").trim()}async function h(){return(0,d.I6)(await (0,d.L7)())}async function i(a){let b=new(await Promise.resolve().then(c.bind(c,64939))).Client({host:a.host,port:Number(a.port||5432),database:a.database,user:a.username,password:a.password,ssl:!!a.ssl&&{rejectUnauthorized:!1}});return await b.connect(),{type:"postgres",query:async(a,c=[])=>(await b.query(a,c)).rows,queryOne:async(a,c=[])=>(await b.query(a,c)).rows[0]||null,async exec(a,c=[]){await b.query(a,c)},async close(){await b.end()}}}async function j(a){let b=await c.e(8491).then(c.t.bind(c,38491,19)),d=await b.createConnection({host:a.host,port:Number(a.port||3306),database:a.database,user:a.username,password:a.password,ssl:a.ssl?{}:void 0,dateStrings:!0,connectTimeout:3e3});return{type:"mysql",async query(a,b=[]){let[c]=await d.query(a,b);return c},async queryOne(a,b=[]){let[c]=await d.query(a,b);return c[0]||null},async exec(a,b=[]){await d.query(a,b)},async close(){await d.end()}}}async function k(a){if("postgres"===a.type)return i(a);if("mysql"===a.type)return j(a);throw Error(`Unsupported prompt log database type: ${a.type}`)}function l(a){if(!a)return{};if("object"==typeof a)return a;try{return JSON.parse(a)}catch{return{}}}function m(a,b=[]){if(null==a)return b;if("string"==typeof a)return a.trim()&&b.push(a.trim()),b;if(Array.isArray(a)){for(let c of a)m(c,b);return b}return"object"==typeof a&&("string"==typeof a.text&&a.text.trim()&&b.push(a.text.trim()),Array.isArray(a.parts)&&m(a.parts,b)),b}function n(a){return(function a(b,c=0,d=[]){if(null==b||c>12||d.join("\n").length>1e6)return d;let e=0===c?function(a){let b=function(a){if(!a||"object"!=typeof a||Array.isArray(a))return null;let b=a.request&&"object"==typeof a.request?a.request:a;for(let c of[a.body?.request&&"object"==typeof a.body.request?a.body.request:null,a.payload?.request&&"object"==typeof a.payload.request?a.payload.request:null,b])if(!(!c||"object"!=typeof c||Array.isArray(c))&&(c.systemInstruction||Array.isArray(c.contents)||Array.isArray(c.tools)))return c;return null}(a);if(!b)return null;let c=[],d=m(b.systemInstruction,[]);d.length&&c.push(`[SYSTEM]
|
|
2
|
+
${d.join("\n\n")}`);let e=[];for(let a of Array.isArray(b.tools)?b.tools:[])for(let b of Array.isArray(a?.functionDeclarations)?a.functionDeclarations:[]){let a=g(b?.name),c=g(b?.description);(a||c)&&e.push(c?`${a}: ${c}`:a)}e.length&&c.push(`[TOOLS]
|
|
3
|
+
${e.join("\n")}`);let f=[];for(let a of Array.isArray(b.contents)?b.contents:[]){let b=g(a?.role)||"message",c=m(a,[]);c.length&&f.push(`${b}: ${c.join("\n")}`)}return f.length&&c.push(`[MESSAGES]
|
|
4
|
+
${f.join("\n\n")}`),c.length?c:null}(b):null;if(e)return d.push(...e),d;if("string"==typeof b)return b.trim()&&d.push(b),d;if(Array.isArray(b)){for(let e of b)a(e,c+1,d);return d}if("object"==typeof b)for(let[e,f]of Object.entries(b)){let b=e.toLowerCase();["content","text","prompt","input","message","reasoning_content","thinking","output_text"].includes(b)?a(f,c+1,d):c<8&&["messages","contents","parts","body","request","payload","response","choices","candidates","candidate","delta","output","item","items"].includes(b)&&a(f,c+1,d)}return d})(a||{}).join("\n\n")}function o(a={}){if(!a)return a;let b=l(a.full_request_json),c=l(a.full_response_json),d=b&&Object.keys(b).length?n(b):"",e=c&&Object.keys(c).length?n(c):"";return{...a,extracted_prompt_text:d||a.prompt_text||"",extracted_response_text:e||a.response_text||""}}function p(a={}){return String(a.payload_hash||l(a.meta_json).payloadHash||"").trim()}function q(a={}){return String(a.response_payload_hash||l(a.meta_json).responsePayloadHash||"").trim()}async function r(a){let b=await a.queryOne("SELECT COUNT(1) AS count FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'prompt_log_payloads'");return Number(b?.count||0)>0}async function s(a,b){if(!b)return null;let c=await a.queryOne("SELECT payload_json FROM prompt_log_payloads WHERE payload_hash = ?",[b]);if(!c)return null;let d=c.payload_json;return"string"==typeof d?d:JSON.stringify(d)}async function t(a,b){if(!b)return b;let c=b.full_request_json?"":p(b),d=b.full_response_json?"":q(b);if(!c&&!d)return b;try{if(!await r(a))return b;let[e,f]=await Promise.all([s(a,c),s(a,d)]);return{...b,full_request_json:e||b.full_request_json,full_response_json:f||b.full_response_json}}catch{return b}}async function u(a,b=[]){let c=[...new Set(b.map(a=>String(a||"").trim()).filter(Boolean))];if(c.length)try{if(!await r(a))return;for(let b of c)await a.exec("UPDATE prompt_log_payloads SET ref_count = CASE WHEN ref_count > 0 THEN ref_count - 1 ELSE 0 END WHERE payload_hash = ?",[b]),await a.exec("DELETE FROM prompt_log_payloads WHERE payload_hash = ? AND ref_count <= 0",[b])}catch{}}async function v(a){let b=await i(a);try{for(let a of["CREATE INDEX IF NOT EXISTS idx_prompt_logs_created_id ON prompt_logs (created_at DESC, id)","CREATE INDEX IF NOT EXISTS idx_prompt_logs_stage_created_at ON prompt_logs (stage, created_at DESC)","CREATE INDEX IF NOT EXISTS idx_prompt_logs_model_created_at ON prompt_logs (model, created_at DESC)","CREATE INDEX IF NOT EXISTS idx_prompt_logs_display_model_created_at ON prompt_logs (display_model, created_at DESC)","CREATE INDEX IF NOT EXISTS idx_prompt_logs_session_created_at ON prompt_logs (session_id, created_at DESC)","CREATE INDEX IF NOT EXISTS idx_prompt_logs_client_ip_created_at ON prompt_logs (client_ip, created_at DESC)","CREATE INDEX IF NOT EXISTS idx_prompt_logs_source_tool_created_at ON prompt_logs (source_tool, created_at DESC)","CREATE INDEX IF NOT EXISTS idx_prompt_logs_connection_created_at ON prompt_logs (connection_id, created_at DESC)","CREATE INDEX IF NOT EXISTS idx_prompt_logs_account_created_at ON prompt_logs (account_name, created_at DESC)","CREATE INDEX IF NOT EXISTS idx_prompt_logs_provider_created_at ON prompt_logs (provider, created_at DESC)","CREATE INDEX IF NOT EXISTS idx_prompt_logs_status_created_at ON prompt_logs (status_code, created_at DESC)","CREATE INDEX IF NOT EXISTS idx_prompt_logs_payload_hash ON prompt_logs (payload_hash)"])await b.exec(a)}finally{await b.close()}}async function w(a,b,c){let d=await a.queryOne("SELECT COUNT(1) AS count FROM INFORMATION_SCHEMA.STATISTICS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'prompt_logs' AND INDEX_NAME = ?",[b]);0===Number(d?.count||0)&&await a.exec(c)}async function x(a){let b=await j(a);try{let a=await b.queryOne("SELECT COUNT(1) AS count FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'prompt_logs'");if(0===Number(a?.count||0))return;for(let[a,c]of[["idx_prompt_logs_created_id","CREATE INDEX idx_prompt_logs_created_id ON prompt_logs (created_at DESC, id)"],["idx_prompt_logs_stage_created_at","CREATE INDEX idx_prompt_logs_stage_created_at ON prompt_logs (stage, created_at DESC)"],["idx_prompt_logs_model_created_at","CREATE INDEX idx_prompt_logs_model_created_at ON prompt_logs (model, created_at DESC)"],["idx_prompt_logs_display_model_created_at","CREATE INDEX idx_prompt_logs_display_model_created_at ON prompt_logs (display_model, created_at DESC)"],["idx_prompt_logs_session_created_at","CREATE INDEX idx_prompt_logs_session_created_at ON prompt_logs (session_id, created_at DESC)"],["idx_prompt_logs_client_ip_created_at","CREATE INDEX idx_prompt_logs_client_ip_created_at ON prompt_logs (client_ip, created_at DESC)"],["idx_prompt_logs_source_tool_created_at","CREATE INDEX idx_prompt_logs_source_tool_created_at ON prompt_logs (source_tool, created_at DESC)"],["idx_prompt_logs_connection_created_at","CREATE INDEX idx_prompt_logs_connection_created_at ON prompt_logs (connection_id, created_at DESC)"],["idx_prompt_logs_account_created_at","CREATE INDEX idx_prompt_logs_account_created_at ON prompt_logs (account_name, created_at DESC)"],["idx_prompt_logs_provider_created_at","CREATE INDEX idx_prompt_logs_provider_created_at ON prompt_logs (provider, created_at DESC)"],["idx_prompt_logs_status_created_at","CREATE INDEX idx_prompt_logs_status_created_at ON prompt_logs (status_code, created_at DESC)"],["idx_prompt_logs_payload_hash","CREATE INDEX idx_prompt_logs_payload_hash ON prompt_logs (payload_hash)"]])await w(b,a,c)}finally{await b.close()}}async function y(a){if(!a.enabled)return;let b=`${a.type}:${a.host||""}:${a.port||""}:${a.database||""}`;if(!e.has(b))try{if("postgres"===a.type)await v(a);else if("mysql"===a.type)await x(a);else throw Error(`Unsupported prompt log database type: ${a.type}`);e.add(b)}catch(a){console.warn("[prompt-logs] Unable to ensure query indexes:",a.message)}}async function z(a){let b=await k(a);try{let c=(await b.query("SELECT DISTINCT COALESCE(NULLIF(display_model, ''), model) AS model FROM prompt_logs WHERE model IS NOT NULL AND model <> '' ORDER BY model LIMIT 300")).map(a=>a.model),d=(await b.query("SELECT DISTINCT stage FROM prompt_logs WHERE stage IS NOT NULL AND stage <> '' ORDER BY stage LIMIT 100")).map(a=>a.stage);return{models:c,stages:d,dbInfo:{type:a.type,host:a.host,database:a.database}}}finally{await b.close()}}async function A(a,b){let c=a.type,d=await k(a);try{let e=function(a,b){let c=[],d=[],e=a=>(d.push(a),"postgres"===b)?`$${d.length}`:"?",f="postgres"===b?"ILIKE":"LIKE";if(a.keyword){let b=`%${a.keyword}%`;c.push(`(${["prompt_text","response_text","error_text","model","endpoint","provider_url","provider","account_name","connection_id","display_model","session_id","client_ip","client_host","client_user_agent","source_tool","source_tool_label","source_host"].map(a=>`${a} ${f} ${e(b)}`).join(" OR ")})`)}if(a.model&&c.push(`(model = ${e(a.model)} OR display_model = ${e(a.model)})`),a.stage&&c.push(`stage = ${e(a.stage)}`),a.sessionId&&c.push(`session_id = ${e(a.sessionId)}`),a.clientIp&&c.push(`client_ip ${f} ${e(`%${a.clientIp}%`)}`),a.sourceTool){let b=`%${a.sourceTool}%`;c.push(`(source_tool ${f} ${e(b)} OR source_tool_label ${f} ${e(b)} OR source_host ${f} ${e(b)})`)}return a.dateFrom&&c.push(`created_at >= ${e(a.dateFrom)}`),a.dateTo&&c.push(`created_at <= ${e(a.dateTo)}`),{clause:c.length?`WHERE ${c.join(" AND ")}`:"",params:d,add:e}}(b,c),f=[...e.params],g=await d.queryOne(`SELECT COUNT(*) AS count FROM prompt_logs ${e.clause}`,f),h=e.add(b.limit),i=e.add(b.offset),j="postgres"===c?"LEFT(coalesce(prompt_text,''), 900)":"SUBSTRING(coalesce(prompt_text,''), 1, 900)",k="postgres"===c?"char_length(coalesce(prompt_text,''))":"CHAR_LENGTH(coalesce(prompt_text,''))",l="postgres"===c?"LEFT(coalesce(response_text,''), 400)":"SUBSTRING(coalesce(response_text,''), 1, 400)",m=await d.query(`
|
|
5
|
+
SELECT
|
|
6
|
+
id,
|
|
7
|
+
created_at,
|
|
8
|
+
session_id,
|
|
9
|
+
source_format,
|
|
10
|
+
target_format,
|
|
11
|
+
model,
|
|
12
|
+
endpoint,
|
|
13
|
+
stage,
|
|
14
|
+
provider_url,
|
|
15
|
+
provider,
|
|
16
|
+
account_name,
|
|
17
|
+
connection_id,
|
|
18
|
+
display_model,
|
|
19
|
+
client_ip,
|
|
20
|
+
client_port,
|
|
21
|
+
client_user_agent,
|
|
22
|
+
client_host,
|
|
23
|
+
source_tool,
|
|
24
|
+
source_tool_label,
|
|
25
|
+
source_host,
|
|
26
|
+
${j} AS prompt_preview,
|
|
27
|
+
${k} AS prompt_length,
|
|
28
|
+
${l} AS response_preview,
|
|
29
|
+
status_code,
|
|
30
|
+
error_text
|
|
31
|
+
FROM prompt_logs
|
|
32
|
+
${e.clause}
|
|
33
|
+
ORDER BY created_at DESC
|
|
34
|
+
LIMIT ${h} OFFSET ${i}
|
|
35
|
+
`,e.params),n=[],o=[];if(b.includeOptions){let b=await z(a);n=b.models,o=b.stages}return{rows:m,total:Number(g?.count||0),models:n,stages:o,dbInfo:{type:a.type,host:a.host,database:a.database}}}finally{await d.close()}}async function B(){let a=await h();if(!a.enabled)return{disabled:!0,models:[],stages:[],dbInfo:{type:a.type}};if(await y(a),"postgres"===a.type||"mysql"===a.type)return z(a);throw Error(`Unsupported prompt log database type: ${a.type}`)}async function C(a={}){let b=await h(),c=function(a={}){return{keyword:g(a.keyword),model:g(a.model),stage:g(a.stage),sessionId:g(a.sessionId),clientIp:g(a.clientIp),sourceTool:g(a.sourceTool),dateFrom:g(a.dateFrom),dateTo:g(a.dateTo),limit:f(a.limit,50,200),offset:f(a.offset,0),includeOptions:!0===a.includeOptions}}(a);if(!b.enabled)return{disabled:!0,rows:[],total:0,models:[],stages:[],dbInfo:{type:b.type}};if(await y(b),"postgres"===b.type||"mysql"===b.type)return A(b,c);throw Error(`Unsupported prompt log database type: ${b.type}`)}async function D(a){let b=await h(),c=await k(b);try{if("postgres"===b.type){let b=await c.queryOne("SELECT * FROM prompt_logs WHERE id = $1",[a]);return o(b)}let d=await c.queryOne("SELECT * FROM prompt_logs WHERE id = ?",[a]);return o(await t(c,d))}finally{await c.close()}}async function E(a){let b=await h(),c=await k(b);try{if("postgres"===b.type){let b=await c.queryOne("SELECT COUNT(*) AS count FROM prompt_logs WHERE id = $1",[a]);return await c.exec("DELETE FROM prompt_logs WHERE id = $1",[a]),{changed:Number(b?.count||0)}}let d=await c.queryOne("SELECT * FROM prompt_logs WHERE id = ?",[a]);return await c.exec("DELETE FROM prompt_logs WHERE id = ?",[a]),await u(c,[p(d),q(d)]),{changed:+!!d}}finally{await c.close()}}}};
|