agent-insight 0.5.3 → 0.5.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/.next/standalone/.next/BUILD_ID +1 -1
- package/.next/standalone/.next/build-manifest.json +2 -2
- package/.next/standalone/.next/prerender-manifest.json +3 -3
- package/.next/standalone/.next/server/app/(main)/accessconfig/channels/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(main)/accessconfig/health/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(main)/accessconfig/install/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(main)/accessconfig/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(main)/accessconfig/webhooks/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(main)/agents/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(main)/dashboard/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(main)/dataset/[id]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(main)/dataset/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(main)/eval/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(main)/eval/run/[runId]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(main)/eval/trajectory/[taskId]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(main)/eval/trajectory/[taskId]/trace/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(main)/eval/trajectory/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(main)/evaluation/[id]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(main)/fault/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/(main)/fault/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(main)/infra/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(main)/infra/source/[id]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(main)/infra/sources/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(main)/memory/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(main)/metrics/evaluators/[id]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(main)/metrics/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/(main)/metrics/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(main)/modelconfig/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(main)/modelconfig/registry/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(main)/modelconfig/web-search/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(main)/optapi/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(main)/quality/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(main)/security/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(main)/skill-eval/grayscale/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(main)/skill-eval/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(main)/skill-eval/trigger/[skillName]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(main)/skill-generator/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(main)/skill-history/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/(main)/skill-history/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(main)/skill-opt/[name]/[version]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(main)/skill-opt/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(main)/skill-release/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(main)/skills/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(main)/trace/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/(main)/trace/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(main)/version-analysis/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(main)/version-management/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/_global-error.html +2 -2
- package/.next/standalone/.next/server/app/_global-error.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/_not-found.html +1 -1
- package/.next/standalone/.next/server/app/_not-found.rsc +3 -3
- package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/accessconfig/channels.html +1 -1
- package/.next/standalone/.next/server/app/accessconfig/channels.rsc +5 -5
- package/.next/standalone/.next/server/app/accessconfig/channels.segments/!KG1haW4p/accessconfig/channels/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/accessconfig/channels.segments/!KG1haW4p/accessconfig/channels.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/accessconfig/channels.segments/!KG1haW4p/accessconfig.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/accessconfig/channels.segments/!KG1haW4p.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/accessconfig/channels.segments/_full.segment.rsc +5 -5
- package/.next/standalone/.next/server/app/accessconfig/channels.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/accessconfig/channels.segments/_index.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/accessconfig/channels.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/accessconfig/health.html +1 -1
- package/.next/standalone/.next/server/app/accessconfig/health.rsc +5 -5
- package/.next/standalone/.next/server/app/accessconfig/health.segments/!KG1haW4p/accessconfig/health/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/accessconfig/health.segments/!KG1haW4p/accessconfig/health.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/accessconfig/health.segments/!KG1haW4p/accessconfig.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/accessconfig/health.segments/!KG1haW4p.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/accessconfig/health.segments/_full.segment.rsc +5 -5
- package/.next/standalone/.next/server/app/accessconfig/health.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/accessconfig/health.segments/_index.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/accessconfig/health.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/accessconfig/install.html +2 -2
- package/.next/standalone/.next/server/app/accessconfig/install.rsc +5 -5
- package/.next/standalone/.next/server/app/accessconfig/install.segments/!KG1haW4p/accessconfig/install/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/accessconfig/install.segments/!KG1haW4p/accessconfig/install.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/accessconfig/install.segments/!KG1haW4p/accessconfig.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/accessconfig/install.segments/!KG1haW4p.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/accessconfig/install.segments/_full.segment.rsc +5 -5
- package/.next/standalone/.next/server/app/accessconfig/install.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/accessconfig/install.segments/_index.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/accessconfig/install.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/accessconfig/webhooks.html +1 -1
- package/.next/standalone/.next/server/app/accessconfig/webhooks.rsc +5 -5
- package/.next/standalone/.next/server/app/accessconfig/webhooks.segments/!KG1haW4p/accessconfig/webhooks/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/accessconfig/webhooks.segments/!KG1haW4p/accessconfig/webhooks.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/accessconfig/webhooks.segments/!KG1haW4p/accessconfig.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/accessconfig/webhooks.segments/!KG1haW4p.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/accessconfig/webhooks.segments/_full.segment.rsc +5 -5
- package/.next/standalone/.next/server/app/accessconfig/webhooks.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/accessconfig/webhooks.segments/_index.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/accessconfig/webhooks.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/accessconfig.html +1 -1
- package/.next/standalone/.next/server/app/accessconfig.rsc +4 -4
- package/.next/standalone/.next/server/app/accessconfig.segments/!KG1haW4p/accessconfig/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/accessconfig.segments/!KG1haW4p/accessconfig.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/accessconfig.segments/!KG1haW4p.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/accessconfig.segments/_full.segment.rsc +4 -4
- package/.next/standalone/.next/server/app/accessconfig.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/accessconfig.segments/_index.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/accessconfig.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/agents.html +1 -1
- package/.next/standalone/.next/server/app/agents.rsc +5 -5
- package/.next/standalone/.next/server/app/agents.segments/!KG1haW4p/agents/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/agents.segments/!KG1haW4p/agents.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/agents.segments/!KG1haW4p.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/agents.segments/_full.segment.rsc +5 -5
- package/.next/standalone/.next/server/app/agents.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/agents.segments/_index.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/agents.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/api/agent/run/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/agent/stream/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/debug/batch-tasks/[taskId]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/debug/execute/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/debug/grayscale-tasks/[taskId]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/eval/terminate-all/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/eval/trajectory/run/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/fault/diagnosis/stream/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/observe/executions/[executionId]/agent-debug/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/observe/executions/[executionId]/agent-debug/skills-analysis/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/observe/version-analysis/compare/route.js +1 -1
- package/.next/standalone/.next/server/app/api/observe/version-analysis/compare/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/observe/version-analysis/tags/[tagId]/traces/route.js +1 -1
- package/.next/standalone/.next/server/app/api/observe/version-analysis/tags/[tagId]/traces/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/skill-eval/trigger/[skillName]/draft/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/skill-eval/trigger/[skillName]/run/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/skill-generator/attachments/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/skill-generator/chat/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/skill-generator/files/content/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/skill-generator/files/download/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/skill-generator/files/info/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/skill-generator/files/list/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/skill-opt/chat/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/skill-opt/sessions/[id]/iterations/[draftNumber]/apply/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/skills/[id]/versions/[version]/download/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/skills/[id]/versions/[version]/files/[...path]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/user-evaluators/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/dashboard.html +1 -1
- package/.next/standalone/.next/server/app/dashboard.rsc +5 -5
- package/.next/standalone/.next/server/app/dashboard.segments/!KG1haW4p/dashboard/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/dashboard.segments/!KG1haW4p/dashboard.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/dashboard.segments/!KG1haW4p.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/dashboard.segments/_full.segment.rsc +5 -5
- package/.next/standalone/.next/server/app/dashboard.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/dashboard.segments/_index.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/dashboard.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/dataset.html +1 -1
- package/.next/standalone/.next/server/app/dataset.rsc +5 -5
- package/.next/standalone/.next/server/app/dataset.segments/!KG1haW4p/dataset/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/dataset.segments/!KG1haW4p/dataset.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/dataset.segments/!KG1haW4p.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/dataset.segments/_full.segment.rsc +5 -5
- package/.next/standalone/.next/server/app/dataset.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/dataset.segments/_index.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/dataset.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/eval/trajectory.html +1 -1
- package/.next/standalone/.next/server/app/eval/trajectory.rsc +5 -5
- package/.next/standalone/.next/server/app/eval/trajectory.segments/!KG1haW4p/eval/trajectory/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/eval/trajectory.segments/!KG1haW4p/eval/trajectory.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/eval/trajectory.segments/!KG1haW4p/eval.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/eval/trajectory.segments/!KG1haW4p.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/eval/trajectory.segments/_full.segment.rsc +5 -5
- package/.next/standalone/.next/server/app/eval/trajectory.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/eval/trajectory.segments/_index.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/eval/trajectory.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/eval.html +1 -1
- package/.next/standalone/.next/server/app/eval.rsc +5 -5
- package/.next/standalone/.next/server/app/eval.segments/!KG1haW4p/eval/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/eval.segments/!KG1haW4p/eval.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/eval.segments/!KG1haW4p.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/eval.segments/_full.segment.rsc +5 -5
- package/.next/standalone/.next/server/app/eval.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/eval.segments/_index.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/eval.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/fault.html +1 -1
- package/.next/standalone/.next/server/app/fault.rsc +5 -5
- package/.next/standalone/.next/server/app/fault.segments/!KG1haW4p/fault/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/fault.segments/!KG1haW4p/fault.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/fault.segments/!KG1haW4p.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/fault.segments/_full.segment.rsc +5 -5
- package/.next/standalone/.next/server/app/fault.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/fault.segments/_index.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/fault.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/index.html +1 -1
- package/.next/standalone/.next/server/app/index.rsc +3 -3
- package/.next/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/index.segments/_full.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/index.segments/_index.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/index.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/infra/sources.html +1 -1
- package/.next/standalone/.next/server/app/infra/sources.rsc +5 -5
- package/.next/standalone/.next/server/app/infra/sources.segments/!KG1haW4p/infra/sources/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/infra/sources.segments/!KG1haW4p/infra/sources.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/infra/sources.segments/!KG1haW4p/infra.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/infra/sources.segments/!KG1haW4p.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/infra/sources.segments/_full.segment.rsc +5 -5
- package/.next/standalone/.next/server/app/infra/sources.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/infra/sources.segments/_index.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/infra/sources.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/infra.html +1 -1
- package/.next/standalone/.next/server/app/infra.rsc +5 -5
- package/.next/standalone/.next/server/app/infra.segments/!KG1haW4p/infra/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/infra.segments/!KG1haW4p/infra.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/infra.segments/!KG1haW4p.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/infra.segments/_full.segment.rsc +5 -5
- package/.next/standalone/.next/server/app/infra.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/infra.segments/_index.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/infra.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/login/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/login.html +1 -1
- package/.next/standalone/.next/server/app/login.rsc +4 -4
- package/.next/standalone/.next/server/app/login.segments/_full.segment.rsc +4 -4
- package/.next/standalone/.next/server/app/login.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/login.segments/_index.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/login.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/login.segments/login.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/memory.html +1 -1
- package/.next/standalone/.next/server/app/memory.rsc +5 -5
- package/.next/standalone/.next/server/app/memory.segments/!KG1haW4p/memory/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/memory.segments/!KG1haW4p/memory.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/memory.segments/!KG1haW4p.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/memory.segments/_full.segment.rsc +5 -5
- package/.next/standalone/.next/server/app/memory.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/memory.segments/_index.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/memory.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/metrics.html +1 -1
- package/.next/standalone/.next/server/app/metrics.rsc +5 -5
- package/.next/standalone/.next/server/app/metrics.segments/!KG1haW4p/metrics/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/metrics.segments/!KG1haW4p/metrics.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/metrics.segments/!KG1haW4p.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/metrics.segments/_full.segment.rsc +5 -5
- package/.next/standalone/.next/server/app/metrics.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/metrics.segments/_index.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/metrics.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/modelconfig/registry.html +1 -1
- package/.next/standalone/.next/server/app/modelconfig/registry.rsc +5 -5
- package/.next/standalone/.next/server/app/modelconfig/registry.segments/!KG1haW4p/modelconfig/registry/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/modelconfig/registry.segments/!KG1haW4p/modelconfig/registry.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/modelconfig/registry.segments/!KG1haW4p/modelconfig.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/modelconfig/registry.segments/!KG1haW4p.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/modelconfig/registry.segments/_full.segment.rsc +5 -5
- package/.next/standalone/.next/server/app/modelconfig/registry.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/modelconfig/registry.segments/_index.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/modelconfig/registry.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/modelconfig/web-search.html +1 -1
- package/.next/standalone/.next/server/app/modelconfig/web-search.rsc +5 -5
- package/.next/standalone/.next/server/app/modelconfig/web-search.segments/!KG1haW4p/modelconfig/web-search/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/modelconfig/web-search.segments/!KG1haW4p/modelconfig/web-search.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/modelconfig/web-search.segments/!KG1haW4p/modelconfig.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/modelconfig/web-search.segments/!KG1haW4p.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/modelconfig/web-search.segments/_full.segment.rsc +5 -5
- package/.next/standalone/.next/server/app/modelconfig/web-search.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/modelconfig/web-search.segments/_index.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/modelconfig/web-search.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/modelconfig.html +1 -1
- package/.next/standalone/.next/server/app/modelconfig.rsc +4 -4
- package/.next/standalone/.next/server/app/modelconfig.segments/!KG1haW4p/modelconfig/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/modelconfig.segments/!KG1haW4p/modelconfig.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/modelconfig.segments/!KG1haW4p.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/modelconfig.segments/_full.segment.rsc +4 -4
- package/.next/standalone/.next/server/app/modelconfig.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/modelconfig.segments/_index.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/modelconfig.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/optapi.html +1 -1
- package/.next/standalone/.next/server/app/optapi.rsc +5 -5
- package/.next/standalone/.next/server/app/optapi.segments/!KG1haW4p/optapi/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/optapi.segments/!KG1haW4p/optapi.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/optapi.segments/!KG1haW4p.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/optapi.segments/_full.segment.rsc +5 -5
- package/.next/standalone/.next/server/app/optapi.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/optapi.segments/_index.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/optapi.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/quality.html +1 -1
- package/.next/standalone/.next/server/app/quality.rsc +5 -5
- package/.next/standalone/.next/server/app/quality.segments/!KG1haW4p/quality/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/quality.segments/!KG1haW4p/quality.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/quality.segments/!KG1haW4p.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/quality.segments/_full.segment.rsc +5 -5
- package/.next/standalone/.next/server/app/quality.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/quality.segments/_index.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/quality.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/security.html +1 -1
- package/.next/standalone/.next/server/app/security.rsc +5 -5
- package/.next/standalone/.next/server/app/security.segments/!KG1haW4p/security/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/security.segments/!KG1haW4p/security.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/security.segments/!KG1haW4p.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/security.segments/_full.segment.rsc +5 -5
- package/.next/standalone/.next/server/app/security.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/security.segments/_index.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/security.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/skill-detail/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/skill-detail.html +1 -1
- package/.next/standalone/.next/server/app/skill-detail.rsc +4 -4
- package/.next/standalone/.next/server/app/skill-detail.segments/_full.segment.rsc +4 -4
- package/.next/standalone/.next/server/app/skill-detail.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/skill-detail.segments/_index.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/skill-detail.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/skill-detail.segments/skill-detail/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/skill-detail.segments/skill-detail.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/skill-eval/grayscale.html +2 -2
- package/.next/standalone/.next/server/app/skill-eval/grayscale.rsc +5 -5
- package/.next/standalone/.next/server/app/skill-eval/grayscale.segments/!KG1haW4p/skill-eval/grayscale/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/skill-eval/grayscale.segments/!KG1haW4p/skill-eval/grayscale.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/skill-eval/grayscale.segments/!KG1haW4p/skill-eval.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/skill-eval/grayscale.segments/!KG1haW4p.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/skill-eval/grayscale.segments/_full.segment.rsc +5 -5
- package/.next/standalone/.next/server/app/skill-eval/grayscale.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/skill-eval/grayscale.segments/_index.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/skill-eval/grayscale.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/skill-eval.html +1 -1
- package/.next/standalone/.next/server/app/skill-eval.rsc +5 -5
- package/.next/standalone/.next/server/app/skill-eval.segments/!KG1haW4p/skill-eval/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/skill-eval.segments/!KG1haW4p/skill-eval.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/skill-eval.segments/!KG1haW4p.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/skill-eval.segments/_full.segment.rsc +5 -5
- package/.next/standalone/.next/server/app/skill-eval.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/skill-eval.segments/_index.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/skill-eval.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/skill-generator.html +1 -1
- package/.next/standalone/.next/server/app/skill-generator.rsc +5 -5
- package/.next/standalone/.next/server/app/skill-generator.segments/!KG1haW4p/skill-generator/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/skill-generator.segments/!KG1haW4p/skill-generator.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/skill-generator.segments/!KG1haW4p.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/skill-generator.segments/_full.segment.rsc +5 -5
- package/.next/standalone/.next/server/app/skill-generator.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/skill-generator.segments/_index.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/skill-generator.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/skill-history.html +1 -1
- package/.next/standalone/.next/server/app/skill-history.rsc +5 -5
- package/.next/standalone/.next/server/app/skill-history.segments/!KG1haW4p/skill-history/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/skill-history.segments/!KG1haW4p/skill-history.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/skill-history.segments/!KG1haW4p.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/skill-history.segments/_full.segment.rsc +5 -5
- package/.next/standalone/.next/server/app/skill-history.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/skill-history.segments/_index.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/skill-history.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/skill-opt.html +1 -1
- package/.next/standalone/.next/server/app/skill-opt.rsc +5 -5
- package/.next/standalone/.next/server/app/skill-opt.segments/!KG1haW4p/skill-opt/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/skill-opt.segments/!KG1haW4p/skill-opt.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/skill-opt.segments/!KG1haW4p.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/skill-opt.segments/_full.segment.rsc +5 -5
- package/.next/standalone/.next/server/app/skill-opt.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/skill-opt.segments/_index.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/skill-opt.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/skill-release.html +1 -1
- package/.next/standalone/.next/server/app/skill-release.rsc +5 -5
- package/.next/standalone/.next/server/app/skill-release.segments/!KG1haW4p/skill-release/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/skill-release.segments/!KG1haW4p/skill-release.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/skill-release.segments/!KG1haW4p.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/skill-release.segments/_full.segment.rsc +5 -5
- package/.next/standalone/.next/server/app/skill-release.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/skill-release.segments/_index.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/skill-release.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/skills.html +1 -1
- package/.next/standalone/.next/server/app/skills.rsc +5 -5
- package/.next/standalone/.next/server/app/skills.segments/!KG1haW4p/skills/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/skills.segments/!KG1haW4p/skills.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/skills.segments/!KG1haW4p.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/skills.segments/_full.segment.rsc +5 -5
- package/.next/standalone/.next/server/app/skills.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/skills.segments/_index.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/skills.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/trace.html +1 -1
- package/.next/standalone/.next/server/app/trace.rsc +7 -7
- package/.next/standalone/.next/server/app/trace.segments/!KG1haW4p/trace/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/trace.segments/!KG1haW4p/trace.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/trace.segments/!KG1haW4p.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/trace.segments/_full.segment.rsc +7 -7
- package/.next/standalone/.next/server/app/trace.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/trace.segments/_index.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/trace.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/version-analysis.html +1 -1
- package/.next/standalone/.next/server/app/version-analysis.rsc +5 -5
- package/.next/standalone/.next/server/app/version-analysis.segments/!KG1haW4p/version-analysis/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/version-analysis.segments/!KG1haW4p/version-analysis.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/version-analysis.segments/!KG1haW4p.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/version-analysis.segments/_full.segment.rsc +5 -5
- package/.next/standalone/.next/server/app/version-analysis.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/version-analysis.segments/_index.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/version-analysis.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/version-management.html +1 -1
- package/.next/standalone/.next/server/app/version-management.rsc +5 -5
- package/.next/standalone/.next/server/app/version-management.segments/!KG1haW4p/version-management/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/version-management.segments/!KG1haW4p/version-management.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/version-management.segments/!KG1haW4p.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/version-management.segments/_full.segment.rsc +5 -5
- package/.next/standalone/.next/server/app/version-management.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/version-management.segments/_index.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/version-management.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__b0d1e6e5._.js +22 -0
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__8b872712._.js → [root-of-the-server]__c60fa3da._.js} +2 -2
- package/.next/standalone/.next/server/chunks/_0ce5f29d._.js +1 -1
- package/.next/standalone/.next/server/chunks/_0e34c123._.js +3 -3
- package/.next/standalone/.next/server/chunks/_5090183e._.js +1 -1
- package/.next/standalone/.next/server/chunks/_adf9e9c5._.js +1 -1
- package/.next/standalone/.next/server/chunks/_b172b746._.js +3 -3
- package/.next/standalone/.next/server/chunks/_cfa898f4._.js +1 -1
- package/.next/standalone/.next/server/chunks/_d02fac80._.js +1 -1
- package/.next/standalone/.next/server/chunks/src_lib_a2a34aa6._.js +1 -1
- package/.next/standalone/.next/server/chunks/src_lib_ea85a447._.js +1 -1
- package/.next/standalone/.next/server/chunks/src_lib_engine_general-agent_970b1dfe._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__143c2f65._.js → [root-of-the-server]__83687057._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__b8d3d1c3._.js +8 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__f82e551e._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_11388c48._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_32596a86._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/src_app_(main)_fault_page_tsx_96431a5d._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/src_app_(main)_metrics_page_tsx_f1599761._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/src_app_(main)_trace_page_tsx_41e7865d._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{src_lib_evaluators_7597c2fd._.js → src_lib_070bb60a._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/src_lib_client_locale-context_tsx_7184d9aa._.js +1 -1
- package/.next/standalone/.next/server/pages/404.html +1 -1
- package/.next/standalone/.next/server/pages/500.html +2 -2
- package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/server-reference-manifest.json +1 -1
- package/.next/standalone/.next/static/chunks/4d2c017f2f4c9160.css +1 -0
- package/.next/standalone/.next/static/chunks/5be4d965983c6b40.js +6 -0
- package/.next/standalone/.next/static/chunks/{04bc84975996b76d.js → 7884153c8f8649dd.js} +1 -1
- package/.next/{static/chunks/6b2552d3da7451ee.js → standalone/.next/static/chunks/85ce12a5c9536a2d.js} +1 -1
- package/.next/standalone/.next/static/chunks/913c61f4f0a12da4.js +1 -0
- package/.next/standalone/.next/static/chunks/{b5e671771efd9e7d.js → b11e37b43e38eb95.js} +1 -1
- package/.next/standalone/.next/static/chunks/cf0b4e5d7b804bf5.js +1 -0
- package/.next/standalone/.next/static/chunks/df6f2eedbe05162e.js +1 -0
- package/.next/standalone/.next/static/chunks/e0af9e5baf811284.js +4 -0
- package/.next/standalone/.next/static/chunks/f61ffd647f90b66c.js +1 -0
- package/.next/standalone/docker-compose.amd64.yml +2 -1
- package/.next/standalone/docker-compose.arm64.yml +11 -0
- package/.next/standalone/package.json +1 -1
- package/.next/static/chunks/4d2c017f2f4c9160.css +1 -0
- package/.next/static/chunks/5be4d965983c6b40.js +6 -0
- package/.next/static/chunks/{04bc84975996b76d.js → 7884153c8f8649dd.js} +1 -1
- package/.next/{standalone/.next/static/chunks/6b2552d3da7451ee.js → static/chunks/85ce12a5c9536a2d.js} +1 -1
- package/.next/static/chunks/913c61f4f0a12da4.js +1 -0
- package/.next/static/chunks/{b5e671771efd9e7d.js → b11e37b43e38eb95.js} +1 -1
- package/.next/static/chunks/cf0b4e5d7b804bf5.js +1 -0
- package/.next/static/chunks/df6f2eedbe05162e.js +1 -0
- package/.next/static/chunks/e0af9e5baf811284.js +4 -0
- package/.next/static/chunks/f61ffd647f90b66c.js +1 -0
- package/package.json +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__51f686fd._.js +0 -22
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__90686664._.js +0 -8
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__96628a39._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/node_modules_bda25b86._.js +0 -3
- package/.next/standalone/.next/static/chunks/0fe047909a490ef0.js +0 -1
- package/.next/standalone/.next/static/chunks/1cb2cee6b2f89fb7.js +0 -1
- package/.next/standalone/.next/static/chunks/25a9b2907e03a172.css +0 -1
- package/.next/standalone/.next/static/chunks/30a686796d86273c.js +0 -1
- package/.next/standalone/.next/static/chunks/4b72abe72a9b6cd9.js +0 -6
- package/.next/standalone/.next/static/chunks/6e6f2418240877c6.js +0 -1
- package/.next/standalone/.next/static/chunks/946d260668afc16b.js +0 -1
- package/.next/standalone/.next/static/chunks/efe225251ea151f0.js +0 -4
- package/.next/static/chunks/0fe047909a490ef0.js +0 -1
- package/.next/static/chunks/1cb2cee6b2f89fb7.js +0 -1
- package/.next/static/chunks/25a9b2907e03a172.css +0 -1
- package/.next/static/chunks/30a686796d86273c.js +0 -1
- package/.next/static/chunks/4b72abe72a9b6cd9.js +0 -6
- package/.next/static/chunks/6e6f2418240877c6.js +0 -1
- package/.next/static/chunks/946d260668afc16b.js +0 -1
- package/.next/static/chunks/efe225251ea151f0.js +0 -4
- /package/.next/standalone/.next/static/{VeFGnFbPjqrwSXp9h5AgX → pzAy0mrZCL0PmE4h3HDut}/_buildManifest.js +0 -0
- /package/.next/standalone/.next/static/{VeFGnFbPjqrwSXp9h5AgX → pzAy0mrZCL0PmE4h3HDut}/_clientMiddlewareManifest.json +0 -0
- /package/.next/standalone/.next/static/{VeFGnFbPjqrwSXp9h5AgX → pzAy0mrZCL0PmE4h3HDut}/_ssgManifest.js +0 -0
- /package/.next/static/{VeFGnFbPjqrwSXp9h5AgX → pzAy0mrZCL0PmE4h3HDut}/_buildManifest.js +0 -0
- /package/.next/static/{VeFGnFbPjqrwSXp9h5AgX → pzAy0mrZCL0PmE4h3HDut}/_clientMiddlewareManifest.json +0 -0
- /package/.next/static/{VeFGnFbPjqrwSXp9h5AgX → pzAy0mrZCL0PmE4h3HDut}/_ssgManifest.js +0 -0
package/.next/standalone/.next/server/chunks/ssr/src_app_(main)_metrics_page_tsx_f1599761._.js
CHANGED
|
@@ -4,6 +4,6 @@ module.exports=[503978,a=>{"use strict";var b=a.i(187924),c=a.i(50944),d=a.i(572
|
|
|
4
4
|
{{reference_output}}:预期输出
|
|
5
5
|
{{trajectory}}:trace 轨迹
|
|
6
6
|
|
|
7
|
-
这些字段都不是必填;目前仅支持以上四个变量。评估器最终需要输出 score 和 reason。`,q=()=>({name:"",description:"",systemPrompt:"",userPrompt:"",userPromptEnabled:!1});function r(){return{query:"",evaluatorTypes:[],targetTypes:[],objectives:[]}}function s(){return{nameQuery:"",creator:"all",typeFilter:""}}function t(a,b){return a.includes(b)?a.filter(a=>a!==b):[...a,b]}function u(){let{user:a}=(0,g.useAuth)(),e=(0,c.useRouter)(),[h,i]=(0,d.useState)([]),[p,u]=(0,d.useState)(!1),[B,F]=(0,d.useState)("custom"),[G,H]=(0,d.useState)(r),[I,J]=(0,d.useState)(s),[K,L]=(0,d.useState)(q),[M,N]=(0,d.useState)(null),[O,P]=(0,d.useState)("grid"),[Q,R]=(0,d.useState)(!0),[S,T]=(0,d.useState)(""),[U,V]=(0,d.useState)(null),[W,X]=(0,d.useState)(null);(0,d.useEffect)(()=>{a||(i([]),u(!1))},[a]),(0,d.useEffect)(()=>{if(!a)return;let b=!1;return(async()=>{try{let c=[],[d,e]=await Promise.allSettled([(0,f.apiFetch)(`/api/user-evaluators?user=${encodeURIComponent(a)}`),(0,f.apiFetch)(`/api/eval/settings?user=${encodeURIComponent(a)}`)]);if("fulfilled"===d.status&&d.value.ok)try{let a=await d.value.json();Array.isArray(a)&&(c=a)}catch{}if("fulfilled"===e.status&&e.value.ok)try{let a=await e.value.json(),c=a?.activeConfigId,d=Array.isArray(a?.configs)?a.configs:[],f=c?d.find(a=>a.id===c):null;b||X(f?{id:f.id,name:f.name||"(unnamed)",model:f.model||"(unknown)"}:null)}catch{}b||(i(c),u(!0))}catch(a){b||T(a instanceof Error?a.message:"评估器数据加载失败")}finally{b||R(!1)}})(),()=>{b=!0}},[a]),(0,d.useEffect)(()=>{if(!a||!p)return;let b=window.setTimeout(()=>{(0,f.apiFetch)("/api/user-evaluators",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({user:a,evaluators:h})}).catch(()=>{})},600);return()=>window.clearTimeout(b)},[a,p,h]);let Y=(0,d.useMemo)(()=>"preset"===B?k.presetEvaluators.filter(a=>{let b,c;return b=G.query.trim().toLowerCase(),c=`${a.name} ${a.description} ${a.mappedMetrics.join(" ")}`.toLowerCase(),(!b||!!c.includes(b))&&(!(G.evaluatorTypes.length>0)||!!G.evaluatorTypes.includes(a.evaluatorType))&&(!(G.targetTypes.length>0)||!!G.targetTypes.some(b=>a.targetTypes.includes(b)))&&(!(G.objectives.length>0)||!!G.objectives.some(b=>a.objectives.includes(b)))}):h.filter(b=>{let c,d;return c=I.nameQuery.trim().toLowerCase(),d=`${b.name} ${b.description} ${b.mappedMetrics.join(" ")}`.toLowerCase(),(!c||!!d.includes(c))&&(!I.typeFilter||b.evaluatorType===I.typeFilter)&&("mine"!==I.creator||!a||b.creator===a)}),[B,h,G,I,a]),Z=(0,d.useMemo)(()=>({presetCount:k.presetEvaluators.length,customCount:h.length,readyCount:h.filter(a=>"ready"===a.status).length}),[h]),$=()=>{L(q()),N("llm"),T("")},_=a=>{F(a),N(null),V(null)},aa=async b=>{if(!a||"custom"!==b.source||!globalThis.confirm(`确定删除评估器「${b.name}」?`))return;T("");let c=h.filter(a=>a.id!==b.id);i(c);try{let b=await (0,f.apiFetch)("/api/user-evaluators",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({user:a,evaluators:c})}),d=await b.json().catch(()=>({}));if(!b.ok||d?.success===!1)throw Error("删除失败")}catch(a){i(h),T(a instanceof Error?a.message:"删除失败")}};return Q?(0,b.jsx)("div",{className:"loading",children:"正在整理评估器视图..."}):(0,b.jsxs)("div",{style:{padding:"18px 22px 28px",maxWidth:1500,margin:"0 auto"},children:[S&&(0,b.jsx)("div",{className:"ai-card",style:{padding:12,color:"var(--error)",marginBottom:14},children:S}),(0,b.jsxs)("div",{style:{display:"flex",alignItems:"flex-start",justifyContent:"space-between",gap:16,marginBottom:10,flexWrap:"wrap"},children:[(0,b.jsxs)("div",{style:{minWidth:280,flex:1},children:[(0,b.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,marginBottom:6},children:[(0,b.jsx)("span",{className:"ai-badge ai-badge-b",children:"Evaluators"}),"preset"===B&&(0,b.jsx)("span",{style:{color:"var(--foreground-muted)",fontSize:11},children:"预置模板库"}),"custom"===B&&null===M&&(0,b.jsx)("span",{style:{color:"var(--foreground-muted)",fontSize:11},children:"自建评估方案"})]}),(0,b.jsx)("h1",{style:{margin:0,fontSize:22,lineHeight:1.2,fontWeight:600,color:"var(--foreground)"},children:"评估器"}),null===M&&(0,b.jsx)("p",{style:{margin:"6px 0 0",color:"var(--foreground-secondary)",fontSize:12.5,maxWidth:820},children:"custom"===B?"管理自建 LLM 评估器,配置会保存到服务端。点击卡片可进入详情编辑。":"预置评估器模板库:按类型与场景筛选,点击可查看详情与执行入口。"})]}),"preset"===B&&(0,b.jsx)("div",{style:{display:"flex",gap:8,alignItems:"center"},children:(0,b.jsx)("button",{type:"button",className:"ai-btn-s",onClick:()=>window.location.reload(),children:"刷新"})})]}),"preset"===B&&(0,b.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"repeat(3, minmax(160px, 1fr))",gap:10,marginBottom:14},children:[(0,b.jsx)(v,{label:"预置评估器",value:String(Z.presetCount),detail:"LLM 评估器模板"}),(0,b.jsx)(v,{label:"自建评估器",value:String(Z.customCount),detail:"已保存至账号"}),(0,b.jsx)(v,{label:"可用评估器",value:String(Z.readyCount),detail:"状态为已就绪"})]}),(0,b.jsxs)("div",{style:{borderBottom:"1px solid var(--border)",marginBottom:0,display:"flex",gap:2},children:[(0,b.jsx)(w,{active:"custom"===B,onClick:()=>_("custom"),children:"自建评估器"}),(0,b.jsx)(w,{active:"preset"===B,onClick:()=>_("preset"),children:"预置评估器"})]}),"custom"===B&&"llm"===M?(0,b.jsx)(C,{draft:K,onChange:L,onBack:()=>{N(null),L(q()),T("")},onSubmit:()=>{let b=K.name.trim();if(!b)return void T("请填写评估器名称");if(!(0,l.isValidCustomEvaluatorName)(b))return void T("名称会作为链路追踪中的 agent 名称:必须以英文字母开头,仅支持字母、数字、下划线、连字符");if(!K.systemPrompt.trim())return void T("请填写 System Prompt");let c=(0,l.findUnsupportedCustomEvaluatorVariables)(K.systemPrompt);if(c.length>0)return void T(`System Prompt 仅支持 {{input}}、{{output}}、{{reference_output}}、{{trajectory}},不支持:${c.map(a=>`{{${a}}}`).join("、")}`);let d={model:W?.model||"",systemPrompt:K.systemPrompt.trim(),userPrompt:K.userPrompt.trim()},e={id:`custom-${Date.now()}`,name:b,description:K.description.trim()||"自建 LLM 评估器。",evaluatorType:"LLM",source:"custom",targetTypes:["结果"],objectives:["任务完成","内容质量"],scenarios:["Agent通用评测"],runMode:"LLM Judge",scoreRange:"0-1",popularity:0,mappedMetrics:d.model?["LLM 评测",d.model]:["LLM 评测"],status:"draft",creator:a||void 0,llmConfig:d};i(a=>[e,...a]),N(null),L(q()),F("custom"),T("")}}):"custom"===B?(0,b.jsxs)("div",{style:{paddingTop:16},children:[(0,b.jsxs)("div",{style:{display:"flex",flexWrap:"wrap",alignItems:"center",gap:10,marginBottom:16,justifyContent:"space-between"},children:[(0,b.jsxs)("div",{style:{display:"flex",flexWrap:"wrap",gap:10,flex:1,minWidth:280},children:[(0,b.jsx)("input",{value:I.nameQuery,onChange:a=>J(b=>({...b,nameQuery:a.target.value})),placeholder:"搜索名称",style:{minWidth:160,flex:"1 1 160px",maxWidth:280,height:34,borderRadius:8,border:"1px solid var(--input-border)",background:"var(--input-bg)",color:"var(--foreground)",padding:"0 12px",fontSize:12.5}}),(0,b.jsxs)("select",{value:I.typeFilter,onChange:a=>J(b=>({...b,typeFilter:a.target.value})),style:{height:34,borderRadius:8,border:"1px solid var(--input-border)",background:"var(--input-bg)",color:"var(--foreground)",padding:"0 10px",fontSize:12.5,minWidth:140},children:[(0,b.jsx)("option",{value:"",children:"请选择类型"}),(0,b.jsx)("option",{value:"LLM",children:"LLM"})]})]}),(0,b.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8},children:[(0,b.jsx)("button",{type:"button",className:"ai-btn-s",title:"刷新",onClick:()=>window.location.reload(),children:"↻"}),(0,b.jsx)("button",{type:"button",className:"ai-btn-s",title:"grid"===O?"切换列表":"切换网格",onClick:()=>P(a=>"grid"===a?"list":"grid"),children:"grid"===O?"≡":"⊞"}),(0,b.jsx)("button",{type:"button",className:"ai-btn-p",onClick:$,children:"+ 新建评估器"})]})]}),0===Y.length?(0,b.jsx)(E,{onCreateLlm:$}):"grid"===O?(0,b.jsx)("div",{style:{display:"grid",gridTemplateColumns:"repeat(2, minmax(320px, 1fr))",gap:12},children:Y.map(a=>(0,b.jsx)(z,{card:a,activeTab:B,activeModel:W,onModelConfigClick:()=>e.push("/modelconfig/defaults"),onDeleteCustom:aa},a.id))}):(0,b.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:8},children:Y.map(a=>(0,b.jsx)(A,{card:a,onOpen:()=>e.push(`/metrics/evaluators/${encodeURIComponent(a.id)}`),onDeleteCustom:aa},a.id))})]}):(0,b.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"300px minmax(0, 1fr)",minHeight:620},children:[(0,b.jsxs)("aside",{style:{borderRight:"1px solid var(--border)",padding:"16px 18px 16px 0"},children:[(0,b.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:14},children:[(0,b.jsx)("div",{className:"ai-section-title",children:"评估器筛选"}),(0,b.jsx)("button",{type:"button",className:"ai-btn-s",onClick:()=>H(r()),children:"清空"})]}),(0,b.jsx)(x,{title:"类型",options:m,values:G.evaluatorTypes,onToggle:a=>H(b=>({...b,evaluatorTypes:t(b.evaluatorTypes,a)}))}),(0,b.jsx)(x,{title:"场景",options:n,values:G.targetTypes,onToggle:a=>H(b=>({...b,targetTypes:t(b.targetTypes,a)}))}),(0,b.jsx)(x,{title:"评估目标",options:o,values:G.objectives,onToggle:a=>H(b=>({...b,objectives:t(b.objectives,a)}))})]}),(0,b.jsxs)("main",{style:{padding:16},children:[(0,b.jsx)("div",{style:{marginBottom:14},children:(0,b.jsx)("input",{value:G.query,onChange:a=>H(b=>({...b,query:a.target.value})),placeholder:"搜索评估器名称、说明或指标",style:{width:"100%",height:34,borderRadius:8,border:"1px solid var(--input-border)",background:"var(--input-bg)",color:"var(--foreground)",padding:"0 12px",fontSize:12.5}})}),0===Y.length?(0,b.jsx)(D,{}):(0,b.jsx)("div",{style:{display:"grid",gridTemplateColumns:"repeat(2, minmax(320px, 1fr))",gap:12},children:Y.map(a=>(0,b.jsx)(z,{card:a,activeTab:B,onInspectPreset:V,activeModel:W,onModelConfigClick:()=>e.push("/modelconfig/defaults"),onDeleteCustom:aa},a.id))})]})]}),U&&j[U.id]?(0,b.jsx)(y,{card:U,detail:j[U.id],onClose:()=>V(null)}):null]})}function v({label:a,value:c,detail:d}){return(0,b.jsxs)("div",{className:"ai-stat",style:{minHeight:74},children:[(0,b.jsx)("div",{className:"ai-stat-lbl",children:a}),(0,b.jsx)("div",{className:"ai-stat-val",children:c}),(0,b.jsx)("div",{className:"ai-stat-d",style:{color:"var(--foreground-muted)"},children:d})]})}function w({active:a,children:c,onClick:d}){return(0,b.jsx)("button",{type:"button",onClick:d,style:{height:36,padding:"0 16px",border:"1px solid var(--border)",borderBottom:a?"2px solid var(--primary)":"1px solid var(--border)",background:a?"var(--background)":"var(--background-secondary)",color:a?"var(--primary)":"var(--foreground)",fontWeight:a?600:400,cursor:"pointer",borderRadius:"7px 7px 0 0",marginBottom:-1},children:c})}function x({title:a,options:c,values:d,onToggle:e}){return(0,b.jsxs)("div",{style:{marginBottom:18},children:[(0,b.jsx)("div",{style:{color:"var(--foreground-secondary)",fontSize:12,marginBottom:9},children:a}),(0,b.jsx)("div",{style:{display:"flex",flexWrap:"wrap",gap:8},children:c.map(a=>{let c=d.includes(a);return(0,b.jsx)("button",{type:"button",onClick:()=>e(a),style:{minHeight:34,padding:"0 16px",borderRadius:8,border:`1px solid ${c?"var(--primary-subtle-border)":"var(--border)"}`,background:c?"var(--primary-subtle)":"var(--background)",color:c?"var(--primary)":"var(--foreground-secondary)",cursor:"pointer",fontSize:12.5},children:a},a)})})]})}function y({card:a,detail:c,onClose:e}){(0,d.useEffect)(()=>{let a=a=>{"Escape"===a.key&&e()};return window.addEventListener("keydown",a),()=>window.removeEventListener("keydown",a)},[e]);let f=c.systemPrompt??"";async function g(){try{f&&await navigator.clipboard.writeText(f)}catch{}}let h=[...c.mediaTags??[],a.evaluatorType,...a.objectives.slice(0,2),...a.scenarios.slice(0,1)];return(0,b.jsx)("div",{role:"dialog","aria-modal":"true","aria-labelledby":"preset-inspect-title",style:{position:"fixed",inset:0,zIndex:100,display:"flex",alignItems:"flex-start",justifyContent:"center",padding:"24px 16px",overflowY:"auto",background:"rgba(0,0,0,0.45)"},onClick:e,children:(0,b.jsxs)("div",{className:"ai-card",style:{width:"100%",maxWidth:720,marginTop:12,marginBottom:40,padding:22,position:"relative",maxHeight:"92vh",overflowY:"auto",boxShadow:"var(--shadow)"},onClick:a=>a.stopPropagation(),children:[(0,b.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"flex-start",gap:12,marginBottom:16},children:[(0,b.jsx)("h2",{id:"preset-inspect-title",style:{margin:0,fontSize:18,fontWeight:650,color:"var(--foreground)"},children:a.name}),(0,b.jsx)("button",{type:"button",className:"ai-btn-s","aria-label":"关闭",onClick:e,children:"×"})]}),(0,b.jsx)("div",{style:{display:"flex",flexWrap:"wrap",gap:6,marginBottom:14},children:h.map((a,c)=>(0,b.jsx)("span",{style:{background:"var(--background-tertiary)",color:"var(--foreground-secondary)",borderRadius:6,padding:"4px 9px",fontSize:11},children:a},`${a}-${c}`))}),(0,b.jsxs)("section",{style:{marginBottom:18},children:[(0,b.jsx)("div",{style:{fontSize:12.5,fontWeight:600,marginBottom:8,color:"var(--foreground)"},children:"应用场景"}),(0,b.jsx)("p",{style:{margin:0,fontSize:13,lineHeight:1.65,color:"var(--foreground-secondary)"},children:c.applicationScenario})]}),"llm"===c.kind&&f?(0,b.jsxs)("section",{style:{marginBottom:18},children:[(0,b.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:8},children:[(0,b.jsx)("span",{style:{fontSize:12.5,fontWeight:600,color:"var(--foreground)"},children:"Prompt"}),(0,b.jsx)("button",{type:"button",className:"ai-btn-s",onClick:()=>g(),children:"复制 System"})]}),(0,b.jsxs)("div",{style:{border:"1px solid var(--border)",borderRadius:8,background:"var(--background-secondary)",padding:"12px 14px"},children:[(0,b.jsx)("div",{style:{fontSize:11,color:"var(--foreground-muted)",marginBottom:8},children:"System"}),(0,b.jsx)("pre",{style:{margin:0,whiteSpace:"pre-wrap",wordBreak:"break-word",fontSize:12.5,lineHeight:1.55,color:"var(--foreground)",fontFamily:"ui-monospace, monospace"},children:f})]}),(c.variables?.length??0)>0?(0,b.jsxs)("div",{style:{marginTop:12},children:[(0,b.jsx)("div",{style:{fontSize:12,fontWeight:600,marginBottom:6,color:"var(--foreground)"},children:"Variables"}),(0,b.jsx)("div",{style:{display:"flex",flexWrap:"wrap",gap:8},children:c.variables.map(a=>(0,b.jsx)("code",{style:{fontSize:12,padding:"4px 8px",borderRadius:6,background:"var(--background-tertiary)",color:"var(--primary)"},children:`{{${a}}}`},a))})]}):null]}):null,("code"===c.kind||"rpc"===c.kind)&&(0,b.jsxs)("section",{style:{marginBottom:18},children:[(0,b.jsx)("div",{style:{fontSize:12.5,fontWeight:600,marginBottom:8,color:"var(--foreground)"},children:"code"===c.kind?"规则 / 脚本说明":"RPC 契约"}),c.implementationNote?(0,b.jsx)("p",{style:{margin:"0 0 12px",fontSize:13,lineHeight:1.65,color:"var(--foreground-secondary)"},children:c.implementationNote}):null,c.codeOrContractExample?(0,b.jsx)("pre",{style:{margin:0,padding:"12px 14px",borderRadius:8,border:"1px solid var(--border)",background:"var(--input-bg)",fontSize:12,lineHeight:1.45,overflowX:"auto",whiteSpace:"pre-wrap",wordBreak:"break-word",fontFamily:"ui-monospace, monospace"},children:c.codeOrContractExample}):null]}),(0,b.jsxs)("section",{style:{marginBottom:18,padding:14,borderRadius:8,background:"var(--background-secondary)",border:"1px solid var(--border)"},children:[(0,b.jsx)("div",{style:{display:"flex",alignItems:"center",gap:6,marginBottom:10},children:(0,b.jsx)("span",{style:{fontSize:12.5,fontWeight:600},children:"输出"})}),(0,b.jsxs)("p",{style:{margin:"0 0 10px",fontSize:12.5,lineHeight:1.65,color:"var(--foreground-secondary)"},children:[(0,b.jsx)("strong",{style:{color:"var(--foreground)"},children:"得分:"}),c.outputScoreText]}),(0,b.jsxs)("p",{style:{margin:0,fontSize:12.5,lineHeight:1.65,color:"var(--foreground-secondary)"},children:[(0,b.jsx)("strong",{style:{color:"var(--foreground)"},children:"原因:"}),c.outputReasonText]})]}),(0,b.jsx)("div",{style:{display:"flex",gap:8,justifyContent:"flex-end",flexWrap:"wrap"},children:(0,b.jsx)("button",{type:"button",className:"ai-btn-s",onClick:e,children:"关闭"})})]})})}function z({card:a,activeTab:d,onInspectPreset:e,activeModel:f,onModelConfigClick:g,onDeleteCustom:h}){let i=(0,c.useRouter)(),k="preset"===a.source&&!!j[a.id],l=()=>{"preset"===d&&k&&e?.(a)},m=()=>{"custom"===d&&i.push(`/metrics/evaluators/${encodeURIComponent(a.id)}`)},n="preset"===d&&k||"custom"===d;return(0,b.jsxs)("article",{className:"ai-card",role:n?"button":void 0,tabIndex:n?0:void 0,onClick:a=>{a.target.closest("button")||("preset"===d&&k?l():"custom"===d&&m())},onKeyDown:a=>{n&&("Enter"===a.key||" "===a.key)&&(a.preventDefault(),"preset"===d&&k?l():"custom"===d&&m())},style:{padding:16,minHeight:176,display:"flex",flexDirection:"column",gap:12,cursor:n?"pointer":void 0},children:[(0,b.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",gap:10},children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("h3",{style:{margin:0,color:"var(--foreground)",fontSize:15.5,fontWeight:600},children:a.name}),(0,b.jsx)("p",{style:{margin:"8px 0 0",color:"var(--foreground-secondary)",fontSize:12.5,lineHeight:1.6},children:a.description}),"preset"===d&&k?(0,b.jsx)("p",{style:{margin:"4px 0 0",fontSize:11,color:"var(--foreground-muted)"},children:"点击查看详情"}):null,"custom"===d?(0,b.jsx)("p",{style:{margin:"4px 0 0",fontSize:11,color:"var(--foreground-muted)"},children:"点击查看或编辑"}):null]}),(0,b.jsx)("span",{className:`ai-badge ${"Code"===a.evaluatorType?"ai-badge-b":"Custom RPC"===a.evaluatorType?"ai-badge-g":"ai-badge-gr"}`,style:{height:22,whiteSpace:"nowrap"},children:a.evaluatorType})]}),(0,b.jsx)("div",{style:{display:"flex",flexWrap:"wrap",gap:6},children:[a.runMode,...a.targetTypes,...a.objectives,...a.scenarios.slice(0,2)].map(a=>(0,b.jsx)("span",{style:{background:"var(--background-tertiary)",color:"var(--foreground-secondary)",borderRadius:4,padding:"3px 7px",fontSize:11},children:a},a))}),(0,b.jsx)("div",{style:{marginTop:"auto"},children:(0,b.jsx)(B,{label:"评分",value:a.scoreRange})}),a.runtimeHref?(0,b.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,padding:"6px 8px",background:"var(--background-secondary)",border:"1px solid var(--border)",borderRadius:6,fontSize:11},onClick:a=>a.stopPropagation(),children:[(0,b.jsx)("span",{style:{color:"var(--foreground-muted)"},children:"运行模型:"}),f?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("span",{style:{fontWeight:600,color:"var(--foreground)"},children:f.name}),(0,b.jsxs)("span",{style:{color:"var(--foreground-muted)",fontFamily:"monospace"},children:["· ",f.model]}),(0,b.jsx)("span",{style:{color:"var(--foreground-muted)"},children:"(来自全局默认)"})]}):(0,b.jsx)("span",{style:{color:"var(--error)",fontWeight:500},children:"未配置"}),(0,b.jsx)("span",{style:{flex:1}}),g?(0,b.jsx)("button",{type:"button",className:"ai-btn-s",style:{fontSize:10.5,padding:"2px 8px"},onClick:a=>{a.stopPropagation(),g()},children:f?"修改":"去配置"}):null]}):null,(0,b.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",gap:8,alignItems:"center"},children:[(0,b.jsx)("div",{style:{display:"flex",alignItems:"center",gap:6,flexWrap:"wrap"},children:(0,b.jsx)("span",{className:`ai-badge ${"ready"===a.status?"ai-badge-g":"draft"===a.status?"ai-badge-gr":"ai-badge-b"}`,children:"ready"===a.status?"已就绪":"draft"===a.status?"草稿":"预置"})}),(0,b.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6},children:["custom"===d&&h?(0,b.jsx)("button",{type:"button",className:"ai-btn-s",style:{color:"var(--error)"},onClick:b=>{b.stopPropagation(),h(a)},children:"删除"}):null,a.runtimeHref?(0,b.jsx)("button",{type:"button",className:"ai-btn-sp",onClick:b=>{b.stopPropagation();let c=new URL(a.runtimeHref,window.location.origin);c.searchParams.set("evaluatorId",a.id),i.push(c.pathname+c.search)},style:{whiteSpace:"nowrap"},children:"前往评测执行 →"}):null]})]})]})}function A({card:a,onOpen:c,onDeleteCustom:d}){return(0,b.jsxs)("div",{className:"ai-card",role:"button",tabIndex:0,onClick:c,onKeyDown:a=>{("Enter"===a.key||" "===a.key)&&(a.preventDefault(),c())},style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:12,padding:"12px 14px",flexWrap:"wrap",cursor:"pointer"},children:[(0,b.jsxs)("div",{style:{minWidth:200,flex:1},children:[(0,b.jsx)("div",{style:{fontWeight:600,color:"var(--foreground)"},children:a.name}),(0,b.jsx)("div",{style:{fontSize:12,color:"var(--foreground-muted)",marginTop:4},children:a.description})]}),(0,b.jsx)("span",{className:`ai-badge ${"Code"===a.evaluatorType?"ai-badge-b":"Custom RPC"===a.evaluatorType?"ai-badge-g":"ai-badge-gr"}`,children:a.evaluatorType}),(0,b.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8},children:[(0,b.jsx)("span",{className:`ai-badge ${"ready"===a.status?"ai-badge-g":"draft"===a.status?"ai-badge-gr":"ai-badge-b"}`,children:"ready"===a.status?"已就绪":"draft"===a.status?"草稿":"预置"}),"custom"===a.source&&d?(0,b.jsx)("button",{type:"button",className:"ai-btn-s",style:{color:"var(--error)"},onClick:b=>{b.stopPropagation(),d(a)},children:"删除"}):null]})]})}function B({label:a,value:c}){return(0,b.jsxs)("div",{style:{border:"1px solid var(--border)",background:"var(--background-secondary)",borderRadius:7,padding:8},children:[(0,b.jsx)("div",{style:{color:"var(--foreground-muted)",fontSize:11,marginBottom:3},children:a}),(0,b.jsx)("div",{style:{color:"var(--foreground)",fontSize:12.5,fontWeight:500},children:c})]})}function C({draft:a,onChange:c,onBack:d,onSubmit:f}){return(0,b.jsxs)("div",{style:{paddingTop:20,maxWidth:800},children:[(0,b.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:12,marginBottom:24},children:[(0,b.jsx)("button",{type:"button",className:"ai-btn-s",onClick:d,"aria-label":"返回",style:{minWidth:36,padding:"6px 10px"},children:"←"}),(0,b.jsx)("h2",{style:{margin:0,fontSize:18,fontWeight:600,color:"var(--foreground)"},children:"新建评估器"})]}),(0,b.jsxs)("section",{style:{marginBottom:28},children:[(0,b.jsx)("div",{className:"ai-section-title",style:{marginBottom:14},children:"基础信息"}),(0,b.jsxs)("label",{style:{display:"flex",flexDirection:"column",gap:6,marginBottom:14},children:[(0,b.jsxs)("span",{style:{fontSize:12,fontWeight:600,color:"var(--foreground)"},children:[(0,b.jsx)("span",{style:{color:"var(--error)"},children:"* "}),"名称"]}),(0,b.jsx)("input",{value:a.name,maxLength:50,onChange:b=>c({...a,name:b.target.value}),placeholder:"例如 custom_eval_agent",style:{height:36,borderRadius:8,border:"1px solid var(--input-border)",background:"var(--input-bg)",color:"var(--foreground)",padding:"0 12px",fontSize:13}}),(0,b.jsx)("span",{style:{fontSize:11,color:"var(--foreground-muted)"},children:"名称会作为链路追踪中的 agent 名称,仅支持英文、数字、下划线、连字符,且必须以英文字母开头。"}),(0,b.jsxs)("span",{style:{fontSize:11,color:"var(--foreground-muted)",textAlign:"right"},children:[a.name.length,"/50"]})]}),(0,b.jsxs)("label",{style:{display:"flex",flexDirection:"column",gap:6},children:[(0,b.jsx)("span",{style:{fontSize:12,fontWeight:600,color:"var(--foreground)"},children:"描述"}),(0,b.jsx)("textarea",{value:a.description,maxLength:200,onChange:b=>c({...a,description:b.target.value}),placeholder:"请输入描述",rows:3,style:{borderRadius:8,border:"1px solid var(--input-border)",background:"var(--input-bg)",color:"var(--foreground)",padding:"10px 12px",fontSize:13,resize:"vertical"}}),(0,b.jsxs)("span",{style:{fontSize:11,color:"var(--foreground-muted)",textAlign:"right"},children:[a.description.length,"/200"]})]})]}),(0,b.jsxs)("section",{style:{marginBottom:28},children:[(0,b.jsx)("div",{className:"ai-section-title",style:{marginBottom:14},children:"配置信息"}),(0,b.jsxs)("label",{style:{display:"flex",flexDirection:"column",gap:6,marginBottom:16},children:[(0,b.jsxs)("span",{style:{fontSize:12,fontWeight:600,color:"var(--foreground)"},children:[(0,b.jsx)("span",{style:{color:"var(--error)"},children:"* "}),"Prompt · System"]}),(0,b.jsx)("textarea",{value:a.systemPrompt,onChange:b=>c({...a,systemPrompt:b.target.value}),placeholder:p,rows:12,style:{borderRadius:8,border:"1px solid var(--input-border)",background:"var(--input-bg)",color:"var(--foreground)",padding:"12px",fontSize:12.5,lineHeight:1.55,fontFamily:"var(--font-mono, ui-monospace, monospace)",resize:"vertical"}})]}),(0,b.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:6},children:[(0,b.jsx)("span",{style:{fontSize:12,fontWeight:600,color:"var(--foreground)"},children:"User Prompt"}),a.userPromptEnabled?(0,b.jsxs)("div",{style:{border:"1px solid var(--input-border)",borderRadius:10,overflow:"hidden",background:"var(--background)"},children:[(0,b.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:10,padding:"10px 14px",borderBottom:"1px solid var(--border)",background:"color-mix(in srgb, var(--foreground) 2%, var(--background))"},children:[(0,b.jsx)("span",{style:{fontSize:12,fontWeight:600,color:"var(--foreground-muted)",letterSpacing:"0.04em"},children:"User"}),(0,b.jsx)("button",{type:"button",className:"ai-btn-s",style:{border:"none",background:"transparent",padding:0,color:"var(--foreground-muted)"},onClick:()=>c({...a,userPrompt:"",userPromptEnabled:!1}),children:"清空"})]}),(0,b.jsx)("textarea",{value:a.userPrompt,onChange:b=>c({...a,userPrompt:b.target.value}),placeholder:"请输入可选的 user prompt",rows:4,style:{width:"100%",border:"none",outline:"none",background:"transparent",color:"var(--foreground)",padding:"12px 14px",fontSize:12.5,lineHeight:1.6,resize:"vertical",boxSizing:"border-box"}})]}):(0,b.jsx)("button",{type:"button",className:"ai-btn-s",style:{width:"100%",minHeight:44,border:"1px dashed var(--input-border)",borderRadius:10,background:"color-mix(in srgb, var(--foreground) 4%, var(--background))",color:"var(--foreground-secondary)",fontSize:13,fontWeight:600},onClick:()=>c({...a,userPromptEnabled:!0}),children:"+ 添加 User Prompt"})]})]}),(0,b.jsxs)("section",{style:{marginBottom:28,padding:14,borderRadius:8,background:"var(--background-secondary)",border:"1px solid var(--border)"},children:[(0,b.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,marginBottom:10},children:[(0,b.jsx)("span",{className:"ai-section-title",style:{margin:0},children:"输出"}),(0,b.jsx)("span",{title:"评测模型须遵守的输出约定","aria-label":"评测模型须遵守的输出约定",style:{cursor:"help",color:"var(--foreground-muted)",display:"inline-flex",alignItems:"center"},children:(0,b.jsx)(e.Info,{style:{width:16,height:16},"aria-hidden":!0})})]}),(0,b.jsxs)("p",{style:{margin:"0 0 10px",fontSize:12.5,color:"var(--foreground-secondary)",lineHeight:1.65},children:[(0,b.jsx)("strong",{style:{color:"var(--foreground)"},children:"得分:"}),"最终须给出 0.0~1.0 的数值型分数:1.0 表示完全符合标准,0.0 表示完全不符合。"]}),(0,b.jsxs)("p",{style:{margin:0,fontSize:12.5,color:"var(--foreground-secondary)",lineHeight:1.65},children:[(0,b.jsx)("strong",{style:{color:"var(--foreground)"},children:"原因:"}),"须提供可读的中文说明,并以固定收束句式结尾:",(0,b.jsx)("code",{style:{fontSize:12},children:"因此,应该给出[分数]是合理的评分"}),"。"]})]}),(0,b.jsxs)("div",{style:{display:"flex",gap:10,justifyContent:"flex-end"},children:[(0,b.jsx)("button",{type:"button",className:"ai-btn-s",onClick:d,children:"取消"}),(0,b.jsx)("button",{type:"button",className:"ai-btn-p",onClick:f,children:"创建"})]})]})}function D(){return(0,b.jsxs)("div",{style:{border:"1px dashed var(--border-dark)",borderRadius:8,padding:28,textAlign:"center",background:"var(--background-secondary)"},children:[(0,b.jsx)("div",{style:{color:"var(--foreground)",fontWeight:500,marginBottom:6},children:"没有匹配的评估器"}),(0,b.jsx)("div",{style:{color:"var(--foreground-muted)",fontSize:12},children:"调整筛选条件,或在「自建评估器」中新建。"})]})}function E({onCreateLlm:a}){return(0,b.jsxs)("div",{style:{border:"1px dashed var(--border-dark)",borderRadius:8,padding:"48px 28px",textAlign:"center",background:"var(--background-secondary)"},children:[(0,b.jsx)("div",{style:{color:"var(--foreground)",fontWeight:500,marginBottom:8,fontSize:15},children:"暂无自建评估器"}),(0,b.jsx)("div",{style:{color:"var(--foreground-muted)",fontSize:12.5,marginBottom:18},children:"点击右上角「+ 新建评估器」开始配置 LLM 评估器。"}),(0,b.jsx)("div",{style:{display:"flex",gap:10,justifyContent:"center",flexWrap:"wrap"},children:(0,b.jsx)("button",{type:"button",className:"ai-btn-p",onClick:a,children:"新建 LLM 评估器"})})]})}var F=a.i(729936),G=a.i(238246),H=a.i(106927);let I=process.env.NEXT_PUBLIC_URL_PREFIX||"";function J({taskId:a}){var c;let{user:e}=(0,g.useAuth)(),{locale:h}=(0,H.useLocale)(),[i,j]=(0,d.useState)(null),[k,l]=(0,d.useState)("loading");(0,d.useEffect)(()=>{e&&a&&(l("loading"),(0,f.apiFetch)(`/api/observe/data?user=${encodeURIComponent(e)}&taskId=${encodeURIComponent(a)}`).then(a=>a.ok?a.json():Promise.reject("http")).then(a=>{Array.isArray(a)&&a.length>0?(j(a[0]),l("ready")):l("notfound")}).catch(()=>l("error")))},[e,a]);let m=(0,d.useMemo)(()=>i?.judgment_reason?function(a){let b=[];if(!a)return b;let c=a.split("\n"),d={rc:0,ka:0};for(let a of c){let c=a.match(/\*\*Root Cause\*\*\s*\[(.*?)\]\s*.*?:\s*(\d+)%\s*match\.\s*(.+?)\s*\(Weight:\s*([\d.]+)\)/);if(c){b.push({id:`RC-${d.rc++}`,type:"root_cause",content:c[1].replace(/\.{3}$/,""),match_score:parseInt(c[2])/100,explanation:c[3].trim(),weight:parseFloat(c[4])});continue}let e=a.match(/\*\*Key Action\*\*\s*\[(.*?)\]\s*.*?:\s*(\d+)%\s*match\.\s*(.+?)\s*\(Weight:\s*([\d.]+)\)/);if(e){b.push({id:`KA-${d.ka++}`,type:"key_action",content:e[1].replace(/\.{3}$/,""),match_score:parseInt(e[2])/100,explanation:e[3].trim(),weight:parseFloat(e[4])});continue}let f=a.match(/\*\*Key Action\*\*\s*\[(.*?)\]\s*.*?:\s*(\d+)%\s*match\.\s*(.+?)\s*\(该分支未触发,不计入总分\)/);f&&b.push({id:`KA-${d.ka++}`,type:"key_action",content:f[1].replace(/\.{3}$/,""),match_score:parseInt(f[2])/100,explanation:f[3].trim(),weight:0})}return b}(i.judgment_reason):[],[i?.judgment_reason]);if("loading"===k)return(0,b.jsx)(K,{msg:"zh"===h?"正在加载执行数据…":"Loading execution…"});if("error"===k)return(0,b.jsx)(K,{msg:"zh"===h?"加载失败":"Load failed",tone:"error"});if("notfound"===k||!i)return(0,b.jsx)(K,{msg:"zh"===h?`没有找到 taskId=${a} 的执行记录`:`No execution found for taskId=${a}`,tone:"warn"});let n=i.is_evaluating||"结果评估中..."===i.judgment_reason||"Evaluation in progress..."===i.judgment_reason,o=!n&&!0===i.is_answer_correct,p=!n&&!1===i.is_answer_correct,q="number"==typeof i.answer_score?Math.round(100*i.answer_score):null,r=(i.invoked_skills?.length??0)||(i.skills?.length??0)||+!!i.skill,s="number"==typeof i.skill_trigger_rate?Math.round(100*i.skill_trigger_rate):null;return(0,b.jsxs)("div",{style:{padding:"20px 22px",maxWidth:1180,margin:"0 auto"},children:[(0,b.jsxs)("div",{style:{background:"var(--card-bg)",border:"1px solid var(--card-border)",borderRadius:10,padding:"14px 18px",marginBottom:14,display:"flex",alignItems:"center",gap:14},children:[(0,b.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,b.jsxs)("div",{style:{fontSize:10.5,color:"var(--foreground-muted)",fontFamily:"var(--font-mono)",marginBottom:4},children:[a,i.timestamp&&(0,b.jsxs)("span",{children:[" · ",new Date(i.timestamp).toLocaleString()]})]}),(0,b.jsx)("div",{style:{fontSize:13.5,fontWeight:500,color:"var(--foreground)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:i.query||("zh"===h?"(无问题)":"(no query)")})]}),(0,b.jsx)(G.default,{href:`${I}/skill-eval?taskId=${a}`,className:"ai-btn-s",style:{textDecoration:"none",fontSize:11,flexShrink:0},children:"zh"===h?"调测分析 ↗":"Skill diagnosis ↗"})]}),(0,b.jsxs)("div",{style:{display:"flex",flexWrap:"wrap",gap:12,marginBottom:12,fontSize:11.5,color:"var(--foreground-secondary)"},children:[(0,b.jsx)(M,{label:"zh"===h?"平台":"Platform",value:i.framework||"-"}),(0,b.jsx)(M,{label:"zh"===h?"模型":"Model",value:i.model||"-"}),(0,b.jsx)(M,{label:"zh"===h?"状态":"Status",value:n?"zh"===h?"运行中":"Running":o?"zh"===h?"成功":"Success":p?"zh"===h?"失败":"Failed":"zh"===h?"未评测":"Unjudged",valueColor:n?"var(--primary)":o?"var(--success)":p?"var(--error)":"var(--foreground-muted)"}),i.label&&(0,b.jsx)(M,{label:"zh"===h?"标签":"Tag",value:i.label})]}),(0,b.jsx)(L,{text:"zh"===h?"质量指标":"Quality metrics"}),(0,b.jsxs)("div",{style:Q,children:[(0,b.jsx)(N,{label:"zh"===h?"准确率":"Accuracy",value:null!==q?`${q}%`:"--",tone:null===q?"muted":q>=80?"green":q>=50?"amber":"red"}),(0,b.jsx)(N,{label:"zh"===h?"技能召回率":"Skill Recall",value:null!==s?`${s}%`:"--",tone:null===s?"muted":s>=80?"green":s>=50?"amber":"red"}),(0,b.jsx)(N,{label:"zh"===h?"调用 Skill 数":"Skills used",value:String(r)}),(0,b.jsx)(N,{label:"zh"===h?"Skill 是否命中":"Skill correct",value:!0===i.is_skill_correct?"✓":!1===i.is_skill_correct?"✗":"--",tone:!0===i.is_skill_correct?"green":!1===i.is_skill_correct?"red":"muted"})]}),(0,b.jsx)(L,{text:"zh"===h?"性能指标":"Performance metrics"}),(0,b.jsxs)("div",{style:Q,children:[(0,b.jsx)(N,{label:"zh"===h?"延迟":"Latency",value:(c=function(a,b){if(null==a)return;let c=(b||"").toLowerCase();return("opencode"===c||"openhands"===c||"claude"===c)&&a>0&&a<1e3?1e3*a:a}(i.latency,i.framework))&&Number.isFinite(c)?c<1e3?`${Math.round(c)}ms`:c<6e4?`${(c/1e3).toFixed(2)}s`:`${(c/6e4).toFixed(1)}m`:"-"}),(0,b.jsx)(N,{label:"zh"===h?"总 Token":"Total tokens",value:R(i.tokens)}),(0,b.jsx)(N,{label:"zh"===h?"成本":"Cost",value:"number"==typeof i.cost&&i.cost>0?`$${i.cost.toFixed(4)}`:"--"}),(0,b.jsx)(N,{label:"zh"===h?"LLM 调用":"LLM calls",value:R(i.llm_call_count)}),(0,b.jsx)(N,{label:"zh"===h?"工具调用":"Tool calls",value:R(i.tool_call_count)}),(0,b.jsx)(N,{label:"zh"===h?"工具错误":"Tool errors",value:R(i.tool_call_error_count),tone:(i.tool_call_error_count??0)>0?"red":"muted"})]}),(i.input_tokens||i.output_tokens)&&(0,b.jsxs)("div",{style:{display:"flex",gap:16,fontSize:11,color:"var(--foreground-muted)",marginTop:8},children:[null!=i.input_tokens&&(0,b.jsxs)("span",{children:["Input: ",R(i.input_tokens)]}),null!=i.output_tokens&&(0,b.jsxs)("span",{children:["Output: ",R(i.output_tokens)]})]}),(0,b.jsx)(L,{text:"zh"===h?"评分项分解":"Per-criterion breakdown",hint:m.length>0?`${m.length} ${"zh"===h?"项":"items"}`:void 0}),0===m.length?(0,b.jsx)("div",{style:{padding:"14px 16px",background:"var(--card-bg)",border:"1px dashed var(--border)",borderRadius:8,color:"var(--foreground-muted)",fontSize:12},children:i.judgment_reason?"zh"===h?"该执行没有结构化评分项(可能是自由文本评估)":"No structured criteria parsed (free-text judgment)":"zh"===h?"该执行尚未被评测":"Not yet evaluated"}):(0,b.jsx)("div",{style:{background:"var(--card-bg)",border:"1px solid var(--card-border)",borderRadius:8,overflow:"hidden"},children:(0,b.jsxs)("table",{style:{width:"100%",borderCollapse:"collapse",fontSize:11.5},children:[(0,b.jsx)("thead",{children:(0,b.jsxs)("tr",{style:{background:"var(--background-secondary)"},children:[(0,b.jsx)(O,{width:70,children:"ID"}),(0,b.jsx)(O,{children:"zh"===h?"评分标准":"Criterion"}),(0,b.jsx)(O,{width:70,align:"center",children:"zh"===h?"得分":"Score"}),(0,b.jsx)(O,{width:60,align:"center",children:"zh"===h?"权重":"Weight"}),(0,b.jsx)(O,{width:70,align:"center",children:"zh"===h?"扣分":"Deduction"}),(0,b.jsx)(O,{children:"zh"===h?"原因":"Reason"})]})}),(0,b.jsx)("tbody",{children:m.map((a,c)=>{let d=0===a.weight,e=d?0:(1-a.match_score)*a.weight;return(0,b.jsxs)("tr",{style:{borderBottom:"1px solid var(--table-row-border)",opacity:d?.65:1},children:[(0,b.jsx)(P,{children:(0,b.jsx)("span",{style:{background:"root_cause"===a.type?"var(--tag-amber-bg)":"var(--tag-blue-bg, var(--primary-subtle))",color:"root_cause"===a.type?"var(--tag-amber-fg)":"var(--primary)",padding:"1px 7px",borderRadius:5,fontSize:10,fontWeight:600},children:a.id})}),(0,b.jsx)(P,{children:(0,b.jsx)("span",{style:{wordBreak:"break-word"},children:a.content})}),(0,b.jsx)(P,{align:"center",children:(0,b.jsxs)("span",{style:{color:d?"var(--foreground-muted)":a.match_score>=1?"var(--success)":a.match_score>=.5?"var(--warning)":"var(--error)",fontWeight:600},children:[Math.round(100*a.match_score),"%"]})}),(0,b.jsx)(P,{align:"center",children:(0,b.jsx)("span",{style:{color:"var(--foreground-muted)"},children:d?"—":a.weight})}),(0,b.jsx)(P,{align:"center",children:(0,b.jsx)("span",{style:{color:e>0?"var(--error)":"var(--foreground-muted)"},children:d?"—":e.toFixed(2)})}),(0,b.jsx)(P,{children:(0,b.jsx)("span",{style:{color:"var(--foreground-secondary)",fontSize:11},children:a.explanation})})]},c)})})]})})]})}function K({msg:a,tone:c="muted"}){return(0,b.jsx)("div",{style:{padding:"40px 24px",textAlign:"center",color:"error"===c?"var(--error)":"warn"===c?"var(--warning)":"var(--foreground-muted)",fontSize:12},children:a})}function L({text:a,hint:c}){return(0,b.jsxs)("div",{style:{display:"flex",alignItems:"baseline",gap:8,margin:"18px 0 8px"},children:[(0,b.jsx)("span",{style:{fontSize:12,fontWeight:600,color:"var(--foreground-secondary)",textTransform:"uppercase",letterSpacing:"0.06em"},children:a}),c&&(0,b.jsx)("span",{style:{fontSize:10.5,color:"var(--foreground-muted)"},children:c})]})}function M({label:a,value:c,valueColor:d}){return(0,b.jsxs)("span",{style:{display:"inline-flex",gap:4,alignItems:"baseline"},children:[(0,b.jsxs)("span",{style:{color:"var(--foreground-muted)"},children:[a,":"]}),(0,b.jsx)("span",{style:{color:d||"var(--foreground)",fontWeight:500},children:c})]})}function N({label:a,value:c,tone:d="default"}){return(0,b.jsxs)("div",{style:{background:"var(--card-bg)",border:"1px solid var(--card-border)",borderRadius:8,padding:"10px 14px"},children:[(0,b.jsx)("div",{style:{fontSize:10.5,color:"var(--foreground-muted)",textTransform:"uppercase",letterSpacing:"0.06em",marginBottom:4},children:a}),(0,b.jsx)("div",{style:{fontSize:18,fontWeight:600,color:"green"===d?"var(--success)":"amber"===d?"var(--warning)":"red"===d?"var(--error)":"muted"===d?"var(--foreground-muted)":"var(--foreground)",fontFamily:"var(--font-mono)"},children:c})]})}function O({children:a,width:c,align:d}){return(0,b.jsx)("th",{style:{padding:"8px 12px",fontSize:10.5,fontWeight:500,color:"var(--foreground-muted)",borderBottom:"1px solid var(--border)",textAlign:d||"left",width:c,whiteSpace:"nowrap"},children:a})}function P({children:a,align:c}){return(0,b.jsx)("td",{style:{padding:"8px 12px",fontSize:11.5,textAlign:c||"left",color:"var(--foreground)"},children:a})}let Q={display:"grid",gridTemplateColumns:"repeat(auto-fill, minmax(160px, 1fr))",gap:8};function R(a){return"number"==typeof a?a.toLocaleString():"-"}var S=a.i(960798);function T(){return(0,b.jsx)(d.Suspense,{fallback:null,children:(0,b.jsx)(U,{})})}function U(){let{t:a,locale:d}=(0,H.useLocale)(),e=(0,c.useSearchParams)(),f=e?.get("taskId")||"";return f?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(F.AppTopBar,{title:(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(S.Term,{id:"evaluator",label:a("nav.evalMetrics")}),` \xb7 ${"zh"===d?"单次执行":"Single execution"}`]})}),(0,b.jsx)("div",{style:{flex:1,overflowY:"auto"},children:(0,b.jsx)(J,{taskId:f})})]}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(F.AppTopBar,{title:(0,b.jsx)(S.Term,{id:"evaluator",label:a("nav.evalMetrics")})}),(0,b.jsx)("div",{style:{flex:1,overflowY:"auto"},children:(0,b.jsx)(u,{})})]})}a.s(["default",()=>T],503978)}];
|
|
7
|
+
这些字段都不是必填;目前仅支持以上四个变量。评估器最终需要输出 score 和 reason。`,q=()=>({name:"",description:"",systemPrompt:"",userPrompt:"",userPromptEnabled:!1});function r(){return{query:"",evaluatorTypes:[],targetTypes:[],objectives:[]}}function s(){return{nameQuery:"",creator:"all",typeFilter:""}}function t(a,b){return a.includes(b)?a.filter(a=>a!==b):[...a,b]}function u(){let{user:a}=(0,g.useAuth)(),e=(0,c.useRouter)(),[h,i]=(0,d.useState)([]),[p,u]=(0,d.useState)(!1),[B,F]=(0,d.useState)("custom"),[G,H]=(0,d.useState)(r),[I,J]=(0,d.useState)(s),[K,L]=(0,d.useState)(q),[M,N]=(0,d.useState)(null),[O,P]=(0,d.useState)("grid"),[Q,R]=(0,d.useState)(!0),[S,T]=(0,d.useState)(""),[U,V]=(0,d.useState)(null),[W,X]=(0,d.useState)(null);(0,d.useEffect)(()=>{a||(i([]),u(!1))},[a]),(0,d.useEffect)(()=>{if(!a)return;let b=!1;return(async()=>{try{let c=[],[d,e]=await Promise.allSettled([(0,f.apiFetch)(`/api/user-evaluators?user=${encodeURIComponent(a)}`),(0,f.apiFetch)(`/api/eval/settings?user=${encodeURIComponent(a)}`)]);if("fulfilled"===d.status&&d.value.ok)try{let a=await d.value.json();Array.isArray(a)&&(c=a)}catch{}if("fulfilled"===e.status&&e.value.ok)try{let a=await e.value.json(),c=a?.activeConfigId,d=Array.isArray(a?.configs)?a.configs:[],f=c?d.find(a=>a.id===c):null;b||X(f?{id:f.id,name:f.name||"(unnamed)",model:f.model||"(unknown)"}:null)}catch{}b||(i(c),u(!0))}catch(a){b||T(a instanceof Error?a.message:"评估器数据加载失败")}finally{b||R(!1)}})(),()=>{b=!0}},[a]),(0,d.useEffect)(()=>{if(!a||!p)return;let b=window.setTimeout(()=>{(0,f.apiFetch)("/api/user-evaluators",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({user:a,evaluators:h})}).catch(()=>{})},600);return()=>window.clearTimeout(b)},[a,p,h]);let Y=(0,d.useMemo)(()=>"preset"===B?k.presetEvaluators.filter(a=>{let b,c;return b=G.query.trim().toLowerCase(),c=`${a.name} ${a.description} ${a.mappedMetrics.join(" ")}`.toLowerCase(),(!b||!!c.includes(b))&&(!(G.evaluatorTypes.length>0)||!!G.evaluatorTypes.includes(a.evaluatorType))&&(!(G.targetTypes.length>0)||!!G.targetTypes.some(b=>a.targetTypes.includes(b)))&&(!(G.objectives.length>0)||!!G.objectives.some(b=>a.objectives.includes(b)))}):h.filter(b=>{let c,d;return c=I.nameQuery.trim().toLowerCase(),d=`${b.name} ${b.description} ${b.mappedMetrics.join(" ")}`.toLowerCase(),(!c||!!d.includes(c))&&(!I.typeFilter||b.evaluatorType===I.typeFilter)&&("mine"!==I.creator||!a||b.creator===a)}),[B,h,G,I,a]),Z=(0,d.useMemo)(()=>({presetCount:k.presetEvaluators.length,customCount:h.length,readyCount:h.filter(a=>"ready"===a.status).length}),[h]),$=()=>{L(q()),N("llm"),T("")},_=a=>{F(a),N(null),V(null)},aa=async b=>{if(!a||"custom"!==b.source||!globalThis.confirm(`确定删除评估器「${b.name}」?`))return;T("");let c=h.filter(a=>a.id!==b.id);i(c);try{let b=await (0,f.apiFetch)("/api/user-evaluators",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({user:a,evaluators:c})}),d=await b.json().catch(()=>({}));if(!b.ok||d?.success===!1)throw Error("删除失败")}catch(a){i(h),T(a instanceof Error?a.message:"删除失败")}};return Q?(0,b.jsx)("div",{className:"loading",children:"正在整理评估器视图..."}):(0,b.jsxs)("div",{style:{padding:"18px 22px 28px",maxWidth:1500,margin:"0 auto"},children:[S&&(0,b.jsx)("div",{className:"ai-card",style:{padding:12,color:"var(--error)",marginBottom:14},children:S}),(0,b.jsxs)("div",{style:{display:"flex",alignItems:"flex-start",justifyContent:"space-between",gap:16,marginBottom:10,flexWrap:"wrap"},children:[(0,b.jsxs)("div",{style:{minWidth:280,flex:1},children:[(0,b.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,marginBottom:6},children:[(0,b.jsx)("span",{className:"ai-badge ai-badge-b",children:"Evaluators"}),"preset"===B&&(0,b.jsx)("span",{style:{color:"var(--foreground-muted)",fontSize:11},children:"预置模板库"}),"custom"===B&&null===M&&(0,b.jsx)("span",{style:{color:"var(--foreground-muted)",fontSize:11},children:"自建评估方案"})]}),(0,b.jsx)("h1",{style:{margin:0,fontSize:22,lineHeight:1.2,fontWeight:600,color:"var(--foreground)"},children:"评估器"}),null===M&&(0,b.jsx)("p",{style:{margin:"6px 0 0",color:"var(--foreground-secondary)",fontSize:12.5,maxWidth:820},children:"custom"===B?"管理自建 LLM 评估器,配置会保存到服务端。点击卡片可进入详情编辑。":"预置评估器模板库:按类型与场景筛选,点击可查看详情与执行入口。"})]}),"preset"===B&&(0,b.jsx)("div",{style:{display:"flex",gap:8,alignItems:"center"},children:(0,b.jsx)("button",{type:"button",className:"ai-btn-s",onClick:()=>window.location.reload(),children:"刷新"})})]}),"preset"===B&&(0,b.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"repeat(3, minmax(160px, 1fr))",gap:10,marginBottom:14},children:[(0,b.jsx)(v,{label:"预置评估器",value:String(Z.presetCount),detail:"LLM 评估器模板"}),(0,b.jsx)(v,{label:"自建评估器",value:String(Z.customCount),detail:"已保存至账号"}),(0,b.jsx)(v,{label:"可用评估器",value:String(Z.readyCount),detail:"状态为已就绪"})]}),(0,b.jsxs)("div",{style:{borderBottom:"1px solid var(--border)",marginBottom:0,display:"flex",gap:2},children:[(0,b.jsx)(w,{active:"custom"===B,onClick:()=>_("custom"),children:"自建评估器"}),(0,b.jsx)(w,{active:"preset"===B,onClick:()=>_("preset"),children:"预置评估器"})]}),"custom"===B&&"llm"===M?(0,b.jsx)(C,{draft:K,onChange:L,onBack:()=>{N(null),L(q()),T("")},onSubmit:()=>{let b=K.name.trim();if(!b)return void T("请填写评估器名称");if(!(0,l.isValidCustomEvaluatorName)(b))return void T("名称会作为链路追踪中的 agent 名称:必须以英文字母开头,仅支持字母、数字、下划线、连字符");if(!K.systemPrompt.trim())return void T("请填写 System Prompt");let c=(0,l.findUnsupportedCustomEvaluatorVariables)(K.systemPrompt);if(c.length>0)return void T(`System Prompt 仅支持 {{input}}、{{output}}、{{reference_output}}、{{trajectory}},不支持:${c.map(a=>`{{${a}}}`).join("、")}`);let d={model:W?.model||"",systemPrompt:K.systemPrompt.trim(),userPrompt:K.userPrompt.trim()},e={id:`custom-${Date.now()}`,name:b,description:K.description.trim()||"自建 LLM 评估器。",evaluatorType:"LLM",source:"custom",targetTypes:["结果"],objectives:["任务完成","内容质量"],scenarios:["Agent通用评测"],runMode:"LLM Judge",scoreRange:"0-1",popularity:0,mappedMetrics:d.model?["LLM 评测",d.model]:["LLM 评测"],status:"draft",creator:a||void 0,llmConfig:d};i(a=>[e,...a]),N(null),L(q()),F("custom"),T("")}}):"custom"===B?(0,b.jsxs)("div",{style:{paddingTop:16},children:[(0,b.jsxs)("div",{style:{display:"flex",flexWrap:"wrap",alignItems:"center",gap:10,marginBottom:16,justifyContent:"space-between"},children:[(0,b.jsxs)("div",{style:{display:"flex",flexWrap:"wrap",gap:10,flex:1,minWidth:280},children:[(0,b.jsx)("input",{value:I.nameQuery,onChange:a=>J(b=>({...b,nameQuery:a.target.value})),placeholder:"搜索名称",style:{minWidth:160,flex:"1 1 160px",maxWidth:280,height:34,borderRadius:8,border:"1px solid var(--input-border)",background:"var(--input-bg)",color:"var(--foreground)",padding:"0 12px",fontSize:12.5}}),(0,b.jsxs)("select",{value:I.typeFilter,onChange:a=>J(b=>({...b,typeFilter:a.target.value})),style:{height:34,borderRadius:8,border:"1px solid var(--input-border)",background:"var(--input-bg)",color:"var(--foreground)",padding:"0 10px",fontSize:12.5,minWidth:140},children:[(0,b.jsx)("option",{value:"",children:"请选择类型"}),(0,b.jsx)("option",{value:"LLM",children:"LLM"})]})]}),(0,b.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8},children:[(0,b.jsx)("button",{type:"button",className:"ai-btn-s",title:"刷新",onClick:()=>window.location.reload(),children:"↻"}),(0,b.jsx)("button",{type:"button",className:"ai-btn-s",title:"grid"===O?"切换列表":"切换网格",onClick:()=>P(a=>"grid"===a?"list":"grid"),children:"grid"===O?"≡":"⊞"}),(0,b.jsx)("button",{type:"button",className:"ai-btn-p",onClick:$,children:"+ 新建评估器"})]})]}),0===Y.length?(0,b.jsx)(E,{onCreateLlm:$}):"grid"===O?(0,b.jsx)("div",{style:{display:"grid",gridTemplateColumns:"repeat(2, minmax(320px, 1fr))",gap:12},children:Y.map(a=>(0,b.jsx)(z,{card:a,activeTab:B,activeModel:W,onModelConfigClick:()=>e.push("/modelconfig/defaults"),onDeleteCustom:aa},a.id))}):(0,b.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:8},children:Y.map(a=>(0,b.jsx)(A,{card:a,onOpen:()=>e.push(`/metrics/evaluators/${encodeURIComponent(a.id)}`),onDeleteCustom:aa},a.id))})]}):(0,b.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"300px minmax(0, 1fr)",minHeight:620},children:[(0,b.jsxs)("aside",{style:{borderRight:"1px solid var(--border)",padding:"16px 18px 16px 0"},children:[(0,b.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:14},children:[(0,b.jsx)("div",{className:"ai-section-title",children:"评估器筛选"}),(0,b.jsx)("button",{type:"button",className:"ai-btn-s",onClick:()=>H(r()),children:"清空"})]}),(0,b.jsx)(x,{title:"类型",options:m,values:G.evaluatorTypes,onToggle:a=>H(b=>({...b,evaluatorTypes:t(b.evaluatorTypes,a)}))}),(0,b.jsx)(x,{title:"场景",options:n,values:G.targetTypes,onToggle:a=>H(b=>({...b,targetTypes:t(b.targetTypes,a)}))}),(0,b.jsx)(x,{title:"评估目标",options:o,values:G.objectives,onToggle:a=>H(b=>({...b,objectives:t(b.objectives,a)}))})]}),(0,b.jsxs)("main",{style:{padding:16},children:[(0,b.jsx)("div",{style:{marginBottom:14},children:(0,b.jsx)("input",{value:G.query,onChange:a=>H(b=>({...b,query:a.target.value})),placeholder:"搜索评估器名称、说明或指标",style:{width:"100%",height:34,borderRadius:8,border:"1px solid var(--input-border)",background:"var(--input-bg)",color:"var(--foreground)",padding:"0 12px",fontSize:12.5}})}),0===Y.length?(0,b.jsx)(D,{}):(0,b.jsx)("div",{style:{display:"grid",gridTemplateColumns:"repeat(2, minmax(320px, 1fr))",gap:12},children:Y.map(a=>(0,b.jsx)(z,{card:a,activeTab:B,onInspectPreset:V,activeModel:W,onModelConfigClick:()=>e.push("/modelconfig/defaults"),onDeleteCustom:aa},a.id))})]})]}),U&&j[U.id]?(0,b.jsx)(y,{card:U,detail:j[U.id],onClose:()=>V(null)}):null]})}function v({label:a,value:c,detail:d}){return(0,b.jsxs)("div",{className:"ai-stat",style:{minHeight:74},children:[(0,b.jsx)("div",{className:"ai-stat-lbl",children:a}),(0,b.jsx)("div",{className:"ai-stat-val",children:c}),(0,b.jsx)("div",{className:"ai-stat-d",style:{color:"var(--foreground-muted)"},children:d})]})}function w({active:a,children:c,onClick:d}){return(0,b.jsx)("button",{type:"button",onClick:d,style:{height:36,padding:"0 16px",border:"1px solid var(--border)",borderBottom:a?"2px solid var(--primary)":"1px solid var(--border)",background:a?"var(--background)":"var(--background-secondary)",color:a?"var(--primary)":"var(--foreground)",fontWeight:a?600:400,cursor:"pointer",borderRadius:"7px 7px 0 0",marginBottom:-1},children:c})}function x({title:a,options:c,values:d,onToggle:e}){return(0,b.jsxs)("div",{style:{marginBottom:18},children:[(0,b.jsx)("div",{style:{color:"var(--foreground-secondary)",fontSize:12,marginBottom:9},children:a}),(0,b.jsx)("div",{style:{display:"flex",flexWrap:"wrap",gap:8},children:c.map(a=>{let c=d.includes(a);return(0,b.jsx)("button",{type:"button",onClick:()=>e(a),style:{minHeight:34,padding:"0 16px",borderRadius:8,border:`1px solid ${c?"var(--primary-subtle-border)":"var(--border)"}`,background:c?"var(--primary-subtle)":"var(--background)",color:c?"var(--primary)":"var(--foreground-secondary)",cursor:"pointer",fontSize:12.5},children:a},a)})})]})}function y({card:a,detail:c,onClose:e}){(0,d.useEffect)(()=>{let a=a=>{"Escape"===a.key&&e()};return window.addEventListener("keydown",a),()=>window.removeEventListener("keydown",a)},[e]);let f=c.systemPrompt??"";async function g(){try{f&&await navigator.clipboard.writeText(f)}catch{}}let h=[...c.mediaTags??[],a.evaluatorType,...a.objectives.slice(0,2),...a.scenarios.slice(0,1)];return(0,b.jsx)("div",{role:"dialog","aria-modal":"true","aria-labelledby":"preset-inspect-title",style:{position:"fixed",inset:0,zIndex:100,display:"flex",alignItems:"flex-start",justifyContent:"center",padding:"24px 16px",overflowY:"auto",background:"rgba(0,0,0,0.45)"},onClick:e,children:(0,b.jsxs)("div",{className:"ai-card",style:{width:"100%",maxWidth:720,marginTop:12,marginBottom:40,padding:22,position:"relative",maxHeight:"92vh",overflowY:"auto",boxShadow:"var(--shadow)"},onClick:a=>a.stopPropagation(),children:[(0,b.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"flex-start",gap:12,marginBottom:16},children:[(0,b.jsx)("h2",{id:"preset-inspect-title",style:{margin:0,fontSize:18,fontWeight:650,color:"var(--foreground)"},children:a.name}),(0,b.jsx)("button",{type:"button",className:"ai-btn-s","aria-label":"关闭",onClick:e,children:"×"})]}),(0,b.jsx)("div",{style:{display:"flex",flexWrap:"wrap",gap:6,marginBottom:14},children:h.map((a,c)=>(0,b.jsx)("span",{style:{background:"var(--background-tertiary)",color:"var(--foreground-secondary)",borderRadius:6,padding:"4px 9px",fontSize:11},children:a},`${a}-${c}`))}),(0,b.jsxs)("section",{style:{marginBottom:18},children:[(0,b.jsx)("div",{style:{fontSize:12.5,fontWeight:600,marginBottom:8,color:"var(--foreground)"},children:"应用场景"}),(0,b.jsx)("p",{style:{margin:0,fontSize:13,lineHeight:1.65,color:"var(--foreground-secondary)"},children:c.applicationScenario})]}),"llm"===c.kind&&f?(0,b.jsxs)("section",{style:{marginBottom:18},children:[(0,b.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:8},children:[(0,b.jsx)("span",{style:{fontSize:12.5,fontWeight:600,color:"var(--foreground)"},children:"Prompt"}),(0,b.jsx)("button",{type:"button",className:"ai-btn-s",onClick:()=>g(),children:"复制 System"})]}),(0,b.jsxs)("div",{style:{border:"1px solid var(--border)",borderRadius:8,background:"var(--background-secondary)",padding:"12px 14px"},children:[(0,b.jsx)("div",{style:{fontSize:11,color:"var(--foreground-muted)",marginBottom:8},children:"System"}),(0,b.jsx)("pre",{style:{margin:0,whiteSpace:"pre-wrap",wordBreak:"break-word",fontSize:12.5,lineHeight:1.55,color:"var(--foreground)",fontFamily:"ui-monospace, monospace"},children:f})]}),(c.variables?.length??0)>0?(0,b.jsxs)("div",{style:{marginTop:12},children:[(0,b.jsx)("div",{style:{fontSize:12,fontWeight:600,marginBottom:6,color:"var(--foreground)"},children:"Variables"}),(0,b.jsx)("div",{style:{display:"flex",flexWrap:"wrap",gap:8},children:c.variables.map(a=>(0,b.jsx)("code",{style:{fontSize:12,padding:"4px 8px",borderRadius:6,background:"var(--background-tertiary)",color:"var(--primary)"},children:`{{${a}}}`},a))})]}):null]}):null,("code"===c.kind||"rpc"===c.kind)&&(0,b.jsxs)("section",{style:{marginBottom:18},children:[(0,b.jsx)("div",{style:{fontSize:12.5,fontWeight:600,marginBottom:8,color:"var(--foreground)"},children:"code"===c.kind?"规则 / 脚本说明":"RPC 契约"}),c.implementationNote?(0,b.jsx)("p",{style:{margin:"0 0 12px",fontSize:13,lineHeight:1.65,color:"var(--foreground-secondary)"},children:c.implementationNote}):null,c.codeOrContractExample?(0,b.jsx)("pre",{style:{margin:0,padding:"12px 14px",borderRadius:8,border:"1px solid var(--border)",background:"var(--input-bg)",fontSize:12,lineHeight:1.45,overflowX:"auto",whiteSpace:"pre-wrap",wordBreak:"break-word",fontFamily:"ui-monospace, monospace"},children:c.codeOrContractExample}):null]}),(0,b.jsxs)("section",{style:{marginBottom:18,padding:14,borderRadius:8,background:"var(--background-secondary)",border:"1px solid var(--border)"},children:[(0,b.jsx)("div",{style:{display:"flex",alignItems:"center",gap:6,marginBottom:10},children:(0,b.jsx)("span",{style:{fontSize:12.5,fontWeight:600},children:"输出"})}),(0,b.jsxs)("p",{style:{margin:"0 0 10px",fontSize:12.5,lineHeight:1.65,color:"var(--foreground-secondary)"},children:[(0,b.jsx)("strong",{style:{color:"var(--foreground)"},children:"得分:"}),c.outputScoreText]}),(0,b.jsxs)("p",{style:{margin:0,fontSize:12.5,lineHeight:1.65,color:"var(--foreground-secondary)"},children:[(0,b.jsx)("strong",{style:{color:"var(--foreground)"},children:"原因:"}),c.outputReasonText]})]}),(0,b.jsx)("div",{style:{display:"flex",gap:8,justifyContent:"flex-end",flexWrap:"wrap"},children:(0,b.jsx)("button",{type:"button",className:"ai-btn-s",onClick:e,children:"关闭"})})]})})}function z({card:a,activeTab:d,onInspectPreset:e,activeModel:f,onModelConfigClick:g,onDeleteCustom:h}){let i=(0,c.useRouter)(),k="preset"===a.source&&!!j[a.id],l=()=>{"preset"===d&&k&&e?.(a)},m=()=>{"custom"===d&&i.push(`/metrics/evaluators/${encodeURIComponent(a.id)}`)},n="preset"===d&&k||"custom"===d;return(0,b.jsxs)("article",{className:"ai-card",role:n?"button":void 0,tabIndex:n?0:void 0,onClick:a=>{a.target.closest("button")||("preset"===d&&k?l():"custom"===d&&m())},onKeyDown:a=>{n&&("Enter"===a.key||" "===a.key)&&(a.preventDefault(),"preset"===d&&k?l():"custom"===d&&m())},style:{padding:16,minHeight:176,display:"flex",flexDirection:"column",gap:12,cursor:n?"pointer":void 0},children:[(0,b.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",gap:10},children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("h3",{style:{margin:0,color:"var(--foreground)",fontSize:15.5,fontWeight:600},children:a.name}),(0,b.jsx)("p",{style:{margin:"8px 0 0",color:"var(--foreground-secondary)",fontSize:12.5,lineHeight:1.6},children:a.description}),"preset"===d&&k?(0,b.jsx)("p",{style:{margin:"4px 0 0",fontSize:11,color:"var(--foreground-muted)"},children:"点击查看详情"}):null,"custom"===d?(0,b.jsx)("p",{style:{margin:"4px 0 0",fontSize:11,color:"var(--foreground-muted)"},children:"点击查看或编辑"}):null]}),(0,b.jsx)("span",{className:`ai-badge ${"Code"===a.evaluatorType?"ai-badge-b":"Custom RPC"===a.evaluatorType?"ai-badge-g":"ai-badge-gr"}`,style:{height:22,whiteSpace:"nowrap"},children:a.evaluatorType})]}),(0,b.jsx)("div",{style:{display:"flex",flexWrap:"wrap",gap:6},children:[a.runMode,...a.targetTypes,...a.objectives,...a.scenarios.slice(0,2)].map(a=>(0,b.jsx)("span",{style:{background:"var(--background-tertiary)",color:"var(--foreground-secondary)",borderRadius:4,padding:"3px 7px",fontSize:11},children:a},a))}),(0,b.jsx)("div",{style:{marginTop:"auto"},children:(0,b.jsx)(B,{label:"评分",value:a.scoreRange})}),a.runtimeHref?(0,b.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,padding:"6px 8px",background:"var(--background-secondary)",border:"1px solid var(--border)",borderRadius:6,fontSize:11},onClick:a=>a.stopPropagation(),children:[(0,b.jsx)("span",{style:{color:"var(--foreground-muted)"},children:"运行模型:"}),f?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("span",{style:{fontWeight:600,color:"var(--foreground)"},children:f.name}),(0,b.jsxs)("span",{style:{color:"var(--foreground-muted)",fontFamily:"monospace"},children:["· ",f.model]}),(0,b.jsx)("span",{style:{color:"var(--foreground-muted)"},children:"(来自全局默认)"})]}):(0,b.jsx)("span",{style:{color:"var(--error)",fontWeight:500},children:"未配置"}),(0,b.jsx)("span",{style:{flex:1}}),g?(0,b.jsx)("button",{type:"button",className:"ai-btn-s",style:{fontSize:10.5,padding:"2px 8px"},onClick:a=>{a.stopPropagation(),g()},children:f?"修改":"去配置"}):null]}):null,(0,b.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",gap:8,alignItems:"center"},children:[(0,b.jsx)("div",{style:{display:"flex",alignItems:"center",gap:6,flexWrap:"wrap"},children:(0,b.jsx)("span",{className:`ai-badge ${"ready"===a.status?"ai-badge-g":"draft"===a.status?"ai-badge-gr":"ai-badge-b"}`,children:"ready"===a.status?"已就绪":"draft"===a.status?"草稿":"预置"})}),(0,b.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6},children:["custom"===d&&h?(0,b.jsx)("button",{type:"button",className:"ai-btn-s",style:{color:"var(--error)"},onClick:b=>{b.stopPropagation(),h(a)},children:"删除"}):null,a.runtimeHref?(0,b.jsx)("button",{type:"button",className:"ai-btn-sp",onClick:b=>{b.stopPropagation();let c=new URL(a.runtimeHref,window.location.origin);c.searchParams.set("evaluatorId",a.id),i.push(c.pathname+c.search)},style:{whiteSpace:"nowrap"},children:"前往评测执行 →"}):null]})]})]})}function A({card:a,onOpen:c,onDeleteCustom:d}){return(0,b.jsxs)("div",{className:"ai-card",role:"button",tabIndex:0,onClick:c,onKeyDown:a=>{("Enter"===a.key||" "===a.key)&&(a.preventDefault(),c())},style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:12,padding:"12px 14px",flexWrap:"wrap",cursor:"pointer"},children:[(0,b.jsxs)("div",{style:{minWidth:200,flex:1},children:[(0,b.jsx)("div",{style:{fontWeight:600,color:"var(--foreground)"},children:a.name}),(0,b.jsx)("div",{style:{fontSize:12,color:"var(--foreground-muted)",marginTop:4},children:a.description})]}),(0,b.jsx)("span",{className:`ai-badge ${"Code"===a.evaluatorType?"ai-badge-b":"Custom RPC"===a.evaluatorType?"ai-badge-g":"ai-badge-gr"}`,children:a.evaluatorType}),(0,b.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8},children:[(0,b.jsx)("span",{className:`ai-badge ${"ready"===a.status?"ai-badge-g":"draft"===a.status?"ai-badge-gr":"ai-badge-b"}`,children:"ready"===a.status?"已就绪":"draft"===a.status?"草稿":"预置"}),"custom"===a.source&&d?(0,b.jsx)("button",{type:"button",className:"ai-btn-s",style:{color:"var(--error)"},onClick:b=>{b.stopPropagation(),d(a)},children:"删除"}):null]})]})}function B({label:a,value:c}){return(0,b.jsxs)("div",{style:{border:"1px solid var(--border)",background:"var(--background-secondary)",borderRadius:7,padding:8},children:[(0,b.jsx)("div",{style:{color:"var(--foreground-muted)",fontSize:11,marginBottom:3},children:a}),(0,b.jsx)("div",{style:{color:"var(--foreground)",fontSize:12.5,fontWeight:500},children:c})]})}function C({draft:a,onChange:c,onBack:d,onSubmit:f}){return(0,b.jsxs)("div",{style:{paddingTop:20,maxWidth:800},children:[(0,b.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:12,marginBottom:24},children:[(0,b.jsx)("button",{type:"button",className:"ai-btn-s",onClick:d,"aria-label":"返回",style:{minWidth:36,padding:"6px 10px"},children:"←"}),(0,b.jsx)("h2",{style:{margin:0,fontSize:18,fontWeight:600,color:"var(--foreground)"},children:"新建评估器"})]}),(0,b.jsxs)("section",{style:{marginBottom:28},children:[(0,b.jsx)("div",{className:"ai-section-title",style:{marginBottom:14},children:"基础信息"}),(0,b.jsxs)("label",{style:{display:"flex",flexDirection:"column",gap:6,marginBottom:14},children:[(0,b.jsxs)("span",{style:{fontSize:12,fontWeight:600,color:"var(--foreground)"},children:[(0,b.jsx)("span",{style:{color:"var(--error)"},children:"* "}),"名称"]}),(0,b.jsx)("input",{value:a.name,maxLength:50,onChange:b=>c({...a,name:b.target.value}),placeholder:"例如 custom_eval_agent",style:{height:36,borderRadius:8,border:"1px solid var(--input-border)",background:"var(--input-bg)",color:"var(--foreground)",padding:"0 12px",fontSize:13}}),(0,b.jsx)("span",{style:{fontSize:11,color:"var(--foreground-muted)"},children:"名称会作为链路追踪中的 agent 名称,仅支持英文、数字、下划线、连字符,且必须以英文字母开头。"}),(0,b.jsxs)("span",{style:{fontSize:11,color:"var(--foreground-muted)",textAlign:"right"},children:[a.name.length,"/50"]})]}),(0,b.jsxs)("label",{style:{display:"flex",flexDirection:"column",gap:6},children:[(0,b.jsx)("span",{style:{fontSize:12,fontWeight:600,color:"var(--foreground)"},children:"描述"}),(0,b.jsx)("textarea",{value:a.description,maxLength:200,onChange:b=>c({...a,description:b.target.value}),placeholder:"请输入描述",rows:3,style:{borderRadius:8,border:"1px solid var(--input-border)",background:"var(--input-bg)",color:"var(--foreground)",padding:"10px 12px",fontSize:13,resize:"vertical"}}),(0,b.jsxs)("span",{style:{fontSize:11,color:"var(--foreground-muted)",textAlign:"right"},children:[a.description.length,"/200"]})]})]}),(0,b.jsxs)("section",{style:{marginBottom:28},children:[(0,b.jsx)("div",{className:"ai-section-title",style:{marginBottom:14},children:"配置信息"}),(0,b.jsxs)("label",{style:{display:"flex",flexDirection:"column",gap:6,marginBottom:16},children:[(0,b.jsxs)("span",{style:{fontSize:12,fontWeight:600,color:"var(--foreground)"},children:[(0,b.jsx)("span",{style:{color:"var(--error)"},children:"* "}),"Prompt · System"]}),(0,b.jsx)("textarea",{value:a.systemPrompt,onChange:b=>c({...a,systemPrompt:b.target.value}),placeholder:p,rows:12,style:{borderRadius:8,border:"1px solid var(--input-border)",background:"var(--input-bg)",color:"var(--foreground)",padding:"12px",fontSize:12.5,lineHeight:1.55,fontFamily:"var(--font-mono, ui-monospace, monospace)",resize:"vertical"}})]}),(0,b.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:6},children:[(0,b.jsx)("span",{style:{fontSize:12,fontWeight:600,color:"var(--foreground)"},children:"User Prompt"}),a.userPromptEnabled?(0,b.jsxs)("div",{style:{border:"1px solid var(--input-border)",borderRadius:10,overflow:"hidden",background:"var(--background)"},children:[(0,b.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:10,padding:"10px 14px",borderBottom:"1px solid var(--border)",background:"color-mix(in srgb, var(--foreground) 2%, var(--background))"},children:[(0,b.jsx)("span",{style:{fontSize:12,fontWeight:600,color:"var(--foreground-muted)",letterSpacing:"0.04em"},children:"User"}),(0,b.jsx)("button",{type:"button",className:"ai-btn-s",style:{border:"none",background:"transparent",padding:0,color:"var(--foreground-muted)"},onClick:()=>c({...a,userPrompt:"",userPromptEnabled:!1}),children:"清空"})]}),(0,b.jsx)("textarea",{value:a.userPrompt,onChange:b=>c({...a,userPrompt:b.target.value}),placeholder:"请输入可选的 user prompt",rows:4,style:{width:"100%",border:"none",outline:"none",background:"transparent",color:"var(--foreground)",padding:"12px 14px",fontSize:12.5,lineHeight:1.6,resize:"vertical",boxSizing:"border-box"}})]}):(0,b.jsx)("button",{type:"button",className:"ai-btn-s",style:{width:"100%",minHeight:44,border:"1px dashed var(--input-border)",borderRadius:10,background:"color-mix(in srgb, var(--foreground) 4%, var(--background))",color:"var(--foreground-secondary)",fontSize:13,fontWeight:600},onClick:()=>c({...a,userPromptEnabled:!0}),children:"+ 添加 User Prompt"})]})]}),(0,b.jsxs)("section",{style:{marginBottom:28,padding:14,borderRadius:8,background:"var(--background-secondary)",border:"1px solid var(--border)"},children:[(0,b.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,marginBottom:10},children:[(0,b.jsx)("span",{className:"ai-section-title",style:{margin:0},children:"输出"}),(0,b.jsx)("span",{title:"评测模型须遵守的输出约定","aria-label":"评测模型须遵守的输出约定",style:{cursor:"help",color:"var(--foreground-muted)",display:"inline-flex",alignItems:"center"},children:(0,b.jsx)(e.Info,{style:{width:16,height:16},"aria-hidden":!0})})]}),(0,b.jsxs)("p",{style:{margin:"0 0 10px",fontSize:12.5,color:"var(--foreground-secondary)",lineHeight:1.65},children:[(0,b.jsx)("strong",{style:{color:"var(--foreground)"},children:"得分:"}),"最终须给出 0.0~1.0 的数值型分数:1.0 表示完全符合标准,0.0 表示完全不符合。"]}),(0,b.jsxs)("p",{style:{margin:0,fontSize:12.5,color:"var(--foreground-secondary)",lineHeight:1.65},children:[(0,b.jsx)("strong",{style:{color:"var(--foreground)"},children:"原因:"}),"须提供可读的中文说明,并以固定收束句式结尾:",(0,b.jsx)("code",{style:{fontSize:12},children:"因此,应该给出[分数]是合理的评分"}),"。"]})]}),(0,b.jsxs)("div",{style:{display:"flex",gap:10,justifyContent:"flex-end"},children:[(0,b.jsx)("button",{type:"button",className:"ai-btn-s",onClick:d,children:"取消"}),(0,b.jsx)("button",{type:"button",className:"ai-btn-p",onClick:f,children:"创建"})]})]})}function D(){return(0,b.jsxs)("div",{style:{border:"1px dashed var(--border-dark)",borderRadius:8,padding:28,textAlign:"center",background:"var(--background-secondary)"},children:[(0,b.jsx)("div",{style:{color:"var(--foreground)",fontWeight:500,marginBottom:6},children:"没有匹配的评估器"}),(0,b.jsx)("div",{style:{color:"var(--foreground-muted)",fontSize:12},children:"调整筛选条件,或在「自建评估器」中新建。"})]})}function E({onCreateLlm:a}){return(0,b.jsxs)("div",{style:{border:"1px dashed var(--border-dark)",borderRadius:8,padding:"48px 28px",textAlign:"center",background:"var(--background-secondary)"},children:[(0,b.jsx)("div",{style:{color:"var(--foreground)",fontWeight:500,marginBottom:8,fontSize:15},children:"暂无自建评估器"}),(0,b.jsx)("div",{style:{color:"var(--foreground-muted)",fontSize:12.5,marginBottom:18},children:"点击右上角「+ 新建评估器」开始配置 LLM 评估器。"}),(0,b.jsx)("div",{style:{display:"flex",gap:10,justifyContent:"center",flexWrap:"wrap"},children:(0,b.jsx)("button",{type:"button",className:"ai-btn-p",onClick:a,children:"新建 LLM 评估器"})})]})}var F=a.i(729936),G=a.i(238246),H=a.i(106927),I=a.i(187563);let J=process.env.NEXT_PUBLIC_URL_PREFIX||"";function K({taskId:a}){let{user:c}=(0,g.useAuth)(),{locale:e}=(0,H.useLocale)(),[h,i]=(0,d.useState)(null),[j,k]=(0,d.useState)("loading");(0,d.useEffect)(()=>{c&&a&&(k("loading"),(0,f.apiFetch)(`/api/observe/data?user=${encodeURIComponent(c)}&taskId=${encodeURIComponent(a)}`).then(a=>a.ok?a.json():Promise.reject("http")).then(a=>{Array.isArray(a)&&a.length>0?(i(a[0]),k("ready")):k("notfound")}).catch(()=>k("error")))},[c,a]);let l=(0,d.useMemo)(()=>h?.judgment_reason?function(a){let b=[];if(!a)return b;let c=a.split("\n"),d={rc:0,ka:0};for(let a of c){let c=a.match(/\*\*Root Cause\*\*\s*\[(.*?)\]\s*.*?:\s*(\d+)%\s*match\.\s*(.+?)\s*\(Weight:\s*([\d.]+)\)/);if(c){b.push({id:`RC-${d.rc++}`,type:"root_cause",content:c[1].replace(/\.{3}$/,""),match_score:parseInt(c[2])/100,explanation:c[3].trim(),weight:parseFloat(c[4])});continue}let e=a.match(/\*\*Key Action\*\*\s*\[(.*?)\]\s*.*?:\s*(\d+)%\s*match\.\s*(.+?)\s*\(Weight:\s*([\d.]+)\)/);if(e){b.push({id:`KA-${d.ka++}`,type:"key_action",content:e[1].replace(/\.{3}$/,""),match_score:parseInt(e[2])/100,explanation:e[3].trim(),weight:parseFloat(e[4])});continue}let f=a.match(/\*\*Key Action\*\*\s*\[(.*?)\]\s*.*?:\s*(\d+)%\s*match\.\s*(.+?)\s*\(该分支未触发,不计入总分\)/);f&&b.push({id:`KA-${d.ka++}`,type:"key_action",content:f[1].replace(/\.{3}$/,""),match_score:parseInt(f[2])/100,explanation:f[3].trim(),weight:0})}return b}(h.judgment_reason):[],[h?.judgment_reason]);if("loading"===j)return(0,b.jsx)(L,{msg:"zh"===e?"正在加载执行数据…":"Loading execution…"});if("error"===j)return(0,b.jsx)(L,{msg:"zh"===e?"加载失败":"Load failed",tone:"error"});if("notfound"===j||!h)return(0,b.jsx)(L,{msg:"zh"===e?`没有找到 taskId=${a} 的执行记录`:`No execution found for taskId=${a}`,tone:"warn"});let m=h.is_evaluating||"结果评估中..."===h.judgment_reason||"Evaluation in progress..."===h.judgment_reason,n=!m&&!0===h.is_answer_correct,o=!m&&!1===h.is_answer_correct,p="number"==typeof h.answer_score?Math.round(100*h.answer_score):null,q=(h.invoked_skills?.length??0)||(h.skills?.length??0)||+!!h.skill,r="number"==typeof h.skill_trigger_rate?Math.round(100*h.skill_trigger_rate):null;return(0,b.jsxs)("div",{style:{padding:"20px 22px",maxWidth:1180,margin:"0 auto"},children:[(0,b.jsxs)("div",{style:{background:"var(--card-bg)",border:"1px solid var(--card-border)",borderRadius:10,padding:"14px 18px",marginBottom:14,display:"flex",alignItems:"center",gap:14},children:[(0,b.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,b.jsxs)("div",{style:{fontSize:10.5,color:"var(--foreground-muted)",fontFamily:"var(--font-mono)",marginBottom:4},children:[a,h.timestamp&&(0,b.jsxs)("span",{children:[" · ",new Date(h.timestamp).toLocaleString()]})]}),(0,b.jsx)("div",{style:{fontSize:13.5,fontWeight:500,color:"var(--foreground)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:h.query||("zh"===e?"(无问题)":"(no query)")})]}),(0,b.jsx)(G.default,{href:`${J}/skill-eval?taskId=${a}`,className:"ai-btn-s",style:{textDecoration:"none",fontSize:11,flexShrink:0},children:"zh"===e?"调测分析 ↗":"Skill diagnosis ↗"})]}),(0,b.jsxs)("div",{style:{display:"flex",flexWrap:"wrap",gap:12,marginBottom:12,fontSize:11.5,color:"var(--foreground-secondary)"},children:[(0,b.jsx)(N,{label:"zh"===e?"平台":"Platform",value:h.framework||"-"}),(0,b.jsx)(N,{label:"zh"===e?"模型":"Model",value:h.model||"-"}),(0,b.jsx)(N,{label:"zh"===e?"状态":"Status",value:m?"zh"===e?"运行中":"Running":n?"zh"===e?"成功":"Success":o?"zh"===e?"失败":"Failed":"zh"===e?"未评测":"Unjudged",valueColor:m?"var(--primary)":n?"var(--success)":o?"var(--error)":"var(--foreground-muted)"}),h.label&&(0,b.jsx)(N,{label:"zh"===e?"标签":"Tag",value:h.label})]}),(0,b.jsx)(M,{text:"zh"===e?"质量指标":"Quality metrics"}),(0,b.jsxs)("div",{style:R,children:[(0,b.jsx)(O,{label:"zh"===e?"准确率":"Accuracy",value:null!==p?`${p}%`:"--",tone:null===p?"muted":p>=80?"green":p>=50?"amber":"red"}),(0,b.jsx)(O,{label:"zh"===e?"技能召回率":"Skill Recall",value:null!==r?`${r}%`:"--",tone:null===r?"muted":r>=80?"green":r>=50?"amber":"red"}),(0,b.jsx)(O,{label:"zh"===e?"调用 Skill 数":"Skills used",value:String(q)}),(0,b.jsx)(O,{label:"zh"===e?"Skill 是否命中":"Skill correct",value:!0===h.is_skill_correct?"✓":!1===h.is_skill_correct?"✗":"--",tone:!0===h.is_skill_correct?"green":!1===h.is_skill_correct?"red":"muted"})]}),(0,b.jsx)(M,{text:"zh"===e?"性能指标":"Performance metrics"}),(0,b.jsxs)("div",{style:R,children:[(0,b.jsx)(O,{label:"zh"===e?"延迟":"Latency",value:(0,I.formatLatencySeconds)(h.latency)}),(0,b.jsx)(O,{label:"zh"===e?"总 Token":"Total tokens",value:S(h.tokens)}),(0,b.jsx)(O,{label:"zh"===e?"成本":"Cost",value:"number"==typeof h.cost&&h.cost>0?`$${h.cost.toFixed(4)}`:"--"}),(0,b.jsx)(O,{label:"zh"===e?"LLM 调用":"LLM calls",value:S(h.llm_call_count)}),(0,b.jsx)(O,{label:"zh"===e?"工具调用":"Tool calls",value:S(h.tool_call_count)}),(0,b.jsx)(O,{label:"zh"===e?"工具错误":"Tool errors",value:S(h.tool_call_error_count),tone:(h.tool_call_error_count??0)>0?"red":"muted"})]}),(h.input_tokens||h.output_tokens)&&(0,b.jsxs)("div",{style:{display:"flex",gap:16,fontSize:11,color:"var(--foreground-muted)",marginTop:8},children:[null!=h.input_tokens&&(0,b.jsxs)("span",{children:["Input: ",S(h.input_tokens)]}),null!=h.output_tokens&&(0,b.jsxs)("span",{children:["Output: ",S(h.output_tokens)]})]}),(0,b.jsx)(M,{text:"zh"===e?"评分项分解":"Per-criterion breakdown",hint:l.length>0?`${l.length} ${"zh"===e?"项":"items"}`:void 0}),0===l.length?(0,b.jsx)("div",{style:{padding:"14px 16px",background:"var(--card-bg)",border:"1px dashed var(--border)",borderRadius:8,color:"var(--foreground-muted)",fontSize:12},children:h.judgment_reason?"zh"===e?"该执行没有结构化评分项(可能是自由文本评估)":"No structured criteria parsed (free-text judgment)":"zh"===e?"该执行尚未被评测":"Not yet evaluated"}):(0,b.jsx)("div",{style:{background:"var(--card-bg)",border:"1px solid var(--card-border)",borderRadius:8,overflow:"hidden"},children:(0,b.jsxs)("table",{style:{width:"100%",borderCollapse:"collapse",fontSize:11.5},children:[(0,b.jsx)("thead",{children:(0,b.jsxs)("tr",{style:{background:"var(--background-secondary)"},children:[(0,b.jsx)(P,{width:70,children:"ID"}),(0,b.jsx)(P,{children:"zh"===e?"评分标准":"Criterion"}),(0,b.jsx)(P,{width:70,align:"center",children:"zh"===e?"得分":"Score"}),(0,b.jsx)(P,{width:60,align:"center",children:"zh"===e?"权重":"Weight"}),(0,b.jsx)(P,{width:70,align:"center",children:"zh"===e?"扣分":"Deduction"}),(0,b.jsx)(P,{children:"zh"===e?"原因":"Reason"})]})}),(0,b.jsx)("tbody",{children:l.map((a,c)=>{let d=0===a.weight,e=d?0:(1-a.match_score)*a.weight;return(0,b.jsxs)("tr",{style:{borderBottom:"1px solid var(--table-row-border)",opacity:d?.65:1},children:[(0,b.jsx)(Q,{children:(0,b.jsx)("span",{style:{background:"root_cause"===a.type?"var(--tag-amber-bg)":"var(--tag-blue-bg, var(--primary-subtle))",color:"root_cause"===a.type?"var(--tag-amber-fg)":"var(--primary)",padding:"1px 7px",borderRadius:5,fontSize:10,fontWeight:600},children:a.id})}),(0,b.jsx)(Q,{children:(0,b.jsx)("span",{style:{wordBreak:"break-word"},children:a.content})}),(0,b.jsx)(Q,{align:"center",children:(0,b.jsxs)("span",{style:{color:d?"var(--foreground-muted)":a.match_score>=1?"var(--success)":a.match_score>=.5?"var(--warning)":"var(--error)",fontWeight:600},children:[Math.round(100*a.match_score),"%"]})}),(0,b.jsx)(Q,{align:"center",children:(0,b.jsx)("span",{style:{color:"var(--foreground-muted)"},children:d?"—":a.weight})}),(0,b.jsx)(Q,{align:"center",children:(0,b.jsx)("span",{style:{color:e>0?"var(--error)":"var(--foreground-muted)"},children:d?"—":e.toFixed(2)})}),(0,b.jsx)(Q,{children:(0,b.jsx)("span",{style:{color:"var(--foreground-secondary)",fontSize:11},children:a.explanation})})]},c)})})]})})]})}function L({msg:a,tone:c="muted"}){return(0,b.jsx)("div",{style:{padding:"40px 24px",textAlign:"center",color:"error"===c?"var(--error)":"warn"===c?"var(--warning)":"var(--foreground-muted)",fontSize:12},children:a})}function M({text:a,hint:c}){return(0,b.jsxs)("div",{style:{display:"flex",alignItems:"baseline",gap:8,margin:"18px 0 8px"},children:[(0,b.jsx)("span",{style:{fontSize:12,fontWeight:600,color:"var(--foreground-secondary)",textTransform:"uppercase",letterSpacing:"0.06em"},children:a}),c&&(0,b.jsx)("span",{style:{fontSize:10.5,color:"var(--foreground-muted)"},children:c})]})}function N({label:a,value:c,valueColor:d}){return(0,b.jsxs)("span",{style:{display:"inline-flex",gap:4,alignItems:"baseline"},children:[(0,b.jsxs)("span",{style:{color:"var(--foreground-muted)"},children:[a,":"]}),(0,b.jsx)("span",{style:{color:d||"var(--foreground)",fontWeight:500},children:c})]})}function O({label:a,value:c,tone:d="default"}){return(0,b.jsxs)("div",{style:{background:"var(--card-bg)",border:"1px solid var(--card-border)",borderRadius:8,padding:"10px 14px"},children:[(0,b.jsx)("div",{style:{fontSize:10.5,color:"var(--foreground-muted)",textTransform:"uppercase",letterSpacing:"0.06em",marginBottom:4},children:a}),(0,b.jsx)("div",{style:{fontSize:18,fontWeight:600,color:"green"===d?"var(--success)":"amber"===d?"var(--warning)":"red"===d?"var(--error)":"muted"===d?"var(--foreground-muted)":"var(--foreground)",fontFamily:"var(--font-mono)"},children:c})]})}function P({children:a,width:c,align:d}){return(0,b.jsx)("th",{style:{padding:"8px 12px",fontSize:10.5,fontWeight:500,color:"var(--foreground-muted)",borderBottom:"1px solid var(--border)",textAlign:d||"left",width:c,whiteSpace:"nowrap"},children:a})}function Q({children:a,align:c}){return(0,b.jsx)("td",{style:{padding:"8px 12px",fontSize:11.5,textAlign:c||"left",color:"var(--foreground)"},children:a})}let R={display:"grid",gridTemplateColumns:"repeat(auto-fill, minmax(160px, 1fr))",gap:8};function S(a){return"number"==typeof a?a.toLocaleString():"-"}var T=a.i(960798);function U(){return(0,b.jsx)(d.Suspense,{fallback:null,children:(0,b.jsx)(V,{})})}function V(){let{t:a,locale:d}=(0,H.useLocale)(),e=(0,c.useSearchParams)(),f=e?.get("taskId")||"";return f?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(F.AppTopBar,{title:(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(T.Term,{id:"evaluator",label:a("nav.evalMetrics")}),` \xb7 ${"zh"===d?"单次执行":"Single execution"}`]})}),(0,b.jsx)("div",{style:{flex:1,overflowY:"auto"},children:(0,b.jsx)(K,{taskId:f})})]}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(F.AppTopBar,{title:(0,b.jsx)(T.Term,{id:"evaluator",label:a("nav.evalMetrics")})}),(0,b.jsx)("div",{style:{flex:1,overflowY:"auto"},children:(0,b.jsx)(u,{})})]})}a.s(["default",()=>U],503978)}];
|
|
8
8
|
|
|
9
9
|
//# sourceMappingURL=src_app_%28main%29_metrics_page_tsx_f1599761._.js.map
|