agent-insight 0.4.1 → 0.4.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/standalone/.next/BUILD_ID +1 -1
- package/.next/standalone/.next/app-path-routes-manifest.json +13 -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 +82 -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.js.nft.json +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.js.nft.json +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.js.nft.json +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.js.nft.json +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/app-paths-manifest.json +3 -0
- package/.next/standalone/.next/server/app/(main)/infra/page/build-manifest.json +17 -0
- package/.next/standalone/.next/server/app/(main)/infra/page/next-font-manifest.json +6 -0
- package/.next/standalone/.next/server/app/(main)/infra/page/react-loadable-manifest.json +1 -0
- package/.next/standalone/.next/server/app/(main)/infra/page/server-reference-manifest.json +4 -0
- package/.next/standalone/.next/server/app/(main)/infra/page.js +17 -0
- package/.next/standalone/.next/server/app/(main)/infra/page.js.map +5 -0
- package/.next/standalone/.next/server/app/(main)/infra/page.js.nft.json +1 -0
- package/.next/standalone/.next/server/app/(main)/infra/page_client-reference-manifest.js +2 -0
- package/.next/standalone/.next/server/app/(main)/infra/source/[id]/page/app-paths-manifest.json +3 -0
- package/.next/standalone/.next/server/app/(main)/infra/source/[id]/page/build-manifest.json +17 -0
- package/.next/standalone/.next/server/app/(main)/infra/source/[id]/page/next-font-manifest.json +6 -0
- package/.next/standalone/.next/server/app/(main)/infra/source/[id]/page/react-loadable-manifest.json +1 -0
- package/.next/standalone/.next/server/app/(main)/infra/source/[id]/page/server-reference-manifest.json +4 -0
- package/.next/standalone/.next/server/app/(main)/infra/source/[id]/page.js +17 -0
- package/.next/standalone/.next/server/app/(main)/infra/source/[id]/page.js.map +5 -0
- package/.next/standalone/.next/server/app/(main)/infra/source/[id]/page.js.nft.json +1 -0
- package/.next/standalone/.next/server/app/(main)/infra/source/[id]/page_client-reference-manifest.js +2 -0
- package/.next/standalone/.next/server/app/(main)/infra/sources/page/app-paths-manifest.json +3 -0
- package/.next/standalone/.next/server/app/(main)/infra/sources/page/build-manifest.json +17 -0
- package/.next/standalone/.next/server/app/(main)/infra/sources/page/next-font-manifest.json +6 -0
- package/.next/standalone/.next/server/app/(main)/infra/sources/page/react-loadable-manifest.json +1 -0
- package/.next/standalone/.next/server/app/(main)/infra/sources/page/server-reference-manifest.json +4 -0
- package/.next/standalone/.next/server/app/(main)/infra/sources/page.js +17 -0
- package/.next/standalone/.next/server/app/(main)/infra/sources/page.js.map +5 -0
- package/.next/standalone/.next/server/app/(main)/infra/sources/page.js.nft.json +1 -0
- package/.next/standalone/.next/server/app/(main)/infra/sources/page_client-reference-manifest.js +2 -0
- 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.js.nft.json +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.js.nft.json +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.js.nft.json +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.js.nft.json +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/_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 +3 -1
- 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 +5 -4
- 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 +5 -4
- 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 +5 -4
- 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 +6 -5
- 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 +3 -3
- 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 +2 -2
- 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 +5 -5
- 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 +3 -3
- 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 +3 -3
- 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 +6 -5
- 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 +2 -2
- 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 +2 -2
- 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 +5 -4
- 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 +14 -13
- 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 +2 -2
- 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 +2 -2
- 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 +2 -2
- 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 +7 -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 +6 -5
- 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 +5 -4
- 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 +9 -8
- 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 +3 -3
- 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 +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 +9 -8
- 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 +4 -3
- 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 +5 -4
- 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 +6 -5
- 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 +3 -3
- 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 +6 -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 +17 -16
- 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 +2 -2
- 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 +6 -5
- 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 +3 -3
- 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 +2 -2
- 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 +6 -5
- package/.next/standalone/.next/server/app/api/fault/diagnosis/stream/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/guide/route.js +3 -3
- 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 +7 -6
- 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 +2 -2
- 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 +5 -2
- 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 +9 -8
- 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 +4 -3
- 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 +12 -11
- 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 +3 -3
- 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 +3 -3
- 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 +3 -3
- 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 +14 -13
- package/.next/standalone/.next/server/app/api/ingest/upload/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/observe/data/route.js +9 -8
- 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 +10 -9
- 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 +12 -11
- 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 +7 -6
- 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/app-paths-manifest.json +3 -0
- package/.next/standalone/.next/server/app/api/observe/executions/[executionId]/infra/route/build-manifest.json +11 -0
- package/.next/standalone/.next/server/app/api/observe/executions/[executionId]/infra/route/server-reference-manifest.json +4 -0
- package/.next/standalone/.next/server/app/api/observe/executions/[executionId]/infra/route.js +9 -0
- package/.next/standalone/.next/server/app/api/observe/executions/[executionId]/infra/route.js.map +5 -0
- package/.next/standalone/.next/server/app/api/observe/executions/[executionId]/infra/route.js.nft.json +1 -0
- package/.next/standalone/.next/server/app/api/observe/executions/[executionId]/infra/route_client-reference-manifest.js +2 -0
- package/.next/standalone/.next/server/app/api/observe/infra/diagnose/route/app-paths-manifest.json +3 -0
- package/.next/standalone/.next/server/app/api/observe/infra/diagnose/route/build-manifest.json +11 -0
- package/.next/standalone/.next/server/app/api/observe/infra/diagnose/route/server-reference-manifest.json +4 -0
- package/.next/standalone/.next/server/app/api/observe/infra/diagnose/route.js +7 -0
- package/.next/standalone/.next/server/app/api/observe/infra/diagnose/route.js.map +5 -0
- package/.next/standalone/.next/server/app/api/observe/infra/diagnose/route.js.nft.json +1 -0
- package/.next/standalone/.next/server/app/api/observe/infra/diagnose/route_client-reference-manifest.js +2 -0
- package/.next/standalone/.next/server/app/api/observe/infra/history/route/app-paths-manifest.json +3 -0
- package/.next/standalone/.next/server/app/api/observe/infra/history/route/build-manifest.json +11 -0
- package/.next/standalone/.next/server/app/api/observe/infra/history/route/server-reference-manifest.json +4 -0
- package/.next/standalone/.next/server/app/api/observe/infra/history/route.js +8 -0
- package/.next/standalone/.next/server/app/api/observe/infra/history/route.js.map +5 -0
- package/.next/standalone/.next/server/app/api/observe/infra/history/route.js.nft.json +1 -0
- package/.next/standalone/.next/server/app/api/observe/infra/history/route_client-reference-manifest.js +2 -0
- package/.next/standalone/.next/server/app/api/observe/infra/poll/route/app-paths-manifest.json +3 -0
- package/.next/standalone/.next/server/app/api/observe/infra/poll/route/build-manifest.json +11 -0
- package/.next/standalone/.next/server/app/api/observe/infra/poll/route/server-reference-manifest.json +4 -0
- package/.next/standalone/.next/server/app/api/observe/infra/poll/route.js +8 -0
- package/.next/standalone/.next/server/app/api/observe/infra/poll/route.js.map +5 -0
- package/.next/standalone/.next/server/app/api/observe/infra/poll/route.js.nft.json +1 -0
- package/.next/standalone/.next/server/app/api/observe/infra/poll/route_client-reference-manifest.js +2 -0
- package/.next/standalone/.next/server/app/api/observe/infra/sources/derive/route/app-paths-manifest.json +3 -0
- package/.next/standalone/.next/server/app/api/observe/infra/sources/derive/route/build-manifest.json +11 -0
- package/.next/standalone/.next/server/app/api/observe/infra/sources/derive/route/server-reference-manifest.json +4 -0
- package/.next/standalone/.next/server/app/api/observe/infra/sources/derive/route.js +8 -0
- package/.next/standalone/.next/server/app/api/observe/infra/sources/derive/route.js.map +5 -0
- package/.next/standalone/.next/server/app/api/observe/infra/sources/derive/route.js.nft.json +1 -0
- package/.next/standalone/.next/server/app/api/observe/infra/sources/derive/route_client-reference-manifest.js +2 -0
- package/.next/standalone/.next/server/app/api/observe/infra/sources/overview/route/app-paths-manifest.json +3 -0
- package/.next/standalone/.next/server/app/api/observe/infra/sources/overview/route/build-manifest.json +11 -0
- package/.next/standalone/.next/server/app/api/observe/infra/sources/overview/route/server-reference-manifest.json +4 -0
- package/.next/standalone/.next/server/app/api/observe/infra/sources/overview/route.js +8 -0
- package/.next/standalone/.next/server/app/api/observe/infra/sources/overview/route.js.map +5 -0
- package/.next/standalone/.next/server/app/api/observe/infra/sources/overview/route.js.nft.json +1 -0
- package/.next/standalone/.next/server/app/api/observe/infra/sources/overview/route_client-reference-manifest.js +2 -0
- package/.next/standalone/.next/server/app/api/observe/infra/sources/route/app-paths-manifest.json +3 -0
- package/.next/standalone/.next/server/app/api/observe/infra/sources/route/build-manifest.json +11 -0
- package/.next/standalone/.next/server/app/api/observe/infra/sources/route/server-reference-manifest.json +4 -0
- package/.next/standalone/.next/server/app/api/observe/infra/sources/route.js +8 -0
- package/.next/standalone/.next/server/app/api/observe/infra/sources/route.js.map +5 -0
- package/.next/standalone/.next/server/app/api/observe/infra/sources/route.js.nft.json +1 -0
- package/.next/standalone/.next/server/app/api/observe/infra/sources/route_client-reference-manifest.js +2 -0
- package/.next/standalone/.next/server/app/api/observe/infra/sources/sessions/route/app-paths-manifest.json +3 -0
- package/.next/standalone/.next/server/app/api/observe/infra/sources/sessions/route/build-manifest.json +11 -0
- package/.next/standalone/.next/server/app/api/observe/infra/sources/sessions/route/server-reference-manifest.json +4 -0
- package/.next/standalone/.next/server/app/api/observe/infra/sources/sessions/route.js +8 -0
- package/.next/standalone/.next/server/app/api/observe/infra/sources/sessions/route.js.map +5 -0
- package/.next/standalone/.next/server/app/api/observe/infra/sources/sessions/route.js.nft.json +1 -0
- package/.next/standalone/.next/server/app/api/observe/infra/sources/sessions/route_client-reference-manifest.js +2 -0
- package/.next/standalone/.next/server/app/api/observe/infra/sources/test/route/app-paths-manifest.json +3 -0
- package/.next/standalone/.next/server/app/api/observe/infra/sources/test/route/build-manifest.json +11 -0
- package/.next/standalone/.next/server/app/api/observe/infra/sources/test/route/server-reference-manifest.json +4 -0
- package/.next/standalone/.next/server/app/api/observe/infra/sources/test/route.js +8 -0
- package/.next/standalone/.next/server/app/api/observe/infra/sources/test/route.js.map +5 -0
- package/.next/standalone/.next/server/app/api/observe/infra/sources/test/route.js.nft.json +1 -0
- package/.next/standalone/.next/server/app/api/observe/infra/sources/test/route_client-reference-manifest.js +2 -0
- package/.next/standalone/.next/server/app/api/observe/session/route.js +5 -4
- 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 +8 -7
- package/.next/standalone/.next/server/app/api/observe/task-stats/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/public/otel/v1/traces/route/app-paths-manifest.json +3 -0
- package/.next/standalone/.next/server/app/api/public/otel/v1/traces/route/build-manifest.json +11 -0
- package/.next/standalone/.next/server/app/api/public/otel/v1/traces/route/server-reference-manifest.json +4 -0
- package/.next/standalone/.next/server/app/api/public/otel/v1/traces/route.js +17 -0
- package/.next/standalone/.next/server/app/api/public/otel/v1/traces/route.js.map +5 -0
- package/.next/standalone/.next/server/app/api/public/otel/v1/traces/route.js.nft.json +1 -0
- package/.next/standalone/.next/server/app/api/public/otel/v1/traces/route_client-reference-manifest.js +2 -0
- package/.next/standalone/.next/server/app/api/quality/agents/route.js +9 -8
- 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 +11 -10
- 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 +9 -8
- 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 +3 -3
- 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 +7 -6
- 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 +3 -3
- 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 +2 -2
- 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 +8 -7
- 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 +3 -3
- 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 +3 -3
- 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 +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 +7 -6
- 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 +3 -3
- 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 +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 +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 +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 +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 +2 -2
- 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 +2 -2
- 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 +11 -10
- 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 +3 -3
- 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 +6 -5
- 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 +8 -7
- 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 +2 -2
- 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 +2 -2
- 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 +2 -2
- 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 +3 -3
- 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 +10 -9
- 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 +7 -6
- 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 +3 -3
- 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 +3 -3
- 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 +6 -5
- 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 +6 -5
- 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 +3 -3
- 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 +6 -5
- 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 +3 -3
- 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 +7 -6
- 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 +6 -5
- 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 +3 -3
- 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 +5 -4
- 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 +2 -2
- 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 +2 -2
- 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 +3 -3
- 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 +7 -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 +6 -5
- 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 +4 -4
- 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 +3 -3
- 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 +7 -6
- package/.next/standalone/.next/server/app/api/skills/upload/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/user-evaluators/route.js +3 -2
- 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 -0
- package/.next/standalone/.next/server/app/infra/sources.meta +17 -0
- package/.next/standalone/.next/server/app/infra/sources.rsc +22 -0
- package/.next/standalone/.next/server/app/infra/sources.segments/!KG1haW4p/infra/sources/__PAGE__.segment.rsc +9 -0
- package/.next/standalone/.next/server/app/infra/sources.segments/!KG1haW4p/infra/sources.segment.rsc +4 -0
- package/.next/standalone/.next/server/app/infra/sources.segments/!KG1haW4p/infra.segment.rsc +4 -0
- package/.next/standalone/.next/server/app/infra/sources.segments/!KG1haW4p.segment.rsc +7 -0
- package/.next/standalone/.next/server/app/infra/sources.segments/_full.segment.rsc +22 -0
- package/.next/standalone/.next/server/app/infra/sources.segments/_head.segment.rsc +6 -0
- package/.next/standalone/.next/server/app/infra/sources.segments/_index.segment.rsc +6 -0
- package/.next/standalone/.next/server/app/infra/sources.segments/_tree.segment.rsc +2 -0
- package/.next/standalone/.next/server/app/infra.html +1 -0
- package/.next/standalone/.next/server/app/infra.meta +16 -0
- package/.next/standalone/.next/server/app/infra.rsc +22 -0
- package/.next/standalone/.next/server/app/infra.segments/!KG1haW4p/infra/__PAGE__.segment.rsc +9 -0
- package/.next/standalone/.next/server/app/infra.segments/!KG1haW4p/infra.segment.rsc +4 -0
- package/.next/standalone/.next/server/app/infra.segments/!KG1haW4p.segment.rsc +7 -0
- package/.next/standalone/.next/server/app/infra.segments/_full.segment.rsc +22 -0
- package/.next/standalone/.next/server/app/infra.segments/_head.segment.rsc +6 -0
- package/.next/standalone/.next/server/app/infra.segments/_index.segment.rsc +6 -0
- package/.next/standalone/.next/server/app/infra.segments/_tree.segment.rsc +2 -0
- 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 +10 -9
- 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 +10 -9
- 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 +7 -7
- 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 +7 -7
- 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 +7 -7
- 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 +7 -7
- 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 +6 -6
- 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 +6 -6
- 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 +18 -14
- 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 +18 -14
- 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 +20 -17
- 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 +20 -17
- 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-paths-manifest.json +13 -0
- package/.next/standalone/.next/server/chunks/[externals]__9fdb9c7d._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__006f015e._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0267beef._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__02c8a296._.js +3 -0
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__fe35f136._.js → [root-of-the-server]__040c0eb8._.js} +2 -2
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0984a1fa._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0e446f5e._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__10150e61._.js +5 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__10dc192b._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__12f2f819._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__1307c1ad._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__13eb0d25._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__146d0997._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__14f6c06c._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__1596a789._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__170fbfb7._.js +5 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__1917f41f._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__19f66254._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__1dac3981._.js +3 -0
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__46adf712._.js → [root-of-the-server]__1e4ede06._.js} +2 -2
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__32ce67c7._.js → [root-of-the-server]__1eb9a6ee._.js} +2 -2
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__27ca3a21._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__2b6716cd._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__2b7f3823._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__2d398403._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__2dd8ff54._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__2ec78f3e._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__31f85657._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__379129ab._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__39dd5a92._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__3a70614f._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__3d91ff40._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__4299e672._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__43edd917._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__44e72985._.js +5 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__49fe2c7e._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__4a0ac677._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__4ce39c11._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__4fa7606a._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__528e2fde._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__592b8090._.js +3 -0
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__19ede63b._.js → [root-of-the-server]__626d0308._.js} +2 -2
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__b74d3160._.js → [root-of-the-server]__65c43993._.js} +2 -2
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__67c69839._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__682d0ba0._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__6b22780d._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__6c350697._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__6d948bdc._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__6ecfaae0._.js +5 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__6fafd86f._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__6fe0c73e._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__70f19ec4._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__7582bf4c._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__79ada3fa._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__85a7678b._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__85c943bd._.js +6 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__87677b37._.js +3 -0
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__8af85028._.js → [root-of-the-server]__892e3377._.js} +2 -2
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__8ab933cd._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__930e22bb._.js +7 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__93970ae1._.js +3 -3
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__1fb9a578._.js → [root-of-the-server]__968974bd._.js} +2 -2
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__97045cfa._.js +3 -0
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__d62326e3._.js → [root-of-the-server]__970b099f._.js} +2 -2
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__99ad309a._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__99c6aa2d._.js +13 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__9f278f61._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__9fd05c54._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__a1182ad1._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__a51b64ae._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__a6900486._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__a7a740bb._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__ad4b402b._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__ad9bbfad._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__b238a277._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__b4b7e8ef._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__b7f142c3._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__bac6c232._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__bb4f4492._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__bc21598f._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__beb32ef1._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__c10b74c1._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__c12d7aad._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__c16c84b6._.js +5 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__c8611482._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__ceb630e2._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__ced5e5ca._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__cedc21b1._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__d178c81c._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__d80a36e0._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__d8e819a1._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__e0e69916._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__e84bc7ce._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__edf01394._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__fd09870b._.js +3 -0
- package/.next/standalone/.next/server/chunks/_048f2013._.js +1 -1
- package/.next/standalone/.next/server/chunks/_05c80664._.js +1 -1
- package/.next/standalone/.next/server/chunks/_08c6dd4c._.js +3 -3
- package/.next/standalone/.next/server/chunks/{_5041b697._.js → _1a32fa23._.js} +2 -2
- package/.next/standalone/.next/server/chunks/_28b9b733._.js +32 -0
- package/.next/standalone/.next/server/chunks/_2ac292b0._.js +1 -1
- package/.next/standalone/.next/server/chunks/_3f71c366._.js +4 -4
- package/.next/standalone/.next/server/chunks/_40f80932._.js +3 -0
- package/.next/standalone/.next/server/chunks/{_0ea4c12b._.js → _45a619b0._.js} +1 -1
- package/.next/standalone/.next/server/chunks/_49e36e44._.js +1 -1
- package/.next/standalone/.next/server/chunks/_4ec439ea._.js +3 -3
- package/.next/standalone/.next/server/chunks/_4ffe9f62._.js +3 -0
- package/.next/standalone/.next/server/chunks/{_19441465._.js → _547fcde4._.js} +2 -2
- package/.next/standalone/.next/server/chunks/_5936e19d._.js +3 -0
- package/.next/standalone/.next/server/chunks/_6842a9ba._.js +1 -1
- package/.next/standalone/.next/server/chunks/{_bc01feba._.js → _68685b8c._.js} +7 -7
- package/.next/standalone/.next/server/chunks/_694f4232._.js +3 -0
- package/.next/standalone/.next/server/chunks/_6ed9d796._.js +4 -4
- package/.next/standalone/.next/server/chunks/_78078171._.js +3 -0
- package/.next/standalone/.next/server/chunks/_78c6471e._.js +1 -1
- package/.next/standalone/.next/server/chunks/_8603f9ca._.js +1 -1
- package/.next/standalone/.next/server/chunks/_89a3536c._.js +1 -1
- package/.next/standalone/.next/server/chunks/_a2ff108d._.js +1 -1
- package/.next/standalone/.next/server/chunks/_a305d8b8._.js +3 -3
- package/.next/standalone/.next/server/chunks/_adf9e9c5._.js +1 -1
- package/.next/standalone/.next/server/chunks/_b30c2ca8._.js +1 -1
- package/.next/standalone/.next/server/chunks/{_cdaee29d._.js → _c707acf8._.js} +2 -2
- package/.next/standalone/.next/server/chunks/_d0e3dc8c._.js +1 -1
- package/.next/standalone/.next/server/chunks/_d4d51026._.js +1 -1
- package/.next/standalone/.next/server/chunks/_d5fd7ab4._.js +3 -0
- package/.next/standalone/.next/server/chunks/_d8e04766._.js +1 -1
- package/.next/standalone/.next/server/chunks/_e0cf0d37._.js +3 -0
- package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_observe_infra_diagnose_route_actions_31275b71.js +3 -0
- package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_observe_infra_history_route_actions_2e62a90f.js +3 -0
- package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_observe_infra_poll_route_actions_e79f2641.js +3 -0
- package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_observe_infra_sources_route_actions_0b142b73.js +3 -0
- package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_observe_infra_sources_test_route_actions_1d51e227.js +3 -0
- package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_public_otel_v1_traces_route_actions_c13e2c65.js +3 -0
- package/.next/standalone/.next/server/chunks/ce889_server_app_api_observe_executions_[executionId]_infra_route_actions_0e9e320e.js +3 -0
- package/.next/standalone/.next/server/chunks/ce889_server_app_api_observe_infra_sources_derive_route_actions_4888b1cf.js +3 -0
- package/.next/standalone/.next/server/chunks/ce889_server_app_api_observe_infra_sources_overview_route_actions_e027c8e7.js +3 -0
- package/.next/standalone/.next/server/chunks/ce889_server_app_api_observe_infra_sources_sessions_route_actions_9005a00a.js +3 -0
- package/.next/standalone/.next/server/chunks/{src_49f0d71c._.js → src_08719fbb._.js} +2 -2
- package/.next/standalone/.next/server/chunks/src_34fb142e._.js +4 -4
- package/.next/standalone/.next/server/chunks/src_4fe54147._.js +1 -1
- package/.next/standalone/.next/server/chunks/src_9c08bd78._.js +1 -1
- package/.next/standalone/.next/server/chunks/src_lib_7bae418f._.js +1 -1
- package/.next/standalone/.next/server/chunks/src_lib_84cf46e8._.js +3 -0
- package/.next/standalone/.next/server/chunks/src_lib_9cf1dab3._.js +29 -0
- package/.next/standalone/.next/server/chunks/src_lib_a2a34aa6._.js +7 -7
- package/.next/standalone/.next/server/chunks/src_lib_engine_general-agent_970b1dfe._.js +2 -2
- package/.next/standalone/.next/server/chunks/src_lib_engine_skill-generation_opencode-agent-cli_opencode-manager_ts_94c7d385._.js +3 -3
- package/.next/standalone/.next/server/chunks/src_lib_engine_skill-issues_static-evaluator_5e9f2d8a._.js +4 -4
- package/.next/standalone/.next/server/chunks/src_lib_f12f8b56._.js +32 -0
- package/.next/standalone/.next/server/chunks/{src_lib_bc5e5c04._.js → src_lib_fca90805._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__15099475._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__15600e29._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__2505addc._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__30536471._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__ad69e0c0._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__920fa087._.js → [root-of-the-server]__c9cf8076._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/_0141e5c7._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/_0acdaaae._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/_0d3145ea._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/_1568477b._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/_1f67a52d._.js +4 -0
- package/.next/standalone/.next/server/chunks/ssr/_231821bd._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/_23385550._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/_2534caac._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/_3b019a38._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/_44e49071._.js +4 -0
- package/.next/standalone/.next/server/chunks/ssr/_4796bd79._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/_4b46054f._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/_5d1986bf._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/_5d1f8671._.js +12 -0
- package/.next/standalone/.next/server/chunks/ssr/_5e0dfc4e._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/_5ea9f29c._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/_640e1d24._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/_70e4bd42._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/_8bba8b8d._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/_96725836._.js +12 -0
- package/.next/standalone/.next/server/chunks/ssr/_a8c793c2._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/_aab048d0._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/_aab6dc4c._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/_aea60571._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/_c16d64b3._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/_cebf2190._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/_cfe5178e._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/_fc22c215._.js +4 -0
- package/.next/standalone/.next/server/chunks/ssr/_next-internal_server_app_(main)_infra_page_actions_df5e07da.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/_next-internal_server_app_(main)_infra_source_[id]_page_actions_3d61ac95.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/_next-internal_server_app_(main)_infra_sources_page_actions_135a5ab7.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_1d12ce21._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_23404e09._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/{node_modules_6d029f8e._.js → node_modules_278cdc27._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/node_modules_285bde65._.js +17 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_32b85991._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_35a4a3d2._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_37be0399._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_55cbf86b._.js +17 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_5f7174a8._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_778a153f._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_7e6a708b._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_855a50c1._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_878c20b4._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_9b301091._.js +24 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_b3078440._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_b3fd4e7e._.js +17 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_c0554e87._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_cfcb6a3a._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_da0a7049._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_e0cd63d9._.js +17 -0
- package/.next/standalone/.next/server/chunks/ssr/{node_modules_lucide-react_dist_esm_icons_f712a172._.js → node_modules_lucide-react_dist_esm_icons_f1e06ad8._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/node_modules_next_dist_client_components_9774470f._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_forbidden_45780354.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_unauthorized_15817684.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/src_app_(main)_accessconfig_install_page_tsx_6f4ef3fc._.js +3 -1
- package/.next/standalone/.next/server/chunks/ssr/src_app_(main)_infra_source_[id]_page_tsx_b48521fc._.js +19 -0
- 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 +3 -0
- package/.next/standalone/.next/server/chunks/ssr/src_app_(main)_trace_page_tsx_41e7865d._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/src_lib_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/012f27d0d790dc0f.js +1 -0
- package/.next/standalone/.next/static/chunks/07b2d7e6b58603c1.js +1 -0
- package/.next/standalone/.next/static/chunks/1626d47d4b84fc8b.js +1 -0
- package/.next/standalone/.next/static/chunks/175e0609137d7eed.js +1 -0
- package/.next/standalone/.next/static/chunks/1aa5156b12972154.js +1 -0
- package/.next/standalone/.next/static/chunks/2dc7fabb2f12bf39.js +1 -0
- package/.next/{static/chunks/819be4f6dc602b73.js → standalone/.next/static/chunks/3d040755d3686976.js} +1 -1
- package/.next/standalone/.next/static/chunks/466edc01ad624a7e.js +1 -0
- package/.next/standalone/.next/static/chunks/48fba91726a41a66.js +1 -0
- package/.next/standalone/.next/static/chunks/5c301dcc3995f72c.js +1 -0
- package/.next/standalone/.next/static/chunks/60f3a73e9fa6c625.js +1 -0
- package/.next/standalone/.next/static/chunks/61003f0aededf3d6.js +1 -0
- package/.next/{static/chunks/f08011a9c5cd16a6.js → standalone/.next/static/chunks/6238734a2f04b1f9.js} +1 -1
- package/.next/standalone/.next/static/chunks/{314eea8ce9b18ba1.js → 66de628824ded594.js} +1 -1
- package/.next/standalone/.next/static/chunks/6f6e529cc8a0535d.js +1 -0
- package/.next/standalone/.next/static/chunks/747a8d06793299fa.js +1 -0
- package/.next/standalone/.next/static/chunks/755c604ba44e0e9b.js +1 -0
- package/.next/standalone/.next/static/chunks/76a6d562e6507740.js +1 -0
- package/.next/standalone/.next/static/chunks/77a10bcb350555d9.js +1 -0
- package/.next/standalone/.next/static/chunks/7837bb465385ecd8.js +1 -0
- package/.next/standalone/.next/static/chunks/7dc8bfae4aed86c2.js +1 -0
- package/.next/{static/chunks/264991644d73270c.js → standalone/.next/static/chunks/80f28b2193bf35d3.js} +1 -1
- package/.next/standalone/.next/static/chunks/85f356e3e23b09ab.js +1 -0
- package/.next/standalone/.next/static/chunks/{3e55642a8eb5ba23.js → 8754e0cf40813330.js} +1 -1
- package/.next/{static/chunks/5d0423a5cf33f34e.js → standalone/.next/static/chunks/8dff7ffbfcc5cc39.js} +1 -1
- package/.next/standalone/.next/static/chunks/{f2228519196f8f44.js → 9155a6c07dc0502d.js} +2 -2
- package/.next/standalone/.next/static/chunks/96823b122a037ed1.js +1 -0
- package/.next/standalone/.next/static/chunks/96c7e2e47438553a.js +1 -0
- package/.next/standalone/.next/static/chunks/9adb155358e88cb2.js +1 -0
- package/.next/standalone/.next/static/chunks/a31bf4e176b5e90c.js +3 -0
- package/.next/standalone/.next/static/chunks/a534005e8a8ec626.js +1 -0
- package/.next/standalone/.next/static/chunks/aa2b0b8c9ed6b185.js +2 -0
- package/.next/standalone/.next/static/chunks/b0fb37ef626a34a0.js +1 -0
- package/.next/standalone/.next/static/chunks/c1a9ea80807777b8.js +10 -0
- package/.next/standalone/.next/static/chunks/c7e8296357638830.js +1 -0
- package/.next/standalone/.next/static/chunks/cc6c6efcf6de727b.js +17 -0
- package/.next/standalone/.next/static/chunks/d6af33336f13dd65.js +1 -0
- package/.next/standalone/.next/static/chunks/d7ff390550d8ae02.js +1 -0
- package/.next/standalone/.next/static/chunks/d91c2c0bbe0b59ab.js +1 -0
- package/.next/standalone/.next/static/chunks/daad76cdc09960bb.js +10 -0
- package/.next/{static/chunks/e396958d5e8ecaf8.js → standalone/.next/static/chunks/dc22f906bd43e9a3.js} +3 -3
- package/.next/standalone/.next/static/chunks/e159d293fc72e91b.css +1 -0
- package/.next/standalone/.next/static/chunks/e6bdd7840d3e35e8.js +1 -0
- package/.next/standalone/.next/static/chunks/e8b69a66912006d0.js +1 -0
- package/.next/standalone/.next/static/chunks/eb6a581f1851670e.js +1 -0
- package/.next/standalone/.next/static/chunks/fc00d1dd80dd9357.js +1 -0
- package/.next/standalone/.opencode/bun.lock +18 -0
- package/.next/standalone/.opencode/package.json +5 -0
- package/.next/standalone/Dockerfile +1 -0
- package/.next/standalone/RELEASE.md +6 -0
- package/.next/standalone/node_modules/.prisma/client/edge.js +43 -4
- package/.next/standalone/node_modules/.prisma/client/index-browser.js +40 -1
- package/.next/standalone/node_modules/.prisma/client/index.js +43 -4
- package/.next/standalone/node_modules/.prisma/client/package.json +1 -1
- package/.next/standalone/node_modules/.prisma/client/schema.prisma +53 -0
- package/.next/standalone/node_modules/.prisma/client/wasm.js +40 -1
- package/.next/standalone/package.json +1 -1
- package/.next/standalone/prisma/schema.prisma +53 -0
- package/.next/standalone/scripts/__pycache__/hermes_agent_insight_plugin.cpython-312.pyc +0 -0
- package/.next/standalone/scripts/dryrun_readrecords_batched.ts +3 -2
- package/.next/standalone/scripts/infra-vllm-loadcheck.ts +84 -0
- package/.next/standalone/scripts/infra-vllm-probe.ts +57 -0
- package/.next/standalone/scripts/ping_monitor.ts +2 -1
- package/.next/standalone/scripts/start.sh +23 -3
- package/.next/standalone/skills/agent-debug-diagnosis/scripts/__pycache__/agentdebug_common.cpython-312.pyc +0 -0
- package/.next/static/chunks/012f27d0d790dc0f.js +1 -0
- package/.next/static/chunks/07b2d7e6b58603c1.js +1 -0
- package/.next/static/chunks/1626d47d4b84fc8b.js +1 -0
- package/.next/static/chunks/175e0609137d7eed.js +1 -0
- package/.next/static/chunks/1aa5156b12972154.js +1 -0
- package/.next/static/chunks/2dc7fabb2f12bf39.js +1 -0
- package/.next/{standalone/.next/static/chunks/819be4f6dc602b73.js → static/chunks/3d040755d3686976.js} +1 -1
- package/.next/static/chunks/466edc01ad624a7e.js +1 -0
- package/.next/static/chunks/48fba91726a41a66.js +1 -0
- package/.next/static/chunks/5c301dcc3995f72c.js +1 -0
- package/.next/static/chunks/60f3a73e9fa6c625.js +1 -0
- package/.next/static/chunks/61003f0aededf3d6.js +1 -0
- package/.next/{standalone/.next/static/chunks/f08011a9c5cd16a6.js → static/chunks/6238734a2f04b1f9.js} +1 -1
- package/.next/static/chunks/{314eea8ce9b18ba1.js → 66de628824ded594.js} +1 -1
- package/.next/static/chunks/6f6e529cc8a0535d.js +1 -0
- package/.next/static/chunks/747a8d06793299fa.js +1 -0
- package/.next/static/chunks/755c604ba44e0e9b.js +1 -0
- package/.next/static/chunks/76a6d562e6507740.js +1 -0
- package/.next/static/chunks/77a10bcb350555d9.js +1 -0
- package/.next/static/chunks/7837bb465385ecd8.js +1 -0
- package/.next/static/chunks/7dc8bfae4aed86c2.js +1 -0
- package/.next/{standalone/.next/static/chunks/264991644d73270c.js → static/chunks/80f28b2193bf35d3.js} +1 -1
- package/.next/static/chunks/85f356e3e23b09ab.js +1 -0
- package/.next/static/chunks/{3e55642a8eb5ba23.js → 8754e0cf40813330.js} +1 -1
- package/.next/{standalone/.next/static/chunks/5d0423a5cf33f34e.js → static/chunks/8dff7ffbfcc5cc39.js} +1 -1
- package/.next/static/chunks/{f2228519196f8f44.js → 9155a6c07dc0502d.js} +2 -2
- package/.next/static/chunks/96823b122a037ed1.js +1 -0
- package/.next/static/chunks/96c7e2e47438553a.js +1 -0
- package/.next/static/chunks/9adb155358e88cb2.js +1 -0
- package/.next/static/chunks/a31bf4e176b5e90c.js +3 -0
- package/.next/static/chunks/a534005e8a8ec626.js +1 -0
- package/.next/static/chunks/aa2b0b8c9ed6b185.js +2 -0
- package/.next/static/chunks/b0fb37ef626a34a0.js +1 -0
- package/.next/static/chunks/c1a9ea80807777b8.js +10 -0
- package/.next/static/chunks/c7e8296357638830.js +1 -0
- package/.next/static/chunks/cc6c6efcf6de727b.js +17 -0
- package/.next/static/chunks/d6af33336f13dd65.js +1 -0
- package/.next/static/chunks/d7ff390550d8ae02.js +1 -0
- package/.next/static/chunks/d91c2c0bbe0b59ab.js +1 -0
- package/.next/static/chunks/daad76cdc09960bb.js +10 -0
- package/.next/{standalone/.next/static/chunks/e396958d5e8ecaf8.js → static/chunks/dc22f906bd43e9a3.js} +3 -3
- package/.next/static/chunks/e159d293fc72e91b.css +1 -0
- package/.next/static/chunks/e6bdd7840d3e35e8.js +1 -0
- package/.next/static/chunks/e8b69a66912006d0.js +1 -0
- package/.next/static/chunks/eb6a581f1851670e.js +1 -0
- package/.next/static/chunks/fc00d1dd80dd9357.js +1 -0
- package/package.json +1 -1
- package/prisma/schema.prisma +53 -0
- package/scripts/__pycache__/hermes_agent_insight_plugin.cpython-312.pyc +0 -0
- package/scripts/dryrun_readrecords_batched.ts +3 -2
- package/scripts/infra-vllm-loadcheck.ts +84 -0
- package/scripts/infra-vllm-probe.ts +57 -0
- package/scripts/ping_monitor.ts +2 -1
- package/scripts/start.sh +23 -3
- package/.next/standalone/.next/server/chunks/[externals]__f458ab79._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0068c1fc._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__040b569f._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__045587bf._.js +0 -6
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0644629d._.js +0 -5
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0805dbf7._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__08ae7361._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0aa7083b._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0c3644ff._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0e81c059._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__10970a34._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__151a437e._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__15f53674._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__1b7feef9._.js +0 -5
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__1b902b9e._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__1dd8d4fe._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__1def0351._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__1e033f42._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__1ffaeedd._.js +0 -5
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__25a767e5._.js +0 -7
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__2d337f2e._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__326abfd9._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__35b27244._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__363f8caf._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__39374c1f._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__3943f2d4._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__39b0a6a8._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__3a23ad34._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__45f15a40._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__4d9694c3._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__5231c174._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__549af36b._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__57e6d2a2._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__59ad7214._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__5c39010e._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__60643e13._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__67c90eea._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__6bd638de._.js +0 -5
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__6f67398a._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__72038149._.js +0 -13
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__79874fb4._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__79918828._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__872ecf84._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__8a8c1c09._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__8b738c2a._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__9a4686fd._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__9e377fa0._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__a01fde2c._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__a0a8a394._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__a1fdf600._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__a60f0985._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__a62c8374._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__a9d5005d._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__ac03d782._.js +0 -5
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__b63dd7b6._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__b853df47._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__b9ba9fe9._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__b9ea78fe._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__bb26d00a._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__bd6a35b1._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__c139b60a._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__c15e98e6._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__ca706dfb._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__cb09a0f9._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__cc3948c5._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__cca882cf._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__d03fa951._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__d9c98a95._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__dc598d38._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__de3c01d3._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__e8b45be8._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__eb9c84fc._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__f43a6132._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__fef5bbd7._.js +0 -3
- package/.next/standalone/.next/server/chunks/_098d414d._.js +0 -3
- package/.next/standalone/.next/server/chunks/_f53757b9._.js +0 -3
- package/.next/standalone/.next/server/chunks/src_lib_1466262d._.js +0 -29
- package/.next/standalone/.next/server/chunks/src_lib_beee2d37._.js +0 -32
- package/.next/standalone/.next/server/chunks/src_lib_c6d9db51._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__c0f4a8e3._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_338db557._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_434d90cf._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_54f7cd42._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_715ced03._.js +0 -12
- package/.next/standalone/.next/server/chunks/ssr/_86e4a207._.js +0 -12
- package/.next/standalone/.next/server/chunks/ssr/_9adbeadd._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_9e56acbd._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_ad052dd8._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_d4c77173._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_f778c2ae._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/node_modules_0446465d._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/node_modules_14fdec98._.js +0 -17
- package/.next/standalone/.next/server/chunks/ssr/node_modules_39b590d2._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/node_modules_5765f642._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/node_modules_5a7ce65f._.js +0 -17
- package/.next/standalone/.next/server/chunks/ssr/node_modules_67a600ea._.js +0 -24
- package/.next/standalone/.next/server/chunks/ssr/node_modules_73b73ed2._.js +0 -17
- package/.next/standalone/.next/server/chunks/ssr/node_modules_88623ea5._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/node_modules_9a06f164._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/node_modules_9ad38d6b._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/node_modules_c5bc32c0._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/node_modules_c8b340b1._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/node_modules_c93bc0d4._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/node_modules_d492394b._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/node_modules_e9abd531._.js +0 -17
- package/.next/standalone/.next/server/chunks/ssr/node_modules_f69e47e0._.js +0 -3
- package/.next/standalone/.next/static/chunks/130e114057a9ebcd.js +0 -1
- package/.next/standalone/.next/static/chunks/1e5b3e371cbf00f5.js +0 -1
- package/.next/standalone/.next/static/chunks/34a7894eb476b8eb.js +0 -1
- package/.next/standalone/.next/static/chunks/373d7e41b5d2192a.js +0 -1
- package/.next/standalone/.next/static/chunks/43df5d7cd8ec46ff.js +0 -1
- package/.next/standalone/.next/static/chunks/463b43ecde7acc6b.js +0 -1
- package/.next/standalone/.next/static/chunks/4b3b11e28e77c3fe.js +0 -1
- package/.next/standalone/.next/static/chunks/53af8dcc7be02445.js +0 -1
- package/.next/standalone/.next/static/chunks/558b2944268322c0.js +0 -1
- package/.next/standalone/.next/static/chunks/5f48fb5ff13515f9.js +0 -10
- package/.next/standalone/.next/static/chunks/662ee72c2b3f282f.js +0 -1
- package/.next/standalone/.next/static/chunks/72fce1376de53ff1.js +0 -1
- package/.next/standalone/.next/static/chunks/7aff5373689149f6.css +0 -1
- package/.next/standalone/.next/static/chunks/83910a2aebec21cd.js +0 -1
- package/.next/standalone/.next/static/chunks/85dc1714d62ff17c.js +0 -1
- package/.next/standalone/.next/static/chunks/880f54e2ee46369a.js +0 -1
- package/.next/standalone/.next/static/chunks/90356ff82a1a4b7b.js +0 -1
- package/.next/standalone/.next/static/chunks/91118d4316b25490.js +0 -2
- package/.next/standalone/.next/static/chunks/9190bb5077c01f1d.js +0 -1
- package/.next/standalone/.next/static/chunks/ac4d824ecef761ad.js +0 -1
- package/.next/standalone/.next/static/chunks/b7afe26e3f5150a6.js +0 -1
- package/.next/standalone/.next/static/chunks/c6fc32540074c5d9.js +0 -1
- package/.next/standalone/.next/static/chunks/ca321802d5bec89a.js +0 -1
- package/.next/standalone/.next/static/chunks/d3d4e0d0251fae88.js +0 -1
- package/.next/standalone/.next/static/chunks/d4b8cecb3e0e7d14.js +0 -1
- package/.next/standalone/.next/static/chunks/e1ca3a6b74761a34.js +0 -1
- package/.next/standalone/.next/static/chunks/f078268d4167c317.js +0 -1
- package/.next/standalone/.next/static/chunks/f3601c4fe7c72e05.js +0 -1
- package/.next/standalone/.next/static/chunks/f6bada18c43a7d59.js +0 -1
- package/.next/standalone/.next/static/chunks/f73f243ebf49bd78.js +0 -10
- package/.next/standalone/.next/static/chunks/fff45888c8c81b7a.js +0 -1
- package/.next/static/chunks/130e114057a9ebcd.js +0 -1
- package/.next/static/chunks/1e5b3e371cbf00f5.js +0 -1
- package/.next/static/chunks/34a7894eb476b8eb.js +0 -1
- package/.next/static/chunks/373d7e41b5d2192a.js +0 -1
- package/.next/static/chunks/43df5d7cd8ec46ff.js +0 -1
- package/.next/static/chunks/463b43ecde7acc6b.js +0 -1
- package/.next/static/chunks/4b3b11e28e77c3fe.js +0 -1
- package/.next/static/chunks/53af8dcc7be02445.js +0 -1
- package/.next/static/chunks/558b2944268322c0.js +0 -1
- package/.next/static/chunks/5f48fb5ff13515f9.js +0 -10
- package/.next/static/chunks/662ee72c2b3f282f.js +0 -1
- package/.next/static/chunks/72fce1376de53ff1.js +0 -1
- package/.next/static/chunks/7aff5373689149f6.css +0 -1
- package/.next/static/chunks/83910a2aebec21cd.js +0 -1
- package/.next/static/chunks/85dc1714d62ff17c.js +0 -1
- package/.next/static/chunks/880f54e2ee46369a.js +0 -1
- package/.next/static/chunks/90356ff82a1a4b7b.js +0 -1
- package/.next/static/chunks/91118d4316b25490.js +0 -2
- package/.next/static/chunks/9190bb5077c01f1d.js +0 -1
- package/.next/static/chunks/ac4d824ecef761ad.js +0 -1
- package/.next/static/chunks/b7afe26e3f5150a6.js +0 -1
- package/.next/static/chunks/c6fc32540074c5d9.js +0 -1
- package/.next/static/chunks/ca321802d5bec89a.js +0 -1
- package/.next/static/chunks/d3d4e0d0251fae88.js +0 -1
- package/.next/static/chunks/d4b8cecb3e0e7d14.js +0 -1
- package/.next/static/chunks/e1ca3a6b74761a34.js +0 -1
- package/.next/static/chunks/f078268d4167c317.js +0 -1
- package/.next/static/chunks/f3601c4fe7c72e05.js +0 -1
- package/.next/static/chunks/f6bada18c43a7d59.js +0 -1
- package/.next/static/chunks/f73f243ebf49bd78.js +0 -10
- package/.next/static/chunks/fff45888c8c81b7a.js +0 -1
- /package/.next/standalone/.next/static/{OsR67Q2lFVMHMaAqxt_js → w5kcVDBsBKgqTtNX9-Kqj}/_buildManifest.js +0 -0
- /package/.next/standalone/.next/static/{OsR67Q2lFVMHMaAqxt_js → w5kcVDBsBKgqTtNX9-Kqj}/_clientMiddlewareManifest.json +0 -0
- /package/.next/standalone/.next/static/{OsR67Q2lFVMHMaAqxt_js → w5kcVDBsBKgqTtNX9-Kqj}/_ssgManifest.js +0 -0
- /package/.next/static/{OsR67Q2lFVMHMaAqxt_js → w5kcVDBsBKgqTtNX9-Kqj}/_buildManifest.js +0 -0
- /package/.next/static/{OsR67Q2lFVMHMaAqxt_js → w5kcVDBsBKgqTtNX9-Kqj}/_clientMiddlewareManifest.json +0 -0
- /package/.next/static/{OsR67Q2lFVMHMaAqxt_js → w5kcVDBsBKgqTtNX9-Kqj}/_ssgManifest.js +0 -0
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[612636,e=>{"use strict";let t=Symbol.for("@witty-insight/user-termination-marks");function a(){let e=globalThis;return e[t]||(e[t]=new Map),e[t]}function r(e,t=Date.now()){e&&a().set(e,t)}function s(e,t){let r=function(e){if(e)return a().get(e)}(e);return void 0!==r&&r>=t}e.s(["isTaskTerminated",()=>s,"markUserTerminated",()=>r])},378673,e=>{"use strict";let t;var a=e.i(612636);let r=!Number.isFinite(t=Number(process.env.MAX_BACKGROUND_OPENCODE_TASKS))||t<=0?5:Math.max(1,Math.min(50,Math.floor(t))),s=Symbol.for("@witty-insight/background-opencode-semaphore"),n=globalThis;n[s]&&2===n[s].version||(n[s]={state:{tasks:new Map,nextId:{v:1},counters:{active:0,totalAcquired:0,totalReleased:0,totalQueuedWait:0}},version:2},console.log(`[opencode-bg-semaphore] initialized state with max=${r} (schema v2)`+(process.env.MAX_BACKGROUND_OPENCODE_TASKS?" (from MAX_BACKGROUND_OPENCODE_TASKS env)":" (default; override with MAX_BACKGROUND_OPENCODE_TASKS env)")));let i=n[s].state,o=new class{max;permits;waiters;state;constructor(e,t){this.max=e,this.waiters=[],this.permits=e,this.state=t}get active(){return this.state.counters.active}get totalAcquired(){return this.state.counters.totalAcquired}get totalReleased(){return this.state.counters.totalReleased}get totalQueuedWait(){return this.state.counters.totalQueuedWait}get tasks(){return this.state.tasks}pruneFinished(){let e=Date.now(),t=[];for(let e of this.tasks.values())("done"===e.status||"failed"===e.status)&&t.push(e);for(let a of t)null!=a.endedAt&&e-a.endedAt>3e5&&this.tasks.delete(a.id);let a=t.filter(e=>this.tasks.has(e.id)).sort((e,t)=>(e.endedAt??0)-(t.endedAt??0)),r=a.length-200;if(r>0)for(let e=0;e<r;e++)this.tasks.delete(a[e].id)}async acquire(e,t){if(t?.signal?.aborted){let e=Error("opencode slot acquire aborted by user");throw e.name="AbortError",e}this.state.counters.totalAcquired+=1;let a=`bg-${this.state.nextId.v++}`,r=Date.now(),s={id:a,status:"queued",queuedAt:r,startedAt:null,endedAt:null,taskType:e?.taskType??"unknown",user:e?.user,label:e?.label,skill:e?.skill,skillVersion:e?.skillVersion??null};return t?.displayOnly?(s.status="running",s.startedAt=r,this.tasks.set(a,s),a):(t?.silent||this.tasks.set(a,s),this.permits>0)?(this.permits-=1,this.state.counters.active+=1,s.status="running",s.startedAt=Date.now(),a):(this.state.counters.totalQueuedWait+=1,new Promise((e,r)=>{let n=()=>{this.state.counters.active+=1,s.status="running",s.startedAt=Date.now(),t?.signal&&t.signal.removeEventListener("abort",i),e(a)},i=()=>{let e=this.waiters.indexOf(n);e>=0&&this.waiters.splice(e,1),"queued"===s.status&&(s.status="failed",s.endedAt=Date.now(),s.errorMessage="aborted while waiting for slot");let t=Error("opencode slot acquire aborted by user");t.name="AbortError",r(t)};this.waiters.push(n),t?.signal&&t.signal.addEventListener("abort",i,{once:!0})}))}release(e,t,a){if(this.state.counters.totalReleased+=1,a?.displayOnly||(this.state.counters.active=Math.max(0,this.state.counters.active-1)),e){let a=this.tasks.get(e);a&&(a.endedAt=Date.now(),t?.error!==void 0?(a.status="failed",a.errorMessage=((t.error instanceof Error?t.error.message:"string"==typeof t.error?t.error:JSON.stringify(t.error))||"").slice(0,500)):a.status="done")}if(this.pruneFinished(),a?.displayOnly)return;let r=this.waiters.shift();r?r():this.permits+=1}forget(e){this.tasks.delete(e)}snapshot(){return{max:this.max,permitsLeft:this.permits,active:this.active,waiting:this.waiters.length,totalAcquired:this.totalAcquired,totalReleased:this.totalReleased,totalQueuedWait:this.totalQueuedWait}}tasksSnapshot(){return Array.from(this.tasks.values()).sort((e,t)=>t.queuedAt-e.queuedAt)}}(r,i);async function l(e,t){let r,s=t?.label||"background-task",n={taskType:t?.taskType??"unknown",user:t?.user,label:s,skill:t?.skill,skillVersion:t?.skillVersion},i={silent:t?.silent,displayOnly:t?.displayOnly,signal:t?.signal},l=Date.now(),u=await o.acquire(n,i);if((0,a.isTaskTerminated)(t?.user,l))throw o.release(u,{error:Error("aborted: user terminated")},i),Object.assign(Error("已终止:用户中止了该批次任务"),{name:"AbortError"});let c=Date.now()-l;if(c>5e3){let e=o.snapshot();console.log(`[opencode-bg-semaphore] ${s}: waited ${(c/1e3).toFixed(1)}s for slot (active=${e.active}/${e.max}, waiting=${e.waiting})`)}try{return await e()}catch(e){throw r=e,e}finally{o.release(u,{error:r},i)}}function u(){return o.snapshot()}function c(){return o.tasksSnapshot()}e.s(["getAllBackgroundOpencodeTasks",()=>c,"getBackgroundOpencodeSemaphoreSnapshot",()=>u,"withBackgroundOpencodeSlot",()=>l])},111911,e=>{"use strict";let t=Symbol.for("@witty-insight/internal-agent-tag-map"),a=globalThis;a[t]||(a[t]=new Map);let r=a[t],s=Number(process.env.INTERNAL_AGENT_TAG_TTL_MS)||36e5;function n(e,t){if(e){let a=Date.now()-s;for(let[e,t]of r)t.createdAt<a&&r.delete(e);r.set(e,{agentName:t.agentName,agentId:t.agentId??null,skill:t.skill,displayQuery:t.displayQuery,user:t.user,createdAt:Date.now()})}}function i(e){if(!e)return;let t=r.get(e);if(t)return Date.now()-t.createdAt>s?void r.delete(e):t}e.s(["getInternalAgentTag",()=>i,"tagOpencodeSession",()=>n])},826917,e=>{"use strict";let t=Symbol.for("@witty-insight/evaluation-task-manager"),a=globalThis;a[t]&&2===a[t].version||(a[t]={activeTasks:new Map,version:2});let r=a[t].activeTasks;function s(e,t,a){return`${e}::${t}::${a}`}function n(e,t,a){let n,i=s(e,t,a),o=`run_${Date.now()}_${Math.random().toString(36).slice(2,8)}`,l=r.get(i);return l?(l.status="cancelling",n=l.runId,console.log(`[EvalTask] replaced user=${e} task=${t} source=${a} oldRun=${n} newRun=${o}`)):console.log(`[EvalTask] start user=${e} task=${t} source=${a} run=${o}`),r.set(i,{user:e,taskId:t,source:a,runId:o,status:"running",startedAt:Date.now()}),{runId:o,replacedRunId:n}}function i(e,t,a="rejudge"){let n=s(e,t,a),o=r.get(n);return o&&"running"===o.status?(o.status="cancelling",console.log(`[EvalTask] cancel user=${e} task=${t} source=${a} run=${o.runId}`),{cancelled:!0,runId:o.runId}):(console.log(`[EvalTask] cancel - no active task user=${e} task=${t} source=${a}`),{cancelled:!1})}function o(e,t){return null!==function(e,t){for(let a of r.values())if(a.user===e&&a.taskId===t&&"running"===a.status)return a;return null}(e,t)}class l extends Error{constructor(e="Evaluation cancelled"){super(e),this.name="EvaluationCancelledError"}}function u(e,t,a){for(let s of r.values())if(s.user===e&&s.taskId===t&&s.runId===a){if("running"!==s.status)throw console.log(`[EvalTask] assertActive failed - status=${s.status} user=${e} task=${t} run=${a}`),new l("Evaluation cancelled");return}throw console.log(`[EvalTask] assertActive failed - no matching runId user=${e} task=${t} run=${a}`),new l("Evaluation superseded or already finished")}function c(e,t,a){for(let[s,n]of r.entries())if(n.user===e&&n.taskId===t&&n.runId===a){r.delete(s),console.log(`[EvalTask] finish user=${e} task=${t} source=${n.source} run=${a}`);return}console.log(`[EvalTask] finish - no matching runId user=${e} task=${t} run=${a} (likely already cleaned by HMR or earlier replace)`)}e.s(["EvaluationCancelledError",()=>l,"assertActive",()=>u,"cancel",()=>i,"finish",()=>c,"isActive",()=>o,"startOrReplace",()=>n])},99752,e=>{"use strict";var t=e.i(902157),a=e.i(660526),r=e.i(750227);function s(){return r.default.join(a.default.homedir(),".agent-insight")}function n(){let e=s(),n=r.default.join(a.default.homedir(),".skill-insight");return t.default.existsSync(e)?e:t.default.existsSync(n)?n:e}e.s(["getExistingInsightDir",()=>n,"getPreferredInsightDir",()=>s])},450579,e=>e.a(async(t,a)=>{try{var r=e.i(948594),s=e.i(837926),n=t([r]);function i(e){let t=String(e||"").trim();if(!t)return"";let a=new Date(t);return Number.isNaN(a.getTime())?"":a.toISOString()}function o(e,t){let a=i(e);if(!a)return!1;let r=new Date(a).getTime(),s=t instanceof Date?t.getTime():new Date(String(t||"")).getTime();return!!Number.isFinite(r)&&!!Number.isFinite(s)&&s>=r}function l(e){if(!e)return{};try{let t=JSON.parse(e);return t&&"object"==typeof t&&!Array.isArray(t)?t:{}}catch{return{}}}function u(e){return String(e||"").trim()}function c(e,t){return e.trim().toLowerCase()===t.trim().toLowerCase()}function d(e,t){let a={...l(e)};return t?a.watchedAgent=t:delete a.watchedAgent,JSON.stringify(a)}async function f(e,t){let a=String(e||"").trim(),n=Array.from(new Set(t.map(e=>u(e)).filter(Boolean))),i=new Map;if(!a||0===n.length)return i;for(let e of(await (0,r.readRecords)(a,{taskIds:n},{attachEvaluations:!1}))){let t=u(e.task_id);if(!t||i.has(t))continue;let a=!e||(0,s.isEvaluatorTraceRecord)(e)?"":u((0,s.getPrimaryExecutionAgentName)(e));a&&i.set(t,a)}return i}async function h(e,t){let a=Array.from(new Set(t.map(e=>u(e)).filter(Boolean))),r=await f(e,a),s=a.filter(e=>!r.has(e)),n=Array.from(new Set(a.map(e=>r.get(e)||"").filter(Boolean)));return{agent:1===n.length&&0===s.length&&n[0]||"",missingTaskIds:s,distinctAgents:n}}async function g(e,t){for(let e of t){let t=u(l(e.rawAnalysisJson).watchedAgent);if(t&&!(0,s.isEvaluatorAgentName)(t))return t}return(await h(e,t.map(e=>e.taskId||"").filter(Boolean))).agent}[r]=n.then?(await n)():n,e.s(["autoWatchAgentNamesMatch",()=>c,"isAutoWatchWindowMatch",()=>o,"loadTrajectoryCandidateAgentMap",()=>f,"mergeWatchedAgentIntoRawAnalysis",()=>d,"normalizeAutoWatchAgent",()=>u,"normalizeAutoWatchEnabledAt",()=>i,"resolveSingleTrajectoryCandidateAgent",()=>h,"resolveWatchedAgentForRunRows",()=>g,"safeParseAutoWatchRecord",()=>l]),a()}catch(e){a(e)}},!1),125997,e=>e.a(async(t,a)=>{try{var r=e.i(854763),s=e.i(450579),n=t([r,s]);[r,s]=n.then?(await n)():n;let o=new Set,l=new Set;async function i(e,t,a){let n=String(e||"").trim(),u=String(t||"").trim(),c=String(a||"").replace(/\/$/,"");if(!n||!u||!c)return;let d=`${n}::${u}`;if(o.has(d))return void l.add(d);o.add(d);try{let e=await r.prismaRaw.execution.findFirst({where:{taskId:u,OR:[{user:n},{user:null}]},orderBy:{timestamp:"desc"},select:{id:!0,taskId:!0,timestamp:!0,agentName:!0}});if(!e)return;let t=await r.prismaRaw.session.findUnique({where:{taskId:u},select:{endTime:!0}});if(!t?.endTime)return;let a=(await (0,s.loadTrajectoryCandidateAgentMap)(n,[u])).get(u)||"";if(!a)return;let i=await r.prismaRaw.trajectoryEvalResult.findMany({where:{user:n,rawAnalysisJson:{contains:"autoWatch"}},orderBy:{createdAt:"asc"}}),o=new Map;for(let e of i){let t=(0,s.safeParseAutoWatchRecord)(e.rawAnalysisJson);if(!0!==t.autoWatch)continue;let a=o.get(e.evaluatorRunId)||[];a.push(e),o.set(e.evaluatorRunId,a)}for(let[i,l]of o){if(0===l.length)continue;let o=await (0,s.resolveWatchedAgentForRunRows)(n,l);if(!o||!(0,s.autoWatchAgentNamesMatch)(o,a))continue;let d=(0,s.safeParseAutoWatchRecord)(l[0]?.rawAnalysisJson),f=(0,s.normalizeAutoWatchEnabledAt)(d.autoWatchEnabledAt);if(!(0,s.isAutoWatchWindowMatch)(f,t.endTime))continue;let h=l.filter(e=>{let t=(0,s.safeParseAutoWatchRecord)(e.rawAnalysisJson);return(0,s.normalizeAutoWatchAgent)(t.watchedAgent)!==o});h.length>0&&await r.prismaRaw.$transaction(h.map(e=>r.prismaRaw.trajectoryEvalResult.update({where:{id:e.id},data:{rawAnalysisJson:(0,s.mergeWatchedAgentIntoRawAnalysis)(e.rawAnalysisJson,o)}})));let g=new Set(l.map(e=>e.taskId||e.executionId||"").filter(Boolean));if(g.has(u)||g.has(e.id))continue;let w=await fetch(`${c}/api/eval/trajectory/run`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({user:n,evaluatorRunId:i,taskIds:[u],autoWatch:!0,watchedAgent:o})});if(!w.ok){let e=await w.json().catch(()=>null),t="string"==typeof e?.error?e.error:w.statusText;/already exists|no valid tasks to run/i.test(t)||console.warn(`[trajectory-auto-watch] append failed for run ${i}: ${t}`)}}}catch(e){console.error("[trajectory-auto-watch] failed:",e)}finally{o.delete(d),l.delete(d)&&i(n,u,c)}}e.s(["triggerTrajectoryAutoWatchForTask",()=>i]),a()}catch(e){a(e)}},!1),426740,e=>{"use strict";var t=e.i(902157),a=e.i(750227),r=e.i(99752);let s=a.default.join((0,r.getExistingInsightDir)(),"opencode_deleted_sessions.json");function n(){return process.env.AGENT_INSIGHT_OPENCODE_DELETED_SESSIONS||s}function i(e){return"string"==typeof e?e.trim():""}function o(e=n()){try{if(!t.default.existsSync(e))return new Set;let a=JSON.parse(t.default.readFileSync(e,"utf8")),r=Array.isArray(a)?a:a?.sessionIds;if(!Array.isArray(r))return new Set;return new Set(r.map(i).filter(Boolean))}catch{return new Set}}function l(e){let t=i(e);return!!t&&o().has(t)}function u(e){let s=e.map(i).filter(Boolean);if(0===s.length)return 0;let l=n(),u=o(l),c=u.size;for(let e of s)u.add(e);return u.size===c?0:(t.default.mkdirSync(a.default.dirname(l||a.default.join((0,r.getPreferredInsightDir)(),"placeholder")),{recursive:!0}),t.default.writeFileSync(l,JSON.stringify({sessionIds:Array.from(u).sort(),updatedAt:new Date().toISOString()},null,2)),u.size-c)}e.s(["addDeletedOpencodeSessionIds",()=>u,"isDeletedOpencodeSessionId",()=>l])}];
|
|
1
|
+
module.exports=[612636,e=>{"use strict";let t=Symbol.for("@witty-insight/user-termination-marks");function a(){let e=globalThis;return e[t]||(e[t]=new Map),e[t]}function r(e,t=Date.now()){e&&a().set(e,t)}function s(e,t){let r=function(e){if(e)return a().get(e)}(e);return void 0!==r&&r>=t}e.s(["isTaskTerminated",()=>s,"markUserTerminated",()=>r])},378673,e=>{"use strict";let t;var a=e.i(612636);let r=!Number.isFinite(t=Number(process.env.MAX_BACKGROUND_OPENCODE_TASKS))||t<=0?5:Math.max(1,Math.min(50,Math.floor(t))),s=Symbol.for("@witty-insight/background-opencode-semaphore"),n=globalThis;n[s]&&2===n[s].version||(n[s]={state:{tasks:new Map,nextId:{v:1},counters:{active:0,totalAcquired:0,totalReleased:0,totalQueuedWait:0}},version:2},console.log(`[opencode-bg-semaphore] initialized state with max=${r} (schema v2)`+(process.env.MAX_BACKGROUND_OPENCODE_TASKS?" (from MAX_BACKGROUND_OPENCODE_TASKS env)":" (default; override with MAX_BACKGROUND_OPENCODE_TASKS env)")));let i=n[s].state,o=new class{max;permits;waiters;state;constructor(e,t){this.max=e,this.waiters=[],this.permits=e,this.state=t}get active(){return this.state.counters.active}get totalAcquired(){return this.state.counters.totalAcquired}get totalReleased(){return this.state.counters.totalReleased}get totalQueuedWait(){return this.state.counters.totalQueuedWait}get tasks(){return this.state.tasks}pruneFinished(){let e=Date.now(),t=[];for(let e of this.tasks.values())("done"===e.status||"failed"===e.status)&&t.push(e);for(let a of t)null!=a.endedAt&&e-a.endedAt>3e5&&this.tasks.delete(a.id);let a=t.filter(e=>this.tasks.has(e.id)).sort((e,t)=>(e.endedAt??0)-(t.endedAt??0)),r=a.length-200;if(r>0)for(let e=0;e<r;e++)this.tasks.delete(a[e].id)}async acquire(e,t){if(t?.signal?.aborted){let e=Error("opencode slot acquire aborted by user");throw e.name="AbortError",e}this.state.counters.totalAcquired+=1;let a=`bg-${this.state.nextId.v++}`,r=Date.now(),s={id:a,status:"queued",queuedAt:r,startedAt:null,endedAt:null,taskType:e?.taskType??"unknown",user:e?.user,label:e?.label,skill:e?.skill,skillVersion:e?.skillVersion??null};return t?.displayOnly?(s.status="running",s.startedAt=r,this.tasks.set(a,s),a):(t?.silent||this.tasks.set(a,s),this.permits>0)?(this.permits-=1,this.state.counters.active+=1,s.status="running",s.startedAt=Date.now(),a):(this.state.counters.totalQueuedWait+=1,new Promise((e,r)=>{let n=()=>{this.state.counters.active+=1,s.status="running",s.startedAt=Date.now(),t?.signal&&t.signal.removeEventListener("abort",i),e(a)},i=()=>{let e=this.waiters.indexOf(n);e>=0&&this.waiters.splice(e,1),"queued"===s.status&&(s.status="failed",s.endedAt=Date.now(),s.errorMessage="aborted while waiting for slot");let t=Error("opencode slot acquire aborted by user");t.name="AbortError",r(t)};this.waiters.push(n),t?.signal&&t.signal.addEventListener("abort",i,{once:!0})}))}release(e,t,a){if(this.state.counters.totalReleased+=1,a?.displayOnly||(this.state.counters.active=Math.max(0,this.state.counters.active-1)),e){let a=this.tasks.get(e);a&&(a.endedAt=Date.now(),t?.error!==void 0?(a.status="failed",a.errorMessage=((t.error instanceof Error?t.error.message:"string"==typeof t.error?t.error:JSON.stringify(t.error))||"").slice(0,500)):a.status="done")}if(this.pruneFinished(),a?.displayOnly)return;let r=this.waiters.shift();r?r():this.permits+=1}forget(e){this.tasks.delete(e)}snapshot(){return{max:this.max,permitsLeft:this.permits,active:this.active,waiting:this.waiters.length,totalAcquired:this.totalAcquired,totalReleased:this.totalReleased,totalQueuedWait:this.totalQueuedWait}}tasksSnapshot(){return Array.from(this.tasks.values()).sort((e,t)=>t.queuedAt-e.queuedAt)}}(r,i);async function l(e,t){let r,s=t?.label||"background-task",n={taskType:t?.taskType??"unknown",user:t?.user,label:s,skill:t?.skill,skillVersion:t?.skillVersion},i={silent:t?.silent,displayOnly:t?.displayOnly,signal:t?.signal},l=Date.now(),u=await o.acquire(n,i);if((0,a.isTaskTerminated)(t?.user,l))throw o.release(u,{error:Error("aborted: user terminated")},i),Object.assign(Error("已终止:用户中止了该批次任务"),{name:"AbortError"});let c=Date.now()-l;if(c>5e3){let e=o.snapshot();console.log(`[opencode-bg-semaphore] ${s}: waited ${(c/1e3).toFixed(1)}s for slot (active=${e.active}/${e.max}, waiting=${e.waiting})`)}try{return await e()}catch(e){throw r=e,e}finally{o.release(u,{error:r},i)}}function u(){return o.snapshot()}function c(){return o.tasksSnapshot()}e.s(["getAllBackgroundOpencodeTasks",()=>c,"getBackgroundOpencodeSemaphoreSnapshot",()=>u,"withBackgroundOpencodeSlot",()=>l])},111911,e=>{"use strict";let t=Symbol.for("@witty-insight/internal-agent-tag-map"),a=globalThis;a[t]||(a[t]=new Map);let r=a[t],s=Number(process.env.INTERNAL_AGENT_TAG_TTL_MS)||36e5;function n(e,t){if(e){let a=Date.now()-s;for(let[e,t]of r)t.createdAt<a&&r.delete(e);r.set(e,{agentName:t.agentName,agentId:t.agentId??null,skill:t.skill,displayQuery:t.displayQuery,user:t.user,createdAt:Date.now()})}}function i(e){if(!e)return;let t=r.get(e);if(t)return Date.now()-t.createdAt>s?void r.delete(e):t}e.s(["getInternalAgentTag",()=>i,"tagOpencodeSession",()=>n])},99752,e=>{"use strict";var t=e.i(902157),a=e.i(660526),r=e.i(750227);function s(){return r.default.join(a.default.homedir(),".agent-insight")}function n(){let e=s(),n=r.default.join(a.default.homedir(),".skill-insight");return t.default.existsSync(e)?e:t.default.existsSync(n)?n:e}e.s(["getExistingInsightDir",()=>n,"getPreferredInsightDir",()=>s])},826917,e=>{"use strict";let t=Symbol.for("@witty-insight/evaluation-task-manager"),a=globalThis;a[t]&&2===a[t].version||(a[t]={activeTasks:new Map,version:2});let r=a[t].activeTasks;function s(e,t,a){return`${e}::${t}::${a}`}function n(e,t,a){let n,i=s(e,t,a),o=`run_${Date.now()}_${Math.random().toString(36).slice(2,8)}`,l=r.get(i);return l?(l.status="cancelling",n=l.runId,console.log(`[EvalTask] replaced user=${e} task=${t} source=${a} oldRun=${n} newRun=${o}`)):console.log(`[EvalTask] start user=${e} task=${t} source=${a} run=${o}`),r.set(i,{user:e,taskId:t,source:a,runId:o,status:"running",startedAt:Date.now()}),{runId:o,replacedRunId:n}}function i(e,t,a="rejudge"){let n=s(e,t,a),o=r.get(n);return o&&"running"===o.status?(o.status="cancelling",console.log(`[EvalTask] cancel user=${e} task=${t} source=${a} run=${o.runId}`),{cancelled:!0,runId:o.runId}):(console.log(`[EvalTask] cancel - no active task user=${e} task=${t} source=${a}`),{cancelled:!1})}function o(e,t){return null!==function(e,t){for(let a of r.values())if(a.user===e&&a.taskId===t&&"running"===a.status)return a;return null}(e,t)}class l extends Error{constructor(e="Evaluation cancelled"){super(e),this.name="EvaluationCancelledError"}}function u(e,t,a){for(let s of r.values())if(s.user===e&&s.taskId===t&&s.runId===a){if("running"!==s.status)throw console.log(`[EvalTask] assertActive failed - status=${s.status} user=${e} task=${t} run=${a}`),new l("Evaluation cancelled");return}throw console.log(`[EvalTask] assertActive failed - no matching runId user=${e} task=${t} run=${a}`),new l("Evaluation superseded or already finished")}function c(e,t,a){for(let[s,n]of r.entries())if(n.user===e&&n.taskId===t&&n.runId===a){r.delete(s),console.log(`[EvalTask] finish user=${e} task=${t} source=${n.source} run=${a}`);return}console.log(`[EvalTask] finish - no matching runId user=${e} task=${t} run=${a} (likely already cleaned by HMR or earlier replace)`)}e.s(["EvaluationCancelledError",()=>l,"assertActive",()=>u,"cancel",()=>i,"finish",()=>c,"isActive",()=>o,"startOrReplace",()=>n])},450579,e=>e.a(async(t,a)=>{try{var r=e.i(948594),s=e.i(837926),n=t([r]);function i(e){let t=String(e||"").trim();if(!t)return"";let a=new Date(t);return Number.isNaN(a.getTime())?"":a.toISOString()}function o(e,t){let a=i(e);if(!a)return!1;let r=new Date(a).getTime(),s=t instanceof Date?t.getTime():new Date(String(t||"")).getTime();return!!Number.isFinite(r)&&!!Number.isFinite(s)&&s>=r}function l(e){if(!e)return{};try{let t=JSON.parse(e);return t&&"object"==typeof t&&!Array.isArray(t)?t:{}}catch{return{}}}function u(e){return String(e||"").trim()}function c(e,t){return e.trim().toLowerCase()===t.trim().toLowerCase()}function d(e,t){let a={...l(e)};return t?a.watchedAgent=t:delete a.watchedAgent,JSON.stringify(a)}async function f(e,t){let a=String(e||"").trim(),n=Array.from(new Set(t.map(e=>u(e)).filter(Boolean))),i=new Map;if(!a||0===n.length)return i;for(let e of(await (0,r.readRecords)(a,{taskIds:n},{attachEvaluations:!1}))){let t=u(e.task_id);if(!t||i.has(t))continue;let a=!e||(0,s.isEvaluatorTraceRecord)(e)?"":u((0,s.getPrimaryExecutionAgentName)(e));a&&i.set(t,a)}return i}async function h(e,t){let a=Array.from(new Set(t.map(e=>u(e)).filter(Boolean))),r=await f(e,a),s=a.filter(e=>!r.has(e)),n=Array.from(new Set(a.map(e=>r.get(e)||"").filter(Boolean)));return{agent:1===n.length&&0===s.length&&n[0]||"",missingTaskIds:s,distinctAgents:n}}async function g(e,t){for(let e of t){let t=u(l(e.rawAnalysisJson).watchedAgent);if(t&&!(0,s.isEvaluatorAgentName)(t))return t}return(await h(e,t.map(e=>e.taskId||"").filter(Boolean))).agent}[r]=n.then?(await n)():n,e.s(["autoWatchAgentNamesMatch",()=>c,"isAutoWatchWindowMatch",()=>o,"loadTrajectoryCandidateAgentMap",()=>f,"mergeWatchedAgentIntoRawAnalysis",()=>d,"normalizeAutoWatchAgent",()=>u,"normalizeAutoWatchEnabledAt",()=>i,"resolveSingleTrajectoryCandidateAgent",()=>h,"resolveWatchedAgentForRunRows",()=>g,"safeParseAutoWatchRecord",()=>l]),a()}catch(e){a(e)}},!1),125997,e=>e.a(async(t,a)=>{try{var r=e.i(854763),s=e.i(450579),n=t([r,s]);[r,s]=n.then?(await n)():n;let o=new Set,l=new Set;async function i(e,t,a){let n=String(e||"").trim(),u=String(t||"").trim(),c=String(a||"").replace(/\/$/,"");if(!n||!u||!c)return;let d=`${n}::${u}`;if(o.has(d))return void l.add(d);o.add(d);try{let e=await r.prismaRaw.execution.findFirst({where:{taskId:u,OR:[{user:n},{user:null}]},orderBy:{timestamp:"desc"},select:{id:!0,taskId:!0,timestamp:!0,agentName:!0}});if(!e)return;let t=await r.prismaRaw.session.findUnique({where:{taskId:u},select:{endTime:!0}});if(!t?.endTime)return;let a=(await (0,s.loadTrajectoryCandidateAgentMap)(n,[u])).get(u)||"";if(!a)return;let i=await r.prismaRaw.trajectoryEvalResult.findMany({where:{user:n,rawAnalysisJson:{contains:"autoWatch"}},orderBy:{createdAt:"asc"}}),o=new Map;for(let e of i){let t=(0,s.safeParseAutoWatchRecord)(e.rawAnalysisJson);if(!0!==t.autoWatch)continue;let a=o.get(e.evaluatorRunId)||[];a.push(e),o.set(e.evaluatorRunId,a)}for(let[i,l]of o){if(0===l.length)continue;let o=await (0,s.resolveWatchedAgentForRunRows)(n,l);if(!o||!(0,s.autoWatchAgentNamesMatch)(o,a))continue;let d=(0,s.safeParseAutoWatchRecord)(l[0]?.rawAnalysisJson),f=(0,s.normalizeAutoWatchEnabledAt)(d.autoWatchEnabledAt);if(!(0,s.isAutoWatchWindowMatch)(f,t.endTime))continue;let h=l.filter(e=>{let t=(0,s.safeParseAutoWatchRecord)(e.rawAnalysisJson);return(0,s.normalizeAutoWatchAgent)(t.watchedAgent)!==o});h.length>0&&await r.prismaRaw.$transaction(h.map(e=>r.prismaRaw.trajectoryEvalResult.update({where:{id:e.id},data:{rawAnalysisJson:(0,s.mergeWatchedAgentIntoRawAnalysis)(e.rawAnalysisJson,o)}})));let g=new Set(l.map(e=>e.taskId||e.executionId||"").filter(Boolean));if(g.has(u)||g.has(e.id))continue;let w=await fetch(`${c}/api/eval/trajectory/run`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({user:n,evaluatorRunId:i,taskIds:[u],autoWatch:!0,watchedAgent:o})});if(!w.ok){let e=await w.json().catch(()=>null),t="string"==typeof e?.error?e.error:w.statusText;/already exists|no valid tasks to run/i.test(t)||console.warn(`[trajectory-auto-watch] append failed for run ${i}: ${t}`)}}}catch(e){console.error("[trajectory-auto-watch] failed:",e)}finally{o.delete(d),l.delete(d)&&i(n,u,c)}}e.s(["triggerTrajectoryAutoWatchForTask",()=>i]),a()}catch(e){a(e)}},!1),426740,e=>{"use strict";var t=e.i(902157),a=e.i(750227),r=e.i(99752);let s=a.default.join((0,r.getExistingInsightDir)(),"opencode_deleted_sessions.json");function n(){return process.env.AGENT_INSIGHT_OPENCODE_DELETED_SESSIONS||s}function i(e){return"string"==typeof e?e.trim():""}function o(e=n()){try{if(!t.default.existsSync(e))return new Set;let a=JSON.parse(t.default.readFileSync(e,"utf8")),r=Array.isArray(a)?a:a?.sessionIds;if(!Array.isArray(r))return new Set;return new Set(r.map(i).filter(Boolean))}catch{return new Set}}function l(e){let t=i(e);return!!t&&o().has(t)}function u(e){let s=e.map(i).filter(Boolean);if(0===s.length)return 0;let l=n(),u=o(l),c=u.size;for(let e of s)u.add(e);return u.size===c?0:(t.default.mkdirSync(a.default.dirname(l||a.default.join((0,r.getPreferredInsightDir)(),"placeholder")),{recursive:!0}),t.default.writeFileSync(l,JSON.stringify({sessionIds:Array.from(u).sort(),updatedAt:new Date().toISOString()},null,2)),u.size-c)}e.s(["addDeletedOpencodeSessionIds",()=>u,"isDeletedOpencodeSessionId",()=>l])}];
|
|
2
2
|
|
|
3
|
-
//# sourceMappingURL=
|
|
3
|
+
//# sourceMappingURL=src_08719fbb._.js.map
|
|
@@ -239,12 +239,12 @@ ${t}
|
|
|
239
239
|
${e}
|
|
240
240
|
|
|
241
241
|
**请提取最终结果:**
|
|
242
|
-
`}e.s(["EXTRACTION_PROMPT",0,t,"generateExtractionPrompt",()=>n])},307692,e=>e.a(async(t,n)=>{try{var i=e.i(522734);e.i(889228);var s=e.i(88045),o=e.i(814747),r=e.i(
|
|
243
|
-
[SkillAnalysis API Error 🚨] LLM content is empty for item: ${e.id}`),console.error(">>> Full LLM Response:"),console.error(JSON.stringify(r,null,2)),console.error("<<<\n");continue}
|
|
242
|
+
`}e.s(["EXTRACTION_PROMPT",0,t,"generateExtractionPrompt",()=>n])},307692,e=>e.a(async(t,n)=>{try{var i=e.i(522734);e.i(889228);var s=e.i(88045),o=e.i(814747),r=e.i(547499),l=e.i(637351),a=e.i(106411),c=e.i(596767),u=e.i(738282),f=t([a]);[a]=f.then?(await f)():f;let A=(0,r.resolveAgentInsightDataPath)("model_debug.jsonl"),w={temperature:0,top_p:1,seed:42};function h(e,t,n){try{let s=o.default.dirname(A);i.default.existsSync(s)||i.default.mkdirSync(s,{recursive:!0});let r={timestamp:new Date().toISOString(),stage:e,input:t,output:n};i.default.appendFileSync(A,JSON.stringify(r)+"\n")}catch(e){console.error("Log error",e)}}async function d(e){let t=await (0,a.getActiveConfig)(e);if(!t)return{client:null,model:null};let n=t.apiKey||"no-api-key-required",i=t.baseUrl||"https://api.deepseek.com",{customFetch:o}=(0,l.getProxyConfig)();return{client:new s.OpenAI({apiKey:n,baseURL:i,fetch:o}),model:t.model||"deepseek-chat"}}async function g(e,t){let n,i=(n=Number(process.env.JUDGMENT_TIMEOUT_MS||3e5),!Number.isFinite(n)||n<=0?3e5:n),s=new AbortController,o=setTimeout(()=>s.abort(),i);try{return await e({signal:s.signal,timeout:i})}catch(e){if(s.signal.aborted)throw Error(`${t} timeout after ${i}ms`);throw e}finally{clearTimeout(o)}}async function p(t,n,i,s,o){let{client:r,model:l}=await d(s);if(!r||!r.apiKey)return console.warn("LLM Evaluation disabled or missing config. Skipping."),{is_correct:!1,score:0,reason:"请在首页左上角的设置中配置 LLM"};try{let s=n.root_causes||[],a=n.key_actions||[],c=s.map((e,t)=>({id:`RC-${t}`,...e})),u=a.map((e,t)=>({id:`KA-${t}`,...e})),{generateJudgePrompt:f}=e.r(862414),d=[];if(c.length>0){let e=f(t,i,c,[],n.skill_definition,"root_causes"),s=await g(t=>r.chat.completions.create({messages:[{role:"user",content:e}],model:l,...w},t),"RC Judgment API");console.log(`[Judge API Debug] RC Model: ${l}. Received response choices:`,s?.choices?.length);let o=s.choices?.[0]?.message?.content;if(h("rc_evaluation",{prompt:e},{raw_output:o}),o){let e=o.trim(),t=e.match(/```(?:json)?\s*([\s\S]*?)\s*```/i);if(t)e=t[1];else{let t=e.indexOf("{"),n=e.lastIndexOf("}");-1!==t&&-1!==n&&n>=t&&(e=e.substring(t,n+1))}try{let t=JSON.parse(e);d.push(...t.evaluations||[])}catch(e){console.warn("[Judge] Failed to parse RC result:",e)}}}if(u.length>0){let e=o&&o.length>0?o.map((e,t)=>`步骤${t+1}: [${e.type}] ${e.name} - ${e.description}`).join("\n"):null,s=f(t,e||i,[],u,n.skill_definition,"key_actions",e||null),a=await g(e=>r.chat.completions.create({messages:[{role:"user",content:s}],model:l,...w},e),"KA Judgment API");console.log(`[Judge API Debug] KA Model: ${l}. Received response choices:`,a?.choices?.length);let c=a.choices?.[0]?.message?.content;if(h("ka_evaluation",{prompt:s},{raw_output:c}),c){let e=c.trim(),t=e.match(/```(?:json)?\s*([\s\S]*?)\s*```/i);if(t)e=t[1];else{let t=e.indexOf("{"),n=e.lastIndexOf("}");-1!==t&&-1!==n&&n>=t&&(e=e.substring(t,n+1))}try{let t=JSON.parse(e);d.push(...t.evaluations||[])}catch(e){console.warn("[Judge] Failed to parse KA result:",e)}}}let p=0,m=0,y=[];c.forEach(e=>{let t=d.find(t=>t.id===e.id),n=t?Math.max(0,Math.min(1,Number(t.match_score))):0,i=t?.explanation||"未找到评分结果";p+=n*e.weight,m+=e.weight,y.push(`1. **Root Cause** [${e.content.replace(/\n/g," ")}]: ${(100*n).toFixed(0)}% match. ${i} (Weight: ${e.weight})`)});let S=new Map,$=[];for(let e of u){let t=e.groupId,n=e.controlFlowType||"required";"conditional"===n&&t?(S.has(t)||S.set(t,[]),S.get(t).push(e)):$.push(e)}for(let[e,t]of S){let e=t.map(e=>{let t=d.find(t=>t.id===e.id),n=t?Math.max(0,Math.min(1,Number(t.match_score))):0,i=t?.explanation||"未找到评分结果";return{ka:e,ev:t,match:n,explanation:i}}),n=e.find(e=>e.match>0||!e.explanation.includes("此分支未触发"));if(n){let{ka:t,ev:i,match:s,explanation:o}=n,r=t.branchLabel||"";for(let i of(p+=s*t.weight,m+=t.weight,y.push(`2. **Key Action** [${t.content.replace(/\n/g," ")}] (条件分支${r?" - "+r:""}): ${(100*s).toFixed(0)}% match. ${o} (Weight: ${t.weight})`),e))i.ka.id!==n.ka.id&&y.push(`2. **Key Action** [${i.ka.content.replace(/\n/g," ")}] (条件分支${i.ka.branchLabel?" - "+i.ka.branchLabel:""}): ${(100*i.match).toFixed(0)}% match. ${i.explanation} (该分支未触发,不计入总分)`)}else{let{ka:t,ev:n,match:i,explanation:s}=e[0],o=t.branchLabel||"";p+=0*t.weight,m+=t.weight,y.push(`2. **Key Action** [${t.content.replace(/\n/g," ")}] (条件分支${o?" - "+o:""}): ${(100*i).toFixed(0)}% match. ${s} (所有分支均未触发,Weight: ${t.weight})`);for(let t=1;t<e.length;t++){let n=e[t];y.push(`2. **Key Action** [${n.ka.content.replace(/\n/g," ")}] (条件分支${n.ka.branchLabel?" - "+n.ka.branchLabel:""}): ${(100*n.match).toFixed(0)}% match. ${n.explanation} (该分支未触发,不计入总分)`)}}}$.forEach(e=>{let t=d.find(t=>t.id===e.id),n=t?Math.max(0,Math.min(1,Number(t.match_score))):0,i=t?.explanation||"未找到评分结果",s=e.controlFlowType||"required";if("optional"===s)return void y.push(`2. **Key Action** [${e.content.replace(/\n/g," ")}] (可选): ${(100*n).toFixed(0)}% match. ${i} (Weight: 0, 不扣分)`);if("handoff"===s){p+=n*e.weight,m+=e.weight,y.push(`2. **Key Action** [${e.content.replace(/\n/g," ")}] (衔接): ${(100*n).toFixed(0)}% match. ${i} (Weight: ${e.weight})`);return}if("loop"===s){let t=e.loopCondition||"",s=e.expectedMinCount,o=e.expectedMaxCount;p+=n*e.weight,m+=e.weight,y.push(`2. **Key Action** [${e.content.replace(/\n/g," ")}] (循环${t?" - "+t:""}): ${(100*n).toFixed(0)}% match. ${i} (Weight: ${e.weight}, 预期次数: ${s??"?"}~${o??"?"})`);return}p+=n*e.weight,m+=e.weight,y.push(`2. **Key Action** [${e.content.replace(/\n/g," ")}]: ${(100*n).toFixed(0)}% match. ${i} (Weight: ${e.weight})`)});let k=0;k=m>0?p/m:0;let A=y.map(e=>{let t=e.match(/(\d+)% match/),n=e.match(/\(Weight: ([\d\.]+)\)/);if(t&&n){let e=(parseInt(t[1])/100).toFixed(1),i=parseFloat(n[1]).toFixed(1);return`${e}*${i}`}return null}).filter(e=>e).join(" + "),b=y.map(e=>{let t=e.match(/\(Weight: ([\d\.]+)\)/);return t?parseFloat(t[1]).toFixed(1):null}).filter(e=>e).join(" + "),_=`**Calculation**: (${A}) / (${b}) = ${p.toFixed(2)} / ${m.toFixed(2)} = ${k.toFixed(2)}`;y.push("",_);let x=y.join("\n");return{is_correct:k>=.8,score:k,reason:x}}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"}}}async function m(t,n,i,s,o,r){console.log("[ItemAttribution] Starting analysis...");let{client:l,model:a}=await d(r);if(!l||!t||!n)return console.warn(`[ItemAttribution] ✗ Early return: client=${l?"present":"absent"}, skillDef=${t?"present":"absent"}, judgmentReason=${n?"present":"absent"}`),[];let c=function(e){let t=[];if(!e)return t;let n=e.split("\n"),i={rc:0,ka:0};for(let e of n){let n=e.match(/\*\*Root Cause\*\*\s*\[(.*?)\]\s*.*?:\s*(\d+)%\s*match\.\s*(.+?)\s*\(Weight:\s*([\d.]+)\)/);if(n){t.push({id:`RC-${i.rc++}`,type:"root_cause",content:n[1].replace(/\.{3}$/,""),match_score:parseInt(n[2])/100,explanation:n[3].trim(),weight:parseFloat(n[4])});continue}let s=e.match(/\*\*Key Action\*\*\s*\[(.*?)\]\s*.*?:\s*(\d+)%\s*match\.\s*(.+?)\s*\(Weight:\s*([\d.]+)\)/);s&&t.push({id:`KA-${i.ka++}`,type:"key_action",content:s[1].replace(/\.{3}$/,""),match_score:parseInt(s[2])/100,explanation:s[3].trim(),weight:parseFloat(s[4])})}return t}(n);console.log(`[ItemAttribution] Parsed ${c.length} evaluation items from judgment reason`);let u=c.filter(e=>e.match_score<1);if(console.log(`[ItemAttribution] ${u.length} items need analysis (score < 100%)`),0===u.length)return console.log(`[ItemAttribution] ✗ No imperfect items found, returning empty array`),[];let{generateSkillIssuePrompt:f}=e.r(833526),p=[];for(let e of u)try{let n=f(t,e,i,s,o),r=await g(e=>l.chat.completions.create({messages:[{role:"user",content:n}],model:a,...w},e),"Skill issue analysis API"),c=r.choices?.[0]?.message?.content;if(!c){console.error(`
|
|
243
|
+
[SkillAnalysis API Error 🚨] LLM content is empty for item: ${e.id}`),console.error(">>> Full LLM Response:"),console.error(JSON.stringify(r,null,2)),console.error("<<<\n");continue}h("skill_issue_analysis",{item_id:e.id,prompt:n},{raw_output:c});let u=c.trim(),d=u.match(/```(?:json)?\\s*([\\s\\S]*?)\\s*```/i);if(d)u=d[1];else{let e=u.indexOf("{"),t=u.lastIndexOf("}");-1!==e&&-1!==t&&t>=e&&(u=u.substring(e,t+1))}let m=JSON.parse(u);!0===m.is_skill_issue?(p.push({...e,is_skill_issue:!0,reasoning:m.reasoning??"",improvement_suggestion:m.improvement_suggestion}),console.log(`[SkillAnalysis] ${e.id}: IS Skill Issue - ${m.reasoning?.substring(0,50)}...`)):console.log(`[SkillAnalysis] ${e.id}: NOT Skill Issue - ${m.reasoning?.substring(0,50)}...`)}catch(t){console.error(`[SkillAnalysis] Error analyzing ${e.id}:`,t.message),h("skill_issue_analysis_error",{item_id:e.id},{error:t.message})}return p}async function y(t,n,i,s,o,r,l,a){let u=$(t),f=(0,c.buildFaultPathSteps)(t,"zh");if(!u||0===u.length)return{failures:[]};try{let{client:t,model:p}=await d(a);if(!t||!t.apiKey)return console.warn("LLM Analysis disabled. Skipping."),{failures:[],skill_issues:[]};let y="",S=u[u.length-1];(S.requestMessages||[]).forEach(e=>{let t="";"string"==typeof e.content?t=e.content:Array.isArray(e.content)&&(t=JSON.stringify(e.content)),y+=`[${(e.role||"UNKNOWN").toUpperCase()}]: ${t}
|
|
244
244
|
`});let $=S.responseMessage;if($){let e="";"string"==typeof $.content?e=$.content:Array.isArray($.content)&&(e=JSON.stringify($.content)),y+=`[ASSISTANT]: ${e}
|
|
245
245
|
`}else S.debug_raw_stream&&(y+=`[SYSTEM/TOOL OUTPUTS]: (Check raw logs for full details)
|
|
246
|
-
`);let{generateFailureAnalysisPrompt:k}=e.r(944087),
|
|
246
|
+
`);let{generateFailureAnalysisPrompt:k}=e.r(944087),A=f.map(c.formatFaultPathStepForPrompt).join("\n"),b=k(y,A),_=await g(e=>t.chat.completions.create({messages:[{role:"user",content:b}],model:p,...w},e),"Failure analysis API"),x=_.choices?.[0]?.message?.content;if(!x)return console.error("\n[Failure Analysis API Error 🚨] LLM content is empty!"),console.error(">>> Full LLM Response:"),console.error(JSON.stringify(_,null,2)),console.error("<<<\n"),{failures:[]};h("failure_analysis",{prompt:b,history_length:y.length},{raw_output:x});let v=x.trim(),N=v.match(/```(?:json)?\\s*([\\s\\S]*?)\\s*```/i);if(N)v=N[1];else{let e=v.indexOf("{"),t=v.lastIndexOf("}");-1!==e&&-1!==t&&t>=e&&(v=v.substring(e,t+1))}let I=JSON.parse(v),M=(0,c.attachFailureAnchors)(I.failures||[],f,"zh"),C=[];if(console.log(`[SkillAnalysis] Checking: skillName=${n||"none"}, skillDef=${i?"present":"absent"}, failuresCount=${M.length}, answerScore=${s}`),n&&i){console.log(`[SkillAnalysis] ✓ Skill name and definition found`);let e=l||"(见交互历史)",t=r||"(未知)";console.log(`[SkillAnalysis] Conditions check: answerScore=${s}, judgmentReason=${o?"present":"absent"}, history=${y?"present":"absent"}`),void 0!==s&&s<1&&o&&y?(console.log(`[SkillAnalysis] ✓ All conditions met. Score is imperfect (${s}). Analyzing which items are Skill issues...`),console.log(`[SkillAnalysis] Using: query=${t.substring(0,50)}..., answer=${e.substring(0,50)}..., history_len=${y.length}`),C=await m(i,o,t,e,y,a),console.log(`[SkillAnalysis] Analysis complete: ${C.length} items identified as Skill issues`)):void 0!==s&&s>=1?console.log(`[SkillAnalysis] ✗ Skipped: Perfect score (${s}). No Skill analysis needed.`):console.log(`[SkillAnalysis] ✗ Skipped: Conditions not met - answerScore=${s}, judgmentReason=${o?"present":"absent"}, history=${y?"present":"absent"}`)}else console.warn(`[SkillAnalysis] ✗ Skipped: Missing skillName (${n||"none"}) or skillDef (${i?"present":"absent"})`);return{failures:M,skill_issues:C.length>0?C:void 0}}catch(e){return console.error("Failure Analysis Error:",e),{failures:[]}}}function S(e){if(!e||"string"!=typeof e)return!1;try{let t=JSON.parse(e);if(t&&"object"==typeof t)return!0}catch(e){}return!1}function $(e){return(0,u.normalizeInteractions)(e)}async function k(t,n){let i=$(t);if(!i||0===i.length)return{query:"",skill:"",final_result:""};let s="",o="",r="";for(let e of i){let t=(e.requestMessages||[]).find(e=>"user"===e.role);if(t){let e="";if("string"==typeof t.content)e=t.content;else if(Array.isArray(t.content)){let n=t.content.filter(e=>"text"===e.type&&!e.text.trim().startsWith("<system-reminder>")&&!e.text.includes("[SUGGESTION MODE:"));n.length>0&&(e=n.map(e=>e.text).join("\n").trim())}if(e){let t=(e=e.replace(/<EXTRA_INFO>[\s\S]*?<\/EXTRA_INFO>/g,"")).trim();if("count"===t||"ping"===t||t.startsWith("Please write a 5-10 word title")||"hi"===t||"hello"===t&&i.length>2)continue;if(s||(s=t),s)break}}}for(let e=i.length-1;e>=0;e--){let t=i[e];if((t.requestMessages||[]).some(e=>"string"==typeof e.content?e.content.includes("[SUGGESTION MODE:"):!!Array.isArray(e.content)&&e.content.some(e=>e.text&&e.text.includes("[SUGGESTION MODE:"))))continue;let n=t.responseMessage,s="";if(n&&n.content&&"string"==typeof n.content)s=n.content;else if(n&&Array.isArray(n.content)){let e=n.content.find(e=>"text"===e.type);e&&(s=e.text)}if((!s||""===s.trim())&&t.debug_raw_stream)try{let e="";for(let n of t.debug_raw_stream)n.choices&&n.choices[0]&&n.choices[0].delta&&n.choices[0].delta.content&&(e+=n.choices[0].delta.content),"content_block_delta"===n.type&&n.delta&&"text_delta"===n.delta.type&&(e+=n.delta.text);e&&(s=e)}catch(e){}let r=[];if(t.requestMessages&&t.requestMessages.length>0)for(let e=t.requestMessages.length-1;e>=0;e--){let n=t.requestMessages[e];if("assistant"===n.role){let e="";if("string"==typeof n.content)e=n.content;else if(Array.isArray(n.content)){let t=n.content.find(e=>"text"===e.type);t&&(e=t.text)}if(e&&e.trim()){let t=e.trim();if(!S(t)&&(r.unshift(t),t.startsWith("#")||t.startsWith("##")||t.startsWith("###")))break}else break}else break}if(s&&s.trim()){let e=s.trim();!S(e)&&(r.push(e),e.startsWith("#")||e.startsWith("##")||e.startsWith("###"))}if(r.length>0){o=r.join("\n\n");break}}let l=new Set,a="";for(let e of i){(e.requestMessages||[]).forEach(e=>{"string"==typeof e.content?a+=e.content+"\n":Array.isArray(e.content)&&e.content.forEach(e=>{"text"===e.type&&(a+=e.text+"\n")})});let t=e.responseMessage;t&&("string"==typeof t.content?a+=t.content+"\n":Array.isArray(t.content)&&t.content.forEach(e=>{"text"===e.type&&(a+=e.text+"\n")}),t.tool_calls&&Array.isArray(t.tool_calls)&&t.tool_calls.forEach(e=>{let t=e.function?.name??e.name;if(t)if("skill"===t||"load_skill"===t)try{let t=e.function?.arguments??e.arguments,n="string"==typeof t?JSON.parse(t):t,i=n?.name??n?.skill_name??n?.skillName??n?.skill;i&&l.add(i)}catch(e){}else l.add(t)}),t.function_call&&t.function_call.name&&l.add(t.function_call.name))}let c=a.match(/(?:Loading skill|Load skill)[:\s]+([a-zA-Z0-9_\-\.]+)/i);c&&c[1]&&l.add(c[1].trim());let u=a.match(/Skill\s+([a-zA-Z0-9_\-\.]+)\s+loaded/i);u&&u[1]&&l.add(u[1].trim()),l.size>0&&(r=Array.from(l).join(", ")),console.log(`[Rule-Based Analysis] Query: ${s.substring(0,20)}..., Skill: ${r}, Result Length: ${o.length}`),h("extraction",{messages_summary:`Total ${i.length} interactions`,notes:"Scanned full history"},{query:s,skill:r,final_result:o});let f="";try{let{client:t,model:s}=await d(n);if(t&&t.apiKey){let n="";i.forEach(e=>{(e.requestMessages||[]).forEach(e=>{let t="";if("string"==typeof e.content)t=e.content;else if(Array.isArray(e.content)){let n=e.content.find(e=>"text"===e.type);n&&(t=n.text)}n+=`[${(e.role||"UNKNOWN").toUpperCase()}]: ${t}
|
|
247
247
|
`});let t=e.responseMessage;if(t){let e="";if("string"==typeof t.content)e=t.content;else if(Array.isArray(t.content)){let n=t.content.find(e=>"text"===e.type);n&&(e=n.text)}n+=`[ASSISTANT]: ${e}
|
|
248
|
-
`}});let{generateExtractionPrompt:o}=e.r(318868),r=o(n),l=(await
|
|
248
|
+
`}});let{generateExtractionPrompt:o}=e.r(318868),r=o(n),l=(await g(e=>t.chat.completions.create({messages:[{role:"user",content:r}],model:s,...w},e),"Session extraction API")).choices[0].message.content;l&&(f=l.trim(),h("result_extraction_llm",{history_length:n.length},{extracted:f}))}}catch(e){console.error("LLM Extraction Failed",e)}return f&&f.length>20?(console.log(`[Judge] LLM extraction preferred (Length: ${f.length} vs Rule: ${o.length})`),o=f):o&&console.log(`[Judge] Rule-Based extraction used (Length: ${o.length})`),{query:s,skill:r,final_result:o}}e.s(["analyzeFailures",()=>y,"analyzeSession",()=>k,"judgeAnswer",()=>p,"normalizeInteractions",()=>$]),n()}catch(e){n(e)}},!1)];
|
|
249
249
|
|
|
250
250
|
//# sourceMappingURL=src_34fb142e._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[397998,e=>{"use strict";async function s(){{let{setupNodeRuntime:s}=await e.A(888304);await s()}}e.s(["register",()=>s])},888304,e=>{e.v(s=>Promise.all(["server/chunks/[root-of-the-server]
|
|
1
|
+
module.exports=[397998,e=>{"use strict";async function s(){{let{setupNodeRuntime:s}=await e.A(888304);await s()}}e.s(["register",()=>s])},888304,e=>{e.v(s=>Promise.all(["server/chunks/[root-of-the-server]__6fe0c73e._.js"].map(s=>e.l(s))).then(()=>s(544112)))}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=src_4fe54147._.js.map
|
|
@@ -296,6 +296,6 @@ ${e}
|
|
|
296
296
|
1. matches 数组必须包含每个步骤的记录,不能遗漏
|
|
297
297
|
2. actualStepIndex 使用步骤的 dialogStartIndex
|
|
298
298
|
3. type 保持与原步骤一致
|
|
299
|
-
`}e.s(["generateDynamicOnlyMatchPrompt",()=>r,"generateExecutionMatchPrompt",()=>a,"generateFlowParsePrompt",()=>t,"generateStepExtractPrompt",()=>n])},8129,e=>e.a(async(t,n)=>{try{e.i(889228);var a=e.i(88045),r=e.i(637351),s=e.i(106411),l=e.i(854763),o=e.i(317309),i=e.i(286372),p=e.i(522734),d=e.i(814747),u=t([s,l]);[s,l]=u.then?(await u)():u;let R=d.default.join(process.cwd(),"data","flow_debug.jsonl");function c(e,t,n){try{let a=d.default.dirname(R);p.default.existsSync(a)||p.default.mkdirSync(a,{recursive:!0});let r={timestamp:new Date().toISOString(),stage:e,input:t,output:n};p.default.appendFileSync(R,JSON.stringify(r)+"\n")}catch(e){console.error("Log error",e)}}async function f(e){let t=await (0,s.getActiveConfig)(e);if(!t)return{client:null,model:null};let n=t.apiKey;if(!n)return{client:null,model:null};let l=t.baseUrl||"https://api.deepseek.com",{customFetch:o}=(0,r.getProxyConfig)();return{client:new a.OpenAI({apiKey:n,baseURL:l,fetch:o}),model:t.model||"deepseek-chat"}}async function m(e,t,n,a){let{client:r,model:s}=await f(a);if(!r||!r.apiKey)return{success:!1,error:"请在首页左上角的设置中配置 LLM"};if(!e||0===e.trim().length)return{success:!1,error:"Skill 内容为空"};try{await l.db.upsertParsedFlow({skillId:t,version:n,user:a||null,flowJson:"",mermaidCode:""});let i=(0,o.generateFlowParsePrompt)(e),p=await r.chat.completions.create({messages:[{role:"user",content:i}],model:s,temperature:.3}),d=p.choices?.[0]?.message?.content;if(!d)return{success:!1,error:"LLM 返回内容为空"};c("flow_parse",{skillId:t,version:n},{raw_output:d});let u=d.trim(),f=u.match(/```(?:json)?\s*([\s\S]*?)\s*```/i);if(f)u=f[1];else{let e=u.indexOf("{"),t=u.lastIndexOf("}");-1!==e&&-1!==t&&t>=e&&(u=u.substring(e,t+1))}let m=JSON.parse(u);if(!m.steps||!Array.isArray(m.steps)||0===m.steps.length)return{success:!1,error:"解析结果中未找到有效步骤"};let h=new Set(m.steps.map(e=>e.id));if(m.conditionalGroups&&Array.isArray(m.conditionalGroups))for(let e of m.conditionalGroups)e.branches&&Array.isArray(e.branches)||console.warn(`[FlowParse] ConditionalGroup ${e.id} has invalid branches, degrading to required`);else m.conditionalGroups=[];m.loopGroups&&Array.isArray(m.loopGroups)||(m.loopGroups=[]);let g=new Set;for(let e of m.loopGroups){if(!e.bodyStepIds||!Array.isArray(e.bodyStepIds)){console.warn(`[FlowParse] LoopGroup ${e.id} has invalid bodyStepIds, degrading to required`);continue}for(let t of e.bodyStepIds)h.has(t)?g.add(t):console.warn(`[FlowParse] LoopGroup ${e.id} references invalid stepId ${t}, degrading to required`)}let x=new Set;if(m.conditionalGroups){for(let e of m.conditionalGroups)if(e.branches){for(let t of e.branches)if(t.stepIds)for(let n of t.stepIds)h.has(n)?x.add(n):console.warn(`[FlowParse] ConditionalGroup ${e.id} references invalid stepId ${n}, degrading to required`)}}for(let e of m.steps)e.controlFlowType||(g.has(e.id)?e.controlFlowType="loop":x.has(e.id)?e.controlFlowType="conditional":e.isOptional?e.controlFlowType="optional":e.controlFlowType="required");let I=function(e){let t=["flowchart TD"];e.steps.forEach((e,n)=>{let a=`S${n+1}`,r=e.controlFlowType||"required",s=S(`${"loop"===r?"🔄 ":""}${n+1}. ${e.name}`),l="decision"===e.type?"{"+s+"}":"output"===e.type?"(("+s+"))":"["+s+"]";t.push(` ${a}${l}`)});let n=new Set,a=new Map;if(e.conditionalGroups){for(let t of e.conditionalGroups)for(let e of t.branches)if(e.stepIds&&e.stepIds.length>0)for(let t of(a.set(e.label,e.stepIds),e.stepIds))n.add(t)}for(let r=0;r<e.steps.length-1;r++){let s=e.steps[r],l=e.steps[r+1],o=`S${r+1}`,i=`S${r+2}`,p=e.branches?.find(e=>e.trueStepId===l?.id||e.falseStepId===l?.id);if(p&&"decision"===s.type){t.push(` ${o} -->|是| ${i}`);let n=e.steps.findIndex(e=>e.id===p.falseStepId);-1!==n&&n!==r+1&&t.push(` ${o} -->|否| S${n+1}`)}else{let e=n.has(s.id),r=n.has(l.id);if(!e&&r)continue;if(e&&r){let e=!1;for(let[t,n]of a){let t=n.indexOf(s.id),a=n.indexOf(l.id);if(-1!==t&&-1!==a&&a===t+1){e=!0;break}}if(!e)continue}t.push(` ${o} --> ${i}`)}}if(e.conditionalGroups)for(let n of e.conditionalGroups){let a=-1,r=e.steps.length;for(let t of n.branches){if(!t.stepIds||0===t.stepIds.length)continue;let n=e.steps.findIndex(e=>e.id===t.stepIds[0]);-1!==n&&n<r&&(r=n),t.stepIds.forEach(t=>{let n=e.steps.findIndex(e=>e.id===t);n>a&&(a=n)})}let s=-1;if(r>0&&"decision"===e.steps[r-1].type)s=r-1;else{let t=e.steps.find(e=>"decision"===e.type);t&&(s=e.steps.indexOf(t))}if(-1!==s)for(let a of n.branches){if(!a.stepIds||0===a.stepIds.length)continue;let n=e.steps.findIndex(e=>e.id===a.stepIds[0]);-1!==n&&t.push(` S${s+1} -->|${a.label}| S${n+1}`)}let l=a+1;if(l>0&&l<e.steps.length){let a=`S${l+1}`;for(let r of n.branches){if(!r.stepIds||0===r.stepIds.length)continue;let n=r.stepIds[r.stepIds.length-1],s=e.steps.findIndex(e=>e.id===n);-1!==s&&s!==l-1&&t.push(` S${s+1} --> ${a}`)}}}t.push(""),t.push(" style S1 fill:#38bdf8,color:#0f172a");let r=`S${e.steps.length}`;return e.steps[e.steps.length-1]?.type==="output"&&t.push(` style ${r} fill:#4ade80,color:#0f172a`),e.steps.forEach((e,n)=>{let a=`S${n+1}`,r=e.controlFlowType||"required";"optional"===r?t.push(` style ${a} stroke-dasharray: 5 5`):"loop"===r?t.push(` style ${a} fill:#a78bfa,color:#0f172a`):"conditional"===r?t.push(` style ${a} fill:#fbbf24,color:#0f172a`):"handoff"===r&&t.push(` style ${a} fill:#4ade80,color:#0f172a`)}),t.join("\n")}(m);return await l.db.upsertParsedFlow({skillId:t,version:n,user:a||null,flowJson:JSON.stringify(m),mermaidCode:I}),{success:!0,flow:m,mermaidCode:I}}catch(t){let e=t instanceof Error?t.message:"解析失败";return console.error("Flow parse error:",t),{success:!1,error:e}}}function S(e){return e.replace(/\\/g,"\\\\").replace(/"/g,"'").replace(/\(/g,"(").replace(/\)/g,")").replace(/\[/g,"[").replace(/\]/g,"]").replace(/\{/g,"{").replace(/\}/g,"}").replace(/</g,"<").replace(/>/g,">").replace(/\|/g,"|").replace(/\n/g," ").trim()}function h(e){let t=[],n=new Map;if(e.conditionalGroups)for(let t of e.conditionalGroups)for(let e of t.branches)for(let a of e.stepIds)n.set(a,{type:"conditional",group:t});if(e.loopGroups)for(let t of e.loopGroups)for(let e of t.bodyStepIds)n.set(e,{type:"loop",group:t});let a=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 r of e.stepIds)a.has(r)||(console.warn(`[FlowParse] ConditionalGroup ${t.id} references invalid stepId ${r}, degrading to required`),n.delete(r));if(e.loopGroups)for(let t of e.loopGroups)for(let e of t.bodyStepIds)a.has(e)||(console.warn(`[FlowParse] LoopGroup ${t.id} references invalid stepId ${e}, degrading to required`),n.delete(e));let r=new Map;if(e.conditionalGroups)for(let t of e.conditionalGroups)r.set(t.id,t.branches.length);for(let a of e.steps){let e=n.get(a.id);if(a.isOptional&&!e){t.push({id:a.id,content:a.name,weight:0,controlFlowType:"optional"});continue}if(e?.type==="conditional"){let n=e.group,s=n.branches.find(e=>e.stepIds.includes(a.id)),l=r.get(n.id)||1;t.push({id:a.id,content:a.name,weight:1/l,controlFlowType:"conditional",condition:n.condition,branchLabel:s?.label,groupId:n.id});continue}if(e?.type==="loop"){let n=e.group;t.push({id:a.id,content:a.name,weight:1,controlFlowType:"loop",loopCondition:n.loopCondition,expectedMinCount:n.expectedMinCount,expectedMaxCount:n.expectedMaxCount,groupId:n.id});continue}if(a.isOptional){t.push({id:a.id,content:a.name,weight:0,controlFlowType:"optional"});continue}t.push({id:a.id,content:a.name,weight:1,controlFlowType:"required"})}return t}function g(e){let t=[];for(let n=0;n<e.length;n++){let{name:a,actions:r}=e[n];for(let e of r)t.push({...e,id:`${a}-${e.id}`,skillSource:a});if(n<e.length-1){let r=e[n+1].name;t.push({id:`handoff-${a}-to-${r}`,content:`从 ${a} 输出衔接至 ${r} 输入`,weight:1,controlFlowType:"handoff",skillSource:`${a}->${r}`})}}return t}function x(e){return"string"==typeof e?e:Array.isArray(e)?e.map(e=>"string"==typeof e?e:e&&"object"==typeof e&&"text"===e.type&&e.text?e.text:"").filter(Boolean).join(" "):""}function I(e){let t=[];if(e.toolCall?.name&&t.push(e.toolCall.name),Array.isArray(e.toolCalls))for(let n of e.toolCalls){let e=n?.name||n?.function?.name;e&&t.push(e)}if(Array.isArray(e.responseMessage?.tool_calls))for(let n of e.responseMessage.tool_calls){let e=n?.function?.name||n?.name;e&&t.push(e)}if(Array.isArray(e.content))for(let n of e.content)("toolCall"===n.type||"tool_use"===n.type)&&n.name&&t.push(n.name);return t}async function y(e,t,n,a,r){let{client:s,model:o}=await f(a);if(!s||!s.apiKey)return{success:!1,error:"请在首页左上角的设置中配置 LLM"};try{let p,d,u=await l.db.findParsedFlow(t,n,a||null);if(!u||!u.flowJson||0===u.flowJson.trim().length)return{success:!1,error:"请先解析 Skill 流程"};let c=await l.db.findSessionByTaskId(e);if(!c||!c.interactions)return{success:!1,error:"未找到执行记录或交互数据"};try{p="string"==typeof c.interactions?JSON.parse(c.interactions):c.interactions}catch{return{success:!1,error:"交互数据解析失败"}}let f=Array.isArray(p)?p.length:0;try{d=JSON.parse(u.flowJson)}catch{return{success:!1,error:"请先解析 Skill 流程"}}let m=await $(s,o,p),h=w(m).map((e,t)=>({...e,uiStepIndex:t})),g=function(e,t,n,a){var r,s,l,o,p;let d,u,c=[];t.length>0&&c.push({skillName:n,version:a,startActualStepIndex:Math.min(...t.map(k)),endActualStepIndex:Math.max(...t.map(k)),trigger:"primary"});let f=(r=e,s=t,l=n,d=[],u=(o=r,p=l,o.map((e,t)=>({index:t,refs:E(e)})).filter(e=>e.refs.some(e=>e.name&&e.name!==p)).map(e=>e.index).sort((e,t)=>e-t)),r.forEach((e,t)=>{var n,a;let r,o=E(e).filter(e=>e.name&&e.name!==l);if(0===o.length)return;let i=C(s,t);if(null==i)return;let p=u.find(e=>e>t),c=null!=p?Math.max(i,(n=s,a=p,((r=n.filter(e=>e.dialogStartIndex<a).sort((e,t)=>k(t)-k(e))[0])?k(r):void 0)??i)):Math.max(i,function(e){if(0!==e.length)return Math.max(...e.map(k))}(s)??i);for(let e of o)d.push({skillName:e.name,version:e.version,startActualStepIndex:i,endActualStepIndex:c,trigger:e.trigger})}),d),m=function(e,t,n){let a=(0,i.buildAgentCallTree)(e);if(!a)return[];let r=new Map,s=new Map;(0,i.walkTree)(a,e=>{for(let t of e.events)"task"===t.kind&&t.spawnedChildId&&(r.set(t.spawnedChildId,N(t)),"number"==typeof t.interactionIndex&&s.set(t.spawnedChildId,t.interactionIndex))});let l=[];return(0,i.walkTree)(a,e=>{if(!e.parentId)return;let a=[...r.get(e.id)||[],...function(e){let t=[];for(let n of e.events)"skill"===n.kind&&t.push(...O(n.args,"invoked")),"tool"===n.kind&&"load_skill"===n.name&&t.push(...O(n.args,"load_skill")),"task"===n.kind&&t.push(...N(n));return F(t)}(e)].filter(e=>e.name&&e.name!==n),o=F(a);if(0===o.length)return;let i=function(e,t){if(0===t.length)return null;let n=new Set(t),a=e.filter(e=>{for(let t=e.dialogStartIndex;t<=e.dialogEndIndex;t+=1)if(n.has(t))return!0;return!1});return 0===a.length?null:{start:Math.min(...a.map(k)),end:Math.max(...a.map(k))}}(t,e.interactionIndices);if(!i)return;let p=s.get(e.id),d=null!=p?Math.max(i.start,C(t,p)??i.start):i.start;for(let e of o)l.push({skillName:e.name,version:e.version,startActualStepIndex:d,endActualStepIndex:Math.max(d,i.end),trigger:"subagent"})}),l}(e,t,n);for(let e of[...f,...m])(e.skillName!==n||"subagent"===e.trigger)&&function(e,t){let n=e.find(e=>{var n,a;return e.skillName===t.skillName&&e.version===t.version&&(e.trigger===t.trigger||"primary"!==e.trigger&&"primary"!==t.trigger)&&(n=e,a=t,n.startActualStepIndex<=a.endActualStepIndex+1&&a.startActualStepIndex<=n.endActualStepIndex+1)});n?(n.startActualStepIndex=Math.min(n.startActualStepIndex,t.startActualStepIndex),n.endActualStepIndex=Math.max(n.endActualStepIndex,t.endActualStepIndex)):e.push(t)}(c,e);return c}(p,h,r||t,n),x=function(e,t){if(0===e.length)return[];let n=t.filter(e=>"primary"!==e.trigger).sort((e,t)=>e.startActualStepIndex-t.startActualStepIndex);if(0===n.length)return e.map(e=>b(e));let a=[...e].sort((e,t)=>e.dialogStartIndex-t.dialogStartIndex),r=[],s=0;for(;s<a.length;){let e=a[s],t=n.filter(t=>A(t,e));if(0===t.length){r.push(b(e)),s+=1;continue}let l=[],o=[],i=Math.min(...t.map(e=>e.startActualStepIndex)),p=Math.max(...t.map(e=>e.endActualStepIndex));for(;s<a.length;){let e=a[s],t=n.filter(t=>A(t,e)||t.startActualStepIndex<=p&&t.endActualStepIndex>=i),r=k(e);if(r>p&&0===t.length)break;for(let n of(l.push(e),t))o.includes(n)||o.push(n);i=Math.min(i,r,...t.map(e=>e.startActualStepIndex)),p=Math.max(p,r,...t.map(e=>e.endActualStepIndex)),s+=1}let d=function(e){let t=[],n=new Set;for(let a of e)!a||n.has(a)||(n.add(a),t.push(a));return t}(o.map(J)),u=d.length>0?d.join("、"):"子 Skill";r.push({evaluationStepId:`delegate-${i}-${p}`,uiStepIndexes:l.map(k),name:`委派 ${u} 执行子 Skill`,description:`主 Skill 视角的委派节点,覆盖 ${l.length} 个子 Skill 内部步骤;该区间内部行为不参与主 Skill 匹配。`,type:"action"})}return r}(h,g),I=await v(s,o,d,x,h,r||t,n,g),y=function(e,t,n,a){let r=["flowchart LR"],s={matched:"#4ade80",partial:"#fbbf24",unexpected:"#f87171",delegated:"#60a5fa",non_business:"#a3a3a3",skipped:"#94a3b8"};r.push(" subgraph Skill流程"),r.push(" direction LR"),e.steps.forEach((e,t)=>{let n=`S${t+1}`,a=S(`${t+1}. ${e.name}`),s="decision"===e.type?"{"+a+"}":"output"===e.type?"(("+a+"))":"["+a+"]";r.push(` ${n}${s}`)});for(let t=0;t<e.steps.length-1;t++){let e=`S${t+1}`,n=`S${t+2}`;r.push(` ${e} --> ${n}`)}r.push(" end"),r.push(""),r.push(" subgraph 实际执行轨迹"),r.push(" direction LR");let l=[];if([...t.filter(e=>"skipped"!==e.matchStatus)].sort((e,t)=>(e.actualStepIndex??0)-(t.actualStepIndex??0)).forEach((e,t)=>{let n=`A${t+1}`,s=e.matchStatus,o=e.actualStepIndex??t,i=S(`#${o} ${e.actualAction||`实际步骤 ${o}`}`),p=a.find(e=>k(e)===o||null==e.uiStepIndex&&e.dialogStartIndex<=o&&e.dialogEndIndex>=o),d=p?.type||"action";l.push({id:n,label:i,status:s,targetStep:e.expectedStepId,dialogIndex:o,type:d});let u="decision"===d?"{"+i+"}":"output"===d?"(("+i+"))":"["+i+"]";r.push(` ${n}${u}`)}),l.length>1)for(let e=0;e<l.length-1;e++)r.push(` ${l[e].id} --> ${l[e+1].id}`);return r.push(" end"),r.push(""),l.forEach(t=>{if("unexpected"!==t.status&&t.targetStep){let n=e.steps.findIndex(e=>e.id===t.targetStep);if(-1!==n){let e=`S${n+1}`;r.push(` ${e} -.- ${t.id}`)}}}),r.push(""),e.steps.forEach((e,a)=>{let l=`S${a+1}`,o=n.some(t=>t.expectedStepId===e.id),i=t.find(t=>t.expectedStepId===e.id&&"partial"===t.matchStatus),p=s[o?"skipped":i?"partial":"matched"];r.push(` style ${l} fill:${p},color:#0f172a`)}),l.forEach(e=>{let t=s[e.status];r.push(` style ${e.id} fill:${t},color:#0f172a`)}),r.join("\n")}(d,I.matches,I.skippedExpectedSteps,h);return await l.db.upsertExecutionMatch({executionId:e,skillId:t,skillVersion:n,user:a||null,mode:"compare",matchJson:JSON.stringify(I),staticMermaid:u.mermaidCode,dynamicMermaid:y,analysisText:JSON.stringify(I.problemSteps),extractedSteps:JSON.stringify(h),interactionCount:f}),{success:!0,result:I,staticMermaid:u.mermaidCode,dynamicMermaid:y,flow:d,extractedSteps:h,interactionCount:f}}catch(t){let e=t instanceof Error?t.message:"分析失败";return console.error("Execution match error:",t),{success:!1,error:e}}}async function $(e,t,n){if(!Array.isArray(n)||0===n.length)return[];let a=[];for(let e=0;e<n.length;e+=10)a.push(n.slice(e,e+10));let r=a.map(async(n,a)=>{var r,s;let l,i=10*a,p=(r=n,s=i,l=[],r.forEach((e,t)=>{let n=s+t;if(Array.isArray(e.requestMessages)||void 0!==e.responseMessage||void 0!==e.toolCall||Array.isArray(e.toolCalls)&&e.toolCalls.length>0){let t=[];if(Array.isArray(e.requestMessages)&&e.requestMessages.length>0){let n=[...e.requestMessages].reverse().find(e=>e?.role==="user");if(n){let e=x(n.content).slice(0,200);e&&t.push(`USER: ${e}`)}}if(e.responseMessage){let n=x(e.responseMessage.content).slice(0,300);n&&t.push(`ASSISTANT: ${n}`)}let a=I(e);if(a.length>0&&t.push(`[工具调用: ${a.join(", ")}]`),t.length>0)return void l.push(`[${n}] ${t.join(" | ")}`)}let a=e.role||"unknown",r="";if("string"==typeof e.content)r=e.content.substring(0,300);else if(Array.isArray(e.content)){r=x(e.content).substring(0,300);let t=I(e);t.length>0&&(r+=` [工具调用: ${t.join(", ")}]`)}l.push(`[${n}] ${a.toUpperCase()}: ${r}${r.length>=300?"...":""}`)}),l.join("\n")),d=(0,o.generateStepExtractPrompt)(p,a,i);try{let n=await e.chat.completions.create({messages:[{role:"user",content:d}],model:t,temperature:.3}),a=n.choices?.[0]?.message?.content;if(!a)return[];let r=a.trim(),s=r.match(/```(?:json)?\s*([\s\S]*?)\s*```/i);if(s)r=s[1];else{let e=r.indexOf("{"),t=r.lastIndexOf("}");-1!==e&&-1!==t&&t>=e&&(r=r.substring(e,t+1))}return JSON.parse(r).steps||[]}catch(e){return console.error(`Batch ${a} extract error:`,e),[]}});return(await Promise.all(r)).flat()}function w(e){return 0===e.length?[]:[...e].sort((e,t)=>e.dialogStartIndex-t.dialogStartIndex)}function b(e){let t=k(e);return{evaluationStepId:`main-${t}`,uiStepIndexes:[t],name:e.name,description:e.description,type:e.type}}function k(e){return"number"==typeof e.uiStepIndex?e.uiStepIndex:e.dialogStartIndex}function A(e,t){let n=k(t);return e.startActualStepIndex<=n&&e.endActualStepIndex>=n}async function v(e,t,n,a,r,s,l,i){let p=JSON.stringify(a,null,2),d=(0,o.generateExecutionMatchPrompt)(n,p,s),u=await e.chat.completions.create({messages:[{role:"user",content:d}],model:t,temperature:.3}),f=u.choices?.[0]?.message?.content;if(!f)throw Error("LLM 返回内容为空");c("execution_match",{skillId:s},{raw_output:f});let m=f.trim(),S=m.match(/```(?:json)?\s*([\s\S]*?)\s*```/i);if(S)m=S[1];else{let e=m.indexOf("{"),t=m.lastIndexOf("}");-1!==e&&-1!==t&&t>=e&&(m=m.substring(e,t+1))}let h=JSON.parse(m);return function(e,t,n,a,r,s,l){var o,i,p,d,u;let c,f,m,S,h,g,x,I,y,$,w,b=t.steps.map((e,t)=>({id:e.id,name:e.name,description:e.description,type:e.type,order:t})),v=(o=Array.isArray(e.matches)?e.matches:[],i=a,c=o.filter(e=>"skipped"!==e.matchStatus),f=new Map,c.forEach(e=>{e.evaluationStepId&&f.set(e.evaluationStepId,e)}),m=new Set,[...i].sort((e,t)=>Math.min(...e.uiStepIndexes)-Math.min(...t.uiStepIndexes)).map((e,t)=>{let n=Math.min(...e.uiStepIndexes),a=f.get(e.evaluationStepId)||c.find((t,n)=>!m.has(n)&&"number"==typeof t.actualStepIndex&&e.uiStepIndexes.includes(t.actualStepIndex))||c.find((e,n)=>!m.has(n)&&!e.evaluationStepId&&"number"!=typeof e.actualStepIndex&&n===t);if(!a)return{evaluationStepId:e.evaluationStepId,expectedStepId:void 0,expectedStepName:void 0,actualStepIndex:n,actualAction:e.name,matchStatus:"unexpected",matchReason:"LLM 未返回该主流程步骤的匹配记录,按未匹配步骤兜底。"};let r=c.indexOf(a);return r>=0&&m.add(r),{...a,evaluationStepId:e.evaluationStepId,actualStepIndex:n,actualAction:e.name}})),N=Array.isArray(e.skippedExpectedSteps)?e.skippedExpectedSteps:[],E=Array.isArray(e.problemSteps)?e.problemSteps:[],O=l||[],G=O.filter(e=>"primary"!==e.trigger),C=new Map,F=new Map;for(let e of v)e.evaluationStepId&&C.set(e.evaluationStepId,e),"number"==typeof e.actualStepIndex&&F.set(e.actualStepIndex,e);let L=new Map;for(let e of a){if(!e.evaluationStepId.startsWith("delegate-"))continue;let t=C.get(e.evaluationStepId),n=Math.min(...e.uiStepIndexes);t&&Number.isFinite(n)&&L.set(n,t)}let _=O.map(e=>{if("primary"===e.trigger)return e;let t=L.get(e.startActualStepIndex);if(!t)return e;let n=M(t.matchStatus);return{...e,expectedStepId:t.expectedStepId,expectedStepName:t.expectedStepName,evaluationStatus:n,evaluationReason:t.matchReason}}),P=n.slice().sort((e,t)=>e.dialogStartIndex-t.dialogStartIndex).map(e=>{var t;let n,a=k(e),r=G.filter(t=>A(t,e));if(r.length>0){let e=r.map(e=>L.get(e.startActualStepIndex)).find(Boolean);return{actualStepIndex:a,expectedStepId:e?.expectedStepId,expectedStepName:e?.expectedStepName,status:"delegated",reason:e?.matchReason||`该步骤位于子 Skill 执行区间:${r.map(J).join("、")},不参与主 Skill 内容匹配。`}}if(t=e,(n=`${t.name||""} ${t.description||""}`.toLowerCase()).trim()&&[/背景代理|后台代理|探索代码库|收集上下文|上下文信息|上下文收集|准备后续/,/读取\s*skill|加载\s*skill|查看\s*skill|skill\.md/,/查看原始日志|原始日志上下文|grep|less|cat|sed|tail|head/,/读取文件|查看文件|浏览文件|检查目录|列出目录|扫描目录/,/环境预热|初始化环境|准备环境|确认工作区|检查工作区/].some(e=>e.test(n)))return{actualStepIndex:a,status:"non_business",reason:"该步骤属于上下文收集、环境预热或流程衔接的过渡操作,不参与主 Skill 业务流程评分。"};let s=F.get(a);return{actualStepIndex:a,expectedStepId:s?.expectedStepId,expectedStepName:s?.expectedStepName,status:M(s?.matchStatus)||"unexpected",reason:s?.matchReason||"LLM 未返回该主流程步骤的匹配记录,按未匹配步骤兜底。"}}),T=P.slice().sort((e,t)=>e.actualStepIndex-t.actualStepIndex).map(e=>{let t=n.find(t=>k(t)===e.actualStepIndex);return{index:e.actualStepIndex,action:t?.name||`实际步骤 #${e.actualStepIndex}`,type:t?.type||"action",description:t?.description,dialogStartIndex:t?.dialogStartIndex,dialogEndIndex:t?.dialogEndIndex}}),j=new Set(P.filter(e=>"delegated"===e.status).map(e=>e.actualStepIndex)),q=E.map(e=>(function(e,t){if(!e.evaluationStepId)return e;let n=t.find(t=>t.evaluationStepId===e.evaluationStepId);return n?{...e,stepIndex:Math.min(...n.uiStepIndexes)}:e})(e,a)).filter(e=>"number"!=typeof e.stepIndex||!j.has(e.stepIndex)),R=new Map,K=new Map;for(let e of q)"number"==typeof e.stepIndex&&R.set(e.stepIndex,e),K.set(e.stepName,e);let V=[];for(let e of P){if("matched"===e.status||"delegated"===e.status||"non_business"===e.status)continue;let t=T.find(t=>t.index===e.actualStepIndex),n=R.get(e.actualStepIndex)||(e.expectedStepName?K.get(e.expectedStepName):void 0)||(t?.action?K.get(t.action):void 0);V.push({kind:e.status,actualStepIndex:e.actualStepIndex,expectedStepId:e.expectedStepId,expectedStepName:e.expectedStepName,severity:"unexpected"===e.status?"medium":"low",problem:n?.problem||e.reason||("unexpected"===e.status?"实际执行了 Skill 预期之外的步骤。":"实际执行只覆盖了部分 Skill 预期。"),suggestion:n?.suggestion,evidenceInteractionIndexes:function(e){if(e)return[e.index]}(t)})}for(let e of N){let t=K.get(e.expectedStepName);V.push({kind:"skipped",expectedStepId:e.expectedStepId,expectedStepName:e.expectedStepName,severity:"medium",problem:t?.problem||"Skill 中规定了该步骤,但实际执行流程没有覆盖。",suggestion:t?.suggestion})}let D=P.map(e=>{let t=T.find(t=>t.index===e.actualStepIndex);return{expectedStepId:e.expectedStepId,expectedStepName:e.expectedStepName,actualStepIndex:e.actualStepIndex,actualAction:t?.action||`实际步骤 #${e.actualStepIndex}`,matchStatus:e.status,matchReason:e.reason||""}}),B={actualSteps:T,expectedSteps:b,mappings:P,skippedExpectedSteps:N,skillSpans:_,violations:V,summary:(p=P,d=N,u=e.summary,S=p.filter(e=>"matched"===e.status).length,h=p.filter(e=>"partial"===e.status).length,g=p.filter(e=>"unexpected"===e.status).length,x=p.filter(e=>"delegated"===e.status).length,I=p.filter(e=>"non_business"===e.status).length,y=d.length,w=($=p.length)-I+y,{totalSteps:$,matchedSteps:S,partialSteps:h,unexpectedSteps:g,delegatedSteps:x,nonBusinessSteps:I,skippedSteps:y,orderViolations:u?.orderViolations??0,overallScore:Math.max(0,Math.min(1,w>0?(S+x+.5*h-.2*g)/w:1))})};return{...e,matches:D,skippedExpectedSteps:N,problemSteps:q,summary:B.summary,alignment:B}}(h,n,r,a,0,0,i)}function M(e){if("matched"===e||"partial"===e||"unexpected"===e||"non_business"===e)return e}function N(e){let t=e.args;return t&&"object"==typeof t?G(t.load_skills||t.loadSkills,"subagent"):[]}function E(e){let t=[];for(let n of function(e){let t=[],n=e=>{if(!e)return;let n=e.name||e.function?.name,a=e.arguments??e.function?.arguments;t.push({name:n,args:L(a)})};if(n(e.toolCall),Array.isArray(e.toolCalls)&&e.toolCalls.forEach(n),Array.isArray(e.tool_calls)&&e.tool_calls.forEach(n),Array.isArray(e.responseMessage?.tool_calls)&&e.responseMessage.tool_calls.forEach(n),Array.isArray(e.content))for(let n of e.content)("toolCall"===n.type||"tool_use"===n.type)&&n.name&&t.push({name:n.name,args:L(n.arguments||n.input)});return t}(e)){let e=n.name,a=n.args;"skill"===e&&t.push(...O(a,"invoked")),"load_skill"===e&&t.push(...O(a,"load_skill")),"task"===e&&a&&"object"==typeof a&&t.push(...G(a.load_skills||a.loadSkills,"subagent"))}return F(t)}function O(e,t){var n;if(!e||"object"!=typeof e)return[];let a=_(e.name)||_(e.skill)||_(e.skillName)||_(e.skill_name);return a?[{name:a,version:(n=e.version??e.skillVersion??e.skill_version,"number"==typeof n&&Number.isFinite(n)?n:void 0),trigger:t}]:[]}function G(e,t){if(!Array.isArray(e))return[];let n=[];for(let a of e){if("string"==typeof a&&a.trim()){n.push({name:a.trim(),trigger:t});continue}a&&"object"==typeof a&&n.push(...O(a,t))}return n}function C(e,t){let n=[...e].sort((e,t)=>e.dialogStartIndex-t.dialogStartIndex),a=n.find(e=>e.dialogStartIndex>=t);if(a)return k(a);let r=n.find(e=>e.dialogStartIndex<=t&&e.dialogEndIndex>=t);if(r)return k(r)}function F(e){let t=[],n=new Set;for(let a of e){let e=`${a.name}:${a.version??""}:${a.trigger}`;n.has(e)||(n.add(e),t.push(a))}return t}function J(e){return null!=e.version?`${e.skillName} v${e.version}`:e.skillName}function L(e){if("string"!=typeof e)return e;try{return JSON.parse(e)}catch{return e}}function _(e){return"string"==typeof e&&e.trim()?e.trim():void 0}async function P(e,t,n){return l.db.findParsedFlow(e,t,n||null)}async function T(e){return l.db.findExecutionMatch(e)}async function j(e,t){let{client:n,model:a}=await f(t);if(!n||!n.apiKey)return{success:!1,error:"请在首页左上角的设置中配置 LLM"};try{let r,s=await l.db.findSessionByTaskId(e);if(!s||!s.interactions)return{success:!1,error:"未找到执行记录或交互数据"};try{r="string"==typeof s.interactions?JSON.parse(s.interactions):s.interactions}catch{return{success:!1,error:"交互数据解析失败"}}let o=Array.isArray(r)?r.length:0;await l.db.upsertExecutionMatch({executionId:e,skillId:null,skillVersion:null,user:t||null,mode:"dynamic",matchJson:null,staticMermaid:null,dynamicMermaid:null,analysisText:null,extractedSteps:null,interactionCount:o});let i=await $(n,a,r),p=w(i),d=await q(n,a,p),u=function(e,t){let n=["flowchart LR"];e.forEach((e,t)=>{let a=`S${t+1}`,r=e.actualStepIndex,s=S(`#${r} ${e.actualAction}`),l="decision"===e.type?"{"+s+"}":"output"===e.type?"(("+s+"))":"["+s+"]";n.push(` ${a}${l}`)});for(let t=0;t<e.length-1;t++){let e=`S${t+1}`,a=`S${t+2}`;n.push(` ${e} --> ${a}`)}return n.push(""),e.forEach((e,t)=>{let a=`S${t+1}`;n.push(` style ${a} fill:#38bdf8,color:#0f172a`)}),n.join("\n")}(d.matches,0),c=JSON.stringify(p);return await l.db.upsertExecutionMatch({executionId:e,skillId:null,skillVersion:null,user:t||null,mode:"dynamic",matchJson:JSON.stringify(d),staticMermaid:null,dynamicMermaid:u,analysisText:null,extractedSteps:c,interactionCount:o}),{success:!0,dynamicMermaid:u,interactionCount:o}}catch(t){let e=t instanceof Error?t.message:"分析失败";return console.error("Dynamic analysis error:",t),{success:!1,error:e}}}async function q(e,t,n){let a=JSON.stringify(n,null,2),r=(0,o.generateDynamicOnlyMatchPrompt)(a),s=await e.chat.completions.create({messages:[{role:"user",content:r}],model:t,temperature:.3}),l=s.choices?.[0]?.message?.content;if(!l)throw Error("LLM 返回内容为空");let i=l.trim(),p=i.match(/```(?:json)?\s*([\s\S]*?)\s*```/i);if(p)i=p[1];else{let e=i.indexOf("{"),t=i.lastIndexOf("}");-1!==e&&-1!==t&&t>=e&&(i=i.substring(e,t+1))}return JSON.parse(i)}e.s(["analyzeDynamicOnly",()=>j,"analyzeExecutionMatch",()=>y,"extractKeyActionsFromFlow",()=>h,"getExecutionMatch",()=>T,"getParsedFlow",()=>P,"mergeKeyActionsFromMultipleSkills",()=>g,"parseSkillFlow",()=>m]),n()}catch(e){n(e)}},!1)];
|
|
299
|
+
`}e.s(["generateDynamicOnlyMatchPrompt",()=>r,"generateExecutionMatchPrompt",()=>a,"generateFlowParsePrompt",()=>t,"generateStepExtractPrompt",()=>n])},8129,e=>e.a(async(t,n)=>{try{e.i(889228);var a=e.i(88045),r=e.i(637351),s=e.i(106411),l=e.i(854763),i=e.i(317309),o=e.i(286372),p=e.i(522734),d=e.i(814747),u=e.i(547499),c=t([s,l]);[s,l]=c.then?(await c)():c;let K=(0,u.resolveAgentInsightDataPath)("flow_debug.jsonl");function f(e,t,n){try{let a=d.default.dirname(K);p.default.existsSync(a)||p.default.mkdirSync(a,{recursive:!0});let r={timestamp:new Date().toISOString(),stage:e,input:t,output:n};p.default.appendFileSync(K,JSON.stringify(r)+"\n")}catch(e){console.error("Log error",e)}}async function m(e){let t=await (0,s.getActiveConfig)(e);if(!t)return{client:null,model:null};let n=t.apiKey;if(!n)return{client:null,model:null};let l=t.baseUrl||"https://api.deepseek.com",{customFetch:i}=(0,r.getProxyConfig)();return{client:new a.OpenAI({apiKey:n,baseURL:l,fetch:i}),model:t.model||"deepseek-chat"}}async function h(e,t,n,a){let{client:r,model:s}=await m(a);if(!r||!r.apiKey)return{success:!1,error:"请在首页左上角的设置中配置 LLM"};if(!e||0===e.trim().length)return{success:!1,error:"Skill 内容为空"};try{await l.db.upsertParsedFlow({skillId:t,version:n,user:a||null,flowJson:"",mermaidCode:""});let o=(0,i.generateFlowParsePrompt)(e),p=await r.chat.completions.create({messages:[{role:"user",content:o}],model:s,temperature:.3}),d=p.choices?.[0]?.message?.content;if(!d)return{success:!1,error:"LLM 返回内容为空"};f("flow_parse",{skillId:t,version:n},{raw_output:d});let u=d.trim(),c=u.match(/```(?:json)?\s*([\s\S]*?)\s*```/i);if(c)u=c[1];else{let e=u.indexOf("{"),t=u.lastIndexOf("}");-1!==e&&-1!==t&&t>=e&&(u=u.substring(e,t+1))}let m=JSON.parse(u);if(!m.steps||!Array.isArray(m.steps)||0===m.steps.length)return{success:!1,error:"解析结果中未找到有效步骤"};let h=new Set(m.steps.map(e=>e.id));if(m.conditionalGroups&&Array.isArray(m.conditionalGroups))for(let e of m.conditionalGroups)e.branches&&Array.isArray(e.branches)||console.warn(`[FlowParse] ConditionalGroup ${e.id} has invalid branches, degrading to required`);else m.conditionalGroups=[];m.loopGroups&&Array.isArray(m.loopGroups)||(m.loopGroups=[]);let g=new Set;for(let e of m.loopGroups){if(!e.bodyStepIds||!Array.isArray(e.bodyStepIds)){console.warn(`[FlowParse] LoopGroup ${e.id} has invalid bodyStepIds, degrading to required`);continue}for(let t of e.bodyStepIds)h.has(t)?g.add(t):console.warn(`[FlowParse] LoopGroup ${e.id} references invalid stepId ${t}, degrading to required`)}let x=new Set;if(m.conditionalGroups){for(let e of m.conditionalGroups)if(e.branches){for(let t of e.branches)if(t.stepIds)for(let n of t.stepIds)h.has(n)?x.add(n):console.warn(`[FlowParse] ConditionalGroup ${e.id} references invalid stepId ${n}, degrading to required`)}}for(let e of m.steps)e.controlFlowType||(g.has(e.id)?e.controlFlowType="loop":x.has(e.id)?e.controlFlowType="conditional":e.isOptional?e.controlFlowType="optional":e.controlFlowType="required");let I=function(e){let t=["flowchart TD"];e.steps.forEach((e,n)=>{let a=`S${n+1}`,r=e.controlFlowType||"required",s=S(`${"loop"===r?"🔄 ":""}${n+1}. ${e.name}`),l="decision"===e.type?"{"+s+"}":"output"===e.type?"(("+s+"))":"["+s+"]";t.push(` ${a}${l}`)});let n=new Set,a=new Map;if(e.conditionalGroups){for(let t of e.conditionalGroups)for(let e of t.branches)if(e.stepIds&&e.stepIds.length>0)for(let t of(a.set(e.label,e.stepIds),e.stepIds))n.add(t)}for(let r=0;r<e.steps.length-1;r++){let s=e.steps[r],l=e.steps[r+1],i=`S${r+1}`,o=`S${r+2}`,p=e.branches?.find(e=>e.trueStepId===l?.id||e.falseStepId===l?.id);if(p&&"decision"===s.type){t.push(` ${i} -->|是| ${o}`);let n=e.steps.findIndex(e=>e.id===p.falseStepId);-1!==n&&n!==r+1&&t.push(` ${i} -->|否| S${n+1}`)}else{let e=n.has(s.id),r=n.has(l.id);if(!e&&r)continue;if(e&&r){let e=!1;for(let[t,n]of a){let t=n.indexOf(s.id),a=n.indexOf(l.id);if(-1!==t&&-1!==a&&a===t+1){e=!0;break}}if(!e)continue}t.push(` ${i} --> ${o}`)}}if(e.conditionalGroups)for(let n of e.conditionalGroups){let a=-1,r=e.steps.length;for(let t of n.branches){if(!t.stepIds||0===t.stepIds.length)continue;let n=e.steps.findIndex(e=>e.id===t.stepIds[0]);-1!==n&&n<r&&(r=n),t.stepIds.forEach(t=>{let n=e.steps.findIndex(e=>e.id===t);n>a&&(a=n)})}let s=-1;if(r>0&&"decision"===e.steps[r-1].type)s=r-1;else{let t=e.steps.find(e=>"decision"===e.type);t&&(s=e.steps.indexOf(t))}if(-1!==s)for(let a of n.branches){if(!a.stepIds||0===a.stepIds.length)continue;let n=e.steps.findIndex(e=>e.id===a.stepIds[0]);-1!==n&&t.push(` S${s+1} -->|${a.label}| S${n+1}`)}let l=a+1;if(l>0&&l<e.steps.length){let a=`S${l+1}`;for(let r of n.branches){if(!r.stepIds||0===r.stepIds.length)continue;let n=r.stepIds[r.stepIds.length-1],s=e.steps.findIndex(e=>e.id===n);-1!==s&&s!==l-1&&t.push(` S${s+1} --> ${a}`)}}}t.push(""),t.push(" style S1 fill:#38bdf8,color:#0f172a");let r=`S${e.steps.length}`;return e.steps[e.steps.length-1]?.type==="output"&&t.push(` style ${r} fill:#4ade80,color:#0f172a`),e.steps.forEach((e,n)=>{let a=`S${n+1}`,r=e.controlFlowType||"required";"optional"===r?t.push(` style ${a} stroke-dasharray: 5 5`):"loop"===r?t.push(` style ${a} fill:#a78bfa,color:#0f172a`):"conditional"===r?t.push(` style ${a} fill:#fbbf24,color:#0f172a`):"handoff"===r&&t.push(` style ${a} fill:#4ade80,color:#0f172a`)}),t.join("\n")}(m);return await l.db.upsertParsedFlow({skillId:t,version:n,user:a||null,flowJson:JSON.stringify(m),mermaidCode:I}),{success:!0,flow:m,mermaidCode:I}}catch(t){let e=t instanceof Error?t.message:"解析失败";return console.error("Flow parse error:",t),{success:!1,error:e}}}function S(e){return e.replace(/\\/g,"\\\\").replace(/"/g,"'").replace(/\(/g,"(").replace(/\)/g,")").replace(/\[/g,"[").replace(/\]/g,"]").replace(/\{/g,"{").replace(/\}/g,"}").replace(/</g,"<").replace(/>/g,">").replace(/\|/g,"|").replace(/\n/g," ").trim()}function g(e){let t=[],n=new Map;if(e.conditionalGroups)for(let t of e.conditionalGroups)for(let e of t.branches)for(let a of e.stepIds)n.set(a,{type:"conditional",group:t});if(e.loopGroups)for(let t of e.loopGroups)for(let e of t.bodyStepIds)n.set(e,{type:"loop",group:t});let a=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 r of e.stepIds)a.has(r)||(console.warn(`[FlowParse] ConditionalGroup ${t.id} references invalid stepId ${r}, degrading to required`),n.delete(r));if(e.loopGroups)for(let t of e.loopGroups)for(let e of t.bodyStepIds)a.has(e)||(console.warn(`[FlowParse] LoopGroup ${t.id} references invalid stepId ${e}, degrading to required`),n.delete(e));let r=new Map;if(e.conditionalGroups)for(let t of e.conditionalGroups)r.set(t.id,t.branches.length);for(let a of e.steps){let e=n.get(a.id);if(a.isOptional&&!e){t.push({id:a.id,content:a.name,weight:0,controlFlowType:"optional"});continue}if(e?.type==="conditional"){let n=e.group,s=n.branches.find(e=>e.stepIds.includes(a.id)),l=r.get(n.id)||1;t.push({id:a.id,content:a.name,weight:1/l,controlFlowType:"conditional",condition:n.condition,branchLabel:s?.label,groupId:n.id});continue}if(e?.type==="loop"){let n=e.group;t.push({id:a.id,content:a.name,weight:1,controlFlowType:"loop",loopCondition:n.loopCondition,expectedMinCount:n.expectedMinCount,expectedMaxCount:n.expectedMaxCount,groupId:n.id});continue}if(a.isOptional){t.push({id:a.id,content:a.name,weight:0,controlFlowType:"optional"});continue}t.push({id:a.id,content:a.name,weight:1,controlFlowType:"required"})}return t}function x(e){let t=[];for(let n=0;n<e.length;n++){let{name:a,actions:r}=e[n];for(let e of r)t.push({...e,id:`${a}-${e.id}`,skillSource:a});if(n<e.length-1){let r=e[n+1].name;t.push({id:`handoff-${a}-to-${r}`,content:`从 ${a} 输出衔接至 ${r} 输入`,weight:1,controlFlowType:"handoff",skillSource:`${a}->${r}`})}}return t}function I(e){return"string"==typeof e?e:Array.isArray(e)?e.map(e=>"string"==typeof e?e:e&&"object"==typeof e&&"text"===e.type&&e.text?e.text:"").filter(Boolean).join(" "):""}function y(e){let t=[];if(e.toolCall?.name&&t.push(e.toolCall.name),Array.isArray(e.toolCalls))for(let n of e.toolCalls){let e=n?.name||n?.function?.name;e&&t.push(e)}if(Array.isArray(e.responseMessage?.tool_calls))for(let n of e.responseMessage.tool_calls){let e=n?.function?.name||n?.name;e&&t.push(e)}if(Array.isArray(e.content))for(let n of e.content)("toolCall"===n.type||"tool_use"===n.type)&&n.name&&t.push(n.name);return t}async function $(e,t,n,a,r){let{client:s,model:i}=await m(a);if(!s||!s.apiKey)return{success:!1,error:"请在首页左上角的设置中配置 LLM"};try{let p,d,u=await l.db.findParsedFlow(t,n,a||null);if(!u||!u.flowJson||0===u.flowJson.trim().length)return{success:!1,error:"请先解析 Skill 流程"};let c=await l.db.findSessionByTaskId(e);if(!c||!c.interactions)return{success:!1,error:"未找到执行记录或交互数据"};try{p="string"==typeof c.interactions?JSON.parse(c.interactions):c.interactions}catch{return{success:!1,error:"交互数据解析失败"}}let f=Array.isArray(p)?p.length:0;try{d=JSON.parse(u.flowJson)}catch{return{success:!1,error:"请先解析 Skill 流程"}}let m=await b(s,i,p),h=w(m).map((e,t)=>({...e,uiStepIndex:t})),g=function(e,t,n,a){var r,s,l,i,p;let d,u,c=[];t.length>0&&c.push({skillName:n,version:a,startActualStepIndex:Math.min(...t.map(A)),endActualStepIndex:Math.max(...t.map(A)),trigger:"primary"});let f=(r=e,s=t,l=n,d=[],u=(i=r,p=l,i.map((e,t)=>({index:t,refs:O(e)})).filter(e=>e.refs.some(e=>e.name&&e.name!==p)).map(e=>e.index).sort((e,t)=>e-t)),r.forEach((e,t)=>{var n,a;let r,i=O(e).filter(e=>e.name&&e.name!==l);if(0===i.length)return;let o=F(s,t);if(null==o)return;let p=u.find(e=>e>t),c=null!=p?Math.max(o,(n=s,a=p,((r=n.filter(e=>e.dialogStartIndex<a).sort((e,t)=>A(t)-A(e))[0])?A(r):void 0)??o)):Math.max(o,function(e){if(0!==e.length)return Math.max(...e.map(A))}(s)??o);for(let e of i)d.push({skillName:e.name,version:e.version,startActualStepIndex:o,endActualStepIndex:c,trigger:e.trigger})}),d),m=function(e,t,n){let a=(0,o.buildAgentCallTree)(e);if(!a)return[];let r=new Map,s=new Map;(0,o.walkTree)(a,e=>{for(let t of e.events)"task"===t.kind&&t.spawnedChildId&&(r.set(t.spawnedChildId,E(t)),"number"==typeof t.interactionIndex&&s.set(t.spawnedChildId,t.interactionIndex))});let l=[];return(0,o.walkTree)(a,e=>{if(!e.parentId)return;let a=[...r.get(e.id)||[],...function(e){let t=[];for(let n of e.events)"skill"===n.kind&&t.push(...G(n.args,"invoked")),"tool"===n.kind&&"load_skill"===n.name&&t.push(...G(n.args,"load_skill")),"task"===n.kind&&t.push(...E(n));return J(t)}(e)].filter(e=>e.name&&e.name!==n),i=J(a);if(0===i.length)return;let o=function(e,t){if(0===t.length)return null;let n=new Set(t),a=e.filter(e=>{for(let t=e.dialogStartIndex;t<=e.dialogEndIndex;t+=1)if(n.has(t))return!0;return!1});return 0===a.length?null:{start:Math.min(...a.map(A)),end:Math.max(...a.map(A))}}(t,e.interactionIndices);if(!o)return;let p=s.get(e.id),d=null!=p?Math.max(o.start,F(t,p)??o.start):o.start;for(let e of i)l.push({skillName:e.name,version:e.version,startActualStepIndex:d,endActualStepIndex:Math.max(d,o.end),trigger:"subagent"})}),l}(e,t,n);for(let e of[...f,...m])(e.skillName!==n||"subagent"===e.trigger)&&function(e,t){let n=e.find(e=>{var n,a;return e.skillName===t.skillName&&e.version===t.version&&(e.trigger===t.trigger||"primary"!==e.trigger&&"primary"!==t.trigger)&&(n=e,a=t,n.startActualStepIndex<=a.endActualStepIndex+1&&a.startActualStepIndex<=n.endActualStepIndex+1)});n?(n.startActualStepIndex=Math.min(n.startActualStepIndex,t.startActualStepIndex),n.endActualStepIndex=Math.max(n.endActualStepIndex,t.endActualStepIndex)):e.push(t)}(c,e);return c}(p,h,r||t,n),x=function(e,t){if(0===e.length)return[];let n=t.filter(e=>"primary"!==e.trigger).sort((e,t)=>e.startActualStepIndex-t.startActualStepIndex);if(0===n.length)return e.map(e=>k(e));let a=[...e].sort((e,t)=>e.dialogStartIndex-t.dialogStartIndex),r=[],s=0;for(;s<a.length;){let e=a[s],t=n.filter(t=>v(t,e));if(0===t.length){r.push(k(e)),s+=1;continue}let l=[],i=[],o=Math.min(...t.map(e=>e.startActualStepIndex)),p=Math.max(...t.map(e=>e.endActualStepIndex));for(;s<a.length;){let e=a[s],t=n.filter(t=>v(t,e)||t.startActualStepIndex<=p&&t.endActualStepIndex>=o),r=A(e);if(r>p&&0===t.length)break;for(let n of(l.push(e),t))i.includes(n)||i.push(n);o=Math.min(o,r,...t.map(e=>e.startActualStepIndex)),p=Math.max(p,r,...t.map(e=>e.endActualStepIndex)),s+=1}let d=function(e){let t=[],n=new Set;for(let a of e)!a||n.has(a)||(n.add(a),t.push(a));return t}(i.map(L)),u=d.length>0?d.join("、"):"子 Skill";r.push({evaluationStepId:`delegate-${o}-${p}`,uiStepIndexes:l.map(A),name:`委派 ${u} 执行子 Skill`,description:`主 Skill 视角的委派节点,覆盖 ${l.length} 个子 Skill 内部步骤;该区间内部行为不参与主 Skill 匹配。`,type:"action"})}return r}(h,g),I=await M(s,i,d,x,h,r||t,n,g),y=function(e,t,n,a){let r=["flowchart LR"],s={matched:"#4ade80",partial:"#fbbf24",unexpected:"#f87171",delegated:"#60a5fa",non_business:"#a3a3a3",skipped:"#94a3b8"};r.push(" subgraph Skill流程"),r.push(" direction LR"),e.steps.forEach((e,t)=>{let n=`S${t+1}`,a=S(`${t+1}. ${e.name}`),s="decision"===e.type?"{"+a+"}":"output"===e.type?"(("+a+"))":"["+a+"]";r.push(` ${n}${s}`)});for(let t=0;t<e.steps.length-1;t++){let e=`S${t+1}`,n=`S${t+2}`;r.push(` ${e} --> ${n}`)}r.push(" end"),r.push(""),r.push(" subgraph 实际执行轨迹"),r.push(" direction LR");let l=[];if([...t.filter(e=>"skipped"!==e.matchStatus)].sort((e,t)=>(e.actualStepIndex??0)-(t.actualStepIndex??0)).forEach((e,t)=>{let n=`A${t+1}`,s=e.matchStatus,i=e.actualStepIndex??t,o=S(`#${i} ${e.actualAction||`实际步骤 ${i}`}`),p=a.find(e=>A(e)===i||null==e.uiStepIndex&&e.dialogStartIndex<=i&&e.dialogEndIndex>=i),d=p?.type||"action";l.push({id:n,label:o,status:s,targetStep:e.expectedStepId,dialogIndex:i,type:d});let u="decision"===d?"{"+o+"}":"output"===d?"(("+o+"))":"["+o+"]";r.push(` ${n}${u}`)}),l.length>1)for(let e=0;e<l.length-1;e++)r.push(` ${l[e].id} --> ${l[e+1].id}`);return r.push(" end"),r.push(""),l.forEach(t=>{if("unexpected"!==t.status&&t.targetStep){let n=e.steps.findIndex(e=>e.id===t.targetStep);if(-1!==n){let e=`S${n+1}`;r.push(` ${e} -.- ${t.id}`)}}}),r.push(""),e.steps.forEach((e,a)=>{let l=`S${a+1}`,i=n.some(t=>t.expectedStepId===e.id),o=t.find(t=>t.expectedStepId===e.id&&"partial"===t.matchStatus),p=s[i?"skipped":o?"partial":"matched"];r.push(` style ${l} fill:${p},color:#0f172a`)}),l.forEach(e=>{let t=s[e.status];r.push(` style ${e.id} fill:${t},color:#0f172a`)}),r.join("\n")}(d,I.matches,I.skippedExpectedSteps,h);return await l.db.upsertExecutionMatch({executionId:e,skillId:t,skillVersion:n,user:a||null,mode:"compare",matchJson:JSON.stringify(I),staticMermaid:u.mermaidCode,dynamicMermaid:y,analysisText:JSON.stringify(I.problemSteps),extractedSteps:JSON.stringify(h),interactionCount:f}),{success:!0,result:I,staticMermaid:u.mermaidCode,dynamicMermaid:y,flow:d,extractedSteps:h,interactionCount:f}}catch(t){let e=t instanceof Error?t.message:"分析失败";return console.error("Execution match error:",t),{success:!1,error:e}}}async function b(e,t,n){if(!Array.isArray(n)||0===n.length)return[];let a=[];for(let e=0;e<n.length;e+=10)a.push(n.slice(e,e+10));let r=a.map(async(n,a)=>{var r,s;let l,o=10*a,p=(r=n,s=o,l=[],r.forEach((e,t)=>{let n=s+t;if(Array.isArray(e.requestMessages)||void 0!==e.responseMessage||void 0!==e.toolCall||Array.isArray(e.toolCalls)&&e.toolCalls.length>0){let t=[];if(Array.isArray(e.requestMessages)&&e.requestMessages.length>0){let n=[...e.requestMessages].reverse().find(e=>e?.role==="user");if(n){let e=I(n.content).slice(0,200);e&&t.push(`USER: ${e}`)}}if(e.responseMessage){let n=I(e.responseMessage.content).slice(0,300);n&&t.push(`ASSISTANT: ${n}`)}let a=y(e);if(a.length>0&&t.push(`[工具调用: ${a.join(", ")}]`),t.length>0)return void l.push(`[${n}] ${t.join(" | ")}`)}let a=e.role||"unknown",r="";if("string"==typeof e.content)r=e.content.substring(0,300);else if(Array.isArray(e.content)){r=I(e.content).substring(0,300);let t=y(e);t.length>0&&(r+=` [工具调用: ${t.join(", ")}]`)}l.push(`[${n}] ${a.toUpperCase()}: ${r}${r.length>=300?"...":""}`)}),l.join("\n")),d=(0,i.generateStepExtractPrompt)(p,a,o);try{let n=await e.chat.completions.create({messages:[{role:"user",content:d}],model:t,temperature:.3}),a=n.choices?.[0]?.message?.content;if(!a)return[];let r=a.trim(),s=r.match(/```(?:json)?\s*([\s\S]*?)\s*```/i);if(s)r=s[1];else{let e=r.indexOf("{"),t=r.lastIndexOf("}");-1!==e&&-1!==t&&t>=e&&(r=r.substring(e,t+1))}return JSON.parse(r).steps||[]}catch(e){return console.error(`Batch ${a} extract error:`,e),[]}});return(await Promise.all(r)).flat()}function w(e){return 0===e.length?[]:[...e].sort((e,t)=>e.dialogStartIndex-t.dialogStartIndex)}function k(e){let t=A(e);return{evaluationStepId:`main-${t}`,uiStepIndexes:[t],name:e.name,description:e.description,type:e.type}}function A(e){return"number"==typeof e.uiStepIndex?e.uiStepIndex:e.dialogStartIndex}function v(e,t){let n=A(t);return e.startActualStepIndex<=n&&e.endActualStepIndex>=n}async function M(e,t,n,a,r,s,l,o){let p=JSON.stringify(a,null,2),d=(0,i.generateExecutionMatchPrompt)(n,p,s),u=await e.chat.completions.create({messages:[{role:"user",content:d}],model:t,temperature:.3}),c=u.choices?.[0]?.message?.content;if(!c)throw Error("LLM 返回内容为空");f("execution_match",{skillId:s},{raw_output:c});let m=c.trim(),h=m.match(/```(?:json)?\s*([\s\S]*?)\s*```/i);if(h)m=h[1];else{let e=m.indexOf("{"),t=m.lastIndexOf("}");-1!==e&&-1!==t&&t>=e&&(m=m.substring(e,t+1))}let S=JSON.parse(m);return function(e,t,n,a,r,s,l){var i,o,p,d,u;let c,f,m,h,S,g,x,I,y,$,b,w=t.steps.map((e,t)=>({id:e.id,name:e.name,description:e.description,type:e.type,order:t})),k=(i=Array.isArray(e.matches)?e.matches:[],o=a,c=i.filter(e=>"skipped"!==e.matchStatus),f=new Map,c.forEach(e=>{e.evaluationStepId&&f.set(e.evaluationStepId,e)}),m=new Set,[...o].sort((e,t)=>Math.min(...e.uiStepIndexes)-Math.min(...t.uiStepIndexes)).map((e,t)=>{let n=Math.min(...e.uiStepIndexes),a=f.get(e.evaluationStepId)||c.find((t,n)=>!m.has(n)&&"number"==typeof t.actualStepIndex&&e.uiStepIndexes.includes(t.actualStepIndex))||c.find((e,n)=>!m.has(n)&&!e.evaluationStepId&&"number"!=typeof e.actualStepIndex&&n===t);if(!a)return{evaluationStepId:e.evaluationStepId,expectedStepId:void 0,expectedStepName:void 0,actualStepIndex:n,actualAction:e.name,matchStatus:"unexpected",matchReason:"LLM 未返回该主流程步骤的匹配记录,按未匹配步骤兜底。"};let r=c.indexOf(a);return r>=0&&m.add(r),{...a,evaluationStepId:e.evaluationStepId,actualStepIndex:n,actualAction:e.name}})),M=Array.isArray(e.skippedExpectedSteps)?e.skippedExpectedSteps:[],E=Array.isArray(e.problemSteps)?e.problemSteps:[],O=l||[],G=O.filter(e=>"primary"!==e.trigger),C=new Map,F=new Map;for(let e of k)e.evaluationStepId&&C.set(e.evaluationStepId,e),"number"==typeof e.actualStepIndex&&F.set(e.actualStepIndex,e);let J=new Map;for(let e of a){if(!e.evaluationStepId.startsWith("delegate-"))continue;let t=C.get(e.evaluationStepId),n=Math.min(...e.uiStepIndexes);t&&Number.isFinite(n)&&J.set(n,t)}let P=O.map(e=>{if("primary"===e.trigger)return e;let t=J.get(e.startActualStepIndex);if(!t)return e;let n=N(t.matchStatus);return{...e,expectedStepId:t.expectedStepId,expectedStepName:t.expectedStepName,evaluationStatus:n,evaluationReason:t.matchReason}}),_=n.slice().sort((e,t)=>e.dialogStartIndex-t.dialogStartIndex).map(e=>{var t;let n,a=A(e),r=G.filter(t=>v(t,e));if(r.length>0){let e=r.map(e=>J.get(e.startActualStepIndex)).find(Boolean);return{actualStepIndex:a,expectedStepId:e?.expectedStepId,expectedStepName:e?.expectedStepName,status:"delegated",reason:e?.matchReason||`该步骤位于子 Skill 执行区间:${r.map(L).join("、")},不参与主 Skill 内容匹配。`}}if(t=e,(n=`${t.name||""} ${t.description||""}`.toLowerCase()).trim()&&[/背景代理|后台代理|探索代码库|收集上下文|上下文信息|上下文收集|准备后续/,/读取\s*skill|加载\s*skill|查看\s*skill|skill\.md/,/查看原始日志|原始日志上下文|grep|less|cat|sed|tail|head/,/读取文件|查看文件|浏览文件|检查目录|列出目录|扫描目录/,/环境预热|初始化环境|准备环境|确认工作区|检查工作区/].some(e=>e.test(n)))return{actualStepIndex:a,status:"non_business",reason:"该步骤属于上下文收集、环境预热或流程衔接的过渡操作,不参与主 Skill 业务流程评分。"};let s=F.get(a);return{actualStepIndex:a,expectedStepId:s?.expectedStepId,expectedStepName:s?.expectedStepName,status:N(s?.matchStatus)||"unexpected",reason:s?.matchReason||"LLM 未返回该主流程步骤的匹配记录,按未匹配步骤兜底。"}}),T=_.slice().sort((e,t)=>e.actualStepIndex-t.actualStepIndex).map(e=>{let t=n.find(t=>A(t)===e.actualStepIndex);return{index:e.actualStepIndex,action:t?.name||`实际步骤 #${e.actualStepIndex}`,type:t?.type||"action",description:t?.description,dialogStartIndex:t?.dialogStartIndex,dialogEndIndex:t?.dialogEndIndex}}),j=new Set(_.filter(e=>"delegated"===e.status).map(e=>e.actualStepIndex)),q=E.map(e=>(function(e,t){if(!e.evaluationStepId)return e;let n=t.find(t=>t.evaluationStepId===e.evaluationStepId);return n?{...e,stepIndex:Math.min(...n.uiStepIndexes)}:e})(e,a)).filter(e=>"number"!=typeof e.stepIndex||!j.has(e.stepIndex)),R=new Map,K=new Map;for(let e of q)"number"==typeof e.stepIndex&&R.set(e.stepIndex,e),K.set(e.stepName,e);let D=[];for(let e of _){if("matched"===e.status||"delegated"===e.status||"non_business"===e.status)continue;let t=T.find(t=>t.index===e.actualStepIndex),n=R.get(e.actualStepIndex)||(e.expectedStepName?K.get(e.expectedStepName):void 0)||(t?.action?K.get(t.action):void 0);D.push({kind:e.status,actualStepIndex:e.actualStepIndex,expectedStepId:e.expectedStepId,expectedStepName:e.expectedStepName,severity:"unexpected"===e.status?"medium":"low",problem:n?.problem||e.reason||("unexpected"===e.status?"实际执行了 Skill 预期之外的步骤。":"实际执行只覆盖了部分 Skill 预期。"),suggestion:n?.suggestion,evidenceInteractionIndexes:function(e){if(e)return[e.index]}(t)})}for(let e of M){let t=K.get(e.expectedStepName);D.push({kind:"skipped",expectedStepId:e.expectedStepId,expectedStepName:e.expectedStepName,severity:"medium",problem:t?.problem||"Skill 中规定了该步骤,但实际执行流程没有覆盖。",suggestion:t?.suggestion})}let V=_.map(e=>{let t=T.find(t=>t.index===e.actualStepIndex);return{expectedStepId:e.expectedStepId,expectedStepName:e.expectedStepName,actualStepIndex:e.actualStepIndex,actualAction:t?.action||`实际步骤 #${e.actualStepIndex}`,matchStatus:e.status,matchReason:e.reason||""}}),B={actualSteps:T,expectedSteps:w,mappings:_,skippedExpectedSteps:M,skillSpans:P,violations:D,summary:(p=_,d=M,u=e.summary,h=p.filter(e=>"matched"===e.status).length,S=p.filter(e=>"partial"===e.status).length,g=p.filter(e=>"unexpected"===e.status).length,x=p.filter(e=>"delegated"===e.status).length,I=p.filter(e=>"non_business"===e.status).length,y=d.length,b=($=p.length)-I+y,{totalSteps:$,matchedSteps:h,partialSteps:S,unexpectedSteps:g,delegatedSteps:x,nonBusinessSteps:I,skippedSteps:y,orderViolations:u?.orderViolations??0,overallScore:Math.max(0,Math.min(1,b>0?(h+x+.5*S-.2*g)/b:1))})};return{...e,matches:V,skippedExpectedSteps:M,problemSteps:q,summary:B.summary,alignment:B}}(S,n,r,a,0,0,o)}function N(e){if("matched"===e||"partial"===e||"unexpected"===e||"non_business"===e)return e}function E(e){let t=e.args;return t&&"object"==typeof t?C(t.load_skills||t.loadSkills,"subagent"):[]}function O(e){let t=[];for(let n of function(e){let t=[],n=e=>{if(!e)return;let n=e.name||e.function?.name,a=e.arguments??e.function?.arguments;t.push({name:n,args:P(a)})};if(n(e.toolCall),Array.isArray(e.toolCalls)&&e.toolCalls.forEach(n),Array.isArray(e.tool_calls)&&e.tool_calls.forEach(n),Array.isArray(e.responseMessage?.tool_calls)&&e.responseMessage.tool_calls.forEach(n),Array.isArray(e.content))for(let n of e.content)("toolCall"===n.type||"tool_use"===n.type)&&n.name&&t.push({name:n.name,args:P(n.arguments||n.input)});return t}(e)){let e=n.name,a=n.args;"skill"===e&&t.push(...G(a,"invoked")),"load_skill"===e&&t.push(...G(a,"load_skill")),"task"===e&&a&&"object"==typeof a&&t.push(...C(a.load_skills||a.loadSkills,"subagent"))}return J(t)}function G(e,t){var n;if(!e||"object"!=typeof e)return[];let a=_(e.name)||_(e.skill)||_(e.skillName)||_(e.skill_name);return a?[{name:a,version:(n=e.version??e.skillVersion??e.skill_version,"number"==typeof n&&Number.isFinite(n)?n:void 0),trigger:t}]:[]}function C(e,t){if(!Array.isArray(e))return[];let n=[];for(let a of e){if("string"==typeof a&&a.trim()){n.push({name:a.trim(),trigger:t});continue}a&&"object"==typeof a&&n.push(...G(a,t))}return n}function F(e,t){let n=[...e].sort((e,t)=>e.dialogStartIndex-t.dialogStartIndex),a=n.find(e=>e.dialogStartIndex>=t);if(a)return A(a);let r=n.find(e=>e.dialogStartIndex<=t&&e.dialogEndIndex>=t);if(r)return A(r)}function J(e){let t=[],n=new Set;for(let a of e){let e=`${a.name}:${a.version??""}:${a.trigger}`;n.has(e)||(n.add(e),t.push(a))}return t}function L(e){return null!=e.version?`${e.skillName} v${e.version}`:e.skillName}function P(e){if("string"!=typeof e)return e;try{return JSON.parse(e)}catch{return e}}function _(e){return"string"==typeof e&&e.trim()?e.trim():void 0}async function T(e,t,n){return l.db.findParsedFlow(e,t,n||null)}async function j(e){return l.db.findExecutionMatch(e)}async function q(e,t){let{client:n,model:a}=await m(t);if(!n||!n.apiKey)return{success:!1,error:"请在首页左上角的设置中配置 LLM"};try{let r,s=await l.db.findSessionByTaskId(e);if(!s||!s.interactions)return{success:!1,error:"未找到执行记录或交互数据"};try{r="string"==typeof s.interactions?JSON.parse(s.interactions):s.interactions}catch{return{success:!1,error:"交互数据解析失败"}}let i=Array.isArray(r)?r.length:0;await l.db.upsertExecutionMatch({executionId:e,skillId:null,skillVersion:null,user:t||null,mode:"dynamic",matchJson:null,staticMermaid:null,dynamicMermaid:null,analysisText:null,extractedSteps:null,interactionCount:i});let o=await b(n,a,r),p=w(o),d=await R(n,a,p),u=function(e,t){let n=["flowchart LR"];e.forEach((e,t)=>{let a=`S${t+1}`,r=e.actualStepIndex,s=S(`#${r} ${e.actualAction}`),l="decision"===e.type?"{"+s+"}":"output"===e.type?"(("+s+"))":"["+s+"]";n.push(` ${a}${l}`)});for(let t=0;t<e.length-1;t++){let e=`S${t+1}`,a=`S${t+2}`;n.push(` ${e} --> ${a}`)}return n.push(""),e.forEach((e,t)=>{let a=`S${t+1}`;n.push(` style ${a} fill:#38bdf8,color:#0f172a`)}),n.join("\n")}(d.matches,0),c=JSON.stringify(p);return await l.db.upsertExecutionMatch({executionId:e,skillId:null,skillVersion:null,user:t||null,mode:"dynamic",matchJson:JSON.stringify(d),staticMermaid:null,dynamicMermaid:u,analysisText:null,extractedSteps:c,interactionCount:i}),{success:!0,dynamicMermaid:u,interactionCount:i}}catch(t){let e=t instanceof Error?t.message:"分析失败";return console.error("Dynamic analysis error:",t),{success:!1,error:e}}}async function R(e,t,n){let a=JSON.stringify(n,null,2),r=(0,i.generateDynamicOnlyMatchPrompt)(a),s=await e.chat.completions.create({messages:[{role:"user",content:r}],model:t,temperature:.3}),l=s.choices?.[0]?.message?.content;if(!l)throw Error("LLM 返回内容为空");let o=l.trim(),p=o.match(/```(?:json)?\s*([\s\S]*?)\s*```/i);if(p)o=p[1];else{let e=o.indexOf("{"),t=o.lastIndexOf("}");-1!==e&&-1!==t&&t>=e&&(o=o.substring(e,t+1))}return JSON.parse(o)}e.s(["analyzeDynamicOnly",()=>q,"analyzeExecutionMatch",()=>$,"extractKeyActionsFromFlow",()=>g,"getExecutionMatch",()=>j,"getParsedFlow",()=>T,"mergeKeyActionsFromMultipleSkills",()=>x,"parseSkillFlow",()=>h]),n()}catch(e){n(e)}},!1)];
|
|
300
300
|
|
|
301
301
|
//# sourceMappingURL=src_9c08bd78._.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
module.exports=[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="",o=0,s=0,u=0,d=0,c=0,m=0,p=0,f=0,h=0,_=Number.MAX_SAFE_INTEGER,g=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 y=t(r.timeInfo?.created),x=t(r.timeInfo?.completed),b=t(r.timestamp);if(y&&(_=Math.min(_,y),g=Math.max(g,y)),x&&(g=Math.max(g,x)),b&&(_=Math.min(_,b),g=Math.max(g,b)),!k)continue;m++;let I=r.usage;if(I){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}}(I);n+=e.total,o+=e.input,s+=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(p+=r.tool_calls.length,r.tool_calls))(e?.state==="error"||e?.state==="failed")&&f++}return _!==Number.MAX_SAFE_INTEGER&&g>_&&(r=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(o),output_tokens:Math.round(s),tool_call_count:p,tool_call_error_count:f,llm_call_count:m,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=[],s=e=>{a.push({...e,stepIndex:a.length+1})},c=i.find(e=>e?.role==="user"&&String(e.content||"").trim());c&&s({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:o(c.timeInfo?.created)??o(c.timestamp),completedAt:o(c.timeInfo?.completed),rawText:String(c.content||""),rawInput:String(c.content||"")});let m=(0,t.buildAgentCallTree)(i);return m&&(0,t.walkTree)(m,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,o=n&&(n.interaction?.content||n.summary)||void 0;s({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:o}),e.events.forEach((t,n)=>{let a,l,o=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,o=new Set(e.interactionIndices.filter(e=>e<n)),s=[];for(let t of e.systemPrompts||[])t.text?.trim()&&s.push(`[System]
|
|
2
2
|
${d(t.text,1500)}`);for(let e of Array.from(o).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?s.push(`[User]
|
|
3
3
|
${d(n,2e3)}`):("assistant"===t.role||"subagent"===t.role)&&s.push(`[Assistant]
|
|
4
|
-
${d(n,2e3)}`))}a=s.length>0?s.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)));s({id:`event:${e.id}:${n}`,name:o.name,meta:o.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:[o.name,o.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&&s({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 o=s([e.failure_type,e.description,e.context,e.recovery,e.step].filter(Boolean).join(" ")),d=t.map(e=>{let t=0,n=s(e.rawText||`${e.name} ${e.meta}`);for(let e of Array.from(new Set(o.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(o)&&"llm"===e.kind&&(t+=8),/tool|工具|bash|command|exit code|stderr|非零/.test(o)&&"tool"===e.kind&&(t+=7),/skill|技能|SKILL\.md/i.test(o)&&"skill"===e.kind&&(t+=7),/timeout|超时|卡住/.test(o)&&(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 o(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 s(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])},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/
|
|
4
|
+
${d(n,2e3)}`))}a=s.length>0?s.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)));s({id:`event:${e.id}:${n}`,name:o.name,meta:o.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:[o.name,o.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&&s({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 o=s([e.failure_type,e.description,e.context,e.recovery,e.step].filter(Boolean).join(" ")),d=t.map(e=>{let t=0,n=s(e.rawText||`${e.name} ${e.meta}`);for(let e of Array.from(new Set(o.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(o)&&"llm"===e.kind&&(t+=8),/tool|工具|bash|command|exit code|stderr|非零/.test(o)&&"tool"===e.kind&&(t+=7),/skill|技能|SKILL\.md/i.test(o)&&"skill"===e.kind&&(t+=7),/timeout|超时|卡住/.test(o)&&(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 o(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 s(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])},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_9cf1dab3._.js","server/chunks/src_34fb142e._.js","server/chunks/src_lib_84cf46e8._.js","server/chunks/_4b744f5c._.js","server/chunks/src_9c08bd78._.js"].map(t=>e.l(t))).then(()=>t(982505)))}];
|
|
5
5
|
|
|
6
6
|
//# sourceMappingURL=src_lib_7bae418f._.js.map
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
module.exports=[363884,e=>{"use strict";var t=e.i(68683);function n(e){if(!e)return null;try{return(0,t.normalizeEndpoint)(e)}catch{return null}}e.s(["normalizeEndpointUrl",()=>n])},137165,e=>{"use strict";var t=e.i(522734),n=e.i(814747);let i={"claude-opus-4-6":{inputTokenPrice:5,outputTokenPrice:25,cacheReadInputTokenPrice:.5,cacheCreationInputTokenPrice:6.25},"claude-sonnet-4-6":{inputTokenPrice:3,outputTokenPrice:15,cacheReadInputTokenPrice:.3,cacheCreationInputTokenPrice:3.75},"deepseek-chat":{inputTokenPrice:.28,outputTokenPrice:.42,cacheReadInputTokenPrice:.028},"deepseek-reasoner":{inputTokenPrice:.28,outputTokenPrice:.42,cacheReadInputTokenPrice:.028},"minimax-m2.5-free":{inputTokenPrice:0,outputTokenPrice:0}},l={"claude-opus-4-6":1e6,"claude-sonnet-4-6":1e6,"deepseek-chat":128e3,"deepseek-reasoner":128e3,"minimax-m2.5-free":196608},r=n.default.join(process.cwd(),"custom-models.json"),s={},o={},a=-1;function u(){try{let e=t.default.statSync(r).mtimeMs;if(e===a)return{pricing:s,contextWindows:o};let n=JSON.parse(t.default.readFileSync(r,"utf-8")),i={},l={};for(let[e,t]of Object.entries(n))e.startsWith("_")||("number"==typeof t.inputTokenPrice&&"number"==typeof t.outputTokenPrice&&(i[e]=t),"number"==typeof t.contextWindow&&(l[e]=t.contextWindow));s=i,o=l,a=e}catch(e){e instanceof SyntaxError&&console.warn("[model-config] Failed to parse custom-models.json:",e.message),s={},o={},a=-1}return{pricing:s,contextWindows:o}}function c(e,t){if(t[e])return t[e];for(let[n,i]of Object.entries(t).sort((e,t)=>t[0].length-e[0].length))if(e.startsWith(n))return i;return null}function d(e){let{pricing:t}=u(),n=c(e,t);if(n)return{pricing:n,source:"custom"};let l=c(e,i);return l?{pricing:l,source:"default"}:null}function m(e){let{contextWindows:t}=u(),n=c(e,t);if(null!=n)return{contextWindow:n,source:"custom"};let i=c(e,l);return null!=i?{contextWindow:i,source:"default"}:null}function p(e,t,n,i,l){let r=n.cacheReadInputTokenPrice??.1*n.inputTokenPrice,s=n.cacheCreationInputTokenPrice??1.25*n.inputTokenPrice;return(e*n.inputTokenPrice+(i??0)*r+(l??0)*s+t*n.outputTokenPrice)/1e6}e.s(["DEFAULT_CACHE_CREATION_RATIO",0,1.25,"DEFAULT_CACHE_READ_RATIO",0,.1,"calculateCost",()=>p,"getModelContextWindow",()=>m,"getModelPricing",()=>d])},711340,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 n="string"==typeof e.existingLabel?e.existingLabel.trim():"",i="string"==typeof e.skill?e.skill.trim():"",l=e.skillVersion??null;if(n&&!(n&&"without-skill"===n))return n;if(i){let e="number"==typeof l&&Number.isFinite(l)?l:0;return`${i}-v${e}`}return"without-skill"}e.s(["chooseExecutionLabel",()=>t])},160570,e=>{"use strict";function t(e){let t="string"==typeof e?e.trim():"";if(!t||"without-skill"===t)return null;let n=t.match(/^(.+)-v(\d+)$/);if(!n)return null;let i=(n[1]||"").trim(),l=Number(n[2]);return i&&Number.isFinite(l)&&!(l<0)?{skill:i,skill_version:l,skills:[i],invokedSkills:[{name:i,version:l}]}:null}e.s(["parseLabelSkillVersionBinding",()=>t])},524913,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=e.id??e.message_id??e.messageID;if("string"==typeof n&&n.trim())return`id:${n.trim()}`;let i="string"==typeof e.role?e.role:"unknown",l=t(e.timestamp)??t(e.timeInfo?.created)??t(e.timeInfo?.completed)??0,r="string"==typeof e.subagent_session_id?e.subagent_session_id:"";return`k:${r}:${l}:${i}`}function i(e,i){let l=Array.isArray(e)?e:[],r=Array.isArray(i)?i:[],s=new Map,o=new Map,a=0;for(let e of l){if(!e)continue;let t=n(e);s.has(t)||(s.set(t,e),o.set(t,a++))}for(let e of r){if(!e)continue;let t=n(e),i=s.get(t);i?s.set(t,function(e,t){let n={...e,...t},i="string"==typeof e.content?e.content:"",l="string"==typeof t.content?t.content:"";return i&&!l?n.content=i:i&&l&&l.length<i.length&&(n.content=i),e.subagent_name&&!t.subagent_name&&(n.subagent_name=e.subagent_name),e.agent&&!t.agent&&(n.agent=e.agent),e.subagent_session_id&&!t.subagent_session_id&&(n.subagent_session_id=e.subagent_session_id),n.tool_calls=function(e,t){let n=Array.isArray(e)?e:[],i=Array.isArray(t)?t:[];if(0===n.length)return i;if(0===i.length)return n;let l=new Set,r=[];for(let e of[...n,...i]){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 n=e?.function?.name??e?.name??"",i=e?.function?.arguments??e?.arguments??"";return`sig:${n}:${function(e){let t=5381;for(let n=0;n<e.length;n++)t=(t<<5)+t^e.charCodeAt(n);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)}}(i))}`}(e);l.has(t)||(l.add(t),r.push(e))}return r}(e.tool_calls,t.tool_calls),e.usage&&!t.usage&&(n.usage=e.usage),e.timeInfo&&!t.timeInfo&&(n.timeInfo=e.timeInfo),n}(i,e)):(s.set(t,e),o.set(t,a++))}let u=Array.from(s.entries()).map(([e,n])=>({k:e,v:n,ts:t(n.timestamp)??t(n.timeInfo?.created)??t(n.timeInfo?.completed)??0,order:o.get(e)??0}));return u.sort((e,t)=>e.ts-t.ts||e.order-t.order),u.map(e=>e.v)}e.s(["mergeSessionInteractionsMonotonic",()=>i])},365759,e=>{"use strict";var t=e.i(997215),n=e.i(738282);let i={descriptor:{id:"claude",aliases:["claudecode"],label:"Claude Code",onboard:"watcher",platform:"claude"},normalizeForStorage:t.normalizeClaudeCodeInteractionsForStorage,extractSkills:n.extractSkillsWithVersionsFromClaudeSession},l={descriptor:{id:"hermes",label:"Hermes",onboard:"plugin",platform:"hermes"},capabilities:{skills:!0,subagentTree:!0},sessionMergeStrategy:"snapshot-replace",extractSkills:n.extractSkillsWithVersionsFromHermesSession},r={descriptor:{id:"jiuwenswarm",aliases:["jiuwen","openjiuwen"],label:"JiuwenSwarm",onboard:"env",platform:"jiuwenswarm"},capabilities:{subagentTree:!0,skills:!0},sessionMergeStrategy:"snapshot-replace",extractSkills:n.extractSkillsWithVersionsFromJiuwenSession},s={descriptor:{id:"langfuse-langgraph",label:"Langfuse-Langgraph",onboard:"env",platform:"langfuse"},capabilities:{skills:!0,subagentTree:!0},sessionMergeStrategy:"snapshot-replace",extractSkills:n.extractSkillsWithVersionsFromOpencodeSession},o={descriptor:{id:"openclaw",label:"OpenClaw",onboard:"plugin",platform:"openclaw"},extractSkills:n.extractSkillsWithVersionsFromOpenClawSession},a={descriptor:{id:"opencode",label:"OpenCode",onboard:"plugin",platform:"opencode"},extractSkills:n.extractSkillsWithVersionsFromOpencodeSession},u={descriptor:{id:"unknown",label:"Unknown",onboard:"env"}},c=new Map;for(let e of[a,i,o,l,r,s])for(let t of(c.set(e.descriptor.id.toLowerCase(),e),e.descriptor.aliases??[]))c.set(t.toLowerCase(),e);function d(e){return String(e??"").trim().toLowerCase()}function m(e){return c.get(d(e))??u}function p(e){let t=d(e);return c.get(t)?.descriptor.id??t}e.s(["getAdapter",()=>m,"resolveFrameworkId",()=>p],365759)},543050,e=>{"use strict";let t={string:["=","contains","does not contain","starts with","ends with"],number:["=",">","<",">=","<="],datetime:[">","<",">=","<="],stringOptions:["any of","none of"],arrayOptions:["any of","none of","all of"],boolean:["="]},n=["is null","is not null"],i=new Map([{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:"isSkillCorrect",type:"boolean",label:"Skill 正确",description:"评测:skill 是否正确",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]));function l(e){return i.get(e)}let r=Symbol("invalid"),s={"=":"equals",">":"gt","<":"lt",">=":"gte","<=":"lte"};function o(e,i=l){let d=[],m=[],p=[];for(let l of e){let e=i(l.column);if(!e){p.push({clause:l,reason:`unknown column: ${l.column}`});continue}if(!function(e,i){let l;return(l=t[e.type],e.nullable?[...l,...n]:l).includes(i)}(e,l.operator)){p.push({clause:l,reason:`operator "${l.operator}" not allowed on ${e.type} column "${e.column}"`});continue}let o=e.source??"execution";if("executionSkill"===o||"computed"===o){m.push(l);continue}let k="observedAgents"===o?function(e,t){let n=a(e),i=t.operator;if("is null"===i)return{[n]:null};if("is not null"===i)return{[n]:{not:null}};let l=c(t.value);if(null===l||0===l.length)return r;let s=e=>({[n]:{contains:JSON.stringify(e)}});return"any of"===i?{OR:l.map(s)}:"all of"===i?{AND:l.map(s)}:"none of"===i?u({NOT:{OR:l.map(s)}},e):r}(e,l):function(e,t){var n,i;let l=a(e),o=t.operator;if("is null"===o)return{[l]:null};if("is not null"===o)return{[l]:{not:null}};switch(e.type){case"string":{let i="string"==typeof(n=t.value)?n:"number"==typeof n||"boolean"==typeof n?String(n):null;if(null===i)return r;switch(o){case"=":return{[l]:i};case"contains":return{[l]:{contains:i}};case"does not contain":return u({NOT:{[l]:{contains:i}}},e);case"starts with":return{[l]:{startsWith:i}};case"ends with":return{[l]:{endsWith:i}};default:return r}}case"number":{let e=function(e){if("number"==typeof e)return Number.isFinite(e)?e:null;if("string"==typeof e&&""!==e.trim()){let t=Number(e);return Number.isFinite(t)?t:null}return null}(t.value),n=s[o];if(null===e||!n)return r;return{[l]:{[n]:e}}}case"datetime":{let e=function(e){if("number"==typeof e||"string"==typeof e&&""!==e.trim()){let t=new Date(e);return Number.isNaN(t.getTime())?null:t}return null}(t.value),n=s[o];if(null===e||!n)return r;return{[l]:{[n]:e}}}case"boolean":{let e="boolean"==typeof(i=t.value)?i:"true"===i||"false"!==i&&null;if(null===e)return r;return{[l]:{equals:e}}}case"stringOptions":{let n=c(t.value);if(null===n||0===n.length)return r;if("any of"===o)return{[l]:{in:n}};if("none of"===o)return u({[l]:{notIn:n}},e);return r}default:return r}}(e,l);if(k===r){p.push({clause:l,reason:`invalid value for ${e.type} operator "${l.operator}"`});continue}null!==k&&d.push(k)}return{where:d.length?{AND:d}:{},deferred:m,errors:p}}function a(e){return e.field??e.column}function u(e,t){return t.nullable?{OR:[e,{[a(t)]:null}]}:e}function c(e){if(Array.isArray(e)){let t=e.map(e=>"string"==typeof e||"number"==typeof e?String(e):null);return t.every(e=>null!==e)?t:null}return"string"==typeof e||"number"==typeof e?[String(e)]:null}e.s(["buildPrismaWhere",()=>o],543050)},948594,e=>e.a(async(t,n)=>{try{var i=e.i(522734),l=e.i(814747),r=e.i(547499),s=e.i(307692),o=e.i(363884),a=e.i(854763),u=e.i(137165),c=e.i(384660),d=e.i(262197),m=e.i(274149),p=e.i(68987),k=e.i(243080),f=e.i(711340),g=e.i(160570),_=e.i(8129),y=e.i(524913),h=e.i(286372),v=e.i(837926),w=e.i(365759),b=e.i(738282),S=e.i(543050),x=t([s,a,m,_]);[s,a,m,_]=x.then?(await x)():x;let ei=!process.env.DB_HOST,el=/^[a-zA-Z0-9_\-\.]+$/;function A(e){let t=new Set,n=[];for(let i of e.events||[]){if("skill"!==i.kind)continue;let e=i.args&&"object"==typeof i.args?i.args:{},l=e.name??e.skill_name??e.skillName??e.skill;if(null==l||!String(l).trim())continue;let r=String(l).trim().replace(/^['"]+|['"]+$/g,"");if(!el.test(r)||t.has(r))continue;t.add(r);let s=null!=e.version?Number(e.version):null;n.push({name:r,version:null===s||isNaN(s)?null:s})}return n}async function T(e,t){let n=Array.from(new Set(e.filter(e=>null==e.version).map(e=>e.name))),i=new Map;if(n.length>0)try{for(let e of(await a.prisma.skill.findMany({where:{name:{in:n},...t?{OR:[{user:t},{user:null}]}:{}},select:{name:!0,activeVersion:!0}})))"number"==typeof e.activeVersion&&i.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:i.get(e.name)??null})}async function I(e,t,n={}){if(ei&&e)try{if(await a.prismaRaw.executionSkill.deleteMany({where:{executionId:e}}),!t.length)return;let i=new Set,l=[];for(let r of t){if(!r?.name)continue;let t=`${r.name}@@${r.version??""}`;i.has(t)||(i.add(t),l.push({executionId:e,skillName:r.name,skillVersion:r.version??null,isPrimary:null!=n.primaryName&&r.name===n.primaryName,user:n.user??null}))}l.length&&await a.prismaRaw.executionSkill.createMany({data:l})}catch(t){console.warn(`[Data-Service] persistExecutionSkills failed for ${e}:`,t)}}let er=new Set([...(process.env.TRACE_SERVICE_OWNERS||"admin,anonymous").split(",").map(e=>e.trim()).filter(Boolean),"","debug-user","anonymous"]);function N(e){return er.has((e||"").trim())}async function C(e,t){let n=(e||"").trim(),i=(t||"").trim();if(!n||!i||N(i))return!1;let l=await a.prismaRaw.execution.findUnique({where:{id:n},select:{id:!0,taskId:!0,user:!0}});if(l||(l=await a.prismaRaw.execution.findFirst({where:{taskId:n},select:{id:!0,taskId:!0,user:!0}})),!l)return!1;let r=(l.user||"").trim();if(r===i||!N(r))return!1;let s=[...er].filter(Boolean);await a.prismaRaw.execution.update({where:{id:l.id},data:{user:i}}),await a.prismaRaw.execution.updateMany({where:{rootExecutionId:l.id,OR:[{user:{in:s}},{user:null}]},data:{user:i}});try{await a.prismaRaw.executionSkill.updateMany({where:{executionId:l.id},data:{user:i}})}catch{}if(l.taskId)try{await a.prismaRaw.session.updateMany({where:{taskId:l.taskId},data:{user:i}})}catch{}return!0}function O(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 n=Date.parse(t);return Number.isFinite(n)?n:null}let es="未找到匹配的效果评测配置";function E(e){let t=e.trim(),n=[['"','"'],["'","'"],["“","”"],["‘","’"],["`","`"],["《","》"],["(",")"],["(",")"],["【","】"],["[","]"],["{","}"],["<",">"]];for(let e=0;e<6;e++){let e=t;for(let[e,i]of(t=t.trim(),n))t.startsWith(e)&&t.endsWith(i)&&t.length>=e.length+i.length+1&&(t=t.slice(e.length,-i.length));if(t===e)break}return t=(t=(t=t.replace(/[\s"'“”‘’`。.]/g,"")).replace(/^[\s.,,。!?!?;;::、·…]+|[\s.,,。!?!?;;::、·…]+$/g,"")).replace(/\s+/g," ").trim()}function M(e,t,n="any"){if(!t)return;let i=E(t);if(!i)return;let l=e.filter(e=>e.query&&e.query.trim()).filter(e=>{let t=E(e.query||"");return!!t&&i.endsWith(t)}).filter(e=>"any"===n||(0,c.configSupportsDatasetType)(e.dataset_type,n));if(0!==l.length)return l.reduce((e,t)=>{let i=E(e.query||"").length,l=E(t.query||"").length;if(l!==i)return l>i?t:e;let r=(0,c.getDatasetTypePriority)(e.dataset_type,n);return(0,c.getDatasetTypePriority)(t.dataset_type,n)>r?t:e})}async function R(e,t,n){let i=(0,d.normalizeConfigQuery)(t);if(!i)return;let l=e.filter(e=>(0,c.configSupportsDatasetType)(e.dataset_type,"routing")),r=[];for(let e of l){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 n=(0,m.matchQueryToStoredRoutingSignature)(i,t);(0!==n.matchedAnchors.length||n.intentMatched)&&r.push({config:e,signature:t,matchedAnchors:n.matchedAnchors,anchorCoverage:n.anchorCoverage,intentMatched:n.intentMatched})}if(0===r.length)return;r.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 n=(0,c.getDatasetTypePriority)(e.config.dataset_type,"routing"),i=(0,c.getDatasetTypePriority)(t.config.dataset_type,"routing");if(i!==n)return i-n;let l=e.signature.anchors.join("").length;return t.signature.anchors.join("").length-l});let s=r[0];return s.config.routing_intent=s.signature.intent,s.config.routing_anchors=s.signature.anchors,s.config}function D(e,t){let n=function(e){let t=(0,d.normalizeConfigSkillName)(e.skill);if(t)return{skill:t,version:e.skill_version??null};let n=q(e),i=Array.from(new Map(n.filter(e=>e.name?.trim()).map(e=>[`${e.name.trim()}::${e.version??"any"}`,e])).values());if(1===i.length)return{skill:i[0].name.trim(),version:i[0].version??null}}(t);if(!n)return;let i=(0,d.normalizeConfigQuery)(t.query),l=e.filter(e=>(0,c.configSupportsDatasetType)(e.dataset_type,"outcome")).filter(e=>(0,d.normalizeConfigSkillName)(e.skill)===n.skill).filter(e=>{let t=e.skillVersion??null;return null===t||t===n.version}).filter(e=>{let t=(0,d.normalizeConfigQuery)(e.query);return!t||t===i});if(0!==l.length)return l.reduce((e,t)=>{let l=(e.skillVersion??null)!==null&&e.skillVersion===n.version,r=(t.skillVersion??null)!==null&&t.skillVersion===n.version;if(l!==r)return r?t:e;let s=(0,d.normalizeConfigQuery)(e.query)===i,o=(0,d.normalizeConfigQuery)(t.query)===i;if(s!==o)return o?t:e;let a=!(0,d.normalizeConfigQuery)(e.query),u=!(0,d.normalizeConfigQuery)(t.query);if(a!==u)return u?t:e;let m=(0,c.getDatasetTypePriority)(e.dataset_type,"outcome");return(0,c.getDatasetTypePriority)(t.dataset_type,"outcome")>m?t:e})}function V(e){if(!e)return[];let t=(0,c.normalizeExpectedSkills)(e.expectedSkills);return t.length>0?t:e.skill?.trim()?[{skill:e.skill.trim(),version:e.skillVersion??null}]:[]}function q(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 $(e,t){if(!Array.isArray(t))return null;let n=(0,b.normalizeInteractions)(t);return(0,w.getAdapter)(e).extractSkills?.(n)??null}function J(e,t,n){let i=new Map,l=(e,t)=>{let n=e?.trim();if(!n)return;let l=i.get(n)||{skill:n,expected_version:null,invoked_version:null,primary_version:null,is_expected:!1,is_invoked:!1,is_primary:!1,is_outcome_anchor:!1};i.set(n,{...l,...t,expected_version:void 0!==t.expected_version?t.expected_version:l.expected_version,invoked_version:void 0!==t.invoked_version?t.invoked_version:l.invoked_version,primary_version:void 0!==t.primary_version?t.primary_version:l.primary_version,is_expected:t.is_expected??l.is_expected,is_invoked:t.is_invoked??l.is_invoked,is_primary:t.is_primary??l.is_primary,is_outcome_anchor:t.is_outcome_anchor??l.is_outcome_anchor})};for(let n of(l(e.skill,{is_primary:!0,primary_version:e.skill_version??null}),V(t)))l(n.skill,{is_expected:!0,expected_version:n.version??null});for(let t of q(e))l(t.name,{is_invoked:!0,invoked_version:t.version??null});return n?.skill?.trim()&&l(n.skill,{is_outcome_anchor:!0}),Array.from(i.values()).sort((e,t)=>{let n=4*Number(e.is_primary)+2*Number(e.is_invoked)+Number(e.is_expected),i=4*Number(t.is_primary)+2*Number(t.is_invoked)+Number(t.is_expected);return n!==i?i-n:e.skill.localeCompare(t.skill)})}async function F(e,t){if(!e||Array.isArray(e.key_actions)&&e.key_actions.length>0)return;let n=function(e){let t=new Map,n=(e,n)=>{let i=(0,d.normalizeConfigSkillName)(e);if(!i)return;let l=n??null;t.set(`${i}::${l??"any"}`,{skill:i,version:l})};for(let t of(n(e.skill,e.skillVersion??null),(0,c.normalizeExpectedSkills)(e.expectedSkills)))n(t.skill,t.version??null);return Array.from(t.values())}(e);if(0===n.length)return;let i=[];for(let e of n){let n=await a.db.findSkill(e.skill,t||null);if(!n)continue;let l=e.version??n.activeVersion??n.versions?.[0]?.version??null;if(null==l)continue;let r=await a.db.findParsedFlow(n.id,l,t||null);if(!r?.flowJson)continue;let s=JSON.parse(r.flowJson),o=(0,_.extractKeyActionsFromFlow)(s).map(t=>({...t,skillSource:t.skillSource||e.skill}));o.length>0&&i.push({name:e.skill,actions:o})}if(0===i.length)return;let l=1===i.length?i[0].actions:(0,_.mergeKeyActionsFromMultipleSkills)(i);e.key_actions=l.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=l;try{await a.db.updateConfig(e.id,{keyActions:JSON.stringify(e.key_actions),extractedKeyActions:JSON.stringify(l)}),console.log(`[AutoExtract] Auto-filled key_actions for config ${e.id} from ${n.map(e=>e.skill).join(", ")}`)}catch(e){console.error("[AutoExtract] Error updating config with extracted key_actions:",e)}}async function P(e,t,n){let i=q(e),l=J(e,t);if(!t)return{status:"missing",expected_skills:[],invoked_skills:i,matched_skills:[],matched_anchors:[],expected_count:0,matched_count:0,is_correct:!1,trigger_rate:null,skill_breakdown:l.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 r=V(t),s=[],o=0,u=new Map,m=r.filter(e=>null!==e.version&&!i.some(t=>t.name===e.skill&&null!==t.version)).map(e=>e.skill);if(m.length>0)try{for(let e of(await a.db.findSkills({name:{in:m},user:n||null})))u.set(e.name,e)}catch(e){console.error("[RoutingEvaluation] Error fetching skills for version check:",e)}for(let e of r){let t=i.find(t=>t.name===e.skill);if(!t)continue;let n=!1;if(null===e.version)n=!0;else if(null!==t.version)n=t.version===e.version;else{let t=u.get(e.skill);n=(t?t.activeVersion||0:null)===e.version}n&&(o+=1,s.push({skill:e.skill,expected_version:e.version,invoked_version:t.version??null}))}let p=l.map(e=>{let t=s.some(t=>t.skill===e.skill),n="not_applicable";return e.is_expected?n=t?"matched":"missed":e.is_invoked&&(n="unexpected"),{skill:e.skill,expected:e.is_expected,invoked:e.is_invoked,matched:t,status:n,expected_version:e.expected_version,invoked_version:e.invoked_version}});return{status:"available",matched_config_id:t.id,matched_query:(0,d.normalizeConfigQuery)(t.query)||void 0,matched_intent:t.routing_intent||void 0,matched_anchors:t.routing_anchors||[],dataset_type:(0,c.normalizeConfigDatasetType)(t.dataset_type),expected_skills:r,invoked_skills:i,matched_skills:s,expected_count:r.length,matched_count:o,is_correct:o>0,trigger_rate:r.length>0?o/r.length:null,skill_breakdown:p}}async function j(e,t,n){let i=e.query?await R(t,e.query,n??e.user??null):void 0,l=D(t,e),r=await P(e,i,n??e.user??null),s=e.task_id||e.upload_id||"",o=null;if(s)try{let e=await a.db.findExecutionMatch(s);e&&(o={matchJson:e.matchJson??null,matchedAt:e.matchedAt??null,mode:e.mode??null})}catch{o=null}return{...e,routing_evaluation:r,outcome_evaluation:function(e,t,n,i){let l=J(e,n,t),r=(e,t)=>l.map(n=>{let l="context_only";n.is_primary?l="primary":n.is_invoked?l="invoked":n.is_expected&&(l="expected_only");let r=i?.status==="available"?i.skill_breakdown.find(e=>e.skill===n.skill)?.status||"not_applicable":"missing_dataset";return{skill:n.skill,version:n.invoked_version??n.primary_version??n.expected_version??null,role:l,is_primary:n.is_primary,is_invoked:n.is_invoked,is_expected:n.is_expected,routing_status:r,shares_execution_outcome:!0,score:e,is_correct:t}});if(!t)return{status:"missing",is_correct:null,score:null,reason:e.judgment_reason||es,standard_answer_present:!1,root_cause_count:0,key_action_count:0,skill_breakdown:r(null,null)};let s="结果评估中..."===e.judgment_reason?"pending":"available",o="pending"===s?null:e.answer_score??null,a="pending"===s?null:e.is_answer_correct??null;return{status:s,matched_config_id:t.id,matched_query:(0,d.normalizeConfigQuery)(t.query)||void 0,matched_skill:(0,d.normalizeConfigSkillName)(t.skill)||void 0,matched_skill_version:t.skillVersion??null,dataset_type:(0,c.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:r(o,a)}}(e,l,i,r),execution_match:o}}let eo=(0,r.resolveAgentInsightDataPath)(),ea=l.default.join(eo,"evaluation_result.json"),eu="1"===process.env.AUDIT_DATA_MUTATIONS||"true"===process.env.AUDIT_DATA_MUTATIONS;async function L(e){let t={isSubagent:!1};e&&(t.user=e);let n=await a.db.findExecutions(t,{timestamp:"desc"}),i=[],l=new Set;for(let e of n){let t=String(e?.agentName||"").trim();!t||l.has(t)||(0,v.isEvaluatorAgentName)(t)||(l.add(t),i.push(t))}return i}async function W(e){let t=new Map;if(ei)try{let n={};for(let i of(e&&(n.user=e),await a.prismaRaw.executionSkill.findMany({where:n,select:{skillName:!0,skillVersion:!0},distinct:["skillName","skillVersion"]}))){if(!i.skillName)continue;let e=t.get(i.skillName)??new Set;"number"==typeof i.skillVersion&&e.add(i.skillVersion),t.set(i.skillName,e)}}catch(e){console.warn("[listObservedSkills] ExecutionSkill query failed, falling back to legacy column:",e)}if(0===t.size){let n={};for(let i of(e&&(n.user=e),await a.db.findExecutions(n,{timestamp:"desc"},{skill:!0,skillVersion:!0}))){let e=String(i?.skill||"").trim();if(!e)continue;let n=t.get(e)??new Set;"number"==typeof i.skillVersion&&n.add(i.skillVersion),t.set(e,n)}}return Array.from(t.entries()).map(([e,t])=>({name:e,versions:Array.from(t).sort((e,t)=>e-t)})).sort((e,t)=>e.name.localeCompare(t.name))}let ec=new Set(["framework","agentName","model","subagentType"]);async function z(e,t){if("skill"===e)try{return(await a.prismaRaw.executionSkill.groupBy({by:["skillName"],where:t?{user:t}:void 0,_count:{executionId:!0}})).map(e=>({value:String(e.skillName??""),count:e._count.executionId??0})).filter(e=>""!==e.value).sort((e,t)=>t.count-e.count)}catch(e){return console.warn("[listObservedFieldValues] skill groupBy failed:",e?.message),[]}if(!ec.has(e))return[];let n={isSubagent:!1,[e]:{not:null}};t&&(n.user=t);try{return(await a.prismaRaw.execution.groupBy({by:[e],where:n,_count:{_all:!0}})).map(t=>({value:String(t[e]??""),count:t._count?._all??0})).filter(e=>""!==e.value).sort((e,t)=>t.count-e.count)}catch(t){return console.warn("[listObservedFieldValues] groupBy failed:",e,t?.message),[]}}async function B(e,t){let n={isSubagent:!1};e&&(n.user=e),t&&(n.agentName=t);let i=await a.db.findExecutions(n,{timestamp:"desc"}),l=[],r=new Set;for(let e of i){let t=String(e?.taskId||"").trim();if(t){if(r.has(t))continue;r.add(t),l.push(t);continue}let n=String(e?.id||"").trim();n&&l.push(n)}return l}let ed={id:!0,taskId:!0,query:!0,framework:!0,tokens:!0,cost:!0,latency:!0,toolCallCount:!0,llmCallCount:!0,inputTokens:!0,outputTokens:!0,toolCallErrorCount:!0,cacheReadInputTokens:!0,cacheCreationInputTokens:!0,maxSingleCallTokens:!0,reasoningTokens:!0,timestamp:!0,model:!0,agentName:!0,agentId:!0,skill:!0,skills:!0,invokedSkills:!0,isSkillCorrect:!0,isAnswerCorrect:!0,answerScore:!0,skillScore:!0,judgmentReason:!0,failures:!0,skillIssues:!0,skillVersion:!0,label:!0,user:!0,skillTriggerRate:!0,parentExecutionId:!0,rootExecutionId:!0,agentSessionId:!0,subagentType:!0,subagentName:!0,isSubagent:!0,observedAgents:!0},em=Math.max(1,Math.trunc(Number(process.env.READ_RECORDS_HYDRATE_BATCH_SIZE))||100);function U(e){let t=new Map;for(let n of e){let e=n.taskId||null;e&&(t.has(e)||t.set(e,[]),t.get(e).push(n))}let n=new Set;for(let[e,i]of t.entries()){if(1===i.length){n.add(i[0].id);continue}let t=i.find(t=>t.id===e);if(t){n.add(t.id);continue}let l=i.slice().sort((e,t)=>{let n=new Date(e.timestamp??0).getTime(),i=new Date(t.timestamp??0).getTime();return i!==n?i-n:String(e.id).localeCompare(String(t.id))});n.add(l[0].id)}return{keepIds:n,byTaskId:t}}async function H(e,t){let{user:n,light:i,attachEvaluations:l,getConfigsForEvaluationUser:r}=t,s=e.map(e=>e.id),o=!i&&s.length>0?await a.db.findExecutions({id:{in:s}},void 0,{id:!0,finalResult:!0}):[];if(o.length>0){let t=new Map;for(let e of o)t.set(e.id,e.finalResult??null);for(let n of e)t.has(n.id)&&(n.finalResult=t.get(n.id))}let c=new Map,d=new Map;if(ei&&s.length>0)try{for(let e of(await a.prismaRaw.executionSkill.findMany({where:{executionId:{in:s}},select:{executionId:!0,skillName:!0,skillVersion:!0,isPrimary:!0}}))){let t={name:e.skillName,version:e.skillVersion??null},n=c.get(e.executionId);n?n.push(t):c.set(e.executionId,[t]),e.isPrimary&&!d.has(e.executionId)&&d.set(e.executionId,t)}}catch(e){console.warn("[readRecords] ExecutionSkill batch fetch failed, falling back to legacy columns:",e)}let m=new Map,p=new Map;e.forEach(e=>{var t;let n,i=e.taskId||e.id,l=function(e){if(!e)return[];try{let t=JSON.parse(e);return Array.isArray(t)?t.filter(e=>"string"==typeof e&&e.trim().length>0):[]}catch{return[]}}(e.observedAgents);m.set(i,l),p.set(i,(t=e.agentName,(n=(t||"").trim())||l.find(e=>e&&!(0,v.isEvaluatorAgentName)(e))||""))});let k={system:2,user:1},f=new Map,g=new Map;if(e.forEach(e=>{let t=e.taskId||e.id,n=p.get(t)||"";if(e.framework&&n){let t=`${e.framework}::${n}`;g.has(t)||g.set(t,{platform:e.framework,name:n})}}),g.size>0)try{for(let e of(await a.prisma.registeredAgent.findMany({where:{OR:Array.from(g.values())},select:{platform:!0,name:!0,agentOwnership:!0}}))){let t=`${e.platform}::${e.name}`,n=f.get(t);(!n||(k[e.agentOwnership]??0)>(k[n]??0))&&f.set(t,e.agentOwnership)}}catch{}let _=new Set;e.forEach(e=>{e.skill&&null==e.skillVersion&&!e.isSubagent&&_.add(String(e.skill))});let y=new Map;if(_.size>0&&n)try{for(let e of(await a.prisma.skill.findMany({where:{name:{in:Array.from(_)},OR:[{user:n},{user:null}]},select:{name:!0,activeVersion:!0}})))"number"==typeof e.activeVersion&&y.set(e.name,e.activeVersion)}catch(e){console.warn("[readRecords] skill version backfill lookup failed:",e)}return await Promise.all(e.map(async e=>{let t=e.model??null,s=t?(0,u.getModelPricing)(t):null,o=s?.pricing??null,k=t&&null!=e.maxSingleCallTokens?(0,u.getModelContextWindow)(t):null,g=e.taskId||e.id,_=m.get(g)||[],h=p.get(g)||"",v=c.get(e.id)??null;if(!v&&e.invokedSkills)try{let t=JSON.parse(e.invokedSkills);Array.isArray(t)&&(v=t)}catch{}let w=(!e.isSubagent&&e.skill?{name:String(e.skill),version:"number"==typeof e.skillVersion?e.skillVersion:null}:null)??d.get(e.id)??null;if(e.skill&&null==e.skillVersion&&!e.isSubagent&&y.has(String(e.skill))){let t=y.get(String(e.skill));e.skillVersion=t,a.prisma.execution.updateMany({where:{id:e.id,skillVersion:null},data:{skillVersion:t}}).catch(t=>console.warn("[readRecords] backfill skillVersion failed for",e.id,":",t))}!w&&e.skill&&(w={name:String(e.skill),version:"number"==typeof e.skillVersion?e.skillVersion:null});let b={...e,upload_id:e.id,task_id:e.taskId||void 0,query:e.query||void 0,framework:e.framework||void 0,agent:e.agentName||void 0,agentName:e.agentName||void 0,agentOwnership:e.framework&&h?f.get(`${e.framework}::${h}`)??"user":"user",tokens:e.tokens||void 0,cost:o&&null!=e.inputTokens&&null!=e.outputTokens?(0,u.calculateCost)(e.inputTokens,e.outputTokens,o,e.cacheReadInputTokens??void 0,e.cacheCreationInputTokens??void 0):void 0,latency:e.latency||void 0,timestamp:e.timestamp?.toISOString?.()||e.timestamp,final_result:e.finalResult||void 0,skill:e.skill||void 0,rootSkill:w,root_skill:w,skills:v?v.map(e=>e.name):e.skills?JSON.parse(e.skills):void 0,invokedSkills:v??void 0,invoked_skills:v??void 0,is_skill_correct:e.isSkillCorrect??!1,is_answer_correct:e.isAnswerCorrect??null,answer_score:void 0!==e.answerScore?e.answerScore:void 0,skill_score:void 0!==e.skillScore?e.skillScore:void 0,judgment_reason:e.judgmentReason||void 0,failures:e.failures?JSON.parse(e.failures):void 0,label:e.label??null,user:e.user??null,skill_issues:e.skillIssues?JSON.parse(e.skillIssues):[],skill_version:e.skillVersion??null,model:t,tool_call_count:e.toolCallCount??void 0,llm_call_count:e.llmCallCount??void 0,input_tokens:e.inputTokens??void 0,output_tokens:e.outputTokens??void 0,tool_call_error_count:e.toolCallErrorCount??void 0,cache_read_input_tokens:e.cacheReadInputTokens??void 0,cache_creation_input_tokens:e.cacheCreationInputTokens??void 0,max_single_call_tokens:e.maxSingleCallTokens??void 0,reasoning_tokens:e.reasoningTokens??void 0,expected_skill_version:e.expectedSkillVersion??null,skill_trigger_rate:e.skillTriggerRate??null,context_window_pct:null!=e.maxSingleCallTokens&&k?Math.round(e.maxSingleCallTokens/k.contextWindow*1e3)/10:void 0,context_window_limit:k?.contextWindow,context_window_source:k?.source,cost_pricing:o?{inputTokenPrice:o.inputTokenPrice,outputTokenPrice:o.outputTokenPrice,cacheReadInputTokenPrice:o.cacheReadInputTokenPrice??o.inputTokenPrice*u.DEFAULT_CACHE_READ_RATIO,cacheCreationInputTokenPrice:o.cacheCreationInputTokenPrice??o.inputTokenPrice*u.DEFAULT_CACHE_CREATION_RATIO,source:s?.source??"default"}:null,agents:_,parent_execution_id:e.parentExecutionId??null,root_execution_id:e.rootExecutionId??null,agent_session_id:e.agentSessionId??null,subagent_type:e.subagentType??null,subagent_name:e.subagentName??null,is_subagent:e.isSubagent??!1},S=b.task_id||b.upload_id||"",x=null;if(!i&&S)try{let e=await a.db.findExecutionMatch(S);e&&(x={matchJson:e.matchJson??null,matchedAt:e.matchedAt??null,mode:e.mode??null})}catch{x=null}if(b.execution_match=x,!l)return b;let A=b.user??n??null,T=await r(A);return j(b,T,A)}))}async function K(e,t,n){let i=n?.lightweight===!0,l=!i&&(n?.attachEvaluations??!0),r=n?.page&&Number.isFinite(n.page)?Math.max(1,Math.trunc(n.page)):1,s=n?.pageSize&&Number.isFinite(n.pageSize)?Math.max(1,Math.trunc(n.pageSize)):0,o={};e&&!t?.showAllUsers&&(o.user=e);let u=!!(t?.taskIds?.length||t?.taskId),c=(t?.clauses??[]).filter(e=>"skill"===e.column&&("any of"===e.operator||"="===e.operator)).flatMap(e=>Array.isArray(e.value)?e.value:null!=e.value?[e.value]:[]).map(e=>String(e)),d=Array.from(new Set([...t?.skill!==void 0?[String(t.skill)]:[],...c])),m=ei&&d.length>0;if(t?.onlySubagents===!0?o.isSubagent=!0:t?.includeSubagents===!0||t?.parentExecutionId!==void 0||u||m||(o.isSubagent=!1),t?.parentExecutionId!==void 0&&(o.parentExecutionId=t.parentExecutionId),t?.taskIds&&t.taskIds.length>0)o.taskId={in:t.taskIds},t.framework&&(o.framework=t.framework);else if(!t?.query&&t?.taskId)o.taskId=t.taskId,t.framework&&(o.framework=t.framework);else if(t?.query){let e=t.query.trim();e&&(o.OR=[{query:{contains:e}},{finalResult:{contains:e}}]),t.framework&&(o.framework=t.framework)}if(m){let n={skillName:{in:d}};t?.skillVersion!==void 0&&(n.skillVersion=t.skillVersion),e&&!t?.showAllUsers&&(n.user=e);try{let e=await a.prismaRaw.executionSkill.findMany({where:n,select:{executionId:!0}});o.id={in:Array.from(new Set(e.map(e=>e.executionId)))}}catch(e){console.warn("[readRecords] ExecutionSkill filter failed, falling back to legacy skill column:",e),o.skill={in:d},t?.skillVersion!==void 0&&(o.skillVersion=t.skillVersion)}}else t?.skill!==void 0&&(o.skill=t.skill),t?.skillVersion!==void 0&&(o.skillVersion=t.skillVersion);if(t?.agentName!==void 0&&(o.agentName=t.agentName),t?.clauses&&t.clauses.length>0){let{where:e,errors:n}=(0,S.buildPrismaWhere)(t.clauses);Array.isArray(e.AND)&&e.AND.length>0&&(o.AND=[...o.AND??[],...e.AND]),n.length>0&&console.warn("[readRecords] ignored invalid filter clauses:",n.map(e=>e.reason))}let p=await a.db.findExecutions(o,{timestamp:"desc"},ed),{keepIds:k,byTaskId:f}=U(p),g=p.filter(e=>!e.taskId||k.has(e.id)),_=g.length,y=s>0?g.slice((r-1)*s,(r-1)*s+s):g;for(let[e,t]of f.entries())if(!(t.length<=1)){for(let n of t)if(!k.has(n.id)){if(eu){let i=t.find(e=>k.has(e.id))?.id??"unknown";console.warn(`[Data-Audit] deleteExecution (read dedup): taskId=${e} deleteId=${n.id} keepId=${i}`)}a.db.deleteExecution(n.id).catch(()=>{})}}let h=new Map,v=e=>{let t=e||"__global__";return h.has(t)||h.set(t,Z(e||void 0)),h.get(t)},w=[];for(let t of function(e,t){let n=Math.max(1,Math.trunc(t)),i=[];for(let t=0;t<e.length;t+=n)i.push(e.slice(t,t+n));return i}(y,em)){let n=await H(t,{user:e,light:i,attachEvaluations:l,getConfigsForEvaluationUser:v});w.push(...n)}return{records:w,total:_}}async function Q(e,t,n){return(await K(e,t,n)).records}async function G(e,t,n){return K(e,t,n)}async function Z(e,t="any"){let n={};e&&(n.OR=[{user:e},{user:null}]);let i=(await a.db.findConfigs(n)).map(e=>{let t=(t,n)=>{if(t)try{return JSON.parse(t)}catch(t){console.error(`[readConfig] Failed to parse ${n} for config ${e.id}:`,t);return}};return{id:e.id,query:e.query??null,dataset_type:(0,c.normalizeConfigDatasetType)(e.datasetType),skill:e.skill,skillVersion:e.skillVersion,routing_intent:e.routingIntent||void 0,routing_anchors:t(e.routingAnchors,"routingAnchors"),expectedSkills:(0,c.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?i:i.filter(e=>(0,c.configSupportsDatasetType)(e.dataset_type,t))}async function Y(e,t){if(!e)return 0;let n={taskId:e};t&&(n.framework=t);try{let i=await a.db.deleteExecutions(n);return i>0&&eu&&console.warn(`[Data-Audit] deleteExecutionsByTaskId: taskId=${e} framework=${t??"*"} deleted=${i}`),i}catch{return 0}}async function X(e){var t,n,l,r;let u,c=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 n=await a.db.findExecutions(t,{timestamp:"desc"});if(n&&n.length>0&&n[0]?.id){let t=n.find(t=>t.id===e.task_id),i=t&&t.id?t.id:n[0].id;i!==c&&(c=i)}}catch{}let m=null,_=await a.db.findExecutionById(c);_&&(m={..._,upload_id:_.id,task_id:_.taskId||void 0,query:_.query||void 0,framework:_.framework||void 0,tokens:_.tokens??void 0,cost:_.cost??void 0,latency:_.latency??void 0,timestamp:_.timestamp?.toISOString?.()||_.timestamp,final_result:_.finalResult||void 0,skill:_.skill||void 0,skills:_.skills?JSON.parse(_.skills):void 0,invokedSkills:_.invokedSkills?(()=>{try{return JSON.parse(_.invokedSkills)}catch{return}})():void 0,is_skill_correct:_.isSkillCorrect??!1,is_answer_correct:_.isAnswerCorrect??null,answer_score:_.answerScore??void 0,skill_score:_.skillScore??void 0,judgment_reason:_.judgmentReason||void 0,failures:_.failures?JSON.parse(_.failures):void 0,skill_issues:_.skillIssues?JSON.parse(_.skillIssues):void 0,label:_.label||void 0,user:_.user||void 0,skill_version:_.skillVersion??void 0,expected_skill_version:_.expectedSkillVersion??null,skill_trigger_rate:_.skillTriggerRate??null,model:_.model||void 0,tool_call_count:_.toolCallCount??void 0,llm_call_count:_.llmCallCount??void 0,input_tokens:_.inputTokens??void 0,output_tokens:_.outputTokens??void 0,tool_call_error_count:_.toolCallErrorCount??void 0,cache_read_input_tokens:_.cacheReadInputTokens??void 0,cache_creation_input_tokens:_.cacheCreationInputTokens??void 0,max_single_call_tokens:_.maxSingleCallTokens??void 0});let v=m?{...m}:{},b=!!m;b||v.timestamp||e.timestamp?e.timestamp&&(v.timestamp=e.timestamp):v.timestamp=new Date().toISOString();let S=!!e.force_query_update,x="string"==typeof m?.query?m.query.trim():"",N="string"==typeof e.query?e.query.trim():"",C=!1;if("string"==typeof e.label){let t=(0,g.parseLabelSkillVersionBinding)(e.label);t&&(e.skill=t.skill,e.skill_version=t.skill_version,e.skills=t.skills,e.invokedSkills=t.invokedSkills,C=!0)}v={...v,...e};let E=function(e){let{isUpdate:t,existingSkillVersion:n,incomingSkillVersion:i,explicitRewrite:l}=e;return!t||null==n||l?{resolved:i,blocked:!1}:i===n?{resolved:n,blocked:!1}:{resolved:n,blocked:!0}}({isUpdate:b,existingSkillVersion:m?.skill_version??null,incomingSkillVersion:v.skill_version??null,explicitRewrite:C});if(E.blocked&&console.warn(`[Data-Service] Preserving existing skill_version for execution ${c}: existing=${m?.skill_version}, incoming=${v.skill_version} blocked. Skill version is immutable history; only NULL → value or explicit label-binding rewrite is allowed.`),v.skill_version=E.resolved??void 0,!v.agentName&&v.agent&&(v.agentName=v.agent),x&&!S?v.query=x:!x&&N?v.query=N:"string"!=typeof v.query||v.query.trim()?"string"==typeof v.query&&(v.query=v.query.trim()):v.query=void 0,!v.upload_id&&v.task_id&&(v.upload_id=v.task_id),!v.task_id&&v.upload_id&&(v.task_id=v.upload_id),v.upload_id=c,(!v.label||!v.model||!v.user)&&v.task_id){let e=await a.db.findSessionByTaskId(v.task_id);e&&(!v.label&&e.label&&(v.label=e.label),!v.model&&e.model&&(v.model=e.model),!v.user&&e.user&&(v.user=e.user))}if(!v.user)try{let e=a.db.getClient();if("query"in e){let t=await e.query('SELECT username FROM "User" LIMIT 1');t.rows[0]&&(v.user=t.rows[0].username,console.log(`[Data-Service] Fallback resolved user for task ${v.task_id} to: ${v.user}`))}}catch(e){console.warn("[Data-Service] Fallback user lookup failed:",e)}let M=e.Token||e.token||e.tokens;void 0!==M&&(v.tokens=Number(M)),void 0!==e.tool_call_count&&(v.tool_call_count=Number(e.tool_call_count)),void 0!==e.llm_call_count&&(v.llm_call_count=Number(e.llm_call_count)),void 0!==e.input_tokens&&(v.input_tokens=Number(e.input_tokens)),void 0!==e.output_tokens&&(v.output_tokens=Number(e.output_tokens)),void 0!==e.tool_call_error_count&&(v.tool_call_error_count=Number(e.tool_call_error_count)),void 0!==e.cache_read_input_tokens&&(v.cache_read_input_tokens=Number(e.cache_read_input_tokens)),void 0!==e.cache_creation_input_tokens&&(v.cache_creation_input_tokens=Number(e.cache_creation_input_tokens)),void 0!==e.max_single_call_tokens&&(v.max_single_call_tokens=Number(e.max_single_call_tokens)),void 0!==e.reasoning_tokens&&(v.reasoning_tokens=Number(e.reasoning_tokens));let q=null;if(v.task_id&&v.interactions){let e=(0,w.getAdapter)(v.framework),t=t=>e.normalizeForStorage?.(t)??t,n="string"==typeof v.interactions?(()=>{try{return JSON.parse(v.interactions)}catch{return[]}})():v.interactions;q=n=t(n);try{let i=v.session_merge_strategy||e.sessionMergeStrategy||"monotonic";if("snapshot-replace"!==i){let e=await a.db.findSessionByTaskId(v.task_id),i=e?.interactions?(()=>{try{return JSON.parse(e.interactions)}catch{return[]}})():[];i=t(i),Array.isArray(i)&&i.length>0&&(q=(0,y.mergeSessionInteractionsMonotonic)(i,n))}else if("true"!==process.env.AGENT_INSIGHT_JIUWEN_ALLOW_SHRINK){let e=await a.db.findSessionByTaskId(v.task_id),i=e?.interactions?(()=>{try{return JSON.parse(e.interactions)}catch{return[]}})():[];i=t(i);let l=Array.isArray(i)?i.length:0,r=Array.isArray(n)?n.length:0;if(l>0&&r<l)return console.warn(`[Data-Service] snapshot-replace 退化护栏:拒绝用更小快照覆盖 task ${v.task_id}(incoming ${r} < existing ${l} interactions),保留现有记录。设 AGENT_INSIGHT_JIUWEN_ALLOW_SHRINK=true 可放行。`),{success:!0,record:v}}}catch(e){e&&"object"==typeof e&&"task_id"in v&&console.warn("[Data-Service] snapshot-replace 退化检查异常,按原逻辑继续:",e?.message||e)}q=t(q),v.interactions=q;let i=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}}(q);if(i&&function(e,t){let n="string"==typeof e?e.trim():"";if(!n)return!0;let i="string"==typeof t?t.trim().toLowerCase():"";return!!i&&n.toLowerCase()===`${i} session`}(v.query,v.framework)&&(v.query=i),"opencode"===v.framework&&Array.isArray(q)){let e=(0,p.deriveOpencodeExecutionFields)(q);e.model&&(v.model=e.model),e.final_result&&(v.final_result=e.final_result),e.agentName&&!v.agentName&&(v.agentName=e.agentName),v.tokens=e.tokens,v.latency=e.latency,v.input_tokens=e.input_tokens,v.output_tokens=e.output_tokens,v.tool_call_count=e.tool_call_count,v.tool_call_error_count=e.tool_call_error_count,v.llm_call_count=e.llm_call_count,v.cache_read_input_tokens=e.cache_read_input_tokens,v.cache_creation_input_tokens=e.cache_creation_input_tokens,v.max_single_call_tokens=e.max_single_call_tokens,v.reasoning_tokens=e.reasoning_tokens}}let J=!1,P=v.is_answer_correct||!1,L=v.judgment_reason||es;v.skill_trigger_rate=null;let W=await Z(v.user);if(W.length>0){let n=await R(W,v.query,v.user),i=D(W,v);if(n){let e=Array.isArray(v.invokedSkills)?v.invokedSkills:[],t=(Array.isArray(v.skills)?v.skills:[]).map(e=>({name:e,version:null})),i=V(n);if(i.length>0){let n=e.length>0?e:t;if(n.length>0){let e=0,t=i.filter(e=>e.skill?.trim()),l=t.map(e=>e.skill.trim()),r=new Map;if(l.length>0)try{for(let e of(await a.db.findSkills({name:{in:l},user:v.user||null})))r.set(e.name,e)}catch(e){console.error("[Judgment] Error fetching skills for version check:",e)}for(let i of t){let t=i.skill.trim(),l=i.version??null,s=n.find(e=>e.name===t);if(s){let n=!1;if(null===l)n=!0;else if(null!==s.version)n=s.version===l;else{let e=r.get(t);n=!!e&&(e.activeVersion||0)===l}n&&(e++,J||(J=!0))}}t.length>0&&(v.skill_trigger_rate=e/t.length)}}v.is_skill_correct=J}if(i){if(await F(i,v.user),void 0!==v.final_result){let l=!0;if(b&&!e.force_judgment&&m&&m.query===v.query&&m.final_result===v.final_result&&(l=!1),e.skip_internal_judgment&&(l=!1),l&&!v.skip_evaluation){let e,l=(v.skill||i.skill||n?.skill||"").trim();if(l)try{let t=await a.db.findSkill(l,v.user||null);if(t){let n=i.skillVersion??v.skill_version??t.activeVersion??0,l=t.versions?.find(e=>e.version===n);if(l&&l.content)e=l.content,(void 0===v.skill_version||null===v.skill_version)&&(v.skill_version=l.version);else if(t.versions&&t.versions.length>0){let n=t.versions[0];n&&n.content&&(e=n.content,(void 0===v.skill_version||null===v.skill_version)&&(v.skill_version=n.version))}}}catch(e){console.error("[Judgment] Error fetching skill definition:",e)}let r=null;try{let e=await a.db.findExecutionMatch(v.task_id||v.upload_id||"");e?.extractedSteps&&(r="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,s.judgeAnswer)((t=v,(0,d.getConfigSubjectLabel)({query:t.query,skill:t.skill||i?.skill||null,skillVersion:t.skill_version??i?.skillVersion??null},"Skill execution benchmark")),{standard_answer_example:i.standard_answer,root_causes:i.root_causes,key_actions:i.key_actions,skill_definition:e},v.final_result,v.user,r);P=o.is_correct,v.answer_score=o.score,L=o.reason||"Judged by Evaluation Model"}}}else(!b||e.force_judgment)&&(P=!1,L=es,v.answer_score=null)}e.skip_evaluation&&(v.answer_score=null,P=!1,L="结果评估中..."),v.is_skill_correct=J,v.is_answer_correct=P,v.judgment_reason=L,v=await j(v,W,v.user);let z=Array.isArray(v.skills)&&v.skills.length>0?v.skills[0]:void 0;if(z){let e=function(){if(!i.default.existsSync(ea))return{};try{return JSON.parse(i.default.readFileSync(ea,"utf-8"))}catch{return{}}}()[z];e&&(v.skill_score=parseFloat(e))}if(v.label=(0,f.chooseExecutionLabel)({existingLabel:m?.label,incomingLabel:e.label,skill:v.skill,skillVersion:v.skill_version??null}),v.framework){let e=v.framework,t=v.user||null,n=(0,k.extractObservedAgentRegistrations)(q,v.agentName);try{for(let i of n){let n=await a.prisma.registeredAgent.findFirst({where:{platform:e,name:i.name,user:t}});n||(n=await a.prisma.registeredAgent.create({data:{platform:e,name:i.name,user:t,agentOwnership:"user",agentType:"main"===i.agentType?v.agentType||"main":"subagent"}})),"main"===i.agentType&&i.name===v.agentName&&(u=n.id)}}catch(e){console.error("[Data-Service] Failed to query or create RegisteredAgent:",e)}}let B=Array.isArray(q)&&q.length>0?JSON.stringify((0,k.extractObservedAgentNames)(q)):null;if(await a.db.upsertExecution({where:{id:c},create:{id:c,taskId:v.task_id,query:v.query,framework:v.framework,tokens:v.tokens,cost:v.cost,latency:v.latency,timestamp:v.timestamp?new Date(v.timestamp):new Date,finalResult:v.final_result,skill:v.skill,skills:v.skills?JSON.stringify(v.skills):null,invokedSkills:v.invokedSkills?JSON.stringify(v.invokedSkills):null,isSkillCorrect:v.is_skill_correct,isAnswerCorrect:v.is_answer_correct,answerScore:v.answer_score,skillScore:v.skill_score,judgmentReason:v.judgment_reason,failures:v.failures?JSON.stringify(v.failures):null,skillIssues:v.skill_issues?JSON.stringify(v.skill_issues):null,label:v.label,user:v.user,agentName:v.agentName,agentId:u,skillVersion:v.skill_version,model:v.model,endpoint:(0,o.normalizeEndpointUrl)(v.endpoint),toolCallCount:v.tool_call_count,llmCallCount:v.llm_call_count,inputTokens:v.input_tokens,outputTokens:v.output_tokens,toolCallErrorCount:v.tool_call_error_count,skillTriggerRate:v.skill_trigger_rate,cacheReadInputTokens:v.cache_read_input_tokens,cacheCreationInputTokens:v.cache_creation_input_tokens,maxSingleCallTokens:v.max_single_call_tokens,reasoningTokens:v.reasoning_tokens,observedAgents:B},update:{taskId:v.task_id,query:v.query,framework:v.framework,tokens:v.tokens,cost:v.cost,latency:v.latency,timestamp:v.timestamp?new Date(v.timestamp):new Date,finalResult:v.final_result,skill:v.skill,skills:v.skills?JSON.stringify(v.skills):null,invokedSkills:v.invokedSkills?JSON.stringify(v.invokedSkills):null,isSkillCorrect:v.is_skill_correct,isAnswerCorrect:v.is_answer_correct,answerScore:v.answer_score,skillScore:v.skill_score,judgmentReason:v.judgment_reason,failures:v.failures?JSON.stringify(v.failures):null,skillIssues:v.skill_issues?JSON.stringify(v.skill_issues):null,label:v.label,user:v.user,agentName:v.agentName,agentId:u,skillVersion:v.skill_version,model:v.model,endpoint:(0,o.normalizeEndpointUrl)(v.endpoint),toolCallCount:v.tool_call_count,llmCallCount:v.llm_call_count,inputTokens:v.input_tokens,outputTokens:v.output_tokens,toolCallErrorCount:v.tool_call_error_count,skillTriggerRate:v.skill_trigger_rate,cacheReadInputTokens:v.cache_read_input_tokens,cacheCreationInputTokens:v.cache_creation_input_tokens,maxSingleCallTokens:v.max_single_call_tokens,reasoningTokens:v.reasoning_tokens,observedAgents:B}}),e.upload_id&&e.task_id&&e.upload_id!==c)try{let t=await a.db.findExecutionById(e.upload_id);t&&t.taskId===e.task_id&&(eu&&console.warn(`[Data-Audit] deleteExecution (dedup on save): upload_id=${e.upload_id} task_id=${e.task_id} recordId=${c}`),await a.db.deleteExecution(e.upload_id))}catch{}if(ei)try{let e=Array.isArray(q)&&q.length>0,t=(n=C?Array.isArray(v.invokedSkills)?v.invokedSkills:[]:e?function(e,t){if(!Array.isArray(t)||0===t.length)return[];if("opencode"===e||"hermes"===e||"langfuse-langgraph"===e){let e=(0,h.buildAgentCallTree)(t);return e?A(e):[]}return $(e,t)??[]}(v.framework,q):Array.isArray(v.invokedSkills)?v.invokedSkills:[],l=v.skill??null,r=v.skill_version??null,l&&"number"==typeof r?n.map(e=>e.name===l&&null==e.version?{...e,version:r}:e):n),i=await T(t,v.user);await I(c,i,{user:v.user,primaryName:v.skill??null}),await a.prismaRaw.execution.update({where:{id:c},data:{skills:i.length?JSON.stringify(i.map(e=>e.name)):null,invokedSkills:i.length?JSON.stringify(i):null}})}catch(e){console.warn(`[Data-Service] root ExecutionSkill persist failed for ${c}:`,e)}if(("opencode"===v.framework||"hermes"===v.framework||"langfuse-langgraph"===v.framework)&&v.task_id&&Array.isArray(q))try{await et({parentExecutionId:c,parentTaskId:v.task_id,parentFramework:v.framework,parentUser:v.user,interactions:q})}catch(e){console.warn(`[Data-Service] deriveSubagentExecutions failed for parent=${c}:`,e)}let U=v.trace_completed_at?new Date(v.trace_completed_at):null,H=null!=U&&Number.isFinite(U.getTime()),K=!H&&"hermes"===v.framework&&"string"==typeof v.final_result&&v.final_result.trim()?function(e){if(!Array.isArray(e))return null;let t=e.flatMap(e=>{let t=e&&"object"==typeof e?e:{},n=t.timeInfo&&"object"==typeof t.timeInfo?t.timeInfo:{},i=t.timing&&"object"==typeof t.timing?t.timing:{};return[O(n.completed),O(n.created),O(i.completed_at),O(i.started_at),O(t.completedAt),O(t.completed_at),O(t.timestamp),O(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}(q):null,Q=H?U:K;!H&&K&&(v.trace_completed_at=K);let G=null!=Q&&Number.isFinite(Q.getTime());return v.task_id&&q&&(await a.db.upsertSession(v.task_id,{taskId:v.task_id,query:v.query,label:v.label,user:v.user,model:v.model,interactions:JSON.stringify(q),...G?{endTime:Q}:{}},{query:v.query,label:v.label,user:v.user,model:v.model,interactions:JSON.stringify(q)}),G&&await a.db.updateSession(v.task_id,{endTime:Q}),"opencode"===v.framework&&!0===v.opencode_cli_completed&&await a.db.updateSession(v.task_id,{endTime:new Date})),{success:!0,record:v}}function ee(e){if(null==e)return"";if("string"==typeof e){let t=e.trim();if(t.startsWith("{")&&t.endsWith("}")||t.startsWith("[")&&t.endsWith("]"))try{return ee(JSON.parse(t))}catch{}return e}return Array.isArray(e)?e.map(e=>ee(e?.text??e?.content??e)).filter(Boolean).join("\n"):"object"==typeof e?ee(e.text??e.content??""):String(e)}async function et(e){let{parentExecutionId:t,parentTaskId:n,parentFramework:i,parentUser:l,interactions:r}=e;if(!Array.isArray(r)||0===r.length)return;let s=(0,h.buildAgentCallTree)(r);if(!s)return void await en(t,new Set);let o=[],u=new Set;if((0,h.walkTree)(s,e=>{if(!e||0===e.depth)return;let t="string"==typeof e.sessionId?e.sessionId.trim():"";!t||t===n||u.has(t)||(u.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(s.id,t);let d=new Set;for(let e of o){let{node:n,sessionId:s,parentNodeId:o}=e,u=c.get(o)??t,m=`${u}__sub__${s}`;c.set(n.id,m),d.add(m);let p=new Set,f=[],g=e=>{for(let t of e.interactionIndices||[])p.add(t);for(let t of(Array.isArray(e.systemPrompts)&&e.systemPrompts.length>0&&e.sessionId&&f.push({sessionId:e.sessionId,entries:e.systemPrompts}),e.children||[]))g(t)};g(n);let _=[...p].sort((e,t)=>e-t).map(e=>r[e]).filter(Boolean),y=[];for(let e of f)for(let t of e.entries)y.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 h=[...y,..._],v=function(e,t){let n=(e.interactionIndices||[]).map(e=>t[e]).filter(Boolean),i=n.map(e=>ee(e?.content).trim()).filter(Boolean),l=i[0]||e.agentName||e.sessionId,r=(e.events||[]).filter(e=>"llm"===e.kind),s=r.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=r.filter(e=>e.interactionIndex!==o&&(!!e.summary?.trim()||(e.interaction?.tool_calls?.length||0)>0)).length,u=(e.events||[]).filter(e=>"tool"===e.kind||"skill"===e.kind||"task"===e.kind),c=n.map(e=>e?.model??e?.modelID).find(e=>"string"==typeof e&&e.trim())||null;return{query:l,finalResult:i.length>1?i[i.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:s.length||a,toolCallCount:u.length,toolCallErrorCount:u.filter(function e(t){let n=Array.isArray(t?.interaction?.tool_calls)?t.interaction.tool_calls:[],i=t?._toolCallId,l=n.find(e=>!i||e?.id===i),r=String(l?.state||"").toLowerCase();if("error"===r||"failed"===r)return!0;let s=t?.output??l?.output??l?.result;if(s&&"object"==typeof s){let e=String(s.status||s.state||"").toLowerCase();return"error"===e||"failed"===e||!!s.error}if("string"==typeof s&&s.trim().startsWith("{"))try{return e({...t,output:JSON.parse(s),interaction:void 0})}catch{}return!1}).length}}(n,r),w=((function(e,t){let n=String(t||"").trim();if(!n)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 i=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(i.subagent_session_id??i.session_id??i.agent_session_id??"").trim()!==n)continue;let l=ee(i.description??i.task_description??i.prompt??i.subagent_type).trim();if(l)return l}return null})(r,s)||v.query).slice(0,500),b=A(n);if(ei)try{b=await T(b,l)}catch(e){console.warn(`[Data-Service] sub skill version snapshot failed sub=${s}:`,e)}let S=n.startedAt?new Date(n.startedAt):new Date,x=n.endedAt?new Date(n.endedAt):null,N={taskId:s,framework:i,timestamp:S,agentName:n.agentName??null,user:l??null,query:w,finalResult:v.finalResult,model:v.model,tokens:v.tokens,inputTokens:v.inputTokens,outputTokens:v.outputTokens,reasoningTokens:v.reasoningTokens,cacheReadInputTokens:v.cacheReadInputTokens,cacheCreationInputTokens:v.cacheCreationInputTokens,latency:v.latency,llmCallCount:v.llmCallCount,toolCallCount:v.toolCallCount,toolCallErrorCount:v.toolCallErrorCount,skills:b.length?JSON.stringify(b.map(e=>e.name)):null,invokedSkills:b.length?JSON.stringify(b):null,parentExecutionId:u,rootExecutionId:t,agentSessionId:s,subagentType:n.subagentType??null,subagentName:n.agentName??null,isSubagent:!0,observedAgents:JSON.stringify((0,k.extractObservedAgentNames)(h))};try{await a.db.upsertExecution({where:{id:m},create:{id:m,...N},update:{...N}})}catch(e){console.warn(`[Data-Service] upsertExecution(sub) failed sub=${s}:`,e);continue}if(ei)try{await I(m,b,{user:l??null})}catch(e){console.warn(`[Data-Service] sub ExecutionSkill persist failed sub=${s}:`,e)}try{await a.db.upsertSession(s,{taskId:s,label:n.agentName??null,user:l??null,query:w,interactions:JSON.stringify(h),...x?{endTime:x}:{}},{label:n.agentName??null,user:l??null,query:w,interactions:JSON.stringify(h),...x?{endTime:x}:{}})}catch(e){console.warn(`[Data-Service] upsertSession(sub) failed sub=${s}:`,e)}}await en(t,d)}async function en(e,t){try{for(let n of(await a.db.findExecutions({rootExecutionId:e,isSubagent:!0},{timestamp:"desc"})))if(!(!n?.id||t.has(n.id)))try{await a.db.deleteExecution(n.id)}catch(e){console.warn(`[Data-Service] sweepStaleSubagents: deleteExecution(${n.id}) failed:`,e)}}catch(t){console.warn(`[Data-Service] sweepStaleSubagents query failed root=${e}:`,t)}}e.s(["deleteExecutionsByTaskId",()=>Y,"extractInvokedSkillsFromSessionInteractions",()=>$,"findBestMatchConfig",()=>M,"listObservedAgentNames",()=>L,"listObservedFieldValues",()=>z,"listObservedSkills",()=>W,"listObservedTraceIds",()=>B,"readConfig",()=>Z,"readRecordPage",()=>G,"readRecords",()=>Q,"reattributeServiceTraceOwner",()=>C,"saveExecutionRecord",()=>X,"selectKeepIdsByTaskId",()=>U]),n()}catch(e){n(e)}},!1)];
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=src_lib_84cf46e8._.js.map
|