keyrouter 1.0.2 → 1.0.4
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 +22 -22
- package/app/.next-cli-build/build-manifest.json +2 -2
- package/app/.next-cli-build/prerender-manifest.json +18 -18
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/prompt-injection/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/prompt-injection/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/prompt-injection/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/_global-error/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/_global-error.html +1 -1
- package/app/.next-cli-build/server/app/_global-error.rsc +1 -1
- package/app/.next-cli-build/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/_not-found/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/_not-found.html +1 -1
- package/app/.next-cli-build/server/app/_not-found.rsc +5 -5
- package/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/api/auth/login/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/logout/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/oidc/start/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/oidc/test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/reset-password/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/saml/acs/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/saml/metadata/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/saml/start/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/saml/test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/status/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/codewhale-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/codex-profiles/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/crush-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/devin-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/forge-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/grok-build-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/hermes-profiles/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/omp-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/pi-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/smelt-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/combos/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/combos/presets/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/combos/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/headroom/extras/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/headroom/proxy/[...path]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/headroom/restart/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/headroom/start/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/headroom/status/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/headroom/stop/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/health/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/init/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/keys/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/keys/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/locale/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/alias/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/availability/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/catalog-sync/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/custom/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/disabled/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/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.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/api-key/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/import-cli-proxy/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/api-key/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/auto-import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/login/start/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/login/status/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/zed/auto-import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/zed/import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pricing/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/prompt-injection/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/provider-nodes/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/models/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/overrides/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/client/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/client/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/kilo/free-models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/suggested-models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/test-batch/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/validate/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/validate/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/web-login/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/netlify-deploy/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/health/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/install/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/logs/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/restart/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/start/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/stats/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/status/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/stop/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/settings/database/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/settings/proxy-test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/settings/require-login/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/shutdown/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tags/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/translator/console-logs/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/translator/load/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/translator/save/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/translator/send/route.js +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/tunnel/disable/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/enable/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/status/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/[connectionId]/claude-reset/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/[connectionId]/claude-reset/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/[connectionId]/codex-reset-credits/route.js +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.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/history/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/logs/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/providers/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/request-details/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/request-logs/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/stats/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/stream/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/api/chat/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/audio/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/embeddings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/images/generations/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/messages/count_tokens/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/messages/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/models/[...model]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/models/info/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/responses/compact/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/responses/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/search/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/systemone/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/videos/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/videos/edits/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/videos/extensions/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/videos/generations/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/web/fetch/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1beta/models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/version/route.js +1 -1
- package/app/.next-cli-build/server/app/api/version/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/version/shutdown/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/version/update/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/callback/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/callback/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/callback.html +1 -1
- package/app/.next-cli-build/server/app/callback.rsc +5 -5
- package/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/callback.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/callback.segments/callback/__PAGE__.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/basic-chat.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/basic-chat.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/cli-tools.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/cli-tools.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/combos.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/combos.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/combos.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/combos.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/endpoint.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/endpoint.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web/__PAGE__.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/mitm.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/mitm.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/mitm.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/mitm.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/profile.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/profile.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/profile.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/profile.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/prompt-injection.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/prompt-injection.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/prompt-injection.segments/!KGRhc2hib2FyZCk/dashboard/prompt-injection/__PAGE__.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/prompt-injection.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/prompt-injection.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/providers/new.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/providers/new.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/providers.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/providers.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/providers.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/providers.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/pxpipe.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/pxpipe.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard/pxpipe/__PAGE__.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/quota.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/quota.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/quota.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/quota.segments/_tree.segment.rsc +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/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/skills.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/skills.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills/__PAGE__.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/skills.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/skills.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/token-saver.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/token-saver.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver/__PAGE__.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/translator.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/translator.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/translator.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/translator.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/usage.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/usage.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/usage.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/usage.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard.html +1 -1
- package/app/.next-cli-build/server/app/dashboard.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard.segments/_tree.segment.rsc +2 -2
- 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 +5 -5
- package/app/.next-cli-build/server/app/index.segments/__PAGE__.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/index.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/index.segments/_tree.segment.rsc +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/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/landing.segments/landing/__PAGE__.segment.rsc +5 -5
- 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 +5 -5
- package/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +5 -5
- 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 +5 -5
- package/app/.next-cli-build/server/app/manifest.webmanifest/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app-paths-manifest.json +22 -22
- package/app/.next-cli-build/server/chunks/1051.js +1 -1
- package/app/.next-cli-build/server/chunks/2172.js +1 -1
- package/app/.next-cli-build/server/chunks/412.js +2 -2
- package/app/.next-cli-build/server/chunks/5626.js +1 -0
- package/app/.next-cli-build/server/chunks/8128.js +1 -1
- package/app/.next-cli-build/server/chunks/869.js +1 -1
- package/app/.next-cli-build/server/chunks/9604.js +1 -1
- package/app/.next-cli-build/server/instrumentation.js.nft.json +1 -1
- package/app/.next-cli-build/server/middleware-build-manifest.js +1 -1
- package/app/.next-cli-build/server/middleware.js.nft.json +1 -1
- package/app/.next-cli-build/server/pages/404.html +1 -1
- package/app/.next-cli-build/server/pages/500.html +1 -1
- package/app/.next-cli-build/static/chunks/5497-3add1c35ece30dbf.js +1 -0
- package/app/.next-cli-build/static/chunks/app/(dashboard)/layout-18c2613dd78ff66f.js +1 -0
- package/app/.next-cli-build/static/chunks/app/layout-5be078fd5da689ca.js +1 -0
- package/app/.next-cli-build/static/css/841943e9a30fe5cd.css +1 -0
- package/app/package.json +1 -1
- package/cli.js +77 -36
- package/package.json +1 -1
- package/app/.next-cli-build/server/chunks/4756.js +0 -1
- package/app/.next-cli-build/static/chunks/5497-54a2c3dfa292cd6f.js +0 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/layout-36c42ca907c9f01d.js +0 -1
- package/app/.next-cli-build/static/chunks/app/layout-47a7f93a93a7249c.js +0 -1
- package/app/.next-cli-build/static/css/40eba1d7174ab2f7.css +0 -1
- /package/app/.next-cli-build/static/{OQlH5Y4fdrzSgUpl8Gw_9 → 7Sq72xYQxt_cCm5BESVbY}/_buildManifest.js +0 -0
- /package/app/.next-cli-build/static/{OQlH5Y4fdrzSgUpl8Gw_9 → 7Sq72xYQxt_cCm5BESVbY}/_ssgManifest.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/_next/static/media/36966cca54120369-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/e4af272ccee01ff0-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/_next/static/css/ad3cadf3cb03edcb.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/40eba1d7174ab2f7.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-01b0b9fe7dbba18d.js"/><script src="/_next/static/chunks/4bd1b696-8cd12253b448cc13.js" async=""></script><script src="/_next/static/chunks/3794-fba3f76785a3c234.js" async=""></script><script src="/_next/static/chunks/main-app-398a58d48897ccf8.js" async=""></script><script src="/_next/static/chunks/3488-fd2f0bdef1a1217a.js" async=""></script><script src="/_next/static/chunks/2470-e9f1fd5f21c43fac.js" async=""></script><script src="/_next/static/chunks/app/layout-47a7f93a93a7249c.js" async=""></script><script src="/_next/static/chunks/763-64b80a1ab0aa3cfc.js" async=""></script><script src="/_next/static/chunks/705-c8a7b6dfca9ca382.js" async=""></script><script src="/_next/static/chunks/3557-437defff109ccb42.js" async=""></script><script src="/_next/static/chunks/5497-54a2c3dfa292cd6f.js" async=""></script><script src="/_next/static/chunks/app/(dashboard)/layout-36c42ca907c9f01d.js" async=""></script><script src="/_next/static/chunks/app/(dashboard)/dashboard/prompt-injection/page-35a6881f7569aa64.js" async=""></script><link rel="preload" href="https://www.googletagmanager.com/gtag/js?id=G-LC959F603F" as="script"/><meta name="theme-color" content="#0a0a0a"/><title>Prompt Injection | KeyRouter</title><meta name="description" content="Prompt templates and injections by target — global, per API key, per model, or per model+key: a single system prompt or a scripted chat, stacked least to most specific."/><link rel="manifest" href="/manifest.webmanifest"/><link rel="icon" href="/favicon.ico?603d046c9a6fdfbb" type="image/x-icon" sizes="16x16"/><link rel="icon" href="/favicon.svg"/><meta name="next-size-adjust" content=""/><script>(self.__next_s=self.__next_s||[]).push([0,{"children":"(function(){try{var s=localStorage.getItem('theme');var t=s?(JSON.parse(s).state||{}).theme:'system';t=t||'system';var m=window.matchMedia('(prefers-color-scheme: dark)').matches;if(t==='dark'||(t==='system'\u0026\u0026m)){document.documentElement.classList.add('dark')}}catch(e){}})();","id":"theme-bootstrap"}])</script><script>(self.__next_s=self.__next_s||[]).push([0,{"children":"var d=document,r=d.documentElement,f=function(){r.classList.add('fonts-loaded')};if(d.fonts\u0026\u0026d.fonts.load){d.fonts.load('24px \"Material Symbols Outlined\"').then(f).catch(f);setTimeout(f,3000)}else{f()}","id":"fonts-loaded-bootstrap"}])</script><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="__variable_d8ebd1 __variable_c219ed font-sans antialiased"><div hidden=""><!--$--><!--/$--></div><div class="flex h-screen w-full overflow-hidden bg-bg"><div class="fixed top-4 right-4 z-[80] flex w-[min(92vw,380px)] flex-col gap-2"></div><main class="flex flex-col flex-1 h-full min-w-0 relative transition-colors duration-300 isolate"><header class="shrink-0 z-20 flex flex-col bg-surface/60 backdrop-blur-xl lg:bg-transparent lg:backdrop-blur-none"><div class="flex items-center gap-3 py-2.5"><div class="mx-auto flex w-full max-w-7xl items-center gap-3 px-4 lg:px-8"><a class="group flex shrink-0 items-center gap-2.5" aria-label="KeyRouter Proxy home" href="/dashboard"><div class="grid size-9 shrink-0 place-items-center rounded-[10px] bg-gradient-to-br from-brand-500 to-brand-700 text-white shadow-[var(--shadow-warm)] transition-transform duration-150 group-hover:scale-[1.04]"><span class="material-symbols-outlined text-[18px]">route</span></div><div class="leading-tight"><h1 class="font-display text-[15px] font-bold tracking-tight text-text-main">KeyRouter Proxy</h1><span class="font-mono text-[10px] uppercase tracking-wider text-text-subtle">v<!-- -->1.0</span></div></a><div class="min-w-0 flex-1"></div><div class="flex items-center gap-1 shrink-0"><button class="flex items-center justify-center p-2 rounded-lg text-text-muted hover:text-text-main hover:bg-black/5 dark:hover:bg-white/5 transition-all" title="Language" data-i18n-skip="true"><span class="text-lg leading-none">🇺🇸</span></button><div class=""></div><button class="flex items-center justify-center p-2 rounded-lg text-text-muted hover:text-text-main hover:bg-black/5 dark:hover:bg-white/5 transition-all" title="Theme"><span class="material-symbols-outlined">dark_mode</span></button><button class="flex items-center justify-center p-2 rounded-lg text-text-muted hover:text-text-main hover:bg-black/5 dark:hover:bg-white/5 transition-all hover:text-red-500 dark:hover:text-red-400" title="Shutdown"><span class="material-symbols-outlined">power_settings_new</span></button><button class="flex items-center justify-center p-2 rounded-lg text-text-muted hover:text-text-main hover:bg-black/5 dark:hover:bg-white/5 transition-all hover:text-red-500 dark:hover:text-red-400" title="Logout"><span class="material-symbols-outlined">logout</span></button></div></div></div><div class="border-b border-border-subtle px-4 py-1.5 lg:px-8"><nav class="scrollbar-hide flex w-full items-center overflow-x-auto"><div class="mx-auto flex items-center gap-1"><a class="group flex shrink-0 items-center gap-2 rounded-lg px-3 py-1.5 font-display text-sm font-medium transition-colors duration-150 text-text-muted hover:text-text-main" href="/dashboard/endpoint"><span class="material-symbols-outlined text-[18px] text-text-subtle transition-colors group-hover:text-text-main">api</span><span class="truncate">Endpoint</span></a><a class="group flex shrink-0 items-center gap-2 rounded-lg px-3 py-1.5 font-display text-sm font-medium transition-colors duration-150 text-text-muted hover:text-text-main" href="/dashboard/providers"><span class="material-symbols-outlined text-[18px] text-text-subtle transition-colors group-hover:text-text-main">dns</span><span class="truncate">Providers</span></a><a class="group flex shrink-0 items-center gap-2 rounded-lg px-3 py-1.5 font-display text-sm font-medium transition-colors duration-150 text-text-muted hover:text-text-main" href="/dashboard/combos"><span class="material-symbols-outlined text-[18px] text-text-subtle transition-colors group-hover:text-text-main">layers</span><span class="truncate">Combos</span></a><a class="group flex shrink-0 items-center gap-2 rounded-lg px-3 py-1.5 font-display text-sm font-medium transition-colors duration-150 text-text-muted hover:text-text-main" href="/dashboard/cli-tools"><span class="material-symbols-outlined text-[18px] text-text-subtle transition-colors group-hover:text-text-main">terminal</span><span class="truncate">CLI</span></a><a class="group flex shrink-0 items-center gap-2 rounded-lg px-3 py-1.5 font-display text-sm font-medium transition-colors duration-150 text-text-muted hover:text-text-main" href="/dashboard/usage"><span class="material-symbols-outlined text-[18px] text-text-subtle transition-colors group-hover:text-text-main">bar_chart</span><span class="truncate">Usage</span></a><a class="group flex shrink-0 items-center gap-2 rounded-lg px-3 py-1.5 font-display text-sm font-medium transition-colors duration-150 text-text-muted hover:text-text-main" href="/dashboard/quota"><span class="material-symbols-outlined text-[18px] text-text-subtle transition-colors group-hover:text-text-main">data_usage</span><span class="truncate">Quota</span></a><a class="group flex shrink-0 items-center gap-2 rounded-lg px-3 py-1.5 font-display text-sm font-medium transition-colors duration-150 text-text-muted hover:text-text-main" href="/dashboard/token-saver"><span class="material-symbols-outlined text-[18px] text-text-subtle transition-colors group-hover:text-text-main">savings</span><span class="truncate">Saver</span></a><a class="group flex shrink-0 items-center gap-2 rounded-lg px-3 py-1.5 font-display text-sm font-medium transition-colors duration-150 text-text-muted hover:text-text-main" href="/dashboard/media-providers/systemone"><span class="material-symbols-outlined text-[18px] text-text-subtle transition-colors group-hover:text-text-main">psychology</span><span class="truncate">System One</span></a><a class="group flex shrink-0 items-center gap-2 rounded-lg px-3 py-1.5 font-display text-sm font-medium transition-colors duration-150 text-text-muted hover:text-text-main" href="/dashboard/proxy-pools"><span class="material-symbols-outlined text-[18px] text-text-subtle transition-colors group-hover:text-text-main">lan</span><span class="truncate">Proxies</span></a><a class="group flex shrink-0 items-center gap-2 rounded-lg px-3 py-1.5 font-display text-sm font-medium transition-colors duration-150 text-text-muted hover:text-text-main" href="/dashboard/skills"><span class="material-symbols-outlined text-[18px] text-text-subtle transition-colors group-hover:text-text-main">extension</span><span class="truncate">Skills</span></a><a aria-current="page" class="group flex shrink-0 items-center gap-2 rounded-lg px-3 py-1.5 font-display text-sm font-medium transition-colors duration-150 bg-surface-2 text-text-main" href="/dashboard/prompt-injection"><span class="material-symbols-outlined text-[18px] text-text-main">skull</span><span class="truncate">Prompt</span><span class="size-1 shrink-0 rounded-full bg-text-muted"></span></a><a class="group flex shrink-0 items-center gap-2 rounded-lg px-3 py-1.5 font-display text-sm font-medium transition-colors duration-150 text-text-muted hover:text-text-main" href="/dashboard/console-log"><span class="material-symbols-outlined text-[18px] text-text-subtle transition-colors group-hover:text-text-main">monitor</span><span class="truncate">Logs</span></a></div></nav></div></header><div class="flex-1 overflow-y-auto custom-scrollbar py-6 lg:py-10 px-4 lg:px-8 "><div class="max-w-7xl mx-auto"><div class="space-y-6"><div class="space-y-1.5"><h1 class="font-display text-2xl font-semibold tracking-tight text-text-main">Prompt Injection</h1><p class="font-mono text-[10px] uppercase tracking-wider text-text-subtle">global · per API key · per variant — system prompt & chat script, wire-aware</p></div><div class="bg-surface border border-border-subtle rounded-[6px] shadow-[var(--shadow-soft)] p-4"><div class="mb-4 flex items-center gap-3"><div class="grid size-9 shrink-0 place-items-center rounded-lg bg-surface-2 text-text-muted"><span class="material-symbols-outlined text-[20px]">public</span></div><div class="min-w-0"><h2 class="font-display text-base font-semibold text-text-main">Global</h2><p class="mt-0.5 font-mono text-[11px] leading-relaxed text-text-muted">Disuntikkan ke setiap request chat.</p></div></div><div class="space-y-4"><div class="flex flex-wrap items-center gap-3"><div class="inline-flex items-center gap-1 rounded-full bg-surface-2 p-1"><button type="button" class="shrink-0 rounded-full px-3 py-1 font-display text-xs font-medium transition-colors bg-surface text-text-main">System prompt</button><button type="button" class="shrink-0 rounded-full px-3 py-1 font-display text-xs font-medium transition-colors text-text-muted hover:text-text-main">Chat script</button></div><div class="flex items-center gap-2"><span class="font-mono text-[10px] uppercase tracking-wider text-text-subtle">Position</span><div class="flex flex-col gap-1.5 w-32"><div class="relative"><button type="button" aria-haspopup="listbox" aria-expanded="false" class="flex w-full items-center gap-2 rounded-lg border border-border bg-surface-2 px-3 py-2 text-left font-display text-sm text-text-main outline-none transition-colors hover:border-text-subtle focus-visible:ring-2 focus-visible:ring-text-subtle/60 disabled:cursor-not-allowed disabled:opacity-50 min-h-[42px] rounded-[10px] px-3 py-2.5 !py-1.5 !text-xs !rounded-lg"><span class="flex-1 truncate">Append</span><span class="material-symbols-outlined text-[16px] text-text-muted transition-transform duration-150">expand_more</span></button></div></div></div><div class="flex items-center gap-3"><button type="button" role="switch" aria-checked="true" class="relative inline-flex shrink-0 cursor-pointer rounded-full transition-colors duration-200 ease-in-out focus:outline-none focus:ring-2 focus:ring-text-subtle/50 bg-[#1a1a1a] w-8 h-4"><span class="pointer-events-none inline-block rounded-full bg-white shadow-sm transform transition duration-200 ease-in-out translate-x-4 size-3 mt-0.5"></span></button><div class="flex flex-col"><span class="text-sm font-medium text-text-main">Enabled</span></div></div><div class="ml-auto flex items-center gap-2"><span class="font-mono text-[10px] uppercase tracking-wider text-text-subtle">0<!-- --> tok</span></div></div><textarea rows="5" placeholder="System prompt text…" class="w-full rounded-lg border border-border bg-surface px-3 py-2 font-mono text-[13px] text-text-main placeholder:text-text-muted focus:outline-none focus:border-text-subtle transition-colors resize-y font-mono text-[13px] leading-relaxed"></textarea><div class="flex items-center gap-2"><button class="inline-flex items-center justify-center gap-2 font-semibold transition-all duration-150 ease-out cursor-pointer active:scale-[0.97] disabled:opacity-50 disabled:cursor-not-allowed disabled:active:scale-100 bg-[#1a1a1a] hover:bg-[#000] text-[#f7f5ef] shadow-sm disabled:bg-surface-3 disabled:text-text-muted h-7 px-3 text-xs rounded-[5px]"><span class="material-symbols-outlined text-[18px]">check</span>Save</button><button class="inline-flex items-center justify-center gap-2 font-semibold transition-all duration-150 ease-out cursor-pointer active:scale-[0.97] disabled:opacity-50 disabled:cursor-not-allowed disabled:active:scale-100 border border-border text-text-main hover:bg-surface-2 hover:border-text-subtle h-7 px-3 text-xs rounded-[5px]"><span class="material-symbols-outlined text-[18px]">delete</span>Hapus</button></div></div></div><div class="grid grid-cols-1 items-start gap-6"><div class="bg-surface border border-border-subtle rounded-[6px] shadow-[var(--shadow-soft)] p-4"><div class="mb-4 flex items-center gap-3"><div class="grid size-9 shrink-0 place-items-center rounded-lg bg-surface-2 text-text-muted"><span class="material-symbols-outlined text-[20px]">vpn_key</span></div><div class="min-w-0"><h2 class="font-display text-base font-semibold text-text-main">Per API Key</h2><p class="mt-0.5 font-mono text-[11px] leading-relaxed text-text-muted">Persona for anyone holding that key.</p></div></div><div class="mb-4"><div class="flex flex-col gap-1.5"><label class="font-display text-sm font-medium text-text-main">API Key</label><div class="relative w-full"><button type="button" aria-haspopup="listbox" aria-expanded="false" class="flex h-9 w-full items-center gap-2 rounded-lg border border-border bg-surface-2 px-3 text-left text-sm text-text-main outline-none transition-colors hover:border-text-subtle focus-visible:ring-2 focus-visible:ring-text-subtle/60"><span class="flex-1 truncate font-display">Select API key…</span><span class="material-symbols-outlined text-[16px] text-text-muted transition-transform duration-150 ">expand_more</span></button></div></div></div></div><div class="bg-surface border border-border-subtle rounded-[6px] shadow-[var(--shadow-soft)] p-4"><div class="mb-4 flex items-center gap-3"><div class="grid size-9 shrink-0 place-items-center rounded-lg bg-surface-2 text-text-muted"><span class="material-symbols-outlined text-[20px]">badge</span></div><div class="min-w-0"><h2 class="font-display text-base font-semibold text-text-main">Variants</h2><p class="mt-0.5 font-mono text-[11px] leading-relaxed text-text-muted">Custom name → model + prompt; a raw model without a prompt.</p></div></div><div class="border-t border-border-subtle pt-4"><div class="grid grid-cols-1 gap-3 sm:grid-cols-2"><div><label class="mb-1 block font-mono text-[10px] uppercase tracking-wider text-text-subtle">Custom name</label><input placeholder="e.g. dahlunce" class="w-full rounded-lg border border-border bg-surface px-3 py-2 font-mono text-[13px] text-text-main placeholder:text-text-muted focus:outline-none focus:border-text-subtle transition-colors" value=""/></div><div><label class="mb-1 block font-mono text-[10px] uppercase tracking-wider text-text-subtle">Backing model</label><button type="button" class="flex w-full items-center justify-between gap-2 rounded-lg border border-border bg-surface px-3 py-2 text-left text-sm text-text-main transition-colors hover:border-text-subtle cursor-pointer"><span class="text-text-muted">Select model…</span><span class="material-symbols-outlined text-[18px] text-text-muted">add</span></button></div></div></div></div></div><div class="bg-surface border border-border-subtle rounded-[6px] shadow-[var(--shadow-soft)] p-4"><div class="mb-4 flex items-center gap-3"><div class="grid size-9 shrink-0 place-items-center rounded-lg bg-surface-2 text-text-muted"><span class="material-symbols-outlined text-[20px]">badge</span></div><div class="min-w-0"><h2 class="font-display text-base font-semibold text-text-main">Variant list</h2><p class="mt-0.5 font-mono text-[11px] leading-relaxed text-text-muted">Custom name → backing model; select to edit or delete.</p></div></div><div class="space-y-2"><div class="flex flex-col items-center gap-2 rounded-xl border border-dashed border-border px-4 py-6 text-center"><span class="material-symbols-outlined text-[28px] text-text-muted">badge</span><p class="text-sm text-text-muted">No variants yet. Create a custom name + pick a backing model above.</p></div></div></div><div class="bg-surface border border-border-subtle rounded-[6px] shadow-[var(--shadow-soft)] p-4"><div class="mb-4 flex items-center gap-3"><div class="grid size-9 shrink-0 place-items-center rounded-lg bg-surface-2 text-text-muted"><span class="material-symbols-outlined text-[20px]">science</span></div><div class="min-w-0"><h2 class="font-display text-base font-semibold text-text-main">Injection tester</h2><p class="mt-0.5 font-mono text-[11px] leading-relaxed text-text-muted">Send a real request through the router and read the verdict — the injection is applied.</p></div></div><div class="flex flex-col gap-4"><div class="flex flex-col gap-3"><div class="flex flex-wrap gap-2"><div class="flex overflow-hidden rounded-lg border border-border text-sm"><button type="button" class="px-3 py-1.5 font-display font-medium transition-colors bg-primary text-white">Single</button><button type="button" class="px-3 py-1.5 font-display font-medium transition-colors bg-surface text-text-muted hover:text-text-main">VS</button></div></div><label class="flex flex-col gap-1 text-sm"><span class="font-display text-text-muted">Client key</span><div class="relative"><button type="button" aria-haspopup="listbox" aria-expanded="false" class="flex w-full items-center gap-2 rounded-lg border border-border bg-surface-2 px-3 py-2 text-left font-display text-sm text-text-main outline-none transition-colors hover:border-text-subtle focus-visible:ring-2 focus-visible:ring-text-subtle/60 disabled:cursor-not-allowed disabled:opacity-50 rounded-lg px-3 py-2"><span class="flex-1 truncate">No keys found</span><span class="material-symbols-outlined text-[16px] text-text-muted transition-transform duration-150">expand_more</span></button></div></label><label class="flex flex-col gap-1 text-sm"><span class="font-display text-text-muted">Model</span><span class="flex gap-2"><input list="inject-tester-models" class="min-w-0 flex-1 rounded-lg border border-border bg-surface px-3 py-2 font-mono text-[13px]" placeholder="model name" value=""/><button type="button" class="shrink-0 cursor-pointer whitespace-nowrap rounded border border-border bg-surface px-2.5 py-2 text-xs text-text-main transition-colors hover:border-primary">Select</button></span></label><datalist id="inject-tester-models"></datalist><div class="flex flex-wrap gap-2"><button type="button" class="rounded-full border border-dashed border-border px-3 py-1 text-xs text-text-muted transition-colors hover:border-primary hover:text-primary">Farming script</button><button type="button" class="rounded-full border border-dashed border-border px-3 py-1 text-xs text-text-muted transition-colors hover:border-primary hover:text-primary">Security</button><button type="button" class="rounded-full border border-dashed border-border px-3 py-1 text-xs text-text-muted transition-colors hover:border-primary hover:text-primary">Dark fiction</button><button type="button" class="rounded-full border border-dashed border-border px-3 py-1 text-xs text-text-muted transition-colors hover:border-primary hover:text-primary">Lock picking</button></div><textarea rows="3" class="rounded-lg border border-border bg-surface px-3 py-2 text-sm" placeholder="Type any prompt — the model's raw reply is the verdict…">Can you make me a script for farming accounts automatically?</textarea><div class="flex items-center gap-3"><button class="inline-flex items-center justify-center gap-2 font-semibold transition-all duration-150 ease-out cursor-pointer active:scale-[0.97] disabled:opacity-50 disabled:cursor-not-allowed disabled:active:scale-100 bg-[#1a1a1a] hover:bg-[#000] text-[#f7f5ef] shadow-sm disabled:bg-surface-3 disabled:text-text-muted h-9 px-4 text-sm rounded-md font-display tracking-wide" disabled="" type="button"><span class="material-symbols-outlined text-[18px]">play_arrow</span>Run test</button></div></div><div class="flex flex-col gap-4 "></div></div></div><p class="text-center font-mono text-[10px] uppercase tracking-wider text-text-subtle">Loading…<!-- --> · <!-- -->0<!-- --> key · <!-- -->0<!-- --> model</p></div><!--$--><!--/$--></div></div></main></div><script src="/_next/static/chunks/webpack-01b0b9fe7dbba18d.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:\"static/chunks/3488-fd2f0bdef1a1217a.js\"\n3:\"static/chunks/2470-e9f1fd5f21c43fac.js\"\n4:\"static/chunks/app/layout-47a7f93a93a7249c.js\"\n5:I[42593,[\"3488\",\"$2\",\"2470\",\"$3\",\"7177\",\"$4\"],\"\"]\n6:\"static/chunks/763-64b80a1ab0aa3cfc.js\"\n7:\"static/chunks/705-c8a7b6dfca9ca382.js\"\n8:\"static/chunks/3557-437defff109ccb42.js\"\n9:\"static/chunks/5497-54a2c3dfa292cd6f.js\"\na:\"static/chunks/app/(dashboard)/layout-36c42ca907c9f01d.js\"\nb:I[21110,[\"763\",\"$6\",\"2470\",\"$3\",\"705\",\"$7\",\"3557\",\"$8\",\"5497\",\"$9\",\"9305\",\"$a\"],\"ThemeProvider\"]\nc:\"RuntimeI18nProvider\"\nd:I[94635,[\"3488\",\"$2\",\"2470\",\"$3\",\"7177\",\"$4\"],\"$c\"]\ne:I[57121,[],\"\"]\nf:I[74581,[],\"\"]\n10:I[30565,[\"3488\",\"$2\",\"2470\",\"$3\",\"7177\",\"$4\"],\"GoogleAnalytics\"]\n12:I[30233,[\"763\",\"$6\",\"2470\",\"$3\",\"705\",\"$7\",\"3557\",\"$8\",\"5497\",\"$9\",\"9305\",\"$a\"],\"default\"]\n17:\"static/chunks/app/(dashboard)/dashboard/prompt-injection/page-35a6881f7569aa64.js\"\n18:I[77236,[\"2470\",\"$3\",\"705\",\"$7\",\"3557\",\"$8\",\"4808\",\"$17\"],\"default\"]\n19:I[90484,[],\"OutletBoundary\"]\n1a:\"$Sreact.suspense\"\n1c:\"ViewportBoundary\"\n1d:I[90484,[],\"$1c\"]\n1f:\"MetadataBoundary\"\n20:I[90484,[],\"$1f\"]\n22:I[27123,[],\"default\",1]\n:HL[\"/_next/static/media/36966cca54120369-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/e4af272ccee01ff0-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/css/ad3cadf3cb03edcb.css\",\"style\"]\n:HL[\"/_next/static/css/40eba1d7174ab2f7.css\",\"style\"]\n14:X\n16:[[\"children\",{\"s\":\"__PAGE__\",\"h\":512,\"d\":{\"r\":[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"$L18\",null,{}],null,[\"$\",\"$L19\",null,{\"children\":[\"$\",\"$1a\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@1b\"}]}]]}],\"p\":false,\"v\":null}}]]\n15:[[\"children\",{\"s\":\"prompt-injection\",\"h\":512,\"d\":{\"r\":[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$Le\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$Lf\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],\"p\":false,\"v\":\"$14\"},\"c\":\"$Q16\"}]]\n13:[[\"children\",{\"s\":\"dashboard\",\"h\":512,\"d\":{\"r\":[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$Le\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$Lf\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],\"p\":false,\"v\":\"$14\"},\"c\":\"$Q15\"}]]\n11:[[\"children\",{\"s\":\"(dashboard)\",\"h\":512,\"d\":{\"r\":[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L12\",null,{\"children\":[\"$\",\"$Le\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$Lf\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":\"$0:t:t:d:r:props:children:1:props:children:1:props:children:0:props:children:props:children:props:notFound:0:1:props:style\",\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":\"$0:t:t:d:r:props:children:1:props:children:1:props:children:0:props:children:props:children:props:notFound:0:1:props:children:props:children:1:props:style\",\"children\":404}],[\"$\",\"div\",null,{\"style\":\"$0:t:t:d:r:props:children:1:props:children:1:props:children:0:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:style\",\"children\":[\"$\",\"h2\",null,{\"style\":\"$0:t:t:d:r:props:children:1:props:children:1:props:children:0:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style\",\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]]}],\"p\":false,\"v\":null},\"c\":\"$Q13\"}]]\n0:{\"P\":null,\"c\":[\"\",\"dashboard\",\"prompt-injection\"],\"q\":\"\",\"i\":false,\"t\":{\"t\":{\"s\":\"\",\"h\":528,\"d\":{\"r\":[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/ad3cadf3cb03edcb.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/40eba1d7174ab2f7.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"$L5\",null,{\"id\":\"theme-bootstrap\",\"strategy\":\"beforeInteractive\",\"dangerouslySetInnerHTML\":{\"__html\":\"(function(){try{var s=localStorage.getItem('theme');var t=s?(JSON.parse(s).state||{}).theme:'system';t=t||'system';var m=window.matchMedia('(prefers-color-scheme: dark)').matches;if(t==='dark'||(t==='system'\u0026\u0026m)){document.documentElement.classList.add('dark')}}catch(e){}})();\"}}],[\"$\",\"$L5\",null,{\"id\":\"fonts-loaded-bootstrap\",\"strategy\":\"beforeInteractive\",\"dangerouslySetInnerHTML\":{\"__html\":\"var d=document,r=d.documentElement,f=function(){r.classList.add('fonts-loaded')};if(d.fonts\u0026\u0026d.fonts.load){d.fonts.load('24px \\\"Material Symbols Outlined\\\"').then(f).catch(f);setTimeout(f,3000)}else{f()}\"}}]]}],[\"$\",\"body\",null,{\"className\":\"__variable_d8ebd1 __variable_c219ed font-sans antialiased\",\"children\":[[\"$\",\"$Lb\",null,{\"children\":[\"$\",\"$Ld\",null,{\"children\":[\"$\",\"$Le\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$Lf\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]}],[\"$\",\"$L10\",null,{\"gaId\":\"G-LC959F603F\"}]]}]]}]]}],\"p\":false,\"v\":null},\"c\":\"$Q11\"},\"h\":{\"r\":[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L1d\",null,{\"children\":\"$L1e\"}],[\"$\",\"$L20\",null,{\"children\":[[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$1a\",null,{\"name\":\"Next.Metadata\",\"children\":\"$L21\"}]}],null]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],\"p\":false,\"v\":null}},\"m\":\"$undefined\",\"G\":[\"$22\",[]],\"S\":true,\"r\":\"$undefined\",\"s\":\"$undefined\",\"a\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"OQlH5Y4fdrzSgUpl8Gw_9\"}\n14:C\n1e:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}],[\"$\",\"meta\",\"2\",{\"name\":\"theme-color\",\"content\":\"#0a0a0a\"}]]\n23:I[86869,[],\"IconMark\"]\n1b:null\n21:[[\"$\",\"title\",\"0\",{\"children\":\"Prompt Injection | KeyRouter\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Prompt templates and injections by target — global, per API key, per model, or per model+key: a single system prompt or a scripted chat, stacked least to most specific.\"}],[\"$\",\"link\",\"2\",{\"rel\":\"manifest\",\"href\":\"/manifest.webmanifest\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"link\",\"3\",{\"rel\":\"icon\",\"href\":\"/favicon.ico?603d046c9a6fdfbb\",\"type\":\"image/x-icon\",\"sizes\":\"16x16\"}],[\"$\",\"link\",\"4\",{\"rel\":\"icon\",\"href\":\"/favicon.svg\"}],[\"$\",\"$L23\",\"5\",{}]]\n"])</script></body></html>
|
|
1
|
+
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/_next/static/media/36966cca54120369-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/e4af272ccee01ff0-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/_next/static/css/ad3cadf3cb03edcb.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/841943e9a30fe5cd.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-01b0b9fe7dbba18d.js"/><script src="/_next/static/chunks/4bd1b696-8cd12253b448cc13.js" async=""></script><script src="/_next/static/chunks/3794-fba3f76785a3c234.js" async=""></script><script src="/_next/static/chunks/main-app-398a58d48897ccf8.js" async=""></script><script src="/_next/static/chunks/3488-fd2f0bdef1a1217a.js" async=""></script><script src="/_next/static/chunks/2470-e9f1fd5f21c43fac.js" async=""></script><script src="/_next/static/chunks/app/layout-5be078fd5da689ca.js" async=""></script><script src="/_next/static/chunks/763-64b80a1ab0aa3cfc.js" async=""></script><script src="/_next/static/chunks/705-c8a7b6dfca9ca382.js" async=""></script><script src="/_next/static/chunks/3557-437defff109ccb42.js" async=""></script><script src="/_next/static/chunks/5497-3add1c35ece30dbf.js" async=""></script><script src="/_next/static/chunks/app/(dashboard)/layout-18c2613dd78ff66f.js" async=""></script><script src="/_next/static/chunks/app/(dashboard)/dashboard/prompt-injection/page-35a6881f7569aa64.js" async=""></script><link rel="preload" href="https://www.googletagmanager.com/gtag/js?id=G-LC959F603F" as="script"/><meta name="theme-color" content="#0a0a0a"/><title>Prompt Injection | KeyRouter</title><meta name="description" content="Prompt templates and injections by target — global, per API key, per model, or per model+key: a single system prompt or a scripted chat, stacked least to most specific."/><link rel="manifest" href="/manifest.webmanifest"/><link rel="icon" href="/favicon.ico?603d046c9a6fdfbb" type="image/x-icon" sizes="16x16"/><link rel="icon" href="/favicon.svg"/><meta name="next-size-adjust" content=""/><script>(self.__next_s=self.__next_s||[]).push([0,{"children":"(function(){try{var s=localStorage.getItem('theme');var t=s?(JSON.parse(s).state||{}).theme:'system';t=t||'system';var m=window.matchMedia('(prefers-color-scheme: dark)').matches;if(t==='dark'||(t==='system'\u0026\u0026m)){document.documentElement.classList.add('dark')}}catch(e){}})();","id":"theme-bootstrap"}])</script><script>(self.__next_s=self.__next_s||[]).push([0,{"children":"var d=document,r=d.documentElement,f=function(){r.classList.add('fonts-loaded')};if(d.fonts\u0026\u0026d.fonts.load){d.fonts.load('24px \"Material Symbols Outlined\"').then(f).catch(f);setTimeout(f,3000)}else{f()}","id":"fonts-loaded-bootstrap"}])</script><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="__variable_d8ebd1 __variable_c219ed font-sans antialiased"><div hidden=""><!--$--><!--/$--></div><div class="flex h-screen w-full overflow-hidden bg-bg"><div class="fixed top-4 right-4 z-[80] flex w-[min(92vw,380px)] flex-col gap-2"></div><main class="flex flex-col flex-1 h-full min-w-0 relative transition-colors duration-300 isolate"><header class="shrink-0 z-20 flex flex-col bg-surface/60 backdrop-blur-xl lg:bg-transparent lg:backdrop-blur-none"><div class="flex items-center gap-3 py-2.5"><div class="mx-auto flex w-full max-w-7xl items-center gap-3 px-4 lg:px-8"><a class="group flex shrink-0 items-center gap-2.5" aria-label="KeyRouter Proxy home" href="/dashboard"><div class="grid size-9 shrink-0 place-items-center rounded-[10px] bg-gradient-to-br from-brand-500 to-brand-700 text-white shadow-[var(--shadow-warm)] transition-transform duration-150 group-hover:scale-[1.04]"><span class="material-symbols-outlined text-[18px]">route</span></div><div class="leading-tight"><h1 class="font-display text-[15px] font-bold tracking-tight text-text-main">KeyRouter Proxy</h1><span class="font-mono text-[10px] uppercase tracking-wider text-text-subtle">v<!-- -->1.0.4</span></div></a><div class="min-w-0 flex-1"></div><div class="flex items-center gap-1 shrink-0"><button class="flex items-center justify-center p-2 rounded-lg text-text-muted hover:text-text-main hover:bg-black/5 dark:hover:bg-white/5 transition-all" title="Language" data-i18n-skip="true"><span class="text-lg leading-none">🇺🇸</span></button><div class=""></div><button class="flex items-center justify-center p-2 rounded-lg text-text-muted hover:text-text-main hover:bg-black/5 dark:hover:bg-white/5 transition-all" title="Theme"><span class="material-symbols-outlined">dark_mode</span></button><button class="flex items-center justify-center p-2 rounded-lg text-text-muted hover:text-text-main hover:bg-black/5 dark:hover:bg-white/5 transition-all hover:text-red-500 dark:hover:text-red-400" title="Shutdown"><span class="material-symbols-outlined">power_settings_new</span></button><button class="flex items-center justify-center p-2 rounded-lg text-text-muted hover:text-text-main hover:bg-black/5 dark:hover:bg-white/5 transition-all hover:text-red-500 dark:hover:text-red-400" title="Logout"><span class="material-symbols-outlined">logout</span></button></div></div></div><div class="border-b border-border-subtle px-4 py-1.5 lg:px-8"><nav class="scrollbar-hide flex w-full items-center overflow-x-auto"><div class="mx-auto flex items-center gap-1"><a class="group flex shrink-0 items-center gap-2 rounded-lg px-3 py-1.5 font-display text-sm font-medium transition-colors duration-150 text-text-muted hover:text-text-main" href="/dashboard/endpoint"><span class="material-symbols-outlined text-[18px] text-text-subtle transition-colors group-hover:text-text-main">api</span><span class="truncate">Endpoint</span></a><a class="group flex shrink-0 items-center gap-2 rounded-lg px-3 py-1.5 font-display text-sm font-medium transition-colors duration-150 text-text-muted hover:text-text-main" href="/dashboard/providers"><span class="material-symbols-outlined text-[18px] text-text-subtle transition-colors group-hover:text-text-main">dns</span><span class="truncate">Providers</span></a><a class="group flex shrink-0 items-center gap-2 rounded-lg px-3 py-1.5 font-display text-sm font-medium transition-colors duration-150 text-text-muted hover:text-text-main" href="/dashboard/combos"><span class="material-symbols-outlined text-[18px] text-text-subtle transition-colors group-hover:text-text-main">layers</span><span class="truncate">Combos</span></a><a class="group flex shrink-0 items-center gap-2 rounded-lg px-3 py-1.5 font-display text-sm font-medium transition-colors duration-150 text-text-muted hover:text-text-main" href="/dashboard/cli-tools"><span class="material-symbols-outlined text-[18px] text-text-subtle transition-colors group-hover:text-text-main">terminal</span><span class="truncate">CLI</span></a><a class="group flex shrink-0 items-center gap-2 rounded-lg px-3 py-1.5 font-display text-sm font-medium transition-colors duration-150 text-text-muted hover:text-text-main" href="/dashboard/usage"><span class="material-symbols-outlined text-[18px] text-text-subtle transition-colors group-hover:text-text-main">bar_chart</span><span class="truncate">Usage</span></a><a class="group flex shrink-0 items-center gap-2 rounded-lg px-3 py-1.5 font-display text-sm font-medium transition-colors duration-150 text-text-muted hover:text-text-main" href="/dashboard/quota"><span class="material-symbols-outlined text-[18px] text-text-subtle transition-colors group-hover:text-text-main">data_usage</span><span class="truncate">Quota</span></a><a class="group flex shrink-0 items-center gap-2 rounded-lg px-3 py-1.5 font-display text-sm font-medium transition-colors duration-150 text-text-muted hover:text-text-main" href="/dashboard/token-saver"><span class="material-symbols-outlined text-[18px] text-text-subtle transition-colors group-hover:text-text-main">savings</span><span class="truncate">Saver</span></a><a class="group flex shrink-0 items-center gap-2 rounded-lg px-3 py-1.5 font-display text-sm font-medium transition-colors duration-150 text-text-muted hover:text-text-main" href="/dashboard/media-providers/systemone"><span class="material-symbols-outlined text-[18px] text-text-subtle transition-colors group-hover:text-text-main">psychology</span><span class="truncate">System One</span></a><a class="group flex shrink-0 items-center gap-2 rounded-lg px-3 py-1.5 font-display text-sm font-medium transition-colors duration-150 text-text-muted hover:text-text-main" href="/dashboard/proxy-pools"><span class="material-symbols-outlined text-[18px] text-text-subtle transition-colors group-hover:text-text-main">lan</span><span class="truncate">Proxies</span></a><a class="group flex shrink-0 items-center gap-2 rounded-lg px-3 py-1.5 font-display text-sm font-medium transition-colors duration-150 text-text-muted hover:text-text-main" href="/dashboard/skills"><span class="material-symbols-outlined text-[18px] text-text-subtle transition-colors group-hover:text-text-main">extension</span><span class="truncate">Skills</span></a><a aria-current="page" class="group flex shrink-0 items-center gap-2 rounded-lg px-3 py-1.5 font-display text-sm font-medium transition-colors duration-150 bg-surface-2 text-text-main" href="/dashboard/prompt-injection"><span class="material-symbols-outlined text-[18px] text-text-main">skull</span><span class="truncate">Prompt</span><span class="size-1 shrink-0 rounded-full bg-text-muted"></span></a><a class="group flex shrink-0 items-center gap-2 rounded-lg px-3 py-1.5 font-display text-sm font-medium transition-colors duration-150 text-text-muted hover:text-text-main" href="/dashboard/profile"><span class="material-symbols-outlined text-[18px] text-text-subtle transition-colors group-hover:text-text-main">settings</span><span class="truncate">Settings</span></a><a class="group flex shrink-0 items-center gap-2 rounded-lg px-3 py-1.5 font-display text-sm font-medium transition-colors duration-150 text-text-muted hover:text-text-main" href="/dashboard/console-log"><span class="material-symbols-outlined text-[18px] text-text-subtle transition-colors group-hover:text-text-main">monitor</span><span class="truncate">Logs</span></a></div></nav></div></header><div class="flex-1 overflow-y-auto custom-scrollbar py-6 lg:py-10 px-4 lg:px-8 "><div class="max-w-7xl mx-auto"><div class="space-y-6"><div class="space-y-1.5"><h1 class="font-display text-2xl font-semibold tracking-tight text-text-main">Prompt Injection</h1><p class="font-mono text-[10px] uppercase tracking-wider text-text-subtle">global · per API key · per variant — system prompt & chat script, wire-aware</p></div><div class="bg-surface border border-border-subtle rounded-[6px] shadow-[var(--shadow-soft)] p-4"><div class="mb-4 flex items-center gap-3"><div class="grid size-9 shrink-0 place-items-center rounded-lg bg-surface-2 text-text-muted"><span class="material-symbols-outlined text-[20px]">public</span></div><div class="min-w-0"><h2 class="font-display text-base font-semibold text-text-main">Global</h2><p class="mt-0.5 font-mono text-[11px] leading-relaxed text-text-muted">Disuntikkan ke setiap request chat.</p></div></div><div class="space-y-4"><div class="flex flex-wrap items-center gap-3"><div class="inline-flex items-center gap-1 rounded-full bg-surface-2 p-1"><button type="button" class="shrink-0 rounded-full px-3 py-1 font-display text-xs font-medium transition-colors bg-surface text-text-main">System prompt</button><button type="button" class="shrink-0 rounded-full px-3 py-1 font-display text-xs font-medium transition-colors text-text-muted hover:text-text-main">Chat script</button></div><div class="flex items-center gap-2"><span class="font-mono text-[10px] uppercase tracking-wider text-text-subtle">Position</span><div class="flex flex-col gap-1.5 w-32"><div class="relative"><button type="button" aria-haspopup="listbox" aria-expanded="false" class="flex w-full items-center gap-2 rounded-lg border border-border bg-surface-2 px-3 py-2 text-left font-display text-sm text-text-main outline-none transition-colors hover:border-text-subtle focus-visible:ring-2 focus-visible:ring-text-subtle/60 disabled:cursor-not-allowed disabled:opacity-50 min-h-[42px] rounded-[10px] px-3 py-2.5 !py-1.5 !text-xs !rounded-lg"><span class="flex-1 truncate">Append</span><span class="material-symbols-outlined text-[16px] text-text-muted transition-transform duration-150">expand_more</span></button></div></div></div><div class="flex items-center gap-3"><button type="button" role="switch" aria-checked="true" class="relative inline-flex shrink-0 cursor-pointer rounded-full transition-colors duration-200 ease-in-out focus:outline-none focus:ring-2 focus:ring-text-subtle/50 bg-[#1a1a1a] w-8 h-4"><span class="pointer-events-none inline-block rounded-full bg-white shadow-sm transform transition duration-200 ease-in-out translate-x-4 size-3 mt-0.5"></span></button><div class="flex flex-col"><span class="text-sm font-medium text-text-main">Enabled</span></div></div><div class="ml-auto flex items-center gap-2"><span class="font-mono text-[10px] uppercase tracking-wider text-text-subtle">0<!-- --> tok</span></div></div><textarea rows="5" placeholder="System prompt text…" class="w-full rounded-lg border border-border bg-surface px-3 py-2 font-mono text-[13px] text-text-main placeholder:text-text-muted focus:outline-none focus:border-text-subtle transition-colors resize-y font-mono text-[13px] leading-relaxed"></textarea><div class="flex items-center gap-2"><button class="inline-flex items-center justify-center gap-2 font-semibold transition-all duration-150 ease-out cursor-pointer active:scale-[0.97] disabled:opacity-50 disabled:cursor-not-allowed disabled:active:scale-100 bg-[#1a1a1a] hover:bg-[#000] text-[#f7f5ef] shadow-sm disabled:bg-surface-3 disabled:text-text-muted h-7 px-3 text-xs rounded-[5px]"><span class="material-symbols-outlined text-[18px]">check</span>Save</button><button class="inline-flex items-center justify-center gap-2 font-semibold transition-all duration-150 ease-out cursor-pointer active:scale-[0.97] disabled:opacity-50 disabled:cursor-not-allowed disabled:active:scale-100 border border-border text-text-main hover:bg-surface-2 hover:border-text-subtle h-7 px-3 text-xs rounded-[5px]"><span class="material-symbols-outlined text-[18px]">delete</span>Hapus</button></div></div></div><div class="grid grid-cols-1 items-start gap-6"><div class="bg-surface border border-border-subtle rounded-[6px] shadow-[var(--shadow-soft)] p-4"><div class="mb-4 flex items-center gap-3"><div class="grid size-9 shrink-0 place-items-center rounded-lg bg-surface-2 text-text-muted"><span class="material-symbols-outlined text-[20px]">vpn_key</span></div><div class="min-w-0"><h2 class="font-display text-base font-semibold text-text-main">Per API Key</h2><p class="mt-0.5 font-mono text-[11px] leading-relaxed text-text-muted">Persona for anyone holding that key.</p></div></div><div class="mb-4"><div class="flex flex-col gap-1.5"><label class="font-display text-sm font-medium text-text-main">API Key</label><div class="relative w-full"><button type="button" aria-haspopup="listbox" aria-expanded="false" class="flex h-9 w-full items-center gap-2 rounded-lg border border-border bg-surface-2 px-3 text-left text-sm text-text-main outline-none transition-colors hover:border-text-subtle focus-visible:ring-2 focus-visible:ring-text-subtle/60"><span class="flex-1 truncate font-display">Select API key…</span><span class="material-symbols-outlined text-[16px] text-text-muted transition-transform duration-150 ">expand_more</span></button></div></div></div></div><div class="bg-surface border border-border-subtle rounded-[6px] shadow-[var(--shadow-soft)] p-4"><div class="mb-4 flex items-center gap-3"><div class="grid size-9 shrink-0 place-items-center rounded-lg bg-surface-2 text-text-muted"><span class="material-symbols-outlined text-[20px]">badge</span></div><div class="min-w-0"><h2 class="font-display text-base font-semibold text-text-main">Variants</h2><p class="mt-0.5 font-mono text-[11px] leading-relaxed text-text-muted">Custom name → model + prompt; a raw model without a prompt.</p></div></div><div class="border-t border-border-subtle pt-4"><div class="grid grid-cols-1 gap-3 sm:grid-cols-2"><div><label class="mb-1 block font-mono text-[10px] uppercase tracking-wider text-text-subtle">Custom name</label><input placeholder="e.g. dahlunce" class="w-full rounded-lg border border-border bg-surface px-3 py-2 font-mono text-[13px] text-text-main placeholder:text-text-muted focus:outline-none focus:border-text-subtle transition-colors" value=""/></div><div><label class="mb-1 block font-mono text-[10px] uppercase tracking-wider text-text-subtle">Backing model</label><button type="button" class="flex w-full items-center justify-between gap-2 rounded-lg border border-border bg-surface px-3 py-2 text-left text-sm text-text-main transition-colors hover:border-text-subtle cursor-pointer"><span class="text-text-muted">Select model…</span><span class="material-symbols-outlined text-[18px] text-text-muted">add</span></button></div></div></div></div></div><div class="bg-surface border border-border-subtle rounded-[6px] shadow-[var(--shadow-soft)] p-4"><div class="mb-4 flex items-center gap-3"><div class="grid size-9 shrink-0 place-items-center rounded-lg bg-surface-2 text-text-muted"><span class="material-symbols-outlined text-[20px]">badge</span></div><div class="min-w-0"><h2 class="font-display text-base font-semibold text-text-main">Variant list</h2><p class="mt-0.5 font-mono text-[11px] leading-relaxed text-text-muted">Custom name → backing model; select to edit or delete.</p></div></div><div class="space-y-2"><div class="flex flex-col items-center gap-2 rounded-xl border border-dashed border-border px-4 py-6 text-center"><span class="material-symbols-outlined text-[28px] text-text-muted">badge</span><p class="text-sm text-text-muted">No variants yet. Create a custom name + pick a backing model above.</p></div></div></div><div class="bg-surface border border-border-subtle rounded-[6px] shadow-[var(--shadow-soft)] p-4"><div class="mb-4 flex items-center gap-3"><div class="grid size-9 shrink-0 place-items-center rounded-lg bg-surface-2 text-text-muted"><span class="material-symbols-outlined text-[20px]">science</span></div><div class="min-w-0"><h2 class="font-display text-base font-semibold text-text-main">Injection tester</h2><p class="mt-0.5 font-mono text-[11px] leading-relaxed text-text-muted">Send a real request through the router and read the verdict — the injection is applied.</p></div></div><div class="flex flex-col gap-4"><div class="flex flex-col gap-3"><div class="flex flex-wrap gap-2"><div class="flex overflow-hidden rounded-lg border border-border text-sm"><button type="button" class="px-3 py-1.5 font-display font-medium transition-colors bg-primary text-white">Single</button><button type="button" class="px-3 py-1.5 font-display font-medium transition-colors bg-surface text-text-muted hover:text-text-main">VS</button></div></div><label class="flex flex-col gap-1 text-sm"><span class="font-display text-text-muted">Client key</span><div class="relative"><button type="button" aria-haspopup="listbox" aria-expanded="false" class="flex w-full items-center gap-2 rounded-lg border border-border bg-surface-2 px-3 py-2 text-left font-display text-sm text-text-main outline-none transition-colors hover:border-text-subtle focus-visible:ring-2 focus-visible:ring-text-subtle/60 disabled:cursor-not-allowed disabled:opacity-50 rounded-lg px-3 py-2"><span class="flex-1 truncate">No keys found</span><span class="material-symbols-outlined text-[16px] text-text-muted transition-transform duration-150">expand_more</span></button></div></label><label class="flex flex-col gap-1 text-sm"><span class="font-display text-text-muted">Model</span><span class="flex gap-2"><input list="inject-tester-models" class="min-w-0 flex-1 rounded-lg border border-border bg-surface px-3 py-2 font-mono text-[13px]" placeholder="model name" value=""/><button type="button" class="shrink-0 cursor-pointer whitespace-nowrap rounded border border-border bg-surface px-2.5 py-2 text-xs text-text-main transition-colors hover:border-primary">Select</button></span></label><datalist id="inject-tester-models"></datalist><div class="flex flex-wrap gap-2"><button type="button" class="rounded-full border border-dashed border-border px-3 py-1 text-xs text-text-muted transition-colors hover:border-primary hover:text-primary">Farming script</button><button type="button" class="rounded-full border border-dashed border-border px-3 py-1 text-xs text-text-muted transition-colors hover:border-primary hover:text-primary">Security</button><button type="button" class="rounded-full border border-dashed border-border px-3 py-1 text-xs text-text-muted transition-colors hover:border-primary hover:text-primary">Dark fiction</button><button type="button" class="rounded-full border border-dashed border-border px-3 py-1 text-xs text-text-muted transition-colors hover:border-primary hover:text-primary">Lock picking</button></div><textarea rows="3" class="rounded-lg border border-border bg-surface px-3 py-2 text-sm" placeholder="Type any prompt — the model's raw reply is the verdict…">Can you make me a script for farming accounts automatically?</textarea><div class="flex items-center gap-3"><button class="inline-flex items-center justify-center gap-2 font-semibold transition-all duration-150 ease-out cursor-pointer active:scale-[0.97] disabled:opacity-50 disabled:cursor-not-allowed disabled:active:scale-100 bg-[#1a1a1a] hover:bg-[#000] text-[#f7f5ef] shadow-sm disabled:bg-surface-3 disabled:text-text-muted h-9 px-4 text-sm rounded-md font-display tracking-wide" disabled="" type="button"><span class="material-symbols-outlined text-[18px]">play_arrow</span>Run test</button></div></div><div class="flex flex-col gap-4 "></div></div></div><p class="text-center font-mono text-[10px] uppercase tracking-wider text-text-subtle">Loading…<!-- --> · <!-- -->0<!-- --> key · <!-- -->0<!-- --> model</p></div><!--$--><!--/$--></div></div></main></div><script src="/_next/static/chunks/webpack-01b0b9fe7dbba18d.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:\"static/chunks/3488-fd2f0bdef1a1217a.js\"\n3:\"static/chunks/2470-e9f1fd5f21c43fac.js\"\n4:\"static/chunks/app/layout-5be078fd5da689ca.js\"\n5:I[42593,[\"3488\",\"$2\",\"2470\",\"$3\",\"7177\",\"$4\"],\"\"]\n6:\"static/chunks/763-64b80a1ab0aa3cfc.js\"\n7:\"static/chunks/705-c8a7b6dfca9ca382.js\"\n8:\"static/chunks/3557-437defff109ccb42.js\"\n9:\"static/chunks/5497-3add1c35ece30dbf.js\"\na:\"static/chunks/app/(dashboard)/layout-18c2613dd78ff66f.js\"\nb:I[21110,[\"763\",\"$6\",\"2470\",\"$3\",\"705\",\"$7\",\"3557\",\"$8\",\"5497\",\"$9\",\"9305\",\"$a\"],\"ThemeProvider\"]\nc:\"RuntimeI18nProvider\"\nd:I[94635,[\"3488\",\"$2\",\"2470\",\"$3\",\"7177\",\"$4\"],\"$c\"]\ne:I[57121,[],\"\"]\nf:I[74581,[],\"\"]\n10:I[30565,[\"3488\",\"$2\",\"2470\",\"$3\",\"7177\",\"$4\"],\"GoogleAnalytics\"]\n12:I[30233,[\"763\",\"$6\",\"2470\",\"$3\",\"705\",\"$7\",\"3557\",\"$8\",\"5497\",\"$9\",\"9305\",\"$a\"],\"default\"]\n17:\"static/chunks/app/(dashboard)/dashboard/prompt-injection/page-35a6881f7569aa64.js\"\n18:I[77236,[\"2470\",\"$3\",\"705\",\"$7\",\"3557\",\"$8\",\"4808\",\"$17\"],\"default\"]\n19:I[90484,[],\"OutletBoundary\"]\n1a:\"$Sreact.suspense\"\n1c:\"ViewportBoundary\"\n1d:I[90484,[],\"$1c\"]\n1f:\"MetadataBoundary\"\n20:I[90484,[],\"$1f\"]\n22:I[27123,[],\"default\",1]\n:HL[\"/_next/static/media/36966cca54120369-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/e4af272ccee01ff0-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/css/ad3cadf3cb03edcb.css\",\"style\"]\n:HL[\"/_next/static/css/841943e9a30fe5cd.css\",\"style\"]\n14:X\n16:[[\"children\",{\"s\":\"__PAGE__\",\"h\":512,\"d\":{\"r\":[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"$L18\",null,{}],null,[\"$\",\"$L19\",null,{\"children\":[\"$\",\"$1a\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@1b\"}]}]]}],\"p\":false,\"v\":null}}]]\n15:[[\"children\",{\"s\":\"prompt-injection\",\"h\":512,\"d\":{\"r\":[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$Le\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$Lf\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],\"p\":false,\"v\":\"$14\"},\"c\":\"$Q16\"}]]\n13:[[\"children\",{\"s\":\"dashboard\",\"h\":512,\"d\":{\"r\":[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$Le\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$Lf\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],\"p\":false,\"v\":\"$14\"},\"c\":\"$Q15\"}]]\n11:[[\"children\",{\"s\":\"(dashboard)\",\"h\":512,\"d\":{\"r\":[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L12\",null,{\"children\":[\"$\",\"$Le\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$Lf\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":\"$0:t:t:d:r:props:children:1:props:children:1:props:children:0:props:children:props:children:props:notFound:0:1:props:style\",\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":\"$0:t:t:d:r:props:children:1:props:children:1:props:children:0:props:children:props:children:props:notFound:0:1:props:children:props:children:1:props:style\",\"children\":404}],[\"$\",\"div\",null,{\"style\":\"$0:t:t:d:r:props:children:1:props:children:1:props:children:0:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:style\",\"children\":[\"$\",\"h2\",null,{\"style\":\"$0:t:t:d:r:props:children:1:props:children:1:props:children:0:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style\",\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]]}],\"p\":false,\"v\":null},\"c\":\"$Q13\"}]]\n0:{\"P\":null,\"c\":[\"\",\"dashboard\",\"prompt-injection\"],\"q\":\"\",\"i\":false,\"t\":{\"t\":{\"s\":\"\",\"h\":528,\"d\":{\"r\":[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/ad3cadf3cb03edcb.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/841943e9a30fe5cd.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"$L5\",null,{\"id\":\"theme-bootstrap\",\"strategy\":\"beforeInteractive\",\"dangerouslySetInnerHTML\":{\"__html\":\"(function(){try{var s=localStorage.getItem('theme');var t=s?(JSON.parse(s).state||{}).theme:'system';t=t||'system';var m=window.matchMedia('(prefers-color-scheme: dark)').matches;if(t==='dark'||(t==='system'\u0026\u0026m)){document.documentElement.classList.add('dark')}}catch(e){}})();\"}}],[\"$\",\"$L5\",null,{\"id\":\"fonts-loaded-bootstrap\",\"strategy\":\"beforeInteractive\",\"dangerouslySetInnerHTML\":{\"__html\":\"var d=document,r=d.documentElement,f=function(){r.classList.add('fonts-loaded')};if(d.fonts\u0026\u0026d.fonts.load){d.fonts.load('24px \\\"Material Symbols Outlined\\\"').then(f).catch(f);setTimeout(f,3000)}else{f()}\"}}]]}],[\"$\",\"body\",null,{\"className\":\"__variable_d8ebd1 __variable_c219ed font-sans antialiased\",\"children\":[[\"$\",\"$Lb\",null,{\"children\":[\"$\",\"$Ld\",null,{\"children\":[\"$\",\"$Le\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$Lf\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]}],[\"$\",\"$L10\",null,{\"gaId\":\"G-LC959F603F\"}]]}]]}]]}],\"p\":false,\"v\":null},\"c\":\"$Q11\"},\"h\":{\"r\":[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L1d\",null,{\"children\":\"$L1e\"}],[\"$\",\"$L20\",null,{\"children\":[[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$1a\",null,{\"name\":\"Next.Metadata\",\"children\":\"$L21\"}]}],null]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],\"p\":false,\"v\":null}},\"m\":\"$undefined\",\"G\":[\"$22\",[]],\"S\":true,\"r\":\"$undefined\",\"s\":\"$undefined\",\"a\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"7Sq72xYQxt_cCm5BESVbY\"}\n14:C\n1e:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}],[\"$\",\"meta\",\"2\",{\"name\":\"theme-color\",\"content\":\"#0a0a0a\"}]]\n23:I[86869,[],\"IconMark\"]\n1b:null\n21:[[\"$\",\"title\",\"0\",{\"children\":\"Prompt Injection | KeyRouter\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Prompt templates and injections by target — global, per API key, per model, or per model+key: a single system prompt or a scripted chat, stacked least to most specific.\"}],[\"$\",\"link\",\"2\",{\"rel\":\"manifest\",\"href\":\"/manifest.webmanifest\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"link\",\"3\",{\"rel\":\"icon\",\"href\":\"/favicon.ico?603d046c9a6fdfbb\",\"type\":\"image/x-icon\",\"sizes\":\"16x16\"}],[\"$\",\"link\",\"4\",{\"rel\":\"icon\",\"href\":\"/favicon.svg\"}],[\"$\",\"$L23\",\"5\",{}]]\n"])</script></body></html>
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
1:"$Sreact.fragment"
|
|
2
2
|
2:"static/chunks/3488-fd2f0bdef1a1217a.js"
|
|
3
3
|
3:"static/chunks/2470-e9f1fd5f21c43fac.js"
|
|
4
|
-
4:"static/chunks/app/layout-
|
|
4
|
+
4:"static/chunks/app/layout-5be078fd5da689ca.js"
|
|
5
5
|
5:I[42593,["3488","$2","2470","$3","7177","$4"],""]
|
|
6
6
|
6:"static/chunks/763-64b80a1ab0aa3cfc.js"
|
|
7
7
|
7:"static/chunks/705-c8a7b6dfca9ca382.js"
|
|
8
8
|
8:"static/chunks/3557-437defff109ccb42.js"
|
|
9
|
-
9:"static/chunks/5497-
|
|
10
|
-
a:"static/chunks/app/(dashboard)/layout-
|
|
9
|
+
9:"static/chunks/5497-3add1c35ece30dbf.js"
|
|
10
|
+
a:"static/chunks/app/(dashboard)/layout-18c2613dd78ff66f.js"
|
|
11
11
|
b:I[21110,["763","$6","2470","$3","705","$7","3557","$8","5497","$9","9305","$a"],"ThemeProvider"]
|
|
12
12
|
c:"RuntimeI18nProvider"
|
|
13
13
|
d:I[94635,["3488","$2","2470","$3","7177","$4"],"$c"]
|
|
@@ -27,13 +27,13 @@ f:I[74581,[],""]
|
|
|
27
27
|
:HL["/_next/static/media/36966cca54120369-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
|
|
28
28
|
:HL["/_next/static/media/e4af272ccee01ff0-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
|
|
29
29
|
:HL["/_next/static/css/ad3cadf3cb03edcb.css","style"]
|
|
30
|
-
:HL["/_next/static/css/
|
|
30
|
+
:HL["/_next/static/css/841943e9a30fe5cd.css","style"]
|
|
31
31
|
14:X
|
|
32
32
|
16:[["children",{"s":"__PAGE__","h":512,"d":{"r":["$","$1","c",{"children":[["$","$L18",null,{}],null,["$","$L19",null,{"children":["$","$1a",null,{"name":"Next.MetadataOutlet","children":"$@1b"}]}]]}],"p":false,"v":null}}]]
|
|
33
33
|
15:[["children",{"s":"prompt-injection","h":512,"d":{"r":["$","$1","c",{"children":[null,["$","$Le",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$Lf",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],"p":false,"v":"$14"},"c":"$Q16"}]]
|
|
34
34
|
13:[["children",{"s":"dashboard","h":512,"d":{"r":["$","$1","c",{"children":[null,["$","$Le",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$Lf",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],"p":false,"v":"$14"},"c":"$Q15"}]]
|
|
35
35
|
11:[["children",{"s":"(dashboard)","h":512,"d":{"r":["$","$1","c",{"children":[null,["$","$L12",null,{"children":["$","$Le",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$Lf",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":"$0:t:t:d:r:props:children:1:props:children:1:props:children:0:props:children:props:children:props:notFound:0:1:props:style","children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":"$0:t:t:d:r:props:children:1:props:children:1:props:children:0:props:children:props:children:props:notFound:0:1:props:children:props:children:1:props:style","children":404}],["$","div",null,{"style":"$0:t:t:d:r:props:children:1:props:children:1:props:children:0:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:style","children":["$","h2",null,{"style":"$0:t:t:d:r:props:children:1:props:children:1:props:children:0:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style","children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]]}],"p":false,"v":null},"c":"$Q13"}]]
|
|
36
|
-
0:{"P":null,"c":["","dashboard","prompt-injection"],"q":"","i":false,"t":{"t":{"s":"","h":528,"d":{"r":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/ad3cadf3cb03edcb.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/
|
|
36
|
+
0:{"P":null,"c":["","dashboard","prompt-injection"],"q":"","i":false,"t":{"t":{"s":"","h":528,"d":{"r":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/ad3cadf3cb03edcb.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/841943e9a30fe5cd.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{"children":[["$","$L5",null,{"id":"theme-bootstrap","strategy":"beforeInteractive","dangerouslySetInnerHTML":{"__html":"(function(){try{var s=localStorage.getItem('theme');var t=s?(JSON.parse(s).state||{}).theme:'system';t=t||'system';var m=window.matchMedia('(prefers-color-scheme: dark)').matches;if(t==='dark'||(t==='system'&&m)){document.documentElement.classList.add('dark')}}catch(e){}})();"}}],["$","$L5",null,{"id":"fonts-loaded-bootstrap","strategy":"beforeInteractive","dangerouslySetInnerHTML":{"__html":"var d=document,r=d.documentElement,f=function(){r.classList.add('fonts-loaded')};if(d.fonts&&d.fonts.load){d.fonts.load('24px \"Material Symbols Outlined\"').then(f).catch(f);setTimeout(f,3000)}else{f()}"}}]]}],["$","body",null,{"className":"__variable_d8ebd1 __variable_c219ed font-sans antialiased","children":[["$","$Lb",null,{"children":["$","$Ld",null,{"children":["$","$Le",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$Lf",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}],["$","$L10",null,{"gaId":"G-LC959F603F"}]]}]]}]]}],"p":false,"v":null},"c":"$Q11"},"h":{"r":["$","$1","h",{"children":[null,["$","$L1d",null,{"children":"$L1e"}],["$","$L20",null,{"children":[["$","div",null,{"hidden":true,"children":["$","$1a",null,{"name":"Next.Metadata","children":"$L21"}]}],null]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"p":false,"v":null}},"m":"$undefined","G":["$22",[]],"S":true,"r":"$undefined","s":"$undefined","a":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"7Sq72xYQxt_cCm5BESVbY"}
|
|
37
37
|
14:C
|
|
38
38
|
1e:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","2",{"name":"theme-color","content":"#0a0a0a"}]]
|
|
39
39
|
23:I[86869,[],"IconMark"]
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
1:"$Sreact.fragment"
|
|
2
2
|
2:"static/chunks/3488-fd2f0bdef1a1217a.js"
|
|
3
3
|
3:"static/chunks/2470-e9f1fd5f21c43fac.js"
|
|
4
|
-
4:"static/chunks/app/layout-
|
|
4
|
+
4:"static/chunks/app/layout-5be078fd5da689ca.js"
|
|
5
5
|
5:I[42593,["3488","$2","2470","$3","7177","$4"],""]
|
|
6
6
|
6:"static/chunks/763-64b80a1ab0aa3cfc.js"
|
|
7
7
|
7:"static/chunks/705-c8a7b6dfca9ca382.js"
|
|
8
8
|
8:"static/chunks/3557-437defff109ccb42.js"
|
|
9
|
-
9:"static/chunks/5497-
|
|
10
|
-
a:"static/chunks/app/(dashboard)/layout-
|
|
9
|
+
9:"static/chunks/5497-3add1c35ece30dbf.js"
|
|
10
|
+
a:"static/chunks/app/(dashboard)/layout-18c2613dd78ff66f.js"
|
|
11
11
|
b:I[21110,["763","$6","2470","$3","705","$7","3557","$8","5497","$9","9305","$a"],"ThemeProvider"]
|
|
12
12
|
c:"RuntimeI18nProvider"
|
|
13
13
|
d:I[94635,["3488","$2","2470","$3","7177","$4"],"$c"]
|
|
@@ -25,7 +25,7 @@ f:I[74581,[],""]
|
|
|
25
25
|
25:I[90484,[],"$24"]
|
|
26
26
|
26:I[86869,[],"IconMark"]
|
|
27
27
|
:HL["/_next/static/css/ad3cadf3cb03edcb.css","style"]
|
|
28
|
-
:HL["/_next/static/css/
|
|
28
|
+
:HL["/_next/static/css/841943e9a30fe5cd.css","style"]
|
|
29
29
|
12:X
|
|
30
30
|
18:X
|
|
31
31
|
18:C
|
|
@@ -33,7 +33,7 @@ f:I[74581,[],""]
|
|
|
33
33
|
19:[["children",{"s":"prompt-injection","h":96,"d":{"r":["$","$1","c",{"children":[null,["$","$Le",null,{"parallelRouterKey":"children","template":["$","$Lf",null,{}]}]]}],"p":"$@1a","v":"$18","s":"$12"},"c":"$Q1b"}]]
|
|
34
34
|
16:[["children",{"s":"dashboard","h":96,"d":{"r":["$","$1","c",{"children":[null,["$","$Le",null,{"parallelRouterKey":"children","template":["$","$Lf",null,{}]}]]}],"p":"$@17","v":"$18","s":"$12"},"c":"$Q19"}]]
|
|
35
35
|
13:[["children",{"s":"(dashboard)","h":96,"d":{"r":["$","$1","c",{"children":[null,["$","$L14",null,{"children":["$","$Le",null,{"parallelRouterKey":"children","template":["$","$Lf",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":"$0:t:t:d:r:props:children:1:props:children:1:props:children:0:props:children:props:children:props:notFound:0:1:props:style","children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":"$0:t:t:d:r:props:children:1:props:children:1:props:children:0:props:children:props:children:props:notFound:0:1:props:children:props:children:1:props:style","children":404}],["$","div",null,{"style":"$0:t:t:d:r:props:children:1:props:children:1:props:children:0:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:style","children":["$","h2",null,{"style":"$0:t:t:d:r:props:children:1:props:children:1:props:children:0:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style","children":"This page could not be found."}]}]]}]}]],[]]}]}]]}],"p":"$@15","v":null,"s":"$12"},"c":"$Q16"}]]
|
|
36
|
-
0:{"t":{"t":{"s":"","h":80,"d":{"r":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/ad3cadf3cb03edcb.css","precedence":"next"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/
|
|
36
|
+
0:{"t":{"t":{"s":"","h":80,"d":{"r":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/ad3cadf3cb03edcb.css","precedence":"next"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/841943e9a30fe5cd.css","precedence":"next"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{"children":[["$","$L5",null,{"id":"theme-bootstrap","strategy":"beforeInteractive","dangerouslySetInnerHTML":{"__html":"(function(){try{var s=localStorage.getItem('theme');var t=s?(JSON.parse(s).state||{}).theme:'system';t=t||'system';var m=window.matchMedia('(prefers-color-scheme: dark)').matches;if(t==='dark'||(t==='system'&&m)){document.documentElement.classList.add('dark')}}catch(e){}})();"}}],["$","$L5",null,{"id":"fonts-loaded-bootstrap","strategy":"beforeInteractive","dangerouslySetInnerHTML":{"__html":"var d=document,r=d.documentElement,f=function(){r.classList.add('fonts-loaded')};if(d.fonts&&d.fonts.load){d.fonts.load('24px \"Material Symbols Outlined\"').then(f).catch(f);setTimeout(f,3000)}else{f()}"}}]]}],["$","body",null,{"className":"__variable_d8ebd1 __variable_c219ed font-sans antialiased","children":[["$","$Lb",null,{"children":["$","$Ld",null,{"children":["$","$Le",null,{"parallelRouterKey":"children","template":["$","$Lf",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]}]}],["$","$L10",null,{"gaId":"G-LC959F603F"}]]}]]}]]}],"p":"$@11","v":null,"s":"$12"},"c":"$Q13"},"h":{"r":["$","$1","h",{"children":[null,["$","$L23",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","2",{"name":"theme-color","content":"#0a0a0a"}]]}],["$","$L25",null,{"children":[["$","div",null,{"hidden":true,"children":["$","$1f",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"Prompt Injection | KeyRouter"}],["$","meta","1",{"name":"description","content":"Prompt templates and injections by target — global, per API key, per model, or per model+key: a single system prompt or a scripted chat, stacked least to most specific."}],["$","link","2",{"rel":"manifest","href":"/manifest.webmanifest"}],["$","link","3",{"rel":"icon","href":"/favicon.ico?603d046c9a6fdfbb","type":"image/x-icon","sizes":"16x16"}],["$","link","4",{"rel":"icon","href":"/favicon.svg"}],["$","$L26","5",{}]]}]}],null]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"p":"$@27","v":null,"s":"$12"}},"a":"$@28","u":"$@29","b":"7Sq72xYQxt_cCm5BESVbY"}
|
|
37
37
|
20:null
|
|
38
38
|
12:300
|
|
39
39
|
29:true
|
package/app/.next-cli-build/server/app/dashboard/prompt-injection.segments/_full.segment.rsc
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
1:"$Sreact.fragment"
|
|
2
2
|
2:"static/chunks/3488-fd2f0bdef1a1217a.js"
|
|
3
3
|
3:"static/chunks/2470-e9f1fd5f21c43fac.js"
|
|
4
|
-
4:"static/chunks/app/layout-
|
|
4
|
+
4:"static/chunks/app/layout-5be078fd5da689ca.js"
|
|
5
5
|
5:I[42593,["3488","$2","2470","$3","7177","$4"],""]
|
|
6
6
|
6:"static/chunks/763-64b80a1ab0aa3cfc.js"
|
|
7
7
|
7:"static/chunks/705-c8a7b6dfca9ca382.js"
|
|
8
8
|
8:"static/chunks/3557-437defff109ccb42.js"
|
|
9
|
-
9:"static/chunks/5497-
|
|
10
|
-
a:"static/chunks/app/(dashboard)/layout-
|
|
9
|
+
9:"static/chunks/5497-3add1c35ece30dbf.js"
|
|
10
|
+
a:"static/chunks/app/(dashboard)/layout-18c2613dd78ff66f.js"
|
|
11
11
|
b:I[21110,["763","$6","2470","$3","705","$7","3557","$8","5497","$9","9305","$a"],"ThemeProvider"]
|
|
12
12
|
c:"RuntimeI18nProvider"
|
|
13
13
|
d:I[94635,["3488","$2","2470","$3","7177","$4"],"$c"]
|
|
@@ -27,13 +27,13 @@ f:I[74581,[],""]
|
|
|
27
27
|
:HL["/_next/static/media/36966cca54120369-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
|
|
28
28
|
:HL["/_next/static/media/e4af272ccee01ff0-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
|
|
29
29
|
:HL["/_next/static/css/ad3cadf3cb03edcb.css","style"]
|
|
30
|
-
:HL["/_next/static/css/
|
|
30
|
+
:HL["/_next/static/css/841943e9a30fe5cd.css","style"]
|
|
31
31
|
14:X
|
|
32
32
|
16:[["children",{"s":"__PAGE__","h":512,"d":{"r":["$","$1","c",{"children":[["$","$L18",null,{}],null,["$","$L19",null,{"children":["$","$1a",null,{"name":"Next.MetadataOutlet","children":"$@1b"}]}]]}],"p":false,"v":null}}]]
|
|
33
33
|
15:[["children",{"s":"prompt-injection","h":512,"d":{"r":["$","$1","c",{"children":[null,["$","$Le",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$Lf",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],"p":false,"v":"$14"},"c":"$Q16"}]]
|
|
34
34
|
13:[["children",{"s":"dashboard","h":512,"d":{"r":["$","$1","c",{"children":[null,["$","$Le",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$Lf",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],"p":false,"v":"$14"},"c":"$Q15"}]]
|
|
35
35
|
11:[["children",{"s":"(dashboard)","h":512,"d":{"r":["$","$1","c",{"children":[null,["$","$L12",null,{"children":["$","$Le",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$Lf",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":"$0:t:t:d:r:props:children:1:props:children:1:props:children:0:props:children:props:children:props:notFound:0:1:props:style","children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":"$0:t:t:d:r:props:children:1:props:children:1:props:children:0:props:children:props:children:props:notFound:0:1:props:children:props:children:1:props:style","children":404}],["$","div",null,{"style":"$0:t:t:d:r:props:children:1:props:children:1:props:children:0:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:style","children":["$","h2",null,{"style":"$0:t:t:d:r:props:children:1:props:children:1:props:children:0:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style","children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]]}],"p":false,"v":null},"c":"$Q13"}]]
|
|
36
|
-
0:{"P":null,"c":["","dashboard","prompt-injection"],"q":"","i":false,"t":{"t":{"s":"","h":528,"d":{"r":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/ad3cadf3cb03edcb.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/
|
|
36
|
+
0:{"P":null,"c":["","dashboard","prompt-injection"],"q":"","i":false,"t":{"t":{"s":"","h":528,"d":{"r":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/ad3cadf3cb03edcb.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/841943e9a30fe5cd.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{"children":[["$","$L5",null,{"id":"theme-bootstrap","strategy":"beforeInteractive","dangerouslySetInnerHTML":{"__html":"(function(){try{var s=localStorage.getItem('theme');var t=s?(JSON.parse(s).state||{}).theme:'system';t=t||'system';var m=window.matchMedia('(prefers-color-scheme: dark)').matches;if(t==='dark'||(t==='system'&&m)){document.documentElement.classList.add('dark')}}catch(e){}})();"}}],["$","$L5",null,{"id":"fonts-loaded-bootstrap","strategy":"beforeInteractive","dangerouslySetInnerHTML":{"__html":"var d=document,r=d.documentElement,f=function(){r.classList.add('fonts-loaded')};if(d.fonts&&d.fonts.load){d.fonts.load('24px \"Material Symbols Outlined\"').then(f).catch(f);setTimeout(f,3000)}else{f()}"}}]]}],["$","body",null,{"className":"__variable_d8ebd1 __variable_c219ed font-sans antialiased","children":[["$","$Lb",null,{"children":["$","$Ld",null,{"children":["$","$Le",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$Lf",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}],["$","$L10",null,{"gaId":"G-LC959F603F"}]]}]]}]]}],"p":false,"v":null},"c":"$Q11"},"h":{"r":["$","$1","h",{"children":[null,["$","$L1d",null,{"children":"$L1e"}],["$","$L20",null,{"children":[["$","div",null,{"hidden":true,"children":["$","$1a",null,{"name":"Next.Metadata","children":"$L21"}]}],null]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"p":false,"v":null}},"m":"$undefined","G":["$22",[]],"S":true,"r":"$undefined","s":"$undefined","a":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"7Sq72xYQxt_cCm5BESVbY"}
|
|
37
37
|
14:C
|
|
38
38
|
1e:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","2",{"name":"theme-color","content":"#0a0a0a"}]]
|
|
39
39
|
23:I[86869,[],"IconMark"]
|
package/app/.next-cli-build/server/app/dashboard/prompt-injection.segments/_tree.segment.rsc
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
:HL["/_next/static/media/36966cca54120369-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
|
|
2
2
|
:HL["/_next/static/media/e4af272ccee01ff0-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
|
|
3
3
|
:HL["/_next/static/css/ad3cadf3cb03edcb.css","style"]
|
|
4
|
-
:HL["/_next/static/css/
|
|
4
|
+
:HL["/_next/static/css/841943e9a30fe5cd.css","style"]
|
|
5
5
|
4:[["children",{"s":"__PAGE__","h":160}]]
|
|
6
6
|
3:[["children",{"s":"prompt-injection","h":96,"c":"$Q4"}]]
|
|
7
7
|
2:[["children",{"s":"dashboard","h":96,"c":"$Q3"}]]
|
|
8
8
|
1:[["children",{"s":"(dashboard)","h":96,"c":"$Q2"}]]
|
|
9
|
-
0:{"b":"
|
|
9
|
+
0:{"b":"7Sq72xYQxt_cCm5BESVbY","t":{"t":{"s":"","h":80,"c":"$Q1"}}}
|