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=[902838,e=>{"use strict";e.i(889228);var t=e.i(88045),r=e.i(762545),s=e.i(637351);let n=new Set(["轨迹偏差","工具误用","静态扫描","关键观点遗漏"]),a={high:0,medium:1,low:2};function i(e,t){let r=[];for(let s=0;s<e.length;s+=t)r.push(e.slice(s,s+t));return r}function o(e,t){let s;try{s=JSON.parse(e)}catch{try{s=JSON.parse((0,r.jsonrepair)(e))}catch{return[]}}let n=s?.items,a=Array.isArray(n)?n.filter(e=>!!e&&"object"==typeof e):[],i=new Set,o=[];for(let e of a){if(!e||"object"!=typeof e)continue;let r=String(e.title||"").trim();if(!r)continue;let s=(Array.isArray(e.sourceIssueIds)?e.sourceIssueIds:[]).map(e=>String(e)).filter(e=>t.has(e)&&!i.has(e));if(0===s.length)continue;for(let e of s)i.add(e);let n="core"===e.route||"reference"===e.route||"backlog"===e.route?e.route:"backlog",a="high"===e.severity||"medium"===e.severity||"low"===e.severity?e.severity:"medium",l="string"==typeof e.conflictNote?e.conflictNote.trim():"",u=!0===e.conflict&&l.length>0;o.push({route:n,status:u?"conflict":"pending",title:r,rationale:String(e.rationale||"").trim(),severity:a,targetFile:"string"==typeof e.targetFile&&e.targetFile.trim()?e.targetFile.trim():null,anchorText:"string"==typeof e.anchorText&&e.anchorText.trim()?e.anchorText.trim():null,proposedEdit:"string"==typeof e.proposedEdit&&e.proposedEdit.trim()?e.proposedEdit.trim():null,conflictNote:u?l:null,sourceIssueIds:s})}return o}function l(e){let t=Object.keys(e).sort(),r=e["SKILL.md"]??"";return["## Skill 当前内容(baseVersion 快照)\n",`文件清单:${t.join("、")||"(空)"}`,"\n### SKILL.md\n```markdown",r.length>8e3?r.slice(0,8e3)+"\n…(截断)":r,"```"].join("\n")}function u(e,t){return e.length>t?e.slice(0,t)+"…":e}let c='输出 JSON(只输出 JSON,不要任何额外文字):\n{\n "items": [{\n "title": "一句话标题",\n "rationale": "为什么这些 issue 是同一件事 + 综合后的修改方向(必须引用全部源 id)",\n "severity": "high|medium|low",\n "route": "core|reference|backlog",\n "conflict": false,\n "conflictNote": "仅 conflict=true 时填:矛盾双方各自的主张与证据",\n "targetFile": "SKILL.md 或 scripts/xxx 等快照内真实存在的路径,不确定就省略",\n "anchorText": "目标位置的原文片段(必须逐字摘自该文件,10-80字),不确定就省略",\n "proposedEdit": "具体修改建议(在哪段加/改什么)",\n "sourceIssueIds": ["i3", "i17"]\n }]\n}',d='## 归并规则\n\n1. **语义去重**:描述同一问题的 issue(即使措辞不同)必须合为一条 item,保留最具体、证据最强的表述。\n2. **冲突消解**:两条 issue 对同一区域提出矛盾方向的修改时——若一方依据明显更强,综合成一条并在 rationale 说明取舍;\n 若无法判断,输出 conflict=true 的 item 并在 conflictNote 写清矛盾双方,交用户仲裁。\n3. **失败优先**:失败类(轨迹偏差/工具误用/关键观点遗漏/静态扫描)优先定调;表达/格式类与之矛盾时让位。\n4. **路由**:\n - core:高频/高严重度、值得本轮直接改 SKILL.md 主文件的 SoP 级修改(宁缺毋滥);\n - reference:有价值但低频的长尾,应写入 references/ 按需查阅而不占主文件;\n - backlog:信号不足或本轮不值得动的,顺延下轮。\n5. **core 质检(三维,缺一不可,不满足就降 backlog)**:\n ① 失败机制编码——写清"什么情况下会怎么坏",不是泛泛建议;\n ② 可执行具体性——目标模型能直接照做的指令;\n ③ 高危操作如适用须显式列入黑名单表述。\n6. **锚点诚实**:targetFile/anchorText 只在确定时给出;anchorText 必须逐字摘自快照原文,禁止编造。\n7. 笼统到无法行动的 issue(如只有一个名词、无证据无建议)路由 backlog,rationale 注明"信号不足"。\n8. 每条输入 issue 至多归入一个 item;确属噪音的可以不引用(它会留在台账里下轮再看)。';async function p(e,t,r){let s=new AbortController,n=setTimeout(()=>s.abort(),3e5);try{let n=await e.chat.completions.create({model:t,messages:[{role:"user",content:r}],response_format:{type:"json_object"},max_tokens:16e3},{signal:s.signal});return n.choices?.[0]?.message?.content||""}finally{clearTimeout(n)}}async function f(e,t,r){let s=Array(e.length),n=0,a=Array.from({length:Math.min(t,e.length)},async()=>{for(;n<e.length;){let t=n++;s[t]=await r(e[t],t)}});return await Promise.all(a),s}async function h(e){var r,h;let g=Date.now(),m=e.coreBudget??4,y=e.batchSize??30,w=e.concurrency??2,{customFetch:v}=(0,s.getProxyConfig)(),k=new t.OpenAI({apiKey:e.config.apiKey||"no-api-key-required",baseURL:e.config.baseUrl||"https://api.deepseek.com",fetch:v,timeout:3e5,maxRetries:2}),I=e.config.model||"deepseek-chat",R=new Map(e.issues.map(e=>[e.id,e])),N=[...e.issues].sort((e,t)=>{let r=n.has(e.category||"")||"static"===e.source?0:1,s=n.has(t.category||"")||"static"===t.source?0:1;if(r!==s)return r-s;let i=a[e.severity]-a[t.severity];return 0!==i?i:t.prevalenceCount-e.prevalenceCount}),x=new Map,S=new Map;N.forEach((e,t)=>{let r=`i${t+1}`;x.set(e.id,r),S.set(r,e.id)});let b=i(N,y),E=0;async function C(t,r){var s,n,a;let i=(s={skillName:e.skillName,baseVersion:e.baseVersion,issues:t,files:e.files,shortIdOf:x},[`你是 skill 优化点归并算子。目标 skill:**${s.skillName}** v${s.baseVersion}。`,"下面是一批从多次评估中累积的待优化 issue。你的任务不是修改 skill,而是把这批 issue\n归并成一份更少、更强、可执行的优化计划条目(items)。\n",l(s.files),"\n## 待归并 issues\n",(n=s.issues,a=s.shortIdOf,n.map(e=>{let t=[`- ${a.get(e.id)} [${e.severity}/${e.source}${e.category?`/${e.category}`:""}] ${e.summary}`];return e.evidence&&t.push(` 证据:${u(e.evidence,200)}`),e.suggestedFix&&t.push(` 既有建议:${u(e.suggestedFix,200)}`),e.prevalenceCount>1&&t.push(` 检出次数:${e.prevalenceCount}`),t.join("\n")}).join("\n")),"",d,"",c].join("\n")),f=new Set(t.map(e=>x.get(e.id))),h=await p(k,I,i);E+=1;let g=o(h,f);return 0===g.length&&t.length>0&&(console.warn(`[merge-operator] ${r} empty items on attempt 1 (raw len=${h.length}), retrying`),h=await p(k,I,i),E+=1,g=o(h,f)),g}let O=1,T=(await f(b,w,(e,t)=>C(e,`batch#${t+1}`))).flat().map(e=>({...e,sourceIssueIds:e.sourceIssueIds.map(e=>S.get(e)).filter(Boolean)}));for(;b.length>1&&T.length>1&&O<4;){O+=1;let t=T.map((e,t)=>({shortId:`p${t+1}`,item:e})),r=new Map(t.map(({shortId:e,item:t})=>[e,t.sourceIssueIds])),s=i(t,y);if(T=(await f(s,w,async(t,s)=>{let n=function(e){let t=e.intermediate.map(({shortId:e,item:t})=>{let r=[`- ${e} [${t.severity}/route=${t.route}${"conflict"===t.status?"/CONFLICT":""}] ${t.title}`,` 理由:${u(t.rationale,200)}`];return t.proposedEdit&&r.push(` 建议:${u(t.proposedEdit,160)}`),t.targetFile&&r.push(` 锚点:${t.targetFile}${t.anchorText?` @ "${u(t.anchorText,60)}"`:""}`),r.join("\n")}).join("\n");return[`你是 skill 优化点归并算子(第二层)。目标 skill:**${e.skillName}** v${e.baseVersion}。`,"下面的条目来自多个批次的初步归并,批与批之间可能仍有重复或矛盾。\n请做跨批次的最终归并,输出统一的优化计划。sourceIssueIds 引用下面给出的条目 id(如 p3)。\n",l(e.files),"\n## 待归并条目(中间结果)\n",t,"",d,"",c].join("\n")}({skillName:e.skillName,baseVersion:e.baseVersion,intermediate:t,files:e.files}),a=new Set(t.map(e=>e.shortId)),i=await p(k,I,n);E+=1;let f=o(i,a);return(0===f.length&&t.length>0&&(console.warn(`[merge-operator] consolidate#${s+1} empty items on attempt 1, retrying`),i=await p(k,I,n),E+=1,f=o(i,a)),0===f.length)?t.map(e=>e.item):f.map(e=>({...e,sourceIssueIds:Array.from(new Set(e.sourceIssueIds.flatMap(e=>r.get(e)||[])))}))})).flat(),1===s.length)break}let A=new Set;return{items:function(e,t,r){let s=e.map(e=>{let r={},s=0,n=e.severity;for(let i of e.sourceIssueIds){let e=t.get(i);e&&(r[e.source]=(r[e.source]||0)+1,s+=e.prevalenceCount,a[e.severity]<a[n]&&(n=e.severity))}return{...e,severity:n,sourcesBreakdown:r,prevalence:Math.max(1,s),rank:0}}),n={core:0,reference:1,backlog:2};s.sort((e,t)=>{let r=n[e.route]-n[t.route];if(0!==r)return r;let s=a[e.severity]-a[t.severity];return 0!==s?s:t.prevalence-e.prevalence});let i=0;for(let e of s)"core"===e.route&&(i+=1)>r&&(e.route="backlog");return s.sort((e,t)=>{let r=n[e.route]-n[t.route];if(0!==r)return r;let s=a[e.severity]-a[t.severity];return 0!==s?s:t.prevalence-e.prevalence}),s.forEach((e,t)=>{e.rank=t+1}),s}((r=T=T.map(e=>({...e,sourceIssueIds:e.sourceIssueIds.filter(e=>!A.has(e)&&!!R.has(e)&&(A.add(e),!0))})).filter(e=>e.sourceIssueIds.length>0),h=e.files,r.map(e=>{let t=e.targetFile,r=e.anchorText;return!t||t in h||(t=null,r=null),r&&t&&!h[t].includes(r)&&(r=null),r&&!t&&(r=null),{...e,targetFile:t,anchorText:r}})),R,m),meta:{inputIssues:e.issues.length,batches:b.length,levels:O,model:I,durationMs:Date.now()-g,llmCalls:E,unreferencedIssues:e.issues.length-A.size}}}e.s(["runMergeOperator",()=>h])},596697,e=>{"use strict";var t=e.i(902157),r=e.i(750227);function s(e){let{skillId:s,version:n,row:a}=e,i={"SKILL.md":a.content||""},o=[];try{let e=a.files?JSON.parse(a.files):null;Array.isArray(e)&&(o=e.filter(e=>"string"==typeof e))}catch{}let l=function(e,t,s){if(s){let e=s.match(/^data\/storage\/skills\/([^/]+)\/v(\d+)$/);if(e)return r.default.join(process.cwd(),"data","storage","skills",e[1],`v${e[2]}`)}return r.default.join(process.cwd(),"data","storage","skills",e,`v${t}`)}(s,n,a.assetPath);for(let e of o){if("SKILL.MD"===e.toUpperCase()||e.includes("..")||e.startsWith("/"))continue;let s=r.default.resolve(l,e);if(s.startsWith(r.default.resolve(l)+r.default.sep))try{let r=t.default.statSync(s);if(!r.isFile()||r.size>262144)continue;i[e]=t.default.readFileSync(s,"utf-8")}catch{}}return i}e.s(["loadSkillVersionSnapshot",()=>s])},30600,e=>e.a(async(t,r)=>{try{var s=e.i(89171),n=e.i(854763),a=e.i(907366),i=e.i(106411),o=e.i(781773),l=e.i(902838),u=e.i(596697),c=t([n,a,i]);async function d(e){try{let t=await (0,l.runMergeOperator)({skillName:e.skillName,baseVersion:e.baseVersion,issues:e.issues,files:e.files,config:e.config,coreBudget:e.coreBudget,batchSize:e.batchSize});await n.prismaRaw.skillOptPlan.update({where:{id:e.planId},data:{status:"draft",operatorMeta:JSON.stringify(t.meta),items:{create:t.items.map(e=>({rank:e.rank,route:e.route,status:e.status,title:e.title,rationale:e.rationale,severity:e.severity,targetFile:e.targetFile,anchorText:e.anchorText,proposedEdit:e.proposedEdit,conflictNote:e.conflictNote,sourceIssueIds:JSON.stringify(e.sourceIssueIds),sourcesBreakdown:JSON.stringify(e.sourcesBreakdown),prevalence:e.prevalence}))}}})}catch(t){console.error("[skill-opt plan] background merge failed:",t?.message||t),await n.prismaRaw.skillOptPlan.update({where:{id:e.planId},data:{status:"failed",operatorMeta:JSON.stringify({error:String(t?.message||t)})}}).catch(()=>{})}}async function p(e){let t;try{t=await e.json()}catch{return s.NextResponse.json({error:"invalid json"},{status:400})}let r=String(t?.skillName||"").trim(),l=String(t?.sessionId||"").trim(),c=t?.baseVersion,{username:p}=await (0,a.resolveUser)(e,"string"==typeof t?.user?t.user:null),f=[];if(p||f.push("user"),r||f.push("skillName"),l||f.push("sessionId"),Number.isInteger(c)||f.push("baseVersion"),f.length>0)return s.NextResponse.json({error:`Missing fields: ${f.join(", ")}`},{status:400});try{let e=await n.prismaRaw.skillOptPlan.findUnique({where:{sessionId:l},include:{items:{orderBy:{rank:"asc"}}}});if(e){let t="running"===e.status&&Date.now()-new Date(e.createdAt).getTime()>6e5;if("failed"!==e.status&&!t)return s.NextResponse.json({plan:h(e),reused:!0});await n.prismaRaw.skillOptPlan.delete({where:{id:e.id}}).catch(()=>{})}let f=await n.prismaRaw.skillOptSession.findUnique({where:{id:l},select:{id:!0,skillName:!0,baseVersion:!0}});if(!f)return s.NextResponse.json({error:"session not found"},{status:404});if(f.skillName!==r||f.baseVersion!==c)return s.NextResponse.json({error:"session skill/version mismatch"},{status:400});let g=(await n.db.findSkills({name:r,OR:[{user:p},{user:null},{visibility:"public"}]}))[0];if(!g)return s.NextResponse.json({error:"Skill not found"},{status:404});let{allowed:m}=await (0,a.canAccessSkill)(g.id,p);if(!m)return s.NextResponse.json({error:"Unauthorized"},{status:403});let y="string"==typeof t?.modelId?t.modelId.trim():"",w=null;if(y&&(w=(await (0,i.getUserSettings)(p)).configs.find(e=>e.id===y)||null),w||(w=await (0,i.getActiveConfig)(p)),!w)return s.NextResponse.json({error:"未配置可用的 LLM,请先到「配置」页设置模型"},{status:400});let v=await (0,o.aggregateSkillIssues)({prisma:n.prismaRaw,skillId:g.id,version:c,user:p,includeResolved:!1});if(0===v.issues.length)return s.NextResponse.json({plan:null,reason:"no unresolved issues"});let k=await n.prismaRaw.skillVersion.findUnique({where:{skillId_version:{skillId:g.id,version:c}},select:{content:!0,files:!0,assetPath:!0}}),I=k?(0,u.loadSkillVersionSnapshot)({skillId:g.id,version:c,row:k}):{"SKILL.md":""},R=v.issues.map(e=>({id:e.id,source:e.source,severity:e.severity,category:e.category,summary:e.summary,evidence:e.evidence,suggestedFix:e.suggestedFix,prevalenceCount:e.prevalenceCount})),N=await n.prismaRaw.skillOptPlan.create({data:{sessionId:l,skillId:g.id,baseVersion:c,status:"running",operatorMeta:"{}"},include:{items:{orderBy:{rank:"asc"}}}});return d({planId:N.id,skillName:r,baseVersion:c,issues:R,files:I,config:w,coreBudget:Number.isInteger(t?.coreBudget)?t.coreBudget:void 0,batchSize:Number.isInteger(t?.batchSize)?t.batchSize:void 0}).catch(e=>{console.error("[skill-opt plan] background merge crashed:",e)}),s.NextResponse.json({plan:h(N),reused:!1})}catch(e){if(e?.code==="P2002"){let e=await n.prismaRaw.skillOptPlan.findUnique({where:{sessionId:l},include:{items:{orderBy:{rank:"asc"}}}});if(e)return s.NextResponse.json({plan:h(e),reused:!0})}return console.error("[skill-opt plan POST] failed:",e?.message||e),s.NextResponse.json({error:e?.message||"merge operator failed"},{status:500})}}async function f(e){let t=new URL(e.url),r=String(t.searchParams.get("sessionId")||"").trim();if(!r)return s.NextResponse.json({error:"sessionId required"},{status:400});try{let e=await n.prismaRaw.skillOptPlan.findUnique({where:{sessionId:r},include:{items:{orderBy:{rank:"asc"}}}});return s.NextResponse.json({plan:e?h(e):null})}catch(e){return console.error("[skill-opt plan GET] failed:",e?.message||e),s.NextResponse.json({error:e?.message||"failed"},{status:500})}}function h(e){return{id:e.id,sessionId:e.sessionId,skillId:e.skillId,baseVersion:e.baseVersion,status:e.status,operatorMeta:g(e.operatorMeta,{}),createdAt:e.createdAt,items:(e.items||[]).map(e=>({id:e.id,rank:e.rank,route:e.route,status:e.status,title:e.title,rationale:e.rationale,severity:e.severity,targetFile:e.targetFile,anchorText:e.anchorText,proposedEdit:e.proposedEdit,conflictNote:e.conflictNote,sourceIssueIds:g(e.sourceIssueIds,[]),sourcesBreakdown:g(e.sourcesBreakdown,{}),prevalence:e.prevalence}))}}function g(e,t){if(!e)return t;try{return JSON.parse(e)}catch{return t}}[n,a,i]=c.then?(await c)():c,e.s(["GET",()=>f,"POST",()=>p,"dynamic",0,"force-dynamic"]),r()}catch(e){r(e)}},!1),831711,e=>e.a(async(t,r)=>{try{var s=e.i(747909),n=e.i(174017),a=e.i(996250),i=e.i(759756),o=e.i(561916),l=e.i(174677),u=e.i(869741),c=e.i(316795),d=e.i(487718),p=e.i(995169),f=e.i(47587),h=e.i(666012),g=e.i(570101),m=e.i(626937),y=e.i(10372),w=e.i(193695);e.i(52474);var v=e.i(600220),k=e.i(30600),I=t([k]);[k]=I.then?(await I)():I;let x=new s.AppRouteRouteModule({definition:{kind:n.RouteKind.APP_ROUTE,page:"/api/skill-opt/plan/route",pathname:"/api/skill-opt/plan",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/skill-opt/plan/route.ts",nextConfigOutput:"standalone",userland:k}),{workAsyncStorage:S,workUnitAsyncStorage:b,serverHooks:E}=x;function R(){return(0,a.patchFetch)({workAsyncStorage:S,workUnitAsyncStorage:b})}async function N(e,t,r){x.isDev&&(0,i.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let s="/api/skill-opt/plan/route";s=s.replace(/\/index$/,"")||"/";let a=await x.prepare(e,t,{srcPage:s,multiZoneDraftMode:!1});if(!a)return t.statusCode=400,t.end("Bad Request"),null==r.waitUntil||r.waitUntil.call(r,Promise.resolve()),null;let{buildId:k,params:I,nextConfig:R,parsedUrl:N,isDraftMode:S,prerenderManifest:b,routerServerContext:E,isOnDemandRevalidate:C,revalidateOnlyGenerated:O,resolvedPathname:T,clientReferenceManifest:A,serverActionsManifest:$}=a,j=(0,u.normalizeAppPath)(s),P=!!(b.dynamicRoutes[j]||b.routes[T]),M=async()=>((null==E?void 0:E.render404)?await E.render404(e,t,N,!1):t.end("This page could not be found"),null);if(P&&!S){let e=!!b.routes[T],t=b.dynamicRoutes[j];if(t&&!1===t.fallback&&!e){if(R.experimental.adapterPath)return await M();throw new w.NoFallbackError}}let F=null;!P||x.isDev||S||(F=T,F="/index"===F?"/":F);let U=!0===x.isDev||!P,L=P&&!U;$&&A&&(0,l.setManifestsSingleton)({page:s,clientReferenceManifest:A,serverActionsManifest:$});let _=e.method||"GET",q=(0,o.getTracer)(),B=q.getActiveScopeSpan(),V={params:I,prerenderManifest:b,renderOpts:{experimental:{authInterrupts:!!R.experimental.authInterrupts},cacheComponents:!!R.cacheComponents,supportsDynamicResponse:U,incrementalCache:(0,i.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:R.cacheLife,waitUntil:r.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,s,n)=>x.onRequestError(e,t,s,n,E)},sharedContext:{buildId:k}},D=new c.NodeNextRequest(e),H=new c.NodeNextResponse(t),K=d.NextRequestAdapter.fromNodeNextRequest(D,(0,d.signalFromNodeResponse)(t));try{let a=async e=>x.handle(K,V).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=q.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==p.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let n=r.get("next.route");if(n){let t=`${_} ${n}`;e.setAttributes({"next.route":n,"http.route":n,"next.span_name":t}),e.updateName(t)}else e.updateName(`${_} ${s}`)}),l=!!(0,i.getRequestMeta)(e,"minimalMode"),u=async i=>{var o,u;let c=async({previousCacheEntry:n})=>{try{if(!l&&C&&O&&!n)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let s=await a(i);e.fetchMetrics=V.renderOpts.fetchMetrics;let o=V.renderOpts.pendingWaitUntil;o&&r.waitUntil&&(r.waitUntil(o),o=void 0);let u=V.renderOpts.collectedTags;if(!P)return await (0,h.sendResponse)(D,H,s,V.renderOpts.pendingWaitUntil),null;{let e=await s.blob(),t=(0,g.toNodeOutgoingHttpHeaders)(s.headers);u&&(t[y.NEXT_CACHE_TAGS_HEADER]=u),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==V.renderOpts.collectedRevalidate&&!(V.renderOpts.collectedRevalidate>=y.INFINITE_CACHE)&&V.renderOpts.collectedRevalidate,n=void 0===V.renderOpts.collectedExpire||V.renderOpts.collectedExpire>=y.INFINITE_CACHE?void 0:V.renderOpts.collectedExpire;return{value:{kind:v.CachedRouteKind.APP_ROUTE,status:s.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:n}}}}catch(t){throw(null==n?void 0:n.isStale)&&await x.onRequestError(e,t,{routerKind:"App Router",routePath:s,routeType:"route",revalidateReason:(0,f.getRevalidateReason)({isStaticGeneration:L,isOnDemandRevalidate:C})},!1,E),t}},d=await x.handleResponse({req:e,nextConfig:R,cacheKey:F,routeKind:n.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:b,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:O,responseGenerator:c,waitUntil:r.waitUntil,isMinimalMode:l});if(!P)return null;if((null==d||null==(o=d.value)?void 0:o.kind)!==v.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(u=d.value)?void 0:u.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});l||t.setHeader("x-nextjs-cache",C?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),S&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let p=(0,g.fromNodeOutgoingHttpHeaders)(d.value.headers);return l&&P||p.delete(y.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||t.getHeader("Cache-Control")||p.get("Cache-Control")||p.set("Cache-Control",(0,m.getCacheControlHeader)(d.cacheControl)),await (0,h.sendResponse)(D,H,new Response(d.value.body,{headers:p,status:d.value.status||200})),null};B?await u(B):await q.withPropagatedContext(e.headers,()=>q.trace(p.BaseServerSpan.handleRequest,{spanName:`${_} ${s}`,kind:o.SpanKind.SERVER,attributes:{"http.method":_,"http.target":e.url}},u))}catch(t){if(t instanceof w.NoFallbackError||await x.onRequestError(e,t,{routerKind:"App Router",routePath:j,routeType:"route",revalidateReason:(0,f.getRevalidateReason)({isStaticGeneration:L,isOnDemandRevalidate:C})},!1,E),P)throw t;return await (0,h.sendResponse)(D,H,new Response(null,{status:500})),null}}e.s(["handler",()=>N,"patchFetch",()=>R,"routeModule",()=>x,"serverHooks",()=>E,"workAsyncStorage",()=>S,"workUnitAsyncStorage",()=>b]),r()}catch(e){r(e)}},!1)];
|
|
1
|
+
module.exports=[902838,e=>{"use strict";e.i(889228);var t=e.i(88045),r=e.i(762545),s=e.i(637351);let n=new Set(["轨迹偏差","工具误用","静态扫描","关键观点遗漏"]),i={high:0,medium:1,low:2};function a(e,t){let r=[];for(let s=0;s<e.length;s+=t)r.push(e.slice(s,s+t));return r}function o(e,t){let s;try{s=JSON.parse(e)}catch{try{s=JSON.parse((0,r.jsonrepair)(e))}catch{return[]}}let n=s?.items,i=Array.isArray(n)?n.filter(e=>!!e&&"object"==typeof e):[],a=new Set,o=[];for(let e of i){if(!e||"object"!=typeof e)continue;let r=String(e.title||"").trim();if(!r)continue;let s=(Array.isArray(e.sourceIssueIds)?e.sourceIssueIds:[]).map(e=>String(e)).filter(e=>t.has(e)&&!a.has(e));if(0===s.length)continue;for(let e of s)a.add(e);let n="core"===e.route||"reference"===e.route||"backlog"===e.route?e.route:"backlog",i="high"===e.severity||"medium"===e.severity||"low"===e.severity?e.severity:"medium",l="string"==typeof e.conflictNote?e.conflictNote.trim():"",u=!0===e.conflict&&l.length>0;o.push({route:n,status:u?"conflict":"pending",title:r,rationale:String(e.rationale||"").trim(),severity:i,targetFile:"string"==typeof e.targetFile&&e.targetFile.trim()?e.targetFile.trim():null,anchorText:"string"==typeof e.anchorText&&e.anchorText.trim()?e.anchorText.trim():null,proposedEdit:"string"==typeof e.proposedEdit&&e.proposedEdit.trim()?e.proposedEdit.trim():null,conflictNote:u?l:null,sourceIssueIds:s})}return o}function l(e){let t=Object.keys(e).sort(),r=e["SKILL.md"]??"";return["## Skill 当前内容(baseVersion 快照)\n",`文件清单:${t.join("、")||"(空)"}`,"\n### SKILL.md\n```markdown",r.length>8e3?r.slice(0,8e3)+"\n…(截断)":r,"```"].join("\n")}function u(e,t){return e.length>t?e.slice(0,t)+"…":e}let c='输出 JSON(只输出 JSON,不要任何额外文字):\n{\n "items": [{\n "title": "一句话标题",\n "rationale": "为什么这些 issue 是同一件事 + 综合后的修改方向(必须引用全部源 id)",\n "severity": "high|medium|low",\n "route": "core|reference|backlog",\n "conflict": false,\n "conflictNote": "仅 conflict=true 时填:矛盾双方各自的主张与证据",\n "targetFile": "SKILL.md 或 scripts/xxx 等快照内真实存在的路径,不确定就省略",\n "anchorText": "目标位置的原文片段(必须逐字摘自该文件,10-80字),不确定就省略",\n "proposedEdit": "具体修改建议(在哪段加/改什么)",\n "sourceIssueIds": ["i3", "i17"]\n }]\n}',d='## 归并规则\n\n1. **语义去重**:描述同一问题的 issue(即使措辞不同)必须合为一条 item,保留最具体、证据最强的表述。\n2. **冲突消解**:两条 issue 对同一区域提出矛盾方向的修改时——若一方依据明显更强,综合成一条并在 rationale 说明取舍;\n 若无法判断,输出 conflict=true 的 item 并在 conflictNote 写清矛盾双方,交用户仲裁。\n3. **失败优先**:失败类(轨迹偏差/工具误用/关键观点遗漏/静态扫描)优先定调;表达/格式类与之矛盾时让位。\n4. **路由**:\n - core:高频/高严重度、值得本轮直接改 SKILL.md 主文件的 SoP 级修改(宁缺毋滥);\n - reference:有价值但低频的长尾,应写入 references/ 按需查阅而不占主文件;\n - backlog:信号不足或本轮不值得动的,顺延下轮。\n5. **core 质检(三维,缺一不可,不满足就降 backlog)**:\n ① 失败机制编码——写清"什么情况下会怎么坏",不是泛泛建议;\n ② 可执行具体性——目标模型能直接照做的指令;\n ③ 高危操作如适用须显式列入黑名单表述。\n6. **锚点诚实**:targetFile/anchorText 只在确定时给出;anchorText 必须逐字摘自快照原文,禁止编造。\n7. 笼统到无法行动的 issue(如只有一个名词、无证据无建议)路由 backlog,rationale 注明"信号不足"。\n8. 每条输入 issue 至多归入一个 item;确属噪音的可以不引用(它会留在台账里下轮再看)。';async function p(e,t,r){let s=new AbortController,n=setTimeout(()=>s.abort(),3e5);try{let n=await e.chat.completions.create({model:t,messages:[{role:"user",content:r}],response_format:{type:"json_object"},max_tokens:16e3},{signal:s.signal});return n.choices?.[0]?.message?.content||""}finally{clearTimeout(n)}}async function f(e,t,r){let s=Array(e.length),n=0,i=Array.from({length:Math.min(t,e.length)},async()=>{for(;n<e.length;){let t=n++;s[t]=await r(e[t],t)}});return await Promise.all(i),s}async function h(e){var r,h;let m=Date.now(),g=e.coreBudget??4,y=e.batchSize??30,w=e.concurrency??2,{customFetch:v}=(0,s.getProxyConfig)(),k=new t.OpenAI({apiKey:e.config.apiKey||"no-api-key-required",baseURL:e.config.baseUrl||"https://api.deepseek.com",fetch:v,timeout:3e5,maxRetries:2}),R=e.config.model||"deepseek-chat",I=new Map(e.issues.map(e=>[e.id,e])),N=[...e.issues].sort((e,t)=>{let r=n.has(e.category||"")||"static"===e.source?0:1,s=n.has(t.category||"")||"static"===t.source?0:1;if(r!==s)return r-s;let a=i[e.severity]-i[t.severity];return 0!==a?a:t.prevalenceCount-e.prevalenceCount}),S=new Map,x=new Map;N.forEach((e,t)=>{let r=`i${t+1}`;S.set(e.id,r),x.set(r,e.id)});let b=a(N,y),E=0;async function C(t,r){var s,n,i;let a=(s={skillName:e.skillName,baseVersion:e.baseVersion,issues:t,files:e.files,shortIdOf:S},[`你是 skill 优化点归并算子。目标 skill:**${s.skillName}** v${s.baseVersion}。`,"下面是一批从多次评估中累积的待优化 issue。你的任务不是修改 skill,而是把这批 issue\n归并成一份更少、更强、可执行的优化计划条目(items)。\n",l(s.files),"\n## 待归并 issues\n",(n=s.issues,i=s.shortIdOf,n.map(e=>{let t=[`- ${i.get(e.id)} [${e.severity}/${e.source}${e.category?`/${e.category}`:""}] ${e.summary}`];return e.evidence&&t.push(` 证据:${u(e.evidence,200)}`),e.suggestedFix&&t.push(` 既有建议:${u(e.suggestedFix,200)}`),e.prevalenceCount>1&&t.push(` 检出次数:${e.prevalenceCount}`),t.join("\n")}).join("\n")),"",d,"",c].join("\n")),f=new Set(t.map(e=>S.get(e.id))),h=await p(k,R,a);E+=1;let m=o(h,f);return 0===m.length&&t.length>0&&(console.warn(`[merge-operator] ${r} empty items on attempt 1 (raw len=${h.length}), retrying`),h=await p(k,R,a),E+=1,m=o(h,f)),m}let O=1,A=(await f(b,w,(e,t)=>C(e,`batch#${t+1}`))).flat().map(e=>({...e,sourceIssueIds:e.sourceIssueIds.map(e=>x.get(e)).filter(Boolean)}));for(;b.length>1&&A.length>1&&O<4;){O+=1;let t=A.map((e,t)=>({shortId:`p${t+1}`,item:e})),r=new Map(t.map(({shortId:e,item:t})=>[e,t.sourceIssueIds])),s=a(t,y);if(A=(await f(s,w,async(t,s)=>{let n=function(e){let t=e.intermediate.map(({shortId:e,item:t})=>{let r=[`- ${e} [${t.severity}/route=${t.route}${"conflict"===t.status?"/CONFLICT":""}] ${t.title}`,` 理由:${u(t.rationale,200)}`];return t.proposedEdit&&r.push(` 建议:${u(t.proposedEdit,160)}`),t.targetFile&&r.push(` 锚点:${t.targetFile}${t.anchorText?` @ "${u(t.anchorText,60)}"`:""}`),r.join("\n")}).join("\n");return[`你是 skill 优化点归并算子(第二层)。目标 skill:**${e.skillName}** v${e.baseVersion}。`,"下面的条目来自多个批次的初步归并,批与批之间可能仍有重复或矛盾。\n请做跨批次的最终归并,输出统一的优化计划。sourceIssueIds 引用下面给出的条目 id(如 p3)。\n",l(e.files),"\n## 待归并条目(中间结果)\n",t,"",d,"",c].join("\n")}({skillName:e.skillName,baseVersion:e.baseVersion,intermediate:t,files:e.files}),i=new Set(t.map(e=>e.shortId)),a=await p(k,R,n);E+=1;let f=o(a,i);return(0===f.length&&t.length>0&&(console.warn(`[merge-operator] consolidate#${s+1} empty items on attempt 1, retrying`),a=await p(k,R,n),E+=1,f=o(a,i)),0===f.length)?t.map(e=>e.item):f.map(e=>({...e,sourceIssueIds:Array.from(new Set(e.sourceIssueIds.flatMap(e=>r.get(e)||[])))}))})).flat(),1===s.length)break}let T=new Set;return{items:function(e,t,r){let s=e.map(e=>{let r={},s=0,n=e.severity;for(let a of e.sourceIssueIds){let e=t.get(a);e&&(r[e.source]=(r[e.source]||0)+1,s+=e.prevalenceCount,i[e.severity]<i[n]&&(n=e.severity))}return{...e,severity:n,sourcesBreakdown:r,prevalence:Math.max(1,s),rank:0}}),n={core:0,reference:1,backlog:2};s.sort((e,t)=>{let r=n[e.route]-n[t.route];if(0!==r)return r;let s=i[e.severity]-i[t.severity];return 0!==s?s:t.prevalence-e.prevalence});let a=0;for(let e of s)"core"===e.route&&(a+=1)>r&&(e.route="backlog");return s.sort((e,t)=>{let r=n[e.route]-n[t.route];if(0!==r)return r;let s=i[e.severity]-i[t.severity];return 0!==s?s:t.prevalence-e.prevalence}),s.forEach((e,t)=>{e.rank=t+1}),s}((r=A=A.map(e=>({...e,sourceIssueIds:e.sourceIssueIds.filter(e=>!T.has(e)&&!!I.has(e)&&(T.add(e),!0))})).filter(e=>e.sourceIssueIds.length>0),h=e.files,r.map(e=>{let t=e.targetFile,r=e.anchorText;return!t||t in h||(t=null,r=null),r&&t&&!h[t].includes(r)&&(r=null),r&&!t&&(r=null),{...e,targetFile:t,anchorText:r}})),I,g),meta:{inputIssues:e.issues.length,batches:b.length,levels:O,model:R,durationMs:Date.now()-m,llmCalls:E,unreferencedIssues:e.issues.length-T.size}}}e.s(["runMergeOperator",()=>h])},596697,e=>{"use strict";var t=e.i(902157),r=e.i(750227),s=e.i(547499);function n(e){var n;let{skillId:i,version:a,row:o}=e,l={"SKILL.md":o.content||""},u=[];try{let e=o.files?JSON.parse(o.files):null;Array.isArray(e)&&(u=e.filter(e=>"string"==typeof e))}catch{}let c=(n=o.assetPath)?(0,s.resolveRuntimeAssetPath)(n):(0,s.getSkillVersionStorageDir)(i,a);for(let e of u){if("SKILL.MD"===e.toUpperCase()||e.includes("..")||e.startsWith("/"))continue;let s=r.default.resolve(c,e);if(s.startsWith(r.default.resolve(c)+r.default.sep))try{let r=t.default.statSync(s);if(!r.isFile()||r.size>262144)continue;l[e]=t.default.readFileSync(s,"utf-8")}catch{}}return l}e.s(["loadSkillVersionSnapshot",()=>n])},30600,e=>e.a(async(t,r)=>{try{var s=e.i(89171),n=e.i(854763),i=e.i(907366),a=e.i(106411),o=e.i(781773),l=e.i(902838),u=e.i(596697),c=t([n,i,a]);async function d(e){try{let t=await (0,l.runMergeOperator)({skillName:e.skillName,baseVersion:e.baseVersion,issues:e.issues,files:e.files,config:e.config,coreBudget:e.coreBudget,batchSize:e.batchSize});await n.prismaRaw.skillOptPlan.update({where:{id:e.planId},data:{status:"draft",operatorMeta:JSON.stringify(t.meta),items:{create:t.items.map(e=>({rank:e.rank,route:e.route,status:e.status,title:e.title,rationale:e.rationale,severity:e.severity,targetFile:e.targetFile,anchorText:e.anchorText,proposedEdit:e.proposedEdit,conflictNote:e.conflictNote,sourceIssueIds:JSON.stringify(e.sourceIssueIds),sourcesBreakdown:JSON.stringify(e.sourcesBreakdown),prevalence:e.prevalence}))}}})}catch(t){console.error("[skill-opt plan] background merge failed:",t?.message||t),await n.prismaRaw.skillOptPlan.update({where:{id:e.planId},data:{status:"failed",operatorMeta:JSON.stringify({error:String(t?.message||t)})}}).catch(()=>{})}}async function p(e){let t;try{t=await e.json()}catch{return s.NextResponse.json({error:"invalid json"},{status:400})}let r=String(t?.skillName||"").trim(),l=String(t?.sessionId||"").trim(),c=t?.baseVersion,{username:p}=await (0,i.resolveUser)(e,"string"==typeof t?.user?t.user:null),f=[];if(p||f.push("user"),r||f.push("skillName"),l||f.push("sessionId"),Number.isInteger(c)||f.push("baseVersion"),f.length>0)return s.NextResponse.json({error:`Missing fields: ${f.join(", ")}`},{status:400});try{let e=await n.prismaRaw.skillOptPlan.findUnique({where:{sessionId:l},include:{items:{orderBy:{rank:"asc"}}}});if(e){let t="running"===e.status&&Date.now()-new Date(e.createdAt).getTime()>6e5;if("failed"!==e.status&&!t)return s.NextResponse.json({plan:h(e),reused:!0});await n.prismaRaw.skillOptPlan.delete({where:{id:e.id}}).catch(()=>{})}let f=await n.prismaRaw.skillOptSession.findUnique({where:{id:l},select:{id:!0,skillName:!0,baseVersion:!0}});if(!f)return s.NextResponse.json({error:"session not found"},{status:404});if(f.skillName!==r||f.baseVersion!==c)return s.NextResponse.json({error:"session skill/version mismatch"},{status:400});let m=(await n.db.findSkills({name:r,OR:[{user:p},{user:null},{visibility:"public"}]}))[0];if(!m)return s.NextResponse.json({error:"Skill not found"},{status:404});let{allowed:g}=await (0,i.canAccessSkill)(m.id,p);if(!g)return s.NextResponse.json({error:"Unauthorized"},{status:403});let y="string"==typeof t?.modelId?t.modelId.trim():"",w=null;if(y&&(w=(await (0,a.getUserSettings)(p)).configs.find(e=>e.id===y)||null),w||(w=await (0,a.getActiveConfig)(p)),!w)return s.NextResponse.json({error:"未配置可用的 LLM,请先到「配置」页设置模型"},{status:400});let v=await (0,o.aggregateSkillIssues)({prisma:n.prismaRaw,skillId:m.id,version:c,user:p,includeResolved:!1});if(0===v.issues.length)return s.NextResponse.json({plan:null,reason:"no unresolved issues"});let k=await n.prismaRaw.skillVersion.findUnique({where:{skillId_version:{skillId:m.id,version:c}},select:{content:!0,files:!0,assetPath:!0}}),R=k?(0,u.loadSkillVersionSnapshot)({skillId:m.id,version:c,row:k}):{"SKILL.md":""},I=v.issues.map(e=>({id:e.id,source:e.source,severity:e.severity,category:e.category,summary:e.summary,evidence:e.evidence,suggestedFix:e.suggestedFix,prevalenceCount:e.prevalenceCount})),N=await n.prismaRaw.skillOptPlan.create({data:{sessionId:l,skillId:m.id,baseVersion:c,status:"running",operatorMeta:"{}"},include:{items:{orderBy:{rank:"asc"}}}});return d({planId:N.id,skillName:r,baseVersion:c,issues:I,files:R,config:w,coreBudget:Number.isInteger(t?.coreBudget)?t.coreBudget:void 0,batchSize:Number.isInteger(t?.batchSize)?t.batchSize:void 0}).catch(e=>{console.error("[skill-opt plan] background merge crashed:",e)}),s.NextResponse.json({plan:h(N),reused:!1})}catch(e){if(e?.code==="P2002"){let e=await n.prismaRaw.skillOptPlan.findUnique({where:{sessionId:l},include:{items:{orderBy:{rank:"asc"}}}});if(e)return s.NextResponse.json({plan:h(e),reused:!0})}return console.error("[skill-opt plan POST] failed:",e?.message||e),s.NextResponse.json({error:e?.message||"merge operator failed"},{status:500})}}async function f(e){let t=new URL(e.url),r=String(t.searchParams.get("sessionId")||"").trim();if(!r)return s.NextResponse.json({error:"sessionId required"},{status:400});try{let e=await n.prismaRaw.skillOptPlan.findUnique({where:{sessionId:r},include:{items:{orderBy:{rank:"asc"}}}});return s.NextResponse.json({plan:e?h(e):null})}catch(e){return console.error("[skill-opt plan GET] failed:",e?.message||e),s.NextResponse.json({error:e?.message||"failed"},{status:500})}}function h(e){return{id:e.id,sessionId:e.sessionId,skillId:e.skillId,baseVersion:e.baseVersion,status:e.status,operatorMeta:m(e.operatorMeta,{}),createdAt:e.createdAt,items:(e.items||[]).map(e=>({id:e.id,rank:e.rank,route:e.route,status:e.status,title:e.title,rationale:e.rationale,severity:e.severity,targetFile:e.targetFile,anchorText:e.anchorText,proposedEdit:e.proposedEdit,conflictNote:e.conflictNote,sourceIssueIds:m(e.sourceIssueIds,[]),sourcesBreakdown:m(e.sourcesBreakdown,{}),prevalence:e.prevalence}))}}function m(e,t){if(!e)return t;try{return JSON.parse(e)}catch{return t}}[n,i,a]=c.then?(await c)():c,e.s(["GET",()=>f,"POST",()=>p,"dynamic",0,"force-dynamic"]),r()}catch(e){r(e)}},!1),831711,e=>e.a(async(t,r)=>{try{var s=e.i(747909),n=e.i(174017),i=e.i(996250),a=e.i(759756),o=e.i(561916),l=e.i(174677),u=e.i(869741),c=e.i(316795),d=e.i(487718),p=e.i(995169),f=e.i(47587),h=e.i(666012),m=e.i(570101),g=e.i(626937),y=e.i(10372),w=e.i(193695);e.i(52474);var v=e.i(600220),k=e.i(30600),R=t([k]);[k]=R.then?(await R)():R;let S=new s.AppRouteRouteModule({definition:{kind:n.RouteKind.APP_ROUTE,page:"/api/skill-opt/plan/route",pathname:"/api/skill-opt/plan",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/skill-opt/plan/route.ts",nextConfigOutput:"standalone",userland:k}),{workAsyncStorage:x,workUnitAsyncStorage:b,serverHooks:E}=S;function I(){return(0,i.patchFetch)({workAsyncStorage:x,workUnitAsyncStorage:b})}async function N(e,t,r){S.isDev&&(0,a.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let s="/api/skill-opt/plan/route";s=s.replace(/\/index$/,"")||"/";let i=await S.prepare(e,t,{srcPage:s,multiZoneDraftMode:!1});if(!i)return t.statusCode=400,t.end("Bad Request"),null==r.waitUntil||r.waitUntil.call(r,Promise.resolve()),null;let{buildId:k,params:R,nextConfig:I,parsedUrl:N,isDraftMode:x,prerenderManifest:b,routerServerContext:E,isOnDemandRevalidate:C,revalidateOnlyGenerated:O,resolvedPathname:A,clientReferenceManifest:T,serverActionsManifest:P}=i,$=(0,u.normalizeAppPath)(s),j=!!(b.dynamicRoutes[$]||b.routes[A]),M=async()=>((null==E?void 0:E.render404)?await E.render404(e,t,N,!1):t.end("This page could not be found"),null);if(j&&!x){let e=!!b.routes[A],t=b.dynamicRoutes[$];if(t&&!1===t.fallback&&!e){if(I.experimental.adapterPath)return await M();throw new w.NoFallbackError}}let F=null;!j||S.isDev||x||(F=A,F="/index"===F?"/":F);let U=!0===S.isDev||!j,L=j&&!U;P&&T&&(0,l.setManifestsSingleton)({page:s,clientReferenceManifest:T,serverActionsManifest:P});let _=e.method||"GET",V=(0,o.getTracer)(),q=V.getActiveScopeSpan(),B={params:R,prerenderManifest:b,renderOpts:{experimental:{authInterrupts:!!I.experimental.authInterrupts},cacheComponents:!!I.cacheComponents,supportsDynamicResponse:U,incrementalCache:(0,a.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:I.cacheLife,waitUntil:r.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,s,n)=>S.onRequestError(e,t,s,n,E)},sharedContext:{buildId:k}},D=new c.NodeNextRequest(e),H=new c.NodeNextResponse(t),K=d.NextRequestAdapter.fromNodeNextRequest(D,(0,d.signalFromNodeResponse)(t));try{let i=async e=>S.handle(K,B).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=V.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==p.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let n=r.get("next.route");if(n){let t=`${_} ${n}`;e.setAttributes({"next.route":n,"http.route":n,"next.span_name":t}),e.updateName(t)}else e.updateName(`${_} ${s}`)}),l=!!(0,a.getRequestMeta)(e,"minimalMode"),u=async a=>{var o,u;let c=async({previousCacheEntry:n})=>{try{if(!l&&C&&O&&!n)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let s=await i(a);e.fetchMetrics=B.renderOpts.fetchMetrics;let o=B.renderOpts.pendingWaitUntil;o&&r.waitUntil&&(r.waitUntil(o),o=void 0);let u=B.renderOpts.collectedTags;if(!j)return await (0,h.sendResponse)(D,H,s,B.renderOpts.pendingWaitUntil),null;{let e=await s.blob(),t=(0,m.toNodeOutgoingHttpHeaders)(s.headers);u&&(t[y.NEXT_CACHE_TAGS_HEADER]=u),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==B.renderOpts.collectedRevalidate&&!(B.renderOpts.collectedRevalidate>=y.INFINITE_CACHE)&&B.renderOpts.collectedRevalidate,n=void 0===B.renderOpts.collectedExpire||B.renderOpts.collectedExpire>=y.INFINITE_CACHE?void 0:B.renderOpts.collectedExpire;return{value:{kind:v.CachedRouteKind.APP_ROUTE,status:s.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:n}}}}catch(t){throw(null==n?void 0:n.isStale)&&await S.onRequestError(e,t,{routerKind:"App Router",routePath:s,routeType:"route",revalidateReason:(0,f.getRevalidateReason)({isStaticGeneration:L,isOnDemandRevalidate:C})},!1,E),t}},d=await S.handleResponse({req:e,nextConfig:I,cacheKey:F,routeKind:n.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:b,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:O,responseGenerator:c,waitUntil:r.waitUntil,isMinimalMode:l});if(!j)return null;if((null==d||null==(o=d.value)?void 0:o.kind)!==v.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(u=d.value)?void 0:u.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});l||t.setHeader("x-nextjs-cache",C?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),x&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let p=(0,m.fromNodeOutgoingHttpHeaders)(d.value.headers);return l&&j||p.delete(y.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||t.getHeader("Cache-Control")||p.get("Cache-Control")||p.set("Cache-Control",(0,g.getCacheControlHeader)(d.cacheControl)),await (0,h.sendResponse)(D,H,new Response(d.value.body,{headers:p,status:d.value.status||200})),null};q?await u(q):await V.withPropagatedContext(e.headers,()=>V.trace(p.BaseServerSpan.handleRequest,{spanName:`${_} ${s}`,kind:o.SpanKind.SERVER,attributes:{"http.method":_,"http.target":e.url}},u))}catch(t){if(t instanceof w.NoFallbackError||await S.onRequestError(e,t,{routerKind:"App Router",routePath:$,routeType:"route",revalidateReason:(0,f.getRevalidateReason)({isStaticGeneration:L,isOnDemandRevalidate:C})},!1,E),j)throw t;return await (0,h.sendResponse)(D,H,new Response(null,{status:500})),null}}e.s(["handler",()=>N,"patchFetch",()=>I,"routeModule",()=>S,"serverHooks",()=>E,"workAsyncStorage",()=>x,"workUnitAsyncStorage",()=>b]),r()}catch(e){r(e)}},!1)];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=_2ac292b0._.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
module.exports=[21253,e=>{"use strict";var t=e.i(902157),n=e.i(750227);function
|
|
1
|
+
module.exports=[21253,e=>{"use strict";var t=e.i(902157),n=e.i(750227),r=e.i(547499);function i(e){var i,s;let a,l,o,{skillName:c,baseVersion:u,workspaceDir:d,baselineFiles:p,storageDirOverride:f}=e,h=n.default.join(d,"SKILL.md");if(t.default.existsSync(h))return{copied:0,source:"none",skipped:"workspace_not_empty"};let g=f&&t.default.existsSync(f)?f:function(e,i){let s,a=(0,r.getSkillStorageRoot)();if(!t.default.existsSync(a))return null;let l=n.default.join(a,e,`v${i}`);if(t.default.existsSync(l))return l;try{s=t.default.readdirSync(a)}catch{return null}for(let r of s){let s=n.default.join(a,r,`v${i}`),l=n.default.join(s,"SKILL.md");if(t.default.existsSync(l))try{let n=t.default.readFileSync(l,"utf-8").slice(0,600).match(/^name:\s*(.+)$/m);if(n&&n[1].trim()===e)return s}catch{continue}}return null}(c,u);return g&&t.default.existsSync(g)?{copied:(i=g,s=d,a=0,l=new Set([".git",".opencode",".DS_Store","node_modules"]),(o=e=>{let r,c=n.default.join(i,e);try{r=t.default.readdirSync(c)}catch{return}for(let c of r){let r;if(l.has(c)||c.startsWith("."))continue;let u=e?n.default.join(e,c):c,d=n.default.join(i,u),p=n.default.join(s,u);try{r=t.default.statSync(d)}catch{continue}if(r.isDirectory()){try{t.default.mkdirSync(p,{recursive:!0})}catch{}o(u)}else{if(r.size>1048576)continue;try{t.default.mkdirSync(n.default.dirname(p),{recursive:!0}),t.default.copyFileSync(d,p),a++}catch(e){console.warn("[skill-opt-storage] copy failed:",d,e?.message)}}}})(""),a),source:"storage",skipped:null,storageDir:g}:p&&Object.keys(p).length>0?{copied:function(e,r){let i=0;for(let[s,a]of Object.entries(r)){if("string"!=typeof a)continue;let r=s.startsWith("/workspace/")?s.slice(11):s;if(r.startsWith("/")||r.startsWith("..")||r.includes("\0")){console.warn("[skill-opt-storage] baseline file rejected:",r);continue}let l=n.default.resolve(e,r);if(!l.startsWith(e+n.default.sep)&&l!==e){console.warn("[skill-opt-storage] baseline file outside workspace:",r);continue}try{t.default.mkdirSync(n.default.dirname(l),{recursive:!0}),t.default.writeFileSync(l,a,"utf-8"),i++}catch(e){console.warn("[skill-opt-storage] write baseline file failed:",r,e?.message)}}return i}(d,p),source:"baseline_files",skipped:null}:{copied:0,source:"none",skipped:null}}e.s(["ensureSkillFilesInWorkspace",()=>i])},539078,e=>{"use strict";function t(e){var t;let r,i,s,a,l,{skillName:o,baseVersion:c,checkedIssues:u,userFeedback:d,planItems:p}=e,f=Array.isArray(p)&&p.length>0,h=[...u].sort(n);return["# 角色\n\n你是 **Skill 优化助手**。当前工作目录是用户的现有 skill 包,结构如下:\n\n- `SKILL.md`(主文件,必有)\n- `scripts/`(可执行脚本,可能为空)\n- `references/`(参考资料,可能为空)\n",`优化目标 skill:**${o}**,基线版本 **v${c}**。`,"\n# 用户输入\n",f?(r=(t=p).filter(e=>"core"===e.route),i=t.filter(e=>"reference"===e.route),s=["## 优化计划(已归并去重,按条执行)",""],a=e=>{s.push(`### \`${e.id}\` \xb7 **${e.severity}**`),s.push(`- 标题:${e.title}`),e.rationale&&s.push(`- 归并理由:${e.rationale}`),e.targetFile&&s.push(`- 目标位置:\`${e.targetFile}\`${e.anchorText?`,锚点原文:"${e.anchorText}"`:""}`),e.proposedEdit&&s.push(`- 建议修改:${e.proposedEdit}`),e.prevalence&&e.prevalence>1&&s.push(`- 累计检出:${e.prevalence} 次`),s.push("")},r.length>0&&(s.push(`#### 本轮核心修改(${r.length} 条,必做)`,""),r.forEach(a)),i.length>0&&(s.push(`#### 长尾沉淀(${i.length} 条,写入 references/,不占 SKILL.md 主文件)`,""),i.forEach(a)),s.join("\n")):function(e){if(0===e.length)return"## 待优化点\n\n(用户未勾选任何 issue)\n";let t=["## 待优化点(按 severity 排序)",""];for(let n of e){let e=n.category?` \xb7 ${n.category}`:"";t.push(`### \`${n.id}\` \xb7 **${n.severity}**${e}`),t.push(`- 摘要:${n.summary}`),n.evidence&&t.push(`- 证据:${n.evidence}`),n.improvementSuggestion&&t.push(`- 改进建议(评估器给出,优先按此执行):${n.improvementSuggestion}`),t.push("")}return t.join("\n")}(h),(l=d.trim())?["## 用户附加诉求\n",l,""].join("\n"):"",f||0!==h.length||d.trim()?"":"\n(用户既没勾选 issue 也没填诉求,请直接询问 / 给出改进建议而不是动文件。)\n",'# 工作流程(必须按顺序)\n\n**Step 1 · 探索**:用 read 工具查看 SKILL.md 与你判断相关的 scripts/references 文件。\n\n**Step 2 · 修改(必做)**:\n探索之后**必须**调用 edit / write 工具实际落地修改——这是用户期望看到的产出。\n即便你觉得现状已经不错,也要至少针对每个已勾选的 issue 做一次有意义的修改尝试。\n只读不写不是合格的优化输出。\n\n**Step 3 · 收尾报告**:所有文件改完之后,**用一段 markdown 输出"修改总结"**。这段会作为\n"优化报告"展示给用户,所以要好读、聚焦"为什么这么改",不要重复 diff 已经显示的内容。\n\n格式严格按下面的模板(小节标题不要改字面量,前端会按它定位):\n\n```markdown\n## 修改总结\n\n<2-3 句话用人话讲清这次优化的整体思路,不要罗列细节>\n\n### 已解决的优化点',`- \`${f?"item_001":"iss_001"}\`:<具体改动 + 为什么这样改(一句话即可)>`,`- \`${f?"item_003":"iss_003"}\`:<同上>`,"\n### 暂未处理",`- \`${f?"item_002":"iss_002"}\`:<原因,例如"信息不足,需要用户提供更多 trace"${f?"":'或"与 iss_001 合并处理"'}>`,'\n### 改动要点\n- <按文件分组讲核心改动;不需要逐行说,diff 视图会让用户自己看>\n```\n\n如果"暂未处理"为空就省掉那个小节;但"修改总结"和"已解决的优化点"必须有。\n\n# 修改细则\n',f?"1. **按 plan 执行**:上面的计划条目已经过归并算子去重与冲突消解,**不要再自行二次合并或改变范围**;core 条目逐条落实,reference 条目写入/追加 `references/` 对应文件。":'1. **prevalence 优先**:如果多个 issue 指向同一段文本或同一类问题,**合并成一次修改**并表达成"通用原则",而不是为每个 issue 单独打补丁。',f?"2. **锚点最小编辑(关键纪律)**:每个 plan item 带了 `目标位置`(targetFile + 锚点原文)。用 `edit` 在该锚点处做**最小必要修改**,不要整段/整文件重写。改动范围严格限定在 plan 列出的条目,**没被任何 item 指向的文件/段落一律不动**。":"2. **不要无关改动**:只动直接对应已勾选 issue 或用户诉求的内容;保持原有结构、目录布局和 markdown 格式。","3. **就地编辑**:用 edit / write 工具直接改原文件。**不要**新建 `.draft` / `.new` / `*.bak` / `optimized/` 之类的副本目录或文件——前端会通过 diff 视图让用户对比。",f?"4. **保护既有可用产物(防回归,关键)**:现有 `scripts/` 里能正确运行的脚本是基线的核心资产。**默认不重写脚本**;只有当某 plan item 明确指向某脚本的缺陷时才改它,且**只改那个缺陷**。改脚本时**严禁顺手改动它的输出口径**——事件分类规则、计数方式、时间窗/日期解析算法、输出 JSON 的字段名与结构,除非有 item 明确要求,否则**逐字保留原样**(曾出现过:重写脚本时新加的日期解析把无年份时间戳算错、把事件分类数改掉,导致统计口径漂移、分数不升反降)。能用「在 SKILL.md 加约束」解决的,就不要改脚本。同理**不要改 SKILL.md 的输出报告模板/结构**,除非某 item 明确指向它。":"4. **定量缺失优先补脚本(关键)**:若勾选的 issue 指向「精确数字缺失 / 计数不准 / 排名缺失 / 引用了不存在的脚本」,\n 你**必须**用 write 工具补齐或修复对应的**可运行脚本**(优先 Python,仅标准库)并真实落盘,\n 再在 SKILL.md 落两条硬约束:①「先运行该脚本、所有计数/排名/时间窗逐字引用脚本输出、禁止肉眼估算」;\n ②一张「问题类型 → 必答小节」的输出模板(让综合类问题不漏报关键观点)。**严禁只在 SKILL.md 里引用一个并不存在的脚本。**",'5. **写盘前禁止声明完成**:在 SKILL.md 引用的每个文件都用 write 落盘之前,不要输出「修改总结」;\n 收尾前用 `ls` / `read` 自检:SKILL.md 里引用的每个 scripts/references 文件都真实存在;缺哪个补哪个。\n6. **定量正确性(不止"文件在",要"算得对")**:脚本里的日期/年份、计数、IP 等必须**解析自日志真实内容**——年份要从日志行里解析出来(如 ftpd 连接行尾的真实年份),**禁止硬编码、禁止回落到当前系统年份**(曾出现取年正则匹配 0 行 → 静默用 2026 的真实事故);数字一律来自脚本输出、禁止编造。这是「能编译却答错」最常翻车的地方,改完会有自动评测复跑校验,错了会被打回重修。\n\n# 运行环境\n\n当前工作目录就是 cwd,所有路径用相对路径(`SKILL.md`、`scripts/foo.sh`、`references/bar.md`),不要拼 `/workspace/` 等前缀。'].join("\n")}function n(e,t){let n={high:0,medium:1,low:2};return(n[e.severity]??3)-(n[t.severity]??3)}e.s(["buildSkillOptSystemPrompt",()=>t])},71652,e=>{"use strict";var t=e.i(902157),n=e.i(750227);let r="/workspace/",i=new Set([".git","node_modules",".opencode","__pycache__"]);function s(e){return e?Array.isArray(e.content)?e.content:String(e.content).split("\n"):[]}function a(e,a,l){let o,c,u=[],d=e=>e.startsWith(r)?e.slice(r.length):e.replace(/^\//,"");for(let[r,i]of Object.entries(a)){let a=d(r);if(!a||a.includes(".."))continue;let l=n.default.join(e,a);if(!t.default.existsSync(l))try{t.default.mkdirSync(n.default.dirname(l),{recursive:!0}),t.default.writeFileSync(l,s(i).join("\n"),"utf-8"),u.push(a)}catch{}}let p=(o=new Map,(c=r=>{let s;try{s=t.default.readdirSync(r)}catch{return}for(let a of s){let s,l;if(a.startsWith(".")||i.has(a))continue;let u=n.default.join(r,a);try{s=t.default.statSync(u)}catch{continue}if(s.isDirectory()){c(u);continue}try{l=t.default.readFileSync(u,"utf-8")}catch{continue}let d=n.default.relative(e,u).replace(/\\/g,"/");o.set(d,l.split("\n"))}})(e),o),f=new Map;for(let[e,t]of Object.entries(a))f.set(d(e),s(t));let h=0;for(let e of new Set([...f.keys(),...p.keys()]))h+=function(e,t){let n=new Map;for(let t of e)n.set(t,(n.get(t)??0)+1);let r=0;for(let e of t){let t=n.get(e)??0;t>0?n.set(e,t-1):r++}for(let e of n.values())r+=e;return r}(f.get(e)??[],p.get(e)??[]);return{restored:u,changedLines:h,overBudget:l.maxChangedLines>0&&h>l.maxChangedLines}}e.s(["enforceEditScope",()=>a])},674249,e=>e.a(async(t,n)=>{try{e.i(889228);var r=e.i(88045),i=e.i(106411),s=e.i(637351),a=e.i(87702),l=t([i]);[i]=l.then?(await l)():l;let h=`你在为一个 skill 的【脚本质量门】挑选**要用确定性断言看护**的数据点。下面是该 skill 评测数据集里
|
|
2
2
|
多个用例的**标准答案**。请挑出应被看护的数据点——只挑**同时满足**:
|
|
3
3
|
1. **确定性、脚本从输入算得出**的硬数据(年份/计数/总数/时长/IP 等);不是解读、建议、或「未记录/需进一步定位」这类判断;
|
|
4
4
|
2. 标准答案里有**明确的期望值**;
|
|
@@ -24,14 +24,14 @@ module.exports=[21253,e=>{"use strict";var t=e.i(902157),n=e.i(750227);function
|
|
|
24
24
|
另外(可选,提升精度):对每条**保留**的事实,若它的值在【脚本实际输出样本】里对应一个清晰的 JSON 字段,
|
|
25
25
|
给它的点路径(如 file_info.first_event_time)——门会优先精确查该字段;取不到/不确定**就别给**(会自动回退扫描)。
|
|
26
26
|
|
|
27
|
-
只输出 JSON:{"keep":[要保留的编号, ...], "paths":{"<编号>":"<点路径>"}}`,m=Number(process.env.SKILL_OPT_REVIEW_K)||3;async function d(e,t,n,r){if(!e.length)return[];let s=await (0,i.getActiveConfig)(r);if(!s?.apiKey)return e;let a=e.map((e,t)=>{let r=String(e.expectedValue??""),i=n.find(e=>(e.expectedOutput||"").includes(r)),s=r?n.filter(e=>(e.expectedOutput||"").includes(r)).length:0;return`${t}. [${e.kind}] ${e.description??""}(期望 ${r};在 ${s}/${n.length} 条用例出现;来源用例问的是:${(i?.input||"").replace(/\s+/g," ").slice(0,160)})`}).join("\n"),l=g.replace("%FACTS%",a).replace("%SAMPLE%",t.slice(0,4e3)),u=[],d={};for(let e=0;e<m;e++)try{let e=await c(s).chat.completions.create({model:s.model||"deepseek-chat",temperature:0,response_format:{type:"json_object"},messages:[{role:"user",content:l}]}),t=o(e.choices?.[0]?.message?.content||"");if(!Array.isArray(t.keep))continue;for(let[e,n]of(u.push(new Set(t.keep.map(Number))),Object.entries(t.paths??{})))n&&!d[e]&&(d[e]=n)}catch(e){console.warn("[self-verify] reviewer round failed (skip):",e?.message)}return u.length?e.map((e,t)=>u.every(e=>e.has(t))?{...e,jsonPath:d[String(t)]}:null).filter(e=>null!=e):[]}function p(e){let t=String(e.expectedValue??"").trim();return t?"year"===e.kind&&/^\d{4}$/.test(t)?(0,a.makeYearAssertion)(t,e.jsonPath):("count"===e.kind||"number"===e.kind)&&/^\d+(?:\.\d+)?$/.test(t)?(0,a.makeNumericAssertion)((e.description||"count").slice(0,24),t,e.jsonPath):null:null}let y=new Map;async function f(e,t,n=""){if(!e.length)return[];let r=`${t}:${e.length}:${e.map(e=>e.id).join(",").slice(0,120)}`,i=y.get(r);if(i)return i;let s=(await u(e,t)).filter(t=>{var n;return n=String(t.expectedValue??""),!!n&&e.map(e=>e.expectedOutput||"").join("\n").includes(n)}),a=(await d(s,n,e,t)).map(p).filter(e=>null!=e);return y.set(r,a),a}e.s(["deriveScriptAssertions",()=>f]),n()}catch(e){n(e)}},!1),188080,e=>e.a(async(t,n)=>{try{var r=e.i(902157),i=e.i(750227),s=e.i(660526),a=e.i(854763),l=e.i(773613),o=e.i(317331),c=e.i(307692),u=e.i(833821),d=e.i(87702),p=e.i(674249),f=t([a,l,o,c,u,p]);[a,l,o,c,u,p]=f.then?(await f)():f;let w=e=>Math.round(100*e),S=new Map;async function h(e,t,n){let s=-(1e5+Math.floor(1e6*Math.random())),l=i.default.join(process.cwd(),"data","storage","skills",e,`v${s}`),o=[];for(let[e,t]of(r.default.mkdirSync(l,{recursive:!0}),Object.entries(n))){if(e.includes(".."))continue;let n=i.default.join(l,e);r.default.mkdirSync(i.default.dirname(n),{recursive:!0}),r.default.writeFileSync(n,t??""),o.push(e)}return await a.db.deleteSkillVersion(e,s),await a.db.createSkillVersion({skillId:e,version:s,content:t,assetPath:`data/storage/skills/${e}/v${s}`,files:JSON.stringify(o),changeLog:"self-verify ephemeral candidate"}),{version:s,cleanup:()=>{a.db.deleteSkillVersion(e,s).catch(()=>{}),r.default.rmSync(l,{recursive:!0,force:!0})}}}async function g(e,t,n,r){try{let i=(await (0,o.runGeneralAgent)({user:e,query:r.input,skill:t,skillVersion:n,ephemeralServer:!0,interactionPolicy:"auto-allow"})).output||"";if(i.trim().length<5)return null;let s=await (0,c.judgeAnswer)(r.input,{standard_answer_example:r.expectedOutput,root_causes:(r.rootCauses??[]).map(e=>({content:e.content,weight:e.weight}))},i,e);return{score:s.score,reason:s.reason||""}}catch(e){return console.warn("[self-verify] scoreCase failed (treat as skip):",e?.message?.slice(0,120)),null}}async function m(e,t,n,r,i){let s=`${n}:${r}:${i.id}`,a=S.get(s);if(a)return a;let l=await g(e,t,r,i);return l&&S.set(s,l),l}async function y(e){let{user:t,skillName:n,skillId:r,baseVersion:i,cases:s,onProgress:a}=e;if(!s.length)return{ok:!0,baseMean:null,candMean:null,delta:null,perCase:[],regressions:[],measured:0,skipped:"该 skill 无可用 eval 用例"};let{version:l,cleanup:o}=await h(r,e.candidateSkillMd,e.candidateFiles),c=[],u=0;try{for(let o of s){if(null!=e.budgetYuan&&.6*u>=e.budgetYuan){a?.(`自验证预算软门(~\xa5${e.budgetYuan})触发,停在 ${c.length}/${s.length} 例`);break}a?.(`行为重评 ${o.id.slice(0,8)}(${c.length+1}/${s.length})…`);let d=await m(t,n,r,i,o);!S.has(`${r}:${i}:${o.id}`)&&u++;let p=await g(t,n,l,o);u++;let f=d?w(d.score):null,h=p?w(p.score):null;c.push({caseId:o.id,base:f,cand:h,delta:null!=f&&null!=h?h-f:null,reason:p?.reason||d?.reason||""})}}finally{o()}let d=c.filter(e=>null!=e.base&&null!=e.cand),p=d.length?Math.round(d.reduce((e,t)=>e+t.base,0)/d.length*10)/10:null,f=d.length?Math.round(d.reduce((e,t)=>e+t.cand,0)/d.length*10)/10:null,y=null!=p&&null!=f?Math.round((f-p)*10)/10:null,k=c.filter(e=>null!=e.delta&&e.delta<0);return{ok:null==y||y>=0,baseMean:p,candMean:f,delta:y,perCase:c,regressions:k,measured:d.length}}async function k(e){let t,n=(0,d.verifyStructure)(e.candidateFiles);if(e.onProgress?.(`结构门:${n.ok?"pass":"FAIL — "+n.failures.join(";")}`),!n.ok)return{ok:!1,structural:n,scriptTruth:null,behavioral:null,failures:n.failures};let i=[];try{t=(await a.db.findSkill(e.skillName,e.user))?.id,i=(await (0,u.findAgentDatasetsByTargetSkill)(e.user,e.skillName)).filter(e=>"ideal_output"===e.datasetKind).flatMap(e=>e.cases)}catch(e){console.warn("[self-verify] dataset load failed:",e?.message)}let l=null,o=function(e){for(let t of e)for(let e of(t.input||"").matchAll(/~?\/[A-Za-z0-9._/~-]+/g)){let t=e[0].replace(/^~/,s.default.homedir());try{if(r.default.existsSync(t)&&r.default.statSync(t).isFile())return t}catch{}}}(i),c=o?(0,d.runScriptsForSample)(e.candidateFiles,o):"",f=await (0,p.deriveScriptAssertions)(i,e.user,c);if(f.length&&o&&(l=(0,d.verifyScriptTruth)(e.candidateFiles,{logPath:o,assertions:f}),e.onProgress?.(`脚本真值门(${f.map(e=>e.id).join(", ")}):${l.ok?"pass":"FAIL — "+l.failures.join(";")}`),!l.ok))return{ok:!1,structural:n,scriptTruth:l,behavioral:null,failures:[...n.failures,...l.failures]};if(e.structuralOnly)return{ok:!0,structural:n,scriptTruth:l,behavioral:null,failures:[]};let h=null;try{if(t)if(i.length){let n=function(e,t,n){if(e.length<=n)return e;let r=new Set(t??[]),i=e.filter(e=>r.has(e.id)),s=e.filter(e=>!r.has(e.id));return[...i,...s].slice(0,Math.max(n,i.length))}(i,e.sampleCaseIds,e.maxCases??5);e.onProgress?.(`行为门:在 ${n.length} 个代表性用例上重评(共 ${i.length} 例)…`),h=await y({user:e.user,skillName:e.skillName,skillId:t,baseVersion:e.baseVersion,candidateSkillMd:e.candidateSkillMd,candidateFiles:e.candidateFiles,cases:n,budgetYuan:e.budgetYuan,onProgress:e.onProgress})}else h={ok:!0,baseMean:null,candMean:null,delta:null,perCase:[],regressions:[],measured:0,skipped:"无 ideal_output 评测集,行为门跳过"};else h={ok:!0,baseMean:null,candMean:null,delta:null,perCase:[],regressions:[],measured:0,skipped:"DB 无此 skill,行为门跳过"}}catch(e){console.warn("[self-verify] behavioral phase errored (treat as pass, structural still gated):",e?.message),h={ok:!0,baseMean:null,candMean:null,delta:null,perCase:[],regressions:[],measured:0,skipped:"行为门异常,已跳过"}}let g=[...n.failures,...l?.failures??[]];if(h&&!h.ok){let e=h.regressions.map(e=>`${e.caseId.slice(0,8)} ${e.base}→${e.cand}(${e.reason.slice(0,50)})`).join(";");g.push(`行为门:净分 ${h.baseMean}→${h.candMean}(Δ${h.delta}),回归用例:${e||"净降"}`)}return{ok:(l?.ok??!0)&&(h?.ok??!0),structural:n,scriptTruth:l,behavioral:h,failures:g}}e.s(["runSelfVerification",()=>k]),n()}catch(e){n(e)}},!1),149903,e=>e.a(async(t,n)=>{try{var r=e.i(902157),i=e.i(750227),s=e.i(773613),a=e.i(317331),l=e.i(378673),o=e.i(106411),c=e.i(759453),u=e.i(134526),d=e.i(750696),p=e.i(21253),f=e.i(539078),h=e.i(447404),g=e.i(71652),m=e.i(188080),y=e.i(403577),k=t([s,a,o,c,d,h,m]);[s,a,o,c,d,h,m]=k.then?(await k)():k;let O=Number(process.env.SKILL_OPT_VERIFY_REPAIR_K)||1,I=Number(process.env.SKILL_OPT_VERIFY_MAX_CASES)||5,R=Number(process.env.SKILL_OPT_VERIFY_BUDGET_YUAN)||8,L=new Map,E=new Map;async function w(e,t){let n=(E.get(e)??Promise.resolve()).catch(()=>{}).then(t);E.set(e,n);try{return await n}finally{E.get(e)===n&&E.delete(e)}}function S(e){return w(e.threadId,()=>v(e))}async function v(e){let t,{user:n,threadId:r,skillName:i,baseVersion:s,checkedIssues:o,planItems:c,userFeedback:d,modelId:k,baselineFiles:w,send:S}=e;console.log("[skill-opt-bridge] start",{user:n,threadId:r,skillName:i,baseVersion:s,issuesCount:o.length,planItemsCount:c?.length??0,feedbackLen:d.length,baselineFiles:w?Object.keys(w).length:0}),(0,u.ensureUserWorkspace)(n);let v=(0,u.ensureSessionWorkspace)(n,r),E=await b(n,i,s),j=(0,p.ensureSkillFilesInWorkspace)({skillName:i,baseVersion:s,workspaceDir:v,baselineFiles:w,storageDirOverride:E});j.copied>0&&console.log("[skill-opt-bridge] prefilled workspace:",j);let A={};try{A=(0,h.scanWorkspaceFiles)(v),Object.keys(A).length>0&&S("vfs_patch",{files:A})}catch{}let T=await _(n,k),C=(0,f.buildSkillOptSystemPrompt)({skillName:i,baseVersion:s,checkedIssues:o,userFeedback:d,planItems:c}),M=new AbortController,P=null,N=()=>{P&&clearTimeout(P),P=setTimeout(()=>M.abort(),3e4)},F="",K=null,D=new Map,U=new Set,q={},V=new Set,W=e=>{if(!V.has(e)){V.add(e);try{S("error",e)}catch{}}},B=()=>{K&&(S("thinking",{id:K,done:!0}),K=null)},J={onText:e=>{N(),B(),F+=e.delta,S("text",e.delta)},onReasoning:e=>{if(N(),!e.delta)return;K||(K=`think_${Date.now()}_${Math.random().toString(36).slice(2,8)}`);let t=D.get(K)??"",n=e.fullText&&"string"==typeof e.fullText?e.fullText:t+e.delta;if(n.length<=t.length)return;let r=n.startsWith(t)?n.slice(t.length):e.delta;D.set(K,n),S("thinking",{id:K,delta:r})},onTool:e=>{N();let t=e.callID||e.partID;t&&("start"===e.phase||"delta"===e.phase?(U.has(t)||(U.add(t),B()),S("tool_call",{id:t,name:e.name,args:e.input,status:"running"})):"end"===e.phase?(U.has(t)||U.add(t),S("tool_call",{id:t,name:e.name,args:e.input,status:"running"}),S("tool_result",{id:t,status:"error"===e.status?"error":"ok",summary:x(e.output)})):"error"===e.phase&&(U.has(t)||(U.add(t),S("tool_call",{id:t,name:e.name,args:e.input,status:"running"})),S("tool_result",{id:t,status:"error",error:x(e.error)||"tool error"})))},onFileEdited:()=>{N();try{q=(0,h.scanWorkspaceFiles)(v),S("vfs_patch",{files:q})}catch{}},onAssistantMessage:e=>{if("error"===e.status)return void setTimeout(()=>M.abort(),500);if("completed"!==e.status)return;let t=e.info?.finish??e.info?.finishReason;"string"!=typeof t||"tool-calls"!==t&&setTimeout(()=>M.abort(),500)},onSession:e=>{if("idle"===e.phase&&setTimeout(()=>M.abort(),500),"error"===e.phase){let t=function(e){if(!e)return"session 错误(无详情)";if("string"==typeof e)return e;if("object"==typeof e){let t=e.message||e.error||e.data?.message;if("string"==typeof t)return t;try{return JSON.stringify(e).slice(0,500)}catch{}}return String(e)}(e.error);console.error("[skill-opt-bridge] session.error:",t),W(t)}},onQuestion:async()=>null,onError:e=>{let t=e?.message||String(e);console.error("[skill-opt-bridge] chat onError:",t),W(t)}},H=L.get(r);console.log("[skill-opt-bridge] cachedSessionId:",H||"(none)");let Y={taskType:"skill-opt",user:n,label:`skill-opt \xb7 ${i} v${s}`,skill:i,skillVersion:s,displayOnly:!0};try{t=await (0,l.withBackgroundOpencodeSlot)(()=>(0,a.runGeneralAgent)({user:n,query:$(o,d,c),sessionId:H,workspaceTag:r,sessionTitle:`skill-opt \xb7 ${i} v${s} \xb7 ${r.slice(0,8)}`,system:C,chatOptions:{idleTimeoutMs:3e4,streamTimeoutMs:9e5,signal:M.signal},systemAgentName:"skill-optimizer-chat",interactionPolicy:"auto-allow",...T?{model:T}:{},handlers:J}),Y)}catch(u){let e=u instanceof Error?u.message:String(u);if(console.error("[skill-opt-bridge] runGeneralAgent threw:",e),H&&/session/i.test(e))L.delete(r),console.log("[skill-opt-bridge] retrying without cachedSessionId..."),t=await (0,l.withBackgroundOpencodeSlot)(()=>(0,a.runGeneralAgent)({user:n,query:$(o,d,c),workspaceTag:r,sessionTitle:`skill-opt \xb7 ${i} v${s} \xb7 ${r.slice(0,8)}`,system:C,interactionPolicy:"auto-allow",...T?{model:T}:{},handlers:J}),Y);else throw u}if(P&&clearTimeout(P),L.set(r,t.sessionId),B(),"1"!==process.env.SKILL_OPT_NO_PROTECT){let e=(0,g.enforceEditScope)(t.workspaceDir,A,{maxChangedLines:Number(process.env.SKILL_OPT_MAX_CHANGED_LINES)||0});e.restored.length>0&&(console.warn("[skill-opt-bridge] edit-scope guard restored deleted baseline files:",e.restored),S("warning",{kind:"edit_scope",message:`优化器删除了基线文件,已自动还原:${e.restored.join(", ")}`,restored:e.restored})),e.changedLines>0&&e.overBudget&&(console.warn(`[skill-opt-bridge] edit-scope: changed ${e.changedLines} lines, over budget`),S("warning",{kind:"edit_scope",message:`本次改动 ${e.changedLines} 行,超过预算上限`,changedLines:e.changedLines}))}if("1"!==process.env.SKILL_OPT_NO_VERIFY)try{for(let e=0;e<=O;e++){let o=(0,h.scanWorkspaceFiles)(t.workspaceDir),c={};for(let[e,t]of Object.entries(o))c[e]={content:Array.isArray(t.content)?t.content.join("\n"):String(t.content??"")};let u=(0,y.findSkillMd)(c);if(!u){S("warning",{kind:"self_verify",message:"自验证跳过:workspace 里找不到 SKILL.md"});break}let d=u.folder?`${u.folder}/`:"",p={};for(let[e,t]of Object.entries(c)){if(!e.startsWith("/workspace/"))continue;let n=e.slice(11);if(d){if(!n.startsWith(d))continue;n=n.slice(d.length)}n&&(p[n]=t.content)}S("verify_progress",{message:0===e?"开始自验证(结构门 + 行为重评)…":`repair 第 ${e} 轮后重新自验证…`});let f=await (0,m.runSelfVerification)({user:n,skillName:i,baseVersion:s,candidateSkillMd:u.content,candidateFiles:p,maxCases:I,budgetYuan:R,onProgress:e=>S("verify_progress",{message:e})});if(f.ok){let e=f.behavioral;S("verify_ok",{structural:f.structural.ok,behavioral:e?{baseMean:e.baseMean,candMean:e.candMean,delta:e.delta,measured:e.measured,skipped:e.skipped}:null});break}if(e>=O){S("warning",{kind:"self_verify",message:`自验证仍未通过(已 repair ${O} 轮),保留当前结果供你裁决:${f.failures.join(";")}`});break}S("warning",{kind:"self_verify",message:`自验证未通过,自动 repair(第 ${e+1}/${O} 轮):${f.failures.join(";")}`});try{await (0,l.withBackgroundOpencodeSlot)(()=>(0,a.runGeneralAgent)({user:n,query:function(e){let t=["你刚才的修改没通过自验证,请据下面的问题修复(修完我会再自动验一遍):"];if(e.structural.ok||t.push("【结构问题】\n"+e.structural.failures.map(e=>"- "+e).join("\n")),e.behavioral&&!e.behavioral.ok)for(let n of(t.push(`【行为回归】在评测用例上净分 ${e.behavioral.baseMean}→${e.behavioral.candMean}(Δ${e.behavioral.delta})。以下用例改后掉分(含原本答对的):`),e.behavioral.regressions))t.push(`- ${n.caseId.slice(0,8)} ${n.base}→${n.cand}:${n.reason}`);return t.push("修复要求:① SKILL.md 引用的每个脚本/参考文件都要真实写出且能编译(py_compile / node --check);② 别让原本答对的用例掉分;③ 定量结论(年份/计数/IP 等)必须来自脚本对真实日志的解析、逐字引用,禁止编造、禁止用当前系统年份(如日志真实年份是 2005,就不能输出 2026)。只改必要部分,不要整文件重写。"),t.join("\n")}(f),sessionId:t.sessionId,workspaceTag:r,sessionTitle:`skill-opt repair \xb7 ${i} v${s} \xb7 ${r.slice(0,8)}`,system:C,interactionPolicy:"auto-allow",...T?{model:T}:{},handlers:J}),Y)}catch(e){console.warn("[skill-opt-bridge] repair turn failed:",e?.message),S("warning",{kind:"self_verify",message:"repair 回合执行失败,保留当前结果"});break}}}catch(e){console.warn("[skill-opt-bridge] self-verify errored (non-blocking):",e?.message)}return q=(0,h.scanWorkspaceFiles)(t.workspaceDir),S("vfs_patch",{files:q}),S("done",{reason:"completed"}),console.log("[skill-opt-bridge] done",{sessionId:t.sessionId,outputLen:t.output.length,agentTextLen:F.length,fileCount:Object.keys(q).length}),{agentText:F,files:q,workspaceDir:t.workspaceDir}}async function b(e,t,n){try{let s=await (0,d.resolveSkill)(t,e,n),a=s?.assetPath;if(!a||"string"!=typeof a)return null;let l=i.default.resolve(a);return r.default.existsSync(l)?l:null}catch(e){return console.warn("[skill-opt-bridge] authoritative storageDir resolve failed:",e?.message),null}}function $(e,t,n){let r=[];return n&&n.length>0?r.push(`请按 system 提示中的优化计划逐条执行(共 ${n.length} 条)。`):e.length>0&&r.push(`请按 system 提示中列出的 ${e.length} 个 issue 进行优化。`),t.trim()&&(r.push("用户附加说明:"),r.push(t.trim())),0===r.length&&r.push("(用户没勾 issue 也没填诉求,请先看一下 SKILL.md,给一些改进建议而不是直接动文件。)"),r.join("\n\n")}async function _(e,t){if(!t)return null;let n=(await (0,o.getUserSettings)(e)).configs.find(e=>e.id===t);if(!n||!n.apiKey)return null;let r=n.provider;return{providerID:(0,c.normalizeProviderID)(r||(0,c.inferProviderFromBaseUrl)(n.baseUrl)),modelID:n.model||"deepseek-chat",apiKey:n.apiKey,baseURL:n.baseUrl}}function x(e){if(null==e)return"";if("string"==typeof e)return e.length>1500?e.slice(0,1500)+`
|
|
27
|
+
只输出 JSON:{"keep":[要保留的编号, ...], "paths":{"<编号>":"<点路径>"}}`,m=Number(process.env.SKILL_OPT_REVIEW_K)||3;async function d(e,t,n,r){if(!e.length)return[];let s=await (0,i.getActiveConfig)(r);if(!s?.apiKey)return e;let a=e.map((e,t)=>{let r=String(e.expectedValue??""),i=n.find(e=>(e.expectedOutput||"").includes(r)),s=r?n.filter(e=>(e.expectedOutput||"").includes(r)).length:0;return`${t}. [${e.kind}] ${e.description??""}(期望 ${r};在 ${s}/${n.length} 条用例出现;来源用例问的是:${(i?.input||"").replace(/\s+/g," ").slice(0,160)})`}).join("\n"),l=g.replace("%FACTS%",a).replace("%SAMPLE%",t.slice(0,4e3)),u=[],d={};for(let e=0;e<m;e++)try{let e=await c(s).chat.completions.create({model:s.model||"deepseek-chat",temperature:0,response_format:{type:"json_object"},messages:[{role:"user",content:l}]}),t=o(e.choices?.[0]?.message?.content||"");if(!Array.isArray(t.keep))continue;for(let[e,n]of(u.push(new Set(t.keep.map(Number))),Object.entries(t.paths??{})))n&&!d[e]&&(d[e]=n)}catch(e){console.warn("[self-verify] reviewer round failed (skip):",e?.message)}return u.length?e.map((e,t)=>u.every(e=>e.has(t))?{...e,jsonPath:d[String(t)]}:null).filter(e=>null!=e):[]}function p(e){let t=String(e.expectedValue??"").trim();return t?"year"===e.kind&&/^\d{4}$/.test(t)?(0,a.makeYearAssertion)(t,e.jsonPath):("count"===e.kind||"number"===e.kind)&&/^\d+(?:\.\d+)?$/.test(t)?(0,a.makeNumericAssertion)((e.description||"count").slice(0,24),t,e.jsonPath):null:null}let y=new Map;async function f(e,t,n=""){if(!e.length)return[];let r=`${t}:${e.length}:${e.map(e=>e.id).join(",").slice(0,120)}`,i=y.get(r);if(i)return i;let s=(await u(e,t)).filter(t=>{var n;return n=String(t.expectedValue??""),!!n&&e.map(e=>e.expectedOutput||"").join("\n").includes(n)}),a=(await d(s,n,e,t)).map(p).filter(e=>null!=e);return y.set(r,a),a}e.s(["deriveScriptAssertions",()=>f]),n()}catch(e){n(e)}},!1),188080,e=>e.a(async(t,n)=>{try{var r=e.i(902157),i=e.i(750227),s=e.i(660526),a=e.i(547499),l=e.i(854763),o=e.i(773613),c=e.i(317331),u=e.i(307692),d=e.i(833821),p=e.i(87702),f=e.i(674249),h=t([l,o,c,u,d,f]);[l,o,c,u,d,f]=h.then?(await h)():h;let S=e=>Math.round(100*e),v=new Map;async function g(e,t,n){let s=-(1e5+Math.floor(1e6*Math.random())),o=(0,a.getSkillVersionStorageDir)(e,s),c=[];for(let[e,t]of(r.default.mkdirSync(o,{recursive:!0}),Object.entries(n))){if(e.includes(".."))continue;let n=i.default.join(o,e);r.default.mkdirSync(i.default.dirname(n),{recursive:!0}),r.default.writeFileSync(n,t??""),c.push(e)}return await l.db.deleteSkillVersion(e,s),await l.db.createSkillVersion({skillId:e,version:s,content:t,assetPath:(0,a.getSkillVersionAssetPath)(e,s),files:JSON.stringify(c),changeLog:"self-verify ephemeral candidate"}),{version:s,cleanup:()=>{l.db.deleteSkillVersion(e,s).catch(()=>{}),r.default.rmSync(o,{recursive:!0,force:!0})}}}async function m(e,t,n,r){try{let i=(await (0,c.runGeneralAgent)({user:e,query:r.input,skill:t,skillVersion:n,ephemeralServer:!0,interactionPolicy:"auto-allow"})).output||"";if(i.trim().length<5)return null;let s=await (0,u.judgeAnswer)(r.input,{standard_answer_example:r.expectedOutput,root_causes:(r.rootCauses??[]).map(e=>({content:e.content,weight:e.weight}))},i,e);return{score:s.score,reason:s.reason||""}}catch(e){return console.warn("[self-verify] scoreCase failed (treat as skip):",e?.message?.slice(0,120)),null}}async function y(e,t,n,r,i){let s=`${n}:${r}:${i.id}`,a=v.get(s);if(a)return a;let l=await m(e,t,r,i);return l&&v.set(s,l),l}async function k(e){let{user:t,skillName:n,skillId:r,baseVersion:i,cases:s,onProgress:a}=e;if(!s.length)return{ok:!0,baseMean:null,candMean:null,delta:null,perCase:[],regressions:[],measured:0,skipped:"该 skill 无可用 eval 用例"};let{version:l,cleanup:o}=await g(r,e.candidateSkillMd,e.candidateFiles),c=[],u=0;try{for(let o of s){if(null!=e.budgetYuan&&.6*u>=e.budgetYuan){a?.(`自验证预算软门(~\xa5${e.budgetYuan})触发,停在 ${c.length}/${s.length} 例`);break}a?.(`行为重评 ${o.id.slice(0,8)}(${c.length+1}/${s.length})…`);let d=await y(t,n,r,i,o);!v.has(`${r}:${i}:${o.id}`)&&u++;let p=await m(t,n,l,o);u++;let f=d?S(d.score):null,h=p?S(p.score):null;c.push({caseId:o.id,base:f,cand:h,delta:null!=f&&null!=h?h-f:null,reason:p?.reason||d?.reason||""})}}finally{o()}let d=c.filter(e=>null!=e.base&&null!=e.cand),p=d.length?Math.round(d.reduce((e,t)=>e+t.base,0)/d.length*10)/10:null,f=d.length?Math.round(d.reduce((e,t)=>e+t.cand,0)/d.length*10)/10:null,h=null!=p&&null!=f?Math.round((f-p)*10)/10:null,k=c.filter(e=>null!=e.delta&&e.delta<0);return{ok:null==h||h>=0,baseMean:p,candMean:f,delta:h,perCase:c,regressions:k,measured:d.length}}async function w(e){let t,n=(0,p.verifyStructure)(e.candidateFiles);if(e.onProgress?.(`结构门:${n.ok?"pass":"FAIL — "+n.failures.join(";")}`),!n.ok)return{ok:!1,structural:n,scriptTruth:null,behavioral:null,failures:n.failures};let i=[];try{t=(await l.db.findSkill(e.skillName,e.user))?.id,i=(await (0,d.findAgentDatasetsByTargetSkill)(e.user,e.skillName)).filter(e=>"ideal_output"===e.datasetKind).flatMap(e=>e.cases)}catch(e){console.warn("[self-verify] dataset load failed:",e?.message)}let a=null,o=function(e){for(let t of e)for(let e of(t.input||"").matchAll(/~?\/[A-Za-z0-9._/~-]+/g)){let t=e[0].replace(/^~/,s.default.homedir());try{if(r.default.existsSync(t)&&r.default.statSync(t).isFile())return t}catch{}}}(i),c=o?(0,p.runScriptsForSample)(e.candidateFiles,o):"",u=await (0,f.deriveScriptAssertions)(i,e.user,c);if(u.length&&o&&(a=(0,p.verifyScriptTruth)(e.candidateFiles,{logPath:o,assertions:u}),e.onProgress?.(`脚本真值门(${u.map(e=>e.id).join(", ")}):${a.ok?"pass":"FAIL — "+a.failures.join(";")}`),!a.ok))return{ok:!1,structural:n,scriptTruth:a,behavioral:null,failures:[...n.failures,...a.failures]};if(e.structuralOnly)return{ok:!0,structural:n,scriptTruth:a,behavioral:null,failures:[]};let h=null;try{if(t)if(i.length){let n=function(e,t,n){if(e.length<=n)return e;let r=new Set(t??[]),i=e.filter(e=>r.has(e.id)),s=e.filter(e=>!r.has(e.id));return[...i,...s].slice(0,Math.max(n,i.length))}(i,e.sampleCaseIds,e.maxCases??5);e.onProgress?.(`行为门:在 ${n.length} 个代表性用例上重评(共 ${i.length} 例)…`),h=await k({user:e.user,skillName:e.skillName,skillId:t,baseVersion:e.baseVersion,candidateSkillMd:e.candidateSkillMd,candidateFiles:e.candidateFiles,cases:n,budgetYuan:e.budgetYuan,onProgress:e.onProgress})}else h={ok:!0,baseMean:null,candMean:null,delta:null,perCase:[],regressions:[],measured:0,skipped:"无 ideal_output 评测集,行为门跳过"};else h={ok:!0,baseMean:null,candMean:null,delta:null,perCase:[],regressions:[],measured:0,skipped:"DB 无此 skill,行为门跳过"}}catch(e){console.warn("[self-verify] behavioral phase errored (treat as pass, structural still gated):",e?.message),h={ok:!0,baseMean:null,candMean:null,delta:null,perCase:[],regressions:[],measured:0,skipped:"行为门异常,已跳过"}}let g=[...n.failures,...a?.failures??[]];if(h&&!h.ok){let e=h.regressions.map(e=>`${e.caseId.slice(0,8)} ${e.base}→${e.cand}(${e.reason.slice(0,50)})`).join(";");g.push(`行为门:净分 ${h.baseMean}→${h.candMean}(Δ${h.delta}),回归用例:${e||"净降"}`)}return{ok:(a?.ok??!0)&&(h?.ok??!0),structural:n,scriptTruth:a,behavioral:h,failures:g}}e.s(["runSelfVerification",()=>w]),n()}catch(e){n(e)}},!1),149903,e=>e.a(async(t,n)=>{try{var r=e.i(902157),i=e.i(773613),s=e.i(317331),a=e.i(378673),l=e.i(106411),o=e.i(759453),c=e.i(134526),u=e.i(750696),d=e.i(547499),p=e.i(21253),f=e.i(539078),h=e.i(447404),g=e.i(71652),m=e.i(188080),y=e.i(403577),k=t([i,s,l,o,u,h,m]);[i,s,l,o,u,h,m]=k.then?(await k)():k;let O=Number(process.env.SKILL_OPT_VERIFY_REPAIR_K)||1,I=Number(process.env.SKILL_OPT_VERIFY_MAX_CASES)||5,R=Number(process.env.SKILL_OPT_VERIFY_BUDGET_YUAN)||8,L=new Map,A=new Map;async function w(e,t){let n=(A.get(e)??Promise.resolve()).catch(()=>{}).then(t);A.set(e,n);try{return await n}finally{A.get(e)===n&&A.delete(e)}}function S(e){return w(e.threadId,()=>v(e))}async function v(e){let t,{user:n,threadId:r,skillName:i,baseVersion:l,checkedIssues:o,planItems:u,userFeedback:d,modelId:k,baselineFiles:w,send:S}=e;console.log("[skill-opt-bridge] start",{user:n,threadId:r,skillName:i,baseVersion:l,issuesCount:o.length,planItemsCount:u?.length??0,feedbackLen:d.length,baselineFiles:w?Object.keys(w).length:0}),(0,c.ensureUserWorkspace)(n);let v=(0,c.ensureSessionWorkspace)(n,r),A=await b(n,i,l),E=(0,p.ensureSkillFilesInWorkspace)({skillName:i,baseVersion:l,workspaceDir:v,baselineFiles:w,storageDirOverride:A});E.copied>0&&console.log("[skill-opt-bridge] prefilled workspace:",E);let T={};try{T=(0,h.scanWorkspaceFiles)(v),Object.keys(T).length>0&&S("vfs_patch",{files:T})}catch{}let j=await _(n,k),C=(0,f.buildSkillOptSystemPrompt)({skillName:i,baseVersion:l,checkedIssues:o,userFeedback:d,planItems:u}),P=new AbortController,M=null,N=()=>{M&&clearTimeout(M),M=setTimeout(()=>P.abort(),3e4)},F="",K=null,D=new Map,U=new Set,q={},V=new Set,W=e=>{if(!V.has(e)){V.add(e);try{S("error",e)}catch{}}},B=()=>{K&&(S("thinking",{id:K,done:!0}),K=null)},J={onText:e=>{N(),B(),F+=e.delta,S("text",e.delta)},onReasoning:e=>{if(N(),!e.delta)return;K||(K=`think_${Date.now()}_${Math.random().toString(36).slice(2,8)}`);let t=D.get(K)??"",n=e.fullText&&"string"==typeof e.fullText?e.fullText:t+e.delta;if(n.length<=t.length)return;let r=n.startsWith(t)?n.slice(t.length):e.delta;D.set(K,n),S("thinking",{id:K,delta:r})},onTool:e=>{N();let t=e.callID||e.partID;t&&("start"===e.phase||"delta"===e.phase?(U.has(t)||(U.add(t),B()),S("tool_call",{id:t,name:e.name,args:e.input,status:"running"})):"end"===e.phase?(U.has(t)||U.add(t),S("tool_call",{id:t,name:e.name,args:e.input,status:"running"}),S("tool_result",{id:t,status:"error"===e.status?"error":"ok",summary:x(e.output)})):"error"===e.phase&&(U.has(t)||(U.add(t),S("tool_call",{id:t,name:e.name,args:e.input,status:"running"})),S("tool_result",{id:t,status:"error",error:x(e.error)||"tool error"})))},onFileEdited:()=>{N();try{q=(0,h.scanWorkspaceFiles)(v),S("vfs_patch",{files:q})}catch{}},onAssistantMessage:e=>{if("error"===e.status)return void setTimeout(()=>P.abort(),500);if("completed"!==e.status)return;let t=e.info?.finish??e.info?.finishReason;"string"!=typeof t||"tool-calls"!==t&&setTimeout(()=>P.abort(),500)},onSession:e=>{if("idle"===e.phase&&setTimeout(()=>P.abort(),500),"error"===e.phase){let t=function(e){if(!e)return"session 错误(无详情)";if("string"==typeof e)return e;if("object"==typeof e){let t=e.message||e.error||e.data?.message;if("string"==typeof t)return t;try{return JSON.stringify(e).slice(0,500)}catch{}}return String(e)}(e.error);console.error("[skill-opt-bridge] session.error:",t),W(t)}},onQuestion:async()=>null,onError:e=>{let t=e?.message||String(e);console.error("[skill-opt-bridge] chat onError:",t),W(t)}},H=L.get(r);console.log("[skill-opt-bridge] cachedSessionId:",H||"(none)");let Y={taskType:"skill-opt",user:n,label:`skill-opt \xb7 ${i} v${l}`,skill:i,skillVersion:l,displayOnly:!0};try{t=await (0,a.withBackgroundOpencodeSlot)(()=>(0,s.runGeneralAgent)({user:n,query:$(o,d,u),sessionId:H,workspaceTag:r,sessionTitle:`skill-opt \xb7 ${i} v${l} \xb7 ${r.slice(0,8)}`,system:C,chatOptions:{idleTimeoutMs:3e4,streamTimeoutMs:9e5,signal:P.signal},systemAgentName:"skill-optimizer-chat",interactionPolicy:"auto-allow",...j?{model:j}:{},handlers:J}),Y)}catch(c){let e=c instanceof Error?c.message:String(c);if(console.error("[skill-opt-bridge] runGeneralAgent threw:",e),H&&/session/i.test(e))L.delete(r),console.log("[skill-opt-bridge] retrying without cachedSessionId..."),t=await (0,a.withBackgroundOpencodeSlot)(()=>(0,s.runGeneralAgent)({user:n,query:$(o,d,u),workspaceTag:r,sessionTitle:`skill-opt \xb7 ${i} v${l} \xb7 ${r.slice(0,8)}`,system:C,interactionPolicy:"auto-allow",...j?{model:j}:{},handlers:J}),Y);else throw c}if(M&&clearTimeout(M),L.set(r,t.sessionId),B(),"1"!==process.env.SKILL_OPT_NO_PROTECT){let e=(0,g.enforceEditScope)(t.workspaceDir,T,{maxChangedLines:Number(process.env.SKILL_OPT_MAX_CHANGED_LINES)||0});e.restored.length>0&&(console.warn("[skill-opt-bridge] edit-scope guard restored deleted baseline files:",e.restored),S("warning",{kind:"edit_scope",message:`优化器删除了基线文件,已自动还原:${e.restored.join(", ")}`,restored:e.restored})),e.changedLines>0&&e.overBudget&&(console.warn(`[skill-opt-bridge] edit-scope: changed ${e.changedLines} lines, over budget`),S("warning",{kind:"edit_scope",message:`本次改动 ${e.changedLines} 行,超过预算上限`,changedLines:e.changedLines}))}if("1"!==process.env.SKILL_OPT_NO_VERIFY)try{for(let e=0;e<=O;e++){let o=(0,h.scanWorkspaceFiles)(t.workspaceDir),c={};for(let[e,t]of Object.entries(o))c[e]={content:Array.isArray(t.content)?t.content.join("\n"):String(t.content??"")};let u=(0,y.findSkillMd)(c);if(!u){S("warning",{kind:"self_verify",message:"自验证跳过:workspace 里找不到 SKILL.md"});break}let d=u.folder?`${u.folder}/`:"",p={};for(let[e,t]of Object.entries(c)){if(!e.startsWith("/workspace/"))continue;let n=e.slice(11);if(d){if(!n.startsWith(d))continue;n=n.slice(d.length)}n&&(p[n]=t.content)}S("verify_progress",{message:0===e?"开始自验证(结构门 + 行为重评)…":`repair 第 ${e} 轮后重新自验证…`});let f=await (0,m.runSelfVerification)({user:n,skillName:i,baseVersion:l,candidateSkillMd:u.content,candidateFiles:p,maxCases:I,budgetYuan:R,onProgress:e=>S("verify_progress",{message:e})});if(f.ok){let e=f.behavioral;S("verify_ok",{structural:f.structural.ok,behavioral:e?{baseMean:e.baseMean,candMean:e.candMean,delta:e.delta,measured:e.measured,skipped:e.skipped}:null});break}if(e>=O){S("warning",{kind:"self_verify",message:`自验证仍未通过(已 repair ${O} 轮),保留当前结果供你裁决:${f.failures.join(";")}`});break}S("warning",{kind:"self_verify",message:`自验证未通过,自动 repair(第 ${e+1}/${O} 轮):${f.failures.join(";")}`});try{await (0,a.withBackgroundOpencodeSlot)(()=>(0,s.runGeneralAgent)({user:n,query:function(e){let t=["你刚才的修改没通过自验证,请据下面的问题修复(修完我会再自动验一遍):"];if(e.structural.ok||t.push("【结构问题】\n"+e.structural.failures.map(e=>"- "+e).join("\n")),e.behavioral&&!e.behavioral.ok)for(let n of(t.push(`【行为回归】在评测用例上净分 ${e.behavioral.baseMean}→${e.behavioral.candMean}(Δ${e.behavioral.delta})。以下用例改后掉分(含原本答对的):`),e.behavioral.regressions))t.push(`- ${n.caseId.slice(0,8)} ${n.base}→${n.cand}:${n.reason}`);return t.push("修复要求:① SKILL.md 引用的每个脚本/参考文件都要真实写出且能编译(py_compile / node --check);② 别让原本答对的用例掉分;③ 定量结论(年份/计数/IP 等)必须来自脚本对真实日志的解析、逐字引用,禁止编造、禁止用当前系统年份(如日志真实年份是 2005,就不能输出 2026)。只改必要部分,不要整文件重写。"),t.join("\n")}(f),sessionId:t.sessionId,workspaceTag:r,sessionTitle:`skill-opt repair \xb7 ${i} v${l} \xb7 ${r.slice(0,8)}`,system:C,interactionPolicy:"auto-allow",...j?{model:j}:{},handlers:J}),Y)}catch(e){console.warn("[skill-opt-bridge] repair turn failed:",e?.message),S("warning",{kind:"self_verify",message:"repair 回合执行失败,保留当前结果"});break}}}catch(e){console.warn("[skill-opt-bridge] self-verify errored (non-blocking):",e?.message)}return q=(0,h.scanWorkspaceFiles)(t.workspaceDir),S("vfs_patch",{files:q}),S("done",{reason:"completed"}),console.log("[skill-opt-bridge] done",{sessionId:t.sessionId,outputLen:t.output.length,agentTextLen:F.length,fileCount:Object.keys(q).length}),{agentText:F,files:q,workspaceDir:t.workspaceDir}}async function b(e,t,n){try{let i=await (0,u.resolveSkill)(t,e,n),s=i?.assetPath;if(!s||"string"!=typeof s)return null;let a=(0,d.resolveRuntimeAssetPath)(s);return r.default.existsSync(a)?a:null}catch(e){return console.warn("[skill-opt-bridge] authoritative storageDir resolve failed:",e?.message),null}}function $(e,t,n){let r=[];return n&&n.length>0?r.push(`请按 system 提示中的优化计划逐条执行(共 ${n.length} 条)。`):e.length>0&&r.push(`请按 system 提示中列出的 ${e.length} 个 issue 进行优化。`),t.trim()&&(r.push("用户附加说明:"),r.push(t.trim())),0===r.length&&r.push("(用户没勾 issue 也没填诉求,请先看一下 SKILL.md,给一些改进建议而不是直接动文件。)"),r.join("\n\n")}async function _(e,t){if(!t)return null;let n=(await (0,l.getUserSettings)(e)).configs.find(e=>e.id===t);if(!n||!n.apiKey)return null;let r=n.provider;return{providerID:(0,o.normalizeProviderID)(r||(0,o.inferProviderFromBaseUrl)(n.baseUrl)),modelID:n.model||"deepseek-chat",apiKey:n.apiKey,baseURL:n.baseUrl}}function x(e){if(null==e)return"";if("string"==typeof e)return e.length>1500?e.slice(0,1500)+`
|
|
28
28
|
…[truncated, +${e.length-1500} chars]`:e;try{let t=JSON.stringify(e,null,2);return t.length>1500?t.slice(0,1500)+`
|
|
29
29
|
…[truncated, +${t.length-1500} chars]`:t}catch{return String(e).slice(0,1500)}}e.s(["streamSkillOptOpencode",()=>S]),n()}catch(e){n(e)}},!1),364688,e=>{"use strict";function t(e,t){let n=[];return{send:(r,i)=>{if(e.enqueue(t.encode(`data: ${JSON.stringify({mode:r,payload:i})}
|
|
30
30
|
|
|
31
31
|
`)),"text"===r){let e=n[n.length-1];e&&"text"===e.kind?e.text+=i:n.push({kind:"text",id:`text_${n.length}`,text:i})}else if("thinking"===r){let{id:e,delta:t,done:r}=i||{};if(!e)return;let s=n.findIndex(t=>"thinking"===t.kind&&t.id===e);-1===s?n.push({kind:"thinking",id:e,text:t||"",done:!!r}):(t&&(n[s].text+=t),r&&(n[s].done=!0))}else if("tool_call"===r){let{id:e,name:t,args:r,status:s}=i||{};if(!e)return;let a=n.findIndex(t=>"tool"===t.kind&&t.id===e);-1===a?n.push({kind:"tool",id:e,name:t,args:r,status:s||"running"}):(void 0!==r&&(n[a].args=r),t&&!n[a].name&&(n[a].name=t),"running"===n[a].status&&("ok"===s||"error"===s)&&(n[a].status=s))}else if("tool_result"===r){let{id:e,status:t,summary:r,error:s,finalArgs:a}=i||{};if(!e)return;let l=n.findIndex(t=>"tool"===t.kind&&t.id===e);-1!==l&&(t&&(n[l].status=t),r&&(n[l].summary=r),s&&(n[l].error=s),a&&"object"==typeof a&&(n[l].args=a))}else if("download"===r){let{id:e,skillName:t,fileCount:r,sizeBytes:s}=i||{};if(!e)return;n.push({kind:"download",id:e,skillName:t,fileCount:r,sizeBytes:s})}else if("question"===r){let{id:e,question:t,choices:r}=i||{};if(!e)return;n.push({kind:"question",id:e,question:t||"",choices:r,status:"pending"})}else if("question_answered"===r){let{id:e,status:t,answer:r}=i||{};if(!e)return;let s=n.findIndex(t=>"question"===t.kind&&t.id===e);-1!==s&&(t&&(n[s].status=t),void 0!==r&&(n[s].answer=r))}},getBlocks:()=>n}}e.s(["createBlockMirror",()=>t])},896544,e=>e.a(async(t,n)=>{try{var r=e.i(149903),i=e.i(854763),s=e.i(364688),a=t([r,i]);async function l(e){var t,n;let a,l,c,u,d,p;try{a=await e.json()}catch{return new Response(JSON.stringify({error:"Invalid JSON"}),{status:400})}let{user:f,threadId:h,skillName:g,baseVersion:m,checkedIssues:y,userFeedback:k,modelId:w,baselineFiles:S,mock:v,planId:b}=a||{},$=[];if(f||$.push("user"),h||$.push("threadId"),g||$.push("skillName"),"number"!=typeof m&&$.push("baseVersion"),$.length>0)return new Response(JSON.stringify({error:`Missing fields: ${$.join(", ")}`}),{status:400});let _=Array.isArray(y)?y.filter(e=>e&&"string"==typeof e.id&&"string"==typeof e.summary).map(e=>({id:String(e.id),severity:["high","medium","low"].includes(e.severity)?e.severity:"medium",category:"string"==typeof e.category?e.category:void 0,summary:String(e.summary),evidence:"string"==typeof e.evidence?e.evidence:void 0,improvementSuggestion:"string"==typeof e.improvementSuggestion?e.improvementSuggestion:void 0})):[],x="string"==typeof k?k:"";if("string"==typeof b&&b.trim())try{let e=await i.prismaRaw.skillOptPlan.findUnique({where:{id:b.trim()},include:{items:{orderBy:{rank:"asc"}}}});if(!e||e.sessionId!==h)return new Response(JSON.stringify({error:"plan not found for this session"}),{status:400});if(l=(e.items||[]).filter(e=>("core"===e.route||"reference"===e.route)&&"pending"===e.status).map(e=>({id:e.id,route:e.route,title:e.title,rationale:e.rationale,severity:["high","medium","low"].includes(e.severity)?e.severity:"medium",targetFile:e.targetFile??void 0,anchorText:e.anchorText??void 0,proposedEdit:e.proposedEdit??void 0,prevalence:e.prevalence??void 0})),0===l.length)return new Response(JSON.stringify({error:"plan has no executable items (all conflict/dismissed/backlog)"}),{status:400});"draft"===e.status&&await i.prismaRaw.skillOptPlan.update({where:{id:e.id},data:{status:"confirmed"}})}catch(e){return console.warn("[skill-opt route] plan load failed:",e?.message||e),new Response(JSON.stringify({error:"failed to load plan"}),{status:500})}let O=(()=>{if(!S||"object"!=typeof S)return;let e={},t=0;for(let[n,r]of Object.entries(S))if("string"==typeof n&&"string"==typeof r){if((t+=r.length)>2097152){console.warn("[skill-opt route] baselineFiles exceeded 2MB cap, truncating");break}e[n]=r}return Object.keys(e).length>0?e:void 0})(),I=new TextEncoder,R=l?(t=l,n=x,c=[],u=t.filter(e=>"core"===e.route).length,d=t.length-u,p=t.map(e=>`[${e.severity}/${e.route}] ${e.id}: ${e.title}`).join("\n"),c.push(`按归并优化计划执行(core ${u} 条 + reference ${d} 条):
|
|
32
32
|
${p}`),n.trim()&&c.push(`附加诉求:${n.trim()}`),c.join("\n\n")):function(e,t){let n=[];if(e.length>0){let t=e.map(e=>`[${e.severity}] ${e.id}: ${e.summary}`).join("\n");n.push(`勾选了 ${e.length} 个待优化点:
|
|
33
|
-
${t}`)}return(t.trim()&&n.push(`附加诉求:${t.trim()}`),0===n.length)?"(开始优化)":n.join("\n\n")}(_,x),L=!1;try{let e=await i.prismaRaw.skillOptSession.findUnique({where:{id:h},select:{id:!0,title:!0}});if((L=!!e)&&(await i.prismaRaw.skillOptMessage.create({data:{sessionId:h,role:"user",content:R,blocks:"[]"}}),e&&("新对话"===e.title||!e.title))){let e=R.length>30?R.slice(0,27)+"…":R;e.trim()&&await i.prismaRaw.skillOptSession.update({where:{id:h},data:{title:e}})}}catch(e){console.warn("[skill-opt route] pre-stream persistence failed:",e?.message||e)}if(v){let e=new ReadableStream({async start(e){let{send:t,getBlocks:n}=(0,s.createBlockMirror)(e,I),r="";try{await o({skillName:g,baseVersion:m,issues:_,feedback:x,send:(e,n)=>{"text"===e&&"string"==typeof n&&(r+=n),t(e,n)}}),t("done",{reason:"completed"})}catch(e){try{t("error",e?.message||String(e))}catch{}}finally{try{e.close()}catch{}}if(L)try{await i.prismaRaw.skillOptMessage.create({data:{sessionId:h,role:"agent",content:r,blocks:JSON.stringify(n())}})}catch(e){console.warn("[skill-opt route] mock post-stream persistence failed:",e?.message||e)}}});return new Response(e,{headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache"}})}let
|
|
33
|
+
${t}`)}return(t.trim()&&n.push(`附加诉求:${t.trim()}`),0===n.length)?"(开始优化)":n.join("\n\n")}(_,x),L=!1;try{let e=await i.prismaRaw.skillOptSession.findUnique({where:{id:h},select:{id:!0,title:!0}});if((L=!!e)&&(await i.prismaRaw.skillOptMessage.create({data:{sessionId:h,role:"user",content:R,blocks:"[]"}}),e&&("新对话"===e.title||!e.title))){let e=R.length>30?R.slice(0,27)+"…":R;e.trim()&&await i.prismaRaw.skillOptSession.update({where:{id:h},data:{title:e}})}}catch(e){console.warn("[skill-opt route] pre-stream persistence failed:",e?.message||e)}if(v){let e=new ReadableStream({async start(e){let{send:t,getBlocks:n}=(0,s.createBlockMirror)(e,I),r="";try{await o({skillName:g,baseVersion:m,issues:_,feedback:x,send:(e,n)=>{"text"===e&&"string"==typeof n&&(r+=n),t(e,n)}}),t("done",{reason:"completed"})}catch(e){try{t("error",e?.message||String(e))}catch{}}finally{try{e.close()}catch{}}if(L)try{await i.prismaRaw.skillOptMessage.create({data:{sessionId:h,role:"agent",content:r,blocks:JSON.stringify(n())}})}catch(e){console.warn("[skill-opt route] mock post-stream persistence failed:",e?.message||e)}}});return new Response(e,{headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache"}})}let A=new ReadableStream({async start(e){let{send:t,getBlocks:n}=(0,s.createBlockMirror)(e,I),a="",o={};try{await (0,r.streamSkillOptOpencode)({user:f,threadId:h,skillName:g,baseVersion:m,checkedIssues:_,planItems:l,userFeedback:x,modelId:w,baselineFiles:O,send:(e,n)=>{"text"===e&&"string"==typeof n&&(a+=n),"vfs_patch"===e&&n?.files&&(o=n.files),t(e,n)}})}catch(e){console.error("[skill-opt route] streamSkillOptOpencode threw:",e?.message||e);try{t("error",e?.message||String(e))}catch{}}finally{try{e.close()}catch{}}if(L)try{await i.prismaRaw.skillOptMessage.create({data:{sessionId:h,role:"agent",content:a,blocks:JSON.stringify(n())}}),await i.prismaRaw.skillOptSession.update({where:{id:h},data:{files:JSON.stringify(o)}})}catch(e){console.warn("[skill-opt route] post-stream persistence failed:",e?.message||e)}}});return new Response(A,{headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache"}})}async function o(e){let t,{skillName:n,baseVersion:r,issues:i,feedback:s,send:a}=e,l=e=>new Promise(t=>setTimeout(t,e)),o=(t=0,e=>`${e}_${Date.now()}_${++t}`),c=o("think");for(let e of`分析 ${n} v${r} 的 ${i.length} 个待优化点${s?"和用户附加诉求":""}…`)a("thinking",{id:c,delta:e}),await l(20);a("thinking",{id:c,done:!0}),await l(200);let u=o("tool");a("tool_call",{id:u,name:"read",args:{path:"SKILL.md"},status:"running"}),await l(300),a("tool_result",{id:u,status:"ok",summary:"读取 SKILL.md(mock)"});let d=o("tool");a("tool_call",{id:d,name:"edit",args:{path:"SKILL.md"},status:"running"}),await l(400),a("tool_result",{id:d,status:"ok",summary:"已写入修改"});let p=function(e,t,n,r){let i=["---",`name: ${e}`,`version: ${t+1}`,"description: (mock 优化版本)","---","",`# ${e}`,"","## 优化点处理(mock)",""];for(let e of n)i.push(`- [${e.severity}] \`${e.id}\`:${e.summary}`);return r&&i.push("","## 用户诉求","",r),i.join("\n")}(n,r,i,s);a("vfs_patch",{files:{"/workspace/SKILL.md":{content:p.split("\n"),created_at:new Date().toISOString(),modified_at:new Date().toISOString()}}});let f=function(e){if(0===e.length)return"\n\n(mock)没有待优化点,已查看 SKILL.md 但未作修改。";let t=e.map(e=>`\`${e.id}\``).join(", ");return`
|
|
34
34
|
|
|
35
|
-
(mock)已修改 \`SKILL.md\`,覆盖以下 issue:${t}。`}(i);a("text",f)}[r,i]=a.then?(await a)():a,e.s(["POST",()=>l,"dynamic",0,"force-dynamic"]),n()}catch(e){n(e)}},!1),528383,e=>e.a(async(t,n)=>{try{var r=e.i(747909),i=e.i(174017),s=e.i(996250),a=e.i(759756),l=e.i(561916),o=e.i(174677),c=e.i(869741),u=e.i(316795),d=e.i(487718),p=e.i(995169),f=e.i(47587),h=e.i(666012),g=e.i(570101),m=e.i(626937),y=e.i(10372),k=e.i(193695);e.i(52474);var w=e.i(600220),S=e.i(896544),v=t([S]);[S]=v.then?(await v)():v;let _=new r.AppRouteRouteModule({definition:{kind:i.RouteKind.APP_ROUTE,page:"/api/skill-opt/chat/route",pathname:"/api/skill-opt/chat",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/skill-opt/chat/route.ts",nextConfigOutput:"standalone",userland:S}),{workAsyncStorage:x,workUnitAsyncStorage:O,serverHooks:I}=_;function b(){return(0,s.patchFetch)({workAsyncStorage:x,workUnitAsyncStorage:O})}async function $(e,t,n){_.isDev&&(0,a.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let r="/api/skill-opt/chat/route";r=r.replace(/\/index$/,"")||"/";let s=await _.prepare(e,t,{srcPage:r,multiZoneDraftMode:!1});if(!s)return t.statusCode=400,t.end("Bad Request"),null==n.waitUntil||n.waitUntil.call(n,Promise.resolve()),null;let{buildId:S,params:v,nextConfig:b,parsedUrl:$,isDraftMode:x,prerenderManifest:O,routerServerContext:I,isOnDemandRevalidate:R,revalidateOnlyGenerated:L,resolvedPathname:
|
|
35
|
+
(mock)已修改 \`SKILL.md\`,覆盖以下 issue:${t}。`}(i);a("text",f)}[r,i]=a.then?(await a)():a,e.s(["POST",()=>l,"dynamic",0,"force-dynamic"]),n()}catch(e){n(e)}},!1),528383,e=>e.a(async(t,n)=>{try{var r=e.i(747909),i=e.i(174017),s=e.i(996250),a=e.i(759756),l=e.i(561916),o=e.i(174677),c=e.i(869741),u=e.i(316795),d=e.i(487718),p=e.i(995169),f=e.i(47587),h=e.i(666012),g=e.i(570101),m=e.i(626937),y=e.i(10372),k=e.i(193695);e.i(52474);var w=e.i(600220),S=e.i(896544),v=t([S]);[S]=v.then?(await v)():v;let _=new r.AppRouteRouteModule({definition:{kind:i.RouteKind.APP_ROUTE,page:"/api/skill-opt/chat/route",pathname:"/api/skill-opt/chat",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/skill-opt/chat/route.ts",nextConfigOutput:"standalone",userland:S}),{workAsyncStorage:x,workUnitAsyncStorage:O,serverHooks:I}=_;function b(){return(0,s.patchFetch)({workAsyncStorage:x,workUnitAsyncStorage:O})}async function $(e,t,n){_.isDev&&(0,a.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let r="/api/skill-opt/chat/route";r=r.replace(/\/index$/,"")||"/";let s=await _.prepare(e,t,{srcPage:r,multiZoneDraftMode:!1});if(!s)return t.statusCode=400,t.end("Bad Request"),null==n.waitUntil||n.waitUntil.call(n,Promise.resolve()),null;let{buildId:S,params:v,nextConfig:b,parsedUrl:$,isDraftMode:x,prerenderManifest:O,routerServerContext:I,isOnDemandRevalidate:R,revalidateOnlyGenerated:L,resolvedPathname:A,clientReferenceManifest:E,serverActionsManifest:T}=s,j=(0,c.normalizeAppPath)(r),C=!!(O.dynamicRoutes[j]||O.routes[A]),P=async()=>((null==I?void 0:I.render404)?await I.render404(e,t,$,!1):t.end("This page could not be found"),null);if(C&&!x){let e=!!O.routes[A],t=O.dynamicRoutes[j];if(t&&!1===t.fallback&&!e){if(b.experimental.adapterPath)return await P();throw new k.NoFallbackError}}let M=null;!C||_.isDev||x||(M=A,M="/index"===M?"/":M);let N=!0===_.isDev||!C,F=C&&!N;T&&E&&(0,o.setManifestsSingleton)({page:r,clientReferenceManifest:E,serverActionsManifest:T});let K=e.method||"GET",D=(0,l.getTracer)(),U=D.getActiveScopeSpan(),q={params:v,prerenderManifest:O,renderOpts:{experimental:{authInterrupts:!!b.experimental.authInterrupts},cacheComponents:!!b.cacheComponents,supportsDynamicResponse:N,incrementalCache:(0,a.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:b.cacheLife,waitUntil:n.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,n,r,i)=>_.onRequestError(e,t,r,i,I)},sharedContext:{buildId:S}},V=new u.NodeNextRequest(e),W=new u.NodeNextResponse(t),B=d.NextRequestAdapter.fromNodeNextRequest(V,(0,d.signalFromNodeResponse)(t));try{let s=async e=>_.handle(B,q).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let n=D.getRootSpanAttributes();if(!n)return;if(n.get("next.span_type")!==p.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${n.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let i=n.get("next.route");if(i){let t=`${K} ${i}`;e.setAttributes({"next.route":i,"http.route":i,"next.span_name":t}),e.updateName(t)}else e.updateName(`${K} ${r}`)}),o=!!(0,a.getRequestMeta)(e,"minimalMode"),c=async a=>{var l,c;let u=async({previousCacheEntry:i})=>{try{if(!o&&R&&L&&!i)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let r=await s(a);e.fetchMetrics=q.renderOpts.fetchMetrics;let l=q.renderOpts.pendingWaitUntil;l&&n.waitUntil&&(n.waitUntil(l),l=void 0);let c=q.renderOpts.collectedTags;if(!C)return await (0,h.sendResponse)(V,W,r,q.renderOpts.pendingWaitUntil),null;{let e=await r.blob(),t=(0,g.toNodeOutgoingHttpHeaders)(r.headers);c&&(t[y.NEXT_CACHE_TAGS_HEADER]=c),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let n=void 0!==q.renderOpts.collectedRevalidate&&!(q.renderOpts.collectedRevalidate>=y.INFINITE_CACHE)&&q.renderOpts.collectedRevalidate,i=void 0===q.renderOpts.collectedExpire||q.renderOpts.collectedExpire>=y.INFINITE_CACHE?void 0:q.renderOpts.collectedExpire;return{value:{kind:w.CachedRouteKind.APP_ROUTE,status:r.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:n,expire:i}}}}catch(t){throw(null==i?void 0:i.isStale)&&await _.onRequestError(e,t,{routerKind:"App Router",routePath:r,routeType:"route",revalidateReason:(0,f.getRevalidateReason)({isStaticGeneration:F,isOnDemandRevalidate:R})},!1,I),t}},d=await _.handleResponse({req:e,nextConfig:b,cacheKey:M,routeKind:i.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:O,isRoutePPREnabled:!1,isOnDemandRevalidate:R,revalidateOnlyGenerated:L,responseGenerator:u,waitUntil:n.waitUntil,isMinimalMode:o});if(!C)return null;if((null==d||null==(l=d.value)?void 0:l.kind)!==w.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(c=d.value)?void 0:c.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});o||t.setHeader("x-nextjs-cache",R?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),x&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let p=(0,g.fromNodeOutgoingHttpHeaders)(d.value.headers);return o&&C||p.delete(y.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||t.getHeader("Cache-Control")||p.get("Cache-Control")||p.set("Cache-Control",(0,m.getCacheControlHeader)(d.cacheControl)),await (0,h.sendResponse)(V,W,new Response(d.value.body,{headers:p,status:d.value.status||200})),null};U?await c(U):await D.withPropagatedContext(e.headers,()=>D.trace(p.BaseServerSpan.handleRequest,{spanName:`${K} ${r}`,kind:l.SpanKind.SERVER,attributes:{"http.method":K,"http.target":e.url}},c))}catch(t){if(t instanceof k.NoFallbackError||await _.onRequestError(e,t,{routerKind:"App Router",routePath:j,routeType:"route",revalidateReason:(0,f.getRevalidateReason)({isStaticGeneration:F,isOnDemandRevalidate:R})},!1,I),C)throw t;return await (0,h.sendResponse)(V,W,new Response(null,{status:500})),null}}e.s(["handler",()=>$,"patchFetch",()=>b,"routeModule",()=>_,"serverHooks",()=>I,"workAsyncStorage",()=>x,"workUnitAsyncStorage",()=>O]),n()}catch(e){n(e)}},!1)];
|
|
36
36
|
|
|
37
37
|
//# sourceMappingURL=_3f71c366._.js.map
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
module.exports=[382736,e=>e.a(async(t,a)=>{try{var n=e.i(106411),r=e.i(89171),s=t([n]);async function i(e){let{searchParams:t}=new URL(e.url),a=t.get("user");return r.NextResponse.json((0,n.maskUserSettings)(await (0,n.getUserSettings)(a)))}async function o(e){try{let{settings:t,user:a}=await e.json();if(!a)return r.NextResponse.json({error:"User is required"},{status:400});return await (0,n.saveUserSettings)(a,t),r.NextResponse.json(t)}catch(e){return r.NextResponse.json({error:e.message},{status:500})}}[n]=s.then?(await s)():s,e.s(["GET",()=>i,"POST",()=>o]),a()}catch(e){a(e)}},!1),178596,e=>e.a(async(t,a)=>{try{var n=e.i(747909),r=e.i(174017),s=e.i(996250),i=e.i(759756),o=e.i(561916),l=e.i(174677),u=e.i(869741),d=e.i(316795),c=e.i(487718),p=e.i(995169),h=e.i(47587),R=e.i(666012),v=e.i(570101),g=e.i(626937),f=e.i(10372),w=e.i(193695);e.i(52474);var E=e.i(600220),m=e.i(382736),x=t([m]);[m]=x.then?(await x)():x;let A=new n.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/eval/settings/route",pathname:"/api/eval/settings",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/eval/settings/route.ts",nextConfigOutput:"standalone",userland:m}),{workAsyncStorage:N,workUnitAsyncStorage:T,serverHooks:P}=A;function C(){return(0,s.patchFetch)({workAsyncStorage:N,workUnitAsyncStorage:T})}async function y(e,t,a){A.isDev&&(0,i.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let n="/api/eval/settings/route";n=n.replace(/\/index$/,"")||"/";let s=await A.prepare(e,t,{srcPage:n,multiZoneDraftMode:!1});if(!s)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:m,params:x,nextConfig:C,parsedUrl:y,isDraftMode:N,prerenderManifest:T,routerServerContext:P,isOnDemandRevalidate:S,revalidateOnlyGenerated:O,resolvedPathname:b,clientReferenceManifest:U,serverActionsManifest:_}=s,H=(0,u.normalizeAppPath)(n),q=!!(T.dynamicRoutes[H]||T.routes[b]),I=async()=>((null==P?void 0:P.render404)?await P.render404(e,t,y,!1):t.end("This page could not be found"),null);if(q&&!N){let e=!!T.routes[b],t=T.dynamicRoutes[H];if(t&&!1===t.fallback&&!e){if(C.experimental.adapterPath)return await I();throw new w.NoFallbackError}}let k=null;!q||A.isDev||N||(k=b,k="/index"===k?"/":k);let D=!0===A.isDev||!q,j=q&&!D;_&&U&&(0,l.setManifestsSingleton)({page:n,clientReferenceManifest:U,serverActionsManifest:_});let M=e.method||"GET",$=(0,o.getTracer)(),F=$.getActiveScopeSpan(),K={params:x,prerenderManifest:T,renderOpts:{experimental:{authInterrupts:!!C.experimental.authInterrupts},cacheComponents:!!C.cacheComponents,supportsDynamicResponse:D,incrementalCache:(0,i.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:C.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,a,n,r)=>A.onRequestError(e,t,n,r,P)},sharedContext:{buildId:m}},L=new d.NodeNextRequest(e),B=new d.NodeNextResponse(t),G=c.NextRequestAdapter.fromNodeNextRequest(L,(0,c.signalFromNodeResponse)(t));try{let s=async e=>A.handle(G,K).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let a=$.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==p.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let r=a.get("next.route");if(r){let t=`${M} ${r}`;e.setAttributes({"next.route":r,"http.route":r,"next.span_name":t}),e.updateName(t)}else e.updateName(`${M} ${n}`)}),l=!!(0,i.getRequestMeta)(e,"minimalMode"),u=async i=>{var o,u;let d=async({previousCacheEntry:r})=>{try{if(!l&&S&&O&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let n=await s(i);e.fetchMetrics=K.renderOpts.fetchMetrics;let o=K.renderOpts.pendingWaitUntil;o&&a.waitUntil&&(a.waitUntil(o),o=void 0);let u=K.renderOpts.collectedTags;if(!q)return await (0,R.sendResponse)(L,B,n,K.renderOpts.pendingWaitUntil),null;{let e=await n.blob(),t=(0,v.toNodeOutgoingHttpHeaders)(n.headers);u&&(t[f.NEXT_CACHE_TAGS_HEADER]=u),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let a=void 0!==K.renderOpts.collectedRevalidate&&!(K.renderOpts.collectedRevalidate>=f.INFINITE_CACHE)&&K.renderOpts.collectedRevalidate,r=void 0===K.renderOpts.collectedExpire||K.renderOpts.collectedExpire>=f.INFINITE_CACHE?void 0:K.renderOpts.collectedExpire;return{value:{kind:E.CachedRouteKind.APP_ROUTE,status:n.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:a,expire:r}}}}catch(t){throw(null==r?void 0:r.isStale)&&await A.onRequestError(e,t,{routerKind:"App Router",routePath:n,routeType:"route",revalidateReason:(0,h.getRevalidateReason)({isStaticGeneration:j,isOnDemandRevalidate:S})},!1,P),t}},c=await A.handleResponse({req:e,nextConfig:C,cacheKey:k,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:T,isRoutePPREnabled:!1,isOnDemandRevalidate:S,revalidateOnlyGenerated:O,responseGenerator:d,waitUntil:a.waitUntil,isMinimalMode:l});if(!q)return null;if((null==c||null==(o=c.value)?void 0:o.kind)!==E.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==c||null==(u=c.value)?void 0:u.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});l||t.setHeader("x-nextjs-cache",S?"REVALIDATED":c.isMiss?"MISS":c.isStale?"STALE":"HIT"),N&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let p=(0,v.fromNodeOutgoingHttpHeaders)(c.value.headers);return l&&q||p.delete(f.NEXT_CACHE_TAGS_HEADER),!c.cacheControl||t.getHeader("Cache-Control")||p.get("Cache-Control")||p.set("Cache-Control",(0,g.getCacheControlHeader)(c.cacheControl)),await (0,R.sendResponse)(L,B,new Response(c.value.body,{headers:p,status:c.value.status||200})),null};F?await u(F):await $.withPropagatedContext(e.headers,()=>$.trace(p.BaseServerSpan.handleRequest,{spanName:`${M} ${n}`,kind:o.SpanKind.SERVER,attributes:{"http.method":M,"http.target":e.url}},u))}catch(t){if(t instanceof w.NoFallbackError||await A.onRequestError(e,t,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,h.getRevalidateReason)({isStaticGeneration:j,isOnDemandRevalidate:S})},!1,P),q)throw t;return await (0,R.sendResponse)(L,B,new Response(null,{status:500})),null}}e.s(["handler",()=>y,"patchFetch",()=>C,"routeModule",()=>A,"serverHooks",()=>P,"workAsyncStorage",()=>N,"workUnitAsyncStorage",()=>T]),a()}catch(e){a(e)}},!1)];
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=_40f80932._.js.map
|
|
@@ -2,4 +2,4 @@ module.exports=[906920,(t,e,r)=>{"use strict";r.byteLength=function(t){var e=l(t
|
|
|
2
2
|
${w}
|
|
3
3
|
]`}()):S&&(w=v(w,","));"}"===t[k]||"]"===t[k];)k++,N();if(k>=t.length)return w;function x(){N();let n=function(){if("{"===t[k]){w+="{",k++,N(),$(",")&&N();let r=!0;for(;k<t.length&&"}"!==t[k];){if(r||(C(",")||(w=b(w,",")),N()),j(),!(O()||T(!0))){"}"===t[k]||"{"===t[k]||"]"===t[k]||"["===t[k]||void 0===t[k]?r||(w=v(w,",")):function(){throw new e("Object key expected",k)}();break}N();let n=C(":"),i=k>=t.length;n||(l(t[k])||i?w=b(w,":"):B()),x()||(n||i?w+="null":B()),r=!1}return"}"===t[k]?(w+="}",k++):w=b(w,"}"),!0}return!1}()||function(){if("["===t[k]){w+="[",k++,N(),$(",")&&N();let e=!0;for(;k<t.length&&"]"!==t[k];){if(!e&&(C(",")||(w=b(w,","))),j(),!x()){e||(w=v(w,","));break}e=!1}return"]"===t[k]?(w+="]",k++):w=b(w,"]"),!0}return!1}()||O()||function(){let e=k,n="",i=!1;for("-"===t[k]&&(n+=t[k],!r(t[++k])&&J()&&(n+="0")),"0"===t[k]&&r(t[k+1])&&(i=!0);r(t[k]);)n+=t[k],k++;if("."===t[k])for((""===n||"-"===n)&&(n+="0"),n+=t[k],r(t[++k])||(n+="0");r(t[k]);)n+=t[k],k++;if(k>e){if("e"===t[k]||"E"===t[k])for("-"===n&&(i=!0),n+=t[k],("-"===t[++k]||"+"===t[k])&&(n+=t[k],k++),r(t[k])||(n+="0");r(t[k]);)n+=t[k],k++;return J()?(w+=i?`"${t.substring(e,k)}"`:n,!0):(k=e,!1)}return!1}()||M("true","true")||M("false","false")||M("null","null")||M("True","true")||M("False","false")||M("None","null")||T(!1)||function(){if("/"===t[k]){let e=k;for(k++;k<t.length&&("/"!==t[k]||"\\"===t[k-1]);)k++;return k++,w+=JSON.stringify(t.substring(e,k)),!0}}();return N(),n}function N(){let e=!(arguments.length>0)||void 0===arguments[0]||arguments[0],r=k,n=E(e);do(n=function(){if("/"===t[k]&&"*"===t[k+1]){for(var e,r;k<t.length&&("*"!==(e=t)[r=k]||"/"!==e[r+1]);)k++;return k+=2,!0}if("/"===t[k]&&"/"===t[k+1]){for(;k<t.length&&"\n"!==t[k];)k++;return!0}return!1}())&&(n=E(e));while(n)return k>r}function E(e){let r=e?f:d,n="";for(;;)if(r(t,k))n+=t[k],k++;else if(function(t,e){let r=t.charCodeAt(e);return 160===r||6158===r||r>=8192&&r<=8203||8239===r||8287===r||12288===r||65279===r}(t,k))n+=" ",k++;else break;return n.length>0&&(w+=n,!0)}throw new e(`Unexpected character ${JSON.stringify(t[k])}`,k);function D(e){if(function(e){for(let r of(E(!0),e)){let e=k+r.length;if(t.slice(k,e)===r)return k=e,!0}return!1}(e)){if(i(t[k]))for(;k<t.length&&o(t[k]);)k++;return N(),!0}return!1}function C(e){return t[k]===e&&(w+=t[k],k++,!0)}function $(e){return t[k]===e&&(k++,!0)}function j(){return N(),"."===t[k]&&"."===t[k+1]&&"."===t[k+2]&&(k+=3,N(),$(","),!0)}function O(){let i=arguments.length>0&&void 0!==arguments[0]&&arguments[0],o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:-1,l="\\"===t[k];if(l&&(k++,l=!0),m(t[k])){let d=p(t[k])?p:y(t[k])?y:h(t[k])?h:g,v=k,S=w.length,x='"';for(k++;;){var c;if(k>=t.length){let e=q(k-1);if(!i&&n(t.charAt(e)))return k=v,w=w.substring(0,S),O(!0);return x=b(x,'"'),w+=x,!0}if(k===o)return x=b(x,'"'),w+=x,!0;if(d(t[k])){let e=k,o=x.length;if(x+='"',k++,w+=x,N(!1),i||k>=t.length||n(t[k])&&!function(t,e){switch(e){case")":return A(t,"(")>A(t,")");case"]":return A(t,"[")>A(t,"]");case"}":return A(t,"{")>A(t,"}");default:return!1}}(x,t[k])||m(t[k])&&!function(e){let r=e+1;for(;r<t.length&&f(t,r);)r++;return r>=t.length||n(t[r])}(k)||r(t[k]))return F(),!0;let u=q(e-1),a=t.charAt(u);if(","===a)return k=v,w=w.substring(0,S),O(!1,u);if(n(a))return k=v,w=w.substring(0,S),O(!0);w=w.substring(0,S),k=e+1,x=`${x.substring(0,o)}\\${x.substring(o)}`}else if(i&&s(t[k])){if(":"===t[k-1]&&u.test(t.substring(v+1,k+2)))for(;k<t.length&&a.test(t[k]);)x+=t[k],k++;return x=b(x,'"'),w+=x,F(),!0}else if("\\"===t[k]){let r=t.charAt(k+1);if(void 0!==I[r])x+=t.slice(k,k+2),k+=2;else if("u"===r){let r=2;for(;r<6&&(c=t[k+r],/^[0-9A-Fa-f]$/.test(c));)r++;6===r?(x+=t.slice(k,k+6),k+=6):k+r>=t.length?k=t.length:function(){let r=t.slice(k,k+6);throw new e(`Invalid unicode character "${r}"`,k)}()}else"\n"===r?x+="\\n":x+=r,k+=2}else{let r=t.charAt(k);'"'===r&&"\\"!==t[k-1]?x+=`\\${r}`:"\n"===r||"\r"===r||" "===r||"\b"===r||"\f"===r?x+=_[r]:(r>=" "||function(t){throw new e(`Invalid character ${JSON.stringify(t)}`,k)}(r),x+=r),k++}l&&$("\\")}}return!1}function F(){let e=!1;for(N();"+"===t[k];){e=!0,k++,N();let t=(w=v(w,'"',!0)).length;if(O()){var r;w=(r=w).substring(0,t)+r.substring(t+1)}else w=b(w,'"')}return e}function M(e,r){return!(t.slice(k,k+e.length)!==e||o(t[k+e.length]))&&(w+=r,k+=e.length,!0)}function T(e){let r=k;if(i(t[k])){for(;k<t.length&&o(t[k]);)k++;let e=k;for(;f(t,e);)e++;if("("===t[e])return k=e+1,x(),")"===t[k]&&";"===t[++k]&&k++,!0}for(;k<t.length&&!s(t[k])&&!m(t[k])&&(!e||":"!==t[k]);)k++;if(":"===t[k-1]&&u.test(t.substring(r,k+2)))for(;k<t.length&&a.test(t[k]);)k++;if(k>r){for(;f(t,k-1)&&k>0;)k--;let e=t.slice(r,k);return w+="undefined"===e?"null":JSON.stringify(e),'"'===t[k]&&k++,!0}}function q(e){let r=e;for(;r>0&&f(t,r);)r--;return r}function J(){return k>=t.length||n(t[k])||f(t,k)}function B(){throw new e("Colon expected",k)}}t.s(["jsonrepair",()=>k],762545)},580077,t=>{"use strict";function e(t){return t&&"object"==typeof t&&!Array.isArray(t)?t:{}}function r(t){return String(t.name??t.call??t.toolName??t.tool??t.functionName??"").trim()}function n(t,e,r){let n="number"==typeof e?e:Number(e),i=t.filter(t=>!r.has(t.call)),o=(Number.isFinite(n)?i.find(t=>t.count===n):null)||i[0]||t[0];return o?(r.add(o.call),o.call):""}function i(t,i){let o=e(t.dimension_details??t.dimensionDetails),u=e(o.redundancy),a=function(t){let n=new Map;for(let[i,o]of t.entries()){let t=e(o),u=String(t.kind||"").toLowerCase();if("tool"!==u&&"skill"!==u&&"task"!==u)continue;let a=r(t);if(!a)continue;let s=function(t,e){let r=t.step_index??t.stepIndex??t.index,n="number"==typeof r?r:Number(r);return Number.isFinite(n)?n:e}(t,i),l=n.get(a)||{call:a,count:0,firstIndex:null,lastIndex:null};l.count+=1,l.firstIndex=null==l.firstIndex?s:Math.min(l.firstIndex,s),l.lastIndex=null==l.lastIndex?s:Math.max(l.lastIndex,s),n.set(a,l)}return Array.from(n.values()).sort((t,e)=>{let r=e.count-t.count;return 0!==r?r:(t.firstIndex??Number.MAX_SAFE_INTEGER)-(e.firstIndex??Number.MAX_SAFE_INTEGER)})}(Array.isArray(i)?i:[]);if(0===Object.keys(u).length||0===a.length)return t;let s=new Set,l=Array.isArray(u.heavy_repeated_calls)?u.heavy_repeated_calls.map(t=>{let i=e(t),o=r(i)||n(a,i.count,s);return o?{...i,call:o}:i}):u.heavy_repeated_calls,c=new Set,f=Array.isArray(u.consecutive_same_runs)?u.consecutive_same_runs.map(t=>{let i=e(t),o=r(i)||n(a,i.count,c),u=a.find(t=>t.call===o);return o?{...i,name:o,from:i.from??u?.firstIndex,to:i.to??u?.lastIndex}:i}):u.consecutive_same_runs,d={...u,...Array.isArray(l)?{heavy_repeated_calls:l}:{},...Array.isArray(f)?{consecutive_same_runs:f}:{}},m={...o,redundancy:d};return{...t,dimension_details:m}}function o(t,e){let r=Math.round(1e3*(.45*u("number"==typeof t.completeness?t.completeness:0)+.35*u(t.toolChoice)+.2*u(t.redundancy)))/1e3,n=Array.isArray(e)?e:[],i=n.filter(t=>t?.severity==="high").length,o=n.filter(t=>t?.severity==="medium").length,a=`轨迹分按完整性/工具选择/冗余加权计算;严重度仅用于诊断展示(high ${i},medium ${o}),不调整最终分。`;return{trajectoryScore:u(r),rawWeightedScore:r,scoreAggregation:{mode:"trajectory",reason:a,rawWeightedScore:r,finalScore:u(r),highCount:i,mediumCount:o}}}function u(t){return Number.isFinite(t)?Math.max(0,Math.min(1,t)):0}t.s(["aggregateTrajectoryScore",()=>o,"normalizeTrajectoryRedundancyDetails",()=>i])},520813,t=>{"use strict";var e=t.i(286372);function r(t){var r;let i;if(!Array.isArray(t)||0===t.length)return null;for(let o of(r=t,(i=(0,e.buildAgentCallTree)(r))&&Array.isArray(i.interactionIndices)&&i.interactionIndices.length>0?[...i.interactionIndices].sort((t,e)=>t-e):r.map((t,e)=>({interaction:t,index:e})).filter(({interaction:t})=>"subagent"!==String(t.role||"").toLowerCase()&&!t.subagent_session_id&&!t.subagent_name).map(t=>t.index))){let e=function(t){if(!t)return[];let e=[];for(let r of function(t){let e=[];if(t.toolCall&&e.push(t.toolCall),Array.isArray(t.toolCalls)&&e.push(...t.toolCalls),Array.isArray(t.tool_calls)&&e.push(...t.tool_calls),Array.isArray(t.responseMessage?.tool_calls)&&e.push(...t.responseMessage.tool_calls),Array.isArray(t.content))for(let r of t.content)r&&"object"==typeof r&&("toolCall"===r.type||"tool_use"===r.type)&&"string"==typeof r.name&&e.push({name:r.name,arguments:r.arguments??r.input});return e}(t)){let t=r.name||r.function?.name,i=function(t){if("string"!=typeof t)return t;try{return JSON.parse(t)}catch{return t}}(r.arguments??r.function?.arguments);if("skill"===t||"load_skill"===t){let t=function(t){var e;if(!t||"object"!=typeof t)return null;let r=n(t.name)||n(t.skill)||n(t.skillName)||n(t.skill_name);return r?{name:r,version:("number"==typeof(e=t.version??t.skillVersion??t.skill_version)&&Number.isFinite(e)?e:"string"==typeof e&&e.trim()&&Number.isFinite(Number(e))?Number(e):void 0)??null}:null}(i);t&&e.push(t)}}return function(t){let e=new Set,r=[];for(let n of t){let t=`${n.name}:${n.version??""}`;e.has(t)||(e.add(t),r.push(n))}return r}(e)}(t[o]);if(e.length>0)return e[0]}return null}function n(t){return"string"==typeof t&&t.trim()?t.trim():void 0}t.s(["getRootSkillFromInteractions",()=>r])},982505,t=>t.a(async(e,r)=>{try{var n=t.i(948594),i=e([n]);function o(t){let e="number"==typeof t?t:"string"==typeof t?Number(t):NaN;return Number.isFinite(e)?e:void 0}function u(t){if("number"==typeof t&&Number.isFinite(t))return t;if("string"!=typeof t)return null;let e=t.trim();if(!e)return null;if(/^\d+$/.test(e)){let t=Number(e);return Number.isFinite(t)?t:null}let r=Date.parse(e);return Number.isFinite(r)?r:null}function a(t){return t.map(t=>t&&"object"==typeof t&&"text"===String(t.type||"").toLowerCase()?String(t.text||""):"").filter(Boolean).join("")}function s(t){return Array.isArray(t)&&0!==t.length?t.map(t=>{var e;let r,n,i,s,l,c;if(!function(t){if(!t||"object"!=typeof t)return!1;let e=t.info;if(!e||"object"!=typeof e)return!1;let r=t.parts;return Array.isArray(r)||Array.isArray(e.parts)}(t))return null;let f=t.info||{},d=Array.isArray(t.parts)?t.parts:Array.isArray(f.parts)?f.parts:[],m=(e=f.role,"string"==typeof e&&e.trim()?e.trim():"assistant"),g=f.time?.created,p=f.time?.completed,h=u(g),y="user"===m?a(d)||String(f.system||""):a(d),v=d.map(t=>{if(!t||"object"!=typeof t||"tool"!==String(t.type||"").toLowerCase())return null;let e=t.state&&"object"==typeof t.state?t.state:{};return{id:t.callID||t.callId||t.id,type:"function",function:{name:t.tool,arguments:function(t){if("string"==typeof t)return t;try{return JSON.stringify(t??{})}catch{return"{}"}}(e.input)},state:e.status||e.state,output:e.output}}).filter(Boolean),b=f.tokens&&"object"==typeof f.tokens?f.tokens:void 0,A=b?{input:o(b.input),output:o(b.output),reasoning:o(b.reasoning),cache:{read:o(b.cache?.read),write:o(b.cache?.write)},total:(r=o(b?.input)||0,n=o(b?.output)||0,i=o(b?.reasoning)||0,s=o(b?.cache?.read)||0,l=o(b?.cache?.write)||0,c=i>0&&n<i?n+i:n,{input:r,output:c,reasoning:i,cacheRead:s,cacheWrite:l,total:r+c+i+s+l}).total}:void 0;return{role:m,content:y||void 0,tool_calls:v.length>0?v:void 0,usage:A,timestamp:null!==h?new Date(h).toISOString():void 0,timeInfo:null!=g||null!=p?{created:g,completed:p}:void 0,agent:"string"==typeof f.agent?f.agent:void 0,modelID:"string"==typeof f.modelID?f.modelID:void 0,providerID:"string"==typeof f.providerID?f.providerID:void 0,cost:f.cost}}).filter(t=>null!==t).sort((t,e)=>(u(t.timeInfo?.created)||0)-(u(e.timeInfo?.created)||0)):[]}function l(t){let e=t.map(t=>u(t.timeInfo?.created)??u(t.timestamp)).find(t=>Number.isFinite(t));return e?new Date(e):new Date}function c(t){let e=t.flatMap(t=>[u(t.timeInfo?.completed),u(t.timeInfo?.created),u(t.timestamp)]).filter(t=>Number.isFinite(t)).reduce((t,e)=>Math.max(t,e),0);return e>0?new Date(e):new Date}function f(t,e){let r,n,i,o,u=t.some(t=>"assistant"===t.role&&"string"==typeof t.content&&t.content.trim().length>0),a=(r=new Date().toISOString(),n=String(e.query||"").trim(),i=String(e.fallbackOutput||"").trim(),o=[],n&&o.push({role:"user",content:n,timestamp:r}),i&&o.push({role:"assistant",content:i,timestamp:r,agent:String(e.agentName||"").trim()||void 0}),o);if(0===t.length)return a;if(u||!String(e.fallbackOutput||"").trim())return t;let s=a.find(t=>"assistant"===t.role);return s?[...t,s]:t}async function d(t,e){let r=String(e.taskId||"").trim(),i=String(e.agentName||"").trim();if(!r||!i)return 0;let o=await t.listMessages(r),u=f(s(Array.isArray(o)?o:[]),e);return await (0,n.saveExecutionRecord)({task_id:r,upload_id:r,query:String(e.query||"").trim()||void 0,framework:e.framework||"opencode",user:e.user??null,agent:i,agentName:i,final_result:String(e.fallbackOutput||"").trim()||void 0,skill:e.skill??void 0,skill_version:e.skillVersion??void 0,interactions:u,timestamp:l(u),skip_evaluation:!0,skip_internal_judgment:!0,failures:[],skill_issues:[],force_query_update:!0,opencode_cli_completed:!0}),u.length}function m(t){let e=t.timestampISO||new Date().toISOString(),r=[],n=String(t.systemPrompt||"").trim();n&&r.push({role:"system",content:n,timestamp:e});let i=String(t.userMessage||t.query||"").trim();i&&r.push({role:"user",content:i,timestamp:e});let o=String(t.assistantOutput||"").trim();if(o){let n=t.usage?{input:t.usage.input,output:t.usage.output,total:"number"==typeof t.usage.total?t.usage.total:(t.usage.input||0)+(t.usage.output||0)}:void 0;r.push({role:"assistant",content:o,timestamp:e,agent:t.agentName||void 0,modelID:t.modelID||void 0,usage:n})}return r}async function g(t){let e=String(t.taskId||"").trim(),r=String(t.agentName||"").trim();if(!e||!r)return 0;let i=m(t);return 0===i.length?0:(await (0,n.saveExecutionRecord)({task_id:e,upload_id:e,query:String(t.query||"").trim()||void 0,framework:t.framework||"direct-llm",user:t.user??null,agent:r,agentName:r,model:t.modelID??void 0,final_result:String(t.assistantOutput||"").trim()||void 0,skill:t.skill??void 0,skill_version:t.skillVersion??void 0,interactions:i,timestamp:l(i),skip_evaluation:!0,skip_internal_judgment:!0,failures:[],skill_issues:[],force_query_update:!0,trace_completed_at:c(i)}),i.length)}function p(){return"1"===process.env.EVAL_FORCE_OPENCODE_TRANSPORT}[n]=i.then?(await i)():i,t.s(["buildDirectEvaluatorInteractions",()=>m,"ensureEvaluatorExecutionInteractions",()=>f,"inferCompletionTimestampFromInteractions",()=>c,"normalizeEvaluatorExecutionInteractions",()=>s,"recordDirectEvaluatorExecution",()=>g,"recordEvaluatorExecution",()=>d,"shouldForceOpencodeEvalTransport",()=>p]),r()}catch(t){r(t)}},!1),332080,t=>{"use strict";function e(t,e){return`${t}:${e}`}function r(){return globalThis.__agentDebugBackgroundJobs||(globalThis.__agentDebugBackgroundJobs=new Map),globalThis.__agentDebugBackgroundJobs}function n(t,n,i){let o=r().get(e(t,n))||null;return!!o&&(!i||o.interactionsHash===i)}function i(t){r().set(e(t.kind,t.executionId),t)}function o(t,n,i){let o=e(t,n),u=r().get(o);!u||i&&u.interactionsHash!==i||r().delete(o)}t.s(["clearActiveAgentDebugBackgroundJob",()=>o,"hasActiveAgentDebugBackgroundJob",()=>n,"setActiveAgentDebugBackgroundJob",()=>i])},631190,t=>t.a(async(e,r)=>{try{var n=t.i(437163),i=t.i(997215),o=t.i(854763),u=e([o]);async function a(t){let e=await o.db.findExecutionById(t).catch(()=>null);if(e||(e=(await o.db.findExecutions({taskId:t},{timestamp:"desc"}).catch(()=>[]))[0]||null),!e?.id)return null;let r=e.taskId||t,u=await o.db.findSessionByTaskId(r).catch(()=>null),a=function(t){if(Array.isArray(t))return t;if(!t||"string"!=typeof t)return[];try{let e=JSON.parse(t);return Array.isArray(e)?e:[]}catch{return[]}}(u?.interactions);return"claudecode"===e.framework&&(a=(0,i.normalizeClaudeCodeInteractionsForStorage)(a)),a=(0,n.inferSubagentNamesFromInteractions)(a),{execution:e,interactions:a}}[o]=u.then?(await u)():u,t.s(["resolveAgentDebugExecution",()=>a]),r()}catch(t){r(t)}},!1),484695,t=>{t.v(t=>Promise.resolve().then(()=>t(759453)))},419781,t=>{t.v(t=>Promise.resolve().then(()=>t(106411)))},335270,t=>{t.v(t=>Promise.resolve().then(()=>t(982505)))}];
|
|
4
4
|
|
|
5
|
-
//# sourceMappingURL=
|
|
5
|
+
//# sourceMappingURL=_45a619b0._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[907366,e=>e.a(async(t,n)=>{try{var r=e.i(854763),i=t([r]);async function a(e,t){if(t)return{username:t,apiKey:null};let n=e.headers.get("x-witty-api-key");if(n)return{username:await s(n),apiKey:n};let r=new URL(e.url).searchParams.get("apiKey");return r?{username:await s(r),apiKey:r}:{username:null,apiKey:null}}async function s(e){try{let t=await r.db.findUserByApiKey(e);return t?.username||null}catch(e){return console.error("[Auth] Failed to lookup user by API Key:",e),null}}async function l(e,t){let n=await r.db.findSkillById(e);return n?"public"!==n.visibility&&n.user&&(!t||n.user!==t)&&t?{allowed:!1,skill:n}:{allowed:!0,skill:n}:{allowed:!1,skill:null}}[r]=i.then?(await i)():i,e.s(["canAccessSkill",()=>l,"resolveUser",()=>a]),n()}catch(e){n(e)}},!1),403577,e=>{"use strict";let t="/workspace/";function n(e){if(!e)return"";let t=e.content;return Array.isArray(t)?t.join("\n"):"string"==typeof t?t:""}let r=/^---\s*([\s\S]*?)\s*---/,i=/^name:\s*(.+)$/m,a=/^description:\s*(.+)$/m;function s(e){let s,l,o=function(e){if(!e)return null;let n=null;for(let r of Object.keys(e)){if(r===t+"SKILL.md")return r;if(!r.startsWith(t)||!r.endsWith("/SKILL.md"))continue;let e=r.slice(t.length).split("/").length;(!n||e<n.depth)&&(n={path:r,depth:e})}return n?.path??null}(e);if(!o||!e)return null;let u=n(e[o]),d=u.match(r)?.[1];return d&&(s=d.match(i)?.[1]?.trim(),l=d.match(a)?.[1]?.trim()),{path:o,content:u,name:s,description:l,folder:function(e){if(!e||!e.startsWith(t))return null;let n=e.slice(t.length).split("/");return n.length<=1?null:n[0]}(o)}}function l(e){return e.replace(/[^\w.-]+/g,"_")}e.s(["fileContentToString",()=>n,"findSkillMd",()=>s,"sanitizeForFilename",()=>l])},460304,e=>e.a(async(t,n)=>{try{var r=e.i(907366),i=e.i(8129),a=e.i(403577),s=e.i(854763),l=e.i(522734),o=e.i(89171),u=e.i(814747),d=t([r,i,s]);function c(e){l.default.existsSync(e)||l.default.mkdirSync(e,{recursive:!0})}async function p(e){try{let t=await e.json(),{sessionId:n}=t;if(!n)return o.NextResponse.json({error:"sessionId is required"},{status:400});let d=(await (0,r.resolveUser)(e,t.user||void 0)).username,p=await s.prismaRaw.skillGeneratorSession.findUnique({where:{id:n}});if(!p)return o.NextResponse.json({error:"Session not found"},{status:404});let h={};try{let e=p.files;h="string"==typeof e?JSON.parse(e):e||{}}catch{h={}}let f=Object.entries(h);if(0===f.length)return o.NextResponse.json({error:"Session has no files"},{status:400});let w=(0,a.findSkillMd)(h);if(!w)return o.NextResponse.json({error:"SKILL.md not found in session"},{status:400});let R=w.content,y=w.name||"untitled-skill",m=w.description||"Published from Playground",v=await s.db.findSkill(y,d||null);if(v){let e=await s.db.findLatestSkillVersion(v.id);if(e&&e.content===R)return o.NextResponse.json({error:`Skill "${y}" 当前版本内容未发生变化,无需重复保存。`},{status:409})}else v=await s.db.createSkill({name:y,description:m,visibility:"private",activeVersion:0,user:d||null});let g=await s.db.findLatestSkillVersion(v.id),S=g?g.version+1:0,b=u.default.join(process.cwd(),"data","storage","skills",v.id,`v${S}`);c(b);let k=[],E=w.folder?`/workspace/${w.folder}/`:"/workspace/";for(let[e,t]of f){if(!e.startsWith(E))continue;let n=e.slice(E.length);if(!n)continue;let r=(0,a.fileContentToString)(t),i=u.default.join(b,n);c(u.default.dirname(i)),l.default.writeFileSync(i,r,"utf-8"),k.push(n)}let x=await s.db.createSkillVersion({skillId:v.id,version:S,content:R,assetPath:`data/storage/skills/${v.id}/v${S}`,files:JSON.stringify(k),changeLog:`Published from Playground (v${S})`});return await s.db.updateSkill(v.id,{activeVersion:S}),(0,i.parseSkillFlow)(R,v.id,S,d||null).then(e=>{e.success||console.warn(`[Publish] Flow parse failed for ${v.name} v${S}: ${e.error}`)}).catch(e=>console.warn("[Publish] Flow parse error:",e)),o.NextResponse.json({success:!0,skill:v,version:x,isNewSkill:null===g})}catch(e){return console.error("[Publish] Error:",e),o.NextResponse.json({error:e.message},{status:500})}}[r,i,s]=d.then?(await d)():d,e.s(["POST",()=>p]),n()}catch(e){n(e)}},!1),840513,e=>e.a(async(t,n)=>{try{var r=e.i(747909),i=e.i(174017),a=e.i(996250),s=e.i(759756),l=e.i(561916),o=e.i(174677),u=e.i(869741),d=e.i(316795),c=e.i(487718),p=e.i(995169),h=e.i(47587),f=e.i(666012),w=e.i(570101),R=e.i(626937),y=e.i(10372),m=e.i(193695);e.i(52474);var v=e.i(600220),g=e.i(460304),S=t([g]);[g]=S.then?(await S)():S;let E=new r.AppRouteRouteModule({definition:{kind:i.RouteKind.APP_ROUTE,page:"/api/skills/publish/route",pathname:"/api/skills/publish",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/skills/publish/route.ts",nextConfigOutput:"standalone",userland:g}),{workAsyncStorage:x,workUnitAsyncStorage:C,serverHooks:A}=E;function b(){return(0,a.patchFetch)({workAsyncStorage:x,workUnitAsyncStorage:C})}async function k(e,t,n){E.isDev&&(0,s.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let r="/api/skills/publish/route";r=r.replace(/\/index$/,"")||"/";let a=await E.prepare(e,t,{srcPage:r,multiZoneDraftMode:!1});if(!a)return t.statusCode=400,t.end("Bad Request"),null==n.waitUntil||n.waitUntil.call(n,Promise.resolve()),null;let{buildId:g,params:S,nextConfig:b,parsedUrl:k,isDraftMode:x,prerenderManifest:C,routerServerContext:A,isOnDemandRevalidate:P,revalidateOnlyGenerated:N,resolvedPathname:T,clientReferenceManifest:O,serverActionsManifest:I}=a,U=(0,u.normalizeAppPath)(r),_=!!(C.dynamicRoutes[U]||C.routes[T]),j=async()=>((null==A?void 0:A.render404)?await A.render404(e,t,k,!1):t.end("This page could not be found"),null);if(_&&!x){let e=!!C.routes[T],t=C.dynamicRoutes[U];if(t&&!1===t.fallback&&!e){if(b.experimental.adapterPath)return await j();throw new m.NoFallbackError}}let $=null;!_||E.isDev||x||($=T,$="/index"===$?"/":$);let K=!0===E.isDev||!_,H=_&&!K;I&&O&&(0,o.setManifestsSingleton)({page:r,clientReferenceManifest:O,serverActionsManifest:I});let q=e.method||"GET",F=(0,l.getTracer)(),L=F.getActiveScopeSpan(),M={params:S,prerenderManifest:C,renderOpts:{experimental:{authInterrupts:!!b.experimental.authInterrupts},cacheComponents:!!b.cacheComponents,supportsDynamicResponse:K,incrementalCache:(0,s.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:b.cacheLife,waitUntil:n.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,n,r,i)=>E.onRequestError(e,t,r,i,A)},sharedContext:{buildId:g}},D=new d.NodeNextRequest(e),V=new d.NodeNextResponse(t),B=c.NextRequestAdapter.fromNodeNextRequest(D,(0,c.signalFromNodeResponse)(t));try{let a=async e=>E.handle(B,M).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let n=F.getRootSpanAttributes();if(!n)return;if(n.get("next.span_type")!==p.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${n.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let i=n.get("next.route");if(i){let t=`${q} ${i}`;e.setAttributes({"next.route":i,"http.route":i,"next.span_name":t}),e.updateName(t)}else e.updateName(`${q} ${r}`)}),o=!!(0,s.getRequestMeta)(e,"minimalMode"),u=async s=>{var l,u;let d=async({previousCacheEntry:i})=>{try{if(!o&&P&&N&&!i)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let r=await a(s);e.fetchMetrics=M.renderOpts.fetchMetrics;let l=M.renderOpts.pendingWaitUntil;l&&n.waitUntil&&(n.waitUntil(l),l=void 0);let u=M.renderOpts.collectedTags;if(!_)return await (0,f.sendResponse)(D,V,r,M.renderOpts.pendingWaitUntil),null;{let e=await r.blob(),t=(0,w.toNodeOutgoingHttpHeaders)(r.headers);u&&(t[y.NEXT_CACHE_TAGS_HEADER]=u),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let n=void 0!==M.renderOpts.collectedRevalidate&&!(M.renderOpts.collectedRevalidate>=y.INFINITE_CACHE)&&M.renderOpts.collectedRevalidate,i=void 0===M.renderOpts.collectedExpire||M.renderOpts.collectedExpire>=y.INFINITE_CACHE?void 0:M.renderOpts.collectedExpire;return{value:{kind:v.CachedRouteKind.APP_ROUTE,status:r.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:n,expire:i}}}}catch(t){throw(null==i?void 0:i.isStale)&&await E.onRequestError(e,t,{routerKind:"App Router",routePath:r,routeType:"route",revalidateReason:(0,h.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:P})},!1,A),t}},c=await E.handleResponse({req:e,nextConfig:b,cacheKey:$,routeKind:i.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:C,isRoutePPREnabled:!1,isOnDemandRevalidate:P,revalidateOnlyGenerated:N,responseGenerator:d,waitUntil:n.waitUntil,isMinimalMode:o});if(!_)return null;if((null==c||null==(l=c.value)?void 0:l.kind)!==v.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==c||null==(u=c.value)?void 0:u.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});o||t.setHeader("x-nextjs-cache",P?"REVALIDATED":c.isMiss?"MISS":c.isStale?"STALE":"HIT"),x&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let p=(0,w.fromNodeOutgoingHttpHeaders)(c.value.headers);return o&&_||p.delete(y.NEXT_CACHE_TAGS_HEADER),!c.cacheControl||t.getHeader("Cache-Control")||p.get("Cache-Control")||p.set("Cache-Control",(0,R.getCacheControlHeader)(c.cacheControl)),await (0,f.sendResponse)(D,V,new Response(c.value.body,{headers:p,status:c.value.status||200})),null};L?await u(L):await F.withPropagatedContext(e.headers,()=>F.trace(p.BaseServerSpan.handleRequest,{spanName:`${q} ${r}`,kind:l.SpanKind.SERVER,attributes:{"http.method":q,"http.target":e.url}},u))}catch(t){if(t instanceof m.NoFallbackError||await E.onRequestError(e,t,{routerKind:"App Router",routePath:U,routeType:"route",revalidateReason:(0,h.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:P})},!1,A),_)throw t;return await (0,f.sendResponse)(D,V,new Response(null,{status:500})),null}}e.s(["handler",()=>k,"patchFetch",()=>b,"routeModule",()=>E,"serverHooks",()=>A,"workAsyncStorage",()=>x,"workUnitAsyncStorage",()=>C]),n()}catch(e){n(e)}},!1)];
|
|
1
|
+
module.exports=[907366,e=>e.a(async(t,n)=>{try{var r=e.i(854763),i=t([r]);async function a(e,t){if(t)return{username:t,apiKey:null};let n=e.headers.get("x-witty-api-key");if(n)return{username:await s(n),apiKey:n};let r=new URL(e.url).searchParams.get("apiKey");return r?{username:await s(r),apiKey:r}:{username:null,apiKey:null}}async function s(e){try{let t=await r.db.findUserByApiKey(e);return t?.username||null}catch(e){return console.error("[Auth] Failed to lookup user by API Key:",e),null}}async function l(e,t){let n=await r.db.findSkillById(e);return n?"public"!==n.visibility&&n.user&&(!t||n.user!==t)&&t?{allowed:!1,skill:n}:{allowed:!0,skill:n}:{allowed:!1,skill:null}}[r]=i.then?(await i)():i,e.s(["canAccessSkill",()=>l,"resolveUser",()=>a]),n()}catch(e){n(e)}},!1),403577,e=>{"use strict";let t="/workspace/";function n(e){if(!e)return"";let t=e.content;return Array.isArray(t)?t.join("\n"):"string"==typeof t?t:""}let r=/^---\s*([\s\S]*?)\s*---/,i=/^name:\s*(.+)$/m,a=/^description:\s*(.+)$/m;function s(e){let s,l,o=function(e){if(!e)return null;let n=null;for(let r of Object.keys(e)){if(r===t+"SKILL.md")return r;if(!r.startsWith(t)||!r.endsWith("/SKILL.md"))continue;let e=r.slice(t.length).split("/").length;(!n||e<n.depth)&&(n={path:r,depth:e})}return n?.path??null}(e);if(!o||!e)return null;let u=n(e[o]),d=u.match(r)?.[1];return d&&(s=d.match(i)?.[1]?.trim(),l=d.match(a)?.[1]?.trim()),{path:o,content:u,name:s,description:l,folder:function(e){if(!e||!e.startsWith(t))return null;let n=e.slice(t.length).split("/");return n.length<=1?null:n[0]}(o)}}function l(e){return e.replace(/[^\w.-]+/g,"_")}e.s(["fileContentToString",()=>n,"findSkillMd",()=>s,"sanitizeForFilename",()=>l])},460304,e=>e.a(async(t,n)=>{try{var r=e.i(907366),i=e.i(8129),a=e.i(547499),s=e.i(403577),l=e.i(854763),o=e.i(522734),u=e.i(89171),d=e.i(814747),c=t([r,i,l]);function p(e){o.default.existsSync(e)||o.default.mkdirSync(e,{recursive:!0})}async function h(e){try{let t=await e.json(),{sessionId:n}=t;if(!n)return u.NextResponse.json({error:"sessionId is required"},{status:400});let c=(await (0,r.resolveUser)(e,t.user||void 0)).username,h=await l.prismaRaw.skillGeneratorSession.findUnique({where:{id:n}});if(!h)return u.NextResponse.json({error:"Session not found"},{status:404});let f={};try{let e=h.files;f="string"==typeof e?JSON.parse(e):e||{}}catch{f={}}let w=Object.entries(f);if(0===w.length)return u.NextResponse.json({error:"Session has no files"},{status:400});let R=(0,s.findSkillMd)(f);if(!R)return u.NextResponse.json({error:"SKILL.md not found in session"},{status:400});let y=R.content,m=R.name||"untitled-skill",v=R.description||"Published from Playground",g=await l.db.findSkill(m,c||null);if(g){let e=await l.db.findLatestSkillVersion(g.id);if(e&&e.content===y)return u.NextResponse.json({error:`Skill "${m}" 当前版本内容未发生变化,无需重复保存。`},{status:409})}else g=await l.db.createSkill({name:m,description:v,visibility:"private",activeVersion:0,user:c||null});let S=await l.db.findLatestSkillVersion(g.id),b=S?S.version+1:0,k=(0,a.getSkillVersionStorageDir)(g.id,b);p(k);let E=[],x=R.folder?`/workspace/${R.folder}/`:"/workspace/";for(let[e,t]of w){if(!e.startsWith(x))continue;let n=e.slice(x.length);if(!n)continue;let r=(0,s.fileContentToString)(t),i=d.default.join(k,n);p(d.default.dirname(i)),o.default.writeFileSync(i,r,"utf-8"),E.push(n)}let C=await l.db.createSkillVersion({skillId:g.id,version:b,content:y,assetPath:(0,a.getSkillVersionAssetPath)(g.id,b),files:JSON.stringify(E),changeLog:`Published from Playground (v${b})`});return await l.db.updateSkill(g.id,{activeVersion:b}),(0,i.parseSkillFlow)(y,g.id,b,c||null).then(e=>{e.success||console.warn(`[Publish] Flow parse failed for ${g.name} v${b}: ${e.error}`)}).catch(e=>console.warn("[Publish] Flow parse error:",e)),u.NextResponse.json({success:!0,skill:g,version:C,isNewSkill:null===S})}catch(e){return console.error("[Publish] Error:",e),u.NextResponse.json({error:e.message},{status:500})}}[r,i,l]=c.then?(await c)():c,e.s(["POST",()=>h]),n()}catch(e){n(e)}},!1),840513,e=>e.a(async(t,n)=>{try{var r=e.i(747909),i=e.i(174017),a=e.i(996250),s=e.i(759756),l=e.i(561916),o=e.i(174677),u=e.i(869741),d=e.i(316795),c=e.i(487718),p=e.i(995169),h=e.i(47587),f=e.i(666012),w=e.i(570101),R=e.i(626937),y=e.i(10372),m=e.i(193695);e.i(52474);var v=e.i(600220),g=e.i(460304),S=t([g]);[g]=S.then?(await S)():S;let E=new r.AppRouteRouteModule({definition:{kind:i.RouteKind.APP_ROUTE,page:"/api/skills/publish/route",pathname:"/api/skills/publish",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/skills/publish/route.ts",nextConfigOutput:"standalone",userland:g}),{workAsyncStorage:x,workUnitAsyncStorage:C,serverHooks:A}=E;function b(){return(0,a.patchFetch)({workAsyncStorage:x,workUnitAsyncStorage:C})}async function k(e,t,n){E.isDev&&(0,s.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let r="/api/skills/publish/route";r=r.replace(/\/index$/,"")||"/";let a=await E.prepare(e,t,{srcPage:r,multiZoneDraftMode:!1});if(!a)return t.statusCode=400,t.end("Bad Request"),null==n.waitUntil||n.waitUntil.call(n,Promise.resolve()),null;let{buildId:g,params:S,nextConfig:b,parsedUrl:k,isDraftMode:x,prerenderManifest:C,routerServerContext:A,isOnDemandRevalidate:P,revalidateOnlyGenerated:N,resolvedPathname:T,clientReferenceManifest:O,serverActionsManifest:I}=a,U=(0,u.normalizeAppPath)(r),_=!!(C.dynamicRoutes[U]||C.routes[T]),j=async()=>((null==A?void 0:A.render404)?await A.render404(e,t,k,!1):t.end("This page could not be found"),null);if(_&&!x){let e=!!C.routes[T],t=C.dynamicRoutes[U];if(t&&!1===t.fallback&&!e){if(b.experimental.adapterPath)return await j();throw new m.NoFallbackError}}let K=null;!_||E.isDev||x||(K=T,K="/index"===K?"/":K);let H=!0===E.isDev||!_,$=_&&!H;I&&O&&(0,o.setManifestsSingleton)({page:r,clientReferenceManifest:O,serverActionsManifest:I});let q=e.method||"GET",F=(0,l.getTracer)(),L=F.getActiveScopeSpan(),D={params:S,prerenderManifest:C,renderOpts:{experimental:{authInterrupts:!!b.experimental.authInterrupts},cacheComponents:!!b.cacheComponents,supportsDynamicResponse:H,incrementalCache:(0,s.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:b.cacheLife,waitUntil:n.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,n,r,i)=>E.onRequestError(e,t,r,i,A)},sharedContext:{buildId:g}},M=new d.NodeNextRequest(e),V=new d.NodeNextResponse(t),B=c.NextRequestAdapter.fromNodeNextRequest(M,(0,c.signalFromNodeResponse)(t));try{let a=async e=>E.handle(B,D).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let n=F.getRootSpanAttributes();if(!n)return;if(n.get("next.span_type")!==p.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${n.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let i=n.get("next.route");if(i){let t=`${q} ${i}`;e.setAttributes({"next.route":i,"http.route":i,"next.span_name":t}),e.updateName(t)}else e.updateName(`${q} ${r}`)}),o=!!(0,s.getRequestMeta)(e,"minimalMode"),u=async s=>{var l,u;let d=async({previousCacheEntry:i})=>{try{if(!o&&P&&N&&!i)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let r=await a(s);e.fetchMetrics=D.renderOpts.fetchMetrics;let l=D.renderOpts.pendingWaitUntil;l&&n.waitUntil&&(n.waitUntil(l),l=void 0);let u=D.renderOpts.collectedTags;if(!_)return await (0,f.sendResponse)(M,V,r,D.renderOpts.pendingWaitUntil),null;{let e=await r.blob(),t=(0,w.toNodeOutgoingHttpHeaders)(r.headers);u&&(t[y.NEXT_CACHE_TAGS_HEADER]=u),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let n=void 0!==D.renderOpts.collectedRevalidate&&!(D.renderOpts.collectedRevalidate>=y.INFINITE_CACHE)&&D.renderOpts.collectedRevalidate,i=void 0===D.renderOpts.collectedExpire||D.renderOpts.collectedExpire>=y.INFINITE_CACHE?void 0:D.renderOpts.collectedExpire;return{value:{kind:v.CachedRouteKind.APP_ROUTE,status:r.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:n,expire:i}}}}catch(t){throw(null==i?void 0:i.isStale)&&await E.onRequestError(e,t,{routerKind:"App Router",routePath:r,routeType:"route",revalidateReason:(0,h.getRevalidateReason)({isStaticGeneration:$,isOnDemandRevalidate:P})},!1,A),t}},c=await E.handleResponse({req:e,nextConfig:b,cacheKey:K,routeKind:i.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:C,isRoutePPREnabled:!1,isOnDemandRevalidate:P,revalidateOnlyGenerated:N,responseGenerator:d,waitUntil:n.waitUntil,isMinimalMode:o});if(!_)return null;if((null==c||null==(l=c.value)?void 0:l.kind)!==v.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==c||null==(u=c.value)?void 0:u.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});o||t.setHeader("x-nextjs-cache",P?"REVALIDATED":c.isMiss?"MISS":c.isStale?"STALE":"HIT"),x&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let p=(0,w.fromNodeOutgoingHttpHeaders)(c.value.headers);return o&&_||p.delete(y.NEXT_CACHE_TAGS_HEADER),!c.cacheControl||t.getHeader("Cache-Control")||p.get("Cache-Control")||p.set("Cache-Control",(0,R.getCacheControlHeader)(c.cacheControl)),await (0,f.sendResponse)(M,V,new Response(c.value.body,{headers:p,status:c.value.status||200})),null};L?await u(L):await F.withPropagatedContext(e.headers,()=>F.trace(p.BaseServerSpan.handleRequest,{spanName:`${q} ${r}`,kind:l.SpanKind.SERVER,attributes:{"http.method":q,"http.target":e.url}},u))}catch(t){if(t instanceof m.NoFallbackError||await E.onRequestError(e,t,{routerKind:"App Router",routePath:U,routeType:"route",revalidateReason:(0,h.getRevalidateReason)({isStaticGeneration:$,isOnDemandRevalidate:P})},!1,A),_)throw t;return await (0,f.sendResponse)(M,V,new Response(null,{status:500})),null}}e.s(["handler",()=>k,"patchFetch",()=>b,"routeModule",()=>E,"serverHooks",()=>A,"workAsyncStorage",()=>x,"workUnitAsyncStorage",()=>C]),n()}catch(e){n(e)}},!1)];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=_49e36e44._.js.map
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
module.exports=[867059,e=>{"use strict";let t=new Map;function a(e,a,s){let o=t.get(e);o&&clearTimeout(o);let n=setTimeout(()=>{t.delete(e),s()},a);t.set(e,n)}e.s(["debounceByKey",()=>a])},406502,e=>e.a(async(t,a)=>{try{var s=e.i(948594),o=e.i(940579),n=e.i(426740),i=e.i(8129),r=e.i(307692),l=e.i(837926),d=e.i(854763),c=e.i(
|
|
1
|
+
module.exports=[867059,e=>{"use strict";let t=new Map;function a(e,a,s){let o=t.get(e);o&&clearTimeout(o);let n=setTimeout(()=>{t.delete(e),s()},a);t.set(e,n)}e.s(["debounceByKey",()=>a])},406502,e=>e.a(async(t,a)=>{try{var s=e.i(948594),o=e.i(940579),n=e.i(426740),i=e.i(8129),r=e.i(307692),l=e.i(837926),d=e.i(854763),c=e.i(363884),u=e.i(867059),p=e.i(106411),g=e.i(826917),k=e.i(111911),v=e.i(125997),f=e.i(89171),y=t([s,o,i,r,d,p,v]);async function _(e){try{let t,a,o=await e.text();try{t=JSON.parse(o)}catch(e){return console.error("JSON Parse Error:",e),console.error("Raw Body:",o),f.NextResponse.json({error:"Invalid JSON"},{status:400})}let i=e.headers.get("x-witty-api-key"),l=new URL(e.url).origin,y="none";if(i){let e=await d.db.findUserByApiKey(i);if(e)a=e.username,t.user=a,y="api-key",console.log(`[Upload-API] ✓ User resolved via API Key: ${a}`);else{let e=i.slice(0,12);return console.error(`[Upload-API] ❌ Rejecting upload (HTTP 401): API key not found in User table.
|
|
2
2
|
Key prefix: ${e}...
|
|
3
3
|
task_id: ${t.task_id}
|
|
4
4
|
framework: ${t.framework||"unknown"}
|
|
5
5
|
payload.user (untrusted): ${t.user||"(none)"}
|
|
6
6
|
→ 检查 .env 里 AGENT_INSIGHT_API_KEY 是否与 DB 中某个 User.apiKey 完全一致。
|
|
7
7
|
→ 修复方法 1:把 .env 改成 DB 里目标账号的 key
|
|
8
|
-
→ 修复方法 2:SQL UPDATE User SET apiKey='<.env 的 key>' WHERE username='<目标账号>';`),
|
|
8
|
+
→ 修复方法 2:SQL UPDATE User SET apiKey='<.env 的 key>' WHERE username='<目标账号>';`),f.NextResponse.json({error:"Invalid API key",detail:"API Key 在 User 表里没匹配。Server 拒绝接收以避免数据跑到错误账号。",keyPrefix:e+"...",hint:"检查 AGENT_INSIGHT_API_KEY env 与 server DB 里目标 User.apiKey 是否一致"},{status:401})}}if(!a&&t.user&&(a=t.user,y="payload-user-unauth",console.warn(`[Upload-API] ⚠ No API key, using payload.user (UNAUTHENTICATED): ${a}
|
|
9
9
|
task_id: ${t.task_id}
|
|
10
10
|
→ client 应当配置 x-witty-api-key header 才能安全标识身份。`)),!a)return console.error(`[Upload-API] ❌ Rejecting upload (HTTP 400): no x-witty-api-key header and no payload.user field.
|
|
11
11
|
task_id: ${t.task_id}
|
|
12
12
|
framework: ${t.framework||"unknown"}
|
|
13
13
|
→ 之前会兜底到 DB 第一个 active user(例如 witty_insight_public@huawei.com),
|
|
14
14
|
导致 "trace 莫名其妙跑到另一个账号"。该 fallback 已下线。
|
|
15
|
-
→ 修复:在 client 配 AGENT_INSIGHT_API_KEY env 或在 payload 里设 user 字段。`),v.NextResponse.json({error:"Missing user identity",detail:"上报没带 x-witty-api-key header,也没在 payload.user 写身份。Server 拒绝接收以避免数据归属错误。",hint:"配 AGENT_INSIGHT_API_KEY env 后重试"},{status:400});if(console.log(`[Upload-API] 📥 Received data from ${t.framework||"unknown"}: task_id=${t.task_id}, query=${t.query?.substring(0,50)}..., user=${a} (via ${f})`),"opencode"===t.framework&&t.task_id&&(0,n.isDeletedOpencodeSessionId)(t.task_id))return console.log(`[Upload-API] 🪦 Skipping deleted opencode session: task_id=${t.task_id}`),v.NextResponse.json({success:!0,skipped:!0,reason:"deleted-opencode-session"});if(t.task_id){let e=(0,g.getInternalAgentTag)(String(t.task_id));if(!e)try{let a=await d.prisma.skillGeneratorSession.findFirst({where:{opencodeSessionId:String(t.task_id)},select:{agentName:!0,agentTraceSkill:!0,user:!0}});a?.agentName&&(e={agentName:a.agentName,skill:a.agentTraceSkill??void 0,user:a.user??void 0},console.log(`[Upload-API] 🗄️ Internal agent tag from DB for task_id=${t.task_id}: agentName=${e.agentName} user=${e.user??"-"}`))}catch(e){console.warn(`[Upload-API] DB tag lookup failed for task_id=${t.task_id}:`,e?.message)}e&&(t.agentName=e.agentName,e.agentId&&(t.agentId=e.agentId),e.skill&&(t.skill=e.skill),e.displayQuery&&(t.query=e.displayQuery),e.user&&e.user!==a&&(console.log(`[Upload-API] ⭐ 归属修正: ${a} → ${e.user} (internal agent ${e.agentName}, task_id=${t.task_id})`),a=e.user,t.user=e.user),console.log(`[Upload-API] ⭐ Internal agent tag applied for task_id=${t.task_id}: agentName=${e.agentName} skill=${e.skill??"-"} user=${a}`))}let y=t.interactions||[],m=(0,r.normalizeInteractions)(y);m.forEach((e,t)=>{let a=!!e.responseMessage?.tool_calls?.length,s=e.requestMessages?.filter(e=>"assistant"===e.role&&e.tool_calls?.length).length||0;console.log(`[Upload-Debug] Turn ${t}: ReqMsgs=${e.requestMessages?.length}, RespRole=${e.responseMessage?.role}, RespTool=${a}, AssistantReqTools=${s}`)});let A=(0,s.extractInvokedSkillsFromSessionInteractions)(t.framework,m)??[];console.log(`[Upload-API] Extracted skills: ${JSON.stringify(A)}`);let h=A.map(e=>e.name),w=A[0]?.version??t.skill_version;if(console.log(`[Upload-API] Initial quickSkillVersion: ${w} (from tool call: ${A[0]?.version}, from data: ${t.skill_version})`),null==w){let e=h.length>0?h[0]:t.skill;if(console.log(`[Upload-API] No version from tool call, querying database for skill: ${e}`),e)try{let t=await d.db.findSkill(e,a||null);if(console.log(`[Upload-API] Skill record found: ${t?t.name:"null"}, activeVersion: ${t?.activeVersion}, versions: ${t?.versions?.map(e=>e.version).join(",")}`),t&&t.versions&&t.versions.length>0){let a=t.activeVersion||0,s=t.versions.find(e=>e.version===a);s?(w=s.version,console.log(`[Upload-API] Quick save: using active version ${w} for skill ${e}`)):(w=t.versions[0].version,console.log(`[Upload-API] Quick save: using fallback version ${w} for skill ${e}`))}else console.log("[Upload-API] Skill record not found or no versions available")}catch(t){console.warn(`[Upload-API] Failed to fetch skill version for ${e}:`,t)}}console.log(`[Upload-API] Final quickSkillVersion: ${w}`);let $={...t,skip_evaluation:!0,skills:h,invokedSkills:A,skill:h.length>0?h[0]:t.skill,skill_version:w};try{await (0,s.saveExecutionRecord)($),"opencode"===t.framework&&t.opencode_cli_completed&&t.task_id&&(await d.db.updateSession(String(t.task_id),{endTime:new Date}),(0,k.triggerTrajectoryAutoWatchForTask)(a,String(t.task_id),l)),h.length>0&&console.log(`[Upload-API] Quick save with skills: ${JSON.stringify(A)}`)}catch(e){console.warn("[Upload-API] Quick initial save failed:",e)}let R=(await (0,u.getUserSettings)(a)).autoEvaluationEnabled??!0;if(console.log(`[Upload-API] Auto evaluation enabled: ${R} for user: ${a}`),!R)return console.log(`[Upload-API] Auto evaluation disabled, skipping async analysis for task_id=${t.task_id}`),v.NextResponse.json({success:!0,message:"Upload received, auto evaluation disabled",upload_id:t.task_id,auto_evaluation:!1},{status:200});let U=Number(process.env.UPLOAD_ASYNC_DEBOUNCE_MS||15e3),S=Number.isFinite(U)&&U>=0?U:15e3,I=`${a||"anonymous"}::${t.task_id||""}`;return(0,c.debounceByKey)(I,S,()=>{let e=JSON.parse(JSON.stringify(t)),s=JSON.parse(JSON.stringify(m)),o=JSON.parse(JSON.stringify(y));_(e,a,s,o,l).catch(t=>{t instanceof p.EvaluationCancelledError?console.log(`[Upload-API] Async analysis cancelled for task_id=${e.task_id}: ${t.message}`):console.error("[Upload-API] Async analysis failed:",t)})}),v.NextResponse.json({success:!0,message:"Upload received and analyzing in background",upload_id:t.task_id,auto_evaluation:!0},{status:200})}catch(e){return console.error("[Upload-API] ❌ Error:",e),v.NextResponse.json({error:"Failed to process data"},{status:500})}}async function _(e,t,a,n,c){let u,g,v=String(e.task_id||"");if(!t)return void console.log(`[Upload-Async] No username, skipping evaluation for task_id=${v}`);let{runId:f}=(0,p.startOrReplace)(t,v,"upload");console.log(`[Upload-Async] Starting background analysis for ${v} with runId=${f}`);let y=await (0,r.analyzeSession)(a,t);(0,p.assertActive)(t,v,f),!e.query&&y.query&&(e.query=y.query),!e.final_result&&y.final_result&&(e.final_result=y.final_result);let _=(0,s.extractInvokedSkillsFromSessionInteractions)(e.framework,a)??[];(0,p.assertActive)(t,v,f);let m=_.map(e=>e.name);if(m.length>0?(e.skills=m,e.invokedSkills=_,e.skill||(e.skill=m[0]),console.log(`[Upload-Async] Extracted skills: ${JSON.stringify(_)}`),console.log(`[Upload-Async] Current data.skill_version: ${e.skill_version}`),_[0]?.version!=null&&(e.skill_version=_[0].version,console.log(`[Upload-Async] Updated skill_version from tool call: ${e.skill_version}`)),console.log(`[Upload-Async] 🛠️ Extracted Skills: ${JSON.stringify(_)} for task_id=${e.task_id}`)):(e.skills=[],e.invokedSkills=[],console.log(`[Upload-Async] ⚠️ No skills extracted for task_id=${e.task_id}`)),e.query&&(e.query=e.query.trim().replace(/^['"]+|['"]+$/g,"").trim()),e.skill&&(e.skill=e.skill.trim().replace(/^['"]+|['"]+$/g,"").trim()),!e.query){console.log(`[Upload-Async] Empty query after analysis, aborting task_id=${e.task_id}`),(0,p.finish)(t,v,f);return}let A=e.skill;if(console.log(`[Upload-Async] Primary skill name: ${A}, current skill_version: ${e.skill_version}`),A){let a=await d.db.findSkill(A,t||null);if((0,p.assertActive)(t,v,f),console.log(`[Upload-Async] Skill record found: ${a?a.name:"null"}, activeVersion: ${a?.activeVersion}, versions: ${a?.versions?.map(e=>e.version).join(",")}`),a&&a.versions&&a.versions.length>0){let t=a.activeVersion||0,s=a.versions.find(e=>e.version===t);s&&s.content?(g=s.content,e.skill_version=s.version,console.log(`[Upload-Async] Using active version ${s.version} for skill ${A}`)):(g=a.versions[0].content,e.skill_version=a.versions[0].version,console.log(`[Upload-Async] Using fallback version ${a.versions[0].version} for skill ${A}`))}}e.skip_evaluation=!0,e.force_judgment=!1;let h=await (0,s.saveExecutionRecord)(e);(0,p.assertActive)(t,v,f);try{let a=await (0,i.analyzeDynamicOnly)(e.task_id,t);(0,p.assertActive)(t,v,f),a.success?console.log(`[Upload-Async] Auto-parsed dynamic flow for ${e.task_id}`):console.warn(`[Upload-Async] Auto-parse dynamic flow failed for ${e.task_id}: ${a.error}`)}catch(t){console.warn(`[Upload-Async] Auto-parse dynamic flow error for ${e.task_id}:`,t)}if((0,p.assertActive)(t,v,f),(0,l.isEvaluatorTraceRecord)({agent:e.agent??e.agentName,agentName:e.agentName,agents:e.agents,query:e.query,final_result:e.final_result,label:e.label}))console.log(`[Upload-Async] Skipping analyzeFailures for evaluator trace ${v} (agent=${e.agentName||e.agent||"unknown"}) — evaluator output describes evaluated case, not this session`),u={failures:[],skill_issues:[]};else{try{let a=h.record.upload_id||e.upload_id||e.task_id;if(a){let s=(await (0,o.scheduleResultEvaluation)(a,t)).metrics.accuracy;null!=s.score&&(e.answer_score=s.score/100,e.is_answer_correct=s.score>=80,e.judgment_reason=String(s.evidence.reason||"结果准确性评测"))}}catch(e){console.warn(`[Upload-Async] Result quality evaluation failed for ${v}:`,e)}u=await (0,r.analyzeFailures)(n,A,g,e.answer_score,String(e.judgment_reason||""),e.query,e.final_result,t)}(0,p.assertActive)(t,v,f),e.failures=u.failures,e.skill_issues=u.skill_issues,(0,p.assertActive)(t,v,f),e.skip_evaluation=!1,e.skip_internal_judgment=!0,await (0,s.saveExecutionRecord)(e);let w="opencode"!==e.framework||!0===e.opencode_cli_completed;if(v&&w)try{await d.db.updateSession(v,{endTime:new Date}),(0,k.triggerTrajectoryAutoWatchForTask)(t,v,c)}catch(e){console.warn(`[Upload-Async] Failed to mark session ended for ${v}:`,e)}(0,p.finish)(t,v,f),console.log(`[Upload-Async] ✅ Completed async analysis: task_id=${e.task_id}, score=${e.answer_score}, failures=${(e.failures||[]).length}`)}[s,o,i,r,d,u,k]=f.then?(await f)():f,e.s(["POST",()=>y]),a()}catch(e){a(e)}},!1),453458,e=>e.a(async(t,a)=>{try{var s=e.i(747909),o=e.i(174017),n=e.i(996250),i=e.i(759756),r=e.i(561916),l=e.i(174677),d=e.i(869741),c=e.i(316795),u=e.i(487718),p=e.i(995169),g=e.i(47587),k=e.i(666012),v=e.i(570101),f=e.i(626937),y=e.i(10372),_=e.i(193695);e.i(52474);var m=e.i(600220),A=e.i(406502),h=t([A]);[A]=h.then?(await h)():h;let R=new s.AppRouteRouteModule({definition:{kind:o.RouteKind.APP_ROUTE,page:"/api/ingest/upload/route",pathname:"/api/ingest/upload",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/ingest/upload/route.ts",nextConfigOutput:"standalone",userland:A}),{workAsyncStorage:U,workUnitAsyncStorage:S,serverHooks:I}=R;function w(){return(0,n.patchFetch)({workAsyncStorage:U,workUnitAsyncStorage:S})}async function $(e,t,a){R.isDev&&(0,i.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let s="/api/ingest/upload/route";s=s.replace(/\/index$/,"")||"/";let n=await R.prepare(e,t,{srcPage:s,multiZoneDraftMode:!1});if(!n)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:A,params:h,nextConfig:w,parsedUrl:$,isDraftMode:U,prerenderManifest:S,routerServerContext:I,isOnDemandRevalidate:N,revalidateOnlyGenerated:E,resolvedPathname:P,clientReferenceManifest:T,serverActionsManifest:x}=n,b=(0,d.normalizeAppPath)(s),C=!!(S.dynamicRoutes[b]||S.routes[P]),O=async()=>((null==I?void 0:I.render404)?await I.render404(e,t,$,!1):t.end("This page could not be found"),null);if(C&&!U){let e=!!S.routes[P],t=S.dynamicRoutes[b];if(t&&!1===t.fallback&&!e){if(w.experimental.adapterPath)return await O();throw new _.NoFallbackError}}let q=null;!C||R.isDev||U||(q=P,q="/index"===q?"/":q);let D=!0===R.isDev||!C,H=C&&!D;x&&T&&(0,l.setManifestsSingleton)({page:s,clientReferenceManifest:T,serverActionsManifest:x});let j=e.method||"GET",K=(0,r.getTracer)(),F=K.getActiveScopeSpan(),M={params:h,prerenderManifest:S,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:D,incrementalCache:(0,i.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:w.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,a,s,o)=>R.onRequestError(e,t,s,o,I)},sharedContext:{buildId:A}},B=new c.NodeNextRequest(e),J=new c.NodeNextResponse(t),G=u.NextRequestAdapter.fromNodeNextRequest(B,(0,u.signalFromNodeResponse)(t));try{let n=async e=>R.handle(G,M).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let a=K.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==p.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let o=a.get("next.route");if(o){let t=`${j} ${o}`;e.setAttributes({"next.route":o,"http.route":o,"next.span_name":t}),e.updateName(t)}else e.updateName(`${j} ${s}`)}),l=!!(0,i.getRequestMeta)(e,"minimalMode"),d=async i=>{var r,d;let c=async({previousCacheEntry:o})=>{try{if(!l&&N&&E&&!o)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let s=await n(i);e.fetchMetrics=M.renderOpts.fetchMetrics;let r=M.renderOpts.pendingWaitUntil;r&&a.waitUntil&&(a.waitUntil(r),r=void 0);let d=M.renderOpts.collectedTags;if(!C)return await (0,k.sendResponse)(B,J,s,M.renderOpts.pendingWaitUntil),null;{let e=await s.blob(),t=(0,v.toNodeOutgoingHttpHeaders)(s.headers);d&&(t[y.NEXT_CACHE_TAGS_HEADER]=d),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let a=void 0!==M.renderOpts.collectedRevalidate&&!(M.renderOpts.collectedRevalidate>=y.INFINITE_CACHE)&&M.renderOpts.collectedRevalidate,o=void 0===M.renderOpts.collectedExpire||M.renderOpts.collectedExpire>=y.INFINITE_CACHE?void 0:M.renderOpts.collectedExpire;return{value:{kind:m.CachedRouteKind.APP_ROUTE,status:s.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:a,expire:o}}}}catch(t){throw(null==o?void 0:o.isStale)&&await R.onRequestError(e,t,{routerKind:"App Router",routePath:s,routeType:"route",revalidateReason:(0,g.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:N})},!1,I),t}},u=await R.handleResponse({req:e,nextConfig:w,cacheKey:q,routeKind:o.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:S,isRoutePPREnabled:!1,isOnDemandRevalidate:N,revalidateOnlyGenerated:E,responseGenerator:c,waitUntil:a.waitUntil,isMinimalMode:l});if(!C)return null;if((null==u||null==(r=u.value)?void 0:r.kind)!==m.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==u||null==(d=u.value)?void 0:d.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});l||t.setHeader("x-nextjs-cache",N?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),U&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let p=(0,v.fromNodeOutgoingHttpHeaders)(u.value.headers);return l&&C||p.delete(y.NEXT_CACHE_TAGS_HEADER),!u.cacheControl||t.getHeader("Cache-Control")||p.get("Cache-Control")||p.set("Cache-Control",(0,f.getCacheControlHeader)(u.cacheControl)),await (0,k.sendResponse)(B,J,new Response(u.value.body,{headers:p,status:u.value.status||200})),null};F?await d(F):await K.withPropagatedContext(e.headers,()=>K.trace(p.BaseServerSpan.handleRequest,{spanName:`${j} ${s}`,kind:r.SpanKind.SERVER,attributes:{"http.method":j,"http.target":e.url}},d))}catch(t){if(t instanceof _.NoFallbackError||await R.onRequestError(e,t,{routerKind:"App Router",routePath:b,routeType:"route",revalidateReason:(0,g.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:N})},!1,I),C)throw t;return await (0,k.sendResponse)(B,J,new Response(null,{status:500})),null}}e.s(["handler",()=>$,"patchFetch",()=>w,"routeModule",()=>R,"serverHooks",()=>I,"workAsyncStorage",()=>U,"workUnitAsyncStorage",()=>S]),a()}catch(e){a(e)}},!1)];
|
|
15
|
+
→ 修复:在 client 配 AGENT_INSIGHT_API_KEY env 或在 payload 里设 user 字段。`),f.NextResponse.json({error:"Missing user identity",detail:"上报没带 x-witty-api-key header,也没在 payload.user 写身份。Server 拒绝接收以避免数据归属错误。",hint:"配 AGENT_INSIGHT_API_KEY env 后重试"},{status:400});if(console.log(`[Upload-API] 📥 Received data from ${t.framework||"unknown"}: task_id=${t.task_id}, query=${t.query?.substring(0,50)}..., user=${a} (via ${y})`),t.endpoint&&(t.endpoint=(0,c.normalizeEndpointUrl)(t.endpoint)??void 0),"opencode"===t.framework&&t.task_id&&(0,n.isDeletedOpencodeSessionId)(t.task_id))return console.log(`[Upload-API] 🪦 Skipping deleted opencode session: task_id=${t.task_id}`),f.NextResponse.json({success:!0,skipped:!0,reason:"deleted-opencode-session"});if(t.task_id){let e=(0,k.getInternalAgentTag)(String(t.task_id));if(!e)try{let a=await d.prisma.skillGeneratorSession.findFirst({where:{opencodeSessionId:String(t.task_id)},select:{agentName:!0,agentTraceSkill:!0,user:!0}});a?.agentName&&(e={agentName:a.agentName,skill:a.agentTraceSkill??void 0,user:a.user??void 0},console.log(`[Upload-API] 🗄️ Internal agent tag from DB for task_id=${t.task_id}: agentName=${e.agentName} user=${e.user??"-"}`))}catch(e){console.warn(`[Upload-API] DB tag lookup failed for task_id=${t.task_id}:`,e?.message)}e&&(t.agentName=e.agentName,e.agentId&&(t.agentId=e.agentId),e.skill&&(t.skill=e.skill),e.displayQuery&&(t.query=e.displayQuery),e.user&&e.user!==a&&(console.log(`[Upload-API] ⭐ 归属修正: ${a} → ${e.user} (internal agent ${e.agentName}, task_id=${t.task_id})`),a=e.user,t.user=e.user),console.log(`[Upload-API] ⭐ Internal agent tag applied for task_id=${t.task_id}: agentName=${e.agentName} skill=${e.skill??"-"} user=${a}`))}let _=t.interactions||[],A=(0,r.normalizeInteractions)(_);A.forEach((e,t)=>{let a=!!e.responseMessage?.tool_calls?.length,s=e.requestMessages?.filter(e=>"assistant"===e.role&&e.tool_calls?.length).length||0;console.log(`[Upload-Debug] Turn ${t}: ReqMsgs=${e.requestMessages?.length}, RespRole=${e.responseMessage?.role}, RespTool=${a}, AssistantReqTools=${s}`)});let h=(0,s.extractInvokedSkillsFromSessionInteractions)(t.framework,A)??[];console.log(`[Upload-API] Extracted skills: ${JSON.stringify(h)}`);let w=h.map(e=>e.name),$=h[0]?.version??t.skill_version;if(console.log(`[Upload-API] Initial quickSkillVersion: ${$} (from tool call: ${h[0]?.version}, from data: ${t.skill_version})`),null==$){let e=w.length>0?w[0]:t.skill;if(console.log(`[Upload-API] No version from tool call, querying database for skill: ${e}`),e)try{let t=await d.db.findSkill(e,a||null);if(console.log(`[Upload-API] Skill record found: ${t?t.name:"null"}, activeVersion: ${t?.activeVersion}, versions: ${t?.versions?.map(e=>e.version).join(",")}`),t&&t.versions&&t.versions.length>0){let a=t.activeVersion||0,s=t.versions.find(e=>e.version===a);s?($=s.version,console.log(`[Upload-API] Quick save: using active version ${$} for skill ${e}`)):($=t.versions[0].version,console.log(`[Upload-API] Quick save: using fallback version ${$} for skill ${e}`))}else console.log("[Upload-API] Skill record not found or no versions available")}catch(t){console.warn(`[Upload-API] Failed to fetch skill version for ${e}:`,t)}}console.log(`[Upload-API] Final quickSkillVersion: ${$}`);let R={...t,skip_evaluation:!0,skills:w,invokedSkills:h,skill:w.length>0?w[0]:t.skill,skill_version:$};try{await (0,s.saveExecutionRecord)(R),"opencode"===t.framework&&t.opencode_cli_completed&&t.task_id&&(await d.db.updateSession(String(t.task_id),{endTime:new Date}),(0,v.triggerTrajectoryAutoWatchForTask)(a,String(t.task_id),l)),w.length>0&&console.log(`[Upload-API] Quick save with skills: ${JSON.stringify(h)}`)}catch(e){console.warn("[Upload-API] Quick initial save failed:",e)}let U=(await (0,p.getUserSettings)(a)).autoEvaluationEnabled??!0;if(console.log(`[Upload-API] Auto evaluation enabled: ${U} for user: ${a}`),!U)return console.log(`[Upload-API] Auto evaluation disabled, skipping async analysis for task_id=${t.task_id}`),f.NextResponse.json({success:!0,message:"Upload received, auto evaluation disabled",upload_id:t.task_id,auto_evaluation:!1},{status:200});let S=Number(process.env.UPLOAD_ASYNC_DEBOUNCE_MS||15e3),I=Number.isFinite(S)&&S>=0?S:15e3,N=`${a||"anonymous"}::${t.task_id||""}`;return(0,u.debounceByKey)(N,I,()=>{let e=JSON.parse(JSON.stringify(t)),s=JSON.parse(JSON.stringify(A)),o=JSON.parse(JSON.stringify(_));m(e,a,s,o,l).catch(t=>{t instanceof g.EvaluationCancelledError?console.log(`[Upload-API] Async analysis cancelled for task_id=${e.task_id}: ${t.message}`):console.error("[Upload-API] Async analysis failed:",t)})}),f.NextResponse.json({success:!0,message:"Upload received and analyzing in background",upload_id:t.task_id,auto_evaluation:!0},{status:200})}catch(e){return console.error("[Upload-API] ❌ Error:",e),f.NextResponse.json({error:"Failed to process data"},{status:500})}}async function m(e,t,a,n,c){let u,p,k=String(e.task_id||"");if(!t)return void console.log(`[Upload-Async] No username, skipping evaluation for task_id=${k}`);let{runId:f}=(0,g.startOrReplace)(t,k,"upload");console.log(`[Upload-Async] Starting background analysis for ${k} with runId=${f}`);let y=await (0,r.analyzeSession)(a,t);(0,g.assertActive)(t,k,f),!e.query&&y.query&&(e.query=y.query),!e.final_result&&y.final_result&&(e.final_result=y.final_result);let _=(0,s.extractInvokedSkillsFromSessionInteractions)(e.framework,a)??[];(0,g.assertActive)(t,k,f);let m=_.map(e=>e.name);if(m.length>0?(e.skills=m,e.invokedSkills=_,e.skill||(e.skill=m[0]),console.log(`[Upload-Async] Extracted skills: ${JSON.stringify(_)}`),console.log(`[Upload-Async] Current data.skill_version: ${e.skill_version}`),_[0]?.version!=null&&(e.skill_version=_[0].version,console.log(`[Upload-Async] Updated skill_version from tool call: ${e.skill_version}`)),console.log(`[Upload-Async] 🛠️ Extracted Skills: ${JSON.stringify(_)} for task_id=${e.task_id}`)):(e.skills=[],e.invokedSkills=[],console.log(`[Upload-Async] ⚠️ No skills extracted for task_id=${e.task_id}`)),e.query&&(e.query=e.query.trim().replace(/^['"]+|['"]+$/g,"").trim()),e.skill&&(e.skill=e.skill.trim().replace(/^['"]+|['"]+$/g,"").trim()),!e.query){console.log(`[Upload-Async] Empty query after analysis, aborting task_id=${e.task_id}`),(0,g.finish)(t,k,f);return}let A=e.skill;if(console.log(`[Upload-Async] Primary skill name: ${A}, current skill_version: ${e.skill_version}`),A){let a=await d.db.findSkill(A,t||null);if((0,g.assertActive)(t,k,f),console.log(`[Upload-Async] Skill record found: ${a?a.name:"null"}, activeVersion: ${a?.activeVersion}, versions: ${a?.versions?.map(e=>e.version).join(",")}`),a&&a.versions&&a.versions.length>0){let t=a.activeVersion||0,s=a.versions.find(e=>e.version===t);s&&s.content?(p=s.content,e.skill_version=s.version,console.log(`[Upload-Async] Using active version ${s.version} for skill ${A}`)):(p=a.versions[0].content,e.skill_version=a.versions[0].version,console.log(`[Upload-Async] Using fallback version ${a.versions[0].version} for skill ${A}`))}}e.skip_evaluation=!0,e.force_judgment=!1;let h=await (0,s.saveExecutionRecord)(e);(0,g.assertActive)(t,k,f);try{let a=await (0,i.analyzeDynamicOnly)(e.task_id,t);(0,g.assertActive)(t,k,f),a.success?console.log(`[Upload-Async] Auto-parsed dynamic flow for ${e.task_id}`):console.warn(`[Upload-Async] Auto-parse dynamic flow failed for ${e.task_id}: ${a.error}`)}catch(t){console.warn(`[Upload-Async] Auto-parse dynamic flow error for ${e.task_id}:`,t)}if((0,g.assertActive)(t,k,f),(0,l.isEvaluatorTraceRecord)({agent:e.agent??e.agentName,agentName:e.agentName,agents:e.agents,query:e.query,final_result:e.final_result,label:e.label}))console.log(`[Upload-Async] Skipping analyzeFailures for evaluator trace ${k} (agent=${e.agentName||e.agent||"unknown"}) — evaluator output describes evaluated case, not this session`),u={failures:[],skill_issues:[]};else{try{let a=h.record.upload_id||e.upload_id||e.task_id;if(a){let s=(await (0,o.scheduleResultEvaluation)(a,t)).metrics.accuracy;null!=s.score&&(e.answer_score=s.score/100,e.is_answer_correct=s.score>=80,e.judgment_reason=String(s.evidence.reason||"结果准确性评测"))}}catch(e){console.warn(`[Upload-Async] Result quality evaluation failed for ${k}:`,e)}u=await (0,r.analyzeFailures)(n,A,p,e.answer_score,String(e.judgment_reason||""),e.query,e.final_result,t)}(0,g.assertActive)(t,k,f),e.failures=u.failures,e.skill_issues=u.skill_issues,(0,g.assertActive)(t,k,f),e.skip_evaluation=!1,e.skip_internal_judgment=!0,await (0,s.saveExecutionRecord)(e);let w="opencode"!==e.framework||!0===e.opencode_cli_completed;if(k&&w)try{await d.db.updateSession(k,{endTime:new Date}),(0,v.triggerTrajectoryAutoWatchForTask)(t,k,c)}catch(e){console.warn(`[Upload-Async] Failed to mark session ended for ${k}:`,e)}(0,g.finish)(t,k,f),console.log(`[Upload-Async] ✅ Completed async analysis: task_id=${e.task_id}, score=${e.answer_score}, failures=${(e.failures||[]).length}`)}[s,o,i,r,d,p,v]=y.then?(await y)():y,e.s(["POST",()=>_]),a()}catch(e){a(e)}},!1),453458,e=>e.a(async(t,a)=>{try{var s=e.i(747909),o=e.i(174017),n=e.i(996250),i=e.i(759756),r=e.i(561916),l=e.i(174677),d=e.i(869741),c=e.i(316795),u=e.i(487718),p=e.i(995169),g=e.i(47587),k=e.i(666012),v=e.i(570101),f=e.i(626937),y=e.i(10372),_=e.i(193695);e.i(52474);var m=e.i(600220),A=e.i(406502),h=t([A]);[A]=h.then?(await h)():h;let R=new s.AppRouteRouteModule({definition:{kind:o.RouteKind.APP_ROUTE,page:"/api/ingest/upload/route",pathname:"/api/ingest/upload",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/ingest/upload/route.ts",nextConfigOutput:"standalone",userland:A}),{workAsyncStorage:U,workUnitAsyncStorage:S,serverHooks:I}=R;function w(){return(0,n.patchFetch)({workAsyncStorage:U,workUnitAsyncStorage:S})}async function $(e,t,a){R.isDev&&(0,i.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let s="/api/ingest/upload/route";s=s.replace(/\/index$/,"")||"/";let n=await R.prepare(e,t,{srcPage:s,multiZoneDraftMode:!1});if(!n)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:A,params:h,nextConfig:w,parsedUrl:$,isDraftMode:U,prerenderManifest:S,routerServerContext:I,isOnDemandRevalidate:N,revalidateOnlyGenerated:E,resolvedPathname:P,clientReferenceManifest:T,serverActionsManifest:x}=n,b=(0,d.normalizeAppPath)(s),C=!!(S.dynamicRoutes[b]||S.routes[P]),O=async()=>((null==I?void 0:I.render404)?await I.render404(e,t,$,!1):t.end("This page could not be found"),null);if(C&&!U){let e=!!S.routes[P],t=S.dynamicRoutes[b];if(t&&!1===t.fallback&&!e){if(w.experimental.adapterPath)return await O();throw new _.NoFallbackError}}let q=null;!C||R.isDev||U||(q=P,q="/index"===q?"/":q);let D=!0===R.isDev||!C,H=C&&!D;x&&T&&(0,l.setManifestsSingleton)({page:s,clientReferenceManifest:T,serverActionsManifest:x});let j=e.method||"GET",K=(0,r.getTracer)(),F=K.getActiveScopeSpan(),M={params:h,prerenderManifest:S,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:D,incrementalCache:(0,i.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:w.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,a,s,o)=>R.onRequestError(e,t,s,o,I)},sharedContext:{buildId:A}},B=new c.NodeNextRequest(e),J=new c.NodeNextResponse(t),G=u.NextRequestAdapter.fromNodeNextRequest(B,(0,u.signalFromNodeResponse)(t));try{let n=async e=>R.handle(G,M).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let a=K.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==p.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let o=a.get("next.route");if(o){let t=`${j} ${o}`;e.setAttributes({"next.route":o,"http.route":o,"next.span_name":t}),e.updateName(t)}else e.updateName(`${j} ${s}`)}),l=!!(0,i.getRequestMeta)(e,"minimalMode"),d=async i=>{var r,d;let c=async({previousCacheEntry:o})=>{try{if(!l&&N&&E&&!o)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let s=await n(i);e.fetchMetrics=M.renderOpts.fetchMetrics;let r=M.renderOpts.pendingWaitUntil;r&&a.waitUntil&&(a.waitUntil(r),r=void 0);let d=M.renderOpts.collectedTags;if(!C)return await (0,k.sendResponse)(B,J,s,M.renderOpts.pendingWaitUntil),null;{let e=await s.blob(),t=(0,v.toNodeOutgoingHttpHeaders)(s.headers);d&&(t[y.NEXT_CACHE_TAGS_HEADER]=d),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let a=void 0!==M.renderOpts.collectedRevalidate&&!(M.renderOpts.collectedRevalidate>=y.INFINITE_CACHE)&&M.renderOpts.collectedRevalidate,o=void 0===M.renderOpts.collectedExpire||M.renderOpts.collectedExpire>=y.INFINITE_CACHE?void 0:M.renderOpts.collectedExpire;return{value:{kind:m.CachedRouteKind.APP_ROUTE,status:s.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:a,expire:o}}}}catch(t){throw(null==o?void 0:o.isStale)&&await R.onRequestError(e,t,{routerKind:"App Router",routePath:s,routeType:"route",revalidateReason:(0,g.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:N})},!1,I),t}},u=await R.handleResponse({req:e,nextConfig:w,cacheKey:q,routeKind:o.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:S,isRoutePPREnabled:!1,isOnDemandRevalidate:N,revalidateOnlyGenerated:E,responseGenerator:c,waitUntil:a.waitUntil,isMinimalMode:l});if(!C)return null;if((null==u||null==(r=u.value)?void 0:r.kind)!==m.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==u||null==(d=u.value)?void 0:d.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});l||t.setHeader("x-nextjs-cache",N?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),U&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let p=(0,v.fromNodeOutgoingHttpHeaders)(u.value.headers);return l&&C||p.delete(y.NEXT_CACHE_TAGS_HEADER),!u.cacheControl||t.getHeader("Cache-Control")||p.get("Cache-Control")||p.set("Cache-Control",(0,f.getCacheControlHeader)(u.cacheControl)),await (0,k.sendResponse)(B,J,new Response(u.value.body,{headers:p,status:u.value.status||200})),null};F?await d(F):await K.withPropagatedContext(e.headers,()=>K.trace(p.BaseServerSpan.handleRequest,{spanName:`${j} ${s}`,kind:r.SpanKind.SERVER,attributes:{"http.method":j,"http.target":e.url}},d))}catch(t){if(t instanceof _.NoFallbackError||await R.onRequestError(e,t,{routerKind:"App Router",routePath:b,routeType:"route",revalidateReason:(0,g.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:N})},!1,I),C)throw t;return await (0,k.sendResponse)(B,J,new Response(null,{status:500})),null}}e.s(["handler",()=>$,"patchFetch",()=>w,"routeModule",()=>R,"serverHooks",()=>I,"workAsyncStorage",()=>U,"workUnitAsyncStorage",()=>S]),a()}catch(e){a(e)}},!1)];
|
|
16
16
|
|
|
17
17
|
//# sourceMappingURL=_4ec439ea._.js.map
|