@jheavenknows/bluerouter 4.0.60 → 4.0.61
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 +2 -2
- package/app/.next-cli-build/build-manifest.json +2 -2
- 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/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_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/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/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/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/skills/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/_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_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/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/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.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.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/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/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/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/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/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/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/route.js +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 +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 +4 -4
- package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/!KGRhc2hib2FyZCk/dashboard/prompt-logs/__PAGE__.segment.rsc +1 -1
- 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 +4 -4
- 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_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/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_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_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/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app-paths-manifest.json +2 -2
- 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/4746.js +1 -1
- package/app/.next-cli-build/server/chunks/5199.js +51 -213
- 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-4c95c0cba7c263ab.js → 620-b2ac1dca258c78a6.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/{3lkq8FXf1wbq-VS4ORS04 → mGt0upgnp1PSxWLLurtaW}/_buildManifest.js +0 -0
- /package/app/.next-cli-build/static/{3lkq8FXf1wbq-VS4ORS04 → mGt0upgnp1PSxWLLurtaW}/_ssgManifest.js +0 -0
- /package/app/cli/.build-home/AppData/Roaming/bluerouter/db/backups/{upgrade-4.0.55-to-4.0.56-4.0.56-20260622-150155 → upgrade-4.0.59-to-4.0.60-4.0.60-20260622-162613}/data.sqlite +0 -0
|
@@ -1,111 +1,51 @@
|
|
|
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:()=>
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
CREATE INDEX IF NOT EXISTS idx_prompt_logs_client_ip
|
|
50
|
-
ON prompt_logs(client_ip);
|
|
51
|
-
|
|
52
|
-
CREATE INDEX IF NOT EXISTS idx_prompt_logs_source_tool
|
|
53
|
-
ON prompt_logs(source_tool);
|
|
54
|
-
`:"mysql"===a?`
|
|
55
|
-
CREATE TABLE IF NOT EXISTS prompt_logs (
|
|
56
|
-
id VARCHAR(80) PRIMARY KEY,
|
|
57
|
-
created_at DATETIME(3) NOT NULL,
|
|
58
|
-
session_id VARCHAR(255),
|
|
59
|
-
source_format VARCHAR(80),
|
|
60
|
-
target_format VARCHAR(80),
|
|
61
|
-
model VARCHAR(255),
|
|
62
|
-
endpoint TEXT,
|
|
63
|
-
stage VARCHAR(80),
|
|
64
|
-
provider_url TEXT,
|
|
65
|
-
provider VARCHAR(120),
|
|
66
|
-
account_name VARCHAR(255),
|
|
67
|
-
connection_id VARCHAR(120),
|
|
68
|
-
display_model VARCHAR(512),
|
|
69
|
-
client_ip VARCHAR(64),
|
|
70
|
-
client_port VARCHAR(32),
|
|
71
|
-
client_user_agent TEXT,
|
|
72
|
-
client_host TEXT,
|
|
73
|
-
source_tool VARCHAR(80),
|
|
74
|
-
source_tool_label VARCHAR(120),
|
|
75
|
-
source_host VARCHAR(255),
|
|
76
|
-
content_mode VARCHAR(32),
|
|
77
|
-
payload_hash CHAR(64),
|
|
78
|
-
payload_size_bytes BIGINT DEFAULT 0,
|
|
79
|
-
response_payload_hash CHAR(64),
|
|
80
|
-
response_payload_size_bytes BIGINT DEFAULT 0,
|
|
81
|
-
prompt_text LONGTEXT,
|
|
82
|
-
full_request_json JSON,
|
|
83
|
-
response_text LONGTEXT,
|
|
84
|
-
status_code INT,
|
|
85
|
-
error_text TEXT,
|
|
86
|
-
meta_json JSON,
|
|
87
|
-
INDEX idx_prompt_logs_created_at (created_at),
|
|
88
|
-
INDEX idx_prompt_logs_model (model),
|
|
89
|
-
INDEX idx_prompt_logs_stage (stage),
|
|
90
|
-
INDEX idx_prompt_logs_session (session_id),
|
|
91
|
-
INDEX idx_prompt_logs_client_ip (client_ip),
|
|
92
|
-
INDEX idx_prompt_logs_source_tool (source_tool),
|
|
93
|
-
INDEX idx_prompt_logs_payload_hash (payload_hash),
|
|
94
|
-
INDEX idx_prompt_logs_response_payload_hash (response_payload_hash)
|
|
95
|
-
) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
96
|
-
|
|
97
|
-
CREATE TABLE IF NOT EXISTS prompt_log_payloads (
|
|
98
|
-
payload_hash CHAR(64) PRIMARY KEY,
|
|
99
|
-
created_at DATETIME(3) NOT NULL,
|
|
100
|
-
last_seen_at DATETIME(3) NOT NULL,
|
|
101
|
-
content_type VARCHAR(64),
|
|
102
|
-
payload_size_bytes BIGINT DEFAULT 0,
|
|
103
|
-
ref_count BIGINT DEFAULT 1,
|
|
104
|
-
payload_json JSON,
|
|
105
|
-
INDEX idx_prompt_log_payloads_created_at (created_at),
|
|
106
|
-
INDEX idx_prompt_log_payloads_last_seen_at (last_seen_at)
|
|
107
|
-
) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
108
|
-
`:`
|
|
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:()=>N});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}async function B(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"),d("combo_name","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);"),a.exec("CREATE INDEX IF NOT EXISTS idx_prompt_logs_combo_name_created_at ON prompt_logs(combo_name, created_at DESC);")}function C(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 D(a){return Buffer.byteLength(String(a||""),"utf8")}function E(a,b,c=null,d=null){let e=function(a={}){let b=(a.context&&"object"==typeof a.context.routingMetadata?a.context.routingMetadata:null)||(a.routingMetadata&&"object"==typeof a.routingMetadata?a.routingMetadata:null)||(a.meta&&"object"==typeof a.meta.routingMetadata?a.meta.routingMetadata:null)||null;if(!b)return{};let c=(...a)=>{for(let c of a)if(void 0!==b[c]&&null!==b[c]&&""!==b[c])return b[c];return null},d={combo_name:c("combo_name","comboName"),combo_target:c("combo_target","comboTarget"),combo_strategy:c("combo_strategy","comboStrategy"),route_type:c("route_type","routeType"),selected_provider_id:c("selected_provider_id","selectedProviderId"),selected_model:c("selected_model","selectedModel")},e=c("request_overrides_applied","requestOverridesApplied");e&&"object"==typeof e&&!Array.isArray(e)&&(d.request_overrides_applied=e);let f=c("auto_off_applied","autoOffApplied");for(let a of(null!==f&&(d.auto_off_applied=!0===f||"true"===f||1===f||"1"===f),Object.keys(d)))(null===d[a]||void 0===d[a]||""===d[a])&&delete d[a];return d}(a);if(b)return JSON.stringify({contentLoggingMode:"disabled",contentRedacted:!0,...e});let f=a.meta&&"object"==typeof a.meta?{...a.meta}:a.meta?{value:a.meta}:{};for(let a of(Object.assign(f,e),["body","requestBody","responseBody","fullRequestJson","fullResponseJson","payload","request","response"]))Object.prototype.hasOwnProperty.call(f,a)&&delete f[a];return f.contentLoggingMode=l(a.contentLoggingMode||a.context?.contentLoggingMode),f.contentMode="raw_json_preview",c?.payloadHash&&(f.payloadHash=c.payloadHash,f.payloadSizeBytes=c.payloadSizeBytes||0,f.payloadStorage="prompt_log_payloads"),d?.payloadHash&&(f.responsePayloadHash=d.payloadHash,f.responsePayloadSizeBytes=d.payloadSizeBytes||0,f.responsePayloadStorage="prompt_log_payloads"),Object.keys(f).length?JSON.stringify(f):null}async function F(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=D(c),g=b.created_at.replace("T"," ").replace("Z","");return await a.query(`INSERT INTO prompt_log_payloads (
|
|
2
|
+
payload_hash, created_at, last_seen_at, content_type, payload_size_bytes, ref_count, payload_json
|
|
3
|
+
) VALUES (?, ?, ?, ?, ?, 1, CAST(? AS JSON))
|
|
4
|
+
ON DUPLICATE KEY UPDATE
|
|
5
|
+
last_seen_at = VALUES(last_seen_at),
|
|
6
|
+
ref_count = ref_count + 1,
|
|
7
|
+
content_type = CASE
|
|
8
|
+
WHEN content_type = VALUES(content_type) THEN content_type
|
|
9
|
+
WHEN content_type IS NULL OR content_type = '' THEN VALUES(content_type)
|
|
10
|
+
ELSE content_type
|
|
11
|
+
END`,[e,g,g,d,f,c]),{payloadHash:e,payloadSizeBytes:f,contentType:d,contentMode:"raw_json_preview"}}function G(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)G(c,b);return b}return"object"==typeof a&&("string"==typeof a.text&&a.text.trim()&&b.push(a.text.trim()),Array.isArray(a.parts)&&G(a.parts,b)),b}function H(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=G(b.systemInstruction,[]);d.length&&c.push(`[SYSTEM]
|
|
12
|
+
${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=I(b?.name),c=I(b?.description);(a||c)&&e.push(c?`${a}: ${c}`:a)}e.length&&c.push(`[TOOLS]
|
|
13
|
+
${e.join("\n")}`);let f=[];for(let a of Array.isArray(b.contents)?b.contents:[]){let b=I(a?.role)||"message",c=G(a,[]);c.length&&f.push(`${b}: ${c.join("\n")}`)}return f.length&&c.push(`[MESSAGES]
|
|
14
|
+
${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 I(a){return String(a||"").trim()}function J(a){let b=I(a);if(!b)return"";try{return new URL(b).hostname||""}catch{return b.replace(/^https?:\/\//,"").replace(/\/.*$/,"").replace(/:\d+$/,"")}}async function K(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):H(a.response||a.meta?.body||{})}(a),r=h?g:void 0!==a.promptText?String(a.promptText):p?"":H(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,G=h||!a.request?null:C(a.request),K=h||!p?null:C(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:G,M="mysql"===d.type?null:K,N=w(a.headers||a.request?.headers||{}),O=x(a.headers||a.request?.headers||{}),P=y(N,a.clientInfo||{}),Q=y(O,a.sourceInfo||{}),R=function(a={}){var b,c;let d,e,f,g=a.context||{},h=function(a){let b=I(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=I(g.provider)||I(a.provider)||I(a.providerId)||I(a.provider_id)||h||"",j=(d=I(i),/^openai-compatible-chat-[0-9a-f-]{20,}$/i.test(d)||/^openai-compatible-[0-9a-f-]{20,}$/i.test(d))?"":i,k=I(g.accountName)||I(g.account_name)||I(g.connectionName)||I(a.accountName)||I(a.account_name)||I(a.keyName)||I(a.key_name)||"",l=I(g.connectionId)||I(a.connectionId)||I(a.connection_id)||"",m=(b=I(a.model),c=j||h,e=I(b),(f=I(c))&&e.startsWith(`${f}/`)?e.slice(f.length+1):e),n=J(a.providerUrl)||J(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),S={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:R.provider||null,account_name:R.accountName||null,connection_id:R.connectionId||null,display_model:R.displayModel||null,client_ip:P.client_ip||null,client_port:P.client_port||null,client_user_agent:P.client_user_agent||null,client_host:P.client_host||null,source_tool:Q.source_tool||null,source_tool_label:Q.source_tool_label||null,source_host:Q.source_host||null,content_mode:h?"disabled":"raw_json_preview",payload_hash:null,payload_size_bytes:G?D(G):0,response_payload_hash:null,response_payload_size_bytes:K?D(K):0,prompt_text:u||null,full_request_json:L,full_response_json:M,response_text:v,status_code:a.statusCode||null,error_text:a.errorText||null,meta_json:E(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(`INSERT INTO prompt_logs (
|
|
15
|
+
id, created_at, session_id, source_format, target_format, model,
|
|
16
|
+
endpoint, stage, provider_url, provider, account_name, connection_id, display_model,
|
|
17
|
+
client_ip, client_port, client_user_agent, client_host,
|
|
18
|
+
source_tool, source_tool_label, source_host, content_mode, payload_hash, payload_size_bytes,
|
|
19
|
+
response_payload_hash, response_payload_size_bytes,
|
|
20
|
+
prompt_text, full_request_json, full_response_json,
|
|
21
|
+
response_text, status_code, error_text, meta_json
|
|
22
|
+
) VALUES (
|
|
23
|
+
$1, $2, $3, $4, $5, $6,
|
|
24
|
+
$7, $8, $9, $10, $11, $12, $13,
|
|
25
|
+
$14, $15, $16, $17,
|
|
26
|
+
$18, $19, $20, $21, $22, $23,
|
|
27
|
+
$24, $25,
|
|
28
|
+
$26, $27::jsonb, $28::jsonb,
|
|
29
|
+
$29, $30, $31, $32::jsonb
|
|
30
|
+
)`,[S.id,S.created_at,S.session_id,S.source_format,S.target_format,S.model,S.endpoint,S.stage,S.provider_url,S.provider,S.account_name,S.connection_id,S.display_model,S.client_ip,S.client_port,S.client_user_agent,S.client_host,S.source_tool,S.source_tool_label,S.source_host,S.content_mode,S.payload_hash,S.payload_size_bytes,S.response_payload_hash,S.response_payload_size_bytes,S.prompt_text,S.full_request_json,S.full_response_json,S.response_text,S.status_code,S.error_text,S.meta_json]),S.session_id&&S.display_model&&await a.query(`UPDATE prompt_logs
|
|
31
|
+
SET provider = COALESCE(provider, $1),
|
|
32
|
+
account_name = COALESCE(account_name, $2),
|
|
33
|
+
connection_id = COALESCE(connection_id, $3),
|
|
34
|
+
display_model = $4
|
|
35
|
+
WHERE session_id = $5`,[S.provider,S.account_name,S.connection_id,S.display_model,S.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{let b=await F(e,S,G,"request_json"),c=await F(e,S,K,"response_json");b&&(S.payload_hash=b.payloadHash,S.payload_size_bytes=b.payloadSizeBytes),c&&(S.response_payload_hash=c.payloadHash,S.response_payload_size_bytes=c.payloadSizeBytes),S.meta_json=E(a,h,b,c),await e.query(`INSERT INTO prompt_logs (
|
|
36
|
+
id, created_at, session_id, source_format, target_format, model,
|
|
37
|
+
endpoint, stage, provider_url, provider, account_name, connection_id, display_model,
|
|
38
|
+
client_ip, client_port, client_user_agent, client_host,
|
|
39
|
+
source_tool, source_tool_label, source_host, content_mode, payload_hash, payload_size_bytes,
|
|
40
|
+
response_payload_hash, response_payload_size_bytes,
|
|
41
|
+
prompt_text, full_request_json,
|
|
42
|
+
response_text, status_code, error_text, meta_json
|
|
43
|
+
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, CAST(? AS JSON), ?, ?, ?, CAST(? AS JSON))`,[S.id,S.created_at.replace("T"," ").replace("Z",""),S.session_id,S.source_format,S.target_format,S.model,S.endpoint,S.stage,S.provider_url,S.provider,S.account_name,S.connection_id,S.display_model,S.client_ip,S.client_port,S.client_user_agent,S.client_host,S.source_tool,S.source_tool_label,S.source_host,S.content_mode,S.payload_hash,S.payload_size_bytes,S.response_payload_hash,S.response_payload_size_bytes,S.prompt_text,S.full_request_json,S.response_text,S.status_code,S.error_text,S.meta_json]),S.session_id&&S.display_model&&await e.query(`UPDATE prompt_logs
|
|
44
|
+
SET provider = COALESCE(provider, ?),
|
|
45
|
+
account_name = COALESCE(account_name, ?),
|
|
46
|
+
connection_id = COALESCE(connection_id, ?),
|
|
47
|
+
display_model = ?
|
|
48
|
+
WHERE session_id = ?`,[S.provider,S.account_name,S.connection_id,S.display_model,S.session_id])}finally{await e.end()}return}let T=d.sqlitePath||(e.DATA_DIR?n.join(e.DATA_DIR,"logs","promptLogs.sqlite"):null);if(!T)return;m.mkdirSync(n.dirname(T),{recursive:!0});let U=await z(T);try{U.exec(`
|
|
109
49
|
CREATE TABLE IF NOT EXISTS prompt_logs (
|
|
110
50
|
id TEXT PRIMARY KEY,
|
|
111
51
|
created_at TEXT NOT NULL,
|
|
@@ -153,109 +93,7 @@
|
|
|
153
93
|
|
|
154
94
|
CREATE INDEX IF NOT EXISTS idx_prompt_logs_session
|
|
155
95
|
ON prompt_logs(session_id);
|
|
156
|
-
`
|
|
157
|
-
ALTER TABLE prompt_logs ADD COLUMN IF NOT EXISTS client_ip TEXT;
|
|
158
|
-
ALTER TABLE prompt_logs ADD COLUMN IF NOT EXISTS client_port TEXT;
|
|
159
|
-
ALTER TABLE prompt_logs ADD COLUMN IF NOT EXISTS client_user_agent TEXT;
|
|
160
|
-
ALTER TABLE prompt_logs ADD COLUMN IF NOT EXISTS client_host TEXT;
|
|
161
|
-
ALTER TABLE prompt_logs ADD COLUMN IF NOT EXISTS source_tool TEXT;
|
|
162
|
-
ALTER TABLE prompt_logs ADD COLUMN IF NOT EXISTS source_tool_label TEXT;
|
|
163
|
-
ALTER TABLE prompt_logs ADD COLUMN IF NOT EXISTS source_host TEXT;
|
|
164
|
-
ALTER TABLE prompt_logs ADD COLUMN IF NOT EXISTS provider TEXT;
|
|
165
|
-
ALTER TABLE prompt_logs ADD COLUMN IF NOT EXISTS account_name TEXT;
|
|
166
|
-
ALTER TABLE prompt_logs ADD COLUMN IF NOT EXISTS connection_id TEXT;
|
|
167
|
-
ALTER TABLE prompt_logs ADD COLUMN IF NOT EXISTS display_model TEXT;
|
|
168
|
-
ALTER TABLE prompt_logs ADD COLUMN IF NOT EXISTS content_mode TEXT;
|
|
169
|
-
ALTER TABLE prompt_logs ADD COLUMN IF NOT EXISTS payload_hash TEXT;
|
|
170
|
-
ALTER TABLE prompt_logs ADD COLUMN IF NOT EXISTS payload_size_bytes BIGINT DEFAULT 0;
|
|
171
|
-
ALTER TABLE prompt_logs ADD COLUMN IF NOT EXISTS response_payload_hash TEXT;
|
|
172
|
-
ALTER TABLE prompt_logs ADD COLUMN IF NOT EXISTS response_payload_size_bytes BIGINT DEFAULT 0;
|
|
173
|
-
ALTER TABLE prompt_logs ADD COLUMN IF NOT EXISTS full_response_json JSONB;
|
|
174
|
-
ALTER TABLE prompt_logs ADD COLUMN IF NOT EXISTS combo_name TEXT GENERATED ALWAYS AS (meta_json->>'combo_name') STORED;
|
|
175
|
-
|
|
176
|
-
CREATE INDEX IF NOT EXISTS idx_prompt_logs_client_ip
|
|
177
|
-
ON prompt_logs(client_ip);
|
|
178
|
-
|
|
179
|
-
CREATE INDEX IF NOT EXISTS idx_prompt_logs_source_tool
|
|
180
|
-
ON prompt_logs(source_tool);
|
|
181
|
-
|
|
182
|
-
CREATE INDEX IF NOT EXISTS idx_prompt_logs_response_payload_hash
|
|
183
|
-
ON prompt_logs(response_payload_hash);
|
|
184
|
-
|
|
185
|
-
CREATE INDEX IF NOT EXISTS idx_prompt_logs_combo_name_created_at
|
|
186
|
-
ON prompt_logs(combo_name, created_at DESC);
|
|
187
|
-
`)}async function E(a,b,c,d){let[e]=await a.query(`
|
|
188
|
-
SELECT 1 AS found
|
|
189
|
-
FROM INFORMATION_SCHEMA.COLUMNS
|
|
190
|
-
WHERE TABLE_SCHEMA = ?
|
|
191
|
-
AND TABLE_NAME = ?
|
|
192
|
-
AND COLUMN_NAME = ?
|
|
193
|
-
LIMIT 1
|
|
194
|
-
`,[b,c,d]);return e.length>0}async function F(a,b,c,d){let[e]=await a.query(`
|
|
195
|
-
SELECT 1 AS found
|
|
196
|
-
FROM INFORMATION_SCHEMA.STATISTICS
|
|
197
|
-
WHERE TABLE_SCHEMA = ?
|
|
198
|
-
AND TABLE_NAME = ?
|
|
199
|
-
AND INDEX_NAME = ?
|
|
200
|
-
LIMIT 1
|
|
201
|
-
`,[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 c("combo_name","VARCHAR(128) GENERATED ALWAYS AS (JSON_UNQUOTE(JSON_EXTRACT(meta_json, '$.combo_name'))) STORED"),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 (
|
|
202
|
-
payload_hash CHAR(64) PRIMARY KEY,
|
|
203
|
-
created_at DATETIME(3) NOT NULL,
|
|
204
|
-
last_seen_at DATETIME(3) NOT NULL,
|
|
205
|
-
content_type VARCHAR(64),
|
|
206
|
-
payload_size_bytes BIGINT DEFAULT 0,
|
|
207
|
-
ref_count BIGINT DEFAULT 1,
|
|
208
|
-
payload_json JSON,
|
|
209
|
-
INDEX idx_prompt_log_payloads_created_at (created_at),
|
|
210
|
-
INDEX idx_prompt_log_payloads_last_seen_at (last_seen_at)
|
|
211
|
-
) 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)"),await F(a,b.database,"prompt_logs","idx_prompt_logs_combo_name_created_at")||await a.query("CREATE INDEX idx_prompt_logs_combo_name_created_at ON prompt_logs(combo_name, created_at)")}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){let e=function(a={}){let b=(a.context&&"object"==typeof a.context.routingMetadata?a.context.routingMetadata:null)||(a.routingMetadata&&"object"==typeof a.routingMetadata?a.routingMetadata:null)||(a.meta&&"object"==typeof a.meta.routingMetadata?a.meta.routingMetadata:null)||null;if(!b)return{};let c=(...a)=>{for(let c of a)if(void 0!==b[c]&&null!==b[c]&&""!==b[c])return b[c];return null},d={combo_name:c("combo_name","comboName"),combo_target:c("combo_target","comboTarget"),combo_strategy:c("combo_strategy","comboStrategy"),route_type:c("route_type","routeType"),selected_provider_id:c("selected_provider_id","selectedProviderId"),selected_model:c("selected_model","selectedModel")},e=c("request_overrides_applied","requestOverridesApplied");e&&"object"==typeof e&&!Array.isArray(e)&&(d.request_overrides_applied=e);let f=c("auto_off_applied","autoOffApplied");for(let a of(null!==f&&(d.auto_off_applied=!0===f||"true"===f||1===f||"1"===f),Object.keys(d)))(null===d[a]||void 0===d[a]||""===d[a])&&delete d[a];return d}(a);if(b)return JSON.stringify({contentLoggingMode:"disabled",contentRedacted:!0,...e});let f=a.meta&&"object"==typeof a.meta?{...a.meta}:a.meta?{value:a.meta}:{};for(let a of(Object.assign(f,e),["body","requestBody","responseBody","fullRequestJson","fullResponseJson","payload","request","response"]))Object.prototype.hasOwnProperty.call(f,a)&&delete f[a];return f.contentLoggingMode=l(a.contentLoggingMode||a.context?.contentLoggingMode),f.contentMode="raw_json_preview",c?.payloadHash&&(f.payloadHash=c.payloadHash,f.payloadSizeBytes=c.payloadSizeBytes||0,f.payloadStorage="prompt_log_payloads"),d?.payloadHash&&(f.responsePayloadHash=d.payloadHash,f.responsePayloadSizeBytes=d.payloadSizeBytes||0,f.responsePayloadStorage="prompt_log_payloads"),Object.keys(f).length?JSON.stringify(f):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 (
|
|
212
|
-
payload_hash, created_at, last_seen_at, content_type, payload_size_bytes, ref_count, payload_json
|
|
213
|
-
) VALUES (?, ?, ?, ?, ?, 1, CAST(? AS JSON))
|
|
214
|
-
ON DUPLICATE KEY UPDATE
|
|
215
|
-
last_seen_at = VALUES(last_seen_at),
|
|
216
|
-
ref_count = ref_count + 1,
|
|
217
|
-
content_type = CASE
|
|
218
|
-
WHEN content_type = VALUES(content_type) THEN content_type
|
|
219
|
-
WHEN content_type IS NULL OR content_type = '' THEN VALUES(content_type)
|
|
220
|
-
ELSE content_type
|
|
221
|
-
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]
|
|
222
|
-
${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]
|
|
223
|
-
${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]
|
|
224
|
-
${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 (
|
|
225
|
-
id, created_at, session_id, source_format, target_format, model,
|
|
226
|
-
endpoint, stage, provider_url, provider, account_name, connection_id, display_model,
|
|
227
|
-
client_ip, client_port, client_user_agent, client_host,
|
|
228
|
-
source_tool, source_tool_label, source_host, content_mode, payload_hash, payload_size_bytes,
|
|
229
|
-
response_payload_hash, response_payload_size_bytes,
|
|
230
|
-
prompt_text, full_request_json, full_response_json,
|
|
231
|
-
response_text, status_code, error_text, meta_json
|
|
232
|
-
) VALUES (
|
|
233
|
-
$1, $2, $3, $4, $5, $6,
|
|
234
|
-
$7, $8, $9, $10, $11, $12, $13,
|
|
235
|
-
$14, $15, $16, $17,
|
|
236
|
-
$18, $19, $20, $21, $22, $23,
|
|
237
|
-
$24, $25,
|
|
238
|
-
$26, $27::jsonb, $28::jsonb,
|
|
239
|
-
$29, $30, $31, $32::jsonb
|
|
240
|
-
)`,[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
|
|
241
|
-
SET provider = COALESCE(provider, $1),
|
|
242
|
-
account_name = COALESCE(account_name, $2),
|
|
243
|
-
connection_id = COALESCE(connection_id, $3),
|
|
244
|
-
display_model = $4
|
|
245
|
-
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 (
|
|
246
|
-
id, created_at, session_id, source_format, target_format, model,
|
|
247
|
-
endpoint, stage, provider_url, provider, account_name, connection_id, display_model,
|
|
248
|
-
client_ip, client_port, client_user_agent, client_host,
|
|
249
|
-
source_tool, source_tool_label, source_host, content_mode, payload_hash, payload_size_bytes,
|
|
250
|
-
response_payload_hash, response_payload_size_bytes,
|
|
251
|
-
prompt_text, full_request_json,
|
|
252
|
-
response_text, status_code, error_text, meta_json
|
|
253
|
-
) 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
|
|
254
|
-
SET provider = COALESCE(provider, ?),
|
|
255
|
-
account_name = COALESCE(account_name, ?),
|
|
256
|
-
connection_id = COALESCE(connection_id, ?),
|
|
257
|
-
display_model = ?
|
|
258
|
-
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 (
|
|
96
|
+
`),await B(U),U.run(`INSERT INTO prompt_logs (
|
|
259
97
|
id, created_at, session_id, source_format, target_format, model,
|
|
260
98
|
endpoint, stage, provider_url, provider, account_name, connection_id, display_model,
|
|
261
99
|
client_ip, client_port, client_user_agent, client_host,
|
|
@@ -263,9 +101,9 @@ ${f.join("\n\n")}`),c.length?c:null}(b):null;if(e)return d.push(...e),d;if("stri
|
|
|
263
101
|
response_payload_hash, response_payload_size_bytes,
|
|
264
102
|
prompt_text, full_request_json, full_response_json,
|
|
265
103
|
response_text, status_code, error_text, meta_json
|
|
266
|
-
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`,[
|
|
104
|
+
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`,[S.id,S.created_at,S.session_id,S.source_format,S.target_format,S.model,S.endpoint,S.stage,S.provider_url,S.provider,S.account_name,S.connection_id,S.display_model,S.client_ip,S.client_port,S.client_user_agent,S.client_host,S.source_tool,S.source_tool_label,S.source_host,S.content_mode,S.payload_hash,S.payload_size_bytes,S.response_payload_hash,S.response_payload_size_bytes,S.prompt_text,S.full_request_json,S.full_response_json,S.response_text,S.status_code,S.error_text,S.meta_json]),S.session_id&&S.display_model&&U.run(`UPDATE prompt_logs
|
|
267
105
|
SET provider = COALESCE(provider, ?),
|
|
268
106
|
account_name = COALESCE(account_name, ?),
|
|
269
107
|
connection_id = COALESCE(connection_id, ?),
|
|
270
108
|
display_model = ?
|
|
271
|
-
WHERE session_id = ?`,[
|
|
109
|
+
WHERE session_id = ?`,[S.provider,S.account_name,S.connection_id,S.display_model,S.session_id])}finally{U.close()}}catch(a){t("db-write",`[PromptDB] Failed to write prompt log: ${a.message}`)}}async function L(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 M(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 N(a,b,c,d={}){if(!f)return{sessionPath:null,logClientRawRequest(){},logRawRequest(){},logOpenAIRequest(){},logTargetRequest(){},logProviderResponse(){},appendProviderChunk(){},appendOpenAIChunk(){},logConvertedResponse(){},appendConvertedChunk(){},logError(){}};let e=await L(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:M(g),body:f};j=y(j,w(g)),k=y(k,x(g)),o("1_req_client.json",i),K({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:M(f),body:e};j=y(j,w(f)),k=y(k,x(f)),o("2_req_source.json",g),K({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),K({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:M(f),body:g};o("4_req_target.json",i),K({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),K({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),K({stage:"error",clientInfo:j,sourceInfo:k,sessionId:h,sourceFormat:a,targetFormat:b,model:c,context:d,errorText:g.error,request:f,meta:g})}}}}};
|