switchboard-router 0.5.21 → 0.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/app/.next-cli-build/BUILD_ID +1 -1
- package/app/.next-cli-build/app-path-routes-manifest.json +17 -7
- package/app/.next-cli-build/build-manifest.json +3 -3
- package/app/.next-cli-build/prerender-manifest.json +3 -435
- package/app/.next-cli-build/required-server-files.json +9 -2
- package/app/.next-cli-build/routes-manifest.json +92 -13
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/agent-library/page.js +2 -2
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/agent-library/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/agent-library/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js +2 -2
- 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 +11 -24
- 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 +2 -2
- 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 +2 -2
- 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/combos/routing/page.js +2 -2
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/routing/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/routing/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js +2 -2
- 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 +3 -3
- 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 +16 -16
- 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 +2 -2
- 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 +4 -4
- 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/page.js +2 -2
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js +2 -2
- 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 +2 -2
- 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 +2 -2
- 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 +2 -2
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js +4 -4
- 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 +2 -2
- 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 +2 -2
- 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/quota/page.js +2 -2
- 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/[id]/page.js +2 -2
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/[id]/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/[id]/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page.js +2 -2
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page.js +2 -2
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js +2 -2
- 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 +2 -2
- 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 +2 -2
- 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 +2 -2
- package/app/.next-cli-build/server/app/_not-found/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/_not-found.html +1 -1
- package/app/.next-cli-build/server/app/_not-found.rsc +4 -4
- package/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/_not-found.segments/_index.segment.rsc +4 -4
- 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 +2 -2
- package/app/.next-cli-build/server/app/api/agent-library/catalog/route.js +1 -1
- package/app/.next-cli-build/server/app/api/agent-library/catalog/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/agent-library/doctor/route.js +1 -1
- package/app/.next-cli-build/server/app/api/agent-library/doctor/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/agent-library/export/route.js +1 -1
- package/app/.next-cli-build/server/app/api/agent-library/export/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/agent-library/mcp/route.js +1 -1
- package/app/.next-cli-build/server/app/api/agent-library/mcp/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/agent-library/route.js +1 -1
- package/app/.next-cli-build/server/app/api/agent-library/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/agent-library/skills/route.js +1 -1
- package/app/.next-cli-build/server/app/api/agent-library/skills/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/agent-library/sync/route.js +1 -1
- package/app/.next-cli-build/server/app/api/agent-library/sync/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/agent-library/updates/route.js +1 -0
- package/app/.next-cli-build/server/app/api/agent-library/updates/route.js.nft.json +1 -0
- package/app/.next-cli-build/server/app/api/agent-library/updates/route_client-reference-manifest.js +1 -0
- package/app/.next-cli-build/server/app/api/auth/status/route.js +1 -1
- package/app/.next-cli-build/server/app/api/auth/status/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/aider-settings/route.js +5 -11
- package/app/.next-cli-build/server/app/api/cli-tools/aider-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js +13 -38
- 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 +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js +2 -2
- 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 +5 -2
- 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 +2 -1
- package/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js +2 -2
- 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 +2 -2
- 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 +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 +5 -9
- 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 +5 -2
- 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/gemini-cli-settings/route.js +9 -10
- package/app/.next-cli-build/server/app/api/cli-tools/gemini-cli-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/grok-settings/route.js +9 -6
- package/app/.next-cli-build/server/app/api/cli-tools/grok-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js +8 -10
- 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 +6 -2
- 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 +5 -2
- 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 +1 -2
- 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 +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/pi-settings/route.js +5 -2
- package/app/.next-cli-build/server/app/api/cli-tools/pi-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/combos/[id]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/combos/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/combos/route.js +1 -1
- package/app/.next-cli-build/server/app/api/combos/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/headroom/proxy/[...path]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/headroom/proxy/[...path]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/headroom/start/route.js +1 -1
- package/app/.next-cli-build/server/app/api/headroom/start/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/headroom/status/route.js +1 -1
- package/app/.next-cli-build/server/app/api/headroom/status/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/headroom/stop/route.js +1 -1
- package/app/.next-cli-build/server/app/api/headroom/stop/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/health/route.js +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/keys/[id]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/keys/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/keys/route.js +1 -1
- package/app/.next-cli-build/server/app/api/keys/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/locale/route.js +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 +2 -2
- 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 +5 -5
- package/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js +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/mgmt/v1/combos/[id]/route.js +1 -0
- package/app/.next-cli-build/server/app/api/mgmt/v1/combos/[id]/route.js.nft.json +1 -0
- package/app/.next-cli-build/server/app/api/mgmt/v1/combos/[id]/route_client-reference-manifest.js +1 -0
- package/app/.next-cli-build/server/app/api/mgmt/v1/combos/[id]/strategy/route.js +1 -0
- package/app/.next-cli-build/server/app/api/mgmt/v1/combos/[id]/strategy/route.js.nft.json +1 -0
- package/app/.next-cli-build/server/app/api/mgmt/v1/combos/[id]/strategy/route_client-reference-manifest.js +1 -0
- package/app/.next-cli-build/server/app/api/mgmt/v1/combos/route.js +1 -0
- package/app/.next-cli-build/server/app/api/mgmt/v1/combos/route.js.nft.json +1 -0
- package/app/.next-cli-build/server/app/api/mgmt/v1/combos/route_client-reference-manifest.js +1 -0
- package/app/.next-cli-build/server/app/api/mgmt/v1/health/route.js +1 -0
- package/app/.next-cli-build/server/app/api/mgmt/v1/health/route.js.nft.json +1 -0
- package/app/.next-cli-build/server/app/api/mgmt/v1/health/route_client-reference-manifest.js +1 -0
- package/app/.next-cli-build/server/app/api/mgmt/v1/providers/route.js +1 -0
- package/app/.next-cli-build/server/app/api/mgmt/v1/providers/route.js.nft.json +1 -0
- package/app/.next-cli-build/server/app/api/mgmt/v1/providers/route_client-reference-manifest.js +1 -0
- package/app/.next-cli-build/server/app/api/mgmt/v1/routing/route.js +1 -0
- package/app/.next-cli-build/server/app/api/mgmt/v1/routing/route.js.nft.json +1 -0
- package/app/.next-cli-build/server/app/api/mgmt/v1/routing/route_client-reference-manifest.js +1 -0
- package/app/.next-cli-build/server/app/api/mgmt/v1/usage/route.js +1 -0
- package/app/.next-cli-build/server/app/api/mgmt/v1/usage/route.js.nft.json +1 -0
- package/app/.next-cli-build/server/app/api/mgmt/v1/usage/route_client-reference-manifest.js +1 -0
- package/app/.next-cli-build/server/app/api/mgmt/v1/version/route.js +1 -0
- package/app/.next-cli-build/server/app/api/mgmt/v1/version/route.js.nft.json +1 -0
- package/app/.next-cli-build/server/app/api/mgmt/v1/version/route_client-reference-manifest.js +1 -0
- package/app/.next-cli-build/server/app/api/models/alias/route.js +1 -1
- package/app/.next-cli-build/server/app/api/models/alias/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/availability/route.js +1 -1
- package/app/.next-cli-build/server/app/api/models/availability/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/custom/route.js +1 -1
- package/app/.next-cli-build/server/app/api/models/custom/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/disabled/route.js +1 -1
- package/app/.next-cli-build/server/app/api/models/disabled/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/route.js +1 -1
- package/app/.next-cli-build/server/app/api/models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/test/route.js +1 -1
- package/app/.next-cli-build/server/app/api/models/test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/codex/bulk-import/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/codex/bulk-import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js +2 -2
- package/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/api-key/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/api-key/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/import-cli-proxy/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/import-cli-proxy/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pricing/route.js +1 -1
- package/app/.next-cli-build/server/app/api/pricing/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/provider-nodes/route.js +1 -1
- package/app/.next-cli-build/server/app/api/provider-nodes/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js +1 -1
- package/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/model-probes/batch/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/model-probes/batch/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/model-probes/cache/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/model-probes/cache/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/model-probes/prepare/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/model-probes/prepare/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/model-probes/remove-unavailable/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/model-probes/remove-unavailable/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/models/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/test/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/client/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/client/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/kilo/free-models/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/kilo/free-models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/suggested-models/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/suggested-models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/test-batch/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/test-batch/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/validate/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/validate/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/routing/feedback/route.js +1 -0
- package/app/.next-cli-build/server/app/api/routing/feedback/route.js.nft.json +1 -0
- package/app/.next-cli-build/server/app/api/routing/feedback/route_client-reference-manifest.js +1 -0
- package/app/.next-cli-build/server/app/api/routing/insights/route.js +1 -1
- package/app/.next-cli-build/server/app/api/routing/insights/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/routing/learn/route.js +1 -1
- package/app/.next-cli-build/server/app/api/routing/learn/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/routing/stats/route.js +1 -0
- package/app/.next-cli-build/server/app/api/routing/stats/route.js.nft.json +1 -0
- package/app/.next-cli-build/server/app/api/routing/stats/route_client-reference-manifest.js +1 -0
- package/app/.next-cli-build/server/app/api/routing/versions/promote/route.js +1 -1
- package/app/.next-cli-build/server/app/api/routing/versions/promote/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/routing/versions/rollback/route.js +1 -1
- package/app/.next-cli-build/server/app/api/routing/versions/rollback/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/settings/database/route.js +1 -1
- package/app/.next-cli-build/server/app/api/settings/database/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/settings/proxy-test/route.js +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/route.js +1 -1
- package/app/.next-cli-build/server/app/api/settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/shutdown/route.js +1 -1
- package/app/.next-cli-build/server/app/api/shutdown/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/skills/[id]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/skills/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tags/route.js +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/token-saver/vault-stats/route.js +1 -0
- package/app/.next-cli-build/server/app/api/token-saver/vault-stats/route.js.nft.json +1 -0
- package/app/.next-cli-build/server/app/api/token-saver/vault-stats/route_client-reference-manifest.js +1 -0
- 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 +2 -2
- 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 +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 +1 -1
- package/app/.next-cli-build/server/app/api/translator/save/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/translator/send/route.js +1 -1
- package/app/.next-cli-build/server/app/api/translator/send/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/translator/translate/route.js +1 -1
- package/app/.next-cli-build/server/app/api/translator/translate/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/[connectionId]/codex-reset-credits/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/[connectionId]/codex-reset-credits/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/chart/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/chart/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/history/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/history/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/logs/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/logs/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/providers/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/providers/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/request-details/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/request-details/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/request-logs/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/request-logs/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/stats/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/stats/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/stream/route.js +2 -2
- package/app/.next-cli-build/server/app/api/usage/stream/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/api/chat/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/api/chat/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/audio/voices/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/audio/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/embeddings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/embeddings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/images/generations/route.js +2 -2
- 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 +1 -1
- package/app/.next-cli-build/server/app/api/v1/messages/count_tokens/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/messages/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/messages/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/models/[kind]/route.js +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 +1 -1
- package/app/.next-cli-build/server/app/api/v1/models/info/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/models/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/responses/compact/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/responses/compact/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/responses/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/responses/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/search/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/search/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/web/fetch/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/web/fetch/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1beta/models/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1beta/models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/version/route.js +1 -1
- package/app/.next-cli-build/server/app/api/version/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/version/shutdown/route.js +1 -1
- package/app/.next-cli-build/server/app/api/version/shutdown/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/version/update/route.js +1 -1
- package/app/.next-cli-build/server/app/api/version/update/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/callback/page.js +2 -2
- 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 +5 -5
- package/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/callback.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/callback.segments/_index.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/callback.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/callback.segments/callback/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/callback.segments/callback.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing/page.js +2 -2
- 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 +5 -5
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +5 -5
- 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 +4 -4
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/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/favicon.ico/route.js +1 -1
- package/app/.next-cli-build/server/app/favicon.ico/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/index.html +1 -1
- package/app/.next-cli-build/server/app/index.rsc +4 -4
- package/app/.next-cli-build/server/app/index.segments/__PAGE__.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/index.segments/_full.segment.rsc +4 -4
- 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 +4 -4
- package/app/.next-cli-build/server/app/index.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/landing/page.js +2 -2
- 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 +5 -5
- package/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/landing.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/landing.segments/_index.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/landing.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/landing.segments/landing/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/landing.segments/landing.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/login/page.js +2 -2
- package/app/.next-cli-build/server/app/login/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/login/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/login.html +1 -1
- package/app/.next-cli-build/server/app/login.rsc +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 +4 -4
- package/app/.next-cli-build/server/app/login.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/login.segments/login/__PAGE__.segment.rsc +1 -1
- 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 +2 -2
- package/app/.next-cli-build/server/app/manifest.webmanifest/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/page.js +2 -2
- package/app/.next-cli-build/server/app/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app-paths-manifest.json +17 -7
- package/app/.next-cli-build/server/chunks/1062.js +64 -0
- package/app/.next-cli-build/server/chunks/1064.js +104 -0
- package/app/.next-cli-build/server/chunks/1294.js +49 -0
- package/app/.next-cli-build/server/chunks/159.js +1 -0
- package/app/.next-cli-build/server/chunks/1808.js +1 -0
- package/app/.next-cli-build/server/chunks/194.js +1 -0
- package/app/.next-cli-build/server/chunks/1998.js +1 -1
- package/app/.next-cli-build/server/chunks/241.js +1 -1
- package/app/.next-cli-build/server/chunks/2712.js +3 -0
- package/app/.next-cli-build/server/chunks/{9528.js → 2750.js} +2 -3
- package/app/.next-cli-build/server/chunks/2925.js +1 -0
- package/app/.next-cli-build/server/chunks/3072.js +2 -0
- package/app/.next-cli-build/server/chunks/3075.js +1 -0
- package/app/.next-cli-build/server/chunks/319.js +3 -3
- package/app/.next-cli-build/server/chunks/3535.js +1 -1
- package/app/.next-cli-build/server/chunks/3546.js +1 -1
- package/app/.next-cli-build/server/chunks/3593.js +2 -2
- package/app/.next-cli-build/server/chunks/3675.js +1 -0
- package/app/.next-cli-build/server/chunks/369.js +70 -0
- package/app/.next-cli-build/server/chunks/3904.js +1 -0
- package/app/.next-cli-build/server/chunks/3986.js +49 -14
- package/app/.next-cli-build/server/chunks/4126.js +5 -0
- package/app/.next-cli-build/server/chunks/{2422.js → 4176.js} +1 -1
- package/app/.next-cli-build/server/chunks/4192.js +1 -0
- package/app/.next-cli-build/server/chunks/4194.js +1 -1
- package/app/.next-cli-build/server/chunks/440.js +26 -0
- package/app/.next-cli-build/server/chunks/4646.js +1 -0
- package/app/.next-cli-build/server/chunks/4739.js +2 -2
- package/app/.next-cli-build/server/chunks/4746.js +1 -1
- package/app/.next-cli-build/server/chunks/4776.js +33 -0
- package/app/.next-cli-build/server/chunks/4780.js +2 -2
- package/app/.next-cli-build/server/chunks/4803.js +9 -0
- package/app/.next-cli-build/server/chunks/4904.js +10 -0
- package/app/.next-cli-build/server/chunks/507.js +1 -1
- package/app/.next-cli-build/server/chunks/5115.js +67 -0
- package/app/.next-cli-build/server/chunks/5139.js +1 -0
- package/app/.next-cli-build/server/chunks/5258.js +2 -2
- package/app/.next-cli-build/server/chunks/5350.js +1 -0
- package/app/.next-cli-build/server/chunks/5615.js +3 -3
- package/app/.next-cli-build/server/chunks/5821.js +1 -0
- package/app/.next-cli-build/server/chunks/5920.js +17 -0
- package/app/.next-cli-build/server/chunks/6103.js +1 -0
- package/app/.next-cli-build/server/chunks/615.js +1 -1
- package/app/.next-cli-build/server/chunks/6182.js +3 -3
- package/app/.next-cli-build/server/chunks/6252.js +9 -0
- package/app/.next-cli-build/server/chunks/6448.js +109 -0
- package/app/.next-cli-build/server/chunks/{4206.js → 6470.js} +1 -1
- package/app/.next-cli-build/server/chunks/6492.js +1 -0
- package/app/.next-cli-build/server/chunks/6844.js +1 -1
- package/app/.next-cli-build/server/chunks/698.js +1 -1
- package/app/.next-cli-build/server/chunks/7141.js +1 -0
- package/app/.next-cli-build/server/chunks/7155.js +1 -0
- package/app/.next-cli-build/server/chunks/7250.js +1 -0
- package/app/.next-cli-build/server/chunks/7335.js +1 -0
- package/app/.next-cli-build/server/chunks/7662.js +1 -0
- package/app/.next-cli-build/server/chunks/7753.js +1 -0
- package/app/.next-cli-build/server/chunks/7828.js +1 -0
- package/app/.next-cli-build/server/chunks/7965.js +2 -2
- package/app/.next-cli-build/server/chunks/8062.js +9 -0
- package/app/.next-cli-build/server/chunks/8117.js +1 -0
- package/app/.next-cli-build/server/chunks/8129.js +1 -0
- package/app/.next-cli-build/server/chunks/8400.js +153 -0
- package/app/.next-cli-build/server/chunks/8469.js +9 -0
- package/app/.next-cli-build/server/chunks/8520.js +1 -1
- package/app/.next-cli-build/server/chunks/869.js +1 -0
- package/app/.next-cli-build/server/chunks/8775.js +1 -1
- package/app/.next-cli-build/server/chunks/8998.js +486 -0
- package/app/.next-cli-build/server/chunks/9046.js +1 -0
- package/app/.next-cli-build/server/chunks/9062.js +104 -0
- package/app/.next-cli-build/server/chunks/9261.js +88 -0
- package/app/.next-cli-build/server/chunks/9291.js +1 -0
- package/app/.next-cli-build/server/chunks/9397.js +1 -0
- package/app/.next-cli-build/server/chunks/9489.js +8 -0
- package/app/.next-cli-build/server/chunks/9508.js +45 -0
- package/app/.next-cli-build/server/chunks/9696.js +3 -3
- package/app/.next-cli-build/server/chunks/995.js +1 -0
- package/app/.next-cli-build/server/chunks/static/media/catalog.e7ada387.json +1710 -0
- package/app/.next-cli-build/server/instrumentation.js +1 -0
- package/app/.next-cli-build/server/middleware-build-manifest.js +1 -1
- package/app/.next-cli-build/server/middleware.js +11 -11
- 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/server/server-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/server-reference-manifest.json +1 -1
- package/app/.next-cli-build/server/webpack-runtime.js +1 -1
- package/app/.next-cli-build/static/TXnbOJZ6FVNX0p7oT_f3I/_buildManifest.js +1 -0
- package/app/.next-cli-build/static/chunks/1321-e3e6d10c0bafafeb.js +1 -0
- package/app/.next-cli-build/static/chunks/136-b76ff55769d5ecb1.js +1 -0
- package/app/.next-cli-build/static/chunks/2280-61262f8359f37a85.js +64 -0
- package/app/.next-cli-build/static/chunks/2493-6241eb181f2ecb6e.js +67 -0
- package/app/.next-cli-build/static/chunks/5497-aa5f62602eba33e9.js +7 -0
- package/app/.next-cli-build/static/chunks/7592-bbf465c7acd2478e.js +1 -0
- package/app/.next-cli-build/static/chunks/782-3676be0287313117.js +3 -0
- package/app/.next-cli-build/static/chunks/8500-287dd3e5d372ba6f.js +1 -0
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/agent-library/page-d720efb4c9d427e6.js +1 -0
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/basic-chat/page-04509a38b9fd3dcf.js +1 -0
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/cli-tools/[toolId]/page-fa35870caaeabe20.js +1 -0
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/cli-tools/{page-88244cb193592f8f.js → page-aa9c65a5e73a3f5d.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/combos/page-a8d77d24b4c71915.js +1 -0
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/combos/routing/page-95f09ae849f539d6.js +1 -0
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/console-log/page-6678759c536b4008.js +1 -0
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/endpoint/page-59e92d48daea1aed.js +3 -0
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page-183cf5498e6d3e42.js +59 -0
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/page-b67e7e3b9acaf1cc.js +1 -0
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/combo/[id]/page-a4bad553cba810e7.js +4 -0
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/{page-36448aa4e37c7802.js → page-0568602ac2385103.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/web/page-f6e3507247a819e5.js +1 -0
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/mitm/{page-755ed32651028f99.js → page-08fe6612a31239da.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/page-27ae229b00137a0b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/profile/page-a1ab95a02951c91d.js +1 -0
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-0d7fcdbff356b2ab.js +10 -0
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/new/page-608cdc11e7047159.js +1 -0
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/page-ad84a479883e6cc3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/quota/page-f312c1076859630e.js +1 -0
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/skills/[id]/page-90277b8688f387c1.js +1 -0
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/skills/{page-77bb7400c2be9752.js → page-33e127c15efc66a5.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/token-saver/page-0f74a450b98fa125.js +1 -0
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/translator/page-ad2eda4b48c9319b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/usage/page-025d20cc7b091120.js +1 -0
- package/app/.next-cli-build/static/chunks/app/(dashboard)/layout-b06b9aec5dcdf486.js +1 -0
- package/app/.next-cli-build/static/chunks/app/_global-error/page-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/agent-library/catalog/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/agent-library/doctor/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/agent-library/export/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/agent-library/mcp/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/agent-library/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/agent-library/skills/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/agent-library/sync/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/agent-library/updates/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/auth/status/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/aider-settings/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/all-statuses/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/claude-settings/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/cline-settings/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/codex-settings/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-registry/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-tools/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-settings/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/deepseek-tui-settings/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/droid-settings/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/gemini-cli-settings/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/grok-settings/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/hermes-settings/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/jcode-settings/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/kilo-settings/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/openclaw-settings/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/opencode-settings/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/pi-settings/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/combos/[id]/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/combos/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/headroom/proxy/[...path]/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/headroom/start/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/headroom/status/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/headroom/stop/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/health/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/keys/[id]/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/keys/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/locale/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/message/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/sse/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/deepgram/voices/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/inworld/voices/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/minimax/voices/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/voices/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/mgmt/v1/combos/[id]/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/mgmt/v1/combos/[id]/strategy/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/mgmt/v1/combos/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/mgmt/v1/health/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/mgmt/v1/providers/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/mgmt/v1/routing/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/mgmt/v1/usage/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/mgmt/v1/version/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/models/alias/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/models/availability/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/models/custom/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/models/disabled/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/models/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/models/test/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/[provider]/[action]/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/codex/bulk-import/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/codex/import-token/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/cursor/auto-import/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/cursor/import/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/gitlab/pat/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/iflow/cookie/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/api-key/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/auto-import/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import-cli-proxy/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-authorize/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-exchange/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/pricing/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/provider-nodes/[id]/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/provider-nodes/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/provider-nodes/validate/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/model-probes/batch/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/model-probes/cache/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/model-probes/prepare/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/model-probes/remove-unavailable/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/models/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/test/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/test-models/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/client/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/kilo/free-models/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/suggested-models/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/test-batch/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/validate/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/routing/feedback/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/routing/insights/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/routing/learn/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/routing/stats/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/routing/versions/promote/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/routing/versions/rollback/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/settings/database/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/settings/proxy-test/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/settings/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/shutdown/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/skills/[id]/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/tags/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/token-saver/vault-stats/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/translator/console-logs/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/translator/console-logs/stream/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/translator/load/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/translator/save/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/translator/send/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/translator/translate/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/codex-reset-credits/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/usage/chart/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/usage/history/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/usage/logs/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/usage/providers/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/usage/request-details/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/usage/request-logs/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/usage/stats/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/usage/stream/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/api/chat/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/audio/speech/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/audio/transcriptions/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/audio/voices/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/chat/completions/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/embeddings/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/images/generations/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/messages/count_tokens/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/messages/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/models/[kind]/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/models/info/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/models/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/responses/compact/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/responses/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/search/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/web/fetch/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1beta/models/[...path]/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1beta/models/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/version/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/version/shutdown/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/version/update/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/callback/page-5c1d863ff86ddc6e.js +1 -0
- package/app/.next-cli-build/static/chunks/app/dashboard/settings/pricing/page-4cfc7195d2a8bf0e.js +1 -0
- package/app/.next-cli-build/static/chunks/app/landing/page-9e06d57d9b215fd7.js +1 -0
- package/app/.next-cli-build/static/chunks/app/login/page-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/manifest.webmanifest/route-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/page-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/app-error-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/forbidden-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/not-found-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/unauthorized-554d472d679429b3.js +1 -0
- package/app/.next-cli-build/static/chunks/webpack-57b54315eb9fa808.js +1 -0
- package/app/.next-cli-build/static/css/92a5708a6b29ef8c.css +1 -0
- package/app/.next-cli-build/static/media/catalog.e7ada387.json +1710 -0
- package/app/custom-server.js +5 -5
- package/app/node_modules/{next/node_modules/postcss → postcss}/lib/container.js +26 -18
- package/app/node_modules/{next/node_modules/postcss → postcss}/lib/css-syntax-error.js +47 -14
- package/app/node_modules/{next/node_modules/postcss → postcss}/lib/fromJSON.js +23 -9
- package/app/node_modules/{next/node_modules/postcss → postcss}/lib/input.js +61 -33
- package/app/node_modules/{next/node_modules/postcss → postcss}/lib/lazy-result.js +50 -37
- package/app/node_modules/{next/node_modules/postcss → postcss}/lib/map-generator.js +26 -9
- package/app/node_modules/{next/node_modules/postcss → postcss}/lib/no-work-result.js +57 -55
- package/app/node_modules/{next/node_modules/postcss → postcss}/lib/node.js +110 -35
- package/app/node_modules/{next/node_modules/postcss → postcss}/lib/parser.js +46 -38
- package/app/node_modules/{next/node_modules/postcss → postcss}/lib/previous-map.js +30 -11
- package/app/node_modules/{next/node_modules/postcss → postcss}/lib/processor.js +7 -7
- package/app/node_modules/{next/node_modules/postcss → postcss}/lib/result.js +5 -5
- package/app/node_modules/{next/node_modules/postcss → postcss}/lib/stringifier.js +41 -20
- package/app/node_modules/{next/node_modules/postcss → postcss}/lib/tokenize.js +6 -2
- package/app/node_modules/{next/node_modules/postcss → postcss}/package.json +48 -48
- package/app/open-sse/package.json +4 -0
- package/app/open-sse/providers/generated/catalog.json +1710 -0
- package/app/package.json +22 -10
- package/app/public/i18n/literals/zh-CN.json +8 -0
- package/app/server.js +1 -1
- package/app/src/lib/db/adapters/betterSqliteAdapter.js +2 -3
- package/app/src/lib/db/adapters/bunSqliteAdapter.js +0 -2
- package/app/src/lib/db/adapters/nodeSqliteAdapter.js +0 -2
- package/app/src/lib/db/adapters/sqljsAdapter.js +23 -4
- package/app/src/lib/db/migrate.js +15 -4
- package/app/src/lib/updater/updater.js +67 -9
- package/app/src/shared/utils/apiKey.js +3 -7
- package/cli.js +205 -180
- package/hooks/sqliteRuntime.js +1 -7
- package/package.json +2 -2
- package/src/cli/api/client.js +3 -20
- package/src/cli/menus/settings.js +3 -62
- package/src/cli/tray/tray.js +18 -26
- package/src/shared/dataDir.js +61 -0
- package/src/shared/disableMitm.js +102 -0
- package/src/shared/openBrowser.js +43 -0
- package/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js +0 -2
- package/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js.nft.json +0 -1
- package/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route_client-reference-manifest.js +0 -1
- package/app/.next-cli-build/server/app/api/init/route.js +0 -1
- package/app/.next-cli-build/server/app/api/init/route.js.nft.json +0 -1
- package/app/.next-cli-build/server/app/api/init/route_client-reference-manifest.js +0 -1
- package/app/.next-cli-build/server/app/dashboard/agent-library.html +0 -1
- package/app/.next-cli-build/server/app/dashboard/agent-library.meta +0 -17
- package/app/.next-cli-build/server/app/dashboard/agent-library.rsc +0 -30
- package/app/.next-cli-build/server/app/dashboard/agent-library.segments/!KGRhc2hib2FyZCk/dashboard/agent-library/__PAGE__.segment.rsc +0 -9
- package/app/.next-cli-build/server/app/dashboard/agent-library.segments/!KGRhc2hib2FyZCk/dashboard/agent-library.segment.rsc +0 -5
- package/app/.next-cli-build/server/app/dashboard/agent-library.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +0 -5
- package/app/.next-cli-build/server/app/dashboard/agent-library.segments/!KGRhc2hib2FyZCk.segment.rsc +0 -7
- package/app/.next-cli-build/server/app/dashboard/agent-library.segments/_full.segment.rsc +0 -30
- package/app/.next-cli-build/server/app/dashboard/agent-library.segments/_head.segment.rsc +0 -6
- package/app/.next-cli-build/server/app/dashboard/agent-library.segments/_index.segment.rsc +0 -8
- package/app/.next-cli-build/server/app/dashboard/agent-library.segments/_tree.segment.rsc +0 -8
- package/app/.next-cli-build/server/app/dashboard/basic-chat.html +0 -1
- package/app/.next-cli-build/server/app/dashboard/basic-chat.meta +0 -17
- package/app/.next-cli-build/server/app/dashboard/basic-chat.rsc +0 -27
- package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +0 -6
- package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat.segment.rsc +0 -5
- package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +0 -5
- package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk.segment.rsc +0 -7
- package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_full.segment.rsc +0 -27
- package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_head.segment.rsc +0 -6
- package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_index.segment.rsc +0 -8
- package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +0 -8
- package/app/.next-cli-build/server/app/dashboard/cli-tools.html +0 -1
- package/app/.next-cli-build/server/app/dashboard/cli-tools.meta +0 -17
- package/app/.next-cli-build/server/app/dashboard/cli-tools.rsc +0 -28
- package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +0 -6
- package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools.segment.rsc +0 -5
- package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +0 -5
- package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk.segment.rsc +0 -7
- package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_full.segment.rsc +0 -28
- package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_head.segment.rsc +0 -6
- package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_index.segment.rsc +0 -8
- package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +0 -8
- package/app/.next-cli-build/server/app/dashboard/combos/routing.html +0 -1
- package/app/.next-cli-build/server/app/dashboard/combos/routing.meta +0 -18
- package/app/.next-cli-build/server/app/dashboard/combos/routing.rsc +0 -30
- package/app/.next-cli-build/server/app/dashboard/combos/routing.segments/!KGRhc2hib2FyZCk/dashboard/combos/routing/__PAGE__.segment.rsc +0 -9
- package/app/.next-cli-build/server/app/dashboard/combos/routing.segments/!KGRhc2hib2FyZCk/dashboard/combos/routing.segment.rsc +0 -5
- package/app/.next-cli-build/server/app/dashboard/combos/routing.segments/!KGRhc2hib2FyZCk/dashboard/combos.segment.rsc +0 -5
- package/app/.next-cli-build/server/app/dashboard/combos/routing.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +0 -5
- package/app/.next-cli-build/server/app/dashboard/combos/routing.segments/!KGRhc2hib2FyZCk.segment.rsc +0 -7
- package/app/.next-cli-build/server/app/dashboard/combos/routing.segments/_full.segment.rsc +0 -30
- package/app/.next-cli-build/server/app/dashboard/combos/routing.segments/_head.segment.rsc +0 -6
- package/app/.next-cli-build/server/app/dashboard/combos/routing.segments/_index.segment.rsc +0 -8
- package/app/.next-cli-build/server/app/dashboard/combos/routing.segments/_tree.segment.rsc +0 -8
- package/app/.next-cli-build/server/app/dashboard/combos.html +0 -1
- package/app/.next-cli-build/server/app/dashboard/combos.meta +0 -17
- package/app/.next-cli-build/server/app/dashboard/combos.rsc +0 -28
- package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +0 -6
- package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos.segment.rsc +0 -5
- package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +0 -5
- package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk.segment.rsc +0 -7
- package/app/.next-cli-build/server/app/dashboard/combos.segments/_full.segment.rsc +0 -28
- package/app/.next-cli-build/server/app/dashboard/combos.segments/_head.segment.rsc +0 -6
- package/app/.next-cli-build/server/app/dashboard/combos.segments/_index.segment.rsc +0 -8
- package/app/.next-cli-build/server/app/dashboard/combos.segments/_tree.segment.rsc +0 -8
- package/app/.next-cli-build/server/app/dashboard/endpoint.html +0 -1
- package/app/.next-cli-build/server/app/dashboard/endpoint.meta +0 -17
- package/app/.next-cli-build/server/app/dashboard/endpoint.rsc +0 -28
- package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +0 -6
- package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint.segment.rsc +0 -5
- package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +0 -5
- package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk.segment.rsc +0 -7
- package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_full.segment.rsc +0 -28
- package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_head.segment.rsc +0 -6
- package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_index.segment.rsc +0 -8
- package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_tree.segment.rsc +0 -8
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.html +0 -1
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.meta +0 -18
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.rsc +0 -30
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web/__PAGE__.segment.rsc +0 -9
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web.segment.rsc +0 -5
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers.segment.rsc +0 -5
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +0 -5
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk.segment.rsc +0 -7
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_full.segment.rsc +0 -30
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_head.segment.rsc +0 -6
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_index.segment.rsc +0 -8
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_tree.segment.rsc +0 -8
- package/app/.next-cli-build/server/app/dashboard/media-providers.html +0 -1
- package/app/.next-cli-build/server/app/dashboard/media-providers.meta +0 -17
- package/app/.next-cli-build/server/app/dashboard/media-providers.rsc +0 -30
- package/app/.next-cli-build/server/app/dashboard/media-providers.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/__PAGE__.segment.rsc +0 -9
- package/app/.next-cli-build/server/app/dashboard/media-providers.segments/!KGRhc2hib2FyZCk/dashboard/media-providers.segment.rsc +0 -5
- package/app/.next-cli-build/server/app/dashboard/media-providers.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +0 -5
- package/app/.next-cli-build/server/app/dashboard/media-providers.segments/!KGRhc2hib2FyZCk.segment.rsc +0 -7
- package/app/.next-cli-build/server/app/dashboard/media-providers.segments/_full.segment.rsc +0 -30
- package/app/.next-cli-build/server/app/dashboard/media-providers.segments/_head.segment.rsc +0 -6
- package/app/.next-cli-build/server/app/dashboard/media-providers.segments/_index.segment.rsc +0 -8
- package/app/.next-cli-build/server/app/dashboard/media-providers.segments/_tree.segment.rsc +0 -8
- package/app/.next-cli-build/server/app/dashboard/mitm.html +0 -1
- package/app/.next-cli-build/server/app/dashboard/mitm.meta +0 -17
- package/app/.next-cli-build/server/app/dashboard/mitm.rsc +0 -27
- package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +0 -6
- package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm.segment.rsc +0 -5
- package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +0 -5
- package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk.segment.rsc +0 -7
- package/app/.next-cli-build/server/app/dashboard/mitm.segments/_full.segment.rsc +0 -27
- package/app/.next-cli-build/server/app/dashboard/mitm.segments/_head.segment.rsc +0 -6
- package/app/.next-cli-build/server/app/dashboard/mitm.segments/_index.segment.rsc +0 -8
- package/app/.next-cli-build/server/app/dashboard/mitm.segments/_tree.segment.rsc +0 -8
- package/app/.next-cli-build/server/app/dashboard/profile.html +0 -1
- package/app/.next-cli-build/server/app/dashboard/profile.meta +0 -17
- package/app/.next-cli-build/server/app/dashboard/profile.rsc +0 -28
- package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +0 -6
- package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile.segment.rsc +0 -5
- package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +0 -5
- package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk.segment.rsc +0 -7
- package/app/.next-cli-build/server/app/dashboard/profile.segments/_full.segment.rsc +0 -28
- package/app/.next-cli-build/server/app/dashboard/profile.segments/_head.segment.rsc +0 -6
- package/app/.next-cli-build/server/app/dashboard/profile.segments/_index.segment.rsc +0 -8
- package/app/.next-cli-build/server/app/dashboard/profile.segments/_tree.segment.rsc +0 -8
- package/app/.next-cli-build/server/app/dashboard/providers/new.html +0 -1
- package/app/.next-cli-build/server/app/dashboard/providers/new.meta +0 -18
- package/app/.next-cli-build/server/app/dashboard/providers/new.rsc +0 -30
- package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +0 -9
- package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new.segment.rsc +0 -5
- package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +0 -5
- package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +0 -5
- package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk.segment.rsc +0 -7
- package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_full.segment.rsc +0 -30
- package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_head.segment.rsc +0 -6
- package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_index.segment.rsc +0 -8
- package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_tree.segment.rsc +0 -8
- package/app/.next-cli-build/server/app/dashboard/providers.html +0 -1
- package/app/.next-cli-build/server/app/dashboard/providers.meta +0 -17
- package/app/.next-cli-build/server/app/dashboard/providers.rsc +0 -28
- package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +0 -6
- package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +0 -5
- package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +0 -5
- package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk.segment.rsc +0 -7
- package/app/.next-cli-build/server/app/dashboard/providers.segments/_full.segment.rsc +0 -28
- package/app/.next-cli-build/server/app/dashboard/providers.segments/_head.segment.rsc +0 -6
- package/app/.next-cli-build/server/app/dashboard/providers.segments/_index.segment.rsc +0 -8
- package/app/.next-cli-build/server/app/dashboard/providers.segments/_tree.segment.rsc +0 -8
- package/app/.next-cli-build/server/app/dashboard/quota.html +0 -2
- package/app/.next-cli-build/server/app/dashboard/quota.meta +0 -17
- package/app/.next-cli-build/server/app/dashboard/quota.rsc +0 -28
- package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +0 -7
- package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota.segment.rsc +0 -5
- package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +0 -5
- package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk.segment.rsc +0 -7
- package/app/.next-cli-build/server/app/dashboard/quota.segments/_full.segment.rsc +0 -28
- package/app/.next-cli-build/server/app/dashboard/quota.segments/_head.segment.rsc +0 -6
- package/app/.next-cli-build/server/app/dashboard/quota.segments/_index.segment.rsc +0 -8
- package/app/.next-cli-build/server/app/dashboard/quota.segments/_tree.segment.rsc +0 -8
- package/app/.next-cli-build/server/app/dashboard/skills.html +0 -1
- package/app/.next-cli-build/server/app/dashboard/skills.meta +0 -17
- package/app/.next-cli-build/server/app/dashboard/skills.rsc +0 -30
- package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills/__PAGE__.segment.rsc +0 -9
- package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills.segment.rsc +0 -5
- package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +0 -5
- package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk.segment.rsc +0 -7
- package/app/.next-cli-build/server/app/dashboard/skills.segments/_full.segment.rsc +0 -30
- package/app/.next-cli-build/server/app/dashboard/skills.segments/_head.segment.rsc +0 -6
- package/app/.next-cli-build/server/app/dashboard/skills.segments/_index.segment.rsc +0 -8
- package/app/.next-cli-build/server/app/dashboard/skills.segments/_tree.segment.rsc +0 -8
- package/app/.next-cli-build/server/app/dashboard/token-saver.html +0 -1
- package/app/.next-cli-build/server/app/dashboard/token-saver.meta +0 -17
- package/app/.next-cli-build/server/app/dashboard/token-saver.rsc +0 -27
- package/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver/__PAGE__.segment.rsc +0 -6
- package/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver.segment.rsc +0 -5
- package/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +0 -5
- package/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk.segment.rsc +0 -7
- package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_full.segment.rsc +0 -27
- package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_head.segment.rsc +0 -6
- package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_index.segment.rsc +0 -8
- package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_tree.segment.rsc +0 -8
- package/app/.next-cli-build/server/app/dashboard/translator.html +0 -1
- package/app/.next-cli-build/server/app/dashboard/translator.meta +0 -17
- package/app/.next-cli-build/server/app/dashboard/translator.rsc +0 -30
- package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +0 -9
- package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator.segment.rsc +0 -5
- package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +0 -5
- package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk.segment.rsc +0 -7
- package/app/.next-cli-build/server/app/dashboard/translator.segments/_full.segment.rsc +0 -30
- package/app/.next-cli-build/server/app/dashboard/translator.segments/_head.segment.rsc +0 -6
- package/app/.next-cli-build/server/app/dashboard/translator.segments/_index.segment.rsc +0 -8
- package/app/.next-cli-build/server/app/dashboard/translator.segments/_tree.segment.rsc +0 -8
- package/app/.next-cli-build/server/app/dashboard/usage.html +0 -1
- package/app/.next-cli-build/server/app/dashboard/usage.meta +0 -17
- package/app/.next-cli-build/server/app/dashboard/usage.rsc +0 -30
- package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +0 -9
- package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage.segment.rsc +0 -5
- package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +0 -5
- package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk.segment.rsc +0 -7
- package/app/.next-cli-build/server/app/dashboard/usage.segments/_full.segment.rsc +0 -30
- package/app/.next-cli-build/server/app/dashboard/usage.segments/_head.segment.rsc +0 -6
- package/app/.next-cli-build/server/app/dashboard/usage.segments/_index.segment.rsc +0 -8
- package/app/.next-cli-build/server/app/dashboard/usage.segments/_tree.segment.rsc +0 -8
- package/app/.next-cli-build/server/app/dashboard.html +0 -1
- package/app/.next-cli-build/server/app/dashboard.meta +0 -16
- package/app/.next-cli-build/server/app/dashboard.rsc +0 -28
- package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +0 -6
- package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +0 -5
- package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk.segment.rsc +0 -7
- package/app/.next-cli-build/server/app/dashboard.segments/_full.segment.rsc +0 -28
- package/app/.next-cli-build/server/app/dashboard.segments/_head.segment.rsc +0 -6
- package/app/.next-cli-build/server/app/dashboard.segments/_index.segment.rsc +0 -8
- package/app/.next-cli-build/server/app/dashboard.segments/_tree.segment.rsc +0 -8
- package/app/.next-cli-build/server/chunks/1051.js +0 -1
- package/app/.next-cli-build/server/chunks/1220.js +0 -3
- package/app/.next-cli-build/server/chunks/1241.js +0 -1
- package/app/.next-cli-build/server/chunks/1814.js +0 -17
- package/app/.next-cli-build/server/chunks/2117.js +0 -1
- package/app/.next-cli-build/server/chunks/2280.js +0 -1
- package/app/.next-cli-build/server/chunks/2548.js +0 -67
- package/app/.next-cli-build/server/chunks/2701.js +0 -10
- package/app/.next-cli-build/server/chunks/2768.js +0 -79
- package/app/.next-cli-build/server/chunks/3943.js +0 -1
- package/app/.next-cli-build/server/chunks/4632.js +0 -1
- package/app/.next-cli-build/server/chunks/4827.js +0 -1
- package/app/.next-cli-build/server/chunks/5330.js +0 -161
- package/app/.next-cli-build/server/chunks/5612.js +0 -1
- package/app/.next-cli-build/server/chunks/5655.js +0 -1
- package/app/.next-cli-build/server/chunks/5699.js +0 -1
- package/app/.next-cli-build/server/chunks/5961.js +0 -28
- package/app/.next-cli-build/server/chunks/6040.js +0 -1
- package/app/.next-cli-build/server/chunks/6059.js +0 -1
- package/app/.next-cli-build/server/chunks/6070.js +0 -1
- package/app/.next-cli-build/server/chunks/6150.js +0 -64
- package/app/.next-cli-build/server/chunks/6306.js +0 -1
- package/app/.next-cli-build/server/chunks/6763.js +0 -1
- package/app/.next-cli-build/server/chunks/6777.js +0 -1
- package/app/.next-cli-build/server/chunks/6922.js +0 -1
- package/app/.next-cli-build/server/chunks/7651.js +0 -1
- package/app/.next-cli-build/server/chunks/8164.js +0 -67
- package/app/.next-cli-build/server/chunks/8238.js +0 -1
- package/app/.next-cli-build/server/chunks/8860.js +0 -32
- package/app/.next-cli-build/server/chunks/8895.js +0 -67
- package/app/.next-cli-build/server/chunks/8910.js +0 -8
- package/app/.next-cli-build/server/chunks/8920.js +0 -1
- package/app/.next-cli-build/server/chunks/9830.js +0 -73
- package/app/.next-cli-build/static/HFerqnfiKkxdqoMVxOfPW/_buildManifest.js +0 -1
- package/app/.next-cli-build/static/chunks/1321-39ad919b1616c75c.js +0 -1
- package/app/.next-cli-build/static/chunks/1610-cd46c6c47a9aa99a.js +0 -1
- package/app/.next-cli-build/static/chunks/1655-0df56bb46fc3a442.js +0 -73
- package/app/.next-cli-build/static/chunks/2562-ceb69ca00b47af6e.js +0 -64
- package/app/.next-cli-build/static/chunks/5242-bb1a1a7ec3bfb62f.js +0 -1
- package/app/.next-cli-build/static/chunks/5497-1ebc533b1f404c9f.js +0 -7
- package/app/.next-cli-build/static/chunks/5772-901f1092d831ec37.js +0 -3
- package/app/.next-cli-build/static/chunks/705-012db20bb6a5da8b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/agent-library/page-b6f9c90a614bfb03.js +0 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/basic-chat/page-af2d913820faedae.js +0 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/cli-tools/[toolId]/page-a777baf9c2aa43b4.js +0 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/combos/page-3f5fa0d8e152056f.js +0 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/combos/routing/page-ff92eef8e57d1447.js +0 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/console-log/page-73628e93426ae624.js +0 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/endpoint/page-a8d8d0f4bfbcfbae.js +0 -3
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page-a915efd975f6af81.js +0 -59
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/page-9cad271042843781.js +0 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/combo/[id]/page-8bff15a89ffc3746.js +0 -4
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/web/page-4d2b06f4c8d1b384.js +0 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/page-afeae41f2e9445ec.js +0 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/profile/page-ff7973275ee57a96.js +0 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-5e44267c26a7e42d.js +0 -10
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/new/page-3afd6ee04180298c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/page-4957f02eb9879798.js +0 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/quota/page-14da9269a25bd090.js +0 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/skills/[id]/page-95e55b6593bcf3f7.js +0 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/token-saver/page-54d1bd253432bc6f.js +0 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/translator/page-ef0b203963c2c25e.js +0 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/usage/page-59db0b586ad5ab45.js +0 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/layout-58013e7e99d17d70.js +0 -1
- package/app/.next-cli-build/static/chunks/app/_global-error/page-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/agent-library/catalog/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/agent-library/doctor/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/agent-library/export/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/agent-library/mcp/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/agent-library/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/agent-library/skills/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/agent-library/sync/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/auth/status/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/aider-settings/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/all-statuses/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/claude-settings/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/cline-settings/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/codex-settings/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/copilot-settings/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-registry/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-tools/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-settings/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/deepseek-tui-settings/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/droid-settings/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/gemini-cli-settings/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/grok-settings/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/hermes-settings/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/jcode-settings/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/kilo-settings/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/openclaw-settings/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/opencode-settings/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/pi-settings/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/combos/[id]/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/combos/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/headroom/proxy/[...path]/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/headroom/start/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/headroom/status/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/headroom/stop/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/health/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/init/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/keys/[id]/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/keys/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/locale/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/message/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/sse/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/deepgram/voices/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/inworld/voices/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/minimax/voices/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/voices/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/models/alias/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/models/availability/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/models/custom/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/models/disabled/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/models/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/models/test/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/[provider]/[action]/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/codex/bulk-import/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/codex/import-token/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/cursor/auto-import/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/cursor/import/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/gitlab/pat/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/iflow/cookie/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/api-key/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/auto-import/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import-cli-proxy/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-authorize/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-exchange/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/pricing/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/provider-nodes/[id]/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/provider-nodes/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/provider-nodes/validate/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/model-probes/batch/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/model-probes/cache/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/model-probes/prepare/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/model-probes/remove-unavailable/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/models/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/test/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/test-models/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/client/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/kilo/free-models/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/suggested-models/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/test-batch/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/validate/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/routing/insights/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/routing/learn/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/routing/versions/promote/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/routing/versions/rollback/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/settings/database/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/settings/proxy-test/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/settings/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/shutdown/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/skills/[id]/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/tags/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/translator/console-logs/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/translator/console-logs/stream/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/translator/load/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/translator/save/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/translator/send/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/translator/translate/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/codex-reset-credits/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/usage/chart/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/usage/history/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/usage/logs/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/usage/providers/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/usage/request-details/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/usage/request-logs/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/usage/stats/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/usage/stream/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/api/chat/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/audio/speech/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/audio/transcriptions/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/audio/voices/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/chat/completions/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/embeddings/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/images/generations/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/messages/count_tokens/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/messages/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/models/[kind]/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/models/info/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/models/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/responses/compact/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/responses/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/search/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/web/fetch/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1beta/models/[...path]/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1beta/models/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/version/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/version/shutdown/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/version/update/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/callback/page-64f2a90493720740.js +0 -1
- package/app/.next-cli-build/static/chunks/app/dashboard/settings/pricing/page-2c2051aa3be879d6.js +0 -1
- package/app/.next-cli-build/static/chunks/app/landing/page-8c76c0ea58e06a53.js +0 -1
- package/app/.next-cli-build/static/chunks/app/login/page-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/manifest.webmanifest/route-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/app/page-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/app-error-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/forbidden-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/not-found-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/unauthorized-4ff27935cdf818b5.js +0 -1
- package/app/.next-cli-build/static/chunks/webpack-868e94e9a2c8d9a9.js +0 -1
- package/app/.next-cli-build/static/css/20c5585d3269ee43.css +0 -1
- package/app/cli/.build-home/.switchboard/auth/machine-id-salt +0 -1
- package/app/cli/.build-home/.switchboard/db/data.sqlite +0 -0
- package/app/cli/.build-home/.switchboard/machine-id +0 -1
- package/app/public/i18n/literals/ar.json +0 -195
- package/app/public/i18n/literals/bn.json +0 -195
- package/app/public/i18n/literals/cs.json +0 -195
- package/app/public/i18n/literals/da.json +0 -195
- package/app/public/i18n/literals/de.json +0 -195
- package/app/public/i18n/literals/el.json +0 -195
- package/app/public/i18n/literals/es.json +0 -195
- package/app/public/i18n/literals/fa.json +0 -195
- package/app/public/i18n/literals/fi.json +0 -195
- package/app/public/i18n/literals/fr.json +0 -195
- package/app/public/i18n/literals/he.json +0 -195
- package/app/public/i18n/literals/hi.json +0 -195
- package/app/public/i18n/literals/hu.json +0 -195
- package/app/public/i18n/literals/id.json +0 -195
- package/app/public/i18n/literals/it.json +0 -195
- package/app/public/i18n/literals/ja.json +0 -195
- package/app/public/i18n/literals/ko.json +0 -195
- package/app/public/i18n/literals/nl.json +0 -195
- package/app/public/i18n/literals/no.json +0 -195
- package/app/public/i18n/literals/pl.json +0 -195
- package/app/public/i18n/literals/pt-BR.json +0 -195
- package/app/public/i18n/literals/pt-PT.json +0 -195
- package/app/public/i18n/literals/ro.json +0 -195
- package/app/public/i18n/literals/ru.json +0 -195
- package/app/public/i18n/literals/sv.json +0 -195
- package/app/public/i18n/literals/th.json +0 -195
- package/app/public/i18n/literals/tl.json +0 -195
- package/app/public/i18n/literals/tr.json +0 -195
- package/app/public/i18n/literals/uk.json +0 -195
- package/app/public/i18n/literals/ur.json +0 -195
- package/app/public/i18n/literals/vi.json +0 -195
- package/app/public/i18n/literals/zh-TW.json +0 -195
- package/app/.next-cli-build/static/{HFerqnfiKkxdqoMVxOfPW → TXnbOJZ6FVNX0p7oT_f3I}/_ssgManifest.js +0 -0
- package/app/node_modules/{next/node_modules/postcss → postcss}/lib/at-rule.js +0 -0
- package/app/node_modules/{next/node_modules/postcss → postcss}/lib/comment.js +0 -0
- package/app/node_modules/{next/node_modules/postcss → postcss}/lib/declaration.js +4 -4
- package/app/node_modules/{next/node_modules/postcss → postcss}/lib/document.js +0 -0
- package/app/node_modules/{next/node_modules/postcss → postcss}/lib/list.js +0 -0
- package/app/node_modules/{next/node_modules/postcss → postcss}/lib/parse.js +1 -1
- package/app/node_modules/{next/node_modules/postcss → postcss}/lib/postcss.js +12 -12
- package/app/node_modules/{next/node_modules/postcss → postcss}/lib/root.js +0 -0
- package/app/node_modules/{next/node_modules/postcss → postcss}/lib/rule.js +6 -6
- /package/app/node_modules/{next/node_modules/postcss → postcss}/lib/stringify.js +0 -0
- /package/app/node_modules/{next/node_modules/postcss → postcss}/lib/symbols.js +0 -0
- /package/app/node_modules/{next/node_modules/postcss → postcss}/lib/terminal-highlight.js +0 -0
- /package/app/node_modules/{next/node_modules/postcss → postcss}/lib/warn-once.js +0 -0
- /package/app/node_modules/{next/node_modules/postcss → postcss}/lib/warning.js +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";exports.id=5139,exports.ids=[5139],exports.modules={2364:(a,b,c)=>{c.r(b),c.d(b,{GET:()=>C,OPTIONS:()=>B,buildModelsList:()=>A});var d=c(81329),e=c(40615),f=c(44776),g=c(16655),h=c(58569),i=c(86925),j=c(9155),k=c(89843),l=c(28730),m=c(41029);let n=new Map;async function o(a,b){let c=new AbortController,d=setTimeout(()=>c.abort(),1e4);try{let d=await (0,k.proxyAwareFetch)("https://api.githubcopilot.com/models",{method:"GET",headers:{Authorization:`Bearer ${a}`,"Content-Type":"application/json","Copilot-Integration-Id":"vscode-chat","editor-version":`vscode/${l.x0.VSCODE_VERSION}`,"editor-plugin-version":`copilot-chat/${l.x0.COPILOT_CHAT_VERSION}`,"user-agent":l.x0.USER_AGENT,"x-github-api-version":l.x0.API_VERSION},cache:"no-store",signal:b||c.signal});if(!d.ok){let a=Error(`Copilot /models returned ${d.status}`);throw a.status=d.status,a}let e=await d.json();return Array.isArray(e?.data)?e.data:[]}finally{clearTimeout(d)}}async function p(a,b={}){let c,d=a?.providerSpecificData?.copilotToken||a?.accessToken;if(!d)return b.log?.debug?.("COPILOT_MODELS","No copilotToken/accessToken; skipping live fetch"),null;let e=a?.providerSpecificData?.copilotToken||a?.accessToken||"copilot-anonymous",f=Date.now();if(!b.forceRefresh){let a=n.get(e);if(a&&a.expiresAt>f)return{models:a.models}}try{c=await o(d,b.signal)}catch(d){if(!d||401!==d.status&&403!==d.status||!a.accessToken)return b.log?.warn?.("COPILOT_MODELS",`Live model fetch failed: ${d?.message||d}`),null;{b.log?.info?.("COPILOT_MODELS",`Got ${d.status}; refreshing Copilot token`);let e=await (0,m.jR)(a.accessToken);if(!e?.token)return b.log?.warn?.("COPILOT_MODELS","Token refresh did not return a token"),null;if("function"==typeof b.onCredentialsRefreshed)try{await b.onCredentialsRefreshed({copilotToken:e.token,copilotTokenExpiresAt:e.expiresAt})}catch(a){b.log?.warn?.("COPILOT_MODELS",`onCredentialsRefreshed failed: ${a?.message||a}`)}try{c=await o(e.token,b.signal)}catch(a){return b.log?.warn?.("COPILOT_MODELS",`Retry after refresh failed: ${a?.message||a}`),null}}}let g=function(a){let b=new Set,c=[];for(let d of a){if(!d||"object"!=typeof d||d.capabilities?.type!=="chat"||d.policy&&"enabled"!==d.policy.state)continue;let a=d.id;!a||b.has(a)||(b.add(a),c.push({id:a,name:d.name||a}))}return c}(c);return g.length?(n.set(e,{expiresAt:f+3e5,models:g}),{models:g}):null}var q=c(40694),r=c(58255),s=c(67828),t=c(43904);let u={kiro:async(a,b={})=>{let c=await (0,h.cW)({accessToken:a.accessToken,refreshToken:a.refreshToken,providerSpecificData:a.providerSpecificData||{}},{log:console,signal:b.signal});return c?.models?.length?{models:c.models}:null},qoder:async(a,b={})=>{let c=await (0,j.EV)({accessToken:a.accessToken,refreshToken:a.refreshToken,email:a.email,displayName:a.displayName,providerSpecificData:a.providerSpecificData||{}},{signal:b.signal});return c?.models?.length?{models:c.models.map(a=>({id:a.id,name:a.name}))}:null},kimchi:async(a,b={})=>{let c=await (0,i.av)({accessToken:a.accessToken,apiKey:a.apiKey,providerSpecificData:a.providerSpecificData||{}},{log:console,signal:b.signal});return c?.models?.length?{models:c.models}:null},github:async(a,b={})=>{let c=await p({accessToken:a.accessToken,refreshToken:a.refreshToken,providerSpecificData:a.providerSpecificData||{}},{log:console,signal:b.signal,onCredentialsRefreshed:async b=>{await (0,s.vN)(a.id,{copilotToken:b.copilotToken,copilotTokenExpiresAt:b.copilotTokenExpiresAt,existingProviderSpecificData:a.providerSpecificData||{}})}});return c?.models?.length?{models:c.models}:null},clinepass:async(a,b={})=>{let c=await (0,q.P)({accessToken:a.accessToken,apiKey:a.apiKey},{signal:b.signal});return c?.models?.length?{models:c.models}:null}},v=/[-_][0-9a-f]{8,}$/i,w={image:"image",tts:"tts",embedding:"embedding",stt:"stt",imageToText:"imageToText"};function x(a){let b=a?.kind||a?.type;return b&&w[b]||"llm"}async function y(a,b=null){if(!a?.apiKey)return[];let c="string"==typeof a?.providerSpecificData?.baseUrl?a.providerSpecificData.baseUrl.trim().replace(/\/$/,""):"";if(!c)return[];let d=`${c}/models`,f={"Content-Type":"application/json"};if((0,e.mq)(a.provider))f.Authorization=`Bearer ${a.apiKey}`;else{if(!(0,e.gb)(a.provider))return[];d.endsWith("/messages/models")?d=d.slice(0,-9):d.endsWith("/messages")&&(d=`${d.slice(0,-9)}/models`),f["x-api-key"]=a.apiKey,f["anthropic-version"]="2023-06-01",f.Authorization=`Bearer ${a.apiKey}`}try{let a=new AbortController,c=setTimeout(()=>a.abort(),5e3);b&&"function"!=typeof AbortSignal.any&&b.addEventListener("abort",()=>{clearTimeout(c),a.abort(b.reason)},{once:!0});let e=b&&"function"==typeof AbortSignal.any?AbortSignal.any([b,a.signal]):a.signal;try{var g;let a=await fetch(d,{method:"GET",headers:f,cache:"no-store",signal:e});if(!a.ok)return[];let b=(g=await a.json(),Array.isArray(g)?g:g?.data||g?.models||g?.results||[]);return Array.from(new Set(b.map(a=>a?.id||a?.name||a?.model).filter(a=>"string"==typeof a&&""!==a.trim())))}finally{clearTimeout(c)}}catch{return[]}}function z(a,b){let c=e.AI_PROVIDERS[a],d=Array.isArray(c?.serviceKinds)&&c.serviceKinds.length>0?c.serviceKinds:["llm"];return b.some(a=>d.includes(a))}async function A(a,{signal:b=null}={}){let c=[];try{c=(c=await (0,f.getProviderConnections)()).filter(a=>!1!==a.isActive)}catch(a){console.log("Could not fetch providers, returning all models")}let h=[];try{h=await (0,f.Uv)()}catch(a){console.log("Could not fetch combos")}let i=[];try{i=await (0,f.uv)()}catch(a){console.log("Could not fetch custom models")}let j={};try{j=await (0,f.OM)()}catch(a){console.log("Could not fetch model aliases")}let k={};try{k=await (0,g.vF)()}catch(a){console.log("Could not fetch disabled models")}let l=(a,b)=>Array.isArray(k[a])&&k[a].includes(b),m=new Map;for(let a of c){if(b?.aborted)break;m.has(a.provider)||m.set(a.provider,a)}let n=[];for(let b of h){if(!function(a,b){let c=a?.kind||"llm";return b.includes(c)}(b,a))continue;let c={id:b.name,object:"model",owned_by:"combo"};("webSearch"===b.kind||"webFetch"===b.kind)&&(c.kind=b.kind),n.push(c)}if(0===c.length){let b=Object.fromEntries(Object.entries(d.Xg).map(([a,b])=>[b,a]));for(let[c,e]of Object.entries(d.PROVIDER_MODELS))if(z(b[c]||c,a))for(let b of e)a.includes(x(b))&&(l(c,b.id)||n.push({id:`${c}/${b.id}`,object:"model",owned_by:c}));for(let b of i){if(!b?.id||b.type&&"llm"!==b.type||!a.includes("llm"))continue;let c=b.providerAlias;if(!c)continue;let d=String(b.id).trim();d&&n.push({id:`${c}/${d}`,object:"model",owned_by:c})}}else for(let[c,f]of m.entries()){if(b?.aborted)break;if(!z(c,a))continue;let g=d.Xg[c]||c,h=(f?.providerSpecificData?.prefix||(0,e.wG)(c)||g).trim(),k=d.PROVIDER_MODELS[g]||[],m=f?.providerSpecificData?.enabledModels,o=Array.isArray(m)&&m.length>0,p=(0,e.mq)(c)||(0,e.gb)(c),q=new Map(k.map(a=>[a.id,x(a)])),s=new Map,w=new Map,A=o?Array.from(new Set(m.filter(a=>"string"==typeof a&&""!==a.trim()))):k.map(a=>a.id);p&&0===A.length&&!v.test(c)&&(A=await y(f,b));let B=u[c];if(B&&!o)try{let a=await B(f,{signal:b});a?.models?.length&&(A=a.models.map(a=>a.id),s=new Map(a.models.filter(a=>a?.id).map(a=>[a.id,x(a)])),w=new Map(a.models.filter(a=>a?.id&&a.capabilities).map(a=>[a.id,a.capabilities])))}catch(a){console.log(`Live model fetch failed for ${c}: ${a?.message||a}`)}if(!B&&!o)try{let a=await (0,r.Mz)(f,{signal:b});a?.models?.length&&(A=a.models.map(a=>a.id),s=new Map(a.models.filter(a=>a?.id).map(a=>[a.id,x(a)])),w=new Map(a.models.filter(a=>a?.id&&a.capabilities).map(a=>[a.id,a.capabilities])))}catch(a){console.log(`Generic live model fetch failed for ${c}: ${a?.message||a}`)}let C=A.map(a=>a.startsWith(`${h}/`)?a.slice(h.length+1):a.startsWith(`${g}/`)?a.slice(g.length+1):a.startsWith(`${c}/`)?a.slice(c.length+1):a).filter(a=>"string"==typeof a&&""!==a.trim()),D=new Map;for(let b of Array.from(new Set([...C,...i.filter(b=>{if(!b?.id)return!1;let e=(0,d.CP)(b)||"llm";if(!a.includes(e)&&!("imageToText"===e&&a.includes("llm")))return!1;let f=b.providerAlias;return f===g||f===h||f===c}).map(a=>{let b=String(a.id).trim();return b&&D.set(b,(0,d.CP)(a)||"llm"),b}).filter(a=>""!==a),...Object.values(j||{}).filter(a=>"string"==typeof a&&!!a.includes("/")&&(a.startsWith(`${h}/`)||a.startsWith(`${g}/`)||a.startsWith(`${c}/`))).map(a=>a.startsWith(`${h}/`)?a.slice(h.length+1):a.startsWith(`${g}/`)?a.slice(g.length+1):a.startsWith(`${c}/`)?a.slice(c.length+1):a).filter(a=>"string"==typeof a&&""!==a.trim())]))){let c=D.get(b),d=s.get(b),e=c||d||q.get(b)||function(a){let b=String(a).toLowerCase();return/embed/.test(b)?"embedding":/tts|speech|audio|voice/.test(b)?"tts":/image|imagen|dall-?e|flux|sdxl|sd-|stable-diffusion/.test(b)?"image":"llm"}(b),f="imageToText"===e&&a.includes("llm");if(!a.includes(e)&&!f||l(h,b)||l(g,b))continue;let i={id:`${h}/${b}`,object:"model",owned_by:h},j=w.get(b)||(0,t.a0)(c||d);j&&(i.capabilities=j),n.push(i)}let E=e.AI_PROVIDERS[c];a.includes("webSearch")&&E?.searchConfig&&n.push({id:`${h}/search`,object:"model",kind:"webSearch",owned_by:h}),a.includes("webFetch")&&E?.fetchConfig&&n.push({id:`${h}/fetch`,object:"model",kind:"webFetch",owned_by:h})}let o=[],p=new Set;for(let a of n)!a?.id||p.has(a.id)||(p.add(a.id),o.push(a));return o}async function B(){return new Response(null,{headers:{"Access-Control-Allow-Methods":"GET, OPTIONS","Access-Control-Allow-Headers":"*"}})}async function C(a){try{let b=await A(["llm"],{signal:a?.signal});return Response.json({object:"list",data:b},{})}catch(a){return console.log("Error fetching models:",a),Response.json({error:{message:a.message,type:"server_error"}},{status:500})}}},16655:(a,b,c)=>{c.d(b,{oF:()=>d.oF,tm:()=>d.tm,vF:()=>d.vF});var d=c(44776)},19225:(a,b,c)=>{a.exports=c(44870)},92280:(a,b,c)=>{Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(28208),e=c(47617),f=c(62018);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}}};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";exports.id=5258,exports.ids=[5258],exports.modules={25258:(a,b,c)=>{c.d(b,{createBetterSqliteAdapter:()=>g});var d=c(87550),e=c.n(d),f=c(63775);function g(a){let b=new(e())(a);b.exec(f.oG);let c=new Map;function d(a){let d=c.get(a);return d||(d=b.prepare(a),c.set(a,d)),d}let g=setInterval(()=>{try{b.pragma("wal_checkpoint(TRUNCATE)")}catch{}},6e4);function h(){try{b.pragma("wal_checkpoint(TRUNCATE)")}catch{}try{c.clear()}catch{}try{b.close()}catch{}}"function"==typeof g.unref&&g.unref()
|
|
1
|
+
"use strict";exports.id=5258,exports.ids=[5258],exports.modules={25258:(a,b,c)=>{c.d(b,{createBetterSqliteAdapter:()=>g});var d=c(87550),e=c.n(d),f=c(63775);function g(a){let b=new(e())(a);b.exec(f.oG);let c=new Map;function d(a){let d=c.get(a);return d||(d=b.prepare(a),c.set(a,d)),d}let g=setInterval(()=>{try{b.pragma("wal_checkpoint(TRUNCATE)")}catch{}},6e4);function h(){try{b.pragma("wal_checkpoint(TRUNCATE)")}catch{}try{c.clear()}catch{}try{b.close()}catch{}}return"function"==typeof g.unref&&g.unref(),process.once("beforeExit",()=>h()),{driver:"better-sqlite3",run:(a,b=[])=>d(a).run(b),get:(a,b=[])=>d(a).get(b),all:(a,b=[])=>d(a).all(b),exec:a=>b.exec(a),transaction:a=>b.transaction(a)(),checkpoint(){try{b.pragma("wal_checkpoint(TRUNCATE)")}catch{}},close(){clearInterval(g),h()},raw:b}}},63775:(a,b,c)=>{c.d(b,{CG:()=>e,oG:()=>d,zE:()=>f});let d=`
|
|
2
2
|
PRAGMA journal_mode = WAL;
|
|
3
3
|
PRAGMA synchronous = NORMAL;
|
|
4
4
|
PRAGMA temp_store = MEMORY;
|
|
@@ -6,4 +6,4 @@ PRAGMA mmap_size = 30000000;
|
|
|
6
6
|
PRAGMA cache_size = -64000;
|
|
7
7
|
PRAGMA foreign_keys = ON;
|
|
8
8
|
PRAGMA busy_timeout = 5000;
|
|
9
|
-
`,e={_meta:{columns:{key:"TEXT PRIMARY KEY",value:"TEXT NOT NULL"}},settings:{columns:{id:"INTEGER PRIMARY KEY CHECK (id = 1)",data:"TEXT NOT NULL"}},providerConnections:{columns:{id:"TEXT PRIMARY KEY",provider:"TEXT NOT NULL",authType:"TEXT NOT NULL",name:"TEXT",email:"TEXT",priority:"INTEGER",isActive:"INTEGER DEFAULT 1",data:"TEXT NOT NULL",createdAt:"TEXT NOT NULL",updatedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_pc_provider ON providerConnections(provider)","CREATE INDEX IF NOT EXISTS idx_pc_provider_active ON providerConnections(provider, isActive)","CREATE INDEX IF NOT EXISTS idx_pc_priority ON providerConnections(provider, priority)"]},providerNodes:{columns:{id:"TEXT PRIMARY KEY",type:"TEXT",name:"TEXT",data:"TEXT NOT NULL",createdAt:"TEXT NOT NULL",updatedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_pn_type ON providerNodes(type)"]},proxyPools:{columns:{id:"TEXT PRIMARY KEY",isActive:"INTEGER DEFAULT 1",testStatus:"TEXT",data:"TEXT NOT NULL",createdAt:"TEXT NOT NULL",updatedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_pp_active ON proxyPools(isActive)","CREATE INDEX IF NOT EXISTS idx_pp_status ON proxyPools(testStatus)"]},apiKeys:{columns:{id:"TEXT PRIMARY KEY",key:"TEXT UNIQUE NOT NULL",name:"TEXT",machineId:"TEXT",isActive:"INTEGER DEFAULT 1",createdAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_ak_key ON apiKeys(key)"]},combos:{columns:{id:"TEXT PRIMARY KEY",name:"TEXT UNIQUE NOT NULL",kind:"TEXT",models:"TEXT NOT NULL",createdAt:"TEXT NOT NULL",updatedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_combo_name ON combos(name)"]},kv:{columns:{scope:"TEXT NOT NULL",key:"TEXT NOT NULL",value:"TEXT NOT NULL"},primaryKey:"PRIMARY KEY (scope, key)",indexes:["CREATE INDEX IF NOT EXISTS idx_kv_scope ON kv(scope)"]},usageHistory:{columns:{id:"INTEGER PRIMARY KEY AUTOINCREMENT",timestamp:"TEXT NOT NULL",provider:"TEXT",model:"TEXT",connectionId:"TEXT",apiKey:"TEXT",endpoint:"TEXT",promptTokens:"INTEGER DEFAULT 0",completionTokens:"INTEGER DEFAULT 0",cost:"REAL DEFAULT 0",status:"TEXT",tokens:"TEXT",meta:"TEXT"},indexes:["CREATE INDEX IF NOT EXISTS idx_uh_ts ON usageHistory(timestamp DESC)","CREATE INDEX IF NOT EXISTS idx_uh_provider ON usageHistory(provider)","CREATE INDEX IF NOT EXISTS idx_uh_model ON usageHistory(model)","CREATE INDEX IF NOT EXISTS idx_uh_conn ON usageHistory(connectionId)"]},usageDaily:{columns:{dateKey:"TEXT PRIMARY KEY",data:"TEXT NOT NULL"}},requestDetails:{columns:{id:"TEXT PRIMARY KEY",timestamp:"TEXT NOT NULL",provider:"TEXT",model:"TEXT",connectionId:"TEXT",status:"TEXT",data:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_rd_ts ON requestDetails(timestamp DESC)","CREATE INDEX IF NOT EXISTS idx_rd_provider ON requestDetails(provider)","CREATE INDEX IF NOT EXISTS idx_rd_model ON requestDetails(model)","CREATE INDEX IF NOT EXISTS idx_rd_conn ON requestDetails(connectionId)"]},routing_events:{columns:{id:"INTEGER PRIMARY KEY AUTOINCREMENT",timestamp:"TEXT NOT NULL",comboName:"TEXT NOT NULL",sessionId:"TEXT",requestId:"TEXT",requestFingerprint:"TEXT",cluster:"TEXT",routerModel:"TEXT",pickedWorker:"TEXT",alternates:"TEXT",routerReason:"TEXT",routerConfidence:"TEXT",routerLatencyMs:"INTEGER",workerStatus:"INTEGER",workerLatencyMs:"INTEGER",fallbackUsed:"INTEGER DEFAULT 0",retries:"INTEGER DEFAULT 0",tokensIn:"INTEGER",tokensOut:"INTEGER",outcomeScore:"REAL",objective:"TEXT",learningVersionId:"TEXT",meta:"TEXT"},indexes:["CREATE INDEX IF NOT EXISTS idx_re_combo_ts ON routing_events(comboName, timestamp DESC)","CREATE INDEX IF NOT EXISTS idx_re_cluster_combo ON routing_events(cluster, comboName)","CREATE INDEX IF NOT EXISTS idx_re_worker ON routing_events(pickedWorker)","CREATE INDEX IF NOT EXISTS idx_re_request ON routing_events(comboName, requestId)"]},router_learning_versions:{columns:{id:"TEXT PRIMARY KEY",comboName:"TEXT NOT NULL",version:"INTEGER NOT NULL",createdAt:"TEXT NOT NULL",source:"TEXT",banditTable:"TEXT",learnedRules:"TEXT",fewShots:"TEXT",evalScore:"REAL",prevVersionId:"TEXT",promoted:"INTEGER DEFAULT 0",notes:"TEXT"},indexes:["CREATE INDEX IF NOT EXISTS idx_rlv_combo ON router_learning_versions(comboName)","CREATE UNIQUE INDEX IF NOT EXISTS idx_rlv_combo_ver ON router_learning_versions(comboName, version)"]}};function f(a,b){let c=Object.entries(b.columns).map(([a,b])=>`${a} ${b}`);return b.primaryKey&&c.push(b.primaryKey),`CREATE TABLE IF NOT EXISTS ${a} (${c.join(", ")})`}}};
|
|
9
|
+
`,e={_meta:{columns:{key:"TEXT PRIMARY KEY",value:"TEXT NOT NULL"}},settings:{columns:{id:"INTEGER PRIMARY KEY CHECK (id = 1)",data:"TEXT NOT NULL"}},providerConnections:{columns:{id:"TEXT PRIMARY KEY",provider:"TEXT NOT NULL",authType:"TEXT NOT NULL",name:"TEXT",email:"TEXT",priority:"INTEGER",isActive:"INTEGER DEFAULT 1",data:"TEXT NOT NULL",createdAt:"TEXT NOT NULL",updatedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_pc_provider ON providerConnections(provider)","CREATE INDEX IF NOT EXISTS idx_pc_provider_active ON providerConnections(provider, isActive)","CREATE INDEX IF NOT EXISTS idx_pc_priority ON providerConnections(provider, priority)"]},providerNodes:{columns:{id:"TEXT PRIMARY KEY",type:"TEXT",name:"TEXT",data:"TEXT NOT NULL",createdAt:"TEXT NOT NULL",updatedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_pn_type ON providerNodes(type)"]},proxyPools:{columns:{id:"TEXT PRIMARY KEY",isActive:"INTEGER DEFAULT 1",testStatus:"TEXT",data:"TEXT NOT NULL",createdAt:"TEXT NOT NULL",updatedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_pp_active ON proxyPools(isActive)","CREATE INDEX IF NOT EXISTS idx_pp_status ON proxyPools(testStatus)"]},apiKeys:{columns:{id:"TEXT PRIMARY KEY",key:"TEXT UNIQUE NOT NULL",name:"TEXT",machineId:"TEXT",isActive:"INTEGER DEFAULT 1",createdAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_ak_key ON apiKeys(key)"]},combos:{columns:{id:"TEXT PRIMARY KEY",name:"TEXT UNIQUE NOT NULL",kind:"TEXT",models:"TEXT NOT NULL",createdAt:"TEXT NOT NULL",updatedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_combo_name ON combos(name)"]},kv:{columns:{scope:"TEXT NOT NULL",key:"TEXT NOT NULL",value:"TEXT NOT NULL"},primaryKey:"PRIMARY KEY (scope, key)",indexes:["CREATE INDEX IF NOT EXISTS idx_kv_scope ON kv(scope)"]},usageHistory:{columns:{id:"INTEGER PRIMARY KEY AUTOINCREMENT",timestamp:"TEXT NOT NULL",provider:"TEXT",model:"TEXT",connectionId:"TEXT",apiKey:"TEXT",endpoint:"TEXT",promptTokens:"INTEGER DEFAULT 0",completionTokens:"INTEGER DEFAULT 0",cost:"REAL DEFAULT 0",status:"TEXT",tokens:"TEXT",meta:"TEXT",requestId:"TEXT"},indexes:["CREATE INDEX IF NOT EXISTS idx_uh_ts ON usageHistory(timestamp DESC)","CREATE INDEX IF NOT EXISTS idx_uh_provider ON usageHistory(provider)","CREATE INDEX IF NOT EXISTS idx_uh_model ON usageHistory(model)","CREATE INDEX IF NOT EXISTS idx_uh_conn ON usageHistory(connectionId)","CREATE UNIQUE INDEX IF NOT EXISTS idx_uh_request_id ON usageHistory(requestId) WHERE requestId IS NOT NULL"]},usageDaily:{columns:{dateKey:"TEXT PRIMARY KEY",data:"TEXT NOT NULL"}},requestDetails:{columns:{id:"TEXT PRIMARY KEY",timestamp:"TEXT NOT NULL",provider:"TEXT",model:"TEXT",connectionId:"TEXT",status:"TEXT",data:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_rd_ts ON requestDetails(timestamp DESC)","CREATE INDEX IF NOT EXISTS idx_rd_provider ON requestDetails(provider)","CREATE INDEX IF NOT EXISTS idx_rd_model ON requestDetails(model)","CREATE INDEX IF NOT EXISTS idx_rd_conn ON requestDetails(connectionId)"]},fetchCache:{columns:{cacheKey:"TEXT PRIMARY KEY",kind:"TEXT",url:"TEXT",content:"TEXT NOT NULL",contentType:"TEXT",sizeBytes:"INTEGER",createdAt:"TEXT NOT NULL",expiresAt:"TEXT NOT NULL",lastAccessedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_fc_expires_at ON fetchCache(expiresAt)","CREATE INDEX IF NOT EXISTS idx_fc_last_accessed_at ON fetchCache(lastAccessedAt)"]},vault_entries:{columns:{id:"TEXT PRIMARY KEY",conversationId:"TEXT NOT NULL",toolName:"TEXT",content:"TEXT NOT NULL",sizeBytes:"INTEGER",createdAt:"TEXT NOT NULL",expiresAt:"TEXT NOT NULL",lastAccessedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_vault_conv ON vault_entries(conversationId)","CREATE INDEX IF NOT EXISTS idx_vault_expires ON vault_entries(expiresAt)","CREATE INDEX IF NOT EXISTS idx_vault_last_accessed ON vault_entries(lastAccessedAt)"]},vault_chunks:{columns:{entryId:"TEXT NOT NULL",chunkIndex:"INTEGER NOT NULL",conversationId:"TEXT NOT NULL",text:"TEXT NOT NULL"},primaryKey:"PRIMARY KEY (entryId, chunkIndex)",indexes:["CREATE INDEX IF NOT EXISTS idx_vault_chunks_conv ON vault_chunks(conversationId)"]},routing_events:{columns:{id:"INTEGER PRIMARY KEY AUTOINCREMENT",timestamp:"TEXT NOT NULL",comboName:"TEXT NOT NULL",sessionId:"TEXT",requestId:"TEXT",requestFingerprint:"TEXT",cluster:"TEXT",routerModel:"TEXT",pickedWorker:"TEXT",alternates:"TEXT",routerReason:"TEXT",routerConfidence:"TEXT",routerLatencyMs:"INTEGER",workerStatus:"INTEGER",workerLatencyMs:"INTEGER",fallbackUsed:"INTEGER DEFAULT 0",retries:"INTEGER DEFAULT 0",tokensIn:"INTEGER",tokensOut:"INTEGER",outcomeScore:"REAL",objective:"TEXT",learningVersionId:"TEXT",meta:"TEXT"},indexes:["CREATE INDEX IF NOT EXISTS idx_re_combo_ts ON routing_events(comboName, timestamp DESC)","CREATE INDEX IF NOT EXISTS idx_re_cluster_combo ON routing_events(cluster, comboName)","CREATE INDEX IF NOT EXISTS idx_re_worker ON routing_events(pickedWorker)","CREATE INDEX IF NOT EXISTS idx_re_request ON routing_events(comboName, requestId)"]},router_learning_versions:{columns:{id:"TEXT PRIMARY KEY",comboName:"TEXT NOT NULL",version:"INTEGER NOT NULL",createdAt:"TEXT NOT NULL",source:"TEXT",banditTable:"TEXT",learnedRules:"TEXT",fewShots:"TEXT",evalScore:"REAL",prevVersionId:"TEXT",promoted:"INTEGER DEFAULT 0",notes:"TEXT"},indexes:["CREATE INDEX IF NOT EXISTS idx_rlv_combo ON router_learning_versions(comboName)","CREATE UNIQUE INDEX IF NOT EXISTS idx_rlv_combo_ver ON router_learning_versions(comboName, version)"]}};function f(a,b){let c=Object.entries(b.columns).map(([a,b])=>`${a} ${b}`);return b.primaryKey&&c.push(b.primaryKey),`CREATE TABLE IF NOT EXISTS ${a} (${c.join(", ")})`}}};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";exports.id=5350,exports.ids=[5350],exports.modules={6595:(a,b,c)=>{function d(a){return a.split(/[-_\s]+/).filter(Boolean).map(a=>/^\d/.test(a)?a:a.charAt(0).toUpperCase()+a.slice(1)).join(" ")}c.d(b,{g5:()=>h,gr:()=>i,pk:()=>g,Kq:()=>f});let e=[[/^kimi-k(\d+(?:\.\d+)?)(-thinking)?$/i,a=>`Kimi K${a[1]}${a[2]?" Thinking":""}`],[/^glm-(\d+(?:\.\d+)?)(v)?$/i,a=>`GLM ${a[1]}${a[2]?"V (Vision)":""}`],[/^minimax-m(\d+(?:\.\d+)?)$/i,a=>`MiniMax M${a[1]}`],[/^gpt-(.+)$/i,a=>`GPT ${d(a[1])}`],[/^gemini-(.+)$/i,a=>`Gemini ${d(a[1])}`],[/^grok-(.+)$/i,a=>`Grok ${d(a[1])}`],[/^deepseek-(.+)$/i,a=>`DeepSeek ${d(a[1])}`],[/^qwen([\d.]+.*)$/i,a=>`Qwen ${d(a[1])}`]];function f(a){return"string"!=typeof a?a:a.replace(/(\d)-(\d)/g,"$1.$2")}function g(a){let b="string"==typeof a?{id:a}:a;return void 0!==b.name?b:{...b,name:function(a){if("string"!=typeof a)return a;for(let[b,c]of e){let d=a.match(b);if(d)return c(d)}return a}(b.id)}}function h(a){return a?.strip||[]}function i(a){return a?.targetFormat||null}},45350:(a,b,c)=>{c.d(b,{xq:()=>p,B$:()=>s,vq:()=>q,sr:()=>r});var d=c(67141),e=c(60290);let f={baseUrl:"",format:"openai",headers:{},auth:{header:"Authorization",scheme:"bearer",source:["accessToken","apiKey"]},forceStream:!1,urlSuffix:"",quirks:{},passthroughModels:!1,retry:e.cI,timeoutMs:e.pH,executor:"default"};var g=c(6595);let h={alloy:{id:"alloy",name:"Alloy"},ash:{id:"ash",name:"Ash"},ballad:{id:"ballad",name:"Ballad"},cedar:{id:"cedar",name:"Cedar"},coral:{id:"coral",name:"Coral"},echo:{id:"echo",name:"Echo"},fable:{id:"fable",name:"Fable"},marin:{id:"marin",name:"Marin"},nova:{id:"nova",name:"Nova"},onyx:{id:"onyx",name:"Onyx"},sage:{id:"sage",name:"Sage"},shimmer:{id:"shimmer",name:"Shimmer"},verse:{id:"verse",name:"Verse"}},i=(...a)=>a.map(a=>({...h[a],type:"tts"})),j=i("alloy","ash","coral","echo","fable","nova","onyx","sage","shimmer"),k=i("alloy","ash","ballad","cedar","coral","echo","fable","marin","nova","onyx","sage","shimmer","verse"),l=["Zephyr","Puck","Charon","Kore","Fenrir","Leda","Orus","Aoede","Callirrhoe","Autonoe","Enceladus","Iapetus","Umbriel","Algieba","Despina","Erinome","Algenib","Rasalgethi","Laomedeia","Achernar","Alnilam","Schedar","Gacrux","Pulcherrima","Achird","Zubenelgenubi","Vindemiatrix","Sadachbia","Sadaltager","Sulafat"].map(a=>({id:a,name:a,type:"tts"})),m={openai:{models:[{id:"gpt-4o-mini-tts",name:"GPT-4o Mini TTS",type:"tts"},{id:"tts-1-hd",name:"TTS-1 HD",type:"tts"},{id:"tts-1",name:"TTS-1",type:"tts"}],voices:{"gpt-4o-mini-tts":k,"tts-1":j,"tts-1-hd":j},allVoices:k},openrouter:{models:[{id:"openai/gpt-4o-mini-tts",name:"GPT-4o Mini TTS",type:"tts"},{id:"openai/tts-1-hd",name:"TTS-1 HD",type:"tts"},{id:"openai/tts-1",name:"TTS-1",type:"tts"}],voices:{"openai/gpt-4o-mini-tts":k,"openai/tts-1":j,"openai/tts-1-hd":j},allVoices:k},elevenlabs:{models:[{id:"eleven_flash_v2_5",name:"Flash v2.5 (Fastest)",type:"tts"},{id:"eleven_turbo_v2_5",name:"Turbo v2.5 (Fast)",type:"tts"},{id:"eleven_multilingual_v2",name:"Multilingual v2 (Quality)",type:"tts"},{id:"eleven_monolingual_v1",name:"Monolingual v1 (English)",type:"tts"}]},"edge-tts":{defaults:[{id:"en-US-AriaNeural",name:"Aria (en-US)",type:"tts"},{id:"en-US-GuyNeural",name:"Guy (en-US)",type:"tts"},{id:"en-GB-SoniaNeural",name:"Sonia (en-GB)",type:"tts"},{id:"vi-VN-HoaiMyNeural",name:"Hoai My (vi-VN)",type:"tts"},{id:"vi-VN-NamMinhNeural",name:"Nam Minh (vi-VN)",type:"tts"},{id:"zh-CN-XiaoxiaoNeural",name:"Xiaoxiao (zh-CN)",type:"tts"},{id:"zh-CN-YunxiNeural",name:"Yunxi (zh-CN)",type:"tts"},{id:"fr-FR-DeniseNeural",name:"Denise (fr-FR)",type:"tts"},{id:"de-DE-KatjaNeural",name:"Katja (de-DE)",type:"tts"},{id:"ja-JP-NanamiNeural",name:"Nanami (ja-JP)",type:"tts"},{id:"ko-KR-SunHiNeural",name:"SunHi (ko-KR)",type:"tts"}]},"local-device":{defaults:[{id:"default",name:"System Default Voice",type:"tts"}]},"google-tts":{defaults:[{id:"af",name:"Afrikaans",type:"tts"},{id:"ar",name:"Arabic",type:"tts"},{id:"bg",name:"Bulgarian",type:"tts"},{id:"bn",name:"Bengali",type:"tts"},{id:"bs",name:"Bosnian",type:"tts"},{id:"ca",name:"Catalan",type:"tts"},{id:"cs",name:"Czech",type:"tts"},{id:"cy",name:"Welsh",type:"tts"},{id:"da",name:"Danish",type:"tts"},{id:"de",name:"German",type:"tts"},{id:"el",name:"Greek",type:"tts"},{id:"en",name:"English",type:"tts"},{id:"eo",name:"Esperanto",type:"tts"},{id:"es",name:"Spanish",type:"tts"},{id:"et",name:"Estonian",type:"tts"},{id:"fi",name:"Finnish",type:"tts"},{id:"fr",name:"French",type:"tts"},{id:"gu",name:"Gujarati",type:"tts"},{id:"hi",name:"Hindi",type:"tts"},{id:"hr",name:"Croatian",type:"tts"},{id:"hu",name:"Hungarian",type:"tts"},{id:"hy",name:"Armenian",type:"tts"},{id:"id",name:"Indonesian",type:"tts"},{id:"is",name:"Icelandic",type:"tts"},{id:"it",name:"Italian",type:"tts"},{id:"ja",name:"Japanese",type:"tts"},{id:"jw",name:"Javanese",type:"tts"},{id:"km",name:"Khmer",type:"tts"},{id:"kn",name:"Kannada",type:"tts"},{id:"ko",name:"Korean",type:"tts"},{id:"la",name:"Latin",type:"tts"},{id:"lv",name:"Latvian",type:"tts"},{id:"mk",name:"Macedonian",type:"tts"},{id:"ml",name:"Malayalam",type:"tts"},{id:"mr",name:"Marathi",type:"tts"},{id:"my",name:"Myanmar (Burmese)",type:"tts"},{id:"ne",name:"Nepali",type:"tts"},{id:"nl",name:"Dutch",type:"tts"},{id:"no",name:"Norwegian",type:"tts"},{id:"pl",name:"Polish",type:"tts"},{id:"pt",name:"Portuguese",type:"tts"},{id:"ro",name:"Romanian",type:"tts"},{id:"ru",name:"Russian",type:"tts"},{id:"si",name:"Sinhala",type:"tts"},{id:"sk",name:"Slovak",type:"tts"},{id:"sq",name:"Albanian",type:"tts"},{id:"sr",name:"Serbian",type:"tts"},{id:"su",name:"Sundanese",type:"tts"},{id:"sv",name:"Swedish",type:"tts"},{id:"sw",name:"Swahili",type:"tts"},{id:"ta",name:"Tamil",type:"tts"},{id:"te",name:"Telugu",type:"tts"},{id:"th",name:"Thai",type:"tts"},{id:"tl",name:"Filipino",type:"tts"},{id:"tr",name:"Turkish",type:"tts"},{id:"uk",name:"Ukrainian",type:"tts"},{id:"ur",name:"Urdu",type:"tts"},{id:"vi",name:"Vietnamese",type:"tts"},{id:"zh-CN",name:"Chinese (Simplified)",type:"tts"},{id:"zh-TW",name:"Chinese (Traditional)",type:"tts"}]},gemini:{models:[{id:"gemini-3.1-flash-tts-preview",name:"Gemini 3.1 Flash TTS",type:"tts"},{id:"gemini-2.5-flash-preview-tts",name:"Gemini 2.5 Flash TTS",type:"tts"},{id:"gemini-2.5-pro-preview-tts",name:"Gemini 2.5 Pro TTS",type:"tts"}],voices:{"gemini-3.1-flash-tts-preview":l,"gemini-2.5-flash-preview-tts":l,"gemini-2.5-pro-preview-tts":l},allVoices:l}},n=["clientId","clientSecret","tokenUrl"],o=new Set(["serviceKinds","ttsConfig","sttConfig","embeddingConfig","imageConfig","imageToTextConfig","videoConfig","musicConfig","searchViaChat","searchConfig","fetchConfig","modelsFetcher","mediaPriority","hiddenKinds"]),p={},q={},r={},s={};for(let a of d.A){a.transport&&(p[a.id]=function(a,b){let c={...a};if(c.format||(c.format=f.format),b)for(let a of n)void 0===c[a]&&void 0!==b[a]&&(c[a]=b[a]);return c}(a.transport,a.oauth),a.transports&&(p[a.id].transports=a.transports)),void 0!==a.models&&(q[a.alias||a.id]=a.models.map(g.pk)),a.oauth&&(r[a.id]=a.oauth);let b={};for(let c of o)void 0!==a[c]&&(b[c]=a[c]);a.media&&Object.assign(b,a.media),Object.keys(b).length&&(s[a.id]=b)}Object.assign(q,function(){let a={};for(let[b,c]of Object.entries(m))c.models&&(a[`${b}-tts-models`]=c.models),c.allVoices&&(a[`${b}-tts-voices`]=c.allVoices),c.defaults&&(a[b]=c.defaults);return a["openai-tts-voices"]=m.openai.allVoices,a["openrouter-tts-voices"]=m.openrouter.allVoices,a}())},60290:(a,b,c)=>{c.d(b,{C8:()=>q,DR:()=>p,IK:()=>k,Uc:()=>l,Z1:()=>i,cI:()=>n,eo:()=>m,gx:()=>e,mY:()=>o,pH:()=>j,v1:()=>f,wg:()=>d,xM:()=>h}),c(87252);let d=3,e={BAD_REQUEST:400,UNAUTHORIZED:401,PAYMENT_REQUIRED:402,FORBIDDEN:403,NOT_FOUND:404,NOT_ACCEPTABLE:406,REQUEST_TIMEOUT:408,RATE_LIMITED:429,SERVER_ERROR:500,BAD_GATEWAY:502,SERVICE_UNAVAILABLE:503,GATEWAY_TIMEOUT:504},f={sessionTtlMs:72e5,sessionCleanupIntervalMs:18e5,dnsCacheTtlMs:3e5,dnsCacheMaxSize:256,proxyDispatchersMaxSize:20};function g(a,b){let c=process.env[a];if(null==c||""===c)return b;let d=parseInt(c,10);return Number.isFinite(d)&&d>0?d:b}let h=g("STREAM_STALL_TIMEOUT_MS",36e4),i=g("STREAM_FIRST_CHUNK_TIMEOUT_MS",2e5),j=g("FETCH_CONNECT_TIMEOUT_MS",6e4),k=g("GEMINI_NATIVE_TTS_FETCH_TIMEOUT_MS",45e3),l=64e3,m=32e3,n={429:{attempts:0,delayMs:0},502:{attempts:3,delayMs:3e3},503:{attempts:3,delayMs:2e3},504:{attempts:2,delayMs:3e3}},o=2e4;function p(a){return null==a?{attempts:0,delayMs:2e3}:"number"==typeof a?{attempts:a,delayMs:2e3}:{attempts:a.attempts||0,delayMs:null!=a.delayMs?a.delayMs:2e3}}let q=["Please write a 5-10 word title for the following conversation:"]},87252:(a,b,c)=>{c.d(b,{EQ:()=>f,LY:()=>d,O:()=>e,fh:()=>h,t2:()=>i,wf:()=>g});let d={400:{type:"invalid_request_error",code:"bad_request"},401:{type:"authentication_error",code:"invalid_api_key"},402:{type:"billing_error",code:"payment_required"},403:{type:"permission_error",code:"insufficient_quota"},404:{type:"invalid_request_error",code:"model_not_found"},406:{type:"invalid_request_error",code:"model_not_supported"},429:{type:"rate_limit_error",code:"rate_limit_exceeded"},500:{type:"server_error",code:"internal_server_error"},502:{type:"server_error",code:"bad_gateway"},503:{type:"server_error",code:"service_unavailable"},504:{type:"server_error",code:"gateway_timeout"}},e={400:"Bad request",401:"Invalid API key provided",402:"Payment required",403:"You exceeded your current quota",404:"Model not found",406:"Model not supported",429:"Rate limit exceeded",500:"Internal server error",502:"Bad gateway - upstream provider error",503:"Service temporarily unavailable",504:"Gateway timeout"},f={base:2e3,max:3e5,maxLevel:15},g=3e4,h=18e5,i=[{text:"no credentials",cooldownMs:12e4},{text:"request not allowed",cooldownMs:5e3,shouldFallback:!1},{text:"improperly formed request",cooldownMs:12e4,shouldFallback:!1},{text:"rate limit",backoff:!0},{text:"too many requests",backoff:!0},{text:"quota exceeded",backoff:!0},{text:"capacity",backoff:!0},{text:"overloaded",backoff:!0},{status:401,cooldownMs:12e4},{status:402,cooldownMs:12e4},{status:403,cooldownMs:12e4},{status:404,cooldownMs:12e4,shouldFallback:!1},{status:429,backoff:!0}]}};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";exports.id=5615,exports.ids=[3535,5615],exports.modules={13808:(a,b,c)=>{c.d(b,{$N:()=>f,OK:()=>g,Zl:()=>h,lz:()=>i});var d=c(55511),e=c.n(d);function f(a=32){return e().randomBytes(a).toString("base64url")}function g(a){return e().createHash("sha256").update(a).digest("base64url")}function h(){return e().randomBytes(32).toString("base64url")}function i(a=32){let b=f(a),c=g(b);return{codeVerifier:b,codeChallenge:c,state:h()}}},22898:(a,b,c)=>{c.d(b,{Hd:()=>
|
|
1
|
+
"use strict";exports.id=5615,exports.ids=[3535,5615],exports.modules={13808:(a,b,c)=>{c.d(b,{$N:()=>f,OK:()=>g,Zl:()=>h,lz:()=>i});var d=c(55511),e=c.n(d);function f(a=32){return e().randomBytes(a).toString("base64url")}function g(a){return e().createHash("sha256").update(a).digest("base64url")}function h(){return e().randomBytes(32).toString("base64url")}function i(a=32){let b=f(a),c=g(b);return{codeVerifier:b,codeChallenge:c,state:h()}}},22898:(a,b,c)=>{c.d(b,{Hd:()=>o,IF:()=>t,Pd:()=>h,Y0:()=>s,ZP:()=>y,_V:()=>x,cn:()=>p,dR:()=>q,jl:()=>A,nu:()=>B,uw:()=>z});var d=c(81630),e=c.n(d),f=c(1932),g=c(92990);function h(a,b=null){return new Promise((c,d)=>{let g=e().createServer((b,c)=>{let d=new f.URL(b.url,"http://localhost");if("/callback"===d.pathname||"/auth/callback"===d.pathname){let b=Object.fromEntries(d.searchParams);c.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),c.end(`<!DOCTYPE html>
|
|
2
2
|
<html>
|
|
3
3
|
<head>
|
|
4
4
|
<meta charset="utf-8">
|
|
@@ -35,9 +35,9 @@
|
|
|
35
35
|
}, 1000);
|
|
36
36
|
</script>
|
|
37
37
|
</body>
|
|
38
|
-
</html>`),a(b)}else c.writeHead(404),c.end("Not found")});g.listen(b||0,"127.0.0.1",()=>{let{port:a}=g.address();c({server:g,port:a,close:()=>g.close()})}),g.on("error",a=>{"EADDRINUSE"===a.code&&b?d(Error(`Port ${b} is already in use. Please close other applications using this port.`)):d(a)})})}let i=null,j=null,k=g.DI.fixedPort,l=new Map;function m({state:a,codeVerifier:b,redirectUri:c}){return!!a&&!!b&&!!c&&(l.set(a,{codeVerifier:b,redirectUri:c,status:"pending",createdAt:Date.now()}),!0)}function
|
|
38
|
+
</html>`),a(b)}else c.writeHead(404),c.end("Not found")});g.listen(b||0,"127.0.0.1",()=>{let{port:a}=g.address();c({server:g,port:a,close:()=>g.close()})}),g.on("error",a=>{"EADDRINUSE"===a.code&&b?d(Error(`Port ${b} is already in use. Please close other applications using this port.`)):d(a)})})}let i=null,j=null,k=g.DI.fixedPort,l=new Map;function m(a){for(let b of a.values())if("pending"===b.status)return!0;return!1}function n(a,b){let c=Date.now();for(let[d,e]of a)c-e.createdAt>b&&a.delete(d)}function o({state:a,codeVerifier:b,redirectUri:c}){return!!a&&!!b&&!!c&&(n(l,3e5),l.set(a,{codeVerifier:b,redirectUri:c,status:"pending",createdAt:Date.now()}),!0)}function p(a){return l.get(a)||null}function q(a){l.delete(a)}function r(a,b){let c=a?"Authentication Successful":"Authentication Failed",d=String(b).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'");return`<!DOCTYPE html>
|
|
39
39
|
<html><head><meta charset="utf-8"><title>${c}</title>
|
|
40
40
|
<style>body{font-family:system-ui;display:flex;justify-content:center;align-items:center;height:100vh;margin:0;background:#f5f5f5}.c{text-align:center;padding:2rem;background:#fff;border-radius:8px;box-shadow:0 2px 10px rgba(0,0,0,.1)}.i{color:${a?"#22c55e":"#ef4444"};font-size:3rem}h1{margin:1rem 0}p{color:#666}</style>
|
|
41
41
|
</head><body><div class="c"><div class="i">${a?"✓":"✗"}</div><h1>${c}</h1><p>${d}</p><p>Closing in <span id="cd">3</span>s...</p>
|
|
42
42
|
<script>let n=3;const c=document.getElementById("cd");const t=setInterval(()=>{n--;c.textContent=n;if(n<=0){clearInterval(t);window.close();}},1000);</script>
|
|
43
|
-
</div></body></html>`}function
|
|
43
|
+
</div></body></html>`}function s(a){return new Promise(b=>{if(i)return void b({success:!0});let d=e().createServer(async(b,d)=>{let e=new f.URL(b.url,"http://localhost");if("/callback"!==e.pathname&&"/auth/callback"!==e.pathname){d.writeHead(404),d.end("Not found");return}let g=e.searchParams.get("code"),h=e.searchParams.get("state"),i=e.searchParams.get("error"),j=h?l.get(h):null;if(j){try{if(i)throw Error(e.searchParams.get("error_description")||i);if(!g)throw Error("No authorization code received");let{exchangeTokens:a}=await Promise.all([c.e(7774),c.e(4646),c.e(3904),c.e(9261),c.e(4904),c.e(8400),c.e(369),c.e(159)]).then(c.bind(c,74177)),{createProviderConnection:b}=await c.e(1998).then(c.bind(c,71998)),f=await a("codex",g,j.redirectUri,j.codeVerifier,h),k=await b({provider:"codex",authType:"oauth",...f,expiresAt:f.expiresIn?new Date(Date.now()+1e3*f.expiresIn).toISOString():null,testStatus:"active"});j.status="done",j.connectionId=k.id,j.email=k.email,d.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),d.end(r(!0,"You can close this window."))}catch(a){j.status="error",j.error=a.message,d.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),d.end(r(!1,a.message))}finally{m(l)||t()}return}let k=`http://localhost:${a}/callback${e.search}`;d.writeHead(302,{Location:k}),d.end(),m(l)||t()});d.listen(k,"127.0.0.1",()=>{i=d,j=setTimeout(()=>t(),3e5),b({success:!0})}),d.on("error",a=>{"EADDRINUSE"===a.code?b({success:!1,reason:"port_busy"}):b({success:!1,reason:a.message})})})}function t(){j&&(clearTimeout(j),j=null),i&&(i.close(),i=null)}let u=null,v=null,w=new Map;function x({state:a,codeVerifier:b,redirectUri:c}){return!!a&&!!b&&!!c&&(n(w,3e5),w.set(a,{codeVerifier:b,redirectUri:c,status:"pending",createdAt:Date.now()}),!0)}function y(a){return w.get(a)||null}function z(a){w.delete(a)}function A(a){return new Promise(b=>{if(u)return void b({success:!0});let d=e().createServer(async(b,d)=>{let e=new f.URL(b.url,"http://localhost");if("/callback"!==e.pathname&&"/auth/callback"!==e.pathname){d.writeHead(404),d.end("Not found");return}let g=e.searchParams.get("code"),h=e.searchParams.get("state"),i=e.searchParams.get("error"),j=h?w.get(h):null;if(j){try{if(i)throw Error(e.searchParams.get("error_description")||i);if(!g)throw Error("No authorization code received");let{exchangeTokens:a}=await Promise.all([c.e(7774),c.e(4646),c.e(3904),c.e(9261),c.e(4904),c.e(8400),c.e(369),c.e(159)]).then(c.bind(c,74177)),{createProviderConnection:b}=await c.e(1998).then(c.bind(c,71998)),f=await a("xai",g,j.redirectUri,j.codeVerifier,h),k=await b({provider:"xai",authType:"oauth",...f,expiresAt:f.expiresIn?new Date(Date.now()+1e3*f.expiresIn).toISOString():null,testStatus:"active"});j.status="done",j.connectionId=k.id,j.email=k.email,d.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),d.end(r(!0,"You can close this window."))}catch(a){j.status="error",j.error=a.message,d.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),d.end(r(!1,a.message))}finally{m(w)||B()}return}let k=`http://localhost:${a}/callback${e.search}`;d.writeHead(302,{Location:k}),d.end(),m(w)||B()});d.listen(56121,"127.0.0.1",()=>{u=d,v=setTimeout(()=>B(),3e5),b({success:!0})}),d.on("error",a=>{"EADDRINUSE"===a.code?b({success:!1,reason:"port_busy"}):b({success:!1,reason:a.message})})})}function B(){v&&(clearTimeout(v),v=null),u&&(u.close(),u=null)}},73159:(a,b,c)=>{c.d(b,{U:()=>k,o:()=>l});var d=c(45350);let e=d.xq.xai?.clientId,f="https://auth.x.ai",g="/oauth2/authorize",h="/oauth2/token",i="/.well-known/openid-configuration",j="/callback",k=96,l={clientId:e,issuer:f,authEndpointPath:g,tokenEndpointPath:h,discoveryPath:i,authorizeUrl:`${f}${g}`,tokenUrl:`${f}${h}`,discoveryUrl:`${f}${i}`,scope:"openid profile email offline_access grok-cli:access api:access",apiBaseUrl:"https://api.x.ai/v1",redirectUri:`http://127.0.0.1:56121${j}`,loopbackPort:56121,callbackPath:j,pkceVerifierBytes:96,refreshLeadSeconds:300,userAgent:"grok-cli/switchboard",codeChallengeMethod:"S256"}},92990:(a,b,c)=>{c.d(b,{DI:()=>i,Hp:()=>k,LT:()=>j,MZ:()=>v,Nl:()=>z,Nu:()=>p,OV:()=>h,S6:()=>s,Td:()=>A,Tx:()=>q,WN:()=>t,Ww:()=>B,YT:()=>n,ZL:()=>m,cD:()=>o,f7:()=>y,hF:()=>l,lB:()=>w,t:()=>u,w1:()=>x});var d=c(21820),e=c(92675),f=c(45350);function g(){let a=(0,d.platform)(),b=(0,d.arch)();return"darwin"===a?"arm64"===b?2:1:"linux"===a?"arm64"===b?4:3:5*("win32"===a)}let h={...f.sr.claude},i={...f.sr.codex},j={...e.w3,...f.sr["gemini-cli"]},k={...f.sr.qwen},l={...f.sr.qoder},m={...f.sr.iflow},n={...e.XP,...f.sr.antigravity,loadCodeAssistClientMetadata:JSON.stringify({ideType:9,platform:g(),pluginType:2})};function o(){return{ideType:9,platform:g(),pluginType:2}}({...f.sr.openai});let p={...f.sr.github},q={...f.sr.kiro},r=/^[a-z]{2}-[a-z]+-\d{1,2}$/;function s(a){if("string"!=typeof a||!r.test(a))throw Error("Invalid region");return a}let t={...f.sr.cursor,tokenStoragePaths:{linux:"~/.config/Cursor/User/globalStorage/state.vscdb",macos:"/Users/<user>/Library/Application Support/Cursor/User/globalStorage/state.vscdb",windows:"%APPDATA%\\Cursor\\User\\globalStorage\\state.vscdb"}},u={...f.sr["kimi-coding"],clientId:process.env.KIMI_CODING_OAUTH_CLIENT_ID||f.xq["kimi-coding"]?.clientId},v={...f.sr.kilocode},w={...f.sr.cline},x={...f.sr.clinepass},y={...f.sr.gitlab},z={...f.sr["codebuddy-cn"]},A={...f.sr.kimchi},B=3e5}};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";exports.id=5821,exports.ids=[5821],exports.modules={25821:(a,b,c)=>{c.d(b,{rb:()=>d,rn:()=>j,v4:()=>g,CM:()=>f,aS:()=>s,a7:()=>p,m1:()=>q});let d={defaultConcurrency:4,maxConcurrency:16,defaultBatchSize:50,maxBatchSize:200,defaultTimeoutMs:2e4,maxTimeoutMs:6e4};function e(a,b,c){let d=Number(a);return Number.isFinite(d)?Math.max(1,Math.min(c,Math.floor(d))):b}function f(a={}){return{concurrency:e(a.concurrency,d.defaultConcurrency,d.maxConcurrency),batchSize:e(a.batchSize,d.defaultBatchSize,d.maxBatchSize),timeoutMs:e(a.timeoutMs,d.defaultTimeoutMs,d.maxTimeoutMs)}}function g(a,b=""){let c=String(a||"").trim();if(!c)return"";c=(c=c.replace(/\s+/g,"")).replace(/^models\//i,"");let d=String(b||"").trim();return d&&c.toLowerCase().startsWith(`${d.toLowerCase()}/`)&&(c=c.slice(d.length+1)),(c=c.replace(/\/{2,}/g,"/").replace(/^\/+|\/+$/g,"")).toLowerCase()}var h=c(77598);let i=["provider","authType","apiType","baseUrl","resourceUrl","region","projectId","accountId","azureEndpoint","apiVersion","deployment","organization","chatgptAccountId","workspaceId","tenantId"];function j(a={}){let b={...a.providerSpecificData||{},...a};delete b.providerSpecificData;let c={};for(let a of i){let d=function(a){if("string"!=typeof a)return null==a?null:String(a);let b=a.trim();return b?/^https?:\/\//i.test(b)?b.replace(/\/+$/g,"").toLowerCase():b:null}(b[a]);null!=d&&(c[a]=d)}let d=JSON.stringify(c,Object.keys(c).sort()),e=(0,h.createHash)("sha256").update(d).digest("hex").slice(0,24);return`pmp:v1:${e}`}var k=c(38238);function l(a){if(a?.ok===!0)return{status:"ok",failureClass:null};let b=a?"string"==typeof a?a:String(a.error||a.message||a.failureMessage||""):"",c=b.toLowerCase(),d=function(a,b){let c=Number(a?.status||a?.statusCode||a?.httpStatus);if(Number.isFinite(c)&&c>0)return c;let d=String(b||"").match(/\bHTTP\s+(\d{3})\b/i);return d?Number(d[1]):null}(a,b),e=String(a?.name||"").toLowerCase();return e.includes("abort")||e.includes("timeout")||c.includes("abortsignal.timeout")||c.includes("timed out")||c.includes("timeout")||c.includes("etimedout")?{status:"retryable",failureClass:"timeout"}:c.includes("fetch failed")||c.includes("network")||c.includes("econnreset")||c.includes("econnrefused")||c.includes("enotfound")||c.includes("socket hang up")?{status:"retryable",failureClass:"unknown"}:401===d?{status:"retryable",failureClass:"auth"}:429===d?{status:"retryable",failureClass:"throttled"}:d>=500?{status:"retryable",failureClass:"server_error"}:404===d||c.includes("model not found")||c.includes("no such model")||c.includes("unknown model")||c.includes("does not exist")||c.includes("not a valid model")||c.includes("invalid model")?{status:"dead",failureClass:"not_found"}:403===d||c.includes("access denied")||c.includes("permission denied")||c.includes("forbidden")||c.includes("not permitted")||c.includes("not authorized for model")?{status:"dead",failureClass:"access_denied"}:{status:"retryable",failureClass:"unknown"}}function m(a){return a?.name||a?.id||a?.modelId||a?.model||""}async function n(a,b){let c=String(a?.id||a?.modelId||a?.model||a?.name||"").trim(),d=String(a?.kind||a?.type||"llm").trim()||"llm",e=g(c,b.providerAlias),f=a.fullModel||`${b.providerAlias}/${c}`,h=new Date().toISOString(),i=Date.now();try{let g=await b.ping(f,d,b.baseUrl,{timeoutMs:b.timeoutMs}),j=l(g);return{modelId:c,canonicalId:e,name:m(a)||c,kind:d,fullModel:f,ok:!0===g.ok,latencyMs:g.latencyMs??Date.now()-i,status:g.status??null,error:g.error||null,probeStatus:j.status,failureClass:j.failureClass,failureMessage:g.error||null,checkedAt:h}}catch(g){let b=l(g);return{modelId:c,canonicalId:e,name:m(a)||c,kind:d,fullModel:f,ok:!1,latencyMs:Date.now()-i,status:null,error:g?.message||"Probe failed",probeStatus:b.status,failureClass:b.failureClass,failureMessage:g?.message||"Probe failed",checkedAt:h}}}async function o(a,b){let c=Array(a.length),d=0,e=Array.from({length:Math.min(b.concurrency,a.length)},async()=>{for(;d<a.length;){let e=d;d+=1,c[e]=await n(a[e],b)}});return await Promise.all(e),c}async function p(a){let b=f(a||{}),c=(Array.isArray(a?.models)?a.models:[]).slice(0,b.batchSize),d={...b,providerAlias:a.providerAlias,baseUrl:a.baseUrl,ping:a.ping||k.P};if(!d.providerAlias)throw Error("providerAlias required");if(0===c.length)return{results:[],caps:b};if(a.warmup&&c.length>1){let[a,...e]=c;return{results:[await n(a,d),...await o(e,d)],caps:b}}return{results:await o(c,d),caps:b}}async function q(a){let b=f(a||{}),c=Array.isArray(a?.models)?a.models:[],d=[];for(let e=0;e<c.length;e+=b.batchSize){let f=c.slice(e,e+b.batchSize),g=await p({...a,...b,models:f,warmup:a.warmup&&0===e});d.push(...g.results)}return{results:d,caps:b}}function r(a,b){return`${a||"llm"}|${b}`}function s(a){let b=Array.isArray(a?.models)?a.models:[],c=Array.isArray(a?.probes)?a.probes:[],d=a?.providerAlias||"",e=Math.max(0,Number(a?.freshOkMs||0)),f=a?.skipFreshOk===!0&&e>0,h=Date.now(),i=new Map;for(let a of c)a?.modelId&&i.set(r(a.kind||"llm",a.modelId),a);let j=new Set,k=[],l=[],m=[],n=[],o=0,p=0;for(let a of b){let b=String("string"==typeof a?a:a?.id||a?.modelId||a?.model||a?.name||"").trim();if(!b){o+=1;continue}let c=String(("string"==typeof a?"llm":a?.kind||a?.type||"llm")||"llm").trim()||"llm",q=g(b,d);if(!q){o+=1;continue}let s=r(c,q);if(j.has(s)){p+=1;continue}j.add(s);let t=i.get(s),u={id:b,modelId:b,canonicalId:q,name:"string"==typeof a?b:a?.name||a?.displayName||a?.display_name||b,kind:c,type:c,fullModel:"object"==typeof a?a.fullModel:void 0};if(t?.status==="dead"){l.push({...u,checkedAt:t.checkedAt,failureClass:t.failureClass||null});continue}if(t?.status==="ok"){n.push({...u,latencyMs:t.latencyMs??null,checkedAt:t.checkedAt});let a=t.checkedAt?Date.parse(t.checkedAt):NaN;if(f&&Number.isFinite(a)&&h-a<=e){m.push({...u,latencyMs:t.latencyMs??null,checkedAt:t.checkedAt});continue}}k.push(u)}return{eligible:k,skippedDead:l,skippedFreshOk:m,cachedOk:n,stats:{total:b.length,invalid:o,duplicates:p,skippedDead:l.length,skippedFreshOk:m.length,cachedOk:n.length,eligible:k.length}}}},38238:(a,b,c)=>{c.d(b,{P:()=>h});var d=c(44776),e=c(30869),f=c(41460);async function g(){let a=null;try{let b=await (0,d.PX)();a=b.find(a=>!1!==a.isActive)?.key||null}catch{}let b={"Content-Type":"application/json"};return a&&(b.Authorization=`Bearer ${a}`),b[f.nF]=await (0,f.cb)(),b}async function h(a,b,c=`http://127.0.0.1:${process.env.PORT||e.h0.appPort}`,d={}){var f;let i,j=await g(),k=Date.now(),l=(i=Number.isFinite(Number(f=d.timeoutMs||15e3))?Number(f):15e3,AbortSignal.timeout(Math.max(1,Math.floor(i))));if("embedding"===b){let b=await fetch(`${c}/api/v1/embeddings`,{method:"POST",headers:j,body:JSON.stringify({model:a,input:"test"}),signal:l}),d=Date.now()-k,e=await b.text().catch(()=>""),f=null;try{f=e?JSON.parse(e):null}catch{}if(!b.ok){let a=f?.error?.message||f?.error||e;return{ok:!1,latencyMs:d,error:`HTTP ${b.status}${a?`: ${String(a).slice(0,240)}`:""}`,status:b.status}}return Array.isArray(f?.data)&&f.data.length>0&&Array.isArray(f.data[0]?.embedding)?{ok:!0,latencyMs:d,error:null,status:b.status}:{ok:!1,latencyMs:d,status:b.status,error:"Provider returned no embedding data"}}if("image"===b){let b=await fetch(`${c}/api/v1/images/generations`,{method:"POST",headers:j,body:JSON.stringify({model:a,prompt:"test"}),signal:l}),d=Date.now()-k,e=await b.text().catch(()=>""),f=null;try{f=e?JSON.parse(e):null}catch{}if(!b.ok){let a=f?.error?.message||f?.msg||f?.message||f?.error||e;return{ok:!1,latencyMs:d,error:`HTTP ${b.status}${a?`: ${String(a).slice(0,240)}`:""}`,status:b.status}}return Array.isArray(f?.data)&&f.data.length>0?{ok:!0,latencyMs:d,error:null,status:b.status}:{ok:!1,latencyMs:d,status:b.status,error:"Provider returned no image data for this model"}}if("stt"===b){let b,d,e,f,g=new FormData,h=(e=new DataView(d=new ArrayBuffer(44+(b=2*Math.max(1,Math.floor(4e3))))),(f=(a,b)=>{for(let c=0;c<b.length;c+=1)e.setUint8(a+c,b.charCodeAt(c))})(0,"RIFF"),e.setUint32(4,36+b,!0),f(8,"WAVE"),f(12,"fmt "),e.setUint32(16,16,!0),e.setUint16(20,1,!0),e.setUint16(22,1,!0),e.setUint32(24,16e3,!0),e.setUint32(28,32e3,!0),e.setUint16(32,2,!0),e.setUint16(34,16,!0),f(36,"data"),e.setUint32(40,b,!0),new Blob([d],{type:"audio/wav"}));g.append("file",h,"test.wav"),g.append("model",a);let i=await fetch(`${c}/api/v1/audio/transcriptions`,{method:"POST",headers:Object.fromEntries(Object.entries(j).filter(([a])=>"content-type"!==a.toLowerCase())),body:g,signal:l}),m=Date.now()-k,n=await i.text().catch(()=>""),o=null;try{o=n?JSON.parse(n):null}catch{}if(!i.ok){let a=o?.error?.message||o?.msg||o?.message||o?.error||n;return{ok:!1,latencyMs:m,error:`HTTP ${i.status}${a?`: ${String(a).slice(0,240)}`:""}`,status:i.status}}return("string"==typeof o?.text?o.text:"").trim()?{ok:!0,latencyMs:m,error:null,status:i.status}:{ok:!1,latencyMs:m,status:i.status,error:"Provider returned no transcription text for this model"}}let m=await fetch(`${c}/api/v1/chat/completions`,{method:"POST",headers:j,body:JSON.stringify({model:a,max_tokens:16,stream:!1,messages:[{role:"user",content:"hi"}]}),signal:l}),n=Date.now()-k,o=await m.text().catch(()=>""),p=null;try{p=o?JSON.parse(o):null}catch{}if(!m.ok){let a=p?.error?.message||p?.msg||p?.message||p?.error||o;return{ok:!1,latencyMs:n,error:`HTTP ${m.status}${a?`: ${String(a).slice(0,240)}`:""}`,status:m.status}}let q=p?.status,r=p?.msg||p?.message;if(null!=q&&"200"!==String(q)&&"0"!==String(q)&&r)return{ok:!1,latencyMs:n,status:m.status,error:`Provider status ${q}: ${String(r).slice(0,240)}`};if(p?.error){let a=p?.error?.message||p?.error||"Provider returned an error";return{ok:!1,latencyMs:n,status:m.status,error:String(a).slice(0,240)}}return Array.isArray(p?.choices)&&p.choices.length>0?{ok:!0,latencyMs:n,error:null,status:m.status}:{ok:!1,latencyMs:n,status:m.status,error:"Provider returned no completion choices for this model"}}},41460:(a,b,c)=>{c.d(b,{cb:()=>h,gN:()=>i,nF:()=>f});var d=c(54603),e=c(38044);let f="x-switchboard-cli-token",g=null;async function h(){return g||(g=await (0,d.Xj)("switchboard-cli-auth")),g}async function i(a){let b=a?.headers?.get?.(f);return!!b&&(0,e.lO)(b,await h())}},54603:(a,b,c)=>{c.d(b,{Xj:()=>q});var d=c(19713),e=c(73024),f=c.n(e),g=c(76760),h=c.n(g),i=c(77598),j=c.n(i),k=c(49120);let l=h().join(k.nJ,"machine-id"),m=h().join(k.nJ,"auth"),n=h().join(m,"cli-secret"),o=null,p=null;async function q(a=null){let b=a||function(){if(process.env.MACHINE_ID_SALT)return process.env.MACHINE_ID_SALT;let a=h().join(m,"machine-id-salt");try{let b=f().readFileSync(a,"utf8").trim();if(b)return b}catch{}let b=j().randomBytes(32).toString("hex");try{f().mkdirSync(m,{recursive:!0,mode:448}),f().writeFileSync(a,b,{mode:384})}catch{}return b}(),c=function(){if(o)return o;try{if(o=f().readFileSync(l,"utf8").trim())return o}catch{}try{o=(0,d.machineIdSync)()}catch{o=j().randomUUID()}try{f().mkdirSync(k.nJ,{recursive:!0}),f().writeFileSync(l,o,{mode:384})}catch{}return o}(),e="switchboard-cli-auth"===b?function(){if(p)return p;try{if(p=f().readFileSync(n,"utf8").trim())return p}catch{}p=j().randomBytes(32).toString("hex");try{f().mkdirSync(m,{recursive:!0}),f().writeFileSync(n,p,{mode:384})}catch{}return p}():"";return j().createHash("sha256").update(c+b+e).digest("hex").substring(0,16)}}};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
exports.id=5920,exports.ids=[5920],exports.modules={6979:(a,b,c)=>{"use strict";c.d(b,{F:()=>f,J:()=>e});var d=c(23211);function e(a,b="Unexpected error"){return a instanceof Error&&a.message?a.message:"string"==typeof a&&a?a:b}function f(a,b){return d.NextResponse.json({error:e(b)},{status:a})}},49120:(a,b,c)=>{"use strict";c.d(b,{nJ:()=>o});var d=c(73024),e=c.n(d),f=c(33873),g=c.n(f),h=c(21820),i=c.n(h);let j="switchboard";function k(a){if("win32"===process.platform){let b=process.env.APPDATA||g().join(i().homedir(),"AppData","Roaming");return g().join(b,a)}return g().join(i().homedir(),`.${a}`)}let l=["db/data.sqlite","machine-id","jwt-secret","auth","db.json"];function m(a){return l.some(b=>e().existsSync(g().join(a,b)))}function n(){let a=k(j);if(m(a))return a;let b=k("9router");return m(b)?(console.warn(`[DATA_DIR] using legacy data directory '${b}' (set DATA_DIR='${a}' to switch)`),b):a}let o=function(){let a=process.env.DATA_DIR;if(!a)return n();if("win32"===process.platform&&/^\//.test(a))return console.warn(`[DATA_DIR] '${a}' is a Unix path on Windows → fallback to default`),n();try{return e().mkdirSync(a,{recursive:!0}),a}catch(b){if(b?.code==="EACCES"||b?.code==="EPERM")return console.warn(`[DATA_DIR] '${a}' not writable → fallback ~/.${j}`),n();throw b}}()},57781:(a,b,c)=>{"use strict";c.d(b,{R:()=>h});var d=c(51455),e=c.n(d),f=c(76760),g=c.n(f);async function h(a,b,c="utf-8"){let d=g().dirname(a);await e().mkdir(d,{recursive:!0});let f=g().join(d,`.${g().basename(a)}.sb-tmp-${process.pid}-${Date.now()}-${Math.random().toString(36).slice(2,8)}`);try{await e().writeFile(f,b,c);try{let a=await e().open(f,"r+");try{await a.sync()}finally{await a.close()}}catch{}await e().rename(f,a)}catch(a){try{await e().unlink(f)}catch{}throw a}}},78335:()=>{},79754:(a,b,c)=>{"use strict";c.d(b,{vy:()=>aE,M1:()=>as,S7:()=>aP,nV:()=>au,il:()=>Q,Z:()=>aS,K6:()=>aT,bZ:()=>aI,o1:()=>R,CN:()=>$,ef:()=>P,n7:()=>_,M5:()=>J,FK:()=>aQ,e6:()=>aJ,BM:()=>S,Ss:()=>ac,eB:()=>H,j1:()=>aw,DZ:()=>K,C0:()=>aR,te:()=>ab});var d=c(51455),e=c.n(d),f=c(76760),g=c.n(f),h=c(73024),i=c.n(h),j=c(48161),k=c.n(j),l=c(49120);let m=".switchboard-managed.json",n={claude:{id:"claude",label:"Claude Code",supportsSkills:!0,supportsMcp:!0},codex:{id:"codex",label:"Codex CLI",supportsSkills:!0,supportsMcp:!0},opencode:{id:"opencode",label:"OpenCode",supportsSkills:!0,supportsMcp:!0},gemini:{id:"gemini",label:"Gemini CLI",supportsSkills:!0,supportsMcp:!0},cursor:{id:"cursor",label:"Cursor",supportsSkills:!0,supportsMcp:!0}};function o(a={}){if("project"===a.scope&&a.projectPath){let b=g().resolve(a.projectPath);return g().join(b,".switchboard","agent-library")}return g().join(l.nJ,"agent-library")}function p(a){return g().join(a,"skills")}function q(a){return g().join(a,"mcp","servers.json")}function r(a){return g().join(a,"settings.json")}function s(a){return g().join(a,"state.json")}function t(a){let b=String(a||"").replace(/[^a-zA-Z0-9._-]+/g,"-").replace(/^-+|-+$/g,"").slice(0,80);return!b||"."===b||".."===b||b.includes("..")||!/[a-zA-Z0-9]/.test(b)?"":b}function u(a){let b=t(a);return b?b.startsWith("sb-")?b:`sb-${b}`:null}function v(a,b={}){let c=k().homedir(),d="project"===b.scope&&b.projectPath?g().resolve(b.projectPath):null;switch(a){case"claude":return d?g().join(d,".claude","skills"):g().join(c,".claude","skills");case"codex":return d?g().join(d,".agents","skills"):g().join(c,".agents","skills");case"opencode":return d?g().join(d,".opencode","skills"):g().join(c,".config","opencode","skills");case"gemini":return d?g().join(d,".gemini","skills"):g().join(c,".gemini","skills");case"cursor":return d?g().join(d,".cursor","skills"):g().join(c,".cursor","skills");default:return null}}function w(a,b={}){let c=k().homedir(),d="project"===b.scope&&b.projectPath?g().resolve(b.projectPath):null;switch(a){case"claude":if(d)return{path:g().join(d,".mcp.json"),format:"json",kind:"claude-project-mcp"};return{path:g().join(c,".claude.json"),format:"json",kind:"claude-user"};case"codex":return{path:d?g().join(d,".codex","config.toml"):g().join(c,".codex","config.toml"),format:"toml",kind:"codex"};case"opencode":return{path:d?g().join(d,"opencode.json"):g().join(c,".config","opencode","opencode.json"),format:"json",kind:"opencode"};case"gemini":return{path:d?g().join(d,".gemini","settings.json"):g().join(c,".gemini","settings.json"),format:"json",kind:"gemini"};case"cursor":return{path:d?g().join(d,".cursor","mcp.json"):g().join(c,".cursor","mcp.json"),format:"json",kind:"cursor"};default:return null}}function x(a){for(let b of[a,p(a),g().join(a,"mcp")])i().existsSync(b)||i().mkdirSync(b,{recursive:!0})}var y=c(57781);let z=Promise.resolve();function A(a){(0,h.mkdirSync)(g().dirname(a),{recursive:!0});let b=JSON.stringify({pid:process.pid,at:new Date().toISOString(),ts:Date.now()});try{let c=(0,h.openSync)(a,"wx");try{(0,h.writeFileSync)(c,b,"utf-8")}finally{(0,h.closeSync)(c)}return!0}catch(a){if(a?.code!=="EEXIST")throw a;return!1}}async function B(){let a,b=(a=o({scope:"global",projectPath:null}),g().join(a,".apply.lock")),c=Date.now()+3e4;for(;Date.now()<c;){if(A(b)||function(a){try{let b,c=(0,h.readFileSync)(a,"utf-8");try{b=JSON.parse(c)}catch{b={pid:parseInt(String(c).trim(),10),ts:0}}let d=Number(b.pid),e=Number(b.ts)||0,f=e>0&&Date.now()-e>3e5,g=!function(a){if(!a||!Number.isFinite(a)||a<=0)return!1;try{return process.kill(a,0),!0}catch{return!1}}(d);if(f||g){try{(0,h.unlinkSync)(a)}catch{}return A(a)}}catch{try{(0,h.unlinkSync)(a)}catch{}return A(a)}return!1}(b))return()=>{try{if(!(0,h.existsSync)(b))return;let a=(0,h.readFileSync)(b,"utf-8");try{JSON.parse(a).pid===process.pid&&(0,h.unlinkSync)(b)}catch{String(a).trim()===String(process.pid)&&(0,h.unlinkSync)(b)}}catch{}};await new Promise(a=>setTimeout(a,50))}let d=Error("Agent Library apply/clean is already running (lock timeout). Retry shortly.");throw d.code="lock_timeout",d}function C(a){let b,c,d=new Promise((a,d)=>{b=a,c=d});return z=z.then(async()=>{let d=await B();try{let c=await a();b(c)}catch(a){c(a)}finally{d()}}).catch(()=>{}),d}function D(){let a={};for(let b of Object.keys(n))a[b]={skills:!0,mcp:!0};return{enabled:!0,scope:"global",projectPath:null,linkMode:"win32"===process.platform?"copy":"symlink",neverOverwriteUser:!0,includeProductSkills:!0,requireCatalogConfirm:!0,targets:a}}function E(a,b){let c=a||{skills:!0,mcp:!0};return b&&"object"==typeof b?{skills:"boolean"==typeof b.skills?b.skills:!1!==c.skills,mcp:"boolean"==typeof b.mcp?b.mcp:!1!==c.mcp}:{...c}}function F(a={}){let b=D(),c={};for(let a of Object.keys(n))c[a]={...b.targets[a]||{skills:!0,mcp:!0}};if(a.targets&&"object"==typeof a.targets)for(let b of Object.keys(n)){let d=a.targets[b];d&&"object"==typeof d&&(c[b]=E(c[b],d))}let d="copy"===a.linkMode||"symlink"===a.linkMode?a.linkMode:b.linkMode,e="project"===a.scope?"project":"global",f=null;return"project"===e&&a.projectPath&&(f=String(a.projectPath).trim()||null),{enabled:!1!==a.enabled,scope:e,projectPath:f,linkMode:d,neverOverwriteUser:!1!==a.neverOverwriteUser,includeProductSkills:!1!==a.includeProductSkills,requireCatalogConfirm:!1!==a.requireCatalogConfirm,targets:c}}function G(a){if(!a.enabled){let a=Error("Agent Library sync is turned off in settings");throw a.code="disabled",a}if("project"===a.scope){let b,c=a.projectPath?String(a.projectPath).trim():"";if(!c){let a=Error("Project scope requires an absolute project path — set it before Apply");throw a.code="project_path_missing",a}if(!g().isAbsolute(c)){let a=Error("Project path must be absolute (e.g. /Users/you/my-app)");throw a.code="project_path_invalid",a}let d=g().resolve(c);if(!(0,h.existsSync)(d)){let a=Error(`Project path does not exist: ${d}`);throw a.code="project_path_missing",a}try{b=(0,h.statSync)(d)}catch{let a=Error(`Cannot access project path: ${d}`);throw a.code="project_path_invalid",a}if(!b.isDirectory()){let a=Error(`Project path is not a directory: ${d}`);throw a.code="project_path_invalid",a}}}function H(a){let b=a||D();return o({scope:b.scope,projectPath:b.projectPath})}function I(){return o({scope:"global",projectPath:null})}async function J(a){let b=I();x(b);let c=r(b),d=D();if((0,h.existsSync)(c))try{let a=await e().readFile(c,"utf-8");d=F(JSON.parse(a))}catch{d=D()}return x(H(d)),d}async function K(a,b){let c=I();x(c);let d=await J(c),e={...d.targets};if(b.targets&&"object"==typeof b.targets)for(let[a,c]of Object.entries(b.targets))n[a]&&(e[a]=E(d.targets[a],c));let f=F({...d,...b,targets:e});if(!1===b.neverOverwriteUser&&!0!==b.confirmAllowOverwrite&&(f.neverOverwriteUser=!0),!0===b.confirmAllowOverwrite&&!1===b.neverOverwriteUser&&(f.neverOverwriteUser=!1),"project"===f.scope)try{G({...f,enabled:!0})}catch(a){if(a?.code!=="project_path_missing"||b.projectPath){if(a?.code!=="disabled")throw a}else f.projectPath=null}return await (0,y.R)(r(c),JSON.stringify(f,null,2)),x(H(f)),f}async function L(a){let b=a||H(await J());x(b);let c=s(b);if(!(0,h.existsSync)(c))return{managedSkills:{},managedMcpKeys:{},lastSync:null,lastDoctor:null};try{return JSON.parse(await e().readFile(c,"utf-8"))}catch{return{managedSkills:{},managedMcpKeys:{},lastSync:null,lastDoctor:null}}}async function M(a,b){x(a),await (0,y.R)(s(a),JSON.stringify(b,null,2))}var N=c(82922);let O=[{id:"switchboard",name:"Switchboard (Entry)",description:"Setup, model discovery, combos & Auto routing. Start here — one /v1 endpoint, multi-provider gateway.",endpoint:"/v1",icon:"hub",isEntry:!0},{id:"switchboard-chat",name:"Chat",description:"Chat / code-gen via OpenAI, Anthropic, or Responses formats — streaming, tools, combo as model.",endpoint:"/v1/chat/completions",icon:"chat"}];async function P(a){x(a);let b=p(a),c=[];try{c=await e().readdir(b)}catch{return[]}let d=[];for(let a of c){let c=g().join(b,a,"SKILL.md");if(!(0,h.existsSync)(c))continue;let f="",i=a;try{let a=await e().readFile(c,"utf-8"),b=a.match(/^name:\s*(.+)$/m),d=a.match(/^description:\s*(.+)$/m);b&&(i=b[1].trim().replace(/^["']|["']$/g,"")),d&&(f=d[1].trim().replace(/^["']|["']$/g,""))}catch{}let j=await e().stat(c);d.push({id:a,title:i,description:f,path:g().join(b,a),source:"library",updatedAt:j.mtime.toISOString()})}return d.sort((a,b)=>a.id.localeCompare(b.id))}async function Q(a,b={}){x(a);let c=(0,N.XP)(),d=[];if(!c)return{ok:!1,results:d,error:"Product skills directory not found"};for(let c of O){let f=t(c.id),i=g().join(p(a),f),j=g().join(i,"SKILL.md");if((0,h.existsSync)(j)&&!b.force){d.push({id:f,action:"skipped_exists"});continue}let k=await (0,N.dr)(c.id);if(!k){d.push({id:f,action:"missing_source"});continue}await e().mkdir(i,{recursive:!0}),await e().writeFile(j,k,"utf-8"),d.push({id:f,action:"installed"})}return{ok:!0,results:d}}async function R(a,b){x(a);let c=t(b.id);if(!c)throw Error("Invalid skill id");let d=g().join(p(a),c);return await e().mkdir(d,{recursive:!0}),await e().writeFile(g().join(d,"SKILL.md"),b.markdown,"utf-8"),await e().writeFile(g().join(d,".source.json"),JSON.stringify({source:b.source||"manual",installedAt:new Date().toISOString(),...b.contentHash?{contentHash:b.contentHash}:{},...b.etag?{etag:b.etag}:{}},null,2),"utf-8"),{id:c,path:d}}async function S(a,b){let c=t(b);if(!c)throw Error("Invalid skill id");let d=g().resolve(p(a)),f=g().resolve(d,c);if(g().dirname(f)!==d)throw Error("Invalid skill path");return(0,h.existsSync)(f)?(await e().rm(f,{recursive:!0,force:!0}),{removed:!0,id:c}):{removed:!1}}function T(a){return g().join(g().dirname(a),`.sb-managed-${g().basename(a)}.json`)}async function U(a){let b=T(a);if((0,h.existsSync)(b))try{if((0,h.lstatSync)(b).isFile())return JSON.parse(await e().readFile(b,"utf-8"))}catch{}try{if(!(0,h.existsSync)(a))return null;let b=(0,h.lstatSync)(a);if(b.isSymbolicLink()||!b.isDirectory())return null;let c=g().join(a,m);if(!(0,h.existsSync)(c)||!(0,h.lstatSync)(c).isFile())return null;return JSON.parse(await e().readFile(c,"utf-8"))}catch{return null}}async function V(a,b){let c=JSON.stringify({managedBy:"switchboard",namespace:"sb",skillId:b.skillId,libraryPath:b.libraryPath,linkMode:b.linkMode,updatedAt:new Date().toISOString()},null,2),d=T(a);if(await e().mkdir(g().dirname(d),{recursive:!0}),await (0,y.R)(d,c),"copy"===b.linkMode)try{let b=(0,h.lstatSync)(a);b.isDirectory()&&!b.isSymbolicLink()&&await (0,y.R)(g().join(a,m),c)}catch{}}async function W(a){try{let b=T(a),c=(0,h.lstatSync)(b);c.isFile()&&!c.isSymbolicLink()&&await e().unlink(b)}catch{}try{let b=(0,h.lstatSync)(a);if(!b.isDirectory()||b.isSymbolicLink())return;let c=g().join(a,m),d=(0,h.lstatSync)(c);d.isFile()&&!d.isSymbolicLink()&&await e().unlink(c)}catch{}}async function X(a,b,c={}){let d=null;try{d=(0,h.lstatSync)(a)}catch{let b=await U(a);if(b?.managedBy==="switchboard")return{ok:!0,reason:"managed_sidecar_orphan",marker:b};return{ok:!0,reason:"missing"}}let e=await U(a);if(e?.managedBy==="switchboard")return{ok:!0,reason:"managed",marker:e};if(d.isSymbolicLink()&&c.libraryRoot)try{let b=(0,h.realpathSync)(a),d=g().resolve(c.libraryRoot),e=g().relative(d,b);if(e&&!e.startsWith("..")&&!g().isAbsolute(e))return{ok:!0,reason:"symlink_into_library"}}catch{return{ok:!0,reason:"broken_symlink"}}if(d.isSymbolicLink())try{(0,h.realpathSync)(a)}catch{return{ok:!0,reason:"broken_symlink"}}return b?{ok:!1,reason:"conflict_user_owned",message:"Path exists and is not Switchboard-managed. Skipping to protect your files."}:{ok:!0,reason:"overwrite_allowed",message:"User allowed overwrite of non-managed path"}}function Y(a){return"string"==typeof a&&a.startsWith("sb-")}function Z(a){let b=String(a||"").replace(/[^a-zA-Z0-9._-]+/g,"-").replace(/\./g,"-").replace(/^-+|-+$/g,"");return b&&"."!==b&&".."!==b&&/[a-zA-Z0-9]/.test(b)?b.startsWith("sb-")?b:`sb-${b}`:null}function $(a,b){let c=g().resolve(a),d=g().resolve(b),e=g().relative(d,c);return""===e||!e.startsWith("..")&&!g().isAbsolute(e)}async function _(a){x(a);let b=q(a);if(!(0,h.existsSync)(b))return[];try{let a=JSON.parse(await e().readFile(b,"utf-8"));return Array.isArray(a.servers)?a.servers:[]}catch{return[]}}async function aa(a,b){x(a);let c=q(a);await e().mkdir(g().dirname(c),{recursive:!0}),await (0,y.R)(c,JSON.stringify({version:1,updatedAt:new Date().toISOString(),note:"Switchboard Agent Library MCP catalog. Prefer ${ENV_VAR} references for secrets — never store raw API keys here if avoidable.",servers:b},null,2))}async function ab(a,b){let c=Z(b.id.replace(/^sb-/,""))||b.id;if(!c)throw Error("Invalid MCP server id");let d=b.transport||(b.url?"http":"stdio");if("stdio"===d&&!b.command)throw Error("stdio MCP server requires command");if(("http"===d||"sse"===d)&&!b.url)throw Error("http/sse MCP server requires url");let e={id:c,name:b.name||c,transport:d,command:b.command||void 0,args:Array.isArray(b.args)?b.args.map(String):void 0,env:b.env&&"object"==typeof b.env?Object.fromEntries(Object.entries(b.env).map(([a,b])=>[a,String(b)])):void 0,url:b.url||void 0,headers:b.headers&&"object"==typeof b.headers?Object.fromEntries(Object.entries(b.headers).map(([a,b])=>[a,String(b)])):void 0,enabled:!1!==b.enabled,notes:b.notes||void 0},f=await _(a),g=f.findIndex(a=>a.id===c);return g>=0?f[g]=e:f.push(e),await aa(a,f),e}async function ac(a,b){let c=Z(b.replace(/^sb-/,""))||b,d=await _(a),e=d.filter(a=>a.id!==c&&a.id!==b);return await aa(a,e),{removed:e.length<d.length}}async function ad(a,b,c){for(let d of(await e().mkdir(b,{recursive:!0}),await e().readdir(a,{withFileTypes:!0}))){let f,i=g().join(a,d.name),j=g().join(b,d.name);try{f=(0,h.lstatSync)(i)}catch{continue}if(f.isSymbolicLink()){if(!c)continue;try{let a=(0,h.realpathSync)(i),b=g().relative(g().resolve(c),a);if(b.startsWith("..")||g().isAbsolute(b))continue}catch{continue}try{let a=(0,h.realpathSync)(i);(0,h.lstatSync)(a).isDirectory()?await ad(a,j,c):await e().copyFile(a,j)}catch{}continue}f.isDirectory()?await ad(i,j,c):f.isFile()&&await e().copyFile(i,j)}}async function ae(a){let b;try{b=await e().lstat(a)}catch{return}b.isSymbolicLink()||b.isFile()?await e().unlink(a):b.isDirectory()&&await e().rm(a,{recursive:!0,force:!0})}async function af(a,b,c=!0){try{await e().lstat(a)}catch{return}let d=await X(a,!1!==c,{libraryRoot:b});if(!d.ok){let a=Error(d.message||"Path is not Switchboard-managed");throw a.code="conflict",a.reason=d.reason,a}}async function ag(a,b,c,d,f={}){await e().mkdir(g().dirname(b),{recursive:!0});let h=!1!==f.neverOverwriteUser;if("symlink"===c){await af(b,d,h);try{return await ae(b),await e().symlink(a,b,"dir"),{mode:"symlink"}}catch(c){if(c?.code==="conflict")throw c;return ah(a,b,d,c?.message,h)}}return ah(a,b,d,void 0,h)}async function ah(a,b,c,d,f=!0){let g=`${b}.sb-tmp-${process.pid}-${Date.now()}`,h=`${b}.sb-bak-${process.pid}-${Date.now()}`;try{await ae(g),await ad(a,g,c),await af(b,c,f);let i=!1;try{await e().lstat(b),i=!0}catch{i=!1}if(i){await ae(h);try{await e().rename(b,h)}catch{await ae(b)}}try{await e().rename(g,b)}catch(a){if(i)try{await e().lstat(h),await e().rename(h,b)}catch{}throw a}try{await ae(h)}catch{}return d?{mode:"copy",fallbackFrom:"symlink",warning:d||"symlink failed; used copy"}:{mode:"copy"}}catch(a){try{await ae(g)}catch{}throw a}}function ai(a){return String(a)}function aj(a){return String(a).replace(/\$\{([A-Za-z_][A-Za-z0-9_]*)\}/g,(a,b)=>`{env:${b}}`)}function ak(a){return null!=a&&"object"==typeof a&&!Array.isArray(a)}function al(a,b){let c=a.transport||(a.url?"http":"stdio");if("codex"===b)return"stdio"===c?{command:a.command,args:a.args||[],env:a.env||{}}:{url:a.url,http_headers:a.headers||{}};if("opencode"===b)return"stdio"===c?{type:"local",command:[a.command,...a.args||[]],environment:Object.fromEntries(Object.entries(a.env||{}).map(([a,b])=>[a,aj(b)])),enabled:!0}:{type:"remote",url:a.url,headers:Object.fromEntries(Object.entries(a.headers||{}).map(([a,b])=>[a,aj(b)])),enabled:!0};if("gemini"===b)return"stdio"===c?{command:a.command,args:a.args||[],env:a.env||{}}:{url:a.url,type:"sse"===c?"sse":"http",headers:a.headers||{}};if("stdio"===c){let b={command:a.command,args:a.args||[]};return a.env&&Object.keys(a.env).length&&(b.env=Object.fromEntries(Object.entries(a.env).map(([a,b])=>[a,ai(b)]))),b}let d={url:a.url,type:"sse"===c?"sse":"http"};return a.headers&&Object.keys(a.headers).length&&(d.headers=Object.fromEntries(Object.entries(a.headers).map(([a,b])=>[a,ai(b)]))),d}async function am(a,b,c){let d=c.kind,f=new Set(c.previouslyManaged||[]),i={};if((0,h.existsSync)(a))try{i=JSON.parse(await e().readFile(a,"utf-8"))}catch{if(c.neverOverwriteUser)return{ok:!1,error:"mcp_parse_failed",message:`Cannot parse ${a}; refusing to overwrite`,path:a};i={}}let j="mcpServers";if("opencode"===d&&(j="mcp"),Object.prototype.hasOwnProperty.call(i,j)&&!ak(i[j])&&c.neverOverwriteUser)return{ok:!1,error:"mcp_shape_conflict",message:`${a}: "${j}" exists but is not a plain object; refusing to overwrite`,path:a};let k=ak(i[j])?{...i[j]}:{},l=b.filter(a=>!1!==a.enabled),m=new Set(l.map(a=>a.id)),n=[];for(let a of Object.keys(k))f.has(a)&&Y(a)&&!m.has(a)&&(delete k[a],n.push(a));let o=[],p=[];for(let a of l){let b=a.id;if(!Y(b)){p.push({key:b,reason:"not_namespaced"});continue}let e=al(a,"cursor"===d?"cursor":"gemini"===d?"gemini":"opencode"===d?"opencode":"claude"),g=Object.prototype.hasOwnProperty.call(k,b),h=f.has(b);if(g&&!h&&c.neverOverwriteUser){p.push({key:b,reason:"user_owned_or_unknown_sb_key"});continue}k[b]=e,o.push(b)}let q={...i,[j]:k};return c.dryRun||(await e().mkdir(g().dirname(a),{recursive:!0}),await (0,y.R)(a,JSON.stringify(q,null,2))),{ok:!0,path:a,written:o,removed:n,skipped:p,dryRun:!!c.dryRun}}async function an(a,b,c){let d="";(0,h.existsSync)(a)&&(d=await e().readFile(a,"utf-8"));let f=d.replace(/\n?# --- switchboard-agent-library-mcp-start ---[\s\S]*?# --- switchboard-agent-library-mcp-end ---\n?/g,"\n"),i=b.filter(a=>!1!==a.enabled&&Y(a.id));if(!i.length)return!c.dryRun&&(0,h.existsSync)(a)&&await (0,y.R)(a,f.trimEnd()+"\n"),{ok:!0,path:a,written:[],removed:c.previouslyManaged||[],dryRun:!!c.dryRun};let j=new Set(c.previouslyManaged||[]),k=[],l=[];for(let a of i){let b=RegExp(`\\[mcp_servers\\.${ao(a.id)}\\]`,"m").test(f);if(b&&!j.has(a.id)&&c.neverOverwriteUser){k.push({key:a.id,reason:"user_owned_toml_section"});continue}b&&j.has(a.id)&&(f=f.replace(RegExp(`\\n?\\[mcp_servers\\.${ao(a.id)}\\][\\s\\S]*?(?=\\n\\[|\\n*$)`,"g"),"\n")),l.push(a)}let m=["","# --- switchboard-agent-library-mcp-start ---","# Managed by Switchboard Agent Library. Do not edit this block by hand."];for(let a of l){var n,o,p;let b=al(a,"codex"),c=(n=a.id,/^[A-Za-z_][A-Za-z0-9_-]*$/.test(n)&&!n.includes(".")?n:ap(n));if(m.push(`[mcp_servers.${c}]`),b.command){if(m.push(`command = ${ap(b.command)}`),b.args?.length&&m.push(`args = ${(o=b.args,`[${o.map(a=>ap(a)).join(", ")}]`)}`),b.env&&Object.keys(b.env).length)for(let[a,d]of(m.push(`[mcp_servers.${c}.env]`),Object.entries(b.env)))m.push(`${a} = ${ap(ai(d))}`)}else if(b.url&&(m.push(`url = ${ap(b.url)}`),b.http_headers&&Object.keys(b.http_headers).length))for(let[a,d]of(m.push(`[mcp_servers.${c}.http_headers]`),Object.entries(b.http_headers))){m.push(`${(p=a,/^[A-Za-z_][A-Za-z0-9_]*$/.test(p)?p:ap(p))} = ${ap(ai(d))}`)}m.push("")}m.push("# --- switchboard-agent-library-mcp-end ---","");let q=(f.trimEnd()+"\n"+m.join("\n")).replace(/\n{3,}/g,"\n\n");return c.dryRun||(await e().mkdir(g().dirname(a),{recursive:!0}),await (0,y.R)(a,q)),{ok:!0,path:a,written:l.map(a=>a.id),removed:[],skipped:k,dryRun:!!c.dryRun}}function ao(a){return String(a).replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function ap(a){return JSON.stringify(String(a))}async function aq(a,b){let c=await X(a,!0,{libraryRoot:b});return c.ok?(await ae(a),await W(a),{ok:!0,reason:c.reason}):c}async function ar(a,b,c,d,f,h,i){for(let j of function(a,b={}){if("codex"!==a)return[];let c="project"===b.scope&&b.projectPath?g().resolve(b.projectPath):null;return[c?g().join(c,".codex","skills"):g().join(k().homedir(),".codex","skills")]}(a,d))if(j!==b)for(let b of c){let c=g().join(j,b);try{await e().lstat(c)}catch{continue}if(h){(await X(c,!0,{libraryRoot:f})).ok&&i.push({agent:a,skillId:b,dest:c,action:"would_remove_legacy"});continue}let d=await aq(c,f);i.push({agent:a,skillId:b,dest:c,action:d.ok?"removed_legacy":"skipped_legacy_conflict",...d.ok?{}:{reason:d.reason,message:d.message}})}}async function as(a,b={}){if(b.dryRun)return at(a,b);try{return await C(()=>at(a,b))}catch(a){if(a?.code==="lock_timeout")return{ok:!1,error:"lock_timeout",message:a.message};throw a}}async function at(a,b={}){let c=a||D();try{G(c)}catch(a){return{ok:!1,error:a?.code||"settings_invalid",message:a?.message||"Invalid settings"}}let d=H(c);x(d),c.includeProductSkills&&await Q(d);let f=await P(d),i=await _(d),j=await L(d),k={scope:c.scope,projectPath:c.projectPath},l=[],m=[],o=!b.mcpOnly,q=!b.skillsOnly;if(o)for(let[a,i]of Object.entries(n)){if(!i.supportsSkills)continue;if(c.targets[a]?.skills===!1){l.push({agent:a,action:"skipped_disabled"});continue}let m=v(a,k);if(!m)continue;for(let i of(b.dryRun||await e().mkdir(m,{recursive:!0}),f)){let e=u(i.id);if(!e)continue;let f=g().join(m,e),k=function(a,b){let c=t(b);return g().join(p(a),c)}(d,i.id);if(!(0,h.existsSync)(g().join(k,"SKILL.md"))){l.push({agent:a,skillId:i.id,action:"missing_source"});continue}let n=await X(f,c.neverOverwriteUser,{libraryRoot:d});if(!n.ok){l.push({agent:a,skillId:i.id,dest:f,action:"conflict",reason:n.reason,message:n.message});continue}if(b.dryRun){l.push({agent:a,skillId:i.id,dest:f,action:"would_sync",linkMode:c.linkMode});continue}try{let b=await ag(k,f,c.linkMode,d,{neverOverwriteUser:c.neverOverwriteUser});await V(f,{skillId:i.id,libraryPath:k,linkMode:b.mode}),l.push({agent:a,skillId:i.id,dest:f,action:"synced",...b}),j.managedSkills||(j.managedSkills={}),j.managedSkills[a]||(j.managedSkills[a]=[]),j.managedSkills[a].includes(e)||j.managedSkills[a].push(e)}catch(b){b?.code==="conflict"?l.push({agent:a,skillId:i.id,dest:f,action:"conflict",reason:b.reason||"conflict",message:b.message}):l.push({agent:a,skillId:i.id,dest:f,action:"error",error:b?.message||String(b)})}}let n=[...new Set([...j.managedSkills?.[a]||[],...f.map(a=>u(a.id)).filter(Boolean)])];await ar(a,m,n,k,d,!!b.dryRun,l);let o=[...j.managedSkills?.[a]||[]],q=new Set(f.map(a=>u(a.id))),r=[];for(let c of o){if(q.has(c)){r.push(c);continue}let e=g().join(m,c);if(b.dryRun){if(!(await X(e,!0,{libraryRoot:d})).ok){r.push(c);continue}l.push({agent:a,skillId:c,dest:e,action:"would_remove"});continue}if(!(await aq(e,d)).ok){r.push(c);continue}l.push({agent:a,skillId:c,dest:e,action:"removed_stale"})}j.managedSkills&&(j.managedSkills[a]=r)}if(q)for(let[a,d]of Object.entries(n)){if(!d.supportsMcp)continue;if(c.targets[a]?.mcp===!1){m.push({agent:a,action:"skipped_disabled"});continue}let e=w(a,k);if(!e)continue;let f=j.managedMcpKeys?.[a]||[];try{let d;d="toml"===e.format?await an(e.path,i,{neverOverwriteUser:c.neverOverwriteUser,dryRun:b.dryRun,previouslyManaged:f}):await am(e.path,i,{kind:e.kind,neverOverwriteUser:c.neverOverwriteUser,dryRun:b.dryRun,previouslyManaged:f}),m.push({agent:a,...d}),d.ok&&!b.dryRun&&(j.managedMcpKeys||(j.managedMcpKeys={}),j.managedMcpKeys[a]=[...d.written||[]])}catch(b){m.push({agent:a,ok:!1,error:b?.message||String(b),path:e.path})}}b.dryRun||(j.lastSync={at:new Date().toISOString(),skillCount:f.length,mcpCount:i.length,linkMode:c.linkMode,scope:c.scope},await M(d,j));let r=l.filter(a=>"conflict"===a.action);return{ok:!0,dryRun:!!b.dryRun,libraryRoot:d,settings:{linkMode:c.linkMode,scope:c.scope,neverOverwriteUser:c.neverOverwriteUser},skills:l,mcp:m,conflictCount:r.length,summary:{skillsSynced:l.filter(a=>"synced"===a.action||"would_sync"===a.action).length,skillsConflicts:r.length,mcpOk:m.filter(a=>a.ok).length,mcpFailed:m.filter(a=>!1===a.ok).length}}}async function au(a){try{return await C(()=>av(a))}catch(a){if(a?.code==="lock_timeout")return{ok:!1,error:"lock_timeout",message:a.message};throw a}}async function av(a){let b=a||await J();try{G({...b,enabled:!0})}catch(a){if(a?.code==="project_path_missing"||a?.code==="project_path_invalid")return{ok:!1,error:a.code,message:a.message}}let c=H(b),d=await L(c),e={scope:b.scope,projectPath:b.projectPath},f=[];for(let[a,h]of Object.entries(n)){if(h.supportsSkills&&b.targets[a]?.skills!==!1){let b=v(a,e),h=d.managedSkills?.[a]||[];if(b){for(let d of h){let e=g().join(b,d),h=await aq(e,c);h.ok?f.push({agent:a,type:"skill",dest:e,action:"removed"}):f.push({agent:a,type:"skill",dest:e,action:"skipped_conflict",reason:h.reason,message:h.message})}await ar(a,b,h,e,c,!1,f),d.managedSkills&&(d.managedSkills[a]=[])}}if(h.supportsMcp&&b.targets[a]?.mcp!==!1){let b=w(a,e),c=d.managedMcpKeys?.[a]||[];b&&("toml"===b.format?await an(b.path,[],{neverOverwriteUser:!0,previouslyManaged:c}):await am(b.path,[],{kind:b.kind,neverOverwriteUser:!0,previouslyManaged:c}),f.push({agent:a,type:"mcp",path:b.path,action:"cleared_managed"})),d.managedMcpKeys&&(d.managedMcpKeys[a]=[])}}return d.lastSync={at:new Date().toISOString(),cleaned:!0},await M(c,d),{ok:!0,results:f}}async function aw(a){let b=a||D(),c=H(b);x(c);let d=await P(c),e=await _(c),f={scope:b.scope,projectPath:b.projectPath},i=[],j=[];for(let[a,k]of(j.push({id:"library",ok:!0,message:`Library at ${c} (${d.length} skills, ${e.length} MCP servers)`}),"project"!==b.scope||b.projectPath||i.push({severity:"error",code:"project_path_missing",message:"Project scope selected but no project path set"}),Object.entries(n))){if(b.targets[a]?.skills!==!1&&k.supportsSkills){let b=v(a,f);for(let e of d){let d=u(e.id);if(!b)continue;let f=g().join(b,d),l=function(a){try{let b;try{b=(0,h.lstatSync)(a)}catch{return{exists:!1}}if(b.isSymbolicLink()){let b=null,c=!1;try{b=(0,h.readlinkSync)(a);try{(0,h.realpathSync)(a)}catch{c=!0}}catch{c=!0}return{exists:!0,type:"symlink",target:b,broken:c}}if(b.isDirectory())return{exists:!0,type:"directory"};return{exists:!0,type:"other"}}catch(a){return{exists:!1,error:a?.message}}}(f);l.exists?l.broken?i.push({severity:"error",code:"skill_broken_symlink",agent:a,skillId:e.id,path:f,message:`${k.label}: ${d} is a broken symlink — re-Apply`}):(await X(f,!0,{libraryRoot:c})).ok?j.push({id:`skill:${a}:${e.id}`,ok:!0,message:`${k.label} ← ${d} (${l.type})`}):i.push({severity:"error",code:"skill_conflict",agent:a,skillId:e.id,path:f,message:`${k.label}: ${d} exists but is not Switchboard-managed`}):i.push({severity:"warn",code:"skill_not_synced",agent:a,skillId:e.id,message:`${k.label}: ${d} not present — run Apply`})}}if(b.targets[a]?.mcp!==!1&&k.supportsMcp){let b=w(a,f);if(b){let c=(0,h.existsSync)(b.path);j.push({id:`mcp-file:${a}`,ok:!0,message:`${k.label} MCP config ${c?"found":"will be created"}: ${b.path}`})}}}for(let a of e)if(a.env)for(let[b,c]of Object.entries(a.env))"string"==typeof c&&c.length>12&&!c.includes("${")&&/^(sk-|ghp_|xox|AKIA|key-)/i.test(c)&&i.push({severity:"warn",code:"possible_secret_in_library",mcpId:a.id,envKey:b,message:`MCP ${a.id} env.${b} looks like a raw secret — prefer \${ENV_VAR} references`});let k={ok:0===i.filter(a=>"error"===a.severity).length,at:new Date().toISOString(),libraryRoot:c,linkMode:b.linkMode,platform:process.platform,checks:j,issues:i};try{await C(async()=>{let a=await L(c);a.lastDoctor=k,await M(c,a)})}catch(a){if(a?.code!=="lock_timeout")throw a;k.statePersistSkipped=!0}return k}var ax=c(71553),ay=c.n(ax),az=c(77030),aA=c.n(az),aB=c(77598),aC=c.n(aB);function aD(a){return aC().createHash("sha256").update(a,"utf-8").digest("hex")}let aE=[{id:"anthropic-frontend-design",name:"frontend-design (Anthropic)",description:"Production UI aesthetics — anti AI-slop",skillId:"frontend-design",rawUrl:"https://raw.githubusercontent.com/anthropics/skills/main/skills/frontend-design/SKILL.md",trusted:!0},{id:"anthropic-skill-creator",name:"skill-creator (Anthropic)",description:"Meta-skill to author new Agent Skills",skillId:"skill-creator",rawUrl:"https://raw.githubusercontent.com/anthropics/skills/main/skills/skill-creator/SKILL.md",trusted:!0},{id:"anthropic-webapp-testing",name:"webapp-testing (Anthropic)",description:"Playwright testing for local web apps",skillId:"webapp-testing",rawUrl:"https://raw.githubusercontent.com/anthropics/skills/main/skills/webapp-testing/SKILL.md",trusted:!0}],aF=["githubusercontent.com","github.com","raw.githubusercontent.com","gitlab.com","bitbucket.org","jsdelivr.net","cdn.jsdelivr.net"];async function aG(a){let b;try{b=new URL(a)}catch{return{ok:!1,error:"invalid_url",message:"Invalid URL"}}if("https:"!==b.protocol)return{ok:!1,error:"https_required",message:"Catalog URLs must use https://"};if(b.username||b.password)return{ok:!1,error:"credentials_forbidden",message:"URLs with embedded credentials are not allowed"};let c=b.hostname.toLowerCase();if("localhost"===c||c.endsWith(".local")||c.endsWith(".internal"))return{ok:!1,error:"private_host",message:"Local/private hosts are not allowed"};if(!aF.some(a=>c===a||c.endsWith(`.${a}`)))return{ok:!1,error:"host_not_allowlisted",message:`Host not allowlisted. Allowed: ${aF.join(", ")}`};try{for(let a of(await ay().lookup(c,{all:!0})))if(function(a){if(aA().isIPv4(a)){let b=a.split(".").map(Number);return 10===b[0]||127===b[0]||0===b[0]||169===b[0]&&254===b[1]||172===b[0]&&!!(b[1]>=16)&&!!(b[1]<=31)||192===b[0]&&168===b[1]}if(aA().isIPv6(a)){let b=a.toLowerCase();return!!("::1"===b||b.startsWith("fc")||b.startsWith("fd")||b.startsWith("fe80"))}return!0}(a.address))return{ok:!1,error:"private_ip",message:`Host resolves to private IP (${a.address})`}}catch(a){return{ok:!1,error:"dns_failed",message:a?.message||"DNS lookup failed"}}return{ok:!0,url:b}}async function aH(a,b={}){let c,d=await aG(a);if(!d.ok)return d;let e={Accept:"text/plain, text/markdown, */*"};b.etag&&(e["If-None-Match"]=b.etag);try{c=await fetch(d.url.toString(),{headers:e,signal:AbortSignal.timeout(b.timeoutMs??3e4),redirect:"error"})}catch(a){return{ok:!1,error:"fetch_failed",message:a?.message||"Failed to fetch skill"}}if(304===c.status)return{ok:!0,notModified:!0};if(!c.ok)return{ok:!1,error:"http_error",message:`HTTP ${c.status} fetching skill`};if(Number(c.headers.get("content-length")||0)>524288)return{ok:!1,error:"too_large",message:"Skill exceeds 524288 byte limit"};let f=await c.text();return f.length>524288?{ok:!1,error:"too_large",message:"Skill exceeds 524288 byte limit"}:!f||f.length<20?{ok:!1,error:"empty",message:"Remote skill content empty"}:/^---[\s\S]*?name:\s*/m.test(f)||/^#\s+/m.test(f)?/<html[\s>]/i.test(f)&&!f.includes("name:")?{ok:!1,error:"not_markdown",message:"URL returned HTML, not a skill markdown file"}:{ok:!0,markdown:f,etag:c.headers.get("etag")}:{ok:!1,error:"invalid_skill",message:"Content does not look like a SKILL.md"}}async function aI(a,b){if(b.requireConfirm&&!0!==b.confirmed)return{ok:!1,error:"confirmation_required",message:"Catalog installs require explicit confirmation. Remote content can instruct agents to run shell commands — review the markdown first."};let c=t(b.skillId);if(!c)return{ok:!1,error:"invalid_id",message:"Invalid skill id"};let d=await aH(b.url);if(!d.ok)return d;if(d.notModified||!("markdown"in d))return{ok:!1,error:"fetch_failed",message:"Unexpected empty response"};let{markdown:e,etag:f}=d;return{ok:!0,...await R(a,{id:c,markdown:e,source:`url:${b.url}`,contentHash:aD(e),etag:f||null}),warning:"Skill markdown stored in the library only. It is not active on agents until you click Apply Sync. Review SKILL.md for any shell/network instructions before enabling."}}async function aJ(a){let b=await aG(a);if(!b.ok)return b;try{let a=await fetch(b.url.toString(),{headers:{Accept:"text/plain, text/markdown, */*"},signal:AbortSignal.timeout(3e4),redirect:"error"});if(!a.ok)return{ok:!1,error:`HTTP ${a.status}`};let c=await a.text();return{ok:!0,preview:c.slice(0,4e3),truncated:c.length>4e3,bytes:c.length}}catch(a){return{ok:!1,error:a?.message||"fetch failed"}}}function aK(a,b){return g().join(p(a),b)}async function aL(a,b){try{let c=await e().readFile(g().join(aK(a,b),".source.json"),"utf-8"),d=JSON.parse(c);return d&&"object"==typeof d?d:null}catch{return null}}async function aM(a,b,c){await e().writeFile(g().join(aK(a,b),".source.json"),JSON.stringify(c,null,2),"utf-8")}function aN(a){let b="string"==typeof a?.source?a.source:"";return b.startsWith("url:")?b.slice(4):null}async function aO(a,b,c){return"string"==typeof c?.contentHash&&c.contentHash?c.contentHash:aD(await e().readFile(g().join(aK(a,b),"SKILL.md"),"utf-8"))}async function aP(a){let b=[];try{b=await e().readdir(p(a))}catch{return{results:[],skipped:0}}let c=[];for(let d of b){let b=await aL(a,d),e=aN(b);e&&b&&c.push({id:d,url:e,meta:b})}let d=c.slice(0,20),f=c.length-d.length;return{results:await Promise.all(d.map(async({id:b,url:c,meta:d})=>{try{let e=await aO(a,b,d),f=await aH(c,{timeoutMs:1e4,etag:"string"==typeof d.etag?d.etag:null});if(!f.ok)return{id:b,status:"error",message:f.message};let g=new Date().toISOString();if(f.notModified)return await aM(a,b,{...d,contentHash:e,lastChecked:g}),{id:b,status:"fresh"};let h=aD(f.markdown);return await aM(a,b,{...d,contentHash:e,etag:f.etag||d.etag||null,lastChecked:g}),{id:b,status:h===e?"fresh":"update"}}catch(a){return{id:b,status:"error",message:a?.message||"check failed"}}})),skipped:f}}async function aQ(a,b){let c=t(b);if(!c)return{ok:!1,error:"invalid_id",message:"Invalid skill id"};let d=aN(await aL(a,c));if(!d)return{ok:!1,error:"not_url_source",message:"Skill was not installed from a URL"};let e=await aH(d);return e.ok?!e.notModified&&"markdown"in e?{ok:!0,markdown:e.markdown,contentHash:aD(e.markdown)}:{ok:!1,error:"fetch_failed",message:"Unexpected empty response"}:e}async function aR(a,b,c){if(c?.confirmed!==!0)return{ok:!1,error:"confirmation_required",message:"Updates require explicit confirmation. Remote content can instruct agents to run shell commands — review the markdown first."};if("string"!=typeof c.expectedHash||!/^[a-f0-9]{64}$/.test(c.expectedHash))return{ok:!1,error:"expected_hash_required",message:"Preview first — expectedHash missing"};let d=t(b);if(!d)return{ok:!1,error:"invalid_id",message:"Invalid skill id"};let e=aN(await aL(a,d));if(!e)return{ok:!1,error:"not_url_source",message:"Skill was not installed from a URL"};let f=await aH(e);if(!f.ok)return f;if(f.notModified||!("markdown"in f))return{ok:!1,error:"fetch_failed",message:"Unexpected empty response"};let g=aD(f.markdown);return g!==c.expectedHash?{ok:!1,error:"content_changed",message:"Upstream content changed since preview — preview again before updating."}:{ok:!0,...await R(a,{id:d,markdown:f.markdown,source:`url:${e}`,contentHash:g,etag:f.etag||null}),warning:"Skill updated in the library only. Run Apply Sync to push the new version to agents."}}async function aS(a,b){let c=g().resolve(b),d=g().join(c,"skills");await e().mkdir(d,{recursive:!0});let f=await P(a);for(let b of(await e().writeFile(g().join(c,".switchboard-export.json"),JSON.stringify({managedBy:"switchboard",at:new Date().toISOString()},null,2),"utf-8"),f)){let c=g().join(p(a),b.id),f=b.id.startsWith("sb-")?b.id:`sb-${b.id}`,i=g().join(d,f);if((0,h.existsSync)(i)){let a=g().join(i,".switchboard-managed.json");if(!(0,h.existsSync)(a))continue;await e().rm(i,{recursive:!0,force:!0})}await ad(c,i,a),await e().writeFile(g().join(i,".switchboard-managed.json"),JSON.stringify({managedBy:"switchboard",skillId:b.id},null,2),"utf-8")}let i=await _(a),j=["# Generated by Switchboard Agent Library — import-friendly AgentSync layout","# Run: agentsync apply (optional; Switchboard can also Apply directly)","",'source_dir = "."','default_agents = ["claude", "codex", "gemini", "cursor", "opencode"]',"","[gitignore]","enabled = true",'marker = "Switchboard / AI Agent Symlinks"',"","[mcp]","enabled = true",'merge_strategy = "merge"',""];for(let a of i.filter(a=>!1!==a.enabled)){let b=a.id.replace(/^sb-/,"");j.push(`[mcp_servers.${b}]`),a.command&&(j.push(`command = ${JSON.stringify(a.command)}`),a.args?.length&&j.push(`args = [${a.args.map(a=>JSON.stringify(a)).join(", ")}]`)),a.url&&j.push(`url = ${JSON.stringify(a.url)}`),j.push("")}return await e().writeFile(g().join(c,"agentsync.toml"),j.join("\n"),"utf-8"),await e().writeFile(g().join(c,"mcp.switchboard.json"),JSON.stringify({servers:i},null,2),"utf-8"),await e().writeFile(g().join(c,"README.switchboard.md"),`# Switchboard Agent Library export
|
|
2
|
+
|
|
3
|
+
Exported from Switchboard Agent Library.
|
|
4
|
+
|
|
5
|
+
## Contents
|
|
6
|
+
- \`skills/\` — Agent Skills (SKILL.md packages)
|
|
7
|
+
- \`agentsync.toml\` — MCP + skeleton for [dallay/agentsync](https://github.com/dallay/agentsync)
|
|
8
|
+
- \`mcp.switchboard.json\` — canonical MCP list
|
|
9
|
+
|
|
10
|
+
## Coexistence
|
|
11
|
+
Switchboard manages agent targets with the **\`sb-\`** namespace (skills dirs and MCP keys).
|
|
12
|
+
AgentSync/skillbook can manage other paths. Prefer not to point both tools at the same
|
|
13
|
+
un-namespaced skill folder.
|
|
14
|
+
|
|
15
|
+
## Apply without AgentSync
|
|
16
|
+
Use **Dashboard → Agent library → Apply sync** instead.
|
|
17
|
+
`,"utf-8"),{ok:!0,path:c,skills:f.map(a=>a.id),mcpCount:i.length}}async function aT(a){let b=a||await J(),c=H(b);x(c),b.includeProductSkills&&await Q(c);let[d,e,f]=await Promise.all([P(c),_(c),L(c)]);return{settings:b,libraryRoot:c,skills:d,mcpServers:e,state:f,agents:n}}},82922:(a,b,c)=>{"use strict";c.d(b,{Ik:()=>l,XP:()=>j,dr:()=>k});var d=c(79748),e=c.n(d),f=c(33873),g=c.n(f),h=c(29021);let i=/^[a-z0-9][a-z0-9_-]*$/i;function j(){for(let a of[g().join(process.cwd(),"skills"),g().join(process.cwd(),"..","skills"),g().join(process.cwd(),"..","..","skills")])if((0,h.existsSync)(a))return a;return null}async function k(a){let b=function(a){if(!a||"string"!=typeof a||!i.test(a))return null;let b=j();if(!b)return null;let c=g().join(b,a,"SKILL.md"),d=g().resolve(c);return d.startsWith(g().resolve(b)+g().sep)?d:null}(a);if(!b)return null;try{return await e().readFile(b,"utf-8")}catch(a){if(a&&"ENOENT"===a.code)return null;throw a}}function l(a,b){let c=String(b||"").replace(/\/+$/,"");return c?String(a).replace(/(?:https?:\/\/[^\s)"']+\/)?skills\/([a-z0-9][a-z0-9_-]*)\/SKILL\.md/gi,`${c}/api/skills/$1`):a}},96487:()=>{}};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";exports.id=6103,exports.ids=[6103],exports.modules={86103:(a,b,c)=>{c.d(b,{generateApiKeyWithMachine:()=>l});var d=c(55511),e=c.n(d),f=c(73024),g=c.n(f),h=c(76760),i=c.n(h),j=c(53859);let k=function(){if(process.env.API_KEY_SECRET)return process.env.API_KEY_SECRET;let a=i().join(j.nJ,"auth","api-key-secret");try{let b=g().readFileSync(a,"utf8").trim();if(b)return b}catch{}let b=e().randomBytes(32).toString("hex");try{g().mkdirSync(i().dirname(a),{recursive:!0,mode:448}),g().writeFileSync(a,b,{mode:384})}catch{}return b}();function l(a){let b=e().randomBytes(16).toString("hex"),c=e().createHmac("sha256",k).update(a+b).digest("hex").slice(0,8);return{key:`sk-${a}-${b}-${c}`,keyId:b}}}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";exports.id=615,exports.ids=[615],exports.modules={40615:(a,b,c)=>{c.d(b,{AI_PROVIDERS:()=>s,js:()=>w,DI:()=>n,fg:()=>k,Pd:()=>o,IS:()=>h,nJ:()=>i,zN:()=>j,JH:()=>m,jO:()=>y,wb:()=>x,br:()=>l,wG:()=>v,zt:()=>t,gb:()=>q,gC:()=>r,mq:()=>p,rs:()=>u});var d=c(
|
|
1
|
+
"use strict";exports.id=615,exports.ids=[615],exports.modules={40615:(a,b,c)=>{c.d(b,{AI_PROVIDERS:()=>s,js:()=>w,DI:()=>n,fg:()=>k,Pd:()=>o,IS:()=>h,nJ:()=>i,zN:()=>j,JH:()=>m,jO:()=>y,wb:()=>x,br:()=>l,wG:()=>v,zt:()=>t,gb:()=>q,gC:()=>r,mq:()=>p,rs:()=>u});var d=c(67141);let e="⚠️ Risk Notice: This provider uses a subscription/OAuth session not officially licensed for proxy/router use. Account may be restricted or banned. Use at your own risk.";Object.fromEntries(d.A.filter(a=>a.display).map(a=>{let b;return[a.id,"RISK_NOTICE"===(b=a.display).deprecationNotice?{...b,deprecationNotice:e}:b]}));let f=["serviceKinds","ttsConfig","sttConfig","embeddingConfig","imageConfig","imageToTextConfig","videoConfig","musicConfig","searchViaChat","searchConfig","fetchConfig","modelsFetcher","mediaPriority","hiddenKinds"],g=a=>Object.fromEntries(d.A.filter(b=>b.category===a).map(a=>[a.id,function(a){let b={};for(let c of(a.media&&Object.assign(b,a.media),f))void 0!==a[c]&&(b[c]=a[c]);let c={...a.display||{}};return"RISK_NOTICE"===c.deprecationNotice&&(c.deprecationNotice=e),{...c,id:a.id,alias:a.uiAlias||a.alias,...a.aliases?.length?{aliases:a.aliases}:{},...a.hidden?{hidden:!0}:{},...b,...void 0!==a.priority?{priority:a.priority}:{},...a.hasFree?{hasFree:!0}:{},...a.thinkingConfig?{thinkingConfig:a.thinkingConfig}:{},...a.regions?{regions:a.regions,defaultRegion:a.defaultRegion}:{},...a.hasProviderSpecificData?{hasProviderSpecificData:!0}:{},...a.noAuth?{noAuth:!0}:{},...a.passthroughModels?{passthroughModels:!0}:{},...a.hasOAuth?{hasOAuth:!0}:{},...a.authModes?{authModes:a.authModes}:{},...a.authType?{authType:a.authType}:{},...a.authHint?{authHint:a.authHint}:{}}}(a)])),h=g("free"),i=g("freeTier"),j=g("oauth"),k=g("apikey"),l=g("webCookie"),m="openai-compatible-",n="anthropic-compatible-",o="custom-embedding-";function p(a){return"string"==typeof a&&a.startsWith(m)}function q(a){return"string"==typeof a&&a.startsWith(n)}function r(a){return"string"==typeof a&&a.startsWith(o)}let s={...h,...i,...j,...k,...l};function t(a){for(let b of Object.values(s))if(b.alias===a||b.id===a||b.aliases?.includes(a))return b;return null}function u(a){let b=t(a);return b?.id||a}function v(a){let b=s[a];return b?.alias||a}let w=Object.values(s).reduce((a,b)=>(a[b.alias]=b.id,a),{});Object.values(s).reduce((a,b)=>(a[b.id]=b.alias,a),{});let x=d.A.filter(a=>a.features?.usage).map(a=>a.id),y=d.A.filter(a=>a.features?.usageApikey).map(a=>a.id)}};
|
|
@@ -50,8 +50,8 @@ ${c}
|
|
|
50
50
|
`.replace(/'/g,"'\\''");await t(`printf '%s' '${e}' | tee ${q} > /dev/null`,b),await u(b)}i(`🌐 DNS ${a}: ✅ added ${d.join(", ")}`)}catch(a){throw Error(a.message?.includes("incorrect password")?"Wrong sudo password":`Failed to add DNS entry: ${a.message}`)}}async function x(a,b){let c=k[a];if(!c)throw Error(`Unknown tool: ${a}`);let d=c.filter(a=>v(a));if(0===d.length)return void i(`🌐 DNS ${a}: already inactive`);try{if(o){let a=g.readFileSync(q,"utf8"),b=a.split(/\r?\n/).filter(a=>!d.some(b=>a.includes(b))).join("\r\n").replace(/[\r\n\s]+$/g,"")+"\r\n";n(q,a,b),await l("ipconfig /flushdns | Out-Null")}else{let a=(g.readFileSync(q,"utf8").split(/\r?\n/).filter(a=>!d.some(b=>a.includes(b))).join("\n").replace(/[\r\n\s]+$/g,"")+"\n").replace(/'/g,"'\\''");await t(`printf '%s' '${a}' | tee ${q} > /dev/null`,b),await u(b)}i(`🌐 DNS ${a}: ✅ removed ${d.join(", ")}`)}catch(a){throw Error(a.message?.includes("incorrect password")?"Wrong sudo password":`Failed to remove DNS entry: ${a.message}`)}}async function y(a){for(let b of Object.keys(k))try{await x(b,a)}catch(a){j(`DNS ${b}: failed to remove — ${a.message}`)}}a.exports={TOOL_HOSTS:k,addDNSEntry:w,removeDNSEntry:x,removeAllDNSEntries:y,removeAllDNSEntriesSync:function(){try{if(!g.existsSync(q))return;let a=Object.values(k).flat(),b=g.readFileSync(q,"utf8"),c=o?"\r\n":"\n",d=b.split(/\r?\n/).filter(b=>!a.some(a=>b.includes(a))).join(c).replace(/[\r\n\s]+$/g,"")+c;if(d===b)return;if(g.writeFileSync(q,d,"utf8"),o)try{f("ipconfig /flushdns",{windowsHide:!0,stdio:"ignore"})}catch{}else if(p)try{f("dscacheutil -flushcache && killall -HUP mDNSResponder",{stdio:"ignore"})}catch{}else try{f("resolvectl flush-caches 2>/dev/null || true",{stdio:"ignore"})}catch{}}catch{}},execWithPassword:t,isSudoAvailable:r,canRunSudoWithoutPassword:s,isSudoPasswordRequired:function(){return!o&&r()&&!s()},checkDNSEntry:v,checkAllDNSStatus:function(){try{let a=g.readFileSync(q,"utf8"),b={};for(let[c,d]of Object.entries(k))b[c]=d.every(b=>a.includes(b));return b}catch{return Object.fromEntries(Object.keys(k).map(a=>[a,!1]))}}}},82193:(a,b,c)=>{let d=c(29021),e=c(33873),f=c(21820),g="switchboard";function h(){return"win32"===process.platform?e.join(process.env.APPDATA||e.join(f.homedir(),"AppData","Roaming"),g):e.join(f.homedir(),`.${g}`)}let i=function(){let a=process.env.DATA_DIR;if(!a)return h();try{return d.mkdirSync(a,{recursive:!0}),a}catch(b){if(b?.code==="EACCES"||b?.code==="EPERM")return console.warn(`[DATA_DIR] '${a}' not writable → fallback ~/.${g}`),h();throw b}}(),j=e.join(i,"mitm");a.exports={DATA_DIR:i,MITM_DIR:j}},85341:a=>{a.exports={TOOL_HOSTS:{antigravity:["daily-cloudcode-pa.googleapis.com","cloudcode-pa.googleapis.com"],copilot:["api.individual.githubcopilot.com"],kiro:["runtime.us-east-1.kiro.dev","q.us-east-1.amazonaws.com","codewhisperer.us-east-1.amazonaws.com"],cursor:["api2.cursor.sh"]}}},87777:(a,b,c)=>{let d=c(29021),e=c(33873),f=c(74075),{DATA_DIR:g}=c(82193),{LOG_BLACKLIST_URL_PARTS:h}=c(17511);function i(){return new Date().toLocaleTimeString("en-US",{hour12:!1})}let j=e.join(g,"logs","mitm");d.existsSync(j)||d.mkdirSync(j,{recursive:!0});let k=/^\s*(\{\s*\}|\[\s*\]|null)?\s*$/;function l(a,b=80){return String(a).replace(/[^a-zA-Z0-9]/g,"_").substring(0,b)}function m(a){return!!a&&h.some(b=>a.includes(b))}a.exports={log:a=>console.log(`[${i()}] [MITM] ${a}`),err:a=>console.error(`[${i()}] ❌ [MITM] ${a}`),dumpRequest:function(a,b,c="raw"){if(m(a.url))return null;try{let f=new Date().toISOString().replace(/[:.]/g,"-"),g=l((a.headers.host||"")+a.url),h=e.join(j,`${f}_${c}_${g}.req.json`),i=null;try{i=JSON.parse(b.toString())}catch{}return d.writeFileSync(h,JSON.stringify({method:a.method,url:a.url,host:a.headers.host,headers:a.headers,body:i??b.toString("utf8")},null,2)),h}catch{return null}},createResponseDumper:function(a,b="raw"){if(m(a.url))return null;let c=new Date().toISOString().replace(/[:.]/g,"-"),g=l((a.headers.host||"")+a.url),h=e.join(j,`${c}_${b}_${g}.res.txt`),i=0,n={},o=[];return{writeHeader:(a,b)=>{i=a,n=b||{}},writeChunk:a=>{null!=a&&o.push(Buffer.isBuffer(a)?a:Buffer.from(a))},end:()=>{try{let a=Buffer.concat(o),b=n["content-encoding"]||n["Content-Encoding"],c=(function(a,b){if(!a||0===a.length)return a;try{let c=(b||"").toLowerCase();if(c.includes("gzip"))return f.gunzipSync(a);if(c.includes("br"))return f.brotliDecompressSync(a);if(c.includes("deflate"))return f.inflateSync(a)}catch{}return a})(a,b).toString("utf8");if(k.test(c))return;let e={...n};delete e["content-encoding"],delete e["Content-Encoding"];let g=`STATUS: ${i}
|
|
51
51
|
HEADERS: ${JSON.stringify(e,null,2)}
|
|
52
52
|
---BODY---
|
|
53
|
-
${c}`;d.writeFileSync(h,g)}catch{}},file:h}},clearDumpDir:function(){try{if(!d.existsSync(j))return;for(let a of d.readdirSync(j))try{d.rmSync(e.join(j,a),{recursive:!0,force:!0})}catch{}}catch{}}}},96182:(a,b,c)=>{let{exec:d,spawn:e,execSync:f}=c(79646),g=c(33873),h=c(29021),i=c(21820),j=c(91645),k=c(55591),l=c(55511),{addDNSEntry:m,removeDNSEntry:n,removeAllDNSEntries:o,removeAllDNSEntriesSync:p,checkAllDNSStatus:q,TOOL_HOSTS:r,isSudoAvailable:s,isSudoPasswordRequired:t}=c(66936),{isAdmin:u}=c(64809),v="win32"===process.platform,w="darwin"===process.platform,{generateCert:x}=c(26033),{installCert:y,uninstallCert:z}=c(9631),{isCertExpired:A}=c(8578),{DATA_DIR:B,MITM_DIR:C}=c(82193),{log:D,err:E}=c(87777),{LSOF_BIN:F}=c(17511),G="http://localhost:20128";function H(a){return null==a||""===a?"''":`'${String(a).replace(/'/g,"'\\''")}'`}async function I(){if(!_)return G;try{let a=await _(),b=a&&null!=a.mitmRouterBaseUrl?String(a.mitmRouterBaseUrl).trim():"";if(!b)return G;let c=new URL(b);if("http:"!==c.protocol&&"https:"!==c.protocol)return G;return b.replace(/\/+$/,"")}catch{return G}}let J=g.join(C,".mitm.pid"),K=g.join(C,".mitm.lock"),L=[5e3,1e4,2e4,3e4,6e4],M=0,N=0,O=!1;function P(){if(process.env.MITM_SERVER_PATH)return process.env.MITM_SERVER_PATH;let a=g.join(__dirname,"server.js");if(h.existsSync(a))return a;let b=g.join(process.cwd(),"src","mitm","server.js");if(h.existsSync(b))return b;let c=g.join(process.cwd(),"..","src","mitm","server.js");return h.existsSync(c)?c:b}function Q(a){try{if(!a||!h.existsSync(a)||!a.includes(`${g.sep}node_modules${g.sep}`))return a;let b=g.join(B,"runtime","mitm"),c=g.join(b,"server.js");if(h.existsSync(c))try{if(h.statSync(a).size===h.statSync(c).size)return c}catch{}return h.mkdirSync(b,{recursive:!0}),h.copyFileSync(a,c),c}catch(b){try{D(`[MITM] runtime copy failed: ${b.message}`)}catch{}return a}}let R=Q(P()),S="aes-256-gcm",T="switchboard-mitm-pwd",U=null,V=null;function W(){return globalThis.__mitmSudoPassword||null}function X(a){globalThis.__mitmSudoPassword=a}function Y(a){try{return process.kill(a,0),!0}catch(a){return"EACCES"===a.code}}function Z(a,b=!1,e=null){if(v)d(`taskkill ${b?"/F ":""}/PID ${a}`,{windowsHide:!0},()=>{});else{let f=b?"SIGKILL":"SIGTERM",g=`pkill -${f} -P ${a} 2>/dev/null; kill -${f} ${a} 2>/dev/null`;if(e||s()){let{execWithPassword:a}=c(66936);a(g,e||"").catch(()=>d(g,{windowsHide:!0},()=>{}))}else d(g,{windowsHide:!0},()=>{})}}function $(){try{let{machineIdSync:a}=c(19713),b=a();return l.createHash("sha256").update(b+T).digest()}catch{return l.createHash("sha256").update(T).digest()}}let _=null,aa=null;async function ab(a,b){if(aa)try{let c,d,e,f,g,h={mitmEnabled:a};b&&(c=$(),d=l.randomBytes(12),e=l.createCipheriv(S,c,d),f=Buffer.concat([e.update(b,"utf8"),e.final()]),g=e.getAuthTag(),h.mitmSudoEncrypted=`${d.toString("hex")}:${g.toString("hex")}:${f.toString("hex")}`),await aa(h)}catch(a){E(`Failed to save settings: ${a.message}`)}}async function ac(){if(aa)try{await aa({mitmSudoEncrypted:null})}catch(a){E(`Failed to clear encrypted password: ${a.message}`)}}async function ad(){if(!_)return null;try{let a=await _();if(!a.mitmSudoEncrypted)return null;return function(a){try{let[b,c,d]=a.split(":");if(!b||!c||!d)return null;let e=$(),f=l.createDecipheriv(S,e,Buffer.from(b,"hex"));return f.setAuthTag(Buffer.from(c,"hex")),f.update(Buffer.from(d,"hex"))+f.final("utf8")}catch{return null}}(a.mitmSudoEncrypted)}catch{return null}}async function ae(a,b){if(aa&&_)try{let c={...(await _()).dnsToolEnabled||{},[a]:b};await aa({dnsToolEnabled:c})}catch(a){E(`Failed to save DNS state: ${a.message}`)}}async function af(){if(!_)return{};try{return(await _()).dnsToolEnabled||{}}catch{return{}}}async function ag(a){let b=await af(),c=a||W()||await ad();for(let[a,d]of Object.entries(b))if(d&&r[a])try{await m(a,c)}catch(b){E(`DNS ${a}: restore failed — ${b.message}`)}}async function ah(){return v?u():!(!u()&&t())||!!(W()||await ad())}function ai(a){return new Promise(a=>{v?d('powershell -NonInteractive -WindowStyle Hidden -Command "$c = Get-NetTCPConnection -LocalPort 443 -State Listen -ErrorAction SilentlyContinue | Select-Object -First 1; if ($c) { $c.OwningProcess } else { 0 }"',{windowsHide:!0},(b,c)=>{if(b)return a(null);let e=parseInt(c.trim(),10);if(!e||e<=4)return a(null);d(`tasklist /FI "PID eq ${e}" /FO CSV /NH`,{windowsHide:!0},(b,c)=>{let d=c?.match(/"([^"]+)"/);a({pid:e,name:d?d[1]:"unknown"})})}):d(`${F} -nP -iTCP:443 -sTCP:LISTEN -t`,{windowsHide:!0},(b,c)=>{if(b||!c?.trim())return a(null);let e=parseInt(c.trim().split("\n")[0],10);if(!e||isNaN(e))return a(null);d(`ps -p ${e} -o comm=`,{windowsHide:!0},(b,c)=>{a({pid:e,name:c?.trim()||"unknown"})})})})}async function aj(a){if(U&&!U.killed){try{U.kill("SIGKILL")}catch{}U=null,V=null}try{if(h.existsSync(J)){let b=parseInt(h.readFileSync(J,"utf-8").trim(),10);b&&Y(b)&&(Z(b,!0,a),await new Promise(a=>setTimeout(a,500))),h.unlinkSync(J)}}catch{}if(!v&&R)try{let b=R
|
|
54
|
-
`),U.stdin.end()}else U=e(process.execPath,[
|
|
53
|
+
${c}`;d.writeFileSync(h,g)}catch{}},file:h}},clearDumpDir:function(){try{if(!d.existsSync(j))return;for(let a of d.readdirSync(j))try{d.rmSync(e.join(j,a),{recursive:!0,force:!0})}catch{}}catch{}}}},96182:(a,b,c)=>{let{exec:d,spawn:e,execSync:f}=c(79646),g=c(33873),h=c(29021),i=c(21820),j=c(91645),k=c(55591),l=c(55511),{addDNSEntry:m,removeDNSEntry:n,removeAllDNSEntries:o,removeAllDNSEntriesSync:p,checkAllDNSStatus:q,TOOL_HOSTS:r,isSudoAvailable:s,isSudoPasswordRequired:t}=c(66936),{isAdmin:u}=c(64809),v="win32"===process.platform,w="darwin"===process.platform,{generateCert:x}=c(26033),{installCert:y,uninstallCert:z}=c(9631),{isCertExpired:A}=c(8578),{DATA_DIR:B,MITM_DIR:C}=c(82193),{log:D,err:E}=c(87777),{LSOF_BIN:F}=c(17511),G="http://localhost:20128";function H(a){return null==a||""===a?"''":`'${String(a).replace(/'/g,"'\\''")}'`}async function I(){if(!_)return G;try{let a=await _(),b=a&&null!=a.mitmRouterBaseUrl?String(a.mitmRouterBaseUrl).trim():"";if(!b)return G;let c=new URL(b);if("http:"!==c.protocol&&"https:"!==c.protocol)return G;return b.replace(/\/+$/,"")}catch{return G}}let J=g.join(C,".mitm.pid"),K=g.join(C,".mitm.lock"),L=[5e3,1e4,2e4,3e4,6e4],M=0,N=0,O=!1;function P(){if(process.env.MITM_SERVER_PATH)return process.env.MITM_SERVER_PATH;let a=g.join(__dirname,"server.js");if(h.existsSync(a))return a;let b=g.join(process.cwd(),"src","mitm","server.js");if(h.existsSync(b))return b;let c=g.join(process.cwd(),"..","src","mitm","server.js");return h.existsSync(c)?c:b}function Q(a){try{if(!a||!h.existsSync(a)||!a.includes(`${g.sep}node_modules${g.sep}`))return a;let b=g.join(B,"runtime","mitm"),c=g.join(b,"server.js");if(h.existsSync(c))try{if(h.statSync(a).size===h.statSync(c).size)return c}catch{}return h.mkdirSync(b,{recursive:!0}),h.copyFileSync(a,c),c}catch(b){try{D(`[MITM] runtime copy failed: ${b.message}`)}catch{}return a}}let R=Q(P()),S="aes-256-gcm",T="switchboard-mitm-pwd",U=null,V=null;function W(){return globalThis.__mitmSudoPassword||null}function X(a){globalThis.__mitmSudoPassword=a}function Y(a){try{return process.kill(a,0),!0}catch(a){return"EACCES"===a.code}}function Z(a,b=!1,e=null){if(v)d(`taskkill ${b?"/F ":""}/PID ${a}`,{windowsHide:!0},()=>{});else{let f=b?"SIGKILL":"SIGTERM",g=`pkill -${f} -P ${a} 2>/dev/null; kill -${f} ${a} 2>/dev/null`;if(e||s()){let{execWithPassword:a}=c(66936);a(g,e||"").catch(()=>d(g,{windowsHide:!0},()=>{}))}else d(g,{windowsHide:!0},()=>{})}}function $(){try{let{machineIdSync:a}=c(19713),b=a();return l.createHash("sha256").update(b+T).digest()}catch{return l.createHash("sha256").update(T).digest()}}let _=null,aa=null;async function ab(a,b){if(aa)try{let c,d,e,f,g,h={mitmEnabled:a};b&&(c=$(),d=l.randomBytes(12),e=l.createCipheriv(S,c,d),f=Buffer.concat([e.update(b,"utf8"),e.final()]),g=e.getAuthTag(),h.mitmSudoEncrypted=`${d.toString("hex")}:${g.toString("hex")}:${f.toString("hex")}`),await aa(h)}catch(a){E(`Failed to save settings: ${a.message}`)}}async function ac(){if(aa)try{await aa({mitmSudoEncrypted:null})}catch(a){E(`Failed to clear encrypted password: ${a.message}`)}}async function ad(){if(!_)return null;try{let a=await _();if(!a.mitmSudoEncrypted)return null;return function(a){try{let[b,c,d]=a.split(":");if(!b||!c||!d)return null;let e=$(),f=l.createDecipheriv(S,e,Buffer.from(b,"hex"));return f.setAuthTag(Buffer.from(c,"hex")),f.update(Buffer.from(d,"hex"))+f.final("utf8")}catch{return null}}(a.mitmSudoEncrypted)}catch{return null}}async function ae(a,b){if(aa&&_)try{let c={...(await _()).dnsToolEnabled||{},[a]:b};await aa({dnsToolEnabled:c})}catch(a){E(`Failed to save DNS state: ${a.message}`)}}async function af(){if(!_)return{};try{return(await _()).dnsToolEnabled||{}}catch{return{}}}async function ag(a){let b=await af(),c=a||W()||await ad();for(let[a,d]of Object.entries(b))if(d&&r[a])try{await m(a,c)}catch(b){E(`DNS ${a}: restore failed — ${b.message}`)}}async function ah(){return v?u():!(!u()&&t())||!!(W()||await ad())}function ai(a){return new Promise(a=>{v?d('powershell -NonInteractive -WindowStyle Hidden -Command "$c = Get-NetTCPConnection -LocalPort 443 -State Listen -ErrorAction SilentlyContinue | Select-Object -First 1; if ($c) { $c.OwningProcess } else { 0 }"',{windowsHide:!0},(b,c)=>{if(b)return a(null);let e=parseInt(c.trim(),10);if(!e||e<=4)return a(null);d(`tasklist /FI "PID eq ${e}" /FO CSV /NH`,{windowsHide:!0},(b,c)=>{let d=c?.match(/"([^"]+)"/);a({pid:e,name:d?d[1]:"unknown"})})}):d(`${F} -nP -iTCP:443 -sTCP:LISTEN -t`,{windowsHide:!0},(b,c)=>{if(b||!c?.trim())return a(null);let e=parseInt(c.trim().split("\n")[0],10);if(!e||isNaN(e))return a(null);d(`ps -p ${e} -o comm=`,{windowsHide:!0},(b,c)=>{a({pid:e,name:c?.trim()||"unknown"})})})})}async function aj(a){if(U&&!U.killed){try{U.kill("SIGKILL")}catch{}U=null,V=null}try{if(h.existsSync(J)){let b=parseInt(h.readFileSync(J,"utf-8").trim(),10);b&&Y(b)&&(Z(b,!0,a),await new Promise(a=>setTimeout(a,500))),h.unlinkSync(J)}}catch{}if(!v&&R)try{let b=H(R);if(a||s()){let{execWithPassword:d}=c(66936);await d(`pkill -SIGKILL -f ${b} 2>/dev/null || true`,a||"").catch(()=>{})}else d(`pkill -SIGKILL -f ${b} 2>/dev/null || true`,{windowsHide:!0},()=>{});await new Promise(a=>setTimeout(a,500))}catch{}}function ak(a,b=443){return new Promise(c=>{let d=Date.now()+a,e=()=>{let a=k.request({hostname:"127.0.0.1",port:b,path:"/_mitm_health",method:"GET",rejectUnauthorized:!1,timeout:2e3},a=>{let b="";a.on("data",a=>{b+=a}),a.on("end",()=>{try{let a=JSON.parse(b);c(!0===a.ok?{ok:!0,pid:a.pid||null}:null)}catch{c(null)}})});a.on("timeout",()=>a.destroy(Error("health check timed out"))),a.on("error",()=>{Date.now()<d?setTimeout(e,500):c(null)}),a.end()};e()})}async function al(){let a=null!==U&&!U.killed,b=V;if(!a)try{if(h.existsSync(J)){let c=parseInt(h.readFileSync(J,"utf-8").trim(),10);c&&Y(c)?(a=!0,b=c):h.unlinkSync(J)}}catch{}let d=q(),e=g.join(C,"rootCA.crt"),f=h.existsSync(e),{checkCertInstalled:i}=c(9631),j=!!f&&await i(e);return{running:a,pid:b,certExists:f,certTrusted:j,dnsStatus:d}}async function am(a){if(O)return;if(O=!0,Date.now()-N>=6e4&&(M=0),M>=5){E("Max restart attempts reached. Giving up."),O=!1;return}let b=L[Math.min(M,L.length-1)];M++,D(`Restarting in ${b/1e3}s... (${M}/5)`),await new Promise(a=>setTimeout(a,b));try{let b=_?await _():null;if(b&&!b.mitmEnabled){D("MITM disabled, skipping restart"),O=!1;return}let c=W()||await ad();if(!c&&!v){E("No cached password, cannot auto-restart"),O=!1;return}await ao(a,c),D("\uD83D\uDD04 Restarted successfully"),M=0,O=!1}catch(b){E(`Restart attempt ${M}/5 failed: ${b.message}`),O=!1,am(a)}}async function an(a,b){if(a&&a.pid){if(v)try{f(`powershell -NonInteractive -WindowStyle Hidden -Command "Stop-Process -Id ${a.pid} -Force -ErrorAction SilentlyContinue"`,{windowsHide:!0})}catch{}else try{let{execWithPassword:d}=c(66936);b||s()?await d(`kill -9 ${a.pid}`,b||""):f(`kill -9 ${a.pid}`,{windowsHide:!0})}catch{}await new Promise(a=>setTimeout(a,800))}}async function ao(a,b,k=!1){if(!U||U.killed)try{if(h.existsSync(J)){let a=parseInt(h.readFileSync(J,"utf-8").trim(),10);if(a&&Y(a))return V=a,D(`♻️ Reusing existing process (PID: ${a})`),await ab(!0,b),b&&X(b),{running:!0,pid:a};h.unlinkSync(J)}}catch{}if(U&&!U.killed)throw Error("MITM server is already running");try{h.writeFileSync(K,String(process.pid),{flag:"wx"})}catch(a){if("EEXIST"===a.code){let a=!1;try{let b=parseInt(h.readFileSync(K,"utf-8").trim(),10);a=!b||!Y(b)}catch{a=!0}if(!a)throw Error("MITM server is already starting (lock contention)");try{h.unlinkSync(K)}catch{}h.writeFileSync(K,String(process.pid),{flag:"wx"})}else throw a}try{if(await aj(b),!v){let a=await new Promise(a=>{let b=j.createServer();b.once("error",b=>{"EADDRINUSE"===b.code?a("in-use"):a("no-permission")}),b.once("listening",()=>{b.close(()=>a("free"))}),b.listen(443,"127.0.0.1")});if("in-use"===a||"no-permission"===a){let a=await ai(b);if(a){let c=a.name.includes("/")?a.name.split("/").filter(Boolean).pop():a.name;if(k)D(`Killing process on port 443 (PID ${a.pid}, name=${c})...`),await an(a,b);else{let b=Error(`Port 443 is already in use by "${c}" (PID ${a.pid}).`);throw b.code="PORT_443_BUSY",b.portOwner={pid:a.pid,name:c},b}}}}let l=g.join(C,"rootCA.crt"),m=g.join(C,"rootCA.key"),n=h.existsSync(l)&&h.existsSync(m);if(!n||A(l)){if(n){D("\uD83D\uDD10 Cert expired — uninstalling old cert...");let a=b||W()||await ad();try{await z(a,l)}catch{}}D("\uD83D\uDD10 Generating Root CA..."),await x()}let{checkCertInstalled:o}=c(9631),p=await o(l),r=!v&&!w&&!s();if(p)D("\uD83D\uDD10 Cert: already trusted ✅");else{D("\uD83D\uDD10 Cert: not trusted → installing...");let a=b||W()||await ad();if(r)D(`🔐 Cert: skipping system trust (no sudo). Install ${l} as a trusted CA on machines that use this proxy.`);else{if(!a&&t())throw Error("Sudo password required to install Root CA certificate");try{await y(a,l),D("\uD83D\uDD10 Cert: ✅ trusted")}catch(a){throw Error(`Failed to trust certificate: ${a.message}`)}}}let u=R;if((!u||!h.existsSync(u))&&(D(`[MITM] server.js missing at ${u} → recopying`),!(u=Q(P()))||!h.existsSync(u)))throw Error(`MITM server.js not found at ${u}. Reinstall switchboard.`);let B=await I();if(D(`🚀 Starting server... (router: ${B})`),v){let c=await ai(b);if(c)if(k)D(`Killing process on port 443 (PID ${c.pid}, name=${c.name})...`),await an(c,b);else{let a=Error(`Port 443 is already in use by "${c.name}" (PID ${c.pid}).`);throw a.code="PORT_443_BUSY",a.portOwner={pid:c.pid,name:c.name},a}U=e(process.execPath,[u],{detached:!1,windowsHide:!0,cwd:i.tmpdir(),stdio:["ignore","pipe","pipe"],env:{...process.env,ROUTER_API_KEY:a,NODE_ENV:"production",MITM_ROUTER_BASE:B}}),aa&&await aa({mitmCertInstalled:!0}).catch(()=>{})}else if(s()){let c=[`HOME=${H(i.homedir())}`,`ROUTER_API_KEY=${H(a)}`,`MITM_ROUTER_BASE=${H(B)}`,"NODE_ENV=production",H(process.execPath),H(u)].join(" ");U=e("sudo",["-S","-E","sh","-c",c],{detached:!1,windowsHide:!0,stdio:["pipe","pipe","pipe"]}),b&&U.stdin.write(`${b}
|
|
54
|
+
`),U.stdin.end()}else U=e(process.execPath,[u],{detached:!1,windowsHide:!0,cwd:i.tmpdir(),stdio:["ignore","pipe","pipe"],env:{...process.env,ROUTER_API_KEY:a,NODE_ENV:"production",MITM_ROUTER_BASE:B}});if(U&&(V=U.pid,h.writeFileSync(J,String(V)),N=Date.now()),w){let a=g.join(C,"rootCA.crt");h.existsSync(a)&&d(`launchctl setenv NODE_EXTRA_CA_CERTS "${a}"`,{windowsHide:!0},b=>{b?D(`[launchctl] Failed to set NODE_EXTRA_CA_CERTS: ${b.message}`):D(`[launchctl] NODE_EXTRA_CA_CERTS set to ${a}`)})}else if(v){let a=g.join(C,"rootCA.crt");h.existsSync(a)&&d(`setx NODE_EXTRA_CA_CERTS "${a}"`,{windowsHide:!0},a=>{a?D(`[setx] Failed to set NODE_EXTRA_CA_CERTS: ${a.message}`):D("[setx] NODE_EXTRA_CA_CERTS set for current user")})}let G=null;U&&(U.stdout.on("data",a=>{process.stdout.write(a)}),U.stderr.on("data",a=>{let b=a.toString().trim();b&&(v||!b.includes("Password:")&&!b.includes("password for"))&&(E(b),G=b),!v&&(b.includes("incorrect password")||b.includes("no password was provided"))&&(X(null),ac(),O=!0)}),U.on("exit",b=>{D(`Server exited (code: ${b})`),U=null,V=null;try{h.unlinkSync(J)}catch{}try{h.unlinkSync(K)}catch{}0===b||O||am(a)}));let L=await ak(8e3,443);if(!L){if(U&&!U.killed){try{U.kill()}catch{}U=null}let a=function(){try{if(v){let a=f('powershell -NonInteractive -WindowStyle Hidden -Command "$c = Get-NetTCPConnection -LocalPort 443 -State Listen -ErrorAction SilentlyContinue | Select-Object -First 1; if ($c) { $c.OwningProcess } else { 0 }"',{encoding:"utf8",windowsHide:!0}).trim(),b=parseInt(a,10);if(b&&b>4){let a=f(`tasklist /FI "PID eq ${b}" /FO CSV /NH`,{encoding:"utf8",windowsHide:!0}).match(/"([^"]+)"/);if(a)return a[1].replace(".exe","")}}else{let a=f(`${F} -i :443`,{encoding:"utf8",windowsHide:!0}).trim().split("\n");if(a.length>1)return a[1].split(/\s+/)[0]}}catch{}return null}(),b=a?` Port 443 already in use by ${a}.`:"",c=G||`Check sudo password or port 443 access.${b}`;throw Error(`MITM server failed to start. ${c}`)}aa&&await aa({mitmCertInstalled:!0}).catch(()=>{}),D(`✅ Server healthy (PID: ${V||L.pid})`);let M=q();for(let[a,b]of Object.entries(M))D(`🌐 DNS ${a}: ${b?"✅ active":"❌ inactive"}`);await ab(!0,b),b&&X(b);try{h.unlinkSync(K)}catch{}return{running:!0,pid:V}}catch(a){try{h.unlinkSync(K)}catch{}throw a}}async function ap(a){O=!0,M=0,D("⏹ Stopping server...");let b=U,e=b&&!b.killed?b.pid:(()=>{try{return parseInt(h.readFileSync(J,"utf-8").trim(),10)}catch{return null}})();if(e&&Y(e)&&(D(`Killing server (PID: ${e})...`),Z(e,!1,a),await new Promise(a=>setTimeout(a,1e3)),Y(e)&&Z(e,!0,a)),U=null,V=null,v){let a=g.join(process.env.SystemRoot||"C:\\Windows","System32","drivers","etc","hosts"),b=Object.values(r).flat();try{let{isAdmin:d,runElevatedPowerShell:e,quotePs:f}=c(64809);if(d()){let d=h.readFileSync(a,"utf8"),e=d.split(/\r?\n/).filter(a=>!b.some(b=>a.includes(b))).join("\r\n").replace(/[\r\n\s]+$/g,"")+"\r\n";e!==d&&h.writeFileSync(a,e,"utf8");try{c(79646).execSync("ipconfig /flushdns",{windowsHide:!0,stdio:"ignore"})}catch{}D("\uD83C\uDF10 DNS: ✅ all tool hosts removed")}else{let c=b.map(f).join(","),d=`
|
|
55
55
|
$hosts = @(${c})
|
|
56
56
|
$lines = Get-Content -LiteralPath ${f(a)}
|
|
57
57
|
$filtered = $lines | Where-Object {
|
|
@@ -60,4 +60,4 @@ ${c}`;d.writeFileSync(h,g)}catch{}},file:h}},clearDumpDir:function(){try{if(!d.e
|
|
|
60
60
|
}
|
|
61
61
|
Set-Content -LiteralPath ${f(a)} -Value $filtered
|
|
62
62
|
ipconfig /flushdns | Out-Null
|
|
63
|
-
`;await e(d)}}catch(a){E(`Failed to clean hosts: ${a.message}`)}}else await o(a);w?d("launchctl unsetenv NODE_EXTRA_CA_CERTS",{windowsHide:!0},a=>{a?D(`[launchctl] Failed to unset NODE_EXTRA_CA_CERTS: ${a.message}`):D("[launchctl] NODE_EXTRA_CA_CERTS unset")}):v&&d("reg delete HKCU\\Environment /F /V NODE_EXTRA_CA_CERTS",{windowsHide:!0},a=>{a?D(`[reg] Failed to unset NODE_EXTRA_CA_CERTS: ${a.message}`):D("[reg] NODE_EXTRA_CA_CERTS unset")});try{h.unlinkSync(J)}catch{}try{h.unlinkSync(K)}catch{}return await ab(!1,null),O=!1,{running:!1,pid:null}}async function
|
|
63
|
+
`;await e(d)}}catch(a){E(`Failed to clean hosts: ${a.message}`)}}else await o(a);w?d("launchctl unsetenv NODE_EXTRA_CA_CERTS",{windowsHide:!0},a=>{a?D(`[launchctl] Failed to unset NODE_EXTRA_CA_CERTS: ${a.message}`):D("[launchctl] NODE_EXTRA_CA_CERTS unset")}):v&&d("reg delete HKCU\\Environment /F /V NODE_EXTRA_CA_CERTS",{windowsHide:!0},a=>{a?D(`[reg] Failed to unset NODE_EXTRA_CA_CERTS: ${a.message}`):D("[reg] NODE_EXTRA_CA_CERTS unset")});try{h.unlinkSync(J)}catch{}try{h.unlinkSync(K)}catch{}return await ab(!1,null),O=!1,{running:!1,pid:null}}async function aq(a,b){if(!(await al()).running)throw Error("MITM server is not running. Start the server first.");let c=b||W()||await ad();return await m(a,c),await ae(a,!0),{success:!0}}a.exports={pollMitmHealth:ak,getMitmStatus:al,startServer:ao,stopServer:ap,enableToolDNS:aq,disableToolDNS:async function a(a,b){let c=b||W()||await ad();return await n(a,c),await ae(a,!1),{success:!0}},trustCert:async function a(a){let b=g.join(C,"rootCA.crt");if(!h.existsSync(b))throw Error("Root CA not found. Start server first to generate it.");let{installCert:d}=c(9631);if(!v&&!w&&!s())return void D(`🔐 Cert: system trust unavailable (no sudo). Use file: ${b}`);let e=a||W()||await ad();if(!e&&t())throw Error("Sudo password required to trust certificate");await d(e,b),e&&X(e)},startMitm:ao,stopMitm:ap,getCachedPassword:W,setCachedPassword:X,loadEncryptedPassword:ad,clearEncryptedPassword:ac,isSudoPasswordRequired:t,initDbHooks:function(a,b){_=a,aa=b},restoreToolDNS:ag,hasDnsPrivilege:ah,removeAllDNSEntriesSync:p}}};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";exports.id=6252,exports.ids=[6252],exports.modules={34050:(a,b,c)=>{c.d(b,{CG:()=>e,oG:()=>d,zE:()=>f});let d=`
|
|
2
|
+
PRAGMA journal_mode = WAL;
|
|
3
|
+
PRAGMA synchronous = NORMAL;
|
|
4
|
+
PRAGMA temp_store = MEMORY;
|
|
5
|
+
PRAGMA mmap_size = 30000000;
|
|
6
|
+
PRAGMA cache_size = -64000;
|
|
7
|
+
PRAGMA foreign_keys = ON;
|
|
8
|
+
PRAGMA busy_timeout = 5000;
|
|
9
|
+
`,e={_meta:{columns:{key:"TEXT PRIMARY KEY",value:"TEXT NOT NULL"}},settings:{columns:{id:"INTEGER PRIMARY KEY CHECK (id = 1)",data:"TEXT NOT NULL"}},providerConnections:{columns:{id:"TEXT PRIMARY KEY",provider:"TEXT NOT NULL",authType:"TEXT NOT NULL",name:"TEXT",email:"TEXT",priority:"INTEGER",isActive:"INTEGER DEFAULT 1",data:"TEXT NOT NULL",createdAt:"TEXT NOT NULL",updatedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_pc_provider ON providerConnections(provider)","CREATE INDEX IF NOT EXISTS idx_pc_provider_active ON providerConnections(provider, isActive)","CREATE INDEX IF NOT EXISTS idx_pc_priority ON providerConnections(provider, priority)"]},providerNodes:{columns:{id:"TEXT PRIMARY KEY",type:"TEXT",name:"TEXT",data:"TEXT NOT NULL",createdAt:"TEXT NOT NULL",updatedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_pn_type ON providerNodes(type)"]},proxyPools:{columns:{id:"TEXT PRIMARY KEY",isActive:"INTEGER DEFAULT 1",testStatus:"TEXT",data:"TEXT NOT NULL",createdAt:"TEXT NOT NULL",updatedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_pp_active ON proxyPools(isActive)","CREATE INDEX IF NOT EXISTS idx_pp_status ON proxyPools(testStatus)"]},apiKeys:{columns:{id:"TEXT PRIMARY KEY",key:"TEXT UNIQUE NOT NULL",name:"TEXT",machineId:"TEXT",isActive:"INTEGER DEFAULT 1",createdAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_ak_key ON apiKeys(key)"]},combos:{columns:{id:"TEXT PRIMARY KEY",name:"TEXT UNIQUE NOT NULL",kind:"TEXT",models:"TEXT NOT NULL",createdAt:"TEXT NOT NULL",updatedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_combo_name ON combos(name)"]},kv:{columns:{scope:"TEXT NOT NULL",key:"TEXT NOT NULL",value:"TEXT NOT NULL"},primaryKey:"PRIMARY KEY (scope, key)",indexes:["CREATE INDEX IF NOT EXISTS idx_kv_scope ON kv(scope)"]},usageHistory:{columns:{id:"INTEGER PRIMARY KEY AUTOINCREMENT",timestamp:"TEXT NOT NULL",provider:"TEXT",model:"TEXT",connectionId:"TEXT",apiKey:"TEXT",endpoint:"TEXT",promptTokens:"INTEGER DEFAULT 0",completionTokens:"INTEGER DEFAULT 0",cost:"REAL DEFAULT 0",status:"TEXT",tokens:"TEXT",meta:"TEXT",requestId:"TEXT"},indexes:["CREATE INDEX IF NOT EXISTS idx_uh_ts ON usageHistory(timestamp DESC)","CREATE INDEX IF NOT EXISTS idx_uh_provider ON usageHistory(provider)","CREATE INDEX IF NOT EXISTS idx_uh_model ON usageHistory(model)","CREATE INDEX IF NOT EXISTS idx_uh_conn ON usageHistory(connectionId)","CREATE UNIQUE INDEX IF NOT EXISTS idx_uh_request_id ON usageHistory(requestId) WHERE requestId IS NOT NULL"]},usageDaily:{columns:{dateKey:"TEXT PRIMARY KEY",data:"TEXT NOT NULL"}},requestDetails:{columns:{id:"TEXT PRIMARY KEY",timestamp:"TEXT NOT NULL",provider:"TEXT",model:"TEXT",connectionId:"TEXT",status:"TEXT",data:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_rd_ts ON requestDetails(timestamp DESC)","CREATE INDEX IF NOT EXISTS idx_rd_provider ON requestDetails(provider)","CREATE INDEX IF NOT EXISTS idx_rd_model ON requestDetails(model)","CREATE INDEX IF NOT EXISTS idx_rd_conn ON requestDetails(connectionId)"]},fetchCache:{columns:{cacheKey:"TEXT PRIMARY KEY",kind:"TEXT",url:"TEXT",content:"TEXT NOT NULL",contentType:"TEXT",sizeBytes:"INTEGER",createdAt:"TEXT NOT NULL",expiresAt:"TEXT NOT NULL",lastAccessedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_fc_expires_at ON fetchCache(expiresAt)","CREATE INDEX IF NOT EXISTS idx_fc_last_accessed_at ON fetchCache(lastAccessedAt)"]},vault_entries:{columns:{id:"TEXT PRIMARY KEY",conversationId:"TEXT NOT NULL",toolName:"TEXT",content:"TEXT NOT NULL",sizeBytes:"INTEGER",createdAt:"TEXT NOT NULL",expiresAt:"TEXT NOT NULL",lastAccessedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_vault_conv ON vault_entries(conversationId)","CREATE INDEX IF NOT EXISTS idx_vault_expires ON vault_entries(expiresAt)","CREATE INDEX IF NOT EXISTS idx_vault_last_accessed ON vault_entries(lastAccessedAt)"]},vault_chunks:{columns:{entryId:"TEXT NOT NULL",chunkIndex:"INTEGER NOT NULL",conversationId:"TEXT NOT NULL",text:"TEXT NOT NULL"},primaryKey:"PRIMARY KEY (entryId, chunkIndex)",indexes:["CREATE INDEX IF NOT EXISTS idx_vault_chunks_conv ON vault_chunks(conversationId)"]},routing_events:{columns:{id:"INTEGER PRIMARY KEY AUTOINCREMENT",timestamp:"TEXT NOT NULL",comboName:"TEXT NOT NULL",sessionId:"TEXT",requestId:"TEXT",requestFingerprint:"TEXT",cluster:"TEXT",routerModel:"TEXT",pickedWorker:"TEXT",alternates:"TEXT",routerReason:"TEXT",routerConfidence:"TEXT",routerLatencyMs:"INTEGER",workerStatus:"INTEGER",workerLatencyMs:"INTEGER",fallbackUsed:"INTEGER DEFAULT 0",retries:"INTEGER DEFAULT 0",tokensIn:"INTEGER",tokensOut:"INTEGER",outcomeScore:"REAL",objective:"TEXT",learningVersionId:"TEXT",meta:"TEXT"},indexes:["CREATE INDEX IF NOT EXISTS idx_re_combo_ts ON routing_events(comboName, timestamp DESC)","CREATE INDEX IF NOT EXISTS idx_re_cluster_combo ON routing_events(cluster, comboName)","CREATE INDEX IF NOT EXISTS idx_re_worker ON routing_events(pickedWorker)","CREATE INDEX IF NOT EXISTS idx_re_request ON routing_events(comboName, requestId)"]},router_learning_versions:{columns:{id:"TEXT PRIMARY KEY",comboName:"TEXT NOT NULL",version:"INTEGER NOT NULL",createdAt:"TEXT NOT NULL",source:"TEXT",banditTable:"TEXT",learnedRules:"TEXT",fewShots:"TEXT",evalScore:"REAL",prevVersionId:"TEXT",promoted:"INTEGER DEFAULT 0",notes:"TEXT"},indexes:["CREATE INDEX IF NOT EXISTS idx_rlv_combo ON router_learning_versions(comboName)","CREATE UNIQUE INDEX IF NOT EXISTS idx_rlv_combo_ver ON router_learning_versions(comboName, version)"]}};function f(a,b){let c=Object.entries(b.columns).map(([a,b])=>`${a} ${b}`);return b.primaryKey&&c.push(b.primaryKey),`CREATE TABLE IF NOT EXISTS ${a} (${c.join(", ")})`}},66252:(a,b,c)=>{c.d(b,{createSqlJsAdapter:()=>m});var d=c(73024),e=c.n(d),f=c(76760),g=c.n(f),h=c(46293),i=c.n(h),j=c(34050);let k=null;async function l(){return k||(k=await i()())}async function m(a){let b=await l(),c=e().existsSync(a)?e().readFileSync(a):null,d=new b.Database(c);d.exec(j.oG);let f=!1,h=null;function i(){let b,c=d.export(),h=a+".tmp";e().writeFileSync(h,Buffer.from(c));let i=e().openSync(h,"r");try{e().fsyncSync(i)}finally{e().closeSync(i)}e().renameSync(h,a);try{b=e().openSync(g().dirname(a),"r"),e().fsyncSync(b)}catch{}finally{void 0!==b&&e().closeSync(b)}f=!1}function k(){f=!0,h&&clearTimeout(h),h=setTimeout(()=>{if(h=null,f)try{i()}catch(a){console.error("[sqljs] save failed:",a)}},100)}function m(a){if(!(!a||Array.isArray(a)&&0===a.length))return a}return process.on("beforeExit",()=>{if(f)try{i()}catch{}}),{driver:"sql.js",run:function(a,b=[]){let c=d.prepare(a);try{c.bind(m(b)),c.step();let a=d.getRowsModified(),e=d.exec("SELECT last_insert_rowid() as id")[0]?.values?.[0]?.[0]??null;return k(),{changes:a,lastInsertRowid:e}}finally{c.free()}},get:function(a,b=[]){let c=d.prepare(a);try{if(c.bind(m(b)),c.step())return c.getAsObject();return}finally{c.free()}},all:function(a,b=[]){let c=d.prepare(a);try{c.bind(m(b));let a=[];for(;c.step();)a.push(c.getAsObject());return a}finally{c.free()}},exec:function(a){d.exec(a),k()},transaction:function(a){let b=`sp_${Math.random().toString(36).slice(2)}`;d.exec(`SAVEPOINT ${b}`);try{let c=a();return d.exec(`RELEASE ${b}`),k(),c}catch(a){try{d.exec(`ROLLBACK TO ${b}`),d.exec(`RELEASE ${b}`)}catch{}throw a}},close:function(){h&&clearTimeout(h),f&&i(),d.close()},raw:d}}}};
|