agent-insight 0.5.2 → 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/.env.example +6 -0
- package/.next/standalone/.next/BUILD_ID +1 -1
- package/.next/standalone/.next/app-path-routes-manifest.json +9 -0
- package/.next/standalone/.next/build-manifest.json +2 -2
- package/.next/standalone/.next/prerender-manifest.json +51 -3
- package/.next/standalone/.next/routes-manifest.json +60 -0
- 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.js.nft.json +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.js.nft.json +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.js.nft.json +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.js.nft.json +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.js.nft.json +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.js.nft.json +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.js.nft.json +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.js.nft.json +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.js.nft.json +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.js.nft.json +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.js.nft.json +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/app-paths-manifest.json +3 -0
- package/.next/standalone/.next/server/app/(main)/version-analysis/page/build-manifest.json +17 -0
- package/.next/standalone/.next/server/app/(main)/version-analysis/page/next-font-manifest.json +6 -0
- package/.next/standalone/.next/server/app/(main)/version-analysis/page/react-loadable-manifest.json +1 -0
- package/.next/standalone/.next/server/app/(main)/version-analysis/page/server-reference-manifest.json +4 -0
- package/.next/standalone/.next/server/app/(main)/version-analysis/page.js +17 -0
- package/.next/standalone/.next/server/app/(main)/version-analysis/page.js.map +5 -0
- package/.next/standalone/.next/server/app/(main)/version-analysis/page.js.nft.json +1 -0
- package/.next/standalone/.next/server/app/(main)/version-analysis/page_client-reference-manifest.js +2 -0
- package/.next/standalone/.next/server/app/(main)/version-management/page/app-paths-manifest.json +3 -0
- package/.next/standalone/.next/server/app/(main)/version-management/page/build-manifest.json +17 -0
- package/.next/standalone/.next/server/app/(main)/version-management/page/next-font-manifest.json +6 -0
- package/.next/standalone/.next/server/app/(main)/version-management/page/react-loadable-manifest.json +1 -0
- package/.next/standalone/.next/server/app/(main)/version-management/page/server-reference-manifest.json +4 -0
- package/.next/standalone/.next/server/app/(main)/version-management/page.js +17 -0
- package/.next/standalone/.next/server/app/(main)/version-management/page.js.map +5 -0
- package/.next/standalone/.next/server/app/(main)/version-management/page.js.nft.json +1 -0
- package/.next/standalone/.next/server/app/(main)/version-management/page_client-reference-manifest.js +2 -0
- 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/agent-datasets/[id]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/agent-datasets/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/agents/[id]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/agents/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/auth/apikey/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/auth/organization/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/dashboard/stats/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/batch-tasks/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/debug/execute/[jobId]/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 +10 -10
- package/.next/standalone/.next/server/app/api/debug/grayscale-tasks/[taskId]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/debug/grayscale-tasks/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/debug/history/[id]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/debug/history/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/eval/config/backfill-routing/route.js +6 -6
- package/.next/standalone/.next/server/app/api/eval/config/backfill-routing/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/eval/config/create/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/eval/config/reparse/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/eval/config/route.js +6 -6
- package/.next/standalone/.next/server/app/api/eval/config/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/eval/config/status/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/eval/evaluation/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/eval/rejudge/route.js +6 -6
- package/.next/standalone/.next/server/app/api/eval/rejudge/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/eval/settings/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/eval/settings/test/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/results/[id]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/eval/trajectory/results/route.js +5 -5
- package/.next/standalone/.next/server/app/api/eval/trajectory/results/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/eval/trajectory/run/route.js +13 -13
- package/.next/standalone/.next/server/app/api/eval/trajectory/run/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/eval/trajectory/runs/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/evaluation/[id]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/evaluation/cancel/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/fault/diagnosis/session/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/fleet/agent/route/app-paths-manifest.json +3 -0
- package/.next/standalone/.next/server/app/api/fleet/agent/route/build-manifest.json +11 -0
- package/.next/standalone/.next/server/app/api/fleet/agent/route/server-reference-manifest.json +4 -0
- package/.next/standalone/.next/server/app/api/fleet/agent/route.js +8 -0
- package/.next/standalone/.next/server/app/api/fleet/agent/route.js.map +5 -0
- package/.next/standalone/.next/server/app/api/fleet/agent/route.js.nft.json +1 -0
- package/.next/standalone/.next/server/app/api/fleet/agent/route_client-reference-manifest.js +2 -0
- package/.next/standalone/.next/server/app/api/fleet/breakdowns/route.js +1 -1
- package/.next/standalone/.next/server/app/api/fleet/breakdowns/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/fleet/trends/route.js +2 -2
- package/.next/standalone/.next/server/app/api/fleet/trends/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/guide/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/ingest/opencode/session-complete/route.js +3 -3
- package/.next/standalone/.next/server/app/api/ingest/opencode/session-complete/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/ingest/otel/v1/logs/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/ingest/otel/v1/metrics/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/ingest/otel/v1/traces/route.js +5 -5
- package/.next/standalone/.next/server/app/api/ingest/otel/v1/traces/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/ingest/proxy/[taskId]/[...path]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/ingest/proxy/[taskId]/end/route.js +9 -9
- package/.next/standalone/.next/server/app/api/ingest/proxy/[taskId]/end/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/ingest/proxy/[taskId]/start/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/ingest/sync/manifest/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/ingest/sync/opencode/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/ingest/upload/route.js +8 -8
- package/.next/standalone/.next/server/app/api/ingest/upload/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/modelconfig/pricing/route/app-paths-manifest.json +3 -0
- package/.next/standalone/.next/server/app/api/modelconfig/pricing/route/build-manifest.json +11 -0
- package/.next/standalone/.next/server/app/api/modelconfig/pricing/route/server-reference-manifest.json +4 -0
- package/.next/standalone/.next/server/app/api/modelconfig/pricing/route.js +8 -0
- package/.next/standalone/.next/server/app/api/modelconfig/pricing/route.js.map +5 -0
- package/.next/standalone/.next/server/app/api/modelconfig/pricing/route.js.nft.json +1 -0
- package/.next/standalone/.next/server/app/api/modelconfig/pricing/route_client-reference-manifest.js +2 -0
- package/.next/standalone/.next/server/app/api/observe/data/route.js +3 -3
- package/.next/standalone/.next/server/app/api/observe/data/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 +13 -13
- 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/executions/[executionId]/analyze-match/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/observe/executions/[executionId]/infra/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/observe/executions/[executionId]/tags/route/app-paths-manifest.json +3 -0
- package/.next/standalone/.next/server/app/api/observe/executions/[executionId]/tags/route/build-manifest.json +11 -0
- package/.next/standalone/.next/server/app/api/observe/executions/[executionId]/tags/route/server-reference-manifest.json +4 -0
- package/.next/standalone/.next/server/app/api/observe/executions/[executionId]/tags/route.js +8 -0
- package/.next/standalone/.next/server/app/api/observe/executions/[executionId]/tags/route.js.map +5 -0
- package/.next/standalone/.next/server/app/api/observe/executions/[executionId]/tags/route.js.nft.json +1 -0
- package/.next/standalone/.next/server/app/api/observe/executions/[executionId]/tags/route_client-reference-manifest.js +2 -0
- package/.next/standalone/.next/server/app/api/observe/infra/history/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/observe/infra/poll/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/observe/infra/sources/derive/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/observe/infra/sources/overview/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/observe/infra/sources/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/observe/infra/sources/sessions/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/observe/infra/sources/test/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/observe/session/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/observe/task-stats/route.js +3 -3
- package/.next/standalone/.next/server/app/api/observe/task-stats/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/observe/version-analysis/compare/route/app-paths-manifest.json +3 -0
- package/.next/standalone/.next/server/app/api/observe/version-analysis/compare/route/build-manifest.json +11 -0
- package/.next/standalone/.next/server/app/api/observe/version-analysis/compare/route/server-reference-manifest.json +4 -0
- package/.next/standalone/.next/server/app/api/observe/version-analysis/compare/route.js +8 -0
- package/.next/standalone/.next/server/app/api/observe/version-analysis/compare/route.js.map +5 -0
- package/.next/standalone/.next/server/app/api/observe/version-analysis/compare/route.js.nft.json +1 -0
- package/.next/standalone/.next/server/app/api/observe/version-analysis/compare/route_client-reference-manifest.js +2 -0
- package/.next/standalone/.next/server/app/api/observe/version-analysis/tags/[tagId]/traces/route/app-paths-manifest.json +3 -0
- package/.next/standalone/.next/server/app/api/observe/version-analysis/tags/[tagId]/traces/route/build-manifest.json +11 -0
- package/.next/standalone/.next/server/app/api/observe/version-analysis/tags/[tagId]/traces/route/server-reference-manifest.json +4 -0
- package/.next/standalone/.next/server/app/api/observe/version-analysis/tags/[tagId]/traces/route.js +8 -0
- package/.next/standalone/.next/server/app/api/observe/version-analysis/tags/[tagId]/traces/route.js.map +5 -0
- package/.next/standalone/.next/server/app/api/observe/version-analysis/tags/[tagId]/traces/route.js.nft.json +1 -0
- package/.next/standalone/.next/server/app/api/observe/version-analysis/tags/[tagId]/traces/route_client-reference-manifest.js +2 -0
- package/.next/standalone/.next/server/app/api/public/otel/v1/traces/route.js +5 -5
- package/.next/standalone/.next/server/app/api/public/otel/v1/traces/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/quality/agents/route.js +7 -7
- package/.next/standalone/.next/server/app/api/quality/agents/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/quality/backfill/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/quality/executions/route.js +7 -7
- package/.next/standalone/.next/server/app/api/quality/executions/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/quality/report/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]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/skill-eval/trigger/[skillName]/run/[runId]/cancel/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-eval/trigger/[skillName]/runs/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/skill-eval/trigger/[skillName]/upload/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/download/[sessionId]/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-generator/sessions/[id]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/skill-generator/sessions/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/plan/items/[id]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/skill-opt/plan/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/skill-opt/sessions/[id]/iterations/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/skill-opt/sessions/[id]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/skill-opt/sessions/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/skills/[id]/activate/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/skills/[id]/benchmark-generate/route.js +7 -7
- package/.next/standalone/.next/server/app/api/skills/[id]/benchmark-generate/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/skills/[id]/runs/route.js +2 -2
- package/.next/standalone/.next/server/app/api/skills/[id]/runs/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/skills/[id]/toggle/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]/evaluate/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/skills/[id]/versions/[version]/evaluation-summary/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/skills/[id]/versions/[version]/parse-flow/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/skills/[id]/versions/[version]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/skills/[id]/versions/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/skills/automation/import/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/skills/automation/push/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/skills/by-name/[name]/analysis-diagnosis/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/skills/by-name/[name]/optimization-points/resolve/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/skills/by-name/[name]/optimization-points/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/skills/by-name/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/skills/logs/route.js +6 -6
- package/.next/standalone/.next/server/app/api/skills/logs/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/skills/publish/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/skills/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/skills/sync-enterprise/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/skills/upload/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/tags/[id]/route/app-paths-manifest.json +3 -0
- package/.next/standalone/.next/server/app/api/tags/[id]/route/build-manifest.json +11 -0
- package/.next/standalone/.next/server/app/api/tags/[id]/route/server-reference-manifest.json +4 -0
- package/.next/standalone/.next/server/app/api/tags/[id]/route.js +8 -0
- package/.next/standalone/.next/server/app/api/tags/[id]/route.js.map +5 -0
- package/.next/standalone/.next/server/app/api/tags/[id]/route.js.nft.json +1 -0
- package/.next/standalone/.next/server/app/api/tags/[id]/route_client-reference-manifest.js +2 -0
- package/.next/standalone/.next/server/app/api/tags/route/app-paths-manifest.json +3 -0
- package/.next/standalone/.next/server/app/api/tags/route/build-manifest.json +11 -0
- package/.next/standalone/.next/server/app/api/tags/route/server-reference-manifest.json +4 -0
- package/.next/standalone/.next/server/app/api/tags/route.js +8 -0
- package/.next/standalone/.next/server/app/api/tags/route.js.map +5 -0
- package/.next/standalone/.next/server/app/api/tags/route.js.nft.json +1 -0
- package/.next/standalone/.next/server/app/api/tags/route_client-reference-manifest.js +2 -0
- 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 +6 -6
- 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 +6 -6
- 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 +6 -6
- 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 +6 -6
- 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 +6 -6
- 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 +6 -6
- 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 +8 -8
- 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 +8 -8
- 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 -0
- package/.next/standalone/.next/server/app/version-analysis.meta +16 -0
- package/.next/standalone/.next/server/app/version-analysis.rsc +23 -0
- package/.next/standalone/.next/server/app/version-analysis.segments/!KG1haW4p/version-analysis/__PAGE__.segment.rsc +9 -0
- package/.next/standalone/.next/server/app/version-analysis.segments/!KG1haW4p/version-analysis.segment.rsc +4 -0
- package/.next/standalone/.next/server/app/version-analysis.segments/!KG1haW4p.segment.rsc +7 -0
- package/.next/standalone/.next/server/app/version-analysis.segments/_full.segment.rsc +23 -0
- package/.next/standalone/.next/server/app/version-analysis.segments/_head.segment.rsc +6 -0
- package/.next/standalone/.next/server/app/version-analysis.segments/_index.segment.rsc +6 -0
- package/.next/standalone/.next/server/app/version-analysis.segments/_tree.segment.rsc +2 -0
- package/.next/standalone/.next/server/app/version-management.html +1 -0
- package/.next/standalone/.next/server/app/version-management.meta +16 -0
- package/.next/standalone/.next/server/app/version-management.rsc +22 -0
- package/.next/standalone/.next/server/app/version-management.segments/!KG1haW4p/version-management/__PAGE__.segment.rsc +9 -0
- package/.next/standalone/.next/server/app/version-management.segments/!KG1haW4p/version-management.segment.rsc +4 -0
- package/.next/standalone/.next/server/app/version-management.segments/!KG1haW4p.segment.rsc +7 -0
- package/.next/standalone/.next/server/app/version-management.segments/_full.segment.rsc +22 -0
- package/.next/standalone/.next/server/app/version-management.segments/_head.segment.rsc +6 -0
- package/.next/standalone/.next/server/app/version-management.segments/_index.segment.rsc +6 -0
- package/.next/standalone/.next/server/app/version-management.segments/_tree.segment.rsc +2 -0
- package/.next/standalone/.next/server/app-paths-manifest.json +9 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__096d00c3._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__28078c4e._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__4509f30c._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__5386e9b4._.js +22 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__5cb21a03._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__6fe0c73e._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__88e070f0._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__98ce63c7._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__9f6a4627._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__b0d1e6e5._.js +22 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__c60fa3da._.js +22 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__c875b500._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__c8b9af98._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__cfcf074d._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__d754b2c2._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__e60b9568._.js +22 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__e8b9c639._.js +22 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__f30eea21._.js +3 -0
- package/.next/standalone/.next/server/chunks/_05c80664._.js +1 -1
- 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/_1c2f3589._.js +1 -1
- package/.next/standalone/.next/server/chunks/{_1a32fa23._.js → _5090183e._.js} +2 -2
- package/.next/standalone/.next/server/chunks/{_e84c3e5f._.js → _6a203624._.js} +1 -1
- package/.next/standalone/.next/server/chunks/{_a0074544._.js → _70b9b972._.js} +1 -1
- package/.next/standalone/.next/server/chunks/_78c6471e._.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/{_547fcde4._.js → _d02fac80._.js} +2 -2
- package/.next/standalone/.next/server/chunks/_d043f698._.js +1 -1
- package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_fleet_agent_route_actions_b98e2c99.js +3 -0
- package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_modelconfig_pricing_route_actions_bca6856d.js +3 -0
- package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_tags_[id]_route_actions_a6f8b324.js +3 -0
- package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_tags_route_actions_caf13f5f.js +3 -0
- package/.next/standalone/.next/server/chunks/bec2d_app_api_observe_version-analysis_tags_[tagId]_traces_route_actions_ff37f2d3.js +3 -0
- package/.next/standalone/.next/server/chunks/ce889_server_app_api_observe_executions_[executionId]_tags_route_actions_08aa41a4.js +3 -0
- package/.next/standalone/.next/server/chunks/ce889_server_app_api_observe_version-analysis_compare_route_actions_b48ab573.js +3 -0
- package/.next/standalone/.next/server/chunks/src_lib_266d6cf4._.js +51 -0
- package/.next/standalone/.next/server/chunks/src_lib_5d95b500._.js +3 -0
- package/.next/standalone/.next/server/chunks/src_lib_67530201._.js +51 -0
- package/.next/standalone/.next/server/chunks/src_lib_9513f84d._.js +48 -0
- package/.next/standalone/.next/server/chunks/src_lib_9d09752c._.js +1 -1
- package/.next/standalone/.next/server/chunks/src_lib_a03a423b._.js +48 -0
- package/.next/standalone/.next/server/chunks/src_lib_a2a34aa6._.js +1 -1
- package/.next/standalone/.next/server/chunks/{src_lib_4751db31._.js → src_lib_dc72b90b._.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]__0eb5d21d._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__83687057._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__85e7edfe._.js +3 -0
- 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]__c69baa4a._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__f82e551e._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/_051b1443._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/_0ae78458._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/{_400d0da3._.js → _1278164d._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/_15e714f2._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/_2f20fbfc._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/_4e720925._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/_5aa55aa6._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/_8b68f69f._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/_8d4b753e._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/_976dfbab._.js +4 -0
- package/.next/standalone/.next/server/chunks/ssr/_aab048d0._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/_be1ffbbf._.js +12 -0
- package/.next/standalone/.next/server/chunks/ssr/_c815e0e7._.js +4 -0
- package/.next/standalone/.next/server/chunks/ssr/_e4c81263._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/{_a3d5f9bc._.js → _e5ee8977._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/_f634ea15._.js +12 -0
- package/.next/standalone/.next/server/chunks/ssr/_next-internal_server_app_(main)_version-analysis_page_actions_479d49a7.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/_next-internal_server_app_(main)_version-management_page_actions_aea5ae93.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/{node_modules_a443e166._.js → node_modules_3b1fd8eb._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/node_modules_7680a21d._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_bfffaa78._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_icons_2e7afafc._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_icons_cd0b182b._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/src_app_(main)_accessconfig_install_page_tsx_6f4ef3fc._.js +3 -3
- package/.next/standalone/.next/server/chunks/ssr/src_app_(main)_dashboard_page_tsx_7eac7774._.js +1 -1
- 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)_modelconfig_registry_page_tsx_1ead2fd4._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/src_app_(main)_quality_page_tsx_26bb8e80._.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_app_(main)_version-analysis_page_tsx_63ae8791._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/src_app_(main)_version-management_page_tsx_87fe0372._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/src_components_ui_select_tsx_4c0f64d8._.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/0257c68e82e9f2b0.js +1 -0
- package/.next/standalone/.next/static/chunks/{8754e0cf40813330.js → 06ac4297aa02f40a.js} +1 -1
- package/.next/standalone/.next/static/chunks/151b95e65092aa16.js +1 -0
- package/.next/standalone/.next/static/chunks/1624a1adcb73d784.js +1 -0
- package/.next/standalone/.next/static/chunks/1f173de64ad85757.js +10 -0
- package/.next/standalone/.next/static/chunks/{4dcd21eef469e66b.js → 2064add303799ffc.js} +1 -1
- package/.next/standalone/.next/static/chunks/2fb55cc737806639.js +1 -0
- package/.next/standalone/.next/static/chunks/3184105f3d2b47a1.js +10 -0
- package/.next/standalone/.next/static/chunks/379315313d164a57.js +1 -0
- package/.next/standalone/.next/static/chunks/39157b51ed6489eb.js +1 -0
- package/.next/standalone/.next/static/chunks/{dc22f906bd43e9a3.js → 46308ae9f83ac112.js} +3 -3
- package/.next/standalone/.next/static/chunks/4d2c017f2f4c9160.css +1 -0
- package/.next/standalone/.next/static/chunks/54538e1a80e53392.js +1 -0
- package/.next/standalone/.next/static/chunks/599fdc4cf6eb9e95.js +1 -0
- package/.next/standalone/.next/static/chunks/5be4d965983c6b40.js +6 -0
- package/.next/standalone/.next/static/chunks/63220d0acc5073cc.js +1 -0
- package/.next/standalone/.next/static/chunks/6da1d3424f804755.js +1 -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/8668d6f4c34d1e67.js +3 -0
- package/.next/standalone/.next/static/chunks/913c61f4f0a12da4.js +1 -0
- package/.next/standalone/.next/static/chunks/97822ca2c186f93d.js +1 -0
- package/.next/{static/chunks/96c7e2e47438553a.js → standalone/.next/static/chunks/98588c35b1e00bea.js} +1 -1
- package/.next/standalone/.next/static/chunks/a99fb4f44f9a41f3.js +1 -0
- package/.next/standalone/.next/static/chunks/b11e37b43e38eb95.js +1 -0
- package/.next/standalone/.next/static/chunks/b223106f6c610a67.js +1 -0
- package/.next/standalone/.next/static/chunks/cc9a7b6a8edabe81.js +1 -0
- package/.next/standalone/.next/static/chunks/cf0b4e5d7b804bf5.js +1 -0
- package/.next/standalone/.next/static/chunks/cfb3924a60d22c64.js +1 -0
- package/.next/standalone/.next/static/chunks/d15d7f6146b85000.js +1 -0
- package/.next/standalone/.next/static/chunks/dee90c3e29cd39bb.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/.next/static/chunks/{bf909bd0ff1898e4.js → f6954ae67d81050e.js} +1 -1
- package/.next/standalone/.next/static/chunks/fc7f5db841a7032a.js +1 -0
- package/.next/standalone/docker-compose.amd64.yml +2 -1
- package/.next/standalone/docker-compose.arm64.yml +11 -0
- package/.next/standalone/node_modules/.prisma/client/edge.js +26 -3
- package/.next/standalone/node_modules/.prisma/client/index-browser.js +23 -0
- package/.next/standalone/node_modules/.prisma/client/index.js +26 -3
- package/.next/standalone/node_modules/.prisma/client/package.json +1 -1
- package/.next/standalone/node_modules/.prisma/client/schema.prisma +39 -0
- package/.next/standalone/node_modules/.prisma/client/wasm.js +23 -0
- package/.next/standalone/package.json +1 -1
- package/.next/standalone/prisma/schema.prisma +38 -0
- package/.next/static/chunks/0257c68e82e9f2b0.js +1 -0
- package/.next/static/chunks/{8754e0cf40813330.js → 06ac4297aa02f40a.js} +1 -1
- package/.next/static/chunks/151b95e65092aa16.js +1 -0
- package/.next/static/chunks/1624a1adcb73d784.js +1 -0
- package/.next/static/chunks/1f173de64ad85757.js +10 -0
- package/.next/static/chunks/{4dcd21eef469e66b.js → 2064add303799ffc.js} +1 -1
- package/.next/static/chunks/2fb55cc737806639.js +1 -0
- package/.next/static/chunks/3184105f3d2b47a1.js +10 -0
- package/.next/static/chunks/379315313d164a57.js +1 -0
- package/.next/static/chunks/39157b51ed6489eb.js +1 -0
- package/.next/static/chunks/{dc22f906bd43e9a3.js → 46308ae9f83ac112.js} +3 -3
- package/.next/static/chunks/4d2c017f2f4c9160.css +1 -0
- package/.next/static/chunks/54538e1a80e53392.js +1 -0
- package/.next/static/chunks/599fdc4cf6eb9e95.js +1 -0
- package/.next/static/chunks/5be4d965983c6b40.js +6 -0
- package/.next/static/chunks/63220d0acc5073cc.js +1 -0
- package/.next/static/chunks/6da1d3424f804755.js +1 -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/8668d6f4c34d1e67.js +3 -0
- package/.next/static/chunks/913c61f4f0a12da4.js +1 -0
- package/.next/static/chunks/97822ca2c186f93d.js +1 -0
- package/.next/{standalone/.next/static/chunks/96c7e2e47438553a.js → static/chunks/98588c35b1e00bea.js} +1 -1
- package/.next/static/chunks/a99fb4f44f9a41f3.js +1 -0
- package/.next/static/chunks/b11e37b43e38eb95.js +1 -0
- package/.next/static/chunks/b223106f6c610a67.js +1 -0
- package/.next/static/chunks/cc9a7b6a8edabe81.js +1 -0
- package/.next/static/chunks/cf0b4e5d7b804bf5.js +1 -0
- package/.next/static/chunks/cfb3924a60d22c64.js +1 -0
- package/.next/static/chunks/d15d7f6146b85000.js +1 -0
- package/.next/static/chunks/dee90c3e29cd39bb.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/.next/static/chunks/{bf909bd0ff1898e4.js → f6954ae67d81050e.js} +1 -1
- package/.next/static/chunks/fc7f5db841a7032a.js +1 -0
- package/package.json +1 -1
- package/prisma/schema.prisma +38 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__2574e6ed._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__2710fb53._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__8cc92af1._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__9d2e5f60._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__bd3dc3ab._.js +0 -3
- package/.next/standalone/.next/server/chunks/src_lib_6cb48964._.js +0 -32
- package/.next/standalone/.next/server/chunks/src_lib_a3155704._.js +0 -3
- package/.next/standalone/.next/server/chunks/src_lib_baaf83ef._.js +0 -29
- package/.next/standalone/.next/server/chunks/src_lib_bf0ee699._.js +0 -32
- package/.next/standalone/.next/server/chunks/src_lib_dbf3c792._.js +0 -29
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__2ec2bb09._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__3cb83dc3._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__c9cf8076._.js +0 -8
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__fc94ba06._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_0141e5c7._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_0acdaaae._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_231821bd._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_5d1f8671._.js +0 -12
- package/.next/standalone/.next/server/chunks/ssr/_8bba8b8d._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_96725836._.js +0 -12
- package/.next/standalone/.next/server/chunks/ssr/_b08dc931._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_c4db9cec._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/node_modules_8bfa35b3._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_icons_30858f09._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_icons_f1e06ad8._.js +0 -3
- package/.next/standalone/.next/static/chunks/0b6bd84bf10579a4.js +0 -10
- package/.next/standalone/.next/static/chunks/0bca64d67dceae3f.js +0 -1
- package/.next/standalone/.next/static/chunks/16047b19dda5c90d.js +0 -10
- package/.next/standalone/.next/static/chunks/3a0f454536f3ebc8.js +0 -1
- package/.next/standalone/.next/static/chunks/3d19f62114122bd3.js +0 -1
- package/.next/standalone/.next/static/chunks/3d6127f72467176d.js +0 -1
- package/.next/standalone/.next/static/chunks/44545e70bb7a33b8.js +0 -1
- package/.next/standalone/.next/static/chunks/4e52a5c5e332595a.js +0 -1
- package/.next/standalone/.next/static/chunks/6238734a2f04b1f9.js +0 -1
- package/.next/standalone/.next/static/chunks/66b23011cd8544ad.js +0 -1
- package/.next/standalone/.next/static/chunks/7a758615e3d35d6d.js +0 -1
- package/.next/standalone/.next/static/chunks/7a7dc24eed0484dc.js +0 -1
- package/.next/standalone/.next/static/chunks/7d4fa817c5229801.js +0 -1
- package/.next/standalone/.next/static/chunks/8f18a711543d804a.js +0 -1
- package/.next/standalone/.next/static/chunks/9155a6c07dc0502d.js +0 -6
- package/.next/standalone/.next/static/chunks/94fdb955b1dc512a.js +0 -1
- package/.next/standalone/.next/static/chunks/97b8d7ea5d04e2a2.js +0 -1
- package/.next/standalone/.next/static/chunks/a31bf4e176b5e90c.js +0 -3
- package/.next/standalone/.next/static/chunks/b9597989b5b0abd3.js +0 -1
- package/.next/standalone/.next/static/chunks/d170174df1128338.js +0 -1
- package/.next/standalone/.next/static/chunks/d91c2c0bbe0b59ab.js +0 -1
- package/.next/standalone/.next/static/chunks/e159d293fc72e91b.css +0 -1
- package/.next/standalone/.next/static/chunks/e45a4e085c7ce03c.js +0 -1
- package/.next/standalone/.next/static/chunks/efe225251ea151f0.js +0 -4
- package/.next/standalone/.next/static/chunks/ffd21617593aaafd.js +0 -1
- package/.next/static/chunks/0b6bd84bf10579a4.js +0 -10
- package/.next/static/chunks/0bca64d67dceae3f.js +0 -1
- package/.next/static/chunks/16047b19dda5c90d.js +0 -10
- package/.next/static/chunks/3a0f454536f3ebc8.js +0 -1
- package/.next/static/chunks/3d19f62114122bd3.js +0 -1
- package/.next/static/chunks/3d6127f72467176d.js +0 -1
- package/.next/static/chunks/44545e70bb7a33b8.js +0 -1
- package/.next/static/chunks/4e52a5c5e332595a.js +0 -1
- package/.next/static/chunks/6238734a2f04b1f9.js +0 -1
- package/.next/static/chunks/66b23011cd8544ad.js +0 -1
- package/.next/static/chunks/7a758615e3d35d6d.js +0 -1
- package/.next/static/chunks/7a7dc24eed0484dc.js +0 -1
- package/.next/static/chunks/7d4fa817c5229801.js +0 -1
- package/.next/static/chunks/8f18a711543d804a.js +0 -1
- package/.next/static/chunks/9155a6c07dc0502d.js +0 -6
- package/.next/static/chunks/94fdb955b1dc512a.js +0 -1
- package/.next/static/chunks/97b8d7ea5d04e2a2.js +0 -1
- package/.next/static/chunks/a31bf4e176b5e90c.js +0 -3
- package/.next/static/chunks/b9597989b5b0abd3.js +0 -1
- package/.next/static/chunks/d170174df1128338.js +0 -1
- package/.next/static/chunks/d91c2c0bbe0b59ab.js +0 -1
- package/.next/static/chunks/e159d293fc72e91b.css +0 -1
- package/.next/static/chunks/e45a4e085c7ce03c.js +0 -1
- package/.next/static/chunks/efe225251ea151f0.js +0 -4
- package/.next/static/chunks/ffd21617593aaafd.js +0 -1
- /package/.next/standalone/.next/static/{iE8084jR9Kgb7Bhs3Xokh → pzAy0mrZCL0PmE4h3HDut}/_buildManifest.js +0 -0
- /package/.next/standalone/.next/static/{iE8084jR9Kgb7Bhs3Xokh → pzAy0mrZCL0PmE4h3HDut}/_clientMiddlewareManifest.json +0 -0
- /package/.next/standalone/.next/static/{iE8084jR9Kgb7Bhs3Xokh → pzAy0mrZCL0PmE4h3HDut}/_ssgManifest.js +0 -0
- /package/.next/static/{iE8084jR9Kgb7Bhs3Xokh → pzAy0mrZCL0PmE4h3HDut}/_buildManifest.js +0 -0
- /package/.next/static/{iE8084jR9Kgb7Bhs3Xokh → pzAy0mrZCL0PmE4h3HDut}/_clientMiddlewareManifest.json +0 -0
- /package/.next/static/{iE8084jR9Kgb7Bhs3Xokh → pzAy0mrZCL0PmE4h3HDut}/_ssgManifest.js +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
module.exports=[119586,e=>{"use strict";let t=new Set(["skill-generator-agent","fault-diagnosis-agent","skill-optimizer-chat","trace-quality-evaluator","task-completion-evaluator","skill-trigger-analyzer","skill-suggestion-advisor","grayscale-skill-agent","grayscale-baseline-agent"]);function n(e){return!!e&&t.has(e.trim())}e.s(["SYSTEM_AGENT_NAME_SET",0,t,"isInternalSystemAgentTrace",()=>n])},68987,e=>{"use strict";function t(e){if(null==e)return null;if("number"==typeof e&&Number.isFinite(e))return e;if("string"==typeof e){let t=e.trim();if(!t)return null;if(/^\d+$/.test(t)){let e=Number(t);return Number.isFinite(e)?e:null}let n=Date.parse(t);return Number.isFinite(n)?n:null}return null}function n(e){let n=0,r=0,i="",a="",l="",s=0,o=0,u=0,d=0,c=0,f=0,m=0,p=0,h=0,g=Number.MAX_SAFE_INTEGER,y=0;for(let r of e||[]){if(!r)continue;let e=r.role,k="assistant"===e||"subagent"===e;if("assistant"===e){let e="string"==typeof r.content?r.content:"";e&&e.trim()&&(a=e),"string"==typeof r.model&&r.model?i=r.model:"string"==typeof r.modelID&&r.modelID&&(i=r.modelID)}r.agent&&"string"==typeof r.agent&&!l&&(l=r.agent);let _=t(r.timeInfo?.created),x=t(r.timeInfo?.completed),$=t(r.timestamp);if(_&&(g=Math.min(g,_),y=Math.max(y,_)),x&&(y=Math.max(y,x)),$&&(g=Math.min(g,$),y=Math.max(y,$)),!k)continue;f++;let b=r.usage;if(b){let e=function(e){let t=Number(e?.input_tokens??e?.input??0)||0,n=Number(e?.output_tokens??e?.output??0)||0,r=Number(e?.cache?.read??e?.cache_read_input_tokens??0)||0,i=Number(e?.cache?.write??e?.cache_creation_input_tokens??0)||0,a=Number(e?.reasoning??e?.reasoning_tokens??e?.completion_tokens_details?.reasoning_tokens??0)||0,l=e?.reasoning!==void 0&&a>0&&n<a?n+a:n;return{total:e?.total!==void 0?Number(e.total)||0:t+l+r+i,input:t,output:l,cacheRead:r,cacheWrite:i,reasoning:a,maxSingleCallTokens:t+l+r+i}}(b);n+=e.total,s+=e.input,o+=e.output,u+=e.cacheRead,d+=e.cacheWrite,c+=e.reasoning,e.maxSingleCallTokens>h&&(h=e.maxSingleCallTokens)}if(Array.isArray(r.tool_calls))for(let e of(m+=r.tool_calls.length,r.tool_calls))(e?.state==="error"||e?.state==="failed")&&p++}return g!==Number.MAX_SAFE_INTEGER&&y>g&&(r=y-g),{model:i||void 0,agentName:l||void 0,final_result:a||void 0,tokens:Math.round(n),latency:r/1e3,input_tokens:Math.round(s),output_tokens:Math.round(o),tool_call_count:m,tool_call_error_count:p,llm_call_count:f,cache_read_input_tokens:Math.round(u),cache_creation_input_tokens:Math.round(d),max_single_call_tokens:Math.round(h),reasoning_tokens:Math.round(c)}}e.s(["deriveOpencodeExecutionFields",()=>n])},596767,e=>{"use strict";var t=e.i(286372);function n(e,r="zh"){let i=function(e){if(!Array.isArray(e))return[];let t=[];for(let n of e)if(n){if(Array.isArray(n.requestMessages)||n.responseMessage){for(let e of n.requestMessages||[])e&&t.push(e);n.responseMessage&&t.push(n.responseMessage);continue}t.push(n)}return t}(e),a=[],o=e=>{a.push({...e,stepIndex:a.length+1})},c=i.find(e=>e?.role==="user"&&String(e.content||"").trim());c&&o({id:"input:root",name:"zh"===r?"用户输入":"User input",meta:c.usage?.input?`req ${c.usage.input} tok`:d(String(c.content||""),110),kind:"user",status:"ok",depth:0,interactionIndex:i.indexOf(c),startedAt:s(c.timeInfo?.created)??s(c.timestamp),completedAt:s(c.timeInfo?.completed),rawText:String(c.content||""),rawInput:String(c.content||"")});let f=(0,t.buildAgentCallTree)(i);return f&&(0,t.walkTree)(f,e=>{let t=e.events.find(e=>"user"===e.kind),n=[...e.events].reverse().find(e=>"llm"===e.kind),a=t&&(t.summary||t.interaction?.content)||void 0,s=n&&(n.interaction?.content||n.summary)||void 0;o({id:`agent:${e.id}`,name:0===e.depth?"zh"===r?"控制器路由":"Controller routing":"zh"===r?"子任务执行":"Subtask execution",meta:l(e,r),kind:"agent",status:"ok",depth:e.depth,startedAt:e.startedAt,completedAt:e.endedAt,rawText:[e.agentName,e.subagentType,l(e,r)].filter(Boolean).join(" "),rawInput:a,rawOutput:s}),e.events.forEach((t,n)=>{let a,l,s=function(e,t){var n,r,i;let a="zh"===t;if("user"===e.kind)return{name:a?"用户输入":"User input",meta:e.usage?.input?`req ${e.usage.input} tok`:d(e.summary||"",96)};if("llm"===e.kind){let t;return{name:a?"模型调用":"Model call",meta:[(t=[(n=e).name,n.interaction?.providerID,n.interaction?.modelID,n.summary].filter(Boolean).join(" ").toLowerCase()).includes("openai")||t.includes("gpt")||t.includes("chat.completions")?"OpenAI":t.includes("deepseek")?"DeepSeek":t.includes("anthropic")||t.includes("claude")?"Anthropic":"LLM Provider",e.usage?.input?`req ${e.usage.input} tok`:"",e.usage?.output?`out ${e.usage.output} tok`:""].filter(Boolean).join(" · ")||d(e.summary||"assistant response",96)}}if("skill"===e.kind){let t=e.args?.name||e.args?.skill||e.name||"skill";return{name:a?"执行 Skill":"Run skill",meta:`skill ${t}`}}if("task"===e.kind){let t=e.args?.subagent_type||e.args?.subagentType||"subagent";return{name:a?"调度子任务":"Dispatch subtask",meta:`spawn ${t}`}}return{name:a?"工具调用":"Tool call",meta:(r=e.name||"tool",i=e.args,"bash"===r?`bash ${d(i?.command||"",72)}`:"read"===r?`read ${i?.path||i?.file_path||""}`.trim():"write"===r?`write ${i?.path||i?.file_path||""}`.trim():"glob"===r?`glob ${i?.pattern||""}`.trim():"grep"===r?`grep ${i?.pattern||""}`.trim():`${r}${i?` ${d(u(i,90),90)}`:""}`)}}(t,r),c=t.completedAt||t.startedAt?"ok":"skipped";if("user"===t.kind)a=t.summary||t.interaction?.content||"";else if("llm"===t.kind){let n=t.interactionIndex??-1,s=new Set(e.interactionIndices.filter(e=>e<n)),o=[];for(let t of e.systemPrompts||[])t.text?.trim()&&o.push(`[System]
|
|
2
2
|
${d(t.text,1500)}`);for(let e of Array.from(s).sort((e,t)=>e-t)){let t=i[e];if(!t||"system"===t.role)continue;let n="string"==typeof t.content?t.content:u(t.content,2e3);n.trim()&&("user"===t.role||"opencode"===t.role?o.push(`[User]
|
|
3
3
|
${d(n,2e3)}`):("assistant"===t.role||"subagent"===t.role)&&o.push(`[Assistant]
|
|
4
|
-
${d(n,2e3)}`))}a=o.length>0?o.join("\n\n---\n\n"):void 0;let c=function(e,t){if(!Array.isArray(e)||0===e.length)return"";let n=e.map(e=>e?.function?.name||e?.name||"tool").slice(0,3),r=e.length>n.length?", ...":"";return"zh"===t?`${e.length} 个工具调用: ${n.join(", ")}${r}`:`${e.length} tool call${e.length>1?"s":""}: ${n.join(", ")}${r}`}(t.interaction?.tool_calls,r);l=[t.interaction?.content,c].filter(Boolean).join("\n")||t.summary||""}else("tool"===t.kind||"skill"===t.kind||"task"===t.kind)&&(void 0!==t.args&&(a=u(t.args,2e3)),("tool"===t.kind||"skill"===t.kind)&&void 0!==t.output&&null!==t.output&&(l=u(t.output,2e3)));o({id:`event:${e.id}:${n}`,name:s.name,meta:s.meta,kind:t.kind,status:c,depth:e.depth+1,interactionIndex:t.interactionIndex,eventIndex:n,toolCallId:t._toolCallId,startedAt:t.startedAt,completedAt:t.completedAt,rawText:[s.name,s.meta,t.name,t.summary,u(t.args,500),u(t.output,500)].filter(Boolean).join(" "),rawInput:a||void 0,rawOutput:l||void 0})})}),0===a.length&&o({id:"system:missing-trace",name:"zh"===r?"链路详情缺失":"Trace unavailable",meta:"zh"===r?"未找到可还原的 interactions。":"No interactions were available.",kind:"system",status:"skipped",depth:0,rawText:""}),a}function r(e,t,n="zh"){return Array.isArray(e)&&0!==e.length?e.map(e=>{if(e.trace_anchor?.step_id&&t.some(t=>t.id===e.trace_anchor?.step_id))return e;let r=function(e,t,n="zh"){if(!t.length)return null;let r=String(e.anchor_step_id||e.trace_anchor?.step_id||"").trim();if(r){let e=t.find(e=>e.id===r);if(e)return a(e,"step_id",.98,"zh"===n?"LLM 返回了候选步骤 ID,且后端校验存在":"The model returned a valid step id")}let i=/推理判断|时间窗口匹配/i.test(e.step||"")?null:String(e.step||"").match(/第\s*(\d+)\s*步/i);if(i){let e=Number(i[1]),r=t.find(t=>t.stepIndex===e);if(r)return a(r,"step_index",.9,"zh"===n?"来自故障记录的步骤编号":"Matched by failure step index")}let l=function(e,t,n){let r=u(e,2e3),i=r.match(/(?:tool_call_id|toolCallId|call_)[\"':\s-]*([A-Za-z0-9_.:-]{6,})/)?.[1];if(i){let e=t.find(e=>e.toolCallId===i);if(e)return a(e,"tool_call_id",.99,"zh"===n?"根据 tool_call_id 精确匹配":"Matched exactly by tool_call_id")}let l=r.match(/(?:interaction_index|interactionIndex)[\"':\s-]*(\d+)/)?.[1];if(l){let e=Number(l),r=t.find(t=>t.interactionIndex===e);if(r)return a(r,"interaction_index",.94,"zh"===n?"根据 interaction_index 精确匹配":"Matched by interaction_index")}return null}(e,t,n);if(l)return l;let s=o([e.failure_type,e.description,e.context,e.recovery,e.step].filter(Boolean).join(" ")),d=t.map(e=>{let t=0,n=o(e.rawText||`${e.name} ${e.meta}`);for(let e of Array.from(new Set(s.split(/[^a-z0-9_\-.]+/i).map(e=>e.trim().toLowerCase()).filter(e=>e.length>=3))).slice(0,12))n.includes(e)&&(t+=e.length>4?2:1);return/401|authentication|unauthori[sz]ed|api[_\s-]?key|认证|鉴权|权限/.test(s)&&"llm"===e.kind&&(t+=8),/tool|工具|bash|command|exit code|stderr|非零/.test(s)&&"tool"===e.kind&&(t+=7),/skill|技能|SKILL\.md/i.test(s)&&"skill"===e.kind&&(t+=7),/timeout|超时|卡住/.test(s)&&(t+=3),{step:e,score:t}}).sort((e,t)=>t.score-e.score);if(d[0]?.score>0){let e=d[0].score>=7?"type_rule":"text_match",t=d[0].score>=7?.78:.58;return a(d[0].step,e,t,d[0].score>=7?"zh"===n?"根据错误内容和节点类型匹配":"Matched by error content and step type":"zh"===n?"根据错误上下文文本匹配":"Matched by error context text")}let c=[...t].reverse().find(e=>"llm"===e.kind||"tool"===e.kind||"skill"===e.kind)||[...t].reverse().find(e=>"skipped"!==e.status);return c?a(c,"fallback",.35,"zh"===n?"未找到精确锚点,回退到最后一个已执行关键节点":"Fell back to the latest meaningful executed step"):null}(e,t,n);return r?{...e,trace_anchor:r}:e}):e}function i(e){return[`- step_id: ${e.id}`,` step_index: ${e.stepIndex}`,` name: ${e.name}`,` kind: ${e.kind}`,` meta: ${e.meta||"-"}`,null!=e.interactionIndex?` interaction_index: ${e.interactionIndex}`:"",e.toolCallId?` tool_call_id: ${e.toolCallId}`:"",null!=e.startedAt?` started_at: ${e.startedAt}`:"",null!=e.completedAt?` completed_at: ${e.completedAt}`:"",e.rawText?` evidence_text: ${d(e.rawText,220)}`:""].filter(Boolean).join("\n")}function a(e,t,n,r){return{step_id:e.id,step_index:e.stepIndex,display_name:e.name,kind:e.kind,interaction_index:e.interactionIndex,event_index:e.eventIndex,tool_call_id:e.toolCallId,started_at:e.startedAt,completed_at:e.completedAt,match_method:t,confidence:n,evidence:r}}function l(e,t){let n=[];e.agentName&&n.push(e.agentName),e.subagentType&&n.push(`type ${e.subagentType}`);let r=[e.stats.llmCalls?`${e.stats.llmCalls} LLM`:"",e.stats.toolCalls?`${e.stats.toolCalls} tool`:"",e.stats.skillCalls?`${e.stats.skillCalls} skill`:"",e.stats.taskCalls?`${e.stats.taskCalls} task`:""].filter(Boolean).join(" · ");return r&&n.push(r),n.join(" · ")||("zh"===t?"执行 Agent":"Agent")}function s(e){if(null!=e){if("number"==typeof e&&Number.isFinite(e))return e>0&&e<1e10?1e3*e:e;if("string"==typeof e){let t=e.trim();if(!t)return;if(/^\d+(\.\d+)?$/.test(t)){let e=Number(t);if(!Number.isFinite(e))return;return e>0&&e<1e10?1e3*e:e}let n=Date.parse(t);return Number.isFinite(n)?n:void 0}}}function o(e){return e.toLowerCase().replace(/\s+/g," ").trim()}function u(e,t=300){if(null==e)return"";if("string"==typeof e)return d(e,t);try{return d(JSON.stringify(e),t)}catch{return d(String(e),t)}}function d(e,t){let n=String(e||"");return n.length>t?`${n.slice(0,t)}...`:n}e.s(["attachFailureAnchors",()=>r,"buildFaultPathSteps",()=>n,"formatFaultPathStepForPrompt",()=>i])},864609,e=>{"use strict";let t=globalThis,n=t.__wittyPendingMap??(t.__wittyPendingMap=new Map);function r(e){if(n.has(e.requestId))return Promise.reject(Error(`duplicate requestId: ${e.requestId}`));let t=e.ttlMs??3e5;return new Promise((r,i)=>{let a=setTimeout(()=>{let r=n.get(e.requestId);r&&(n.delete(e.requestId),r.reject(Error(`interaction ${e.kind}/${e.requestId} timed out after ${t}ms`)))},t);n.set(e.requestId,{requestId:e.requestId,kind:e.kind,user:e.user,streamId:e.streamId,resolve:r,reject:i,expiresAt:Date.now()+t,timer:a})})}function i(e,t,r){let i=n.get(e);if(!i)return!1;if(i.user!==t)throw Error("user mismatch on interaction reply");return n.delete(e),clearTimeout(i.timer),i.resolve(r),!0}function a(e,t="stream closed"){let r=0;for(let[i,a]of n)a.streamId===e&&(n.delete(i),clearTimeout(a.timer),a.reject(Error(t)),r++);return r}e.s(["awaitInteraction",()=>r,"cancelStream",()=>a,"resolveInteraction",()=>i])},403577,e=>{"use strict";let t="/workspace/";function n(e){if(!e)return"";let t=e.content;return Array.isArray(t)?t.join("\n"):"string"==typeof t?t:""}let r=/^---\s*([\s\S]*?)\s*---/,i=/^name:\s*(.+)$/m,a=/^description:\s*(.+)$/m;function l(e){let l,s,o=function(e){if(!e)return null;let n=null;for(let r of Object.keys(e)){if(r===t+"SKILL.md")return r;if(!r.startsWith(t)||!r.endsWith("/SKILL.md"))continue;let e=r.slice(t.length).split("/").length;(!n||e<n.depth)&&(n={path:r,depth:e})}return n?.path??null}(e);if(!o||!e)return null;let u=n(e[o]),d=u.match(r)?.[1];return d&&(l=d.match(i)?.[1]?.trim(),s=d.match(a)?.[1]?.trim()),{path:o,content:u,name:l,description:s,folder:function(e){if(!e||!e.startsWith(t))return null;let n=e.slice(t.length).split("/");return n.length<=1?null:n[0]}(o)}}function s(e){return e.replace(/[^\w.-]+/g,"_")}e.s(["fileContentToString",()=>n,"findSkillMd",()=>l,"sanitizeForFilename",()=>s])},773528,e=>{"use strict";var t=e.i(902157),n=e.i(750227),r=e.i(134526);let i=[{key:"documents",exts:[".md",".markdown",".txt",".pdf",".docx",".html",".htm",".xml"]},{key:"data",exts:[".json",".csv",".tsv"]},{key:"code",exts:[".py",".ts",".tsx",".js",".jsx",".mjs",".cjs",".sh",".bash",".zsh",".fish",".go",".rs",".java",".kt",".swift",".rb",".php",".c",".cc",".cpp",".h",".hpp"]},{key:"config",exts:[".yaml",".yml",".toml",".ini",".conf"]},{key:"logs",exts:[".log"]}].flatMap(e=>e.exts),a=new Set(i);i.join(",");let l="uploads";function s(e,i){let a=(0,r.ensureSessionWorkspace)(e,i),s=n.default.join(a,l);return t.default.existsSync(s)||t.default.mkdirSync(s,{recursive:!0}),s}function o(e){return n.default.basename(e).replace(/[^A-Za-z0-9._-]/g,"_").replace(/^\.+/,"").slice(0,80)||"unnamed"}async function u(r){let i=n.default.extname(r).toLowerCase();try{if(".pdf"===i){let n=await e.A(314443),i=n.default||n,a=t.default.readFileSync(r),l=await i(a);return(l?.text||"").trim()||null}if(".docx"===i){let n=await e.A(221312),i=t.default.readFileSync(r);return((await n.extractRawText({buffer:i})).value||"").trim()||null}}catch(e){console.warn("[attachments] text extract failed for",r,e?.message)}return null}async function d(e,r,i){if(i.length>10)return{saved:[],errors:[{name:"(request)",reason:`一次最多上传 10 个文件`}]};let l=s(e,r),u=t.default.readdirSync(l).filter(e=>!e.startsWith(".")).length;if(u+i.length>50)return{saved:[],errors:[{name:"(quota)",reason:`当前会话已有 ${u} 个附件,加上本次将超过上限 50`}]};let d=[],c=[];for(let e of i){let r=e.name||"unnamed",i=n.default.extname(r).toLowerCase();if(!a.has(i)){c.push({name:r,reason:`不支持的文件类型: ${i||"(无扩展名)"}`});continue}if(e.size>0xa00000){c.push({name:r,reason:`文件超过 10MB 上限`});continue}let s=function(e,r){if(!t.default.existsSync(n.default.join(e,r)))return r;let i=n.default.extname(r),a=r.slice(0,r.length-i.length);for(let r=1;r<1e3;r++){let l=`${a}-${r}${i}`;if(!t.default.existsSync(n.default.join(e,l)))return l}return`${a}-${Date.now()}${i}`}(l,o(r)),u=n.default.join(l,s);try{let n=Buffer.from(await e.arrayBuffer());t.default.writeFileSync(u,n),d.push({name:s,absPath:u,bytes:n.length})}catch(e){c.push({name:r,reason:e?.message||"write failed"})}}return{saved:d,errors:c}}async function c(e){let r={};return await Promise.all(e.map(async e=>{let i=n.default.extname(e.name).toLowerCase();if(".pdf"!==i&&".docx"!==i){r[e.name]=null;return}let a=await u(e.absPath);if(!a){r[e.name]=null;return}let l=e.name.slice(0,e.name.length-i.length)+".txt",s=n.default.join(n.default.dirname(e.absPath),l);try{t.default.writeFileSync(s,a,"utf-8"),r[e.name]=l}catch(t){console.warn("[attachments] write sidecar failed:",t?.message),r[e.name]=null}})),r}function f(e,r){let i,a=s(e,r),o=[];try{i=t.default.readdirSync(a)}catch{return[]}let u=new Map;for(let e of i)if(e.endsWith(".txt")){let t=e.slice(0,-4);u.set(t,e)}for(let e of i){let r;if(e.startsWith("."))continue;let s=n.default.extname(e).toLowerCase();if(".txt"===s){let t=e.slice(0,-4);if(i.some(e=>e===t+".pdf"||e===t+".docx"))continue}let d=n.default.join(a,e);try{r=t.default.statSync(d)}catch{continue}if(!r.isFile())continue;let c=u.get(e.slice(0,e.length-s.length));o.push({name:e,size:r.size,relPath:`${l}/${e}`,textRelPath:c?`${l}/${c}`:void 0,mime:{".md":"text/markdown",".markdown":"text/markdown",".txt":"text/plain",".pdf":"application/pdf",".docx":"application/vnd.openxmlformats-officedocument.wordprocessingml.document",".json":"application/json",".csv":"text/csv",".html":"text/html",".htm":"text/html",".xml":"application/xml"}[n.default.extname(e).toLowerCase()]||"text/plain",mtimeMs:r.mtimeMs})}return o.sort((e,t)=>t.mtimeMs-e.mtimeMs),o}function m(e,r,i){if(o(i)!==i)return!1;let a=s(e,r),l=n.default.join(a,i);if(!l.startsWith(a+n.default.sep)&&l!==a)return!1;let u=!1;try{t.default.existsSync(l)&&(t.default.unlinkSync(l),u=!0)}catch(e){console.warn("[attachments] delete failed:",e?.message)}let d=n.default.extname(i).toLowerCase();if(".pdf"===d||".docx"===d){let e=i.slice(0,i.length-d.length)+".txt",r=n.default.join(a,e);try{t.default.existsSync(r)&&t.default.unlinkSync(r)}catch{}}return u}function p(e){return 0===e.length?"":["## 用户上传的参考资料(./uploads/,只读)","需要时用 `read` 工具读取以下文件;不要写入或修改 uploads/ 目录。","",...e.map(e=>{let t=e.textRelPath||e.relPath,n=e.textRelPath?`(原文件 ${e.relPath},已转纯文本)`:"";return`- ./${t}${n}`}),""].join("\n")}e.s(["UPLOADS_DIR",0,l,"deleteAttachment",()=>m,"formatAttachmentsForPrompt",()=>p,"listAttachments",()=>f,"materializeTextSidecars",()=>c,"saveUploadedFiles",()=>d],773528)},87702,e=>{"use strict";var t=e.i(874533),n=e.i(902157),r=e.i(660526),i=e.i(750227);let a=/\b((?:scripts|references)\/[A-Za-z0-9_./-]+\.[A-Za-z0-9]+)/g;function l(e,s={}){let o=[],u=Object.keys(e),d=s.skillMdKey??u.find(e=>"SKILL.md"===e||e.endsWith("/SKILL.md"));if(d&&null!=e[d]){let t=e[d],n=d.includes("/")?d.slice(0,d.lastIndexOf("/")+1):"",r=new Set;for(let e of t.matchAll(a))r.add(e[1]);let i=[...r].filter(t=>null==e[t]&&null==e[n+t]);o.push({name:"referenced-files",pass:0===i.length,detail:i.length?`SKILL.md 引用了 bundle 里不存在的文件:${i.join(", ")}(引用了就必须写出来)`:`SKILL.md 引用的 ${r.size} 个脚本/参考文件都在 bundle 里`})}else o.push({name:"referenced-files",pass:!1,detail:"候选 bundle 里找不到 SKILL.md"});let c=n.default.mkdtempSync(i.default.join(r.default.tmpdir(),"skillopt-verify-"));try{for(let[r,a]of Object.entries(e)){let e=function(e){let t=i.default.extname(e).toLowerCase();return".py"===t?{bin:"python3",args:e=>["-m","py_compile",e]}:".js"===t||".mjs"===t||".cjs"===t?{bin:"node",args:e=>["--check",e]}:".sh"===t||".bash"===t?{bin:"bash",args:e=>["-n",e]}:null}(r);if(!e)continue;let l=i.default.join(c,i.default.basename(r));n.default.writeFileSync(l,a??"");try{(0,t.execFileSync)(e.bin,e.args(l),{stdio:"pipe"}),o.push({name:`compile ${r}`,pass:!0,detail:`${e.bin} 语法检查通过`})}catch(t){if(t?.code==="ENOENT")o.push({name:`compile ${r}`,pass:!0,skipped:!0,detail:`跳过:${e.bin} 不可用`});else{let n=String(t?.stderr||t?.message||"").slice(0,240);o.push({name:`compile ${r}`,pass:!1,detail:`${e.bin} 语法检查失败:${n}`})}}}}finally{n.default.rmSync(c,{recursive:!0,force:!0})}let f=o.filter(e=>!e.pass&&!e.skipped).map(e=>`${e.name}: ${e.detail}`);return{ok:0===f.length,checks:o,failures:f}}let s=/__main__|sys\.argv/,o=/\b((?:19|20)\d{2})-\d{2}-\d{2}/g,u=/"[^"]*year[^"]*"\s*:\s*"?((?:19|20)\d{2})\b/gi,d=/"[^"]*(?:year|time|date|timestamp)[^"]*"\s*:/i;function c(e,t){let n=e;for(let e of t.split(".")){if(null==n||"object"!=typeof n)return;n=n[e]}return n}let f=new Map;function m(e){let n=f.get(e);if(void 0!==n)return n;let r=!1;try{(0,t.execFileSync)(e,["--version"],{stdio:"pipe"}),r=!0}catch(e){r="ENOENT"!==e.code}return f.set(e,r),r}function p(e,t){return{id:`year=${e}`,describe:`脚本算出的年份须含真值 ${e}`,check(n){if(t)try{let r=c(JSON.parse(n),t);if(null!=r){let n=String(r),i=n.startsWith(e);return{pass:i,detail:i?`${t}="${n}" 以 ${e} 开头`:`${t}="${n}" 非 ${e}(很可能硬编码/回落当前年)`}}}catch{}let r=new Set;for(let e of n.matchAll(o))r.add(e[1]);for(let e of n.matchAll(u))r.add(e[1]);return 0===r.size?d.test(n)?{pass:!1,detail:`脚本有日期字段但没算出任何年份(None/空,应为 ${e})——取年逻辑很可能没匹配到任何行`}:{pass:!0,skipped:!0,detail:"脚本输出无日期字段 → 该脚本不负责年份,跳过(交行为门)"}:r.has(e)?{pass:!0,detail:`脚本算出的时间戳/year 字段含真值 ${e}`}:{pass:!1,detail:`脚本算出的年份 [${[...r].join(", ")}] 不含真值 ${e}(很可能硬编码/回落当前系统年)`}}}}function h(e,t,n){let r=Number(t);return{id:`num:${e}=${t}`,describe:`脚本算出的「${e}」须含 ${t}`,check(i){if(n)try{let e=c(JSON.parse(i),n);if(null!=e){let i=Number(e)===r;return{pass:i,detail:i?`${n}=${e}`:`${n}=${JSON.stringify(e)} ≠ ${t}`}}}catch{}let a=new Set;for(let e of i.matchAll(/:\s*(-?\d+(?:\.\d+)?)\b/g))a.add(Number(e[1]));return 0===a.size?{pass:!0,skipped:!0,detail:`输出无数值字段 → 跳过「${e}」`}:a.has(r)?{pass:!0,detail:`脚本算出的数值含「${e}」=${t}`}:{pass:!1,detail:`脚本算出的数值不含「${e}」期望 ${t}`}}}}function g(e,a){let l=[],o=[];if(!a.assertions.length)return l.push({name:"script-truth",pass:!0,skipped:!0,detail:"无可推导的确定性真值断言 → 跳过(交行为门②)"}),{ok:!0,checks:l,failures:[],ran:o};if(!n.default.existsSync(a.logPath))return l.push({name:"script-truth",pass:!0,skipped:!0,detail:`示例输入不存在(${a.logPath}) → 跳过`}),{ok:!0,checks:l,failures:[],ran:o};if(!m("python3"))return l.push({name:"script-truth",pass:!0,skipped:!0,detail:"跳过:python3 不可用(fail-open)"}),{ok:!0,checks:l,failures:[],ran:o};let u=n.default.mkdtempSync(i.default.join(r.default.tmpdir(),"skillopt-truth-")),d="",c=!1;try{for(let[t,r]of Object.entries(e)){if(t.includes(".."))continue;let e=i.default.join(u,t);n.default.mkdirSync(i.default.dirname(e),{recursive:!0}),n.default.writeFileSync(e,r??"")}for(let[n,r]of Object.entries(e))if(n.endsWith(".py")&&s.test(r)){o.push(n);try{d+=(0,t.execFileSync)("python3",[i.default.join(u,n),a.logPath],{stdio:"pipe",timeout:3e4,maxBuffer:0x10000000}).toString()+"\n"}catch(e){if(e?.code==="ENOENT"){c=!0;break}l.push({name:`run ${n}`,pass:!0,skipped:!0,detail:`对真实输入运行出错(可能非主脚本):${String(e?.stderr||e?.message||"").slice(0,120)}`})}}}finally{n.default.rmSync(u,{recursive:!0,force:!0})}if(c)return l.push({name:"script-truth",pass:!0,skipped:!0,detail:"跳过:python3 不可用"}),{ok:!0,checks:l,failures:[],ran:o};if(0===o.length)return l.push({name:"script-truth",pass:!0,skipped:!0,detail:"无可运行脚本 → 跳过"}),{ok:!0,checks:l,failures:[],ran:o};for(let e of a.assertions){let t=e.check(d);l.push({name:`script-truth ${e.id}`,pass:t.pass,skipped:t.skipped,detail:t.detail})}let f=l.filter(e=>!e.pass&&!e.skipped).map(e=>`${e.name}: ${e.detail}`);return{ok:0===f.length,checks:l,failures:f,ran:o}}function y(e,a,l=6e3){if(!n.default.existsSync(a)||!m("python3"))return"";let o=n.default.mkdtempSync(i.default.join(r.default.tmpdir(),"skillopt-sample-")),u="";try{for(let[t,r]of Object.entries(e)){if(t.includes(".."))continue;let e=i.default.join(o,t);n.default.mkdirSync(i.default.dirname(e),{recursive:!0}),n.default.writeFileSync(e,r??"")}for(let[n,r]of Object.entries(e))if(n.endsWith(".py")&&s.test(r))try{u+=(0,t.execFileSync)("python3",[i.default.join(o,n),a],{stdio:"pipe",timeout:3e4,maxBuffer:0x10000000}).toString()+"\n"}catch{}}finally{n.default.rmSync(o,{recursive:!0,force:!0})}return u.slice(0,l)}e.s(["makeNumericAssertion",()=>h,"makeYearAssertion",()=>p,"runScriptsForSample",()=>y,"verifyScriptTruth",()=>g,"verifyStructure",()=>l])},484695,e=>{e.v(e=>Promise.resolve().then(()=>e(759453)))},419781,e=>{e.v(e=>Promise.resolve().then(()=>e(106411)))},335270,e=>{e.v(t=>Promise.all(["server/chunks/src_lib_engine_evaluation_evaluator-execution-recorder_ts_d7fedcdd._.js","server/chunks/src_lib_dbf3c792._.js","server/chunks/src_9c08bd78._.js","server/chunks/src_lib_ea85a447._.js"].map(t=>e.l(t))).then(()=>t(982505)))},221312,e=>{e.v(t=>Promise.all(["server/chunks/[root-of-the-server]__cd09b834._.js","server/chunks/node_modules_ec10bb66._.js"].map(t=>e.l(t))).then(()=>t(998879)))},314443,e=>{e.v(t=>Promise.all(["server/chunks/[root-of-the-server]__f7a02b6d._.js","server/chunks/[root-of-the-server]__a130a0e5._.js"].map(t=>e.l(t))).then(()=>t(574267)))}];
|
|
4
|
+
${d(n,2e3)}`))}a=o.length>0?o.join("\n\n---\n\n"):void 0;let c=function(e,t){if(!Array.isArray(e)||0===e.length)return"";let n=e.map(e=>e?.function?.name||e?.name||"tool").slice(0,3),r=e.length>n.length?", ...":"";return"zh"===t?`${e.length} 个工具调用: ${n.join(", ")}${r}`:`${e.length} tool call${e.length>1?"s":""}: ${n.join(", ")}${r}`}(t.interaction?.tool_calls,r);l=[t.interaction?.content,c].filter(Boolean).join("\n")||t.summary||""}else("tool"===t.kind||"skill"===t.kind||"task"===t.kind)&&(void 0!==t.args&&(a=u(t.args,2e3)),("tool"===t.kind||"skill"===t.kind)&&void 0!==t.output&&null!==t.output&&(l=u(t.output,2e3)));o({id:`event:${e.id}:${n}`,name:s.name,meta:s.meta,kind:t.kind,status:c,depth:e.depth+1,interactionIndex:t.interactionIndex,eventIndex:n,toolCallId:t._toolCallId,startedAt:t.startedAt,completedAt:t.completedAt,rawText:[s.name,s.meta,t.name,t.summary,u(t.args,500),u(t.output,500)].filter(Boolean).join(" "),rawInput:a||void 0,rawOutput:l||void 0})})}),0===a.length&&o({id:"system:missing-trace",name:"zh"===r?"链路详情缺失":"Trace unavailable",meta:"zh"===r?"未找到可还原的 interactions。":"No interactions were available.",kind:"system",status:"skipped",depth:0,rawText:""}),a}function r(e,t,n="zh"){return Array.isArray(e)&&0!==e.length?e.map(e=>{if(e.trace_anchor?.step_id&&t.some(t=>t.id===e.trace_anchor?.step_id))return e;let r=function(e,t,n="zh"){if(!t.length)return null;let r=String(e.anchor_step_id||e.trace_anchor?.step_id||"").trim();if(r){let e=t.find(e=>e.id===r);if(e)return a(e,"step_id",.98,"zh"===n?"LLM 返回了候选步骤 ID,且后端校验存在":"The model returned a valid step id")}let i=/推理判断|时间窗口匹配/i.test(e.step||"")?null:String(e.step||"").match(/第\s*(\d+)\s*步/i);if(i){let e=Number(i[1]),r=t.find(t=>t.stepIndex===e);if(r)return a(r,"step_index",.9,"zh"===n?"来自故障记录的步骤编号":"Matched by failure step index")}let l=function(e,t,n){let r=u(e,2e3),i=r.match(/(?:tool_call_id|toolCallId|call_)[\"':\s-]*([A-Za-z0-9_.:-]{6,})/)?.[1];if(i){let e=t.find(e=>e.toolCallId===i);if(e)return a(e,"tool_call_id",.99,"zh"===n?"根据 tool_call_id 精确匹配":"Matched exactly by tool_call_id")}let l=r.match(/(?:interaction_index|interactionIndex)[\"':\s-]*(\d+)/)?.[1];if(l){let e=Number(l),r=t.find(t=>t.interactionIndex===e);if(r)return a(r,"interaction_index",.94,"zh"===n?"根据 interaction_index 精确匹配":"Matched by interaction_index")}return null}(e,t,n);if(l)return l;let s=o([e.failure_type,e.description,e.context,e.recovery,e.step].filter(Boolean).join(" ")),d=t.map(e=>{let t=0,n=o(e.rawText||`${e.name} ${e.meta}`);for(let e of Array.from(new Set(s.split(/[^a-z0-9_\-.]+/i).map(e=>e.trim().toLowerCase()).filter(e=>e.length>=3))).slice(0,12))n.includes(e)&&(t+=e.length>4?2:1);return/401|authentication|unauthori[sz]ed|api[_\s-]?key|认证|鉴权|权限/.test(s)&&"llm"===e.kind&&(t+=8),/tool|工具|bash|command|exit code|stderr|非零/.test(s)&&"tool"===e.kind&&(t+=7),/skill|技能|SKILL\.md/i.test(s)&&"skill"===e.kind&&(t+=7),/timeout|超时|卡住/.test(s)&&(t+=3),{step:e,score:t}}).sort((e,t)=>t.score-e.score);if(d[0]?.score>0){let e=d[0].score>=7?"type_rule":"text_match",t=d[0].score>=7?.78:.58;return a(d[0].step,e,t,d[0].score>=7?"zh"===n?"根据错误内容和节点类型匹配":"Matched by error content and step type":"zh"===n?"根据错误上下文文本匹配":"Matched by error context text")}let c=[...t].reverse().find(e=>"llm"===e.kind||"tool"===e.kind||"skill"===e.kind)||[...t].reverse().find(e=>"skipped"!==e.status);return c?a(c,"fallback",.35,"zh"===n?"未找到精确锚点,回退到最后一个已执行关键节点":"Fell back to the latest meaningful executed step"):null}(e,t,n);return r?{...e,trace_anchor:r}:e}):e}function i(e){return[`- step_id: ${e.id}`,` step_index: ${e.stepIndex}`,` name: ${e.name}`,` kind: ${e.kind}`,` meta: ${e.meta||"-"}`,null!=e.interactionIndex?` interaction_index: ${e.interactionIndex}`:"",e.toolCallId?` tool_call_id: ${e.toolCallId}`:"",null!=e.startedAt?` started_at: ${e.startedAt}`:"",null!=e.completedAt?` completed_at: ${e.completedAt}`:"",e.rawText?` evidence_text: ${d(e.rawText,220)}`:""].filter(Boolean).join("\n")}function a(e,t,n,r){return{step_id:e.id,step_index:e.stepIndex,display_name:e.name,kind:e.kind,interaction_index:e.interactionIndex,event_index:e.eventIndex,tool_call_id:e.toolCallId,started_at:e.startedAt,completed_at:e.completedAt,match_method:t,confidence:n,evidence:r}}function l(e,t){let n=[];e.agentName&&n.push(e.agentName),e.subagentType&&n.push(`type ${e.subagentType}`);let r=[e.stats.llmCalls?`${e.stats.llmCalls} LLM`:"",e.stats.toolCalls?`${e.stats.toolCalls} tool`:"",e.stats.skillCalls?`${e.stats.skillCalls} skill`:"",e.stats.taskCalls?`${e.stats.taskCalls} task`:""].filter(Boolean).join(" · ");return r&&n.push(r),n.join(" · ")||("zh"===t?"执行 Agent":"Agent")}function s(e){if(null!=e){if("number"==typeof e&&Number.isFinite(e))return e>0&&e<1e10?1e3*e:e;if("string"==typeof e){let t=e.trim();if(!t)return;if(/^\d+(\.\d+)?$/.test(t)){let e=Number(t);if(!Number.isFinite(e))return;return e>0&&e<1e10?1e3*e:e}let n=Date.parse(t);return Number.isFinite(n)?n:void 0}}}function o(e){return e.toLowerCase().replace(/\s+/g," ").trim()}function u(e,t=300){if(null==e)return"";if("string"==typeof e)return d(e,t);try{return d(JSON.stringify(e),t)}catch{return d(String(e),t)}}function d(e,t){let n=String(e||"");return n.length>t?`${n.slice(0,t)}...`:n}e.s(["attachFailureAnchors",()=>r,"buildFaultPathSteps",()=>n,"formatFaultPathStepForPrompt",()=>i])},864609,e=>{"use strict";let t=globalThis,n=t.__wittyPendingMap??(t.__wittyPendingMap=new Map);function r(e){if(n.has(e.requestId))return Promise.reject(Error(`duplicate requestId: ${e.requestId}`));let t=e.ttlMs??3e5;return new Promise((r,i)=>{let a=setTimeout(()=>{let r=n.get(e.requestId);r&&(n.delete(e.requestId),r.reject(Error(`interaction ${e.kind}/${e.requestId} timed out after ${t}ms`)))},t);n.set(e.requestId,{requestId:e.requestId,kind:e.kind,user:e.user,streamId:e.streamId,resolve:r,reject:i,expiresAt:Date.now()+t,timer:a})})}function i(e,t,r){let i=n.get(e);if(!i)return!1;if(i.user!==t)throw Error("user mismatch on interaction reply");return n.delete(e),clearTimeout(i.timer),i.resolve(r),!0}function a(e,t="stream closed"){let r=0;for(let[i,a]of n)a.streamId===e&&(n.delete(i),clearTimeout(a.timer),a.reject(Error(t)),r++);return r}e.s(["awaitInteraction",()=>r,"cancelStream",()=>a,"resolveInteraction",()=>i])},403577,e=>{"use strict";let t="/workspace/";function n(e){if(!e)return"";let t=e.content;return Array.isArray(t)?t.join("\n"):"string"==typeof t?t:""}let r=/^---\s*([\s\S]*?)\s*---/,i=/^name:\s*(.+)$/m,a=/^description:\s*(.+)$/m;function l(e){let l,s,o=function(e){if(!e)return null;let n=null;for(let r of Object.keys(e)){if(r===t+"SKILL.md")return r;if(!r.startsWith(t)||!r.endsWith("/SKILL.md"))continue;let e=r.slice(t.length).split("/").length;(!n||e<n.depth)&&(n={path:r,depth:e})}return n?.path??null}(e);if(!o||!e)return null;let u=n(e[o]),d=u.match(r)?.[1];return d&&(l=d.match(i)?.[1]?.trim(),s=d.match(a)?.[1]?.trim()),{path:o,content:u,name:l,description:s,folder:function(e){if(!e||!e.startsWith(t))return null;let n=e.slice(t.length).split("/");return n.length<=1?null:n[0]}(o)}}function s(e){return e.replace(/[^\w.-]+/g,"_")}e.s(["fileContentToString",()=>n,"findSkillMd",()=>l,"sanitizeForFilename",()=>s])},773528,e=>{"use strict";var t=e.i(902157),n=e.i(750227),r=e.i(134526);let i=[{key:"documents",exts:[".md",".markdown",".txt",".pdf",".docx",".html",".htm",".xml"]},{key:"data",exts:[".json",".csv",".tsv"]},{key:"code",exts:[".py",".ts",".tsx",".js",".jsx",".mjs",".cjs",".sh",".bash",".zsh",".fish",".go",".rs",".java",".kt",".swift",".rb",".php",".c",".cc",".cpp",".h",".hpp"]},{key:"config",exts:[".yaml",".yml",".toml",".ini",".conf"]},{key:"logs",exts:[".log"]}].flatMap(e=>e.exts),a=new Set(i);i.join(",");let l="uploads";function s(e,i){let a=(0,r.ensureSessionWorkspace)(e,i),s=n.default.join(a,l);return t.default.existsSync(s)||t.default.mkdirSync(s,{recursive:!0}),s}function o(e){return n.default.basename(e).replace(/[^A-Za-z0-9._-]/g,"_").replace(/^\.+/,"").slice(0,80)||"unnamed"}async function u(r){let i=n.default.extname(r).toLowerCase();try{if(".pdf"===i){let n=await e.A(314443),i=n.default||n,a=t.default.readFileSync(r),l=await i(a);return(l?.text||"").trim()||null}if(".docx"===i){let n=await e.A(221312),i=t.default.readFileSync(r);return((await n.extractRawText({buffer:i})).value||"").trim()||null}}catch(e){console.warn("[attachments] text extract failed for",r,e?.message)}return null}async function d(e,r,i){if(i.length>10)return{saved:[],errors:[{name:"(request)",reason:`一次最多上传 10 个文件`}]};let l=s(e,r),u=t.default.readdirSync(l).filter(e=>!e.startsWith(".")).length;if(u+i.length>50)return{saved:[],errors:[{name:"(quota)",reason:`当前会话已有 ${u} 个附件,加上本次将超过上限 50`}]};let d=[],c=[];for(let e of i){let r=e.name||"unnamed",i=n.default.extname(r).toLowerCase();if(!a.has(i)){c.push({name:r,reason:`不支持的文件类型: ${i||"(无扩展名)"}`});continue}if(e.size>0xa00000){c.push({name:r,reason:`文件超过 10MB 上限`});continue}let s=function(e,r){if(!t.default.existsSync(n.default.join(e,r)))return r;let i=n.default.extname(r),a=r.slice(0,r.length-i.length);for(let r=1;r<1e3;r++){let l=`${a}-${r}${i}`;if(!t.default.existsSync(n.default.join(e,l)))return l}return`${a}-${Date.now()}${i}`}(l,o(r)),u=n.default.join(l,s);try{let n=Buffer.from(await e.arrayBuffer());t.default.writeFileSync(u,n),d.push({name:s,absPath:u,bytes:n.length})}catch(e){c.push({name:r,reason:e?.message||"write failed"})}}return{saved:d,errors:c}}async function c(e){let r={};return await Promise.all(e.map(async e=>{let i=n.default.extname(e.name).toLowerCase();if(".pdf"!==i&&".docx"!==i){r[e.name]=null;return}let a=await u(e.absPath);if(!a){r[e.name]=null;return}let l=e.name.slice(0,e.name.length-i.length)+".txt",s=n.default.join(n.default.dirname(e.absPath),l);try{t.default.writeFileSync(s,a,"utf-8"),r[e.name]=l}catch(t){console.warn("[attachments] write sidecar failed:",t?.message),r[e.name]=null}})),r}function f(e,r){let i,a=s(e,r),o=[];try{i=t.default.readdirSync(a)}catch{return[]}let u=new Map;for(let e of i)if(e.endsWith(".txt")){let t=e.slice(0,-4);u.set(t,e)}for(let e of i){let r;if(e.startsWith("."))continue;let s=n.default.extname(e).toLowerCase();if(".txt"===s){let t=e.slice(0,-4);if(i.some(e=>e===t+".pdf"||e===t+".docx"))continue}let d=n.default.join(a,e);try{r=t.default.statSync(d)}catch{continue}if(!r.isFile())continue;let c=u.get(e.slice(0,e.length-s.length));o.push({name:e,size:r.size,relPath:`${l}/${e}`,textRelPath:c?`${l}/${c}`:void 0,mime:{".md":"text/markdown",".markdown":"text/markdown",".txt":"text/plain",".pdf":"application/pdf",".docx":"application/vnd.openxmlformats-officedocument.wordprocessingml.document",".json":"application/json",".csv":"text/csv",".html":"text/html",".htm":"text/html",".xml":"application/xml"}[n.default.extname(e).toLowerCase()]||"text/plain",mtimeMs:r.mtimeMs})}return o.sort((e,t)=>t.mtimeMs-e.mtimeMs),o}function m(e,r,i){if(o(i)!==i)return!1;let a=s(e,r),l=n.default.join(a,i);if(!l.startsWith(a+n.default.sep)&&l!==a)return!1;let u=!1;try{t.default.existsSync(l)&&(t.default.unlinkSync(l),u=!0)}catch(e){console.warn("[attachments] delete failed:",e?.message)}let d=n.default.extname(i).toLowerCase();if(".pdf"===d||".docx"===d){let e=i.slice(0,i.length-d.length)+".txt",r=n.default.join(a,e);try{t.default.existsSync(r)&&t.default.unlinkSync(r)}catch{}}return u}function p(e){return 0===e.length?"":["## 用户上传的参考资料(./uploads/,只读)","需要时用 `read` 工具读取以下文件;不要写入或修改 uploads/ 目录。","",...e.map(e=>{let t=e.textRelPath||e.relPath,n=e.textRelPath?`(原文件 ${e.relPath},已转纯文本)`:"";return`- ./${t}${n}`}),""].join("\n")}e.s(["UPLOADS_DIR",0,l,"deleteAttachment",()=>m,"formatAttachmentsForPrompt",()=>p,"listAttachments",()=>f,"materializeTextSidecars",()=>c,"saveUploadedFiles",()=>d],773528)},87702,e=>{"use strict";var t=e.i(874533),n=e.i(902157),r=e.i(660526),i=e.i(750227);let a=/\b((?:scripts|references)\/[A-Za-z0-9_./-]+\.[A-Za-z0-9]+)/g;function l(e,s={}){let o=[],u=Object.keys(e),d=s.skillMdKey??u.find(e=>"SKILL.md"===e||e.endsWith("/SKILL.md"));if(d&&null!=e[d]){let t=e[d],n=d.includes("/")?d.slice(0,d.lastIndexOf("/")+1):"",r=new Set;for(let e of t.matchAll(a))r.add(e[1]);let i=[...r].filter(t=>null==e[t]&&null==e[n+t]);o.push({name:"referenced-files",pass:0===i.length,detail:i.length?`SKILL.md 引用了 bundle 里不存在的文件:${i.join(", ")}(引用了就必须写出来)`:`SKILL.md 引用的 ${r.size} 个脚本/参考文件都在 bundle 里`})}else o.push({name:"referenced-files",pass:!1,detail:"候选 bundle 里找不到 SKILL.md"});let c=n.default.mkdtempSync(i.default.join(r.default.tmpdir(),"skillopt-verify-"));try{for(let[r,a]of Object.entries(e)){let e=function(e){let t=i.default.extname(e).toLowerCase();return".py"===t?{bin:"python3",args:e=>["-m","py_compile",e]}:".js"===t||".mjs"===t||".cjs"===t?{bin:"node",args:e=>["--check",e]}:".sh"===t||".bash"===t?{bin:"bash",args:e=>["-n",e]}:null}(r);if(!e)continue;let l=i.default.join(c,i.default.basename(r));n.default.writeFileSync(l,a??"");try{(0,t.execFileSync)(e.bin,e.args(l),{stdio:"pipe"}),o.push({name:`compile ${r}`,pass:!0,detail:`${e.bin} 语法检查通过`})}catch(t){if(t?.code==="ENOENT")o.push({name:`compile ${r}`,pass:!0,skipped:!0,detail:`跳过:${e.bin} 不可用`});else{let n=String(t?.stderr||t?.message||"").slice(0,240);o.push({name:`compile ${r}`,pass:!1,detail:`${e.bin} 语法检查失败:${n}`})}}}}finally{n.default.rmSync(c,{recursive:!0,force:!0})}let f=o.filter(e=>!e.pass&&!e.skipped).map(e=>`${e.name}: ${e.detail}`);return{ok:0===f.length,checks:o,failures:f}}let s=/__main__|sys\.argv/,o=/\b((?:19|20)\d{2})-\d{2}-\d{2}/g,u=/"[^"]*year[^"]*"\s*:\s*"?((?:19|20)\d{2})\b/gi,d=/"[^"]*(?:year|time|date|timestamp)[^"]*"\s*:/i;function c(e,t){let n=e;for(let e of t.split(".")){if(null==n||"object"!=typeof n)return;n=n[e]}return n}let f=new Map;function m(e){let n=f.get(e);if(void 0!==n)return n;let r=!1;try{(0,t.execFileSync)(e,["--version"],{stdio:"pipe"}),r=!0}catch(e){r="ENOENT"!==e.code}return f.set(e,r),r}function p(e,t){return{id:`year=${e}`,describe:`脚本算出的年份须含真值 ${e}`,check(n){if(t)try{let r=c(JSON.parse(n),t);if(null!=r){let n=String(r),i=n.startsWith(e);return{pass:i,detail:i?`${t}="${n}" 以 ${e} 开头`:`${t}="${n}" 非 ${e}(很可能硬编码/回落当前年)`}}}catch{}let r=new Set;for(let e of n.matchAll(o))r.add(e[1]);for(let e of n.matchAll(u))r.add(e[1]);return 0===r.size?d.test(n)?{pass:!1,detail:`脚本有日期字段但没算出任何年份(None/空,应为 ${e})——取年逻辑很可能没匹配到任何行`}:{pass:!0,skipped:!0,detail:"脚本输出无日期字段 → 该脚本不负责年份,跳过(交行为门)"}:r.has(e)?{pass:!0,detail:`脚本算出的时间戳/year 字段含真值 ${e}`}:{pass:!1,detail:`脚本算出的年份 [${[...r].join(", ")}] 不含真值 ${e}(很可能硬编码/回落当前系统年)`}}}}function h(e,t,n){let r=Number(t);return{id:`num:${e}=${t}`,describe:`脚本算出的「${e}」须含 ${t}`,check(i){if(n)try{let e=c(JSON.parse(i),n);if(null!=e){let i=Number(e)===r;return{pass:i,detail:i?`${n}=${e}`:`${n}=${JSON.stringify(e)} ≠ ${t}`}}}catch{}let a=new Set;for(let e of i.matchAll(/:\s*(-?\d+(?:\.\d+)?)\b/g))a.add(Number(e[1]));return 0===a.size?{pass:!0,skipped:!0,detail:`输出无数值字段 → 跳过「${e}」`}:a.has(r)?{pass:!0,detail:`脚本算出的数值含「${e}」=${t}`}:{pass:!1,detail:`脚本算出的数值不含「${e}」期望 ${t}`}}}}function g(e,a){let l=[],o=[];if(!a.assertions.length)return l.push({name:"script-truth",pass:!0,skipped:!0,detail:"无可推导的确定性真值断言 → 跳过(交行为门②)"}),{ok:!0,checks:l,failures:[],ran:o};if(!n.default.existsSync(a.logPath))return l.push({name:"script-truth",pass:!0,skipped:!0,detail:`示例输入不存在(${a.logPath}) → 跳过`}),{ok:!0,checks:l,failures:[],ran:o};if(!m("python3"))return l.push({name:"script-truth",pass:!0,skipped:!0,detail:"跳过:python3 不可用(fail-open)"}),{ok:!0,checks:l,failures:[],ran:o};let u=n.default.mkdtempSync(i.default.join(r.default.tmpdir(),"skillopt-truth-")),d="",c=!1;try{for(let[t,r]of Object.entries(e)){if(t.includes(".."))continue;let e=i.default.join(u,t);n.default.mkdirSync(i.default.dirname(e),{recursive:!0}),n.default.writeFileSync(e,r??"")}for(let[n,r]of Object.entries(e))if(n.endsWith(".py")&&s.test(r)){o.push(n);try{d+=(0,t.execFileSync)("python3",[i.default.join(u,n),a.logPath],{stdio:"pipe",timeout:3e4,maxBuffer:0x10000000}).toString()+"\n"}catch(e){if(e?.code==="ENOENT"){c=!0;break}l.push({name:`run ${n}`,pass:!0,skipped:!0,detail:`对真实输入运行出错(可能非主脚本):${String(e?.stderr||e?.message||"").slice(0,120)}`})}}}finally{n.default.rmSync(u,{recursive:!0,force:!0})}if(c)return l.push({name:"script-truth",pass:!0,skipped:!0,detail:"跳过:python3 不可用"}),{ok:!0,checks:l,failures:[],ran:o};if(0===o.length)return l.push({name:"script-truth",pass:!0,skipped:!0,detail:"无可运行脚本 → 跳过"}),{ok:!0,checks:l,failures:[],ran:o};for(let e of a.assertions){let t=e.check(d);l.push({name:`script-truth ${e.id}`,pass:t.pass,skipped:t.skipped,detail:t.detail})}let f=l.filter(e=>!e.pass&&!e.skipped).map(e=>`${e.name}: ${e.detail}`);return{ok:0===f.length,checks:l,failures:f,ran:o}}function y(e,a,l=6e3){if(!n.default.existsSync(a)||!m("python3"))return"";let o=n.default.mkdtempSync(i.default.join(r.default.tmpdir(),"skillopt-sample-")),u="";try{for(let[t,r]of Object.entries(e)){if(t.includes(".."))continue;let e=i.default.join(o,t);n.default.mkdirSync(i.default.dirname(e),{recursive:!0}),n.default.writeFileSync(e,r??"")}for(let[n,r]of Object.entries(e))if(n.endsWith(".py")&&s.test(r))try{u+=(0,t.execFileSync)("python3",[i.default.join(o,n),a],{stdio:"pipe",timeout:3e4,maxBuffer:0x10000000}).toString()+"\n"}catch{}}finally{n.default.rmSync(o,{recursive:!0,force:!0})}return u.slice(0,l)}e.s(["makeNumericAssertion",()=>h,"makeYearAssertion",()=>p,"runScriptsForSample",()=>y,"verifyScriptTruth",()=>g,"verifyStructure",()=>l])},484695,e=>{e.v(e=>Promise.resolve().then(()=>e(759453)))},419781,e=>{e.v(e=>Promise.resolve().then(()=>e(106411)))},335270,e=>{e.v(t=>Promise.all(["server/chunks/src_lib_engine_evaluation_evaluator-execution-recorder_ts_d7fedcdd._.js","server/chunks/src_lib_a03a423b._.js","server/chunks/src_9c08bd78._.js","server/chunks/src_lib_ea85a447._.js"].map(t=>e.l(t))).then(()=>t(982505)))},221312,e=>{e.v(t=>Promise.all(["server/chunks/[root-of-the-server]__cd09b834._.js","server/chunks/node_modules_ec10bb66._.js"].map(t=>e.l(t))).then(()=>t(998879)))},314443,e=>{e.v(t=>Promise.all(["server/chunks/[root-of-the-server]__f7a02b6d._.js","server/chunks/[root-of-the-server]__a130a0e5._.js"].map(t=>e.l(t))).then(()=>t(574267)))}];
|
|
5
5
|
|
|
6
6
|
//# sourceMappingURL=_1c2f3589._.js.map
|
|
@@ -365,6 +365,6 @@ ${t}
|
|
|
365
365
|
${e}
|
|
366
366
|
|
|
367
367
|
**请提取最终结果:**
|
|
368
|
-
`}e.s(["EXTRACTION_PROMPT",0,t,"generateExtractionPrompt",()=>A])},191878,e=>e.a(async(t,A)=>{try{var r=e.i(522734);e.i(210954);var s=e.i(184599),n=e.i(814747),i=e.i(93387),o=e.i(256451),a=e.i(401682);e.i(419961),e.i(598905);var l=t([a]);[a]=l.then?(await l)():l;let E=(0,i.resolveAgentInsightDataPath)("model_debug.jsonl"),Q={temperature:0,top_p:1,seed:42};function c(e,t,A){try{let s=n.default.dirname(E);r.default.existsSync(s)||r.default.mkdirSync(s,{recursive:!0});let i={timestamp:new Date().toISOString(),stage:e,input:t,output:A};r.default.appendFileSync(E,JSON.stringify(i)+"\n")}catch(e){console.error("Log error",e)}}async function g(e){let t=await (0,a.getActiveConfig)(e);if(!t)return{client:null,model:null};let A=t.apiKey||"no-api-key-required",r=t.baseUrl||"https://api.deepseek.com",{customFetch:n}=(0,o.getProxyConfig)();return{client:new s.OpenAI({apiKey:A,baseURL:r,fetch:n}),model:t.model||"deepseek-chat"}}async function h(e,t){let A,r=(A=Number(process.env.JUDGMENT_TIMEOUT_MS||3e5),!Number.isFinite(A)||A<=0?3e5:A),s=new AbortController,n=setTimeout(()=>s.abort(),r);try{return await e({signal:s.signal,timeout:r})}catch(e){if(s.signal.aborted)throw Error(`${t} timeout after ${r}ms`);throw e}finally{clearTimeout(n)}}async function u(t,A,r,s,n){let{client:i,model:o}=await g(s);if(!i||!i.apiKey)return console.warn("LLM Evaluation disabled or missing config. Skipping."),{is_correct:!1,score:0,reason:"请在首页左上角的设置中配置 LLM"};try{let s=A.root_causes||[],a=A.key_actions||[],l=s.map((e,t)=>({id:`RC-${t}`,...e})),g=a.map((e,t)=>({id:`KA-${t}`,...e})),{generateJudgePrompt:u}=e.r(610234),E=[];if(l.length>0){let e=u(t,r,l,[],A.skill_definition,"root_causes"),s=await h(t=>i.chat.completions.create({messages:[{role:"user",content:e}],model:o,...Q},t),"RC Judgment API");console.log(`[Judge API Debug] RC Model: ${o}. Received response choices:`,s?.choices?.length);let n=s.choices?.[0]?.message?.content;if(c("rc_evaluation",{prompt:e},{raw_output:n}),n){let e=n.trim(),t=e.match(/```(?:json)?\s*([\s\S]*?)\s*```/i);if(t)e=t[1];else{let t=e.indexOf("{"),A=e.lastIndexOf("}");-1!==t&&-1!==A&&A>=t&&(e=e.substring(t,A+1))}try{let t=JSON.parse(e);E.push(...t.evaluations||[])}catch(e){console.warn("[Judge] Failed to parse RC result:",e)}}}if(g.length>0){let e=n&&n.length>0?n.map((e,t)=>`步骤${t+1}: [${e.type}] ${e.name} - ${e.description}`).join("\n"):null,s=u(t,e||r,[],g,A.skill_definition,"key_actions",e||null),a=await h(e=>i.chat.completions.create({messages:[{role:"user",content:s}],model:o,...Q},e),"KA Judgment API");console.log(`[Judge API Debug] KA Model: ${o}. Received response choices:`,a?.choices?.length);let l=a.choices?.[0]?.message?.content;if(c("ka_evaluation",{prompt:s},{raw_output:l}),l){let e=l.trim(),t=e.match(/```(?:json)?\s*([\s\S]*?)\s*```/i);if(t)e=t[1];else{let t=e.indexOf("{"),A=e.lastIndexOf("}");-1!==t&&-1!==A&&A>=t&&(e=e.substring(t,A+1))}try{let t=JSON.parse(e);E.push(...t.evaluations||[])}catch(e){console.warn("[Judge] Failed to parse KA result:",e)}}}let d=0,I=0,B=[];l.forEach(e=>{let t=E.find(t=>t.id===e.id),A=t?Math.max(0,Math.min(1,Number(t.match_score))):0,r=t?.explanation||"未找到评分结果";d+=A*e.weight,I+=e.weight,B.push(`1. **Root Cause** [${e.content.replace(/\n/g," ")}]: ${(100*A).toFixed(0)}% match. ${r} (Weight: ${e.weight})`)});let C=new Map,f=[];for(let e of g){let t=e.groupId,A=e.controlFlowType||"required";"conditional"===A&&t?(C.has(t)||C.set(t,[]),C.get(t).push(e)):f.push(e)}for(let[e,t]of C){let e=t.map(e=>{let t=E.find(t=>t.id===e.id),A=t?Math.max(0,Math.min(1,Number(t.match_score))):0,r=t?.explanation||"未找到评分结果";return{ka:e,ev:t,match:A,explanation:r}}),A=e.find(e=>e.match>0||!e.explanation.includes("此分支未触发"));if(A){let{ka:t,ev:r,match:s,explanation:n}=A,i=t.branchLabel||"";for(let r of(d+=s*t.weight,I+=t.weight,B.push(`2. **Key Action** [${t.content.replace(/\n/g," ")}] (条件分支${i?" - "+i:""}): ${(100*s).toFixed(0)}% match. ${n} (Weight: ${t.weight})`),e))r.ka.id!==A.ka.id&&B.push(`2. **Key Action** [${r.ka.content.replace(/\n/g," ")}] (条件分支${r.ka.branchLabel?" - "+r.ka.branchLabel:""}): ${(100*r.match).toFixed(0)}% match. ${r.explanation} (该分支未触发,不计入总分)`)}else{let{ka:t,ev:A,match:r,explanation:s}=e[0],n=t.branchLabel||"";d+=0*t.weight,I+=t.weight,B.push(`2. **Key Action** [${t.content.replace(/\n/g," ")}] (条件分支${n?" - "+n:""}): ${(100*r).toFixed(0)}% match. ${s} (所有分支均未触发,Weight: ${t.weight})`);for(let t=1;t<e.length;t++){let A=e[t];B.push(`2. **Key Action** [${A.ka.content.replace(/\n/g," ")}] (条件分支${A.ka.branchLabel?" - "+A.ka.branchLabel:""}): ${(100*A.match).toFixed(0)}% match. ${A.explanation} (该分支未触发,不计入总分)`)}}}f.forEach(e=>{let t=E.find(t=>t.id===e.id),A=t?Math.max(0,Math.min(1,Number(t.match_score))):0,r=t?.explanation||"未找到评分结果",s=e.controlFlowType||"required";if("optional"===s)return void B.push(`2. **Key Action** [${e.content.replace(/\n/g," ")}] (可选): ${(100*A).toFixed(0)}% match. ${r} (Weight: 0, 不扣分)`);if("handoff"===s){d+=A*e.weight,I+=e.weight,B.push(`2. **Key Action** [${e.content.replace(/\n/g," ")}] (衔接): ${(100*A).toFixed(0)}% match. ${r} (Weight: ${e.weight})`);return}if("loop"===s){let t=e.loopCondition||"",s=e.expectedMinCount,n=e.expectedMaxCount;d+=A*e.weight,I+=e.weight,B.push(`2. **Key Action** [${e.content.replace(/\n/g," ")}] (循环${t?" - "+t:""}): ${(100*A).toFixed(0)}% match. ${r} (Weight: ${e.weight}, 预期次数: ${s??"?"}~${n??"?"})`);return}d+=A*e.weight,I+=e.weight,B.push(`2. **Key Action** [${e.content.replace(/\n/g," ")}]: ${(100*A).toFixed(0)}% match. ${r} (Weight: ${e.weight})`)});let p=0;p=I>0?d/I:0;let y=B.map(e=>{let t=e.match(/(\d+)% match/),A=e.match(/\(Weight: ([\d\.]+)\)/);if(t&&A){let e=(parseInt(t[1])/100).toFixed(1),r=parseFloat(A[1]).toFixed(1);return`${e}*${r}`}return null}).filter(e=>e).join(" + "),m=B.map(e=>{let t=e.match(/\(Weight: ([\d\.]+)\)/);return t?parseFloat(t[1]).toFixed(1):null}).filter(e=>e).join(" + "),w=`**Calculation**: (${y}) / (${m}) = ${d.toFixed(2)} / ${I.toFixed(2)} = ${p.toFixed(2)}`;B.push("",w);let D=B.join("\n");return{is_correct:p>=.8,score:p,reason:D}}catch(e){if(console.error("LLM Judgment Error:",e),String(e?.message||"").includes("timeout"))return{is_correct:!1,score:0,reason:"Judgment API failed: timeout"};return{is_correct:!1,score:0,reason:"Judgment API failed"}}}e.s(["judgeAnswer",()=>u]),A()}catch(e){A(e)}},!1),457035,e=>{"use strict";var t=e.i(594559);function A(e){if(!e)return null;try{return(0,t.normalizeEndpoint)(e)}catch{return null}}e.s(["normalizeEndpointUrl",()=>A])},723039,e=>{"use strict";e.i(522734),e.i(814747).default.join(process.cwd(),"custom-models.json"),e.s([])},852628,e=>{"use strict";function t(e){return"routing"===e||"outcome"===e||"combined"===e?e:"combined"}function A(e,A){let r=t(e);return"combined"===r||r===A}function r(e,A){let r=t(e);return"any"===A?"combined"===r?1:2:r===A?3:2*("combined"===r)}function s(e){return Array.isArray(e)?e.map(e=>{if("string"==typeof e){let t=e.trim();return t?{skill:t,version:null}:null}if(!e||"object"!=typeof e)return null;let t="skill"in e?e.skill:null,A="string"==typeof t?t.trim():"";if(!A)return null;let r="version"in e?e.version:null,s=null;if("number"==typeof r&&Number.isInteger(r)&&r>=0)s=r;else if("string"==typeof r&&r.trim()){let e=parseInt(r,10);s=Number.isNaN(e)||e<0?null:e}return{skill:A,version:s}}).filter(e=>!!e):[]}e.s(["configSupportsDatasetType",()=>A,"getDatasetTypePriority",()=>r,"normalizeConfigDatasetType",()=>t,"normalizeExpectedSkills",()=>s])},997078,e=>{"use strict";function t(e){return"string"!=typeof e?null:e.trim()||null}function A(e){return"string"!=typeof e?"":e.trim()}function r(e,s="Skill benchmark"){var n,i;let o;return t(e.query)||(n=e.skill,i=e.skillVersion,(o=A(n))?null!=i?`${o} (v${i})`:o:null)||s}e.s(["getConfigSubjectLabel",()=>r,"normalizeConfigQuery",()=>t,"normalizeConfigSkillName",()=>A])},583701,e=>e.a(async(t,A)=>{try{e.i(210954),e.i(256451);var r=e.i(401682),s=t([r]);function n(e){return e.trim().toLowerCase().replace(/[`"'“”‘’]/g,"").replace(/[.,,。!?!?;;::、·…()[\]{}<>]/g," ").replace(/\s+/g," ").trim().replace(/\s/g,"")}function i(e,t){let A=n(e),r=n(t.intent),s=t.anchors.filter(e=>{let t=n(e);return!!t&&A.includes(t)});return{intentMatched:!!(A&&r&&(A===r||A.includes(r)||r.includes(A))),matchedAnchors:s,anchorCoverage:t.anchors.length>0?s.length/t.anchors.length:0}}[r]=s.then?(await s)():s,e.s(["matchQueryToStoredRoutingSignature",()=>i]),A()}catch(e){A(e)}},!1),864778,e=>{"use strict";function t(e){if(null==e)return null;if("number"==typeof e&&Number.isFinite(e))return e;if("string"==typeof e){let t=e.trim();if(!t)return null;if(/^\d+$/.test(t)){let e=Number(t);return Number.isFinite(e)?e:null}let A=Date.parse(t);return Number.isFinite(A)?A:null}return null}function A(e){let A=0,r=0,s="",n="",i="",o=0,a=0,l=0,c=0,g=0,h=0,u=0,E=0,Q=0,d=Number.MAX_SAFE_INTEGER,I=0;for(let r of e||[]){if(!r)continue;let e=r.role,B="assistant"===e||"subagent"===e;if("assistant"===e){let e="string"==typeof r.content?r.content:"";e&&e.trim()&&(n=e),"string"==typeof r.model&&r.model?s=r.model:"string"==typeof r.modelID&&r.modelID&&(s=r.modelID)}r.agent&&"string"==typeof r.agent&&!i&&(i=r.agent);let C=t(r.timeInfo?.created),f=t(r.timeInfo?.completed),p=t(r.timestamp);if(C&&(d=Math.min(d,C),I=Math.max(I,C)),f&&(I=Math.max(I,f)),p&&(d=Math.min(d,p),I=Math.max(I,p)),!B)continue;h++;let y=r.usage;if(y){let e=function(e){let t=Number(e?.input_tokens??e?.input??0)||0,A=Number(e?.output_tokens??e?.output??0)||0,r=Number(e?.cache?.read??e?.cache_read_input_tokens??0)||0,s=Number(e?.cache?.write??e?.cache_creation_input_tokens??0)||0,n=Number(e?.reasoning??e?.reasoning_tokens??e?.completion_tokens_details?.reasoning_tokens??0)||0,i=e?.reasoning!==void 0&&n>0&&A<n?A+n:A;return{total:e?.total!==void 0?Number(e.total)||0:t+i+r+s,input:t,output:i,cacheRead:r,cacheWrite:s,reasoning:n,maxSingleCallTokens:t+i+r+s}}(y);A+=e.total,o+=e.input,a+=e.output,l+=e.cacheRead,c+=e.cacheWrite,g+=e.reasoning,e.maxSingleCallTokens>Q&&(Q=e.maxSingleCallTokens)}if(Array.isArray(r.tool_calls))for(let e of(u+=r.tool_calls.length,r.tool_calls))(e?.state==="error"||e?.state==="failed")&&E++}return d!==Number.MAX_SAFE_INTEGER&&I>d&&(r=I-d),{model:s||void 0,agentName:i||void 0,final_result:n||void 0,tokens:Math.round(A),latency:r/1e3,input_tokens:Math.round(o),output_tokens:Math.round(a),tool_call_count:u,tool_call_error_count:E,llm_call_count:h,cache_read_input_tokens:Math.round(l),cache_creation_input_tokens:Math.round(c),max_single_call_tokens:Math.round(Q),reasoning_tokens:Math.round(g)}}e.s(["deriveOpencodeExecutionFields",()=>A])},656709,e=>{"use strict";e.s([])},475670,e=>{"use strict";function t(e){return"string"==typeof e?e.trim():""}function A(e,A){let r=[],s=new Set,n=t(A),i=(e,A)=>{let n=t(e);if(!n)return;let i=`${A}:${n}`;s.has(i)||(s.add(i),r.push({name:n,agentType:A}))};for(let A of(n&&i(n,"main"),e||[])){if(!A||"object"!=typeof A)continue;let e=t(A.role).toLowerCase(),r=t(A.subagent_name),s=t(A.agent);if(r){i(r,"subagent");continue}("subagent"===e||"opencode"===e)&&s&&s!==n?i(s,"subagent"):!n&&s&&i(s,"main")}return r}function r(e){return A(e).map(e=>e.name)}e.i(656709),e.s(["extractObservedAgentNames",()=>r,"extractObservedAgentRegistrations",()=>A])},39759,e=>{"use strict";function t(e){let t="string"==typeof e.incomingLabel?e.incomingLabel.trim():void 0;if(void 0!==t){if(!t)return;return t}let A="string"==typeof e.existingLabel?e.existingLabel.trim():"",r="string"==typeof e.skill?e.skill.trim():"",s=e.skillVersion??null;if(A&&!(A&&"without-skill"===A))return A;if(r){let e="number"==typeof s&&Number.isFinite(s)?s:0;return`${r}-v${e}`}return"without-skill"}e.s(["chooseExecutionLabel",()=>t])},799880,e=>{"use strict";function t(e){let t="string"==typeof e?e.trim():"";if(!t||"without-skill"===t)return null;let A=t.match(/^(.+)-v(\d+)$/);if(!A)return null;let r=(A[1]||"").trim(),s=Number(A[2]);return r&&Number.isFinite(s)&&!(s<0)?{skill:r,skill_version:s,skills:[r],invokedSkills:[{name:r,version:s}]}:null}e.s(["parseLabelSkillVersionBinding",()=>t])},925658,e=>{"use strict";e.s([])},761620,e=>e.a(async(t,A)=>{try{e.i(210954),e.i(256451);var r=e.i(401682),s=e.i(309418);e.i(925658),e.i(308229),e.i(522734),e.i(814747);var n=e.i(93387),i=t([r,s]);function o(e){let t=[],A=new Map;if(e.conditionalGroups)for(let t of e.conditionalGroups)for(let e of t.branches)for(let r of e.stepIds)A.set(r,{type:"conditional",group:t});if(e.loopGroups)for(let t of e.loopGroups)for(let e of t.bodyStepIds)A.set(e,{type:"loop",group:t});let r=new Set(e.steps.map(e=>e.id));if(e.conditionalGroups)for(let t of e.conditionalGroups)for(let e of t.branches)for(let s of e.stepIds)r.has(s)||(console.warn(`[FlowParse] ConditionalGroup ${t.id} references invalid stepId ${s}, degrading to required`),A.delete(s));if(e.loopGroups)for(let t of e.loopGroups)for(let e of t.bodyStepIds)r.has(e)||(console.warn(`[FlowParse] LoopGroup ${t.id} references invalid stepId ${e}, degrading to required`),A.delete(e));let s=new Map;if(e.conditionalGroups)for(let t of e.conditionalGroups)s.set(t.id,t.branches.length);for(let r of e.steps){let e=A.get(r.id);if(r.isOptional&&!e){t.push({id:r.id,content:r.name,weight:0,controlFlowType:"optional"});continue}if(e?.type==="conditional"){let A=e.group,n=A.branches.find(e=>e.stepIds.includes(r.id)),i=s.get(A.id)||1;t.push({id:r.id,content:r.name,weight:1/i,controlFlowType:"conditional",condition:A.condition,branchLabel:n?.label,groupId:A.id});continue}if(e?.type==="loop"){let A=e.group;t.push({id:r.id,content:r.name,weight:1,controlFlowType:"loop",loopCondition:A.loopCondition,expectedMinCount:A.expectedMinCount,expectedMaxCount:A.expectedMaxCount,groupId:A.id});continue}if(r.isOptional){t.push({id:r.id,content:r.name,weight:0,controlFlowType:"optional"});continue}t.push({id:r.id,content:r.name,weight:1,controlFlowType:"required"})}return t}function a(e){let t=[];for(let A=0;A<e.length;A++){let{name:r,actions:s}=e[A];for(let e of s)t.push({...e,id:`${r}-${e.id}`,skillSource:r});if(A<e.length-1){let s=e[A+1].name;t.push({id:`handoff-${r}-to-${s}`,content:`从 ${r} 输出衔接至 ${s} 输入`,weight:1,controlFlowType:"handoff",skillSource:`${r}->${s}`})}}return t}[r,s]=i.then?(await i)():i,(0,n.resolveAgentInsightDataPath)("flow_debug.jsonl"),e.s(["extractKeyActionsFromFlow",()=>o,"mergeKeyActionsFromMultipleSkills",()=>a]),A()}catch(e){A(e)}},!1),6325,e=>{"use strict";function t(e){if(null==e)return null;if("number"==typeof e&&Number.isFinite(e))return e;if("string"==typeof e){let t=e.trim();if(!t)return null;if(/^\d+$/.test(t)){let e=Number(t);return Number.isFinite(e)?e:null}let A=Date.parse(t);return Number.isFinite(A)?A:null}return null}function A(e){let A=e.id??e.message_id??e.messageID;if("string"==typeof A&&A.trim())return`id:${A.trim()}`;let r="string"==typeof e.role?e.role:"unknown",s=t(e.timestamp)??t(e.timeInfo?.created)??t(e.timeInfo?.completed)??0,n="string"==typeof e.subagent_session_id?e.subagent_session_id:"";return`k:${n}:${s}:${r}`}function r(e,r){let s=Array.isArray(e)?e:[],n=Array.isArray(r)?r:[],i=new Map,o=new Map,a=0;for(let e of s){if(!e)continue;let t=A(e);i.has(t)||(i.set(t,e),o.set(t,a++))}for(let e of n){if(!e)continue;let t=A(e),r=i.get(t);r?i.set(t,function(e,t){let A={...e,...t},r="string"==typeof e.content?e.content:"",s="string"==typeof t.content?t.content:"";return r&&!s?A.content=r:r&&s&&s.length<r.length&&(A.content=r),e.subagent_name&&!t.subagent_name&&(A.subagent_name=e.subagent_name),e.agent&&!t.agent&&(A.agent=e.agent),e.subagent_session_id&&!t.subagent_session_id&&(A.subagent_session_id=e.subagent_session_id),A.tool_calls=function(e,t){let A=Array.isArray(e)?e:[],r=Array.isArray(t)?t:[];if(0===A.length)return r;if(0===r.length)return A;let s=new Set,n=[];for(let e of[...A,...r]){let t=function(e){let t=e?.id??e?.callID??e?.callId??e?.call_id;if("string"==typeof t&&t.trim())return`id:${t.trim()}`;let A=e?.function?.name??e?.name??"",r=e?.function?.arguments??e?.arguments??"";return`sig:${A}:${function(e){let t=5381;for(let A=0;A<e.length;A++)t=(t<<5)+t^e.charCodeAt(A);return(t>>>0).toString(16)}(function(e){if(null==e)return"";if("string"==typeof e)return e;try{return JSON.stringify(e)}catch{return String(e)}}(r))}`}(e);s.has(t)||(s.add(t),n.push(e))}return n}(e.tool_calls,t.tool_calls),e.usage&&!t.usage&&(A.usage=e.usage),e.timeInfo&&!t.timeInfo&&(A.timeInfo=e.timeInfo),A}(r,e)):(i.set(t,e),o.set(t,a++))}let l=Array.from(i.entries()).map(([e,A])=>({k:e,v:A,ts:t(A.timestamp)??t(A.timeInfo?.created)??t(A.timeInfo?.completed)??0,order:o.get(e)??0}));return l.sort((e,t)=>e.ts-t.ts||e.order-t.order),l.map(e=>e.v)}e.s(["mergeSessionInteractionsMonotonic",()=>r])},418918,e=>{"use strict";var t=e.i(308033),A=e.i(598905);let r={descriptor:{id:"claude",aliases:["claudecode"],label:"Claude Code",onboard:"watcher",platform:"claude"},normalizeForStorage:t.normalizeClaudeCodeInteractionsForStorage,extractSkills:A.extractSkillsWithVersionsFromClaudeSession},s={descriptor:{id:"hermes",label:"Hermes",onboard:"plugin",platform:"hermes"},capabilities:{skills:!0,subagentTree:!0},sessionMergeStrategy:"snapshot-replace",extractSkills:A.extractSkillsWithVersionsFromHermesSession},n={descriptor:{id:"jiuwenswarm",aliases:["jiuwen","openjiuwen"],label:"JiuwenSwarm",onboard:"env",platform:"jiuwenswarm"},capabilities:{subagentTree:!0,skills:!0},sessionMergeStrategy:"snapshot-replace",extractSkills:A.extractSkillsWithVersionsFromJiuwenSession},i={descriptor:{id:"langfuse-langgraph",label:"Langfuse-Langgraph",onboard:"env",platform:"langfuse"},capabilities:{skills:!0,subagentTree:!0},sessionMergeStrategy:"snapshot-replace",extractSkills:A.extractSkillsWithVersionsFromOpencodeSession},o={descriptor:{id:"openclaw",label:"OpenClaw",onboard:"plugin",platform:"openclaw"},extractSkills:A.extractSkillsWithVersionsFromOpenClawSession},a={descriptor:{id:"opencode",label:"OpenCode",onboard:"plugin",platform:"opencode"},extractSkills:A.extractSkillsWithVersionsFromOpencodeSession},l={descriptor:{id:"unknown",label:"Unknown",onboard:"env"}},c=new Map;for(let e of[a,r,o,s,n,i])for(let t of(c.set(e.descriptor.id.toLowerCase(),e),e.descriptor.aliases??[]))c.set(t.toLowerCase(),e);function g(e){return c.get(String(e??"").trim().toLowerCase())??l}e.s(["getAdapter",()=>g],418918)},536619,e=>{"use strict";[{column:"query",type:"string",label:"查询内容",description:"用户输入 / 问题",syncMode:"textSearch",nullable:!0},{column:"finalResult",type:"string",label:"输出内容",description:"trace 最终输出",syncMode:"textSearch",nullable:!0},{column:"agentName",type:"string",label:"Agent 名",description:"主 Agent 名称",syncMode:"textSearch",nullable:!0},{column:"subagentName",type:"string",label:"子 Agent 名",description:"子 Agent 显示名",syncMode:"textSearch",nullable:!0},{column:"model",type:"string",label:"模型",description:"LLM 模型名",syncMode:"textSearch",nullable:!0},{column:"label",type:"string",label:"标注",description:"人工标注",syncMode:"textSearch",nullable:!0},{column:"framework",type:"stringOptions",label:"框架",description:"采集框架 / 平台",syncMode:"exactOption",nullable:!0},{column:"subagentType",type:"stringOptions",label:"子 Agent 类型",description:"kuafu / general …",syncMode:"exactOption",nullable:!0},{column:"latency",type:"number",label:"耗时",description:"执行时长(秒)",unit:"s",nullable:!0},{column:"tokens",type:"number",label:"Tokens",description:"总 token 数",nullable:!0},{column:"inputTokens",type:"number",label:"输入 Tokens",description:"输入 token 数",nullable:!0},{column:"outputTokens",type:"number",label:"输出 Tokens",description:"输出 token 数",nullable:!0},{column:"cost",type:"number",label:"成本",description:"估算成本($)",unit:"$",nullable:!0},{column:"toolCallCount",type:"number",label:"工具调用数",description:"工具调用次数",nullable:!0},{column:"toolCallErrorCount",type:"number",label:"工具错误数",description:"工具调用失败次数",nullable:!0},{column:"answerScore",type:"number",label:"答案分",description:"答案得分(0–1)",nullable:!0},{column:"skillScore",type:"number",label:"Skill 分",description:"Skill 得分(0–1)",nullable:!0},{column:"skillTriggerRate",type:"number",label:"Skill 触发率",description:"触发率(0–1)",nullable:!0},{column:"timestamp",type:"datetime",label:"时间",description:"trace 起始时间"},{column:"isAnswerCorrect",type:"boolean",label:"答案正确",description:"评测:答案是否正确",nullable:!0},{column:"isSubagent",type:"boolean",label:"是子 Agent",description:"是否子 Agent 执行"},{column:"agents",type:"arrayOptions",label:"Agent(多选)",description:"trace 涉及的 agent",field:"observedAgents",source:"observedAgents",syncMode:"arrayOption",nullable:!0},{column:"skill",type:"arrayOptions",label:"Skill",description:"调用的 skill",source:"executionSkill",syncMode:"arrayOption"},{column:"status",type:"stringOptions",label:"状态",description:"running / success / failed",source:"computed",syncMode:"exactOption"},{column:"ownership",type:"stringOptions",label:"归属",description:"user / system",source:"computed",syncMode:"exactOption"}].map(e=>[e.column,e]),Symbol("invalid"),e.s([],536619)},904239,e=>e.a(async(t,A)=>{try{var r=e.i(522734),s=e.i(814747),n=e.i(93387),i=e.i(191878),o=e.i(457035),a=e.i(309418);e.i(723039);var l=e.i(852628),c=e.i(997078),g=e.i(583701),h=e.i(864778),u=e.i(475670),E=e.i(39759),Q=e.i(799880),d=e.i(761620),I=e.i(6325),B=e.i(308229);e.i(656709);var C=e.i(264996),f=e.i(418918),p=e.i(598905);e.i(536619);var y=t([i,a,g,d]);[i,a,g,d]=y.then?(await y)():y;let H=!process.env.DB_HOST,O=/^[a-zA-Z0-9_\-\.]+$/;function m(e){let t=new Set,A=[];for(let r of e.events||[]){if("skill"!==r.kind)continue;let e=r.args&&"object"==typeof r.args?r.args:{},s=e.name??e.skill_name??e.skillName??e.skill;if(null==s||!String(s).trim())continue;let n=String(s).trim().replace(/^['"]+|['"]+$/g,"");if(!O.test(n)||t.has(n))continue;t.add(n);let i=null!=e.version?Number(e.version):null;A.push({name:n,version:null===i||isNaN(i)?null:i})}return A}async function w(e,t){let A=Array.from(new Set(e.filter(e=>null==e.version).map(e=>e.name))),r=new Map;if(A.length>0)try{for(let e of(await a.prisma.skill.findMany({where:{name:{in:A},...t?{OR:[{user:t},{user:null}]}:{}},select:{name:!0,activeVersion:!0}})))"number"==typeof e.activeVersion&&r.set(e.name,e.activeVersion)}catch(e){console.warn("[Data-Service] snapshotSkillVersions lookup failed:",e)}return e.map(e=>null!=e.version?e:{name:e.name,version:r.get(e.name)??null})}async function D(e,t,A={}){if(H&&e)try{if(await a.prismaRaw.executionSkill.deleteMany({where:{executionId:e}}),!t.length)return;let r=new Set,s=[];for(let n of t){if(!n?.name)continue;let t=`${n.name}@@${n.version??""}`;r.has(t)||(r.add(t),s.push({executionId:e,skillName:n.name,skillVersion:n.version??null,isPrimary:null!=A.primaryName&&n.name===A.primaryName,user:A.user??null}))}s.length&&await a.prismaRaw.executionSkill.createMany({data:s})}catch(t){console.warn(`[Data-Service] persistExecutionSkills failed for ${e}:`,t)}}function S(e){if(null==e)return null;if(e instanceof Date)return Number.isFinite(e.getTime())?e.getTime():null;if("number"==typeof e&&Number.isFinite(e))return e;if("string"!=typeof e)return null;let t=e.trim();if(!t)return null;if(/^\d+$/.test(t)){let e=Number(t);return Number.isFinite(e)?e:null}let A=Date.parse(t);return Number.isFinite(A)?A:null}[...(process.env.TRACE_SERVICE_OWNERS||"admin,anonymous").split(",").map(e=>e.trim()).filter(Boolean)];let G="未找到匹配的效果评测配置";async function b(e,t,A){let r=(0,c.normalizeConfigQuery)(t);if(!r)return;let s=e.filter(e=>(0,l.configSupportsDatasetType)(e.dataset_type,"routing")),n=[];for(let e of s){let t=function(e){let t=Array.isArray(e.routing_anchors)?e.routing_anchors.filter(e=>"string"==typeof e&&e.trim()):[];return e.routing_intent?.trim()&&t.length>0?{intent:e.routing_intent.trim(),anchors:t}:null}(e);if(!t)continue;let A=(0,g.matchQueryToStoredRoutingSignature)(r,t);(0!==A.matchedAnchors.length||A.intentMatched)&&n.push({config:e,signature:t,matchedAnchors:A.matchedAnchors,anchorCoverage:A.anchorCoverage,intentMatched:A.intentMatched})}if(0===n.length)return;n.sort((e,t)=>{if(t.matchedAnchors.length!==e.matchedAnchors.length)return t.matchedAnchors.length-e.matchedAnchors.length;if(t.anchorCoverage!==e.anchorCoverage)return t.anchorCoverage-e.anchorCoverage;if(Number(t.intentMatched)!==Number(e.intentMatched))return Number(t.intentMatched)-Number(e.intentMatched);let A=(0,l.getDatasetTypePriority)(e.config.dataset_type,"routing"),r=(0,l.getDatasetTypePriority)(t.config.dataset_type,"routing");if(r!==A)return r-A;let s=e.signature.anchors.join("").length;return t.signature.anchors.join("").length-s});let i=n[0];return i.config.routing_intent=i.signature.intent,i.config.routing_anchors=i.signature.anchors,i.config}function N(e,t){let A=function(e){let t=(0,c.normalizeConfigSkillName)(e.skill);if(t)return{skill:t,version:e.skill_version??null};let A=k(e),r=Array.from(new Map(A.filter(e=>e.name?.trim()).map(e=>[`${e.name.trim()}::${e.version??"any"}`,e])).values());if(1===r.length)return{skill:r[0].name.trim(),version:r[0].version??null}}(t);if(!A)return;let r=(0,c.normalizeConfigQuery)(t.query),s=e.filter(e=>(0,l.configSupportsDatasetType)(e.dataset_type,"outcome")).filter(e=>(0,c.normalizeConfigSkillName)(e.skill)===A.skill).filter(e=>{let t=e.skillVersion??null;return null===t||t===A.version}).filter(e=>{let t=(0,c.normalizeConfigQuery)(e.query);return!t||t===r});if(0!==s.length)return s.reduce((e,t)=>{let s=(e.skillVersion??null)!==null&&e.skillVersion===A.version,n=(t.skillVersion??null)!==null&&t.skillVersion===A.version;if(s!==n)return n?t:e;let i=(0,c.normalizeConfigQuery)(e.query)===r,o=(0,c.normalizeConfigQuery)(t.query)===r;if(i!==o)return o?t:e;let a=!(0,c.normalizeConfigQuery)(e.query),g=!(0,c.normalizeConfigQuery)(t.query);if(a!==g)return g?t:e;let h=(0,l.getDatasetTypePriority)(e.dataset_type,"outcome");return(0,l.getDatasetTypePriority)(t.dataset_type,"outcome")>h?t:e})}function R(e){if(!e)return[];let t=(0,l.normalizeExpectedSkills)(e.expectedSkills);return t.length>0?t:e.skill?.trim()?[{skill:e.skill.trim(),version:e.skillVersion??null}]:[]}function k(e){return Array.isArray(e.invokedSkills)&&e.invokedSkills.length>0?e.invokedSkills.filter(e=>e?.name?.trim()).map(e=>({name:e.name.trim(),version:e.version??null})):Array.isArray(e.skills)&&e.skills.length>0?e.skills.filter(e=>"string"==typeof e&&e.trim()).map(e=>({name:e.trim(),version:null})):[]}function F(e,t,A){let r=new Map,s=(e,t)=>{let A=e?.trim();if(!A)return;let s=r.get(A)||{skill:A,expected_version:null,invoked_version:null,primary_version:null,is_expected:!1,is_invoked:!1,is_primary:!1,is_outcome_anchor:!1};r.set(A,{...s,...t,expected_version:void 0!==t.expected_version?t.expected_version:s.expected_version,invoked_version:void 0!==t.invoked_version?t.invoked_version:s.invoked_version,primary_version:void 0!==t.primary_version?t.primary_version:s.primary_version,is_expected:t.is_expected??s.is_expected,is_invoked:t.is_invoked??s.is_invoked,is_primary:t.is_primary??s.is_primary,is_outcome_anchor:t.is_outcome_anchor??s.is_outcome_anchor})};for(let A of(s(e.skill,{is_primary:!0,primary_version:e.skill_version??null}),R(t)))s(A.skill,{is_expected:!0,expected_version:A.version??null});for(let t of k(e))s(t.name,{is_invoked:!0,invoked_version:t.version??null});return A?.skill?.trim()&&s(A.skill,{is_outcome_anchor:!0}),Array.from(r.values()).sort((e,t)=>{let A=4*Number(e.is_primary)+2*Number(e.is_invoked)+Number(e.is_expected),r=4*Number(t.is_primary)+2*Number(t.is_invoked)+Number(t.is_expected);return A!==r?r-A:e.skill.localeCompare(t.skill)})}async function U(e,t){if(!e||Array.isArray(e.key_actions)&&e.key_actions.length>0)return;let A=function(e){let t=new Map,A=(e,A)=>{let r=(0,c.normalizeConfigSkillName)(e);if(!r)return;let s=A??null;t.set(`${r}::${s??"any"}`,{skill:r,version:s})};for(let t of(A(e.skill,e.skillVersion??null),(0,l.normalizeExpectedSkills)(e.expectedSkills)))A(t.skill,t.version??null);return Array.from(t.values())}(e);if(0===A.length)return;let r=[];for(let e of A){let A=await a.db.findSkill(e.skill,t||null);if(!A)continue;let s=e.version??A.activeVersion??A.versions?.[0]?.version??null;if(null==s)continue;let n=await a.db.findParsedFlow(A.id,s,t||null);if(!n?.flowJson)continue;let i=JSON.parse(n.flowJson),o=(0,d.extractKeyActionsFromFlow)(i).map(t=>({...t,skillSource:t.skillSource||e.skill}));o.length>0&&r.push({name:e.skill,actions:o})}if(0===r.length)return;let s=1===r.length?r[0].actions:(0,d.mergeKeyActionsFromMultipleSkills)(r);e.key_actions=s.map(e=>({content:e.content,weight:e.weight,..."required"!==e.controlFlowType?{controlFlowType:e.controlFlowType}:{},...e.condition?{condition:e.condition}:{},...e.branchLabel?{branchLabel:e.branchLabel}:{},...e.loopCondition?{loopCondition:e.loopCondition}:{},...void 0!==e.expectedMinCount?{expectedMinCount:e.expectedMinCount}:{},...void 0!==e.expectedMaxCount?{expectedMaxCount:e.expectedMaxCount}:{},...e.groupId?{groupId:e.groupId}:{}})),e.extractedKeyActions=s;try{await a.db.updateConfig(e.id,{keyActions:JSON.stringify(e.key_actions),extractedKeyActions:JSON.stringify(s)}),console.log(`[AutoExtract] Auto-filled key_actions for config ${e.id} from ${A.map(e=>e.skill).join(", ")}`)}catch(e){console.error("[AutoExtract] Error updating config with extracted key_actions:",e)}}async function _(e,t,A){let r=k(e),s=F(e,t);if(!t)return{status:"missing",expected_skills:[],invoked_skills:r,matched_skills:[],matched_anchors:[],expected_count:0,matched_count:0,is_correct:!1,trigger_rate:null,skill_breakdown:s.map(e=>({skill:e.skill,expected:e.is_expected,invoked:e.is_invoked,matched:!1,status:e.is_invoked?"unexpected":"not_applicable",expected_version:e.expected_version,invoked_version:e.invoked_version}))};let n=R(t),i=[],o=0,g=new Map,h=n.filter(e=>null!==e.version&&!r.some(t=>t.name===e.skill&&null!==t.version)).map(e=>e.skill);if(h.length>0)try{for(let e of(await a.db.findSkills({name:{in:h},user:A||null})))g.set(e.name,e)}catch(e){console.error("[RoutingEvaluation] Error fetching skills for version check:",e)}for(let e of n){let t=r.find(t=>t.name===e.skill);if(!t)continue;let A=!1;if(null===e.version)A=!0;else if(null!==t.version)A=t.version===e.version;else{let t=g.get(e.skill);A=(t?t.activeVersion||0:null)===e.version}A&&(o+=1,i.push({skill:e.skill,expected_version:e.version,invoked_version:t.version??null}))}let u=s.map(e=>{let t=i.some(t=>t.skill===e.skill),A="not_applicable";return e.is_expected?A=t?"matched":"missed":e.is_invoked&&(A="unexpected"),{skill:e.skill,expected:e.is_expected,invoked:e.is_invoked,matched:t,status:A,expected_version:e.expected_version,invoked_version:e.invoked_version}});return{status:"available",matched_config_id:t.id,matched_query:(0,c.normalizeConfigQuery)(t.query)||void 0,matched_intent:t.routing_intent||void 0,matched_anchors:t.routing_anchors||[],dataset_type:(0,l.normalizeConfigDatasetType)(t.dataset_type),expected_skills:n,invoked_skills:r,matched_skills:i,expected_count:n.length,matched_count:o,is_correct:o>0,trigger_rate:n.length>0?o/n.length:null,skill_breakdown:u}}async function M(e,t,A){let r=e.query?await b(t,e.query,A??e.user??null):void 0,s=N(t,e),n=await _(e,r,A??e.user??null),i=e.task_id||e.upload_id||"",o=null;if(i)try{let e=await a.db.findExecutionMatch(i);e&&(o={matchJson:e.matchJson??null,matchedAt:e.matchedAt??null,mode:e.mode??null})}catch{o=null}return{...e,routing_evaluation:n,outcome_evaluation:function(e,t,A,r){let s=F(e,A,t),n=(e,t)=>s.map(A=>{let s="context_only";A.is_primary?s="primary":A.is_invoked?s="invoked":A.is_expected&&(s="expected_only");let n=r?.status==="available"?r.skill_breakdown.find(e=>e.skill===A.skill)?.status||"not_applicable":"missing_dataset";return{skill:A.skill,version:A.invoked_version??A.primary_version??A.expected_version??null,role:s,is_primary:A.is_primary,is_invoked:A.is_invoked,is_expected:A.is_expected,routing_status:n,shares_execution_outcome:!0,score:e,is_correct:t}});if(!t)return{status:"missing",is_correct:null,score:null,reason:e.judgment_reason||G,standard_answer_present:!1,root_cause_count:0,key_action_count:0,skill_breakdown:n(null,null)};let i="结果评估中..."===e.judgment_reason?"pending":"available",o="pending"===i?null:e.answer_score??null,a="pending"===i?null:e.is_answer_correct??null;return{status:i,matched_config_id:t.id,matched_query:(0,c.normalizeConfigQuery)(t.query)||void 0,matched_skill:(0,c.normalizeConfigSkillName)(t.skill)||void 0,matched_skill_version:t.skillVersion??null,dataset_type:(0,l.normalizeConfigDatasetType)(t.dataset_type),is_correct:a,score:o,reason:e.judgment_reason||void 0,standard_answer_present:!!t.standard_answer,root_cause_count:t.root_causes?.length??0,key_action_count:t.key_actions?.length??0,skill_breakdown:n(o,a)}}(e,s,r,n),execution_match:o}}let V=(0,n.resolveAgentInsightDataPath)(),J=s.default.join(V,"evaluation_result.json"),P="1"===process.env.AUDIT_DATA_MUTATIONS||"true"===process.env.AUDIT_DATA_MUTATIONS;async function T(e,t="any"){let A={};e&&(A.OR=[{user:e},{user:null}]);let r=(await a.db.findConfigs(A)).map(e=>{let t=(t,A)=>{if(t)try{return JSON.parse(t)}catch(t){console.error(`[readConfig] Failed to parse ${A} for config ${e.id}:`,t);return}};return{id:e.id,query:e.query??null,dataset_type:(0,l.normalizeConfigDatasetType)(e.datasetType),skill:e.skill,skillVersion:e.skillVersion,routing_intent:e.routingIntent||void 0,routing_anchors:t(e.routingAnchors,"routingAnchors"),expectedSkills:(0,l.normalizeExpectedSkills)(t(e.expectedSkills,"expectedSkills")),standard_answer:e.standardAnswer||"",root_causes:t(e.rootCauses,"rootCauses"),key_actions:t(e.keyActions,"keyActions"),extractedKeyActions:t(e.extractedKeyActions,"extractedKeyActions"),parse_status:e.parseStatus||"completed"}});return"any"===t?r:r.filter(e=>(0,l.configSupportsDatasetType)(e.dataset_type,t))}async function L(e){var t,A,s,n;let l,g=e.upload_id||e.task_id||crypto.randomUUID();if(e.task_id)try{let t={taskId:e.task_id};e.framework&&(t.framework=e.framework);let A=await a.db.findExecutions(t,{timestamp:"desc"});if(A&&A.length>0&&A[0]?.id){let t=A.find(t=>t.id===e.task_id),r=t&&t.id?t.id:A[0].id;r!==g&&(g=r)}}catch{}let d=null,y=await a.db.findExecutionById(g);y&&(d={...y,upload_id:y.id,task_id:y.taskId||void 0,query:y.query||void 0,framework:y.framework||void 0,tokens:y.tokens??void 0,cost:y.cost??void 0,latency:y.latency??void 0,timestamp:y.timestamp?.toISOString?.()||y.timestamp,final_result:y.finalResult||void 0,skill:y.skill||void 0,skills:y.skills?JSON.parse(y.skills):void 0,invokedSkills:y.invokedSkills?(()=>{try{return JSON.parse(y.invokedSkills)}catch{return}})():void 0,is_skill_correct:y.isSkillCorrect??!1,is_answer_correct:y.isAnswerCorrect??null,answer_score:y.answerScore??void 0,skill_score:y.skillScore??void 0,judgment_reason:y.judgmentReason||void 0,failures:y.failures?JSON.parse(y.failures):void 0,skill_issues:y.skillIssues?JSON.parse(y.skillIssues):void 0,label:y.label||void 0,user:y.user||void 0,skill_version:y.skillVersion??void 0,expected_skill_version:y.expectedSkillVersion??null,skill_trigger_rate:y.skillTriggerRate??null,model:y.model||void 0,tool_call_count:y.toolCallCount??void 0,llm_call_count:y.llmCallCount??void 0,input_tokens:y.inputTokens??void 0,output_tokens:y.outputTokens??void 0,tool_call_error_count:y.toolCallErrorCount??void 0,cache_read_input_tokens:y.cacheReadInputTokens??void 0,cache_creation_input_tokens:y.cacheCreationInputTokens??void 0,max_single_call_tokens:y.maxSingleCallTokens??void 0});let k=d?{...d}:{},F=!!d;F||k.timestamp||e.timestamp?e.timestamp&&(k.timestamp=e.timestamp):k.timestamp=new Date().toISOString();let _=!!e.force_query_update,L="string"==typeof d?.query?d.query.trim():"",v="string"==typeof e.query?e.query.trim():"",Y=!1;if("string"==typeof e.label){let t=(0,Q.parseLabelSkillVersionBinding)(e.label);t&&(e.skill=t.skill,e.skill_version=t.skill_version,e.skills=t.skills,e.invokedSkills=t.invokedSkills,Y=!0)}k={...k,...e};let O=function(e){let{isUpdate:t,existingSkillVersion:A,incomingSkillVersion:r,explicitRewrite:s}=e;return!t||null==A||s?{resolved:r,blocked:!1}:r===A?{resolved:A,blocked:!1}:{resolved:A,blocked:!0}}({isUpdate:F,existingSkillVersion:d?.skill_version??null,incomingSkillVersion:k.skill_version??null,explicitRewrite:Y});if(O.blocked&&console.warn(`[Data-Service] Preserving existing skill_version for execution ${g}: existing=${d?.skill_version}, incoming=${k.skill_version} blocked. Skill version is immutable history; only NULL → value or explicit label-binding rewrite is allowed.`),k.skill_version=O.resolved??void 0,!k.agentName&&k.agent&&(k.agentName=k.agent),L&&!_?k.query=L:!L&&v?k.query=v:"string"!=typeof k.query||k.query.trim()?"string"==typeof k.query&&(k.query=k.query.trim()):k.query=void 0,!k.upload_id&&k.task_id&&(k.upload_id=k.task_id),!k.task_id&&k.upload_id&&(k.task_id=k.upload_id),k.upload_id=g,(!k.label||!k.model||!k.user)&&k.task_id){let e=await a.db.findSessionByTaskId(k.task_id);e&&(!k.label&&e.label&&(k.label=e.label),!k.model&&e.model&&(k.model=e.model),!k.user&&e.user&&(k.user=e.user))}if(!k.user){let e=(process.env.AGENT_INSIGHT_DEFAULT_INGEST_USER||"").trim()||null;if(e)k.user=e,console.log(`[Data-Service] No user on record for task ${k.task_id}, defaulting to AGENT_INSIGHT_DEFAULT_INGEST_USER=${e}`);else try{let e=a.db.getClient();if("query"in e){let t=await e.query('SELECT username FROM "User" LIMIT 1');t.rows[0]&&(k.user=t.rows[0].username,console.log(`[Data-Service] Fallback resolved user for task ${k.task_id} to: ${k.user}`))}}catch(e){console.warn("[Data-Service] Fallback user lookup failed:",e)}}let V=e.Token||e.token||e.tokens;void 0!==V&&(k.tokens=Number(V)),void 0!==e.tool_call_count&&(k.tool_call_count=Number(e.tool_call_count)),void 0!==e.llm_call_count&&(k.llm_call_count=Number(e.llm_call_count)),void 0!==e.input_tokens&&(k.input_tokens=Number(e.input_tokens)),void 0!==e.output_tokens&&(k.output_tokens=Number(e.output_tokens)),void 0!==e.tool_call_error_count&&(k.tool_call_error_count=Number(e.tool_call_error_count)),void 0!==e.cache_read_input_tokens&&(k.cache_read_input_tokens=Number(e.cache_read_input_tokens)),void 0!==e.cache_creation_input_tokens&&(k.cache_creation_input_tokens=Number(e.cache_creation_input_tokens)),void 0!==e.max_single_call_tokens&&(k.max_single_call_tokens=Number(e.max_single_call_tokens)),void 0!==e.reasoning_tokens&&(k.reasoning_tokens=Number(e.reasoning_tokens));let W=null;if(k.task_id&&k.interactions){let e=(0,f.getAdapter)(k.framework),t=t=>e.normalizeForStorage?.(t)??t,A="string"==typeof k.interactions?(()=>{try{return JSON.parse(k.interactions)}catch{return[]}})():k.interactions;W=A=t(A);try{let r=k.session_merge_strategy||e.sessionMergeStrategy||"monotonic";if("snapshot-replace"!==r){let e=await a.db.findSessionByTaskId(k.task_id),r=e?.interactions?(()=>{try{return JSON.parse(e.interactions)}catch{return[]}})():[];r=t(r),Array.isArray(r)&&r.length>0&&(W=(0,I.mergeSessionInteractionsMonotonic)(r,A))}else if("true"!==process.env.AGENT_INSIGHT_JIUWEN_ALLOW_SHRINK){let e=await a.db.findSessionByTaskId(k.task_id),r=e?.interactions?(()=>{try{return JSON.parse(e.interactions)}catch{return[]}})():[];r=t(r);let s=Array.isArray(r)?r.length:0,n=Array.isArray(A)?A.length:0;if(s>0&&n<s)return console.warn(`[Data-Service] snapshot-replace 退化护栏:拒绝用更小快照覆盖 task ${k.task_id}(incoming ${n} < existing ${s} interactions),保留现有记录。设 AGENT_INSIGHT_JIUWEN_ALLOW_SHRINK=true 可放行。`),{success:!0,record:k}}}catch(e){e&&"object"==typeof e&&"task_id"in k&&console.warn("[Data-Service] snapshot-replace 退化检查异常,按原逻辑继续:",e?.message||e)}W=t(W),k.interactions=W;let r=function(e){if(Array.isArray(e))for(let t of e){if(!t||"object"!=typeof t||"user"!==String(t.role||"").toLowerCase())continue;let e="string"==typeof t.content?t.content.trim():"";if(e)return e}}(W);if(r&&function(e,t){let A="string"==typeof e?e.trim():"";if(!A)return!0;let r="string"==typeof t?t.trim().toLowerCase():"";return!!r&&A.toLowerCase()===`${r} session`}(k.query,k.framework)&&(k.query=r),"opencode"===k.framework&&Array.isArray(W)){let e=(0,h.deriveOpencodeExecutionFields)(W);e.model&&(k.model=e.model),e.final_result&&(k.final_result=e.final_result),e.agentName&&!k.agentName&&(k.agentName=e.agentName),k.tokens=e.tokens,k.latency=e.latency,k.input_tokens=e.input_tokens,k.output_tokens=e.output_tokens,k.tool_call_count=e.tool_call_count,k.tool_call_error_count=e.tool_call_error_count,k.llm_call_count=e.llm_call_count,k.cache_read_input_tokens=e.cache_read_input_tokens,k.cache_creation_input_tokens=e.cache_creation_input_tokens,k.max_single_call_tokens=e.max_single_call_tokens,k.reasoning_tokens=e.reasoning_tokens}}let q=!1,j=k.is_answer_correct||!1,K=k.judgment_reason||G;k.skill_trigger_rate=null;let Z=await T(k.user);if(Z.length>0){let A=await b(Z,k.query,k.user),r=N(Z,k);if(A){let e=Array.isArray(k.invokedSkills)?k.invokedSkills:[],t=(Array.isArray(k.skills)?k.skills:[]).map(e=>({name:e,version:null})),r=R(A);if(r.length>0){let A=e.length>0?e:t;if(A.length>0){let e=0,t=r.filter(e=>e.skill?.trim()),s=t.map(e=>e.skill.trim()),n=new Map;if(s.length>0)try{for(let e of(await a.db.findSkills({name:{in:s},user:k.user||null})))n.set(e.name,e)}catch(e){console.error("[Judgment] Error fetching skills for version check:",e)}for(let r of t){let t=r.skill.trim(),s=r.version??null,i=A.find(e=>e.name===t);if(i){let A=!1;if(null===s)A=!0;else if(null!==i.version)A=i.version===s;else{let e=n.get(t);A=!!e&&(e.activeVersion||0)===s}A&&(e++,q||(q=!0))}}t.length>0&&(k.skill_trigger_rate=e/t.length)}}k.is_skill_correct=q}if(r){if(await U(r,k.user),void 0!==k.final_result){let s=!0;if(F&&!e.force_judgment&&d&&d.query===k.query&&d.final_result===k.final_result&&(s=!1),e.skip_internal_judgment&&(s=!1),s&&!k.skip_evaluation){let e,s=(k.skill||r.skill||A?.skill||"").trim();if(s)try{let t=await a.db.findSkill(s,k.user||null);if(t){let A=r.skillVersion??k.skill_version??t.activeVersion??0,s=t.versions?.find(e=>e.version===A);if(s&&s.content)e=s.content,(void 0===k.skill_version||null===k.skill_version)&&(k.skill_version=s.version);else if(t.versions&&t.versions.length>0){let A=t.versions[0];A&&A.content&&(e=A.content,(void 0===k.skill_version||null===k.skill_version)&&(k.skill_version=A.version))}}}catch(e){console.error("[Judgment] Error fetching skill definition:",e)}let n=null;try{let e=await a.db.findExecutionMatch(k.task_id||k.upload_id||"");e?.extractedSteps&&(n="string"==typeof e.extractedSteps?JSON.parse(e.extractedSteps):e.extractedSteps)}catch(e){console.warn("[Judgment] Failed to load execution steps for KA evaluation:",e)}let o=await (0,i.judgeAnswer)((t=k,(0,c.getConfigSubjectLabel)({query:t.query,skill:t.skill||r?.skill||null,skillVersion:t.skill_version??r?.skillVersion??null},"Skill execution benchmark")),{standard_answer_example:r.standard_answer,root_causes:r.root_causes,key_actions:r.key_actions,skill_definition:e},k.final_result,k.user,n);j=o.is_correct,k.answer_score=o.score,K=o.reason||"Judged by Evaluation Model"}}}else(!F||e.force_judgment)&&(j=!1,K=G,k.answer_score=null)}e.skip_evaluation&&(k.answer_score=null,j=!1,K="结果评估中..."),k.is_skill_correct=q,k.is_answer_correct=j,k.judgment_reason=K,k=await M(k,Z,k.user);let $=Array.isArray(k.skills)&&k.skills.length>0?k.skills[0]:void 0;if($){let e=function(){if(!r.default.existsSync(J))return{};try{return JSON.parse(r.default.readFileSync(J,"utf-8"))}catch{return{}}}()[$];e&&(k.skill_score=parseFloat(e))}if(k.label=(0,E.chooseExecutionLabel)({existingLabel:d?.label,incomingLabel:e.label,skill:k.skill,skillVersion:k.skill_version??null}),k.framework){let e=k.framework,t=k.user||null;for(let A of(0,u.extractObservedAgentRegistrations)(W,k.agentName))try{let r=await a.prisma.registeredAgent.findFirst({where:{platform:e,name:A.name,user:t}});if(!r)try{r=await a.prisma.registeredAgent.create({data:{platform:e,name:A.name,user:t,agentOwnership:(0,C.isInternalSystemAgentTrace)(A.name)?"system":"user",agentType:"main"===A.agentType?k.agentType||"main":"subagent"}})}catch(s){(r=await a.prisma.registeredAgent.findFirst({where:{platform:e,name:A.name,user:t}}))||console.warn(`[Data-Service] register observed agent failed (non-fatal): ${A.name}`,s)}r&&"main"===A.agentType&&A.name===k.agentName&&(l=r.id)}catch(e){console.warn(`[Data-Service] observed-agent registration error (non-fatal): ${A.name}`,e)}}let X=Array.isArray(W)&&W.length>0?JSON.stringify((0,u.extractObservedAgentNames)(W)):null;if(await a.db.upsertExecution({where:{id:g},create:{id:g,taskId:k.task_id,query:k.query,framework:k.framework,tokens:k.tokens,cost:k.cost,latency:k.latency,timestamp:k.timestamp?new Date(k.timestamp):new Date,finalResult:k.final_result,skill:k.skill,skills:k.skills?JSON.stringify(k.skills):null,invokedSkills:k.invokedSkills?JSON.stringify(k.invokedSkills):null,isSkillCorrect:k.is_skill_correct,isAnswerCorrect:k.is_answer_correct,answerScore:k.answer_score,skillScore:k.skill_score,judgmentReason:k.judgment_reason,failures:k.failures?JSON.stringify(k.failures):null,skillIssues:k.skill_issues?JSON.stringify(k.skill_issues):null,label:k.label,user:k.user,agentName:k.agentName,agentId:l,skillVersion:k.skill_version,model:k.model,endpoint:(0,o.normalizeEndpointUrl)(k.endpoint),toolCallCount:k.tool_call_count,llmCallCount:k.llm_call_count,inputTokens:k.input_tokens,outputTokens:k.output_tokens,toolCallErrorCount:k.tool_call_error_count,skillTriggerRate:k.skill_trigger_rate,cacheReadInputTokens:k.cache_read_input_tokens,cacheCreationInputTokens:k.cache_creation_input_tokens,maxSingleCallTokens:k.max_single_call_tokens,reasoningTokens:k.reasoning_tokens,observedAgents:X},update:{taskId:k.task_id,query:k.query,framework:k.framework,tokens:k.tokens,cost:k.cost,latency:k.latency,timestamp:k.timestamp?new Date(k.timestamp):new Date,finalResult:k.final_result,skill:k.skill,skills:k.skills?JSON.stringify(k.skills):null,invokedSkills:k.invokedSkills?JSON.stringify(k.invokedSkills):null,isSkillCorrect:k.is_skill_correct,isAnswerCorrect:k.is_answer_correct,answerScore:k.answer_score,skillScore:k.skill_score,judgmentReason:k.judgment_reason,failures:k.failures?JSON.stringify(k.failures):null,skillIssues:k.skill_issues?JSON.stringify(k.skill_issues):null,label:k.label,user:k.user,agentName:k.agentName,agentId:l,skillVersion:k.skill_version,model:k.model,endpoint:(0,o.normalizeEndpointUrl)(k.endpoint),toolCallCount:k.tool_call_count,llmCallCount:k.llm_call_count,inputTokens:k.input_tokens,outputTokens:k.output_tokens,toolCallErrorCount:k.tool_call_error_count,skillTriggerRate:k.skill_trigger_rate,cacheReadInputTokens:k.cache_read_input_tokens,cacheCreationInputTokens:k.cache_creation_input_tokens,maxSingleCallTokens:k.max_single_call_tokens,reasoningTokens:k.reasoning_tokens,observedAgents:X}}),e.upload_id&&e.task_id&&e.upload_id!==g)try{let t=await a.db.findExecutionById(e.upload_id);t&&t.taskId===e.task_id&&(P&&console.warn(`[Data-Audit] deleteExecution (dedup on save): upload_id=${e.upload_id} task_id=${e.task_id} recordId=${g}`),await a.db.deleteExecution(e.upload_id))}catch{}if(H)try{let e=Array.isArray(W)&&W.length>0,t=(A=Y?Array.isArray(k.invokedSkills)?k.invokedSkills:[]:e?function(e,t){if(!Array.isArray(t)||0===t.length)return[];if("opencode"===e||"hermes"===e||"langfuse-langgraph"===e){let e=(0,B.buildAgentCallTree)(t);return e?m(e):[]}return function(e,t){if(!Array.isArray(t))return null;let A=(0,p.normalizeInteractions)(t);return(0,f.getAdapter)(e).extractSkills?.(A)??null}(e,t)??[]}(k.framework,W):Array.isArray(k.invokedSkills)?k.invokedSkills:[],s=k.skill??null,n=k.skill_version??null,s&&"number"==typeof n?A.map(e=>e.name===s&&null==e.version?{...e,version:n}:e):A),r=await w(t,k.user);await D(g,r,{user:k.user,primaryName:k.skill??null}),await a.prismaRaw.execution.update({where:{id:g},data:{skills:r.length?JSON.stringify(r.map(e=>e.name)):null,invokedSkills:r.length?JSON.stringify(r):null}})}catch(e){console.warn(`[Data-Service] root ExecutionSkill persist failed for ${g}:`,e)}if(("opencode"===k.framework||"hermes"===k.framework||"langfuse-langgraph"===k.framework)&&k.task_id&&Array.isArray(W))try{await x({parentExecutionId:g,parentTaskId:k.task_id,parentFramework:k.framework,parentUser:k.user,interactions:W})}catch(e){console.warn(`[Data-Service] deriveSubagentExecutions failed for parent=${g}:`,e)}let z=k.trace_completed_at?new Date(k.trace_completed_at):null,ee=null!=z&&Number.isFinite(z.getTime()),et=!ee&&"hermes"===k.framework&&"string"==typeof k.final_result&&k.final_result.trim()?function(e){if(!Array.isArray(e))return null;let t=e.flatMap(e=>{let t=e&&"object"==typeof e?e:{},A=t.timeInfo&&"object"==typeof t.timeInfo?t.timeInfo:{},r=t.timing&&"object"==typeof t.timing?t.timing:{};return[S(A.completed),S(A.created),S(r.completed_at),S(r.started_at),S(t.completedAt),S(t.completed_at),S(t.timestamp),S(t.createdAt)]}).filter(e=>null!=e&&Number.isFinite(e)&&e>0).reduce((e,t)=>Math.max(e,t),0);return t>0?new Date(t):null}(W):null,eA=ee?z:et;!ee&&et&&(k.trace_completed_at=et);let er=null!=eA&&Number.isFinite(eA.getTime());return k.task_id&&W&&(await a.db.upsertSession(k.task_id,{taskId:k.task_id,query:k.query,label:k.label,user:k.user,model:k.model,interactions:JSON.stringify(W),...er?{endTime:eA}:{}},{query:k.query,label:k.label,user:k.user,model:k.model,interactions:JSON.stringify(W)}),er&&await a.db.updateSession(k.task_id,{endTime:eA}),"opencode"===k.framework&&!0===k.opencode_cli_completed&&await a.db.updateSession(k.task_id,{endTime:new Date})),{success:!0,record:k}}function v(e){if(null==e)return"";if("string"==typeof e){let t=e.trim();if(t.startsWith("{")&&t.endsWith("}")||t.startsWith("[")&&t.endsWith("]"))try{return v(JSON.parse(t))}catch{}return e}return Array.isArray(e)?e.map(e=>v(e?.text??e?.content??e)).filter(Boolean).join("\n"):"object"==typeof e?v(e.text??e.content??""):String(e)}async function x(e){let{parentExecutionId:t,parentTaskId:A,parentFramework:r,parentUser:s,interactions:n}=e;if(!Array.isArray(n)||0===n.length)return;let i=(0,B.buildAgentCallTree)(n);if(!i)return void await Y(t,new Set);let o=[],l=new Set;if((0,B.walkTree)(i,e=>{if(!e||0===e.depth)return;let t="string"==typeof e.sessionId?e.sessionId.trim():"";!t||t===A||l.has(t)||(l.add(t),o.push({node:e,sessionId:t,parentNodeId:e.parentId}))}),0===o.length)return;o.sort((e,t)=>e.node.depth-t.node.depth);let c=new Map;c.set(i.id,t);let g=new Set;for(let e of o){let{node:A,sessionId:i,parentNodeId:o}=e,l=c.get(o)??t,h=`${l}__sub__${i}`;c.set(A.id,h),g.add(h);let E=new Set,Q=[],d=e=>{for(let t of e.interactionIndices||[])E.add(t);for(let t of(Array.isArray(e.systemPrompts)&&e.systemPrompts.length>0&&e.sessionId&&Q.push({sessionId:e.sessionId,entries:e.systemPrompts}),e.children||[]))d(t)};d(A);let I=[...E].sort((e,t)=>e-t).map(e=>n[e]).filter(Boolean),B=[];for(let e of Q)for(let t of e.entries)B.push({role:"system",content:t.text,subagent_session_id:e.sessionId,system_prompt_sha256:t.sha256,system_prompt_length:t.length,system_prompt_modelID:t.modelID,system_prompt_providerID:t.providerID});let C=[...B,...I],f=function(e,t){let A=(e.interactionIndices||[]).map(e=>t[e]).filter(Boolean),r=A.map(e=>v(e?.content).trim()).filter(Boolean),s=r[0]||e.agentName||e.sessionId,n=(e.events||[]).filter(e=>"llm"===e.kind),i=n.filter(e=>{let t=e.usage;return!!t&&((t.total||0)>0||(t.input||0)>0||(t.output||0)>0||(t.reasoning||0)>0)}),o=e.interactionIndices?.[0],a=n.filter(e=>e.interactionIndex!==o&&(!!e.summary?.trim()||(e.interaction?.tool_calls?.length||0)>0)).length,l=(e.events||[]).filter(e=>"tool"===e.kind||"skill"===e.kind||"task"===e.kind),c=A.map(e=>e?.model??e?.modelID).find(e=>"string"==typeof e&&e.trim())||null;return{query:s,finalResult:r.length>1?r[r.length-1]:null,model:c,tokens:e.stats.totalTokens,inputTokens:e.stats.inputTokens,outputTokens:e.stats.outputTokens,reasoningTokens:e.stats.reasoningTokens,cacheReadInputTokens:e.stats.cacheReadTokens,cacheCreationInputTokens:e.stats.cacheWriteTokens,latency:e.stats.durationMs??null,llmCallCount:i.length||a,toolCallCount:l.length,toolCallErrorCount:l.filter(function e(t){let A=Array.isArray(t?.interaction?.tool_calls)?t.interaction.tool_calls:[],r=t?._toolCallId,s=A.find(e=>!r||e?.id===r),n=String(s?.state||"").toLowerCase();if("error"===n||"failed"===n)return!0;let i=t?.output??s?.output??s?.result;if(i&&"object"==typeof i){let e=String(i.status||i.state||"").toLowerCase();return"error"===e||"failed"===e||!!i.error}if("string"==typeof i&&i.trim().startsWith("{"))try{return e({...t,output:JSON.parse(i),interaction:void 0})}catch{}return!1}).length}}(A,n),p=((function(e,t){let A=String(t||"").trim();if(!A)return null;for(let t of e)for(let e of Array.isArray(t?.tool_calls)?t.tool_calls:[]){let t=e?.function?.name??e?.name;if("task"!==t)continue;let r=function(e){let t=e?.function?.arguments??e?.arguments;if(t&&"object"==typeof t&&!Array.isArray(t))return t;if("string"!=typeof t)return{};try{let e=JSON.parse(t);return e&&"object"==typeof e&&!Array.isArray(e)?e:{}}catch{return{}}}(e);if(String(r.subagent_session_id??r.session_id??r.agent_session_id??"").trim()!==A)continue;let s=v(r.description??r.task_description??r.prompt??r.subagent_type).trim();if(s)return s}return null})(n,i)||f.query).slice(0,500),y=m(A);if(H)try{y=await w(y,s)}catch(e){console.warn(`[Data-Service] sub skill version snapshot failed sub=${i}:`,e)}let S=A.startedAt?new Date(A.startedAt):new Date,b=A.endedAt?new Date(A.endedAt):null,N={taskId:i,framework:r,timestamp:S,agentName:A.agentName??null,user:s??null,query:p,finalResult:f.finalResult,model:f.model,tokens:f.tokens,inputTokens:f.inputTokens,outputTokens:f.outputTokens,reasoningTokens:f.reasoningTokens,cacheReadInputTokens:f.cacheReadInputTokens,cacheCreationInputTokens:f.cacheCreationInputTokens,latency:f.latency,llmCallCount:f.llmCallCount,toolCallCount:f.toolCallCount,toolCallErrorCount:f.toolCallErrorCount,skills:y.length?JSON.stringify(y.map(e=>e.name)):null,invokedSkills:y.length?JSON.stringify(y):null,parentExecutionId:l,rootExecutionId:t,agentSessionId:i,subagentType:A.subagentType??null,subagentName:A.agentName??null,isSubagent:!0,observedAgents:JSON.stringify((0,u.extractObservedAgentNames)(C))};try{await a.db.upsertExecution({where:{id:h},create:{id:h,...N},update:{...N}})}catch(e){console.warn(`[Data-Service] upsertExecution(sub) failed sub=${i}:`,e);continue}if(H)try{await D(h,y,{user:s??null})}catch(e){console.warn(`[Data-Service] sub ExecutionSkill persist failed sub=${i}:`,e)}try{await a.db.upsertSession(i,{taskId:i,label:A.agentName??null,user:s??null,query:p,interactions:JSON.stringify(C),...b?{endTime:b}:{}},{label:A.agentName??null,user:s??null,query:p,interactions:JSON.stringify(C),...b?{endTime:b}:{}})}catch(e){console.warn(`[Data-Service] upsertSession(sub) failed sub=${i}:`,e)}}await Y(t,g)}async function Y(e,t){try{for(let A of(await a.db.findExecutions({rootExecutionId:e,isSubagent:!0},{timestamp:"desc"})))if(!(!A?.id||t.has(A.id)))try{await a.db.deleteExecution(A.id)}catch(e){console.warn(`[Data-Service] sweepStaleSubagents: deleteExecution(${A.id}) failed:`,e)}}catch(t){console.warn(`[Data-Service] sweepStaleSubagents query failed root=${e}:`,t)}}process.env.READ_RECORDS_HYDRATE_BATCH_SIZE,e.s(["saveExecutionRecord",()=>L]),A()}catch(e){A(e)}},!1)];
|
|
368
|
+
`}e.s(["EXTRACTION_PROMPT",0,t,"generateExtractionPrompt",()=>A])},191878,e=>e.a(async(t,A)=>{try{var r=e.i(522734);e.i(210954);var s=e.i(184599),n=e.i(814747),i=e.i(93387),o=e.i(256451),a=e.i(401682);e.i(419961),e.i(598905);var l=t([a]);[a]=l.then?(await l)():l;let E=(0,i.resolveAgentInsightDataPath)("model_debug.jsonl"),Q={temperature:0,top_p:1,seed:42};function c(e,t,A){try{let s=n.default.dirname(E);r.default.existsSync(s)||r.default.mkdirSync(s,{recursive:!0});let i={timestamp:new Date().toISOString(),stage:e,input:t,output:A};r.default.appendFileSync(E,JSON.stringify(i)+"\n")}catch(e){console.error("Log error",e)}}async function g(e){let t=await (0,a.getActiveConfig)(e);if(!t)return{client:null,model:null};let A=t.apiKey||"no-api-key-required",r=t.baseUrl||"https://api.deepseek.com",{customFetch:n}=(0,o.getProxyConfig)();return{client:new s.OpenAI({apiKey:A,baseURL:r,fetch:n}),model:t.model||"deepseek-chat"}}async function h(e,t){let A,r=(A=Number(process.env.JUDGMENT_TIMEOUT_MS||3e5),!Number.isFinite(A)||A<=0?3e5:A),s=new AbortController,n=setTimeout(()=>s.abort(),r);try{return await e({signal:s.signal,timeout:r})}catch(e){if(s.signal.aborted)throw Error(`${t} timeout after ${r}ms`);throw e}finally{clearTimeout(n)}}async function u(t,A,r,s,n){let{client:i,model:o}=await g(s);if(!i||!i.apiKey)return console.warn("LLM Evaluation disabled or missing config. Skipping."),{is_correct:!1,score:0,reason:"请在首页左上角的设置中配置 LLM"};try{let s=A.root_causes||[],a=A.key_actions||[],l=s.map((e,t)=>({id:`RC-${t}`,...e})),g=a.map((e,t)=>({id:`KA-${t}`,...e})),{generateJudgePrompt:u}=e.r(610234),E=[];if(l.length>0){let e=u(t,r,l,[],A.skill_definition,"root_causes"),s=await h(t=>i.chat.completions.create({messages:[{role:"user",content:e}],model:o,...Q},t),"RC Judgment API");console.log(`[Judge API Debug] RC Model: ${o}. Received response choices:`,s?.choices?.length);let n=s.choices?.[0]?.message?.content;if(c("rc_evaluation",{prompt:e},{raw_output:n}),n){let e=n.trim(),t=e.match(/```(?:json)?\s*([\s\S]*?)\s*```/i);if(t)e=t[1];else{let t=e.indexOf("{"),A=e.lastIndexOf("}");-1!==t&&-1!==A&&A>=t&&(e=e.substring(t,A+1))}try{let t=JSON.parse(e);E.push(...t.evaluations||[])}catch(e){console.warn("[Judge] Failed to parse RC result:",e)}}}if(g.length>0){let e=n&&n.length>0?n.map((e,t)=>`步骤${t+1}: [${e.type}] ${e.name} - ${e.description}`).join("\n"):null,s=u(t,e||r,[],g,A.skill_definition,"key_actions",e||null),a=await h(e=>i.chat.completions.create({messages:[{role:"user",content:s}],model:o,...Q},e),"KA Judgment API");console.log(`[Judge API Debug] KA Model: ${o}. Received response choices:`,a?.choices?.length);let l=a.choices?.[0]?.message?.content;if(c("ka_evaluation",{prompt:s},{raw_output:l}),l){let e=l.trim(),t=e.match(/```(?:json)?\s*([\s\S]*?)\s*```/i);if(t)e=t[1];else{let t=e.indexOf("{"),A=e.lastIndexOf("}");-1!==t&&-1!==A&&A>=t&&(e=e.substring(t,A+1))}try{let t=JSON.parse(e);E.push(...t.evaluations||[])}catch(e){console.warn("[Judge] Failed to parse KA result:",e)}}}let d=0,I=0,B=[];l.forEach(e=>{let t=E.find(t=>t.id===e.id),A=t?Math.max(0,Math.min(1,Number(t.match_score))):0,r=t?.explanation||"未找到评分结果";d+=A*e.weight,I+=e.weight,B.push(`1. **Root Cause** [${e.content.replace(/\n/g," ")}]: ${(100*A).toFixed(0)}% match. ${r} (Weight: ${e.weight})`)});let C=new Map,f=[];for(let e of g){let t=e.groupId,A=e.controlFlowType||"required";"conditional"===A&&t?(C.has(t)||C.set(t,[]),C.get(t).push(e)):f.push(e)}for(let[e,t]of C){let e=t.map(e=>{let t=E.find(t=>t.id===e.id),A=t?Math.max(0,Math.min(1,Number(t.match_score))):0,r=t?.explanation||"未找到评分结果";return{ka:e,ev:t,match:A,explanation:r}}),A=e.find(e=>e.match>0||!e.explanation.includes("此分支未触发"));if(A){let{ka:t,ev:r,match:s,explanation:n}=A,i=t.branchLabel||"";for(let r of(d+=s*t.weight,I+=t.weight,B.push(`2. **Key Action** [${t.content.replace(/\n/g," ")}] (条件分支${i?" - "+i:""}): ${(100*s).toFixed(0)}% match. ${n} (Weight: ${t.weight})`),e))r.ka.id!==A.ka.id&&B.push(`2. **Key Action** [${r.ka.content.replace(/\n/g," ")}] (条件分支${r.ka.branchLabel?" - "+r.ka.branchLabel:""}): ${(100*r.match).toFixed(0)}% match. ${r.explanation} (该分支未触发,不计入总分)`)}else{let{ka:t,ev:A,match:r,explanation:s}=e[0],n=t.branchLabel||"";d+=0*t.weight,I+=t.weight,B.push(`2. **Key Action** [${t.content.replace(/\n/g," ")}] (条件分支${n?" - "+n:""}): ${(100*r).toFixed(0)}% match. ${s} (所有分支均未触发,Weight: ${t.weight})`);for(let t=1;t<e.length;t++){let A=e[t];B.push(`2. **Key Action** [${A.ka.content.replace(/\n/g," ")}] (条件分支${A.ka.branchLabel?" - "+A.ka.branchLabel:""}): ${(100*A.match).toFixed(0)}% match. ${A.explanation} (该分支未触发,不计入总分)`)}}}f.forEach(e=>{let t=E.find(t=>t.id===e.id),A=t?Math.max(0,Math.min(1,Number(t.match_score))):0,r=t?.explanation||"未找到评分结果",s=e.controlFlowType||"required";if("optional"===s)return void B.push(`2. **Key Action** [${e.content.replace(/\n/g," ")}] (可选): ${(100*A).toFixed(0)}% match. ${r} (Weight: 0, 不扣分)`);if("handoff"===s){d+=A*e.weight,I+=e.weight,B.push(`2. **Key Action** [${e.content.replace(/\n/g," ")}] (衔接): ${(100*A).toFixed(0)}% match. ${r} (Weight: ${e.weight})`);return}if("loop"===s){let t=e.loopCondition||"",s=e.expectedMinCount,n=e.expectedMaxCount;d+=A*e.weight,I+=e.weight,B.push(`2. **Key Action** [${e.content.replace(/\n/g," ")}] (循环${t?" - "+t:""}): ${(100*A).toFixed(0)}% match. ${r} (Weight: ${e.weight}, 预期次数: ${s??"?"}~${n??"?"})`);return}d+=A*e.weight,I+=e.weight,B.push(`2. **Key Action** [${e.content.replace(/\n/g," ")}]: ${(100*A).toFixed(0)}% match. ${r} (Weight: ${e.weight})`)});let p=0;p=I>0?d/I:0;let y=B.map(e=>{let t=e.match(/(\d+)% match/),A=e.match(/\(Weight: ([\d\.]+)\)/);if(t&&A){let e=(parseInt(t[1])/100).toFixed(1),r=parseFloat(A[1]).toFixed(1);return`${e}*${r}`}return null}).filter(e=>e).join(" + "),m=B.map(e=>{let t=e.match(/\(Weight: ([\d\.]+)\)/);return t?parseFloat(t[1]).toFixed(1):null}).filter(e=>e).join(" + "),w=`**Calculation**: (${y}) / (${m}) = ${d.toFixed(2)} / ${I.toFixed(2)} = ${p.toFixed(2)}`;B.push("",w);let D=B.join("\n");return{is_correct:p>=.8,score:p,reason:D}}catch(e){if(console.error("LLM Judgment Error:",e),String(e?.message||"").includes("timeout"))return{is_correct:!1,score:0,reason:"Judgment API failed: timeout"};return{is_correct:!1,score:0,reason:"Judgment API failed"}}}e.s(["judgeAnswer",()=>u]),A()}catch(e){A(e)}},!1),457035,e=>{"use strict";var t=e.i(594559);function A(e){if(!e)return null;try{return(0,t.normalizeEndpoint)(e)}catch{return null}}e.s(["normalizeEndpointUrl",()=>A])},723039,e=>{"use strict";e.i(522734);var t=e.i(814747),A=e.i(844466);let r={},s={};for(let[e,t]of Object.entries(A.default))if(!e.startsWith("_")){if("number"==typeof t.inputTokenPrice&&"number"==typeof t.outputTokenPrice){let A={inputTokenPrice:t.inputTokenPrice,outputTokenPrice:t.outputTokenPrice};"number"==typeof t.cacheReadInputTokenPrice&&(A.cacheReadInputTokenPrice=t.cacheReadInputTokenPrice),"number"==typeof t.cacheCreationInputTokenPrice&&(A.cacheCreationInputTokenPrice=t.cacheCreationInputTokenPrice),r[e]=A}"number"==typeof t.contextWindow&&(s[e]=t.contextWindow)}t.default.join(process.cwd(),"custom-models.json"),e.s([])},852628,e=>{"use strict";function t(e){return"routing"===e||"outcome"===e||"combined"===e?e:"combined"}function A(e,A){let r=t(e);return"combined"===r||r===A}function r(e,A){let r=t(e);return"any"===A?"combined"===r?1:2:r===A?3:2*("combined"===r)}function s(e){return Array.isArray(e)?e.map(e=>{if("string"==typeof e){let t=e.trim();return t?{skill:t,version:null}:null}if(!e||"object"!=typeof e)return null;let t="skill"in e?e.skill:null,A="string"==typeof t?t.trim():"";if(!A)return null;let r="version"in e?e.version:null,s=null;if("number"==typeof r&&Number.isInteger(r)&&r>=0)s=r;else if("string"==typeof r&&r.trim()){let e=parseInt(r,10);s=Number.isNaN(e)||e<0?null:e}return{skill:A,version:s}}).filter(e=>!!e):[]}e.s(["configSupportsDatasetType",()=>A,"getDatasetTypePriority",()=>r,"normalizeConfigDatasetType",()=>t,"normalizeExpectedSkills",()=>s])},997078,e=>{"use strict";function t(e){return"string"!=typeof e?null:e.trim()||null}function A(e){return"string"!=typeof e?"":e.trim()}function r(e,s="Skill benchmark"){var n,i;let o;return t(e.query)||(n=e.skill,i=e.skillVersion,(o=A(n))?null!=i?`${o} (v${i})`:o:null)||s}e.s(["getConfigSubjectLabel",()=>r,"normalizeConfigQuery",()=>t,"normalizeConfigSkillName",()=>A])},583701,e=>e.a(async(t,A)=>{try{e.i(210954),e.i(256451);var r=e.i(401682),s=t([r]);function n(e){return e.trim().toLowerCase().replace(/[`"'“”‘’]/g,"").replace(/[.,,。!?!?;;::、·…()[\]{}<>]/g," ").replace(/\s+/g," ").trim().replace(/\s/g,"")}function i(e,t){let A=n(e),r=n(t.intent),s=t.anchors.filter(e=>{let t=n(e);return!!t&&A.includes(t)});return{intentMatched:!!(A&&r&&(A===r||A.includes(r)||r.includes(A))),matchedAnchors:s,anchorCoverage:t.anchors.length>0?s.length/t.anchors.length:0}}[r]=s.then?(await s)():s,e.s(["matchQueryToStoredRoutingSignature",()=>i]),A()}catch(e){A(e)}},!1),864778,e=>{"use strict";function t(e){if(null==e)return null;if("number"==typeof e&&Number.isFinite(e))return e;if("string"==typeof e){let t=e.trim();if(!t)return null;if(/^\d+$/.test(t)){let e=Number(t);return Number.isFinite(e)?e:null}let A=Date.parse(t);return Number.isFinite(A)?A:null}return null}function A(e){let A=0,r=0,s="",n="",i="",o=0,a=0,l=0,c=0,g=0,h=0,u=0,E=0,Q=0,d=Number.MAX_SAFE_INTEGER,I=0;for(let r of e||[]){if(!r)continue;let e=r.role,B="assistant"===e||"subagent"===e;if("assistant"===e){let e="string"==typeof r.content?r.content:"";e&&e.trim()&&(n=e),"string"==typeof r.model&&r.model?s=r.model:"string"==typeof r.modelID&&r.modelID&&(s=r.modelID)}r.agent&&"string"==typeof r.agent&&!i&&(i=r.agent);let C=t(r.timeInfo?.created),f=t(r.timeInfo?.completed),p=t(r.timestamp);if(C&&(d=Math.min(d,C),I=Math.max(I,C)),f&&(I=Math.max(I,f)),p&&(d=Math.min(d,p),I=Math.max(I,p)),!B)continue;h++;let y=r.usage;if(y){let e=function(e){let t=Number(e?.input_tokens??e?.input??0)||0,A=Number(e?.output_tokens??e?.output??0)||0,r=Number(e?.cache?.read??e?.cache_read_input_tokens??0)||0,s=Number(e?.cache?.write??e?.cache_creation_input_tokens??0)||0,n=Number(e?.reasoning??e?.reasoning_tokens??e?.completion_tokens_details?.reasoning_tokens??0)||0,i=e?.reasoning!==void 0&&n>0&&A<n?A+n:A;return{total:e?.total!==void 0?Number(e.total)||0:t+i+r+s,input:t,output:i,cacheRead:r,cacheWrite:s,reasoning:n,maxSingleCallTokens:t+i+r+s}}(y);A+=e.total,o+=e.input,a+=e.output,l+=e.cacheRead,c+=e.cacheWrite,g+=e.reasoning,e.maxSingleCallTokens>Q&&(Q=e.maxSingleCallTokens)}if(Array.isArray(r.tool_calls))for(let e of(u+=r.tool_calls.length,r.tool_calls))(e?.state==="error"||e?.state==="failed")&&E++}return d!==Number.MAX_SAFE_INTEGER&&I>d&&(r=I-d),{model:s||void 0,agentName:i||void 0,final_result:n||void 0,tokens:Math.round(A),latency:r/1e3,input_tokens:Math.round(o),output_tokens:Math.round(a),tool_call_count:u,tool_call_error_count:E,llm_call_count:h,cache_read_input_tokens:Math.round(l),cache_creation_input_tokens:Math.round(c),max_single_call_tokens:Math.round(Q),reasoning_tokens:Math.round(g)}}e.s(["deriveOpencodeExecutionFields",()=>A])},656709,e=>{"use strict";e.s([])},475670,e=>{"use strict";function t(e){return"string"==typeof e?e.trim():""}function A(e,A){let r=[],s=new Set,n=t(A),i=(e,A)=>{let n=t(e);if(!n)return;let i=`${A}:${n}`;s.has(i)||(s.add(i),r.push({name:n,agentType:A}))};for(let A of(n&&i(n,"main"),e||[])){if(!A||"object"!=typeof A)continue;let e=t(A.role).toLowerCase(),r=t(A.subagent_name),s=t(A.agent);if(r){i(r,"subagent");continue}("subagent"===e||"opencode"===e)&&s&&s!==n?i(s,"subagent"):!n&&s&&i(s,"main")}return r}function r(e){return A(e).map(e=>e.name)}e.i(656709),e.s(["extractObservedAgentNames",()=>r,"extractObservedAgentRegistrations",()=>A])},39759,e=>{"use strict";function t(e){let t="string"==typeof e.incomingLabel?e.incomingLabel.trim():void 0;if(void 0!==t){if(!t)return;return t}let A="string"==typeof e.existingLabel?e.existingLabel.trim():"",r="string"==typeof e.skill?e.skill.trim():"",s=e.skillVersion??null;if(A&&!(A&&"without-skill"===A))return A;if(r){let e="number"==typeof s&&Number.isFinite(s)?s:0;return`${r}-v${e}`}return"without-skill"}e.s(["chooseExecutionLabel",()=>t])},799880,e=>{"use strict";function t(e){let t="string"==typeof e?e.trim():"";if(!t||"without-skill"===t)return null;let A=t.match(/^(.+)-v(\d+)$/);if(!A)return null;let r=(A[1]||"").trim(),s=Number(A[2]);return r&&Number.isFinite(s)&&!(s<0)?{skill:r,skill_version:s,skills:[r],invokedSkills:[{name:r,version:s}]}:null}e.s(["parseLabelSkillVersionBinding",()=>t])},925658,e=>{"use strict";e.s([])},761620,e=>e.a(async(t,A)=>{try{e.i(210954),e.i(256451);var r=e.i(401682),s=e.i(309418);e.i(925658),e.i(308229),e.i(522734),e.i(814747);var n=e.i(93387),i=t([r,s]);function o(e){let t=[],A=new Map;if(e.conditionalGroups)for(let t of e.conditionalGroups)for(let e of t.branches)for(let r of e.stepIds)A.set(r,{type:"conditional",group:t});if(e.loopGroups)for(let t of e.loopGroups)for(let e of t.bodyStepIds)A.set(e,{type:"loop",group:t});let r=new Set(e.steps.map(e=>e.id));if(e.conditionalGroups)for(let t of e.conditionalGroups)for(let e of t.branches)for(let s of e.stepIds)r.has(s)||(console.warn(`[FlowParse] ConditionalGroup ${t.id} references invalid stepId ${s}, degrading to required`),A.delete(s));if(e.loopGroups)for(let t of e.loopGroups)for(let e of t.bodyStepIds)r.has(e)||(console.warn(`[FlowParse] LoopGroup ${t.id} references invalid stepId ${e}, degrading to required`),A.delete(e));let s=new Map;if(e.conditionalGroups)for(let t of e.conditionalGroups)s.set(t.id,t.branches.length);for(let r of e.steps){let e=A.get(r.id);if(r.isOptional&&!e){t.push({id:r.id,content:r.name,weight:0,controlFlowType:"optional"});continue}if(e?.type==="conditional"){let A=e.group,n=A.branches.find(e=>e.stepIds.includes(r.id)),i=s.get(A.id)||1;t.push({id:r.id,content:r.name,weight:1/i,controlFlowType:"conditional",condition:A.condition,branchLabel:n?.label,groupId:A.id});continue}if(e?.type==="loop"){let A=e.group;t.push({id:r.id,content:r.name,weight:1,controlFlowType:"loop",loopCondition:A.loopCondition,expectedMinCount:A.expectedMinCount,expectedMaxCount:A.expectedMaxCount,groupId:A.id});continue}if(r.isOptional){t.push({id:r.id,content:r.name,weight:0,controlFlowType:"optional"});continue}t.push({id:r.id,content:r.name,weight:1,controlFlowType:"required"})}return t}function a(e){let t=[];for(let A=0;A<e.length;A++){let{name:r,actions:s}=e[A];for(let e of s)t.push({...e,id:`${r}-${e.id}`,skillSource:r});if(A<e.length-1){let s=e[A+1].name;t.push({id:`handoff-${r}-to-${s}`,content:`从 ${r} 输出衔接至 ${s} 输入`,weight:1,controlFlowType:"handoff",skillSource:`${r}->${s}`})}}return t}[r,s]=i.then?(await i)():i,(0,n.resolveAgentInsightDataPath)("flow_debug.jsonl"),e.s(["extractKeyActionsFromFlow",()=>o,"mergeKeyActionsFromMultipleSkills",()=>a]),A()}catch(e){A(e)}},!1),6325,e=>{"use strict";function t(e){if(null==e)return null;if("number"==typeof e&&Number.isFinite(e))return e;if("string"==typeof e){let t=e.trim();if(!t)return null;if(/^\d+$/.test(t)){let e=Number(t);return Number.isFinite(e)?e:null}let A=Date.parse(t);return Number.isFinite(A)?A:null}return null}function A(e){let A=e.id??e.message_id??e.messageID;if("string"==typeof A&&A.trim())return`id:${A.trim()}`;let r="string"==typeof e.role?e.role:"unknown",s=t(e.timestamp)??t(e.timeInfo?.created)??t(e.timeInfo?.completed)??0,n="string"==typeof e.subagent_session_id?e.subagent_session_id:"";return`k:${n}:${s}:${r}`}function r(e,r){let s=Array.isArray(e)?e:[],n=Array.isArray(r)?r:[],i=new Map,o=new Map,a=0;for(let e of s){if(!e)continue;let t=A(e);i.has(t)||(i.set(t,e),o.set(t,a++))}for(let e of n){if(!e)continue;let t=A(e),r=i.get(t);r?i.set(t,function(e,t){let A={...e,...t},r="string"==typeof e.content?e.content:"",s="string"==typeof t.content?t.content:"";return r&&!s?A.content=r:r&&s&&s.length<r.length&&(A.content=r),e.subagent_name&&!t.subagent_name&&(A.subagent_name=e.subagent_name),e.agent&&!t.agent&&(A.agent=e.agent),e.subagent_session_id&&!t.subagent_session_id&&(A.subagent_session_id=e.subagent_session_id),A.tool_calls=function(e,t){let A=Array.isArray(e)?e:[],r=Array.isArray(t)?t:[];if(0===A.length)return r;if(0===r.length)return A;let s=new Set,n=[];for(let e of[...A,...r]){let t=function(e){let t=e?.id??e?.callID??e?.callId??e?.call_id;if("string"==typeof t&&t.trim())return`id:${t.trim()}`;let A=e?.function?.name??e?.name??"",r=e?.function?.arguments??e?.arguments??"";return`sig:${A}:${function(e){let t=5381;for(let A=0;A<e.length;A++)t=(t<<5)+t^e.charCodeAt(A);return(t>>>0).toString(16)}(function(e){if(null==e)return"";if("string"==typeof e)return e;try{return JSON.stringify(e)}catch{return String(e)}}(r))}`}(e);s.has(t)||(s.add(t),n.push(e))}return n}(e.tool_calls,t.tool_calls),e.usage&&!t.usage&&(A.usage=e.usage),e.timeInfo&&!t.timeInfo&&(A.timeInfo=e.timeInfo),A}(r,e)):(i.set(t,e),o.set(t,a++))}let l=Array.from(i.entries()).map(([e,A])=>({k:e,v:A,ts:t(A.timestamp)??t(A.timeInfo?.created)??t(A.timeInfo?.completed)??0,order:o.get(e)??0}));return l.sort((e,t)=>e.ts-t.ts||e.order-t.order),l.map(e=>e.v)}e.s(["mergeSessionInteractionsMonotonic",()=>r])},418918,e=>{"use strict";var t=e.i(308033),A=e.i(598905);let r={descriptor:{id:"claude",aliases:["claudecode"],label:"Claude Code",onboard:"watcher",platform:"claude"},normalizeForStorage:t.normalizeClaudeCodeInteractionsForStorage,extractSkills:A.extractSkillsWithVersionsFromClaudeSession},s={descriptor:{id:"hermes",label:"Hermes",onboard:"plugin",platform:"hermes"},capabilities:{skills:!0,subagentTree:!0},sessionMergeStrategy:"snapshot-replace",extractSkills:A.extractSkillsWithVersionsFromHermesSession},n={descriptor:{id:"jiuwenswarm",aliases:["jiuwen","openjiuwen"],label:"JiuwenSwarm",onboard:"env",platform:"jiuwenswarm"},capabilities:{subagentTree:!0,skills:!0},sessionMergeStrategy:"snapshot-replace",extractSkills:A.extractSkillsWithVersionsFromJiuwenSession},i={descriptor:{id:"langfuse-langgraph",label:"Langfuse-Langgraph",onboard:"env",platform:"langfuse"},capabilities:{skills:!0,subagentTree:!0},sessionMergeStrategy:"snapshot-replace",extractSkills:A.extractSkillsWithVersionsFromOpencodeSession},o={descriptor:{id:"openclaw",label:"OpenClaw",onboard:"plugin",platform:"openclaw"},extractSkills:A.extractSkillsWithVersionsFromOpenClawSession},a={descriptor:{id:"opencode",label:"OpenCode",onboard:"plugin",platform:"opencode"},extractSkills:A.extractSkillsWithVersionsFromOpencodeSession},l={descriptor:{id:"unknown",label:"Unknown",onboard:"env"}},c=new Map;for(let e of[a,r,o,s,n,i])for(let t of(c.set(e.descriptor.id.toLowerCase(),e),e.descriptor.aliases??[]))c.set(t.toLowerCase(),e);function g(e){return c.get(String(e??"").trim().toLowerCase())??l}e.s(["getAdapter",()=>g],418918)},536619,e=>{"use strict";[{column:"query",type:"string",label:"查询内容",description:"用户输入 / 问题",syncMode:"textSearch",nullable:!0},{column:"finalResult",type:"string",label:"输出内容",description:"trace 最终输出",syncMode:"textSearch",nullable:!0},{column:"agentName",type:"string",label:"Agent 名",description:"主 Agent 名称",syncMode:"textSearch",nullable:!0},{column:"subagentName",type:"string",label:"子 Agent 名",description:"子 Agent 显示名",syncMode:"textSearch",nullable:!0},{column:"model",type:"string",label:"模型",description:"LLM 模型名",syncMode:"textSearch",nullable:!0},{column:"label",type:"string",label:"标注",description:"人工标注",syncMode:"textSearch",nullable:!0},{column:"framework",type:"stringOptions",label:"框架",description:"采集框架 / 平台",syncMode:"exactOption",nullable:!0},{column:"subagentType",type:"stringOptions",label:"子 Agent 类型",description:"kuafu / general …",syncMode:"exactOption",nullable:!0},{column:"latency",type:"number",label:"耗时",description:"执行时长(秒)",unit:"s",nullable:!0},{column:"tokens",type:"number",label:"Tokens",description:"总 token 数",nullable:!0},{column:"inputTokens",type:"number",label:"输入 Tokens",description:"输入 token 数",nullable:!0},{column:"outputTokens",type:"number",label:"输出 Tokens",description:"输出 token 数",nullable:!0},{column:"cost",type:"number",label:"成本",description:"估算成本($)",unit:"$",nullable:!0},{column:"toolCallCount",type:"number",label:"工具调用数",description:"工具调用次数",nullable:!0},{column:"toolCallErrorCount",type:"number",label:"工具错误数",description:"工具调用失败次数",nullable:!0},{column:"answerScore",type:"number",label:"答案分",description:"答案得分(0–1)",nullable:!0},{column:"skillScore",type:"number",label:"Skill 分",description:"Skill 得分(0–1)",nullable:!0},{column:"skillTriggerRate",type:"number",label:"Skill 触发率",description:"触发率(0–1)",nullable:!0},{column:"timestamp",type:"datetime",label:"时间",description:"trace 起始时间"},{column:"isAnswerCorrect",type:"boolean",label:"答案正确",description:"评测:答案是否正确",nullable:!0},{column:"isSubagent",type:"boolean",label:"是子 Agent",description:"是否子 Agent 执行"},{column:"agents",type:"arrayOptions",label:"Agent(多选)",description:"trace 涉及的 agent",field:"observedAgents",source:"observedAgents",syncMode:"arrayOption",nullable:!0},{column:"skill",type:"arrayOptions",label:"Skill",description:"调用的 skill",source:"executionSkill",syncMode:"arrayOption"},{column:"status",type:"stringOptions",label:"状态",description:"running / success / failed",source:"computed",syncMode:"exactOption"},{column:"ownership",type:"stringOptions",label:"归属",description:"user / system",source:"computed",syncMode:"exactOption"}].map(e=>[e.column,e]),Symbol("invalid"),e.s([],536619)},979029,e=>e.a(async(t,A)=>{try{var r=e.i(309418),s=t([r]);[r]=s.then?(await s)():s,e.s([]),A()}catch(e){A(e)}},!1),904239,e=>e.a(async(t,A)=>{try{var r=e.i(522734),s=e.i(814747),n=e.i(93387),i=e.i(191878),o=e.i(457035),a=e.i(309418);e.i(723039);var l=e.i(852628),c=e.i(997078),g=e.i(583701),h=e.i(864778),u=e.i(475670),E=e.i(39759),Q=e.i(799880),d=e.i(761620),I=e.i(6325),B=e.i(308229);e.i(656709);var C=e.i(264996),f=e.i(418918),p=e.i(598905);e.i(536619);var y=e.i(979029),m=t([i,a,g,d,y]);[i,a,g,d,y]=m.then?(await m)():m;let O=!process.env.DB_HOST,G=/^[a-zA-Z0-9_\-\.]+$/;function w(e){let t=new Set,A=[];for(let r of e.events||[]){if("skill"!==r.kind)continue;let e=r.args&&"object"==typeof r.args?r.args:{},s=e.name??e.skill_name??e.skillName??e.skill;if(null==s||!String(s).trim())continue;let n=String(s).trim().replace(/^['"]+|['"]+$/g,"");if(!G.test(n)||t.has(n))continue;t.add(n);let i=null!=e.version?Number(e.version):null;A.push({name:n,version:null===i||isNaN(i)?null:i})}return A}async function D(e,t){let A=Array.from(new Set(e.filter(e=>null==e.version).map(e=>e.name))),r=new Map;if(A.length>0)try{for(let e of(await a.prisma.skill.findMany({where:{name:{in:A},...t?{OR:[{user:t},{user:null}]}:{}},select:{name:!0,activeVersion:!0}})))"number"==typeof e.activeVersion&&r.set(e.name,e.activeVersion)}catch(e){console.warn("[Data-Service] snapshotSkillVersions lookup failed:",e)}return e.map(e=>null!=e.version?e:{name:e.name,version:r.get(e.name)??null})}async function S(e,t,A={}){if(O&&e)try{if(await a.prismaRaw.executionSkill.deleteMany({where:{executionId:e}}),!t.length)return;let r=new Set,s=[];for(let n of t){if(!n?.name)continue;let t=`${n.name}@@${n.version??""}`;r.has(t)||(r.add(t),s.push({executionId:e,skillName:n.name,skillVersion:n.version??null,isPrimary:null!=A.primaryName&&n.name===A.primaryName,user:A.user??null}))}s.length&&await a.prismaRaw.executionSkill.createMany({data:s})}catch(t){console.warn(`[Data-Service] persistExecutionSkills failed for ${e}:`,t)}}function b(e){if(null==e)return null;if(e instanceof Date)return Number.isFinite(e.getTime())?e.getTime():null;if("number"==typeof e&&Number.isFinite(e))return e;if("string"!=typeof e)return null;let t=e.trim();if(!t)return null;if(/^\d+$/.test(t)){let e=Number(t);return Number.isFinite(e)?e:null}let A=Date.parse(t);return Number.isFinite(A)?A:null}[...(process.env.TRACE_SERVICE_OWNERS||"admin,anonymous").split(",").map(e=>e.trim()).filter(Boolean)];let V="未找到匹配的效果评测配置";async function N(e,t,A){let r=(0,c.normalizeConfigQuery)(t);if(!r)return;let s=e.filter(e=>(0,l.configSupportsDatasetType)(e.dataset_type,"routing")),n=[];for(let e of s){let t=function(e){let t=Array.isArray(e.routing_anchors)?e.routing_anchors.filter(e=>"string"==typeof e&&e.trim()):[];return e.routing_intent?.trim()&&t.length>0?{intent:e.routing_intent.trim(),anchors:t}:null}(e);if(!t)continue;let A=(0,g.matchQueryToStoredRoutingSignature)(r,t);(0!==A.matchedAnchors.length||A.intentMatched)&&n.push({config:e,signature:t,matchedAnchors:A.matchedAnchors,anchorCoverage:A.anchorCoverage,intentMatched:A.intentMatched})}if(0===n.length)return;n.sort((e,t)=>{if(t.matchedAnchors.length!==e.matchedAnchors.length)return t.matchedAnchors.length-e.matchedAnchors.length;if(t.anchorCoverage!==e.anchorCoverage)return t.anchorCoverage-e.anchorCoverage;if(Number(t.intentMatched)!==Number(e.intentMatched))return Number(t.intentMatched)-Number(e.intentMatched);let A=(0,l.getDatasetTypePriority)(e.config.dataset_type,"routing"),r=(0,l.getDatasetTypePriority)(t.config.dataset_type,"routing");if(r!==A)return r-A;let s=e.signature.anchors.join("").length;return t.signature.anchors.join("").length-s});let i=n[0];return i.config.routing_intent=i.signature.intent,i.config.routing_anchors=i.signature.anchors,i.config}function R(e,t){let A=function(e){let t=(0,c.normalizeConfigSkillName)(e.skill);if(t)return{skill:t,version:e.skill_version??null};let A=F(e),r=Array.from(new Map(A.filter(e=>e.name?.trim()).map(e=>[`${e.name.trim()}::${e.version??"any"}`,e])).values());if(1===r.length)return{skill:r[0].name.trim(),version:r[0].version??null}}(t);if(!A)return;let r=(0,c.normalizeConfigQuery)(t.query),s=e.filter(e=>(0,l.configSupportsDatasetType)(e.dataset_type,"outcome")).filter(e=>(0,c.normalizeConfigSkillName)(e.skill)===A.skill).filter(e=>{let t=e.skillVersion??null;return null===t||t===A.version}).filter(e=>{let t=(0,c.normalizeConfigQuery)(e.query);return!t||t===r});if(0!==s.length)return s.reduce((e,t)=>{let s=(e.skillVersion??null)!==null&&e.skillVersion===A.version,n=(t.skillVersion??null)!==null&&t.skillVersion===A.version;if(s!==n)return n?t:e;let i=(0,c.normalizeConfigQuery)(e.query)===r,o=(0,c.normalizeConfigQuery)(t.query)===r;if(i!==o)return o?t:e;let a=!(0,c.normalizeConfigQuery)(e.query),g=!(0,c.normalizeConfigQuery)(t.query);if(a!==g)return g?t:e;let h=(0,l.getDatasetTypePriority)(e.dataset_type,"outcome");return(0,l.getDatasetTypePriority)(t.dataset_type,"outcome")>h?t:e})}function k(e){if(!e)return[];let t=(0,l.normalizeExpectedSkills)(e.expectedSkills);return t.length>0?t:e.skill?.trim()?[{skill:e.skill.trim(),version:e.skillVersion??null}]:[]}function F(e){return Array.isArray(e.invokedSkills)&&e.invokedSkills.length>0?e.invokedSkills.filter(e=>e?.name?.trim()).map(e=>({name:e.name.trim(),version:e.version??null})):Array.isArray(e.skills)&&e.skills.length>0?e.skills.filter(e=>"string"==typeof e&&e.trim()).map(e=>({name:e.trim(),version:null})):[]}function U(e,t,A){let r=new Map,s=(e,t)=>{let A=e?.trim();if(!A)return;let s=r.get(A)||{skill:A,expected_version:null,invoked_version:null,primary_version:null,is_expected:!1,is_invoked:!1,is_primary:!1,is_outcome_anchor:!1};r.set(A,{...s,...t,expected_version:void 0!==t.expected_version?t.expected_version:s.expected_version,invoked_version:void 0!==t.invoked_version?t.invoked_version:s.invoked_version,primary_version:void 0!==t.primary_version?t.primary_version:s.primary_version,is_expected:t.is_expected??s.is_expected,is_invoked:t.is_invoked??s.is_invoked,is_primary:t.is_primary??s.is_primary,is_outcome_anchor:t.is_outcome_anchor??s.is_outcome_anchor})};for(let A of(s(e.skill,{is_primary:!0,primary_version:e.skill_version??null}),k(t)))s(A.skill,{is_expected:!0,expected_version:A.version??null});for(let t of F(e))s(t.name,{is_invoked:!0,invoked_version:t.version??null});return A?.skill?.trim()&&s(A.skill,{is_outcome_anchor:!0}),Array.from(r.values()).sort((e,t)=>{let A=4*Number(e.is_primary)+2*Number(e.is_invoked)+Number(e.is_expected),r=4*Number(t.is_primary)+2*Number(t.is_invoked)+Number(t.is_expected);return A!==r?r-A:e.skill.localeCompare(t.skill)})}async function _(e,t){if(!e||Array.isArray(e.key_actions)&&e.key_actions.length>0)return;let A=function(e){let t=new Map,A=(e,A)=>{let r=(0,c.normalizeConfigSkillName)(e);if(!r)return;let s=A??null;t.set(`${r}::${s??"any"}`,{skill:r,version:s})};for(let t of(A(e.skill,e.skillVersion??null),(0,l.normalizeExpectedSkills)(e.expectedSkills)))A(t.skill,t.version??null);return Array.from(t.values())}(e);if(0===A.length)return;let r=[];for(let e of A){let A=await a.db.findSkill(e.skill,t||null);if(!A)continue;let s=e.version??A.activeVersion??A.versions?.[0]?.version??null;if(null==s)continue;let n=await a.db.findParsedFlow(A.id,s,t||null);if(!n?.flowJson)continue;let i=JSON.parse(n.flowJson),o=(0,d.extractKeyActionsFromFlow)(i).map(t=>({...t,skillSource:t.skillSource||e.skill}));o.length>0&&r.push({name:e.skill,actions:o})}if(0===r.length)return;let s=1===r.length?r[0].actions:(0,d.mergeKeyActionsFromMultipleSkills)(r);e.key_actions=s.map(e=>({content:e.content,weight:e.weight,..."required"!==e.controlFlowType?{controlFlowType:e.controlFlowType}:{},...e.condition?{condition:e.condition}:{},...e.branchLabel?{branchLabel:e.branchLabel}:{},...e.loopCondition?{loopCondition:e.loopCondition}:{},...void 0!==e.expectedMinCount?{expectedMinCount:e.expectedMinCount}:{},...void 0!==e.expectedMaxCount?{expectedMaxCount:e.expectedMaxCount}:{},...e.groupId?{groupId:e.groupId}:{}})),e.extractedKeyActions=s;try{await a.db.updateConfig(e.id,{keyActions:JSON.stringify(e.key_actions),extractedKeyActions:JSON.stringify(s)}),console.log(`[AutoExtract] Auto-filled key_actions for config ${e.id} from ${A.map(e=>e.skill).join(", ")}`)}catch(e){console.error("[AutoExtract] Error updating config with extracted key_actions:",e)}}async function M(e,t,A){let r=F(e),s=U(e,t);if(!t)return{status:"missing",expected_skills:[],invoked_skills:r,matched_skills:[],matched_anchors:[],expected_count:0,matched_count:0,is_correct:!1,trigger_rate:null,skill_breakdown:s.map(e=>({skill:e.skill,expected:e.is_expected,invoked:e.is_invoked,matched:!1,status:e.is_invoked?"unexpected":"not_applicable",expected_version:e.expected_version,invoked_version:e.invoked_version}))};let n=k(t),i=[],o=0,g=new Map,h=n.filter(e=>null!==e.version&&!r.some(t=>t.name===e.skill&&null!==t.version)).map(e=>e.skill);if(h.length>0)try{for(let e of(await a.db.findSkills({name:{in:h},user:A||null})))g.set(e.name,e)}catch(e){console.error("[RoutingEvaluation] Error fetching skills for version check:",e)}for(let e of n){let t=r.find(t=>t.name===e.skill);if(!t)continue;let A=!1;if(null===e.version)A=!0;else if(null!==t.version)A=t.version===e.version;else{let t=g.get(e.skill);A=(t?t.activeVersion||0:null)===e.version}A&&(o+=1,i.push({skill:e.skill,expected_version:e.version,invoked_version:t.version??null}))}let u=s.map(e=>{let t=i.some(t=>t.skill===e.skill),A="not_applicable";return e.is_expected?A=t?"matched":"missed":e.is_invoked&&(A="unexpected"),{skill:e.skill,expected:e.is_expected,invoked:e.is_invoked,matched:t,status:A,expected_version:e.expected_version,invoked_version:e.invoked_version}});return{status:"available",matched_config_id:t.id,matched_query:(0,c.normalizeConfigQuery)(t.query)||void 0,matched_intent:t.routing_intent||void 0,matched_anchors:t.routing_anchors||[],dataset_type:(0,l.normalizeConfigDatasetType)(t.dataset_type),expected_skills:n,invoked_skills:r,matched_skills:i,expected_count:n.length,matched_count:o,is_correct:o>0,trigger_rate:n.length>0?o/n.length:null,skill_breakdown:u}}async function T(e,t,A){let r=e.query?await N(t,e.query,A??e.user??null):void 0,s=R(t,e),n=await M(e,r,A??e.user??null),i=e.task_id||e.upload_id||"",o=null;if(i)try{let e=await a.db.findExecutionMatch(i);e&&(o={matchJson:e.matchJson??null,matchedAt:e.matchedAt??null,mode:e.mode??null})}catch{o=null}return{...e,routing_evaluation:n,outcome_evaluation:function(e,t,A,r){let s=U(e,A,t),n=(e,t)=>s.map(A=>{let s="context_only";A.is_primary?s="primary":A.is_invoked?s="invoked":A.is_expected&&(s="expected_only");let n=r?.status==="available"?r.skill_breakdown.find(e=>e.skill===A.skill)?.status||"not_applicable":"missing_dataset";return{skill:A.skill,version:A.invoked_version??A.primary_version??A.expected_version??null,role:s,is_primary:A.is_primary,is_invoked:A.is_invoked,is_expected:A.is_expected,routing_status:n,shares_execution_outcome:!0,score:e,is_correct:t}});if(!t)return{status:"missing",is_correct:null,score:null,reason:e.judgment_reason||V,standard_answer_present:!1,root_cause_count:0,key_action_count:0,skill_breakdown:n(null,null)};let i="结果评估中..."===e.judgment_reason?"pending":"available",o="pending"===i?null:e.answer_score??null,a="pending"===i?null:e.is_answer_correct??null;return{status:i,matched_config_id:t.id,matched_query:(0,c.normalizeConfigQuery)(t.query)||void 0,matched_skill:(0,c.normalizeConfigSkillName)(t.skill)||void 0,matched_skill_version:t.skillVersion??null,dataset_type:(0,l.normalizeConfigDatasetType)(t.dataset_type),is_correct:a,score:o,reason:e.judgment_reason||void 0,standard_answer_present:!!t.standard_answer,root_cause_count:t.root_causes?.length??0,key_action_count:t.key_actions?.length??0,skill_breakdown:n(o,a)}}(e,s,r,n),execution_match:o}}let J=(0,n.resolveAgentInsightDataPath)(),P=s.default.join(J,"evaluation_result.json"),W="1"===process.env.AUDIT_DATA_MUTATIONS||"true"===process.env.AUDIT_DATA_MUTATIONS;async function L(e,t="any"){let A={};e&&(A.OR=[{user:e},{user:null}]);let r=(await a.db.findConfigs(A)).map(e=>{let t=(t,A)=>{if(t)try{return JSON.parse(t)}catch(t){console.error(`[readConfig] Failed to parse ${A} for config ${e.id}:`,t);return}};return{id:e.id,query:e.query??null,dataset_type:(0,l.normalizeConfigDatasetType)(e.datasetType),skill:e.skill,skillVersion:e.skillVersion,routing_intent:e.routingIntent||void 0,routing_anchors:t(e.routingAnchors,"routingAnchors"),expectedSkills:(0,l.normalizeExpectedSkills)(t(e.expectedSkills,"expectedSkills")),standard_answer:e.standardAnswer||"",root_causes:t(e.rootCauses,"rootCauses"),key_actions:t(e.keyActions,"keyActions"),extractedKeyActions:t(e.extractedKeyActions,"extractedKeyActions"),parse_status:e.parseStatus||"completed"}});return"any"===t?r:r.filter(e=>(0,l.configSupportsDatasetType)(e.dataset_type,t))}async function v(e){var t,A,s,n;let l,g=e.upload_id||e.task_id||crypto.randomUUID();if(e.task_id)try{let t={taskId:e.task_id};e.framework&&(t.framework=e.framework);let A=await a.db.findExecutions(t,{timestamp:"desc"});if(A&&A.length>0&&A[0]?.id){let t=A.find(t=>t.id===e.task_id),r=t&&t.id?t.id:A[0].id;r!==g&&(g=r)}}catch{}let d=null,y=await a.db.findExecutionById(g);y&&(d={...y,upload_id:y.id,task_id:y.taskId||void 0,query:y.query||void 0,framework:y.framework||void 0,tokens:y.tokens??void 0,cost:y.cost??void 0,latency:y.latency??void 0,timestamp:y.timestamp?.toISOString?.()||y.timestamp,final_result:y.finalResult||void 0,skill:y.skill||void 0,skills:y.skills?JSON.parse(y.skills):void 0,invokedSkills:y.invokedSkills?(()=>{try{return JSON.parse(y.invokedSkills)}catch{return}})():void 0,is_skill_correct:y.isSkillCorrect??!1,is_answer_correct:y.isAnswerCorrect??null,answer_score:y.answerScore??void 0,skill_score:y.skillScore??void 0,judgment_reason:y.judgmentReason||void 0,failures:y.failures?JSON.parse(y.failures):void 0,skill_issues:y.skillIssues?JSON.parse(y.skillIssues):void 0,label:y.label||void 0,user:y.user||void 0,skill_version:y.skillVersion??void 0,expected_skill_version:y.expectedSkillVersion??null,skill_trigger_rate:y.skillTriggerRate??null,model:y.model||void 0,tool_call_count:y.toolCallCount??void 0,llm_call_count:y.llmCallCount??void 0,input_tokens:y.inputTokens??void 0,output_tokens:y.outputTokens??void 0,tool_call_error_count:y.toolCallErrorCount??void 0,cache_read_input_tokens:y.cacheReadInputTokens??void 0,cache_creation_input_tokens:y.cacheCreationInputTokens??void 0,max_single_call_tokens:y.maxSingleCallTokens??void 0});let m=d?{...d}:{},F=!!d;F||m.timestamp||e.timestamp?e.timestamp&&(m.timestamp=e.timestamp):m.timestamp=new Date().toISOString();let U=!!e.force_query_update,M="string"==typeof d?.query?d.query.trim():"",v="string"==typeof e.query?e.query.trim():"",x=!1;if("string"==typeof e.label){let t=(0,Q.parseLabelSkillVersionBinding)(e.label);t&&(e.skill=t.skill,e.skill_version=t.skill_version,e.skills=t.skills,e.invokedSkills=t.invokedSkills,x=!0)}m={...m,...e};let H=function(e){let{isUpdate:t,existingSkillVersion:A,incomingSkillVersion:r,explicitRewrite:s}=e;return!t||null==A||s?{resolved:r,blocked:!1}:r===A?{resolved:A,blocked:!1}:{resolved:A,blocked:!0}}({isUpdate:F,existingSkillVersion:d?.skill_version??null,incomingSkillVersion:m.skill_version??null,explicitRewrite:x});if(H.blocked&&console.warn(`[Data-Service] Preserving existing skill_version for execution ${g}: existing=${d?.skill_version}, incoming=${m.skill_version} blocked. Skill version is immutable history; only NULL → value or explicit label-binding rewrite is allowed.`),m.skill_version=H.resolved??void 0,!m.agentName&&m.agent&&(m.agentName=m.agent),M&&!U?m.query=M:!M&&v?m.query=v:"string"!=typeof m.query||m.query.trim()?"string"==typeof m.query&&(m.query=m.query.trim()):m.query=void 0,!m.upload_id&&m.task_id&&(m.upload_id=m.task_id),!m.task_id&&m.upload_id&&(m.task_id=m.upload_id),m.upload_id=g,(!m.label||!m.model||!m.user)&&m.task_id){let e=await a.db.findSessionByTaskId(m.task_id);e&&(!m.label&&e.label&&(m.label=e.label),!m.model&&e.model&&(m.model=e.model),!m.user&&e.user&&(m.user=e.user))}if(!m.user){let e=(process.env.AGENT_INSIGHT_DEFAULT_INGEST_USER||"").trim()||null;if(e)m.user=e,console.log(`[Data-Service] No user on record for task ${m.task_id}, defaulting to AGENT_INSIGHT_DEFAULT_INGEST_USER=${e}`);else try{let e=a.db.getClient();if("query"in e){let t=await e.query('SELECT username FROM "User" LIMIT 1');t.rows[0]&&(m.user=t.rows[0].username,console.log(`[Data-Service] Fallback resolved user for task ${m.task_id} to: ${m.user}`))}}catch(e){console.warn("[Data-Service] Fallback user lookup failed:",e)}}let G=e.Token||e.token||e.tokens;void 0!==G&&(m.tokens=Number(G)),void 0!==e.tool_call_count&&(m.tool_call_count=Number(e.tool_call_count)),void 0!==e.llm_call_count&&(m.llm_call_count=Number(e.llm_call_count)),void 0!==e.input_tokens&&(m.input_tokens=Number(e.input_tokens)),void 0!==e.output_tokens&&(m.output_tokens=Number(e.output_tokens)),void 0!==e.tool_call_error_count&&(m.tool_call_error_count=Number(e.tool_call_error_count)),void 0!==e.cache_read_input_tokens&&(m.cache_read_input_tokens=Number(e.cache_read_input_tokens)),void 0!==e.cache_creation_input_tokens&&(m.cache_creation_input_tokens=Number(e.cache_creation_input_tokens)),void 0!==e.max_single_call_tokens&&(m.max_single_call_tokens=Number(e.max_single_call_tokens)),void 0!==e.reasoning_tokens&&(m.reasoning_tokens=Number(e.reasoning_tokens));let J=null;if(m.task_id&&m.interactions){let e=(0,f.getAdapter)(m.framework),t=t=>e.normalizeForStorage?.(t)??t,A="string"==typeof m.interactions?(()=>{try{return JSON.parse(m.interactions)}catch{return[]}})():m.interactions;J=A=t(A);try{let r=m.session_merge_strategy||e.sessionMergeStrategy||"monotonic";if("snapshot-replace"!==r){let e=await a.db.findSessionByTaskId(m.task_id),r=e?.interactions?(()=>{try{return JSON.parse(e.interactions)}catch{return[]}})():[];r=t(r),Array.isArray(r)&&r.length>0&&(J=(0,I.mergeSessionInteractionsMonotonic)(r,A))}else if("true"!==process.env.AGENT_INSIGHT_JIUWEN_ALLOW_SHRINK){let e=await a.db.findSessionByTaskId(m.task_id),r=e?.interactions?(()=>{try{return JSON.parse(e.interactions)}catch{return[]}})():[];r=t(r);let s=Array.isArray(r)?r.length:0,n=Array.isArray(A)?A.length:0;if(s>0&&n<s)return console.warn(`[Data-Service] snapshot-replace 退化护栏:拒绝用更小快照覆盖 task ${m.task_id}(incoming ${n} < existing ${s} interactions),保留现有记录。设 AGENT_INSIGHT_JIUWEN_ALLOW_SHRINK=true 可放行。`),{success:!0,record:m}}}catch(e){e&&"object"==typeof e&&"task_id"in m&&console.warn("[Data-Service] snapshot-replace 退化检查异常,按原逻辑继续:",e?.message||e)}J=t(J),m.interactions=J;let r=function(e){if(Array.isArray(e))for(let t of e){if(!t||"object"!=typeof t||"user"!==String(t.role||"").toLowerCase())continue;let e="string"==typeof t.content?t.content.trim():"";if(e)return e}}(J);if(r&&function(e,t){let A="string"==typeof e?e.trim():"";if(!A)return!0;let r="string"==typeof t?t.trim().toLowerCase():"";return!!r&&A.toLowerCase()===`${r} session`}(m.query,m.framework)&&(m.query=r),"opencode"===m.framework&&Array.isArray(J)){let e=(0,h.deriveOpencodeExecutionFields)(J);e.model&&(m.model=e.model),e.final_result&&(m.final_result=e.final_result),e.agentName&&!m.agentName&&(m.agentName=e.agentName),m.tokens=e.tokens,m.latency=e.latency,m.input_tokens=e.input_tokens,m.output_tokens=e.output_tokens,m.tool_call_count=e.tool_call_count,m.tool_call_error_count=e.tool_call_error_count,m.llm_call_count=e.llm_call_count,m.cache_read_input_tokens=e.cache_read_input_tokens,m.cache_creation_input_tokens=e.cache_creation_input_tokens,m.max_single_call_tokens=e.max_single_call_tokens,m.reasoning_tokens=e.reasoning_tokens}}let q=!1,j=m.is_answer_correct||!1,K=m.judgment_reason||V;m.skill_trigger_rate=null;let Z=await L(m.user);if(Z.length>0){let A=await N(Z,m.query,m.user),r=R(Z,m);if(A){let e=Array.isArray(m.invokedSkills)?m.invokedSkills:[],t=(Array.isArray(m.skills)?m.skills:[]).map(e=>({name:e,version:null})),r=k(A);if(r.length>0){let A=e.length>0?e:t;if(A.length>0){let e=0,t=r.filter(e=>e.skill?.trim()),s=t.map(e=>e.skill.trim()),n=new Map;if(s.length>0)try{for(let e of(await a.db.findSkills({name:{in:s},user:m.user||null})))n.set(e.name,e)}catch(e){console.error("[Judgment] Error fetching skills for version check:",e)}for(let r of t){let t=r.skill.trim(),s=r.version??null,i=A.find(e=>e.name===t);if(i){let A=!1;if(null===s)A=!0;else if(null!==i.version)A=i.version===s;else{let e=n.get(t);A=!!e&&(e.activeVersion||0)===s}A&&(e++,q||(q=!0))}}t.length>0&&(m.skill_trigger_rate=e/t.length)}}m.is_skill_correct=q}if(r){if(await _(r,m.user),void 0!==m.final_result){let s=!0;if(F&&!e.force_judgment&&d&&d.query===m.query&&d.final_result===m.final_result&&(s=!1),e.skip_internal_judgment&&(s=!1),s&&!m.skip_evaluation){let e,s=(m.skill||r.skill||A?.skill||"").trim();if(s)try{let t=await a.db.findSkill(s,m.user||null);if(t){let A=r.skillVersion??m.skill_version??t.activeVersion??0,s=t.versions?.find(e=>e.version===A);if(s&&s.content)e=s.content,(void 0===m.skill_version||null===m.skill_version)&&(m.skill_version=s.version);else if(t.versions&&t.versions.length>0){let A=t.versions[0];A&&A.content&&(e=A.content,(void 0===m.skill_version||null===m.skill_version)&&(m.skill_version=A.version))}}}catch(e){console.error("[Judgment] Error fetching skill definition:",e)}let n=null;try{let e=await a.db.findExecutionMatch(m.task_id||m.upload_id||"");e?.extractedSteps&&(n="string"==typeof e.extractedSteps?JSON.parse(e.extractedSteps):e.extractedSteps)}catch(e){console.warn("[Judgment] Failed to load execution steps for KA evaluation:",e)}let o=await (0,i.judgeAnswer)((t=m,(0,c.getConfigSubjectLabel)({query:t.query,skill:t.skill||r?.skill||null,skillVersion:t.skill_version??r?.skillVersion??null},"Skill execution benchmark")),{standard_answer_example:r.standard_answer,root_causes:r.root_causes,key_actions:r.key_actions,skill_definition:e},m.final_result,m.user,n);j=o.is_correct,m.answer_score=o.score,K=o.reason||"Judged by Evaluation Model"}}}else(!F||e.force_judgment)&&(j=!1,K=V,m.answer_score=null)}e.skip_evaluation&&(m.answer_score=null,j=!1,K="结果评估中..."),m.is_skill_correct=q,m.is_answer_correct=j,m.judgment_reason=K,m=await T(m,Z,m.user);let $=Array.isArray(m.skills)&&m.skills.length>0?m.skills[0]:void 0;if($){let e=function(){if(!r.default.existsSync(P))return{};try{return JSON.parse(r.default.readFileSync(P,"utf-8"))}catch{return{}}}()[$];e&&(m.skill_score=parseFloat(e))}if(m.label=(0,E.chooseExecutionLabel)({existingLabel:d?.label,incomingLabel:e.label,skill:m.skill,skillVersion:m.skill_version??null}),m.framework){let e=m.framework,t=m.user||null;for(let A of(0,u.extractObservedAgentRegistrations)(J,m.agentName))try{let r=await a.prisma.registeredAgent.findFirst({where:{platform:e,name:A.name,user:t}});if(!r)try{r=await a.prisma.registeredAgent.create({data:{platform:e,name:A.name,user:t,agentOwnership:(0,C.isInternalSystemAgentTrace)(A.name)?"system":"user",agentType:"main"===A.agentType?m.agentType||"main":"subagent"}})}catch(s){(r=await a.prisma.registeredAgent.findFirst({where:{platform:e,name:A.name,user:t}}))||console.warn(`[Data-Service] register observed agent failed (non-fatal): ${A.name}`,s)}r&&"main"===A.agentType&&A.name===m.agentName&&(l=r.id)}catch(e){console.warn(`[Data-Service] observed-agent registration error (non-fatal): ${A.name}`,e)}}let X=Array.isArray(J)&&J.length>0?JSON.stringify((0,u.extractObservedAgentNames)(J)):null;if(await a.db.upsertExecution({where:{id:g},create:{id:g,taskId:m.task_id,query:m.query,framework:m.framework,tokens:m.tokens,cost:m.cost,latency:m.latency,timestamp:m.timestamp?new Date(m.timestamp):new Date,finalResult:m.final_result,skill:m.skill,skills:m.skills?JSON.stringify(m.skills):null,invokedSkills:m.invokedSkills?JSON.stringify(m.invokedSkills):null,isSkillCorrect:m.is_skill_correct,isAnswerCorrect:m.is_answer_correct,answerScore:m.answer_score,skillScore:m.skill_score,judgmentReason:m.judgment_reason,failures:m.failures?JSON.stringify(m.failures):null,skillIssues:m.skill_issues?JSON.stringify(m.skill_issues):null,label:m.label,user:m.user,agentName:m.agentName,agentId:l,skillVersion:m.skill_version,model:m.model,endpoint:(0,o.normalizeEndpointUrl)(m.endpoint),toolCallCount:m.tool_call_count,llmCallCount:m.llm_call_count,inputTokens:m.input_tokens,outputTokens:m.output_tokens,toolCallErrorCount:m.tool_call_error_count,skillTriggerRate:m.skill_trigger_rate,cacheReadInputTokens:m.cache_read_input_tokens,cacheCreationInputTokens:m.cache_creation_input_tokens,maxSingleCallTokens:m.max_single_call_tokens,reasoningTokens:m.reasoning_tokens,observedAgents:X},update:{taskId:m.task_id,query:m.query,framework:m.framework,tokens:m.tokens,cost:m.cost,latency:m.latency,timestamp:m.timestamp?new Date(m.timestamp):new Date,finalResult:m.final_result,skill:m.skill,skills:m.skills?JSON.stringify(m.skills):null,invokedSkills:m.invokedSkills?JSON.stringify(m.invokedSkills):null,isSkillCorrect:m.is_skill_correct,isAnswerCorrect:m.is_answer_correct,answerScore:m.answer_score,skillScore:m.skill_score,judgmentReason:m.judgment_reason,failures:m.failures?JSON.stringify(m.failures):null,skillIssues:m.skill_issues?JSON.stringify(m.skill_issues):null,label:m.label,user:m.user,agentName:m.agentName,agentId:l,skillVersion:m.skill_version,model:m.model,endpoint:(0,o.normalizeEndpointUrl)(m.endpoint),toolCallCount:m.tool_call_count,llmCallCount:m.llm_call_count,inputTokens:m.input_tokens,outputTokens:m.output_tokens,toolCallErrorCount:m.tool_call_error_count,skillTriggerRate:m.skill_trigger_rate,cacheReadInputTokens:m.cache_read_input_tokens,cacheCreationInputTokens:m.cache_creation_input_tokens,maxSingleCallTokens:m.max_single_call_tokens,reasoningTokens:m.reasoning_tokens,observedAgents:X}}),e.upload_id&&e.task_id&&e.upload_id!==g)try{let t=await a.db.findExecutionById(e.upload_id);t&&t.taskId===e.task_id&&(W&&console.warn(`[Data-Audit] deleteExecution (dedup on save): upload_id=${e.upload_id} task_id=${e.task_id} recordId=${g}`),await a.db.deleteExecution(e.upload_id))}catch{}if(O)try{let e=Array.isArray(J)&&J.length>0,t=(A=x?Array.isArray(m.invokedSkills)?m.invokedSkills:[]:e?function(e,t){if(!Array.isArray(t)||0===t.length)return[];if("opencode"===e||"hermes"===e||"langfuse-langgraph"===e){let e=(0,B.buildAgentCallTree)(t);return e?w(e):[]}return function(e,t){if(!Array.isArray(t))return null;let A=(0,p.normalizeInteractions)(t);return(0,f.getAdapter)(e).extractSkills?.(A)??null}(e,t)??[]}(m.framework,J):Array.isArray(m.invokedSkills)?m.invokedSkills:[],s=m.skill??null,n=m.skill_version??null,s&&"number"==typeof n?A.map(e=>e.name===s&&null==e.version?{...e,version:n}:e):A),r=await D(t,m.user);await S(g,r,{user:m.user,primaryName:m.skill??null}),await a.prismaRaw.execution.update({where:{id:g},data:{skills:r.length?JSON.stringify(r.map(e=>e.name)):null,invokedSkills:r.length?JSON.stringify(r):null}})}catch(e){console.warn(`[Data-Service] root ExecutionSkill persist failed for ${g}:`,e)}if(("opencode"===m.framework||"hermes"===m.framework||"langfuse-langgraph"===m.framework)&&m.task_id&&Array.isArray(J))try{await Y({parentExecutionId:g,parentTaskId:m.task_id,parentFramework:m.framework,parentUser:m.user,interactions:J})}catch(e){console.warn(`[Data-Service] deriveSubagentExecutions failed for parent=${g}:`,e)}let z=m.trace_completed_at?new Date(m.trace_completed_at):null,ee=null!=z&&Number.isFinite(z.getTime()),et=!ee&&"hermes"===m.framework&&"string"==typeof m.final_result&&m.final_result.trim()?function(e){if(!Array.isArray(e))return null;let t=e.flatMap(e=>{let t=e&&"object"==typeof e?e:{},A=t.timeInfo&&"object"==typeof t.timeInfo?t.timeInfo:{},r=t.timing&&"object"==typeof t.timing?t.timing:{};return[b(A.completed),b(A.created),b(r.completed_at),b(r.started_at),b(t.completedAt),b(t.completed_at),b(t.timestamp),b(t.createdAt)]}).filter(e=>null!=e&&Number.isFinite(e)&&e>0).reduce((e,t)=>Math.max(e,t),0);return t>0?new Date(t):null}(J):null,eA=ee?z:et;!ee&&et&&(m.trace_completed_at=et);let er=null!=eA&&Number.isFinite(eA.getTime());return m.task_id&&J&&(await a.db.upsertSession(m.task_id,{taskId:m.task_id,query:m.query,label:m.label,user:m.user,model:m.model,interactions:JSON.stringify(J),...er?{endTime:eA}:{}},{query:m.query,label:m.label,user:m.user,model:m.model,interactions:JSON.stringify(J)}),er&&await a.db.updateSession(m.task_id,{endTime:eA}),"opencode"===m.framework&&!0===m.opencode_cli_completed&&await a.db.updateSession(m.task_id,{endTime:new Date})),{success:!0,record:m}}function x(e){if(null==e)return"";if("string"==typeof e){let t=e.trim();if(t.startsWith("{")&&t.endsWith("}")||t.startsWith("[")&&t.endsWith("]"))try{return x(JSON.parse(t))}catch{}return e}return Array.isArray(e)?e.map(e=>x(e?.text??e?.content??e)).filter(Boolean).join("\n"):"object"==typeof e?x(e.text??e.content??""):String(e)}async function Y(e){let{parentExecutionId:t,parentTaskId:A,parentFramework:r,parentUser:s,interactions:n}=e;if(!Array.isArray(n)||0===n.length)return;let i=(0,B.buildAgentCallTree)(n);if(!i)return void await H(t,new Set);let o=[],l=new Set;if((0,B.walkTree)(i,e=>{if(!e||0===e.depth)return;let t="string"==typeof e.sessionId?e.sessionId.trim():"";!t||t===A||l.has(t)||(l.add(t),o.push({node:e,sessionId:t,parentNodeId:e.parentId}))}),0===o.length)return;o.sort((e,t)=>e.node.depth-t.node.depth);let c=new Map;c.set(i.id,t);let g=new Set;for(let e of o){let{node:A,sessionId:i,parentNodeId:o}=e,l=c.get(o)??t,h=`${l}__sub__${i}`;c.set(A.id,h),g.add(h);let E=new Set,Q=[],d=e=>{for(let t of e.interactionIndices||[])E.add(t);for(let t of(Array.isArray(e.systemPrompts)&&e.systemPrompts.length>0&&e.sessionId&&Q.push({sessionId:e.sessionId,entries:e.systemPrompts}),e.children||[]))d(t)};d(A);let I=[...E].sort((e,t)=>e-t).map(e=>n[e]).filter(Boolean),B=[];for(let e of Q)for(let t of e.entries)B.push({role:"system",content:t.text,subagent_session_id:e.sessionId,system_prompt_sha256:t.sha256,system_prompt_length:t.length,system_prompt_modelID:t.modelID,system_prompt_providerID:t.providerID});let C=[...B,...I],f=function(e,t){let A=(e.interactionIndices||[]).map(e=>t[e]).filter(Boolean),r=A.map(e=>x(e?.content).trim()).filter(Boolean),s=r[0]||e.agentName||e.sessionId,n=(e.events||[]).filter(e=>"llm"===e.kind),i=n.filter(e=>{let t=e.usage;return!!t&&((t.total||0)>0||(t.input||0)>0||(t.output||0)>0||(t.reasoning||0)>0)}),o=e.interactionIndices?.[0],a=n.filter(e=>e.interactionIndex!==o&&(!!e.summary?.trim()||(e.interaction?.tool_calls?.length||0)>0)).length,l=(e.events||[]).filter(e=>"tool"===e.kind||"skill"===e.kind||"task"===e.kind),c=A.map(e=>e?.model??e?.modelID).find(e=>"string"==typeof e&&e.trim())||null;return{query:s,finalResult:r.length>1?r[r.length-1]:null,model:c,tokens:e.stats.totalTokens,inputTokens:e.stats.inputTokens,outputTokens:e.stats.outputTokens,reasoningTokens:e.stats.reasoningTokens,cacheReadInputTokens:e.stats.cacheReadTokens,cacheCreationInputTokens:e.stats.cacheWriteTokens,latency:null!=e.stats.durationMs?e.stats.durationMs/1e3:null,llmCallCount:i.length||a,toolCallCount:l.length,toolCallErrorCount:l.filter(function e(t){let A=Array.isArray(t?.interaction?.tool_calls)?t.interaction.tool_calls:[],r=t?._toolCallId,s=A.find(e=>!r||e?.id===r),n=String(s?.state||"").toLowerCase();if("error"===n||"failed"===n)return!0;let i=t?.output??s?.output??s?.result;if(i&&"object"==typeof i){let e=String(i.status||i.state||"").toLowerCase();return"error"===e||"failed"===e||!!i.error}if("string"==typeof i&&i.trim().startsWith("{"))try{return e({...t,output:JSON.parse(i),interaction:void 0})}catch{}return!1}).length}}(A,n),p=((function(e,t){let A=String(t||"").trim();if(!A)return null;for(let t of e)for(let e of Array.isArray(t?.tool_calls)?t.tool_calls:[]){let t=e?.function?.name??e?.name;if("task"!==t)continue;let r=function(e){let t=e?.function?.arguments??e?.arguments;if(t&&"object"==typeof t&&!Array.isArray(t))return t;if("string"!=typeof t)return{};try{let e=JSON.parse(t);return e&&"object"==typeof e&&!Array.isArray(e)?e:{}}catch{return{}}}(e);if(String(r.subagent_session_id??r.session_id??r.agent_session_id??"").trim()!==A)continue;let s=x(r.description??r.task_description??r.prompt??r.subagent_type).trim();if(s)return s}return null})(n,i)||f.query).slice(0,500),y=w(A);if(O)try{y=await D(y,s)}catch(e){console.warn(`[Data-Service] sub skill version snapshot failed sub=${i}:`,e)}let m=A.startedAt?new Date(A.startedAt):new Date,b=A.endedAt?new Date(A.endedAt):null,N={taskId:i,framework:r,timestamp:m,agentName:A.agentName??null,user:s??null,query:p,finalResult:f.finalResult,model:f.model,tokens:f.tokens,inputTokens:f.inputTokens,outputTokens:f.outputTokens,reasoningTokens:f.reasoningTokens,cacheReadInputTokens:f.cacheReadInputTokens,cacheCreationInputTokens:f.cacheCreationInputTokens,latency:f.latency,llmCallCount:f.llmCallCount,toolCallCount:f.toolCallCount,toolCallErrorCount:f.toolCallErrorCount,skills:y.length?JSON.stringify(y.map(e=>e.name)):null,invokedSkills:y.length?JSON.stringify(y):null,parentExecutionId:l,rootExecutionId:t,agentSessionId:i,subagentType:A.subagentType??null,subagentName:A.agentName??null,isSubagent:!0,observedAgents:JSON.stringify((0,u.extractObservedAgentNames)(C))};try{await a.db.upsertExecution({where:{id:h},create:{id:h,...N},update:{...N}})}catch(e){console.warn(`[Data-Service] upsertExecution(sub) failed sub=${i}:`,e);continue}if(O)try{await S(h,y,{user:s??null})}catch(e){console.warn(`[Data-Service] sub ExecutionSkill persist failed sub=${i}:`,e)}try{await a.db.upsertSession(i,{taskId:i,label:A.agentName??null,user:s??null,query:p,interactions:JSON.stringify(C),...b?{endTime:b}:{}},{label:A.agentName??null,user:s??null,query:p,interactions:JSON.stringify(C),...b?{endTime:b}:{}})}catch(e){console.warn(`[Data-Service] upsertSession(sub) failed sub=${i}:`,e)}}await H(t,g)}async function H(e,t){try{for(let A of(await a.db.findExecutions({rootExecutionId:e,isSubagent:!0},{timestamp:"desc"})))if(!(!A?.id||t.has(A.id)))try{await a.db.deleteExecution(A.id)}catch(e){console.warn(`[Data-Service] sweepStaleSubagents: deleteExecution(${A.id}) failed:`,e)}}catch(t){console.warn(`[Data-Service] sweepStaleSubagents query failed root=${e}:`,t)}}process.env.READ_RECORDS_HYDRATE_BATCH_SIZE,e.s(["saveExecutionRecord",()=>v]),A()}catch(e){A(e)}},!1)];
|
|
369
369
|
|
|
370
|
-
//# sourceMappingURL=
|
|
370
|
+
//# sourceMappingURL=_5090183e._.js.map
|
|
@@ -13,4 +13,4 @@ ${g.config.userPrompt||""}`);if(h.length>0)return{evaluatorId:g.id,evaluatorName
|
|
|
13
13
|
|
|
14
14
|
score 必须是 0.0 到 1.0 之间的数字;reason 说明评分依据。`),permission:(0,o.buildEvaluatorPermissions)()},$="",x=null;try{let t=new n.AgentInsight({baseURL:i,logLevel:"warn"}),a=await t.createSession({title:`${g.name}-${Date.now()}`,directory:"/tmp"}),o=String(a?.id||a?.ID||"");if(!o)throw Error("Failed to create opencode session for custom evaluation");let s=await b(e,g.name);(0,c.tagOpencodeSession)(o,{agentName:g.name,agentId:s,displayQuery:r.caseInput,user:e});try{$=(await Promise.race([t.chat(o,I,{onText:e=>{$+=e.delta},onError:e=>{x=e}},{streamTimeoutMs:_,idleTimeoutMs:_}),new Promise((e,t)=>setTimeout(()=>t(Error(`LLM 调用超时(${_}ms)`)),_))])).text||$}finally{try{await t.deleteSession(o)}catch{}}}catch(e){x=e instanceof Error?e:Error(String(e))}if(x){let e=w($||x.message);if(null==e)return{evaluatorId:g.id,evaluatorName:g.name,score:null,reason:"",rawResponse:$,model:k,durationMs:Date.now()-m,error:`自建评估器调用失败:${x.message}`}}let E=w($),N=function(e){if(!e)return"";let t=function(e){if(!e)return null;let t=e.match(/```(?:json)?\s*([\s\S]*?)```/i);for(let r of[t?.[1],e].filter(e=>!!e)){try{let e=JSON.parse(r);if(e&&"object"==typeof e&&!Array.isArray(e))return e}catch{}let e=r.indexOf("{"),t=r.lastIndexOf("}");if(-1!==e&&t>e)try{let n=JSON.parse(r.slice(e,t+1));if(n&&"object"==typeof n&&!Array.isArray(n))return n}catch{}}return null}(e);if(t)for(let e of["reason","explanation","rationale","评测理由","原因"]){let r=t[e];if("string"==typeof r&&r.trim())return r.trim().slice(0,2e3)}return(e.replace(/```(?:json)?\s*[\s\S]*?```/g,"").trim()||e).slice(0,2e3)}($);return{evaluatorId:g.id,evaluatorName:g.name,score:E,reason:N,rawResponse:$,model:k,durationMs:Date.now()-m,error:null==E?"未能从模型响应中解析出 0-1 分数":void 0}}),{taskType:"custom-llm-eval",user:e,skill:u??void 0,skillVersion:f??null,label:`custom-eval: ${t}`,silent:!0})}e.s(["isCustomEvaluatorId",()=>g,"listCustomEvaluatorIds",()=>h,"loadCustomEvaluator",()=>y,"runCustomLlmEvaluator",()=>I,"syncCustomEvaluatorRegisteredAgents",()=>k]),r()}catch(e){r(e)}},!1),580077,e=>{"use strict";function t(e){return e&&"object"==typeof e&&!Array.isArray(e)?e:{}}function r(e){return String(e.name??e.call??e.toolName??e.tool??e.functionName??"").trim()}function n(e,t,r){let n="number"==typeof t?t:Number(t),i=e.filter(e=>!r.has(e.call)),a=(Number.isFinite(n)?i.find(e=>e.count===n):null)||i[0]||e[0];return a?(r.add(a.call),a.call):""}function i(e,i){let a=t(e.dimension_details??e.dimensionDetails),o=t(a.redundancy),s=function(e){let n=new Map;for(let[i,a]of e.entries()){let e=t(a),o=String(e.kind||"").toLowerCase();if("tool"!==o&&"skill"!==o&&"task"!==o)continue;let s=r(e);if(!s)continue;let l=function(e,t){let r=e.step_index??e.stepIndex??e.index,n="number"==typeof r?r:Number(r);return Number.isFinite(n)?n:t}(e,i),u=n.get(s)||{call:s,count:0,firstIndex:null,lastIndex:null};u.count+=1,u.firstIndex=null==u.firstIndex?l:Math.min(u.firstIndex,l),u.lastIndex=null==u.lastIndex?l:Math.max(u.lastIndex,l),n.set(s,u)}return Array.from(n.values()).sort((e,t)=>{let r=t.count-e.count;return 0!==r?r:(e.firstIndex??Number.MAX_SAFE_INTEGER)-(t.firstIndex??Number.MAX_SAFE_INTEGER)})}(Array.isArray(i)?i:[]);if(0===Object.keys(o).length||0===s.length)return e;let l=new Set,u=Array.isArray(o.heavy_repeated_calls)?o.heavy_repeated_calls.map(e=>{let i=t(e),a=r(i)||n(s,i.count,l);return a?{...i,call:a}:i}):o.heavy_repeated_calls,c=new Set,f=Array.isArray(o.consecutive_same_runs)?o.consecutive_same_runs.map(e=>{let i=t(e),a=r(i)||n(s,i.count,c),o=s.find(e=>e.call===a);return a?{...i,name:a,from:i.from??o?.firstIndex,to:i.to??o?.lastIndex}:i}):o.consecutive_same_runs,d={...o,...Array.isArray(u)?{heavy_repeated_calls:u}:{},...Array.isArray(f)?{consecutive_same_runs:f}:{}},m={...a,redundancy:d};return{...e,dimension_details:m}}function a(e,t){let r=Math.round(1e3*(.45*o("number"==typeof e.completeness?e.completeness:0)+.35*o(e.toolChoice)+.2*o(e.redundancy)))/1e3,n=Array.isArray(t)?t:[],i=n.filter(e=>e?.severity==="high").length,a=n.filter(e=>e?.severity==="medium").length,s=`轨迹分按完整性/工具选择/冗余加权计算;严重度仅用于诊断展示(high ${i},medium ${a}),不调整最终分。`;return{trajectoryScore:o(r),rawWeightedScore:r,scoreAggregation:{mode:"trajectory",reason:s,rawWeightedScore:r,finalScore:o(r),highCount:i,mediumCount:a}}}function o(e){return Number.isFinite(e)?Math.max(0,Math.min(1,e)):0}e.s(["aggregateTrajectoryScore",()=>a,"normalizeTrajectoryRedundancyDetails",()=>i])},520813,e=>{"use strict";var t=e.i(286372);function r(e){var r;let i;if(!Array.isArray(e)||0===e.length)return null;for(let a of(r=e,(i=(0,t.buildAgentCallTree)(r))&&Array.isArray(i.interactionIndices)&&i.interactionIndices.length>0?[...i.interactionIndices].sort((e,t)=>e-t):r.map((e,t)=>({interaction:e,index:t})).filter(({interaction:e})=>"subagent"!==String(e.role||"").toLowerCase()&&!e.subagent_session_id&&!e.subagent_name).map(e=>e.index))){let t=function(e){if(!e)return[];let t=[];for(let r of function(e){let t=[];if(e.toolCall&&t.push(e.toolCall),Array.isArray(e.toolCalls)&&t.push(...e.toolCalls),Array.isArray(e.tool_calls)&&t.push(...e.tool_calls),Array.isArray(e.responseMessage?.tool_calls)&&t.push(...e.responseMessage.tool_calls),Array.isArray(e.content))for(let r of e.content)r&&"object"==typeof r&&("toolCall"===r.type||"tool_use"===r.type)&&"string"==typeof r.name&&t.push({name:r.name,arguments:r.arguments??r.input});return t}(e)){let e=r.name||r.function?.name,i=function(e){if("string"!=typeof e)return e;try{return JSON.parse(e)}catch{return e}}(r.arguments??r.function?.arguments);if("skill"===e||"load_skill"===e){let e=function(e){var t;if(!e||"object"!=typeof e)return null;let r=n(e.name)||n(e.skill)||n(e.skillName)||n(e.skill_name);return r?{name:r,version:("number"==typeof(t=e.version??e.skillVersion??e.skill_version)&&Number.isFinite(t)?t:"string"==typeof t&&t.trim()&&Number.isFinite(Number(t))?Number(t):void 0)??null}:null}(i);e&&t.push(e)}}return function(e){let t=new Set,r=[];for(let n of e){let e=`${n.name}:${n.version??""}`;t.has(e)||(t.add(e),r.push(n))}return r}(t)}(e[a]);if(t.length>0)return t[0]}return null}function n(e){return"string"==typeof e&&e.trim()?e.trim():void 0}e.s(["getRootSkillFromInteractions",()=>r])},418494,e=>e.a(async(t,r)=>{try{var n=e.i(254799),i=e.i(854763),a=t([i]);async function o(e){let{user:t,taskId:r,runId:a,trajectoryRow:o,skills:h}=e;if(0===h.length)return 0;let v=m(o.rawAnalysisJson);if(u(v))return 0;let w=[];for(let e of function(e){let t=m(e.rawAnalysisJson);if(!t||u(t))return[];let r=g(t.skill_suggestions),n=[];for(let e of r){let t=String(e.summary||"").trim(),r=c(e.improvement_suggestion,e.improvementSuggestion);t&&r&&n.push({severity:f(e.severity),category:String(e.category||"").trim()||"其他",summary:t,evidence:String(e.evidence||"").trim(),improvementSuggestion:r})}return n}(o))w.push(e);for(let e of function(e){let t=function(e){if(!e)return[];try{let t=JSON.parse(e);return Array.isArray(t)?t:[]}catch{return[]}}(e.deviationStepsJson),r=[];for(let n of t){if(!1===l(n.is_skill_attributable,n.isSkillAttributable))continue;let t=f(n.severity);if("low"===t)continue;let i=String(n.deviation||"").trim();if(!i)continue;let a="number"==typeof n.stepIndex?n.stepIndex:null,o=String(e.rootCauseStep||"").includes(`#${a}`),s=c(n.improvement_suggestion,n.improvementSuggestion);r.push({severity:o?"high":t,category:"轨迹偏差",summary:i,evidence:null!=a?`Step #${a}${n.name?` \xb7 ${n.name}`:""}`:n.name||"",improvementSuggestion:s})}return r}(o))w.push(e);for(let e of function(e){let t=function(e){let t=m(e);if(!t)return[];let r=g(t.key_point_findings),n=g(t.resultEvaluation&&"object"==typeof t.resultEvaluation?t.resultEvaluation.key_point_findings:void 0);return r.length>0?r:n}(e.rawAnalysisJson),r=m(e.rawAnalysisJson);if(u(r))return[];let n=[];for(let e of t){if(!0===e.covered||!1===l(e.is_skill_attributable,e.isSkillAttributable))continue;let t=String(e.content||e.missing_reason||"").trim();if(!t)continue;let r=function(e){var t;let r=e.trace_root_cause&&"object"==typeof e.trace_root_cause?e.trace_root_cause:void 0,n=g(r?.related_steps);return[p("结果分析",e.explanation),p("缺失原因",e.missing_reason),p("实际输出",e.evidence?.actual),p("预期输出",e.evidence?.expected),p("过程根因",r?.failure_reason),p("相关步骤",(t=n,0===t.length?"":t.map(e=>{let t="number"==typeof e.step_index?e.step_index:e.stepIndex;return[null!=t?`#${t}`:"",e.kind||"",e.name||"",e.evidence||""].filter(Boolean).join(" · ")}).join(" | "))),p("Skill归因",e.attribution_reason)].filter(Boolean).join("\n")}(e),i=String(e.attribution_reason||"").trim()||void 0;n.push({severity:f(e.severity),category:"关键观点遗漏",summary:t,evidence:r,reasoning:i,improvementSuggestion:c(e.improvement_suggestion,e.improvementSuggestion)})}return n}(o))w.push(e);for(let e of function(e){let t=m(e.rawAnalysisJson);if(!t||u(t))return[];let r=t.dimension_details&&"object"==typeof t.dimension_details?t.dimension_details.tool_choice:void 0,n=g(r&&"object"==typeof r?r.problematic_steps:void 0),i=[];for(let e of n){if(!1===l(e.is_skill_attributable,e.isSkillAttributable))continue;let t=f(e.severity);if("low"===t)continue;let r=String(e.issue||e.reason||"").trim();if(!r)continue;let n=e.step_index??e.stepIndex;i.push({severity:t,category:"工具误用",summary:r,evidence:[null!=n?`Step #${n}`:"",e.tool?`tool=${e.tool}`:"",e.skill?`skill=${e.skill}`:""].filter(Boolean).join(" · "),improvementSuggestion:c(e.improvement_suggestion,e.improvementSuggestion)})}return i}(o))w.push(e);for(let e of function(e){let t=m(e.rawAnalysisJson);if(!t||u(t))return[];let r=g(t.result_issues),n=g(t.resultEvaluation&&"object"==typeof t.resultEvaluation?t.resultEvaluation.result_issues:void 0),i=r.length>0?r:n,a=[];for(let e of i){if(!1===l(e.is_skill_attributable,e.isSkillAttributable))continue;let t=f(e.severity);if("low"===t)continue;let r=String(e.summary||"").trim();if(!r)continue;let n=String(e.kind||"other").toLowerCase().trim(),i=y[n]||y.other;a.push({severity:t,category:i,summary:r,evidence:n&&n!==i?`kind=${n}`:"",improvementSuggestion:c(e.improvement_suggestion,e.improvementSuggestion)})}return a}(o))w.push(e);if(0===w.length)return 0;let S=null;if(r)try{let e=await i.prismaRaw.execution.findFirst({where:{taskId:r},select:{id:!0}});S=e?.id??null}catch{S=null}let A=0;for(let e of h){let r=await s(t,e.name);if(!r)continue;let o=e.version??r.activeVersion??0,l=new Set,u=[];for(let e of w){let t=`${e.category}::${d(e.summary)}::${e.dedupSalt||""}`;l.has(t)||(l.add(t),u.push(e))}if(0!==u.length)try{let e=await i.prismaRaw.evaluation.create({data:{type:"dynamic",skillId:r.id,version:o,user:t,executionId:S,generator:"trajectory-evaluator@1.0",runId:a,status:"ok"}}),s=u.map(i=>{var a;return{evaluationId:e.id,source:"dynamic",skillId:r.id,version:o,user:t,dedupKey:(a=i,(0,n.createHash)("sha1").update(`${a.category}::${d(a.summary)}::${a.dedupSalt||""}`).digest("hex").slice(0,6)),severity:i.severity,summary:i.summary,evidence:i.evidence||null,reasoning:i.reasoning||null,suggestedFix:i.improvementSuggestion||null,ruleId:null,dimension:null,category:i.category}});s.length>0&&(await i.prismaRaw.skillIssue.createMany({data:s}),A+=s.length)}catch(t){console.warn("[derive-skill-opt-points] write failed for skill",e.name,":",t.message)}}return A}async function s(e,t){try{return await i.prismaRaw.skill.findFirst({where:{name:t,OR:[{user:e},{user:null}]},select:{id:!0,activeVersion:!0}})}catch{return null}}[i]=a.then?(await a)():a;let y={format:"格式偏差",extra_content:"多余内容",verbosity:"表达问题",incorrect_fact:"事实错误",other:"结果问题"};function l(e,t){return!1!==e&&!1!==t&&(!0===e||!0===t||null)}function u(e){if(!e)return!1;if("no-skill"===e.resultSkillMode)return!0;let t=e.skillAttribution;return!(!t||"object"!=typeof t||Array.isArray(t))&&"not-applicable"===t.state}function c(e,t){return String(e??t??"").trim()||void 0}function f(e){let t=String(e||"medium").toLowerCase().trim();return"high"===t||"critical"===t?"high":"low"===t||"minor"===t?"low":"medium"}function d(e){return e.replace(/\s+/g," ").trim().toLowerCase().slice(0,200)}function m(e){if(!e)return null;try{let t=JSON.parse(e);return t&&"object"==typeof t&&!Array.isArray(t)?t:null}catch{return null}}function g(e){return Array.isArray(e)?e:[]}function p(e,t){let r=String(t||"").trim();return r?`${e}:${r}`:""}e.s(["deriveAndPersistOptPoints",()=>o]),r()}catch(e){r(e)}},!1),484695,e=>{e.v(e=>Promise.resolve().then(()=>e(759453)))},419781,e=>{e.v(e=>Promise.resolve().then(()=>e(106411)))},335270,e=>{e.v(e=>Promise.resolve().then(()=>e(982505)))}];
|
|
15
15
|
|
|
16
|
-
//# sourceMappingURL=
|
|
16
|
+
//# sourceMappingURL=_6a203624._.js.map
|
|
@@ -2,4 +2,4 @@ module.exports=[906920,(t,e,r)=>{"use strict";r.byteLength=function(t){var e=l(t
|
|
|
2
2
|
${w}
|
|
3
3
|
]`}()):S&&(w=v(w,","));"}"===t[k]||"]"===t[k];)k++,N();if(k>=t.length)return w;function x(){N();let n=function(){if("{"===t[k]){w+="{",k++,N(),$(",")&&N();let r=!0;for(;k<t.length&&"}"!==t[k];){if(r||(C(",")||(w=b(w,",")),N()),j(),!(O()||T(!0))){"}"===t[k]||"{"===t[k]||"]"===t[k]||"["===t[k]||void 0===t[k]?r||(w=v(w,",")):function(){throw new e("Object key expected",k)}();break}N();let n=C(":"),i=k>=t.length;n||(l(t[k])||i?w=b(w,":"):B()),x()||(n||i?w+="null":B()),r=!1}return"}"===t[k]?(w+="}",k++):w=b(w,"}"),!0}return!1}()||function(){if("["===t[k]){w+="[",k++,N(),$(",")&&N();let e=!0;for(;k<t.length&&"]"!==t[k];){if(!e&&(C(",")||(w=b(w,","))),j(),!x()){e||(w=v(w,","));break}e=!1}return"]"===t[k]?(w+="]",k++):w=b(w,"]"),!0}return!1}()||O()||function(){let e=k,n="",i=!1;for("-"===t[k]&&(n+=t[k],!r(t[++k])&&J()&&(n+="0")),"0"===t[k]&&r(t[k+1])&&(i=!0);r(t[k]);)n+=t[k],k++;if("."===t[k])for((""===n||"-"===n)&&(n+="0"),n+=t[k],r(t[++k])||(n+="0");r(t[k]);)n+=t[k],k++;if(k>e){if("e"===t[k]||"E"===t[k])for("-"===n&&(i=!0),n+=t[k],("-"===t[++k]||"+"===t[k])&&(n+=t[k],k++),r(t[k])||(n+="0");r(t[k]);)n+=t[k],k++;return J()?(w+=i?`"${t.substring(e,k)}"`:n,!0):(k=e,!1)}return!1}()||M("true","true")||M("false","false")||M("null","null")||M("True","true")||M("False","false")||M("None","null")||T(!1)||function(){if("/"===t[k]){let e=k;for(k++;k<t.length&&("/"!==t[k]||"\\"===t[k-1]);)k++;return k++,w+=JSON.stringify(t.substring(e,k)),!0}}();return N(),n}function N(){let e=!(arguments.length>0)||void 0===arguments[0]||arguments[0],r=k,n=E(e);do(n=function(){if("/"===t[k]&&"*"===t[k+1]){for(var e,r;k<t.length&&("*"!==(e=t)[r=k]||"/"!==e[r+1]);)k++;return k+=2,!0}if("/"===t[k]&&"/"===t[k+1]){for(;k<t.length&&"\n"!==t[k];)k++;return!0}return!1}())&&(n=E(e));while(n)return k>r}function E(e){let r=e?f:d,n="";for(;;)if(r(t,k))n+=t[k],k++;else if(function(t,e){let r=t.charCodeAt(e);return 160===r||6158===r||r>=8192&&r<=8203||8239===r||8287===r||12288===r||65279===r}(t,k))n+=" ",k++;else break;return n.length>0&&(w+=n,!0)}throw new e(`Unexpected character ${JSON.stringify(t[k])}`,k);function D(e){if(function(e){for(let r of(E(!0),e)){let e=k+r.length;if(t.slice(k,e)===r)return k=e,!0}return!1}(e)){if(i(t[k]))for(;k<t.length&&o(t[k]);)k++;return N(),!0}return!1}function C(e){return t[k]===e&&(w+=t[k],k++,!0)}function $(e){return t[k]===e&&(k++,!0)}function j(){return N(),"."===t[k]&&"."===t[k+1]&&"."===t[k+2]&&(k+=3,N(),$(","),!0)}function O(){let i=arguments.length>0&&void 0!==arguments[0]&&arguments[0],o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:-1,l="\\"===t[k];if(l&&(k++,l=!0),m(t[k])){let d=p(t[k])?p:y(t[k])?y:h(t[k])?h:g,v=k,S=w.length,x='"';for(k++;;){var c;if(k>=t.length){let e=q(k-1);if(!i&&n(t.charAt(e)))return k=v,w=w.substring(0,S),O(!0);return x=b(x,'"'),w+=x,!0}if(k===o)return x=b(x,'"'),w+=x,!0;if(d(t[k])){let e=k,o=x.length;if(x+='"',k++,w+=x,N(!1),i||k>=t.length||n(t[k])&&!function(t,e){switch(e){case")":return A(t,"(")>A(t,")");case"]":return A(t,"[")>A(t,"]");case"}":return A(t,"{")>A(t,"}");default:return!1}}(x,t[k])||m(t[k])&&!function(e){let r=e+1;for(;r<t.length&&f(t,r);)r++;return r>=t.length||n(t[r])}(k)||r(t[k]))return F(),!0;let u=q(e-1),a=t.charAt(u);if(","===a)return k=v,w=w.substring(0,S),O(!1,u);if(n(a))return k=v,w=w.substring(0,S),O(!0);w=w.substring(0,S),k=e+1,x=`${x.substring(0,o)}\\${x.substring(o)}`}else if(i&&s(t[k])){if(":"===t[k-1]&&u.test(t.substring(v+1,k+2)))for(;k<t.length&&a.test(t[k]);)x+=t[k],k++;return x=b(x,'"'),w+=x,F(),!0}else if("\\"===t[k]){let r=t.charAt(k+1);if(void 0!==I[r])x+=t.slice(k,k+2),k+=2;else if("u"===r){let r=2;for(;r<6&&(c=t[k+r],/^[0-9A-Fa-f]$/.test(c));)r++;6===r?(x+=t.slice(k,k+6),k+=6):k+r>=t.length?k=t.length:function(){let r=t.slice(k,k+6);throw new e(`Invalid unicode character "${r}"`,k)}()}else"\n"===r?x+="\\n":x+=r,k+=2}else{let r=t.charAt(k);'"'===r&&"\\"!==t[k-1]?x+=`\\${r}`:"\n"===r||"\r"===r||" "===r||"\b"===r||"\f"===r?x+=_[r]:(r>=" "||function(t){throw new e(`Invalid character ${JSON.stringify(t)}`,k)}(r),x+=r),k++}l&&$("\\")}}return!1}function F(){let e=!1;for(N();"+"===t[k];){e=!0,k++,N();let t=(w=v(w,'"',!0)).length;if(O()){var r;w=(r=w).substring(0,t)+r.substring(t+1)}else w=b(w,'"')}return e}function M(e,r){return!(t.slice(k,k+e.length)!==e||o(t[k+e.length]))&&(w+=r,k+=e.length,!0)}function T(e){let r=k;if(i(t[k])){for(;k<t.length&&o(t[k]);)k++;let e=k;for(;f(t,e);)e++;if("("===t[e])return k=e+1,x(),")"===t[k]&&";"===t[++k]&&k++,!0}for(;k<t.length&&!s(t[k])&&!m(t[k])&&(!e||":"!==t[k]);)k++;if(":"===t[k-1]&&u.test(t.substring(r,k+2)))for(;k<t.length&&a.test(t[k]);)k++;if(k>r){for(;f(t,k-1)&&k>0;)k--;let e=t.slice(r,k);return w+="undefined"===e?"null":JSON.stringify(e),'"'===t[k]&&k++,!0}}function q(e){let r=e;for(;r>0&&f(t,r);)r--;return r}function J(){return k>=t.length||n(t[k])||f(t,k)}function B(){throw new e("Colon expected",k)}}t.s(["jsonrepair",()=>k],762545)},580077,t=>{"use strict";function e(t){return t&&"object"==typeof t&&!Array.isArray(t)?t:{}}function r(t){return String(t.name??t.call??t.toolName??t.tool??t.functionName??"").trim()}function n(t,e,r){let n="number"==typeof e?e:Number(e),i=t.filter(t=>!r.has(t.call)),o=(Number.isFinite(n)?i.find(t=>t.count===n):null)||i[0]||t[0];return o?(r.add(o.call),o.call):""}function i(t,i){let o=e(t.dimension_details??t.dimensionDetails),u=e(o.redundancy),a=function(t){let n=new Map;for(let[i,o]of t.entries()){let t=e(o),u=String(t.kind||"").toLowerCase();if("tool"!==u&&"skill"!==u&&"task"!==u)continue;let a=r(t);if(!a)continue;let s=function(t,e){let r=t.step_index??t.stepIndex??t.index,n="number"==typeof r?r:Number(r);return Number.isFinite(n)?n:e}(t,i),l=n.get(a)||{call:a,count:0,firstIndex:null,lastIndex:null};l.count+=1,l.firstIndex=null==l.firstIndex?s:Math.min(l.firstIndex,s),l.lastIndex=null==l.lastIndex?s:Math.max(l.lastIndex,s),n.set(a,l)}return Array.from(n.values()).sort((t,e)=>{let r=e.count-t.count;return 0!==r?r:(t.firstIndex??Number.MAX_SAFE_INTEGER)-(e.firstIndex??Number.MAX_SAFE_INTEGER)})}(Array.isArray(i)?i:[]);if(0===Object.keys(u).length||0===a.length)return t;let s=new Set,l=Array.isArray(u.heavy_repeated_calls)?u.heavy_repeated_calls.map(t=>{let i=e(t),o=r(i)||n(a,i.count,s);return o?{...i,call:o}:i}):u.heavy_repeated_calls,c=new Set,f=Array.isArray(u.consecutive_same_runs)?u.consecutive_same_runs.map(t=>{let i=e(t),o=r(i)||n(a,i.count,c),u=a.find(t=>t.call===o);return o?{...i,name:o,from:i.from??u?.firstIndex,to:i.to??u?.lastIndex}:i}):u.consecutive_same_runs,d={...u,...Array.isArray(l)?{heavy_repeated_calls:l}:{},...Array.isArray(f)?{consecutive_same_runs:f}:{}},m={...o,redundancy:d};return{...t,dimension_details:m}}function o(t,e){let r=Math.round(1e3*(.45*u("number"==typeof t.completeness?t.completeness:0)+.35*u(t.toolChoice)+.2*u(t.redundancy)))/1e3,n=Array.isArray(e)?e:[],i=n.filter(t=>t?.severity==="high").length,o=n.filter(t=>t?.severity==="medium").length,a=`轨迹分按完整性/工具选择/冗余加权计算;严重度仅用于诊断展示(high ${i},medium ${o}),不调整最终分。`;return{trajectoryScore:u(r),rawWeightedScore:r,scoreAggregation:{mode:"trajectory",reason:a,rawWeightedScore:r,finalScore:u(r),highCount:i,mediumCount:o}}}function u(t){return Number.isFinite(t)?Math.max(0,Math.min(1,t)):0}t.s(["aggregateTrajectoryScore",()=>o,"normalizeTrajectoryRedundancyDetails",()=>i])},520813,t=>{"use strict";var e=t.i(286372);function r(t){var r;let i;if(!Array.isArray(t)||0===t.length)return null;for(let o of(r=t,(i=(0,e.buildAgentCallTree)(r))&&Array.isArray(i.interactionIndices)&&i.interactionIndices.length>0?[...i.interactionIndices].sort((t,e)=>t-e):r.map((t,e)=>({interaction:t,index:e})).filter(({interaction:t})=>"subagent"!==String(t.role||"").toLowerCase()&&!t.subagent_session_id&&!t.subagent_name).map(t=>t.index))){let e=function(t){if(!t)return[];let e=[];for(let r of function(t){let e=[];if(t.toolCall&&e.push(t.toolCall),Array.isArray(t.toolCalls)&&e.push(...t.toolCalls),Array.isArray(t.tool_calls)&&e.push(...t.tool_calls),Array.isArray(t.responseMessage?.tool_calls)&&e.push(...t.responseMessage.tool_calls),Array.isArray(t.content))for(let r of t.content)r&&"object"==typeof r&&("toolCall"===r.type||"tool_use"===r.type)&&"string"==typeof r.name&&e.push({name:r.name,arguments:r.arguments??r.input});return e}(t)){let t=r.name||r.function?.name,i=function(t){if("string"!=typeof t)return t;try{return JSON.parse(t)}catch{return t}}(r.arguments??r.function?.arguments);if("skill"===t||"load_skill"===t){let t=function(t){var e;if(!t||"object"!=typeof t)return null;let r=n(t.name)||n(t.skill)||n(t.skillName)||n(t.skill_name);return r?{name:r,version:("number"==typeof(e=t.version??t.skillVersion??t.skill_version)&&Number.isFinite(e)?e:"string"==typeof e&&e.trim()&&Number.isFinite(Number(e))?Number(e):void 0)??null}:null}(i);t&&e.push(t)}}return function(t){let e=new Set,r=[];for(let n of t){let t=`${n.name}:${n.version??""}`;e.has(t)||(e.add(t),r.push(n))}return r}(e)}(t[o]);if(e.length>0)return e[0]}return null}function n(t){return"string"==typeof t&&t.trim()?t.trim():void 0}t.s(["getRootSkillFromInteractions",()=>r])},982505,t=>t.a(async(e,r)=>{try{var n=t.i(948594),i=e([n]);function o(t){let e="number"==typeof t?t:"string"==typeof t?Number(t):NaN;return Number.isFinite(e)?e:void 0}function u(t){if("number"==typeof t&&Number.isFinite(t))return t;if("string"!=typeof t)return null;let e=t.trim();if(!e)return null;if(/^\d+$/.test(e)){let t=Number(e);return Number.isFinite(t)?t:null}let r=Date.parse(e);return Number.isFinite(r)?r:null}function a(t){return t.map(t=>t&&"object"==typeof t&&"text"===String(t.type||"").toLowerCase()?String(t.text||""):"").filter(Boolean).join("")}function s(t){return Array.isArray(t)&&0!==t.length?t.map(t=>{var e;let r,n,i,s,l,c;if(!function(t){if(!t||"object"!=typeof t)return!1;let e=t.info;if(!e||"object"!=typeof e)return!1;let r=t.parts;return Array.isArray(r)||Array.isArray(e.parts)}(t))return null;let f=t.info||{},d=Array.isArray(t.parts)?t.parts:Array.isArray(f.parts)?f.parts:[],m=(e=f.role,"string"==typeof e&&e.trim()?e.trim():"assistant"),g=f.time?.created,p=f.time?.completed,h=u(g),y="user"===m?a(d)||String(f.system||""):a(d),v=d.map(t=>{if(!t||"object"!=typeof t||"tool"!==String(t.type||"").toLowerCase())return null;let e=t.state&&"object"==typeof t.state?t.state:{};return{id:t.callID||t.callId||t.id,type:"function",function:{name:t.tool,arguments:function(t){if("string"==typeof t)return t;try{return JSON.stringify(t??{})}catch{return"{}"}}(e.input)},state:e.status||e.state,output:e.output}}).filter(Boolean),b=f.tokens&&"object"==typeof f.tokens?f.tokens:void 0,A=b?{input:o(b.input),output:o(b.output),reasoning:o(b.reasoning),cache:{read:o(b.cache?.read),write:o(b.cache?.write)},total:(r=o(b?.input)||0,n=o(b?.output)||0,i=o(b?.reasoning)||0,s=o(b?.cache?.read)||0,l=o(b?.cache?.write)||0,c=i>0&&n<i?n+i:n,{input:r,output:c,reasoning:i,cacheRead:s,cacheWrite:l,total:r+c+i+s+l}).total}:void 0;return{role:m,content:y||void 0,tool_calls:v.length>0?v:void 0,usage:A,timestamp:null!==h?new Date(h).toISOString():void 0,timeInfo:null!=g||null!=p?{created:g,completed:p}:void 0,agent:"string"==typeof f.agent?f.agent:void 0,modelID:"string"==typeof f.modelID?f.modelID:void 0,providerID:"string"==typeof f.providerID?f.providerID:void 0,cost:f.cost}}).filter(t=>null!==t).sort((t,e)=>(u(t.timeInfo?.created)||0)-(u(e.timeInfo?.created)||0)):[]}function l(t){let e=t.map(t=>u(t.timeInfo?.created)??u(t.timestamp)).find(t=>Number.isFinite(t));return e?new Date(e):new Date}function c(t){let e=t.flatMap(t=>[u(t.timeInfo?.completed),u(t.timeInfo?.created),u(t.timestamp)]).filter(t=>Number.isFinite(t)).reduce((t,e)=>Math.max(t,e),0);return e>0?new Date(e):new Date}function f(t,e){let r,n,i,o,u=t.some(t=>"assistant"===t.role&&"string"==typeof t.content&&t.content.trim().length>0),a=(r=new Date().toISOString(),n=String(e.query||"").trim(),i=String(e.fallbackOutput||"").trim(),o=[],n&&o.push({role:"user",content:n,timestamp:r}),i&&o.push({role:"assistant",content:i,timestamp:r,agent:String(e.agentName||"").trim()||void 0}),o);if(0===t.length)return a;if(u||!String(e.fallbackOutput||"").trim())return t;let s=a.find(t=>"assistant"===t.role);return s?[...t,s]:t}async function d(t,e){let r=String(e.taskId||"").trim(),i=String(e.agentName||"").trim();if(!r||!i)return 0;let o=await t.listMessages(r),u=f(s(Array.isArray(o)?o:[]),e);return await (0,n.saveExecutionRecord)({task_id:r,upload_id:r,query:String(e.query||"").trim()||void 0,framework:e.framework||"opencode",user:e.user??null,agent:i,agentName:i,final_result:String(e.fallbackOutput||"").trim()||void 0,skill:e.skill??void 0,skill_version:e.skillVersion??void 0,interactions:u,timestamp:l(u),skip_evaluation:!0,skip_internal_judgment:!0,failures:[],skill_issues:[],force_query_update:!0,opencode_cli_completed:!0}),u.length}function m(t){let e=t.timestampISO||new Date().toISOString(),r=[],n=String(t.systemPrompt||"").trim();n&&r.push({role:"system",content:n,timestamp:e});let i=String(t.userMessage||t.query||"").trim();i&&r.push({role:"user",content:i,timestamp:e});let o=String(t.assistantOutput||"").trim();if(o){let n=t.usage?{input:t.usage.input,output:t.usage.output,total:"number"==typeof t.usage.total?t.usage.total:(t.usage.input||0)+(t.usage.output||0)}:void 0;r.push({role:"assistant",content:o,timestamp:e,agent:t.agentName||void 0,modelID:t.modelID||void 0,usage:n})}return r}async function g(t){let e=String(t.taskId||"").trim(),r=String(t.agentName||"").trim();if(!e||!r)return 0;let i=m(t);return 0===i.length?0:(await (0,n.saveExecutionRecord)({task_id:e,upload_id:e,query:String(t.query||"").trim()||void 0,framework:t.framework||"direct-llm",user:t.user??null,agent:r,agentName:r,model:t.modelID??void 0,final_result:String(t.assistantOutput||"").trim()||void 0,skill:t.skill??void 0,skill_version:t.skillVersion??void 0,interactions:i,timestamp:l(i),skip_evaluation:!0,skip_internal_judgment:!0,failures:[],skill_issues:[],force_query_update:!0,trace_completed_at:c(i)}),i.length)}function p(){return"1"===process.env.EVAL_FORCE_OPENCODE_TRANSPORT}[n]=i.then?(await i)():i,t.s(["buildDirectEvaluatorInteractions",()=>m,"ensureEvaluatorExecutionInteractions",()=>f,"inferCompletionTimestampFromInteractions",()=>c,"normalizeEvaluatorExecutionInteractions",()=>s,"recordDirectEvaluatorExecution",()=>g,"recordEvaluatorExecution",()=>d,"shouldForceOpencodeEvalTransport",()=>p]),r()}catch(t){r(t)}},!1),332080,t=>{"use strict";function e(t,e){return`${t}:${e}`}function r(){return globalThis.__agentDebugBackgroundJobs||(globalThis.__agentDebugBackgroundJobs=new Map),globalThis.__agentDebugBackgroundJobs}function n(t,n,i){let o=r().get(e(t,n))||null;return!!o&&(!i||o.interactionsHash===i)}function i(t){r().set(e(t.kind,t.executionId),t)}function o(t,n,i){let o=e(t,n),u=r().get(o);!u||i&&u.interactionsHash!==i||r().delete(o)}t.s(["clearActiveAgentDebugBackgroundJob",()=>o,"hasActiveAgentDebugBackgroundJob",()=>n,"setActiveAgentDebugBackgroundJob",()=>i])},631190,t=>t.a(async(e,r)=>{try{var n=t.i(437163),i=t.i(997215),o=t.i(854763),u=e([o]);async function a(t){let e=await o.db.findExecutionById(t).catch(()=>null);if(e||(e=(await o.db.findExecutions({taskId:t},{timestamp:"desc"}).catch(()=>[]))[0]||null),!e?.id)return null;let r=e.taskId||t,u=await o.db.findSessionByTaskId(r).catch(()=>null),a=function(t){if(Array.isArray(t))return t;if(!t||"string"!=typeof t)return[];try{let e=JSON.parse(t);return Array.isArray(e)?e:[]}catch{return[]}}(u?.interactions);return"claudecode"===e.framework&&(a=(0,i.normalizeClaudeCodeInteractionsForStorage)(a)),a=(0,n.inferSubagentNamesFromInteractions)(a),{execution:e,interactions:a}}[o]=u.then?(await u)():u,t.s(["resolveAgentDebugExecution",()=>a]),r()}catch(t){r(t)}},!1),484695,t=>{t.v(t=>Promise.resolve().then(()=>t(759453)))},419781,t=>{t.v(t=>Promise.resolve().then(()=>t(106411)))},335270,t=>{t.v(t=>Promise.resolve().then(()=>t(982505)))}];
|
|
4
4
|
|
|
5
|
-
//# sourceMappingURL=
|
|
5
|
+
//# sourceMappingURL=_70b9b972._.js.map
|