agent-insight 0.5.2 → 0.5.3

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.
Files changed (832) hide show
  1. package/.env.example +6 -0
  2. package/.next/standalone/.next/BUILD_ID +1 -1
  3. package/.next/standalone/.next/app-path-routes-manifest.json +9 -0
  4. package/.next/standalone/.next/build-manifest.json +2 -2
  5. package/.next/standalone/.next/prerender-manifest.json +51 -3
  6. package/.next/standalone/.next/routes-manifest.json +60 -0
  7. package/.next/standalone/.next/server/app/(main)/accessconfig/channels/page_client-reference-manifest.js +1 -1
  8. package/.next/standalone/.next/server/app/(main)/accessconfig/health/page_client-reference-manifest.js +1 -1
  9. package/.next/standalone/.next/server/app/(main)/accessconfig/install/page.js.nft.json +1 -1
  10. package/.next/standalone/.next/server/app/(main)/accessconfig/install/page_client-reference-manifest.js +1 -1
  11. package/.next/standalone/.next/server/app/(main)/accessconfig/page_client-reference-manifest.js +1 -1
  12. package/.next/standalone/.next/server/app/(main)/accessconfig/webhooks/page_client-reference-manifest.js +1 -1
  13. package/.next/standalone/.next/server/app/(main)/agents/page.js.nft.json +1 -1
  14. package/.next/standalone/.next/server/app/(main)/agents/page_client-reference-manifest.js +1 -1
  15. package/.next/standalone/.next/server/app/(main)/dashboard/page.js.nft.json +1 -1
  16. package/.next/standalone/.next/server/app/(main)/dashboard/page_client-reference-manifest.js +1 -1
  17. package/.next/standalone/.next/server/app/(main)/dataset/[id]/page_client-reference-manifest.js +1 -1
  18. package/.next/standalone/.next/server/app/(main)/dataset/page_client-reference-manifest.js +1 -1
  19. package/.next/standalone/.next/server/app/(main)/eval/page.js.nft.json +1 -1
  20. package/.next/standalone/.next/server/app/(main)/eval/page_client-reference-manifest.js +1 -1
  21. package/.next/standalone/.next/server/app/(main)/eval/run/[runId]/page_client-reference-manifest.js +1 -1
  22. package/.next/standalone/.next/server/app/(main)/eval/trajectory/[taskId]/page_client-reference-manifest.js +1 -1
  23. package/.next/standalone/.next/server/app/(main)/eval/trajectory/[taskId]/trace/page.js.nft.json +1 -1
  24. package/.next/standalone/.next/server/app/(main)/eval/trajectory/[taskId]/trace/page_client-reference-manifest.js +1 -1
  25. package/.next/standalone/.next/server/app/(main)/eval/trajectory/page_client-reference-manifest.js +1 -1
  26. package/.next/standalone/.next/server/app/(main)/evaluation/[id]/page_client-reference-manifest.js +1 -1
  27. package/.next/standalone/.next/server/app/(main)/fault/page.js.nft.json +1 -1
  28. package/.next/standalone/.next/server/app/(main)/fault/page_client-reference-manifest.js +1 -1
  29. package/.next/standalone/.next/server/app/(main)/infra/page_client-reference-manifest.js +1 -1
  30. package/.next/standalone/.next/server/app/(main)/infra/source/[id]/page_client-reference-manifest.js +1 -1
  31. package/.next/standalone/.next/server/app/(main)/infra/sources/page_client-reference-manifest.js +1 -1
  32. package/.next/standalone/.next/server/app/(main)/memory/page_client-reference-manifest.js +1 -1
  33. package/.next/standalone/.next/server/app/(main)/metrics/evaluators/[id]/page_client-reference-manifest.js +1 -1
  34. package/.next/standalone/.next/server/app/(main)/metrics/page_client-reference-manifest.js +1 -1
  35. package/.next/standalone/.next/server/app/(main)/modelconfig/page_client-reference-manifest.js +1 -1
  36. package/.next/standalone/.next/server/app/(main)/modelconfig/registry/page.js.nft.json +1 -1
  37. package/.next/standalone/.next/server/app/(main)/modelconfig/registry/page_client-reference-manifest.js +1 -1
  38. package/.next/standalone/.next/server/app/(main)/modelconfig/web-search/page.js.nft.json +1 -1
  39. package/.next/standalone/.next/server/app/(main)/modelconfig/web-search/page_client-reference-manifest.js +1 -1
  40. package/.next/standalone/.next/server/app/(main)/optapi/page_client-reference-manifest.js +1 -1
  41. package/.next/standalone/.next/server/app/(main)/quality/page.js.nft.json +1 -1
  42. package/.next/standalone/.next/server/app/(main)/quality/page_client-reference-manifest.js +1 -1
  43. package/.next/standalone/.next/server/app/(main)/security/page_client-reference-manifest.js +1 -1
  44. package/.next/standalone/.next/server/app/(main)/skill-eval/grayscale/page.js.nft.json +1 -1
  45. package/.next/standalone/.next/server/app/(main)/skill-eval/grayscale/page_client-reference-manifest.js +1 -1
  46. package/.next/standalone/.next/server/app/(main)/skill-eval/page.js.nft.json +1 -1
  47. package/.next/standalone/.next/server/app/(main)/skill-eval/page_client-reference-manifest.js +1 -1
  48. package/.next/standalone/.next/server/app/(main)/skill-eval/trigger/[skillName]/page_client-reference-manifest.js +1 -1
  49. package/.next/standalone/.next/server/app/(main)/skill-generator/page_client-reference-manifest.js +1 -1
  50. package/.next/standalone/.next/server/app/(main)/skill-history/page.js.nft.json +1 -1
  51. package/.next/standalone/.next/server/app/(main)/skill-history/page_client-reference-manifest.js +1 -1
  52. package/.next/standalone/.next/server/app/(main)/skill-opt/[name]/[version]/page_client-reference-manifest.js +1 -1
  53. package/.next/standalone/.next/server/app/(main)/skill-opt/page_client-reference-manifest.js +1 -1
  54. package/.next/standalone/.next/server/app/(main)/skill-release/page_client-reference-manifest.js +1 -1
  55. package/.next/standalone/.next/server/app/(main)/skills/page.js.nft.json +1 -1
  56. package/.next/standalone/.next/server/app/(main)/skills/page_client-reference-manifest.js +1 -1
  57. package/.next/standalone/.next/server/app/(main)/trace/page.js.nft.json +1 -1
  58. package/.next/standalone/.next/server/app/(main)/trace/page_client-reference-manifest.js +1 -1
  59. package/.next/standalone/.next/server/app/(main)/version-analysis/page/app-paths-manifest.json +3 -0
  60. package/.next/standalone/.next/server/app/(main)/version-analysis/page/build-manifest.json +17 -0
  61. package/.next/standalone/.next/server/app/(main)/version-analysis/page/next-font-manifest.json +6 -0
  62. package/.next/standalone/.next/server/app/(main)/version-analysis/page/react-loadable-manifest.json +1 -0
  63. package/.next/standalone/.next/server/app/(main)/version-analysis/page/server-reference-manifest.json +4 -0
  64. package/.next/standalone/.next/server/app/(main)/version-analysis/page.js +17 -0
  65. package/.next/standalone/.next/server/app/(main)/version-analysis/page.js.map +5 -0
  66. package/.next/standalone/.next/server/app/(main)/version-analysis/page.js.nft.json +1 -0
  67. package/.next/standalone/.next/server/app/(main)/version-analysis/page_client-reference-manifest.js +2 -0
  68. package/.next/standalone/.next/server/app/(main)/version-management/page/app-paths-manifest.json +3 -0
  69. package/.next/standalone/.next/server/app/(main)/version-management/page/build-manifest.json +17 -0
  70. package/.next/standalone/.next/server/app/(main)/version-management/page/next-font-manifest.json +6 -0
  71. package/.next/standalone/.next/server/app/(main)/version-management/page/react-loadable-manifest.json +1 -0
  72. package/.next/standalone/.next/server/app/(main)/version-management/page/server-reference-manifest.json +4 -0
  73. package/.next/standalone/.next/server/app/(main)/version-management/page.js +17 -0
  74. package/.next/standalone/.next/server/app/(main)/version-management/page.js.map +5 -0
  75. package/.next/standalone/.next/server/app/(main)/version-management/page.js.nft.json +1 -0
  76. package/.next/standalone/.next/server/app/(main)/version-management/page_client-reference-manifest.js +2 -0
  77. package/.next/standalone/.next/server/app/_global-error.html +2 -2
  78. package/.next/standalone/.next/server/app/_global-error.rsc +1 -1
  79. package/.next/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  80. package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  81. package/.next/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  82. package/.next/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  83. package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  84. package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  85. package/.next/standalone/.next/server/app/_not-found.html +1 -1
  86. package/.next/standalone/.next/server/app/_not-found.rsc +3 -3
  87. package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +3 -3
  88. package/.next/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  89. package/.next/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +3 -3
  90. package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  91. package/.next/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  92. package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  93. package/.next/standalone/.next/server/app/accessconfig/channels.html +1 -1
  94. package/.next/standalone/.next/server/app/accessconfig/channels.rsc +5 -5
  95. package/.next/standalone/.next/server/app/accessconfig/channels.segments/!KG1haW4p/accessconfig/channels/__PAGE__.segment.rsc +2 -2
  96. package/.next/standalone/.next/server/app/accessconfig/channels.segments/!KG1haW4p/accessconfig/channels.segment.rsc +1 -1
  97. package/.next/standalone/.next/server/app/accessconfig/channels.segments/!KG1haW4p/accessconfig.segment.rsc +1 -1
  98. package/.next/standalone/.next/server/app/accessconfig/channels.segments/!KG1haW4p.segment.rsc +2 -2
  99. package/.next/standalone/.next/server/app/accessconfig/channels.segments/_full.segment.rsc +5 -5
  100. package/.next/standalone/.next/server/app/accessconfig/channels.segments/_head.segment.rsc +1 -1
  101. package/.next/standalone/.next/server/app/accessconfig/channels.segments/_index.segment.rsc +3 -3
  102. package/.next/standalone/.next/server/app/accessconfig/channels.segments/_tree.segment.rsc +2 -2
  103. package/.next/standalone/.next/server/app/accessconfig/health.html +1 -1
  104. package/.next/standalone/.next/server/app/accessconfig/health.rsc +5 -5
  105. package/.next/standalone/.next/server/app/accessconfig/health.segments/!KG1haW4p/accessconfig/health/__PAGE__.segment.rsc +2 -2
  106. package/.next/standalone/.next/server/app/accessconfig/health.segments/!KG1haW4p/accessconfig/health.segment.rsc +1 -1
  107. package/.next/standalone/.next/server/app/accessconfig/health.segments/!KG1haW4p/accessconfig.segment.rsc +1 -1
  108. package/.next/standalone/.next/server/app/accessconfig/health.segments/!KG1haW4p.segment.rsc +2 -2
  109. package/.next/standalone/.next/server/app/accessconfig/health.segments/_full.segment.rsc +5 -5
  110. package/.next/standalone/.next/server/app/accessconfig/health.segments/_head.segment.rsc +1 -1
  111. package/.next/standalone/.next/server/app/accessconfig/health.segments/_index.segment.rsc +3 -3
  112. package/.next/standalone/.next/server/app/accessconfig/health.segments/_tree.segment.rsc +2 -2
  113. package/.next/standalone/.next/server/app/accessconfig/install.html +2 -2
  114. package/.next/standalone/.next/server/app/accessconfig/install.rsc +5 -5
  115. package/.next/standalone/.next/server/app/accessconfig/install.segments/!KG1haW4p/accessconfig/install/__PAGE__.segment.rsc +2 -2
  116. package/.next/standalone/.next/server/app/accessconfig/install.segments/!KG1haW4p/accessconfig/install.segment.rsc +1 -1
  117. package/.next/standalone/.next/server/app/accessconfig/install.segments/!KG1haW4p/accessconfig.segment.rsc +1 -1
  118. package/.next/standalone/.next/server/app/accessconfig/install.segments/!KG1haW4p.segment.rsc +2 -2
  119. package/.next/standalone/.next/server/app/accessconfig/install.segments/_full.segment.rsc +5 -5
  120. package/.next/standalone/.next/server/app/accessconfig/install.segments/_head.segment.rsc +1 -1
  121. package/.next/standalone/.next/server/app/accessconfig/install.segments/_index.segment.rsc +3 -3
  122. package/.next/standalone/.next/server/app/accessconfig/install.segments/_tree.segment.rsc +2 -2
  123. package/.next/standalone/.next/server/app/accessconfig/webhooks.html +1 -1
  124. package/.next/standalone/.next/server/app/accessconfig/webhooks.rsc +5 -5
  125. package/.next/standalone/.next/server/app/accessconfig/webhooks.segments/!KG1haW4p/accessconfig/webhooks/__PAGE__.segment.rsc +2 -2
  126. package/.next/standalone/.next/server/app/accessconfig/webhooks.segments/!KG1haW4p/accessconfig/webhooks.segment.rsc +1 -1
  127. package/.next/standalone/.next/server/app/accessconfig/webhooks.segments/!KG1haW4p/accessconfig.segment.rsc +1 -1
  128. package/.next/standalone/.next/server/app/accessconfig/webhooks.segments/!KG1haW4p.segment.rsc +2 -2
  129. package/.next/standalone/.next/server/app/accessconfig/webhooks.segments/_full.segment.rsc +5 -5
  130. package/.next/standalone/.next/server/app/accessconfig/webhooks.segments/_head.segment.rsc +1 -1
  131. package/.next/standalone/.next/server/app/accessconfig/webhooks.segments/_index.segment.rsc +3 -3
  132. package/.next/standalone/.next/server/app/accessconfig/webhooks.segments/_tree.segment.rsc +2 -2
  133. package/.next/standalone/.next/server/app/accessconfig.html +1 -1
  134. package/.next/standalone/.next/server/app/accessconfig.rsc +4 -4
  135. package/.next/standalone/.next/server/app/accessconfig.segments/!KG1haW4p/accessconfig/__PAGE__.segment.rsc +1 -1
  136. package/.next/standalone/.next/server/app/accessconfig.segments/!KG1haW4p/accessconfig.segment.rsc +1 -1
  137. package/.next/standalone/.next/server/app/accessconfig.segments/!KG1haW4p.segment.rsc +2 -2
  138. package/.next/standalone/.next/server/app/accessconfig.segments/_full.segment.rsc +4 -4
  139. package/.next/standalone/.next/server/app/accessconfig.segments/_head.segment.rsc +1 -1
  140. package/.next/standalone/.next/server/app/accessconfig.segments/_index.segment.rsc +3 -3
  141. package/.next/standalone/.next/server/app/accessconfig.segments/_tree.segment.rsc +2 -2
  142. package/.next/standalone/.next/server/app/agents.html +1 -1
  143. package/.next/standalone/.next/server/app/agents.rsc +5 -5
  144. package/.next/standalone/.next/server/app/agents.segments/!KG1haW4p/agents/__PAGE__.segment.rsc +2 -2
  145. package/.next/standalone/.next/server/app/agents.segments/!KG1haW4p/agents.segment.rsc +1 -1
  146. package/.next/standalone/.next/server/app/agents.segments/!KG1haW4p.segment.rsc +2 -2
  147. package/.next/standalone/.next/server/app/agents.segments/_full.segment.rsc +5 -5
  148. package/.next/standalone/.next/server/app/agents.segments/_head.segment.rsc +1 -1
  149. package/.next/standalone/.next/server/app/agents.segments/_index.segment.rsc +3 -3
  150. package/.next/standalone/.next/server/app/agents.segments/_tree.segment.rsc +2 -2
  151. package/.next/standalone/.next/server/app/api/agent/run/route.js.nft.json +1 -1
  152. package/.next/standalone/.next/server/app/api/agent/stream/route.js.nft.json +1 -1
  153. package/.next/standalone/.next/server/app/api/agent-datasets/[id]/route.js.nft.json +1 -1
  154. package/.next/standalone/.next/server/app/api/agent-datasets/route.js.nft.json +1 -1
  155. package/.next/standalone/.next/server/app/api/agents/[id]/route.js.nft.json +1 -1
  156. package/.next/standalone/.next/server/app/api/agents/route.js.nft.json +1 -1
  157. package/.next/standalone/.next/server/app/api/auth/apikey/route.js.nft.json +1 -1
  158. package/.next/standalone/.next/server/app/api/auth/organization/route.js.nft.json +1 -1
  159. package/.next/standalone/.next/server/app/api/dashboard/stats/route.js.nft.json +1 -1
  160. package/.next/standalone/.next/server/app/api/debug/batch-tasks/[taskId]/route.js.nft.json +1 -1
  161. package/.next/standalone/.next/server/app/api/debug/batch-tasks/route.js.nft.json +1 -1
  162. package/.next/standalone/.next/server/app/api/debug/execute/[jobId]/route.js.nft.json +1 -1
  163. package/.next/standalone/.next/server/app/api/debug/execute/route.js.nft.json +1 -1
  164. package/.next/standalone/.next/server/app/api/debug/grayscale-tasks/[taskId]/route.js +10 -10
  165. package/.next/standalone/.next/server/app/api/debug/grayscale-tasks/[taskId]/route.js.nft.json +1 -1
  166. package/.next/standalone/.next/server/app/api/debug/grayscale-tasks/route.js.nft.json +1 -1
  167. package/.next/standalone/.next/server/app/api/debug/history/[id]/route.js.nft.json +1 -1
  168. package/.next/standalone/.next/server/app/api/debug/history/route.js.nft.json +1 -1
  169. package/.next/standalone/.next/server/app/api/eval/config/backfill-routing/route.js +6 -6
  170. package/.next/standalone/.next/server/app/api/eval/config/backfill-routing/route.js.nft.json +1 -1
  171. package/.next/standalone/.next/server/app/api/eval/config/create/route.js.nft.json +1 -1
  172. package/.next/standalone/.next/server/app/api/eval/config/reparse/route.js.nft.json +1 -1
  173. package/.next/standalone/.next/server/app/api/eval/config/route.js +6 -6
  174. package/.next/standalone/.next/server/app/api/eval/config/route.js.nft.json +1 -1
  175. package/.next/standalone/.next/server/app/api/eval/config/status/route.js.nft.json +1 -1
  176. package/.next/standalone/.next/server/app/api/eval/evaluation/route.js.nft.json +1 -1
  177. package/.next/standalone/.next/server/app/api/eval/rejudge/route.js +6 -6
  178. package/.next/standalone/.next/server/app/api/eval/rejudge/route.js.nft.json +1 -1
  179. package/.next/standalone/.next/server/app/api/eval/settings/route.js.nft.json +1 -1
  180. package/.next/standalone/.next/server/app/api/eval/settings/test/route.js.nft.json +1 -1
  181. package/.next/standalone/.next/server/app/api/eval/terminate-all/route.js.nft.json +1 -1
  182. package/.next/standalone/.next/server/app/api/eval/trajectory/results/[id]/route.js.nft.json +1 -1
  183. package/.next/standalone/.next/server/app/api/eval/trajectory/results/route.js +5 -5
  184. package/.next/standalone/.next/server/app/api/eval/trajectory/results/route.js.nft.json +1 -1
  185. package/.next/standalone/.next/server/app/api/eval/trajectory/run/route.js +13 -13
  186. package/.next/standalone/.next/server/app/api/eval/trajectory/run/route.js.nft.json +1 -1
  187. package/.next/standalone/.next/server/app/api/eval/trajectory/runs/route.js.nft.json +1 -1
  188. package/.next/standalone/.next/server/app/api/evaluation/[id]/route.js.nft.json +1 -1
  189. package/.next/standalone/.next/server/app/api/evaluation/cancel/route.js.nft.json +1 -1
  190. package/.next/standalone/.next/server/app/api/fault/diagnosis/session/route.js.nft.json +1 -1
  191. package/.next/standalone/.next/server/app/api/fault/diagnosis/stream/route.js.nft.json +1 -1
  192. package/.next/standalone/.next/server/app/api/fleet/agent/route/app-paths-manifest.json +3 -0
  193. package/.next/standalone/.next/server/app/api/fleet/agent/route/build-manifest.json +11 -0
  194. package/.next/standalone/.next/server/app/api/fleet/agent/route/server-reference-manifest.json +4 -0
  195. package/.next/standalone/.next/server/app/api/fleet/agent/route.js +8 -0
  196. package/.next/standalone/.next/server/app/api/fleet/agent/route.js.map +5 -0
  197. package/.next/standalone/.next/server/app/api/fleet/agent/route.js.nft.json +1 -0
  198. package/.next/standalone/.next/server/app/api/fleet/agent/route_client-reference-manifest.js +2 -0
  199. package/.next/standalone/.next/server/app/api/fleet/breakdowns/route.js +1 -1
  200. package/.next/standalone/.next/server/app/api/fleet/breakdowns/route.js.nft.json +1 -1
  201. package/.next/standalone/.next/server/app/api/fleet/trends/route.js +2 -2
  202. package/.next/standalone/.next/server/app/api/fleet/trends/route.js.nft.json +1 -1
  203. package/.next/standalone/.next/server/app/api/guide/route.js.nft.json +1 -1
  204. package/.next/standalone/.next/server/app/api/ingest/opencode/session-complete/route.js +3 -3
  205. package/.next/standalone/.next/server/app/api/ingest/opencode/session-complete/route.js.nft.json +1 -1
  206. package/.next/standalone/.next/server/app/api/ingest/otel/v1/logs/route.js.nft.json +1 -1
  207. package/.next/standalone/.next/server/app/api/ingest/otel/v1/metrics/route.js.nft.json +1 -1
  208. package/.next/standalone/.next/server/app/api/ingest/otel/v1/traces/route.js +5 -5
  209. package/.next/standalone/.next/server/app/api/ingest/otel/v1/traces/route.js.nft.json +1 -1
  210. package/.next/standalone/.next/server/app/api/ingest/proxy/[taskId]/[...path]/route.js.nft.json +1 -1
  211. package/.next/standalone/.next/server/app/api/ingest/proxy/[taskId]/end/route.js +9 -9
  212. package/.next/standalone/.next/server/app/api/ingest/proxy/[taskId]/end/route.js.nft.json +1 -1
  213. package/.next/standalone/.next/server/app/api/ingest/proxy/[taskId]/start/route.js.nft.json +1 -1
  214. package/.next/standalone/.next/server/app/api/ingest/sync/manifest/route.js.nft.json +1 -1
  215. package/.next/standalone/.next/server/app/api/ingest/sync/opencode/route.js.nft.json +1 -1
  216. package/.next/standalone/.next/server/app/api/ingest/upload/route.js +8 -8
  217. package/.next/standalone/.next/server/app/api/ingest/upload/route.js.nft.json +1 -1
  218. package/.next/standalone/.next/server/app/api/modelconfig/pricing/route/app-paths-manifest.json +3 -0
  219. package/.next/standalone/.next/server/app/api/modelconfig/pricing/route/build-manifest.json +11 -0
  220. package/.next/standalone/.next/server/app/api/modelconfig/pricing/route/server-reference-manifest.json +4 -0
  221. package/.next/standalone/.next/server/app/api/modelconfig/pricing/route.js +8 -0
  222. package/.next/standalone/.next/server/app/api/modelconfig/pricing/route.js.map +5 -0
  223. package/.next/standalone/.next/server/app/api/modelconfig/pricing/route.js.nft.json +1 -0
  224. package/.next/standalone/.next/server/app/api/modelconfig/pricing/route_client-reference-manifest.js +2 -0
  225. package/.next/standalone/.next/server/app/api/observe/data/route.js +3 -3
  226. package/.next/standalone/.next/server/app/api/observe/data/route.js.nft.json +1 -1
  227. package/.next/standalone/.next/server/app/api/observe/executions/[executionId]/agent-debug/route.js.nft.json +1 -1
  228. package/.next/standalone/.next/server/app/api/observe/executions/[executionId]/agent-debug/skills-analysis/route.js +13 -13
  229. package/.next/standalone/.next/server/app/api/observe/executions/[executionId]/agent-debug/skills-analysis/route.js.nft.json +1 -1
  230. package/.next/standalone/.next/server/app/api/observe/executions/[executionId]/analyze-match/route.js.nft.json +1 -1
  231. package/.next/standalone/.next/server/app/api/observe/executions/[executionId]/infra/route.js.nft.json +1 -1
  232. package/.next/standalone/.next/server/app/api/observe/executions/[executionId]/tags/route/app-paths-manifest.json +3 -0
  233. package/.next/standalone/.next/server/app/api/observe/executions/[executionId]/tags/route/build-manifest.json +11 -0
  234. package/.next/standalone/.next/server/app/api/observe/executions/[executionId]/tags/route/server-reference-manifest.json +4 -0
  235. package/.next/standalone/.next/server/app/api/observe/executions/[executionId]/tags/route.js +8 -0
  236. package/.next/standalone/.next/server/app/api/observe/executions/[executionId]/tags/route.js.map +5 -0
  237. package/.next/standalone/.next/server/app/api/observe/executions/[executionId]/tags/route.js.nft.json +1 -0
  238. package/.next/standalone/.next/server/app/api/observe/executions/[executionId]/tags/route_client-reference-manifest.js +2 -0
  239. package/.next/standalone/.next/server/app/api/observe/infra/history/route.js.nft.json +1 -1
  240. package/.next/standalone/.next/server/app/api/observe/infra/poll/route.js.nft.json +1 -1
  241. package/.next/standalone/.next/server/app/api/observe/infra/sources/derive/route.js.nft.json +1 -1
  242. package/.next/standalone/.next/server/app/api/observe/infra/sources/overview/route.js.nft.json +1 -1
  243. package/.next/standalone/.next/server/app/api/observe/infra/sources/route.js.nft.json +1 -1
  244. package/.next/standalone/.next/server/app/api/observe/infra/sources/sessions/route.js.nft.json +1 -1
  245. package/.next/standalone/.next/server/app/api/observe/infra/sources/test/route.js.nft.json +1 -1
  246. package/.next/standalone/.next/server/app/api/observe/session/route.js.nft.json +1 -1
  247. package/.next/standalone/.next/server/app/api/observe/task-stats/route.js +3 -3
  248. package/.next/standalone/.next/server/app/api/observe/task-stats/route.js.nft.json +1 -1
  249. package/.next/standalone/.next/server/app/api/observe/version-analysis/compare/route/app-paths-manifest.json +3 -0
  250. package/.next/standalone/.next/server/app/api/observe/version-analysis/compare/route/build-manifest.json +11 -0
  251. package/.next/standalone/.next/server/app/api/observe/version-analysis/compare/route/server-reference-manifest.json +4 -0
  252. package/.next/standalone/.next/server/app/api/observe/version-analysis/compare/route.js +8 -0
  253. package/.next/standalone/.next/server/app/api/observe/version-analysis/compare/route.js.map +5 -0
  254. package/.next/standalone/.next/server/app/api/observe/version-analysis/compare/route.js.nft.json +1 -0
  255. package/.next/standalone/.next/server/app/api/observe/version-analysis/compare/route_client-reference-manifest.js +2 -0
  256. package/.next/standalone/.next/server/app/api/observe/version-analysis/tags/[tagId]/traces/route/app-paths-manifest.json +3 -0
  257. package/.next/standalone/.next/server/app/api/observe/version-analysis/tags/[tagId]/traces/route/build-manifest.json +11 -0
  258. package/.next/standalone/.next/server/app/api/observe/version-analysis/tags/[tagId]/traces/route/server-reference-manifest.json +4 -0
  259. package/.next/standalone/.next/server/app/api/observe/version-analysis/tags/[tagId]/traces/route.js +8 -0
  260. package/.next/standalone/.next/server/app/api/observe/version-analysis/tags/[tagId]/traces/route.js.map +5 -0
  261. package/.next/standalone/.next/server/app/api/observe/version-analysis/tags/[tagId]/traces/route.js.nft.json +1 -0
  262. package/.next/standalone/.next/server/app/api/observe/version-analysis/tags/[tagId]/traces/route_client-reference-manifest.js +2 -0
  263. package/.next/standalone/.next/server/app/api/public/otel/v1/traces/route.js +5 -5
  264. package/.next/standalone/.next/server/app/api/public/otel/v1/traces/route.js.nft.json +1 -1
  265. package/.next/standalone/.next/server/app/api/quality/agents/route.js +7 -7
  266. package/.next/standalone/.next/server/app/api/quality/agents/route.js.nft.json +1 -1
  267. package/.next/standalone/.next/server/app/api/quality/backfill/route.js.nft.json +1 -1
  268. package/.next/standalone/.next/server/app/api/quality/executions/route.js +7 -7
  269. package/.next/standalone/.next/server/app/api/quality/executions/route.js.nft.json +1 -1
  270. package/.next/standalone/.next/server/app/api/quality/report/route.js.nft.json +1 -1
  271. package/.next/standalone/.next/server/app/api/skill-eval/trigger/[skillName]/draft/route.js.nft.json +1 -1
  272. package/.next/standalone/.next/server/app/api/skill-eval/trigger/[skillName]/route.js.nft.json +1 -1
  273. package/.next/standalone/.next/server/app/api/skill-eval/trigger/[skillName]/run/[runId]/cancel/route.js.nft.json +1 -1
  274. package/.next/standalone/.next/server/app/api/skill-eval/trigger/[skillName]/run/route.js.nft.json +1 -1
  275. package/.next/standalone/.next/server/app/api/skill-eval/trigger/[skillName]/runs/route.js.nft.json +1 -1
  276. package/.next/standalone/.next/server/app/api/skill-eval/trigger/[skillName]/upload/route.js.nft.json +1 -1
  277. package/.next/standalone/.next/server/app/api/skill-generator/attachments/route.js.nft.json +1 -1
  278. package/.next/standalone/.next/server/app/api/skill-generator/chat/route.js.nft.json +1 -1
  279. package/.next/standalone/.next/server/app/api/skill-generator/download/[sessionId]/route.js.nft.json +1 -1
  280. package/.next/standalone/.next/server/app/api/skill-generator/files/content/route.js.nft.json +1 -1
  281. package/.next/standalone/.next/server/app/api/skill-generator/files/download/route.js.nft.json +1 -1
  282. package/.next/standalone/.next/server/app/api/skill-generator/files/info/route.js.nft.json +1 -1
  283. package/.next/standalone/.next/server/app/api/skill-generator/files/list/route.js.nft.json +1 -1
  284. package/.next/standalone/.next/server/app/api/skill-generator/sessions/[id]/route.js.nft.json +1 -1
  285. package/.next/standalone/.next/server/app/api/skill-generator/sessions/route.js.nft.json +1 -1
  286. package/.next/standalone/.next/server/app/api/skill-opt/chat/route.js.nft.json +1 -1
  287. package/.next/standalone/.next/server/app/api/skill-opt/plan/items/[id]/route.js.nft.json +1 -1
  288. package/.next/standalone/.next/server/app/api/skill-opt/plan/route.js.nft.json +1 -1
  289. package/.next/standalone/.next/server/app/api/skill-opt/sessions/[id]/iterations/[draftNumber]/apply/route.js.nft.json +1 -1
  290. package/.next/standalone/.next/server/app/api/skill-opt/sessions/[id]/iterations/route.js.nft.json +1 -1
  291. package/.next/standalone/.next/server/app/api/skill-opt/sessions/[id]/route.js.nft.json +1 -1
  292. package/.next/standalone/.next/server/app/api/skill-opt/sessions/route.js.nft.json +1 -1
  293. package/.next/standalone/.next/server/app/api/skills/[id]/activate/route.js.nft.json +1 -1
  294. package/.next/standalone/.next/server/app/api/skills/[id]/benchmark-generate/route.js +7 -7
  295. package/.next/standalone/.next/server/app/api/skills/[id]/benchmark-generate/route.js.nft.json +1 -1
  296. package/.next/standalone/.next/server/app/api/skills/[id]/runs/route.js +2 -2
  297. package/.next/standalone/.next/server/app/api/skills/[id]/runs/route.js.nft.json +1 -1
  298. package/.next/standalone/.next/server/app/api/skills/[id]/toggle/route.js.nft.json +1 -1
  299. package/.next/standalone/.next/server/app/api/skills/[id]/versions/[version]/download/route.js.nft.json +1 -1
  300. package/.next/standalone/.next/server/app/api/skills/[id]/versions/[version]/evaluate/route.js.nft.json +1 -1
  301. package/.next/standalone/.next/server/app/api/skills/[id]/versions/[version]/evaluation-summary/route.js.nft.json +1 -1
  302. package/.next/standalone/.next/server/app/api/skills/[id]/versions/[version]/files/[...path]/route.js.nft.json +1 -1
  303. package/.next/standalone/.next/server/app/api/skills/[id]/versions/[version]/parse-flow/route.js.nft.json +1 -1
  304. package/.next/standalone/.next/server/app/api/skills/[id]/versions/[version]/route.js.nft.json +1 -1
  305. package/.next/standalone/.next/server/app/api/skills/[id]/versions/route.js.nft.json +1 -1
  306. package/.next/standalone/.next/server/app/api/skills/automation/import/route.js.nft.json +1 -1
  307. package/.next/standalone/.next/server/app/api/skills/automation/push/route.js.nft.json +1 -1
  308. package/.next/standalone/.next/server/app/api/skills/by-name/[name]/analysis-diagnosis/route.js.nft.json +1 -1
  309. package/.next/standalone/.next/server/app/api/skills/by-name/[name]/optimization-points/resolve/route.js.nft.json +1 -1
  310. package/.next/standalone/.next/server/app/api/skills/by-name/[name]/optimization-points/route.js.nft.json +1 -1
  311. package/.next/standalone/.next/server/app/api/skills/by-name/route.js.nft.json +1 -1
  312. package/.next/standalone/.next/server/app/api/skills/logs/route.js +6 -6
  313. package/.next/standalone/.next/server/app/api/skills/logs/route.js.nft.json +1 -1
  314. package/.next/standalone/.next/server/app/api/skills/publish/route.js.nft.json +1 -1
  315. package/.next/standalone/.next/server/app/api/skills/route.js.nft.json +1 -1
  316. package/.next/standalone/.next/server/app/api/skills/sync-enterprise/route.js.nft.json +1 -1
  317. package/.next/standalone/.next/server/app/api/skills/upload/route.js.nft.json +1 -1
  318. package/.next/standalone/.next/server/app/api/tags/[id]/route/app-paths-manifest.json +3 -0
  319. package/.next/standalone/.next/server/app/api/tags/[id]/route/build-manifest.json +11 -0
  320. package/.next/standalone/.next/server/app/api/tags/[id]/route/server-reference-manifest.json +4 -0
  321. package/.next/standalone/.next/server/app/api/tags/[id]/route.js +8 -0
  322. package/.next/standalone/.next/server/app/api/tags/[id]/route.js.map +5 -0
  323. package/.next/standalone/.next/server/app/api/tags/[id]/route.js.nft.json +1 -0
  324. package/.next/standalone/.next/server/app/api/tags/[id]/route_client-reference-manifest.js +2 -0
  325. package/.next/standalone/.next/server/app/api/tags/route/app-paths-manifest.json +3 -0
  326. package/.next/standalone/.next/server/app/api/tags/route/build-manifest.json +11 -0
  327. package/.next/standalone/.next/server/app/api/tags/route/server-reference-manifest.json +4 -0
  328. package/.next/standalone/.next/server/app/api/tags/route.js +8 -0
  329. package/.next/standalone/.next/server/app/api/tags/route.js.map +5 -0
  330. package/.next/standalone/.next/server/app/api/tags/route.js.nft.json +1 -0
  331. package/.next/standalone/.next/server/app/api/tags/route_client-reference-manifest.js +2 -0
  332. package/.next/standalone/.next/server/app/api/user-evaluators/route.js.nft.json +1 -1
  333. package/.next/standalone/.next/server/app/dashboard.html +1 -1
  334. package/.next/standalone/.next/server/app/dashboard.rsc +5 -5
  335. package/.next/standalone/.next/server/app/dashboard.segments/!KG1haW4p/dashboard/__PAGE__.segment.rsc +2 -2
  336. package/.next/standalone/.next/server/app/dashboard.segments/!KG1haW4p/dashboard.segment.rsc +1 -1
  337. package/.next/standalone/.next/server/app/dashboard.segments/!KG1haW4p.segment.rsc +2 -2
  338. package/.next/standalone/.next/server/app/dashboard.segments/_full.segment.rsc +5 -5
  339. package/.next/standalone/.next/server/app/dashboard.segments/_head.segment.rsc +1 -1
  340. package/.next/standalone/.next/server/app/dashboard.segments/_index.segment.rsc +3 -3
  341. package/.next/standalone/.next/server/app/dashboard.segments/_tree.segment.rsc +2 -2
  342. package/.next/standalone/.next/server/app/dataset.html +1 -1
  343. package/.next/standalone/.next/server/app/dataset.rsc +5 -5
  344. package/.next/standalone/.next/server/app/dataset.segments/!KG1haW4p/dataset/__PAGE__.segment.rsc +2 -2
  345. package/.next/standalone/.next/server/app/dataset.segments/!KG1haW4p/dataset.segment.rsc +1 -1
  346. package/.next/standalone/.next/server/app/dataset.segments/!KG1haW4p.segment.rsc +2 -2
  347. package/.next/standalone/.next/server/app/dataset.segments/_full.segment.rsc +5 -5
  348. package/.next/standalone/.next/server/app/dataset.segments/_head.segment.rsc +1 -1
  349. package/.next/standalone/.next/server/app/dataset.segments/_index.segment.rsc +3 -3
  350. package/.next/standalone/.next/server/app/dataset.segments/_tree.segment.rsc +2 -2
  351. package/.next/standalone/.next/server/app/eval/trajectory.html +1 -1
  352. package/.next/standalone/.next/server/app/eval/trajectory.rsc +5 -5
  353. package/.next/standalone/.next/server/app/eval/trajectory.segments/!KG1haW4p/eval/trajectory/__PAGE__.segment.rsc +2 -2
  354. package/.next/standalone/.next/server/app/eval/trajectory.segments/!KG1haW4p/eval/trajectory.segment.rsc +1 -1
  355. package/.next/standalone/.next/server/app/eval/trajectory.segments/!KG1haW4p/eval.segment.rsc +1 -1
  356. package/.next/standalone/.next/server/app/eval/trajectory.segments/!KG1haW4p.segment.rsc +2 -2
  357. package/.next/standalone/.next/server/app/eval/trajectory.segments/_full.segment.rsc +5 -5
  358. package/.next/standalone/.next/server/app/eval/trajectory.segments/_head.segment.rsc +1 -1
  359. package/.next/standalone/.next/server/app/eval/trajectory.segments/_index.segment.rsc +3 -3
  360. package/.next/standalone/.next/server/app/eval/trajectory.segments/_tree.segment.rsc +2 -2
  361. package/.next/standalone/.next/server/app/eval.html +1 -1
  362. package/.next/standalone/.next/server/app/eval.rsc +5 -5
  363. package/.next/standalone/.next/server/app/eval.segments/!KG1haW4p/eval/__PAGE__.segment.rsc +2 -2
  364. package/.next/standalone/.next/server/app/eval.segments/!KG1haW4p/eval.segment.rsc +1 -1
  365. package/.next/standalone/.next/server/app/eval.segments/!KG1haW4p.segment.rsc +2 -2
  366. package/.next/standalone/.next/server/app/eval.segments/_full.segment.rsc +5 -5
  367. package/.next/standalone/.next/server/app/eval.segments/_head.segment.rsc +1 -1
  368. package/.next/standalone/.next/server/app/eval.segments/_index.segment.rsc +3 -3
  369. package/.next/standalone/.next/server/app/eval.segments/_tree.segment.rsc +2 -2
  370. package/.next/standalone/.next/server/app/fault.html +1 -1
  371. package/.next/standalone/.next/server/app/fault.rsc +5 -5
  372. package/.next/standalone/.next/server/app/fault.segments/!KG1haW4p/fault/__PAGE__.segment.rsc +2 -2
  373. package/.next/standalone/.next/server/app/fault.segments/!KG1haW4p/fault.segment.rsc +1 -1
  374. package/.next/standalone/.next/server/app/fault.segments/!KG1haW4p.segment.rsc +2 -2
  375. package/.next/standalone/.next/server/app/fault.segments/_full.segment.rsc +5 -5
  376. package/.next/standalone/.next/server/app/fault.segments/_head.segment.rsc +1 -1
  377. package/.next/standalone/.next/server/app/fault.segments/_index.segment.rsc +3 -3
  378. package/.next/standalone/.next/server/app/fault.segments/_tree.segment.rsc +2 -2
  379. package/.next/standalone/.next/server/app/index.html +1 -1
  380. package/.next/standalone/.next/server/app/index.rsc +3 -3
  381. package/.next/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  382. package/.next/standalone/.next/server/app/index.segments/_full.segment.rsc +3 -3
  383. package/.next/standalone/.next/server/app/index.segments/_head.segment.rsc +1 -1
  384. package/.next/standalone/.next/server/app/index.segments/_index.segment.rsc +3 -3
  385. package/.next/standalone/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  386. package/.next/standalone/.next/server/app/infra/sources.html +1 -1
  387. package/.next/standalone/.next/server/app/infra/sources.rsc +5 -5
  388. package/.next/standalone/.next/server/app/infra/sources.segments/!KG1haW4p/infra/sources/__PAGE__.segment.rsc +2 -2
  389. package/.next/standalone/.next/server/app/infra/sources.segments/!KG1haW4p/infra/sources.segment.rsc +1 -1
  390. package/.next/standalone/.next/server/app/infra/sources.segments/!KG1haW4p/infra.segment.rsc +1 -1
  391. package/.next/standalone/.next/server/app/infra/sources.segments/!KG1haW4p.segment.rsc +2 -2
  392. package/.next/standalone/.next/server/app/infra/sources.segments/_full.segment.rsc +5 -5
  393. package/.next/standalone/.next/server/app/infra/sources.segments/_head.segment.rsc +1 -1
  394. package/.next/standalone/.next/server/app/infra/sources.segments/_index.segment.rsc +3 -3
  395. package/.next/standalone/.next/server/app/infra/sources.segments/_tree.segment.rsc +2 -2
  396. package/.next/standalone/.next/server/app/infra.html +1 -1
  397. package/.next/standalone/.next/server/app/infra.rsc +5 -5
  398. package/.next/standalone/.next/server/app/infra.segments/!KG1haW4p/infra/__PAGE__.segment.rsc +2 -2
  399. package/.next/standalone/.next/server/app/infra.segments/!KG1haW4p/infra.segment.rsc +1 -1
  400. package/.next/standalone/.next/server/app/infra.segments/!KG1haW4p.segment.rsc +2 -2
  401. package/.next/standalone/.next/server/app/infra.segments/_full.segment.rsc +5 -5
  402. package/.next/standalone/.next/server/app/infra.segments/_head.segment.rsc +1 -1
  403. package/.next/standalone/.next/server/app/infra.segments/_index.segment.rsc +3 -3
  404. package/.next/standalone/.next/server/app/infra.segments/_tree.segment.rsc +2 -2
  405. package/.next/standalone/.next/server/app/login/page_client-reference-manifest.js +1 -1
  406. package/.next/standalone/.next/server/app/login.html +1 -1
  407. package/.next/standalone/.next/server/app/login.rsc +4 -4
  408. package/.next/standalone/.next/server/app/login.segments/_full.segment.rsc +4 -4
  409. package/.next/standalone/.next/server/app/login.segments/_head.segment.rsc +1 -1
  410. package/.next/standalone/.next/server/app/login.segments/_index.segment.rsc +3 -3
  411. package/.next/standalone/.next/server/app/login.segments/_tree.segment.rsc +2 -2
  412. package/.next/standalone/.next/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
  413. package/.next/standalone/.next/server/app/login.segments/login.segment.rsc +1 -1
  414. package/.next/standalone/.next/server/app/memory.html +1 -1
  415. package/.next/standalone/.next/server/app/memory.rsc +5 -5
  416. package/.next/standalone/.next/server/app/memory.segments/!KG1haW4p/memory/__PAGE__.segment.rsc +2 -2
  417. package/.next/standalone/.next/server/app/memory.segments/!KG1haW4p/memory.segment.rsc +1 -1
  418. package/.next/standalone/.next/server/app/memory.segments/!KG1haW4p.segment.rsc +2 -2
  419. package/.next/standalone/.next/server/app/memory.segments/_full.segment.rsc +5 -5
  420. package/.next/standalone/.next/server/app/memory.segments/_head.segment.rsc +1 -1
  421. package/.next/standalone/.next/server/app/memory.segments/_index.segment.rsc +3 -3
  422. package/.next/standalone/.next/server/app/memory.segments/_tree.segment.rsc +2 -2
  423. package/.next/standalone/.next/server/app/metrics.html +1 -1
  424. package/.next/standalone/.next/server/app/metrics.rsc +5 -5
  425. package/.next/standalone/.next/server/app/metrics.segments/!KG1haW4p/metrics/__PAGE__.segment.rsc +2 -2
  426. package/.next/standalone/.next/server/app/metrics.segments/!KG1haW4p/metrics.segment.rsc +1 -1
  427. package/.next/standalone/.next/server/app/metrics.segments/!KG1haW4p.segment.rsc +2 -2
  428. package/.next/standalone/.next/server/app/metrics.segments/_full.segment.rsc +5 -5
  429. package/.next/standalone/.next/server/app/metrics.segments/_head.segment.rsc +1 -1
  430. package/.next/standalone/.next/server/app/metrics.segments/_index.segment.rsc +3 -3
  431. package/.next/standalone/.next/server/app/metrics.segments/_tree.segment.rsc +2 -2
  432. package/.next/standalone/.next/server/app/modelconfig/registry.html +1 -1
  433. package/.next/standalone/.next/server/app/modelconfig/registry.rsc +5 -5
  434. package/.next/standalone/.next/server/app/modelconfig/registry.segments/!KG1haW4p/modelconfig/registry/__PAGE__.segment.rsc +2 -2
  435. package/.next/standalone/.next/server/app/modelconfig/registry.segments/!KG1haW4p/modelconfig/registry.segment.rsc +1 -1
  436. package/.next/standalone/.next/server/app/modelconfig/registry.segments/!KG1haW4p/modelconfig.segment.rsc +1 -1
  437. package/.next/standalone/.next/server/app/modelconfig/registry.segments/!KG1haW4p.segment.rsc +2 -2
  438. package/.next/standalone/.next/server/app/modelconfig/registry.segments/_full.segment.rsc +5 -5
  439. package/.next/standalone/.next/server/app/modelconfig/registry.segments/_head.segment.rsc +1 -1
  440. package/.next/standalone/.next/server/app/modelconfig/registry.segments/_index.segment.rsc +3 -3
  441. package/.next/standalone/.next/server/app/modelconfig/registry.segments/_tree.segment.rsc +2 -2
  442. package/.next/standalone/.next/server/app/modelconfig/web-search.html +1 -1
  443. package/.next/standalone/.next/server/app/modelconfig/web-search.rsc +5 -5
  444. package/.next/standalone/.next/server/app/modelconfig/web-search.segments/!KG1haW4p/modelconfig/web-search/__PAGE__.segment.rsc +2 -2
  445. package/.next/standalone/.next/server/app/modelconfig/web-search.segments/!KG1haW4p/modelconfig/web-search.segment.rsc +1 -1
  446. package/.next/standalone/.next/server/app/modelconfig/web-search.segments/!KG1haW4p/modelconfig.segment.rsc +1 -1
  447. package/.next/standalone/.next/server/app/modelconfig/web-search.segments/!KG1haW4p.segment.rsc +2 -2
  448. package/.next/standalone/.next/server/app/modelconfig/web-search.segments/_full.segment.rsc +5 -5
  449. package/.next/standalone/.next/server/app/modelconfig/web-search.segments/_head.segment.rsc +1 -1
  450. package/.next/standalone/.next/server/app/modelconfig/web-search.segments/_index.segment.rsc +3 -3
  451. package/.next/standalone/.next/server/app/modelconfig/web-search.segments/_tree.segment.rsc +2 -2
  452. package/.next/standalone/.next/server/app/modelconfig.html +1 -1
  453. package/.next/standalone/.next/server/app/modelconfig.rsc +4 -4
  454. package/.next/standalone/.next/server/app/modelconfig.segments/!KG1haW4p/modelconfig/__PAGE__.segment.rsc +1 -1
  455. package/.next/standalone/.next/server/app/modelconfig.segments/!KG1haW4p/modelconfig.segment.rsc +1 -1
  456. package/.next/standalone/.next/server/app/modelconfig.segments/!KG1haW4p.segment.rsc +2 -2
  457. package/.next/standalone/.next/server/app/modelconfig.segments/_full.segment.rsc +4 -4
  458. package/.next/standalone/.next/server/app/modelconfig.segments/_head.segment.rsc +1 -1
  459. package/.next/standalone/.next/server/app/modelconfig.segments/_index.segment.rsc +3 -3
  460. package/.next/standalone/.next/server/app/modelconfig.segments/_tree.segment.rsc +2 -2
  461. package/.next/standalone/.next/server/app/optapi.html +1 -1
  462. package/.next/standalone/.next/server/app/optapi.rsc +5 -5
  463. package/.next/standalone/.next/server/app/optapi.segments/!KG1haW4p/optapi/__PAGE__.segment.rsc +2 -2
  464. package/.next/standalone/.next/server/app/optapi.segments/!KG1haW4p/optapi.segment.rsc +1 -1
  465. package/.next/standalone/.next/server/app/optapi.segments/!KG1haW4p.segment.rsc +2 -2
  466. package/.next/standalone/.next/server/app/optapi.segments/_full.segment.rsc +5 -5
  467. package/.next/standalone/.next/server/app/optapi.segments/_head.segment.rsc +1 -1
  468. package/.next/standalone/.next/server/app/optapi.segments/_index.segment.rsc +3 -3
  469. package/.next/standalone/.next/server/app/optapi.segments/_tree.segment.rsc +2 -2
  470. package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  471. package/.next/standalone/.next/server/app/quality.html +1 -1
  472. package/.next/standalone/.next/server/app/quality.rsc +5 -5
  473. package/.next/standalone/.next/server/app/quality.segments/!KG1haW4p/quality/__PAGE__.segment.rsc +2 -2
  474. package/.next/standalone/.next/server/app/quality.segments/!KG1haW4p/quality.segment.rsc +1 -1
  475. package/.next/standalone/.next/server/app/quality.segments/!KG1haW4p.segment.rsc +2 -2
  476. package/.next/standalone/.next/server/app/quality.segments/_full.segment.rsc +5 -5
  477. package/.next/standalone/.next/server/app/quality.segments/_head.segment.rsc +1 -1
  478. package/.next/standalone/.next/server/app/quality.segments/_index.segment.rsc +3 -3
  479. package/.next/standalone/.next/server/app/quality.segments/_tree.segment.rsc +2 -2
  480. package/.next/standalone/.next/server/app/security.html +1 -1
  481. package/.next/standalone/.next/server/app/security.rsc +5 -5
  482. package/.next/standalone/.next/server/app/security.segments/!KG1haW4p/security/__PAGE__.segment.rsc +2 -2
  483. package/.next/standalone/.next/server/app/security.segments/!KG1haW4p/security.segment.rsc +1 -1
  484. package/.next/standalone/.next/server/app/security.segments/!KG1haW4p.segment.rsc +2 -2
  485. package/.next/standalone/.next/server/app/security.segments/_full.segment.rsc +5 -5
  486. package/.next/standalone/.next/server/app/security.segments/_head.segment.rsc +1 -1
  487. package/.next/standalone/.next/server/app/security.segments/_index.segment.rsc +3 -3
  488. package/.next/standalone/.next/server/app/security.segments/_tree.segment.rsc +2 -2
  489. package/.next/standalone/.next/server/app/skill-detail/page_client-reference-manifest.js +1 -1
  490. package/.next/standalone/.next/server/app/skill-detail.html +1 -1
  491. package/.next/standalone/.next/server/app/skill-detail.rsc +4 -4
  492. package/.next/standalone/.next/server/app/skill-detail.segments/_full.segment.rsc +4 -4
  493. package/.next/standalone/.next/server/app/skill-detail.segments/_head.segment.rsc +1 -1
  494. package/.next/standalone/.next/server/app/skill-detail.segments/_index.segment.rsc +3 -3
  495. package/.next/standalone/.next/server/app/skill-detail.segments/_tree.segment.rsc +2 -2
  496. package/.next/standalone/.next/server/app/skill-detail.segments/skill-detail/__PAGE__.segment.rsc +2 -2
  497. package/.next/standalone/.next/server/app/skill-detail.segments/skill-detail.segment.rsc +1 -1
  498. package/.next/standalone/.next/server/app/skill-eval/grayscale.html +2 -2
  499. package/.next/standalone/.next/server/app/skill-eval/grayscale.rsc +6 -6
  500. package/.next/standalone/.next/server/app/skill-eval/grayscale.segments/!KG1haW4p/skill-eval/grayscale/__PAGE__.segment.rsc +2 -2
  501. package/.next/standalone/.next/server/app/skill-eval/grayscale.segments/!KG1haW4p/skill-eval/grayscale.segment.rsc +1 -1
  502. package/.next/standalone/.next/server/app/skill-eval/grayscale.segments/!KG1haW4p/skill-eval.segment.rsc +1 -1
  503. package/.next/standalone/.next/server/app/skill-eval/grayscale.segments/!KG1haW4p.segment.rsc +2 -2
  504. package/.next/standalone/.next/server/app/skill-eval/grayscale.segments/_full.segment.rsc +6 -6
  505. package/.next/standalone/.next/server/app/skill-eval/grayscale.segments/_head.segment.rsc +1 -1
  506. package/.next/standalone/.next/server/app/skill-eval/grayscale.segments/_index.segment.rsc +3 -3
  507. package/.next/standalone/.next/server/app/skill-eval/grayscale.segments/_tree.segment.rsc +2 -2
  508. package/.next/standalone/.next/server/app/skill-eval.html +1 -1
  509. package/.next/standalone/.next/server/app/skill-eval.rsc +6 -6
  510. package/.next/standalone/.next/server/app/skill-eval.segments/!KG1haW4p/skill-eval/__PAGE__.segment.rsc +2 -2
  511. package/.next/standalone/.next/server/app/skill-eval.segments/!KG1haW4p/skill-eval.segment.rsc +1 -1
  512. package/.next/standalone/.next/server/app/skill-eval.segments/!KG1haW4p.segment.rsc +2 -2
  513. package/.next/standalone/.next/server/app/skill-eval.segments/_full.segment.rsc +6 -6
  514. package/.next/standalone/.next/server/app/skill-eval.segments/_head.segment.rsc +1 -1
  515. package/.next/standalone/.next/server/app/skill-eval.segments/_index.segment.rsc +3 -3
  516. package/.next/standalone/.next/server/app/skill-eval.segments/_tree.segment.rsc +2 -2
  517. package/.next/standalone/.next/server/app/skill-generator.html +1 -1
  518. package/.next/standalone/.next/server/app/skill-generator.rsc +5 -5
  519. package/.next/standalone/.next/server/app/skill-generator.segments/!KG1haW4p/skill-generator/__PAGE__.segment.rsc +2 -2
  520. package/.next/standalone/.next/server/app/skill-generator.segments/!KG1haW4p/skill-generator.segment.rsc +1 -1
  521. package/.next/standalone/.next/server/app/skill-generator.segments/!KG1haW4p.segment.rsc +2 -2
  522. package/.next/standalone/.next/server/app/skill-generator.segments/_full.segment.rsc +5 -5
  523. package/.next/standalone/.next/server/app/skill-generator.segments/_head.segment.rsc +1 -1
  524. package/.next/standalone/.next/server/app/skill-generator.segments/_index.segment.rsc +3 -3
  525. package/.next/standalone/.next/server/app/skill-generator.segments/_tree.segment.rsc +2 -2
  526. package/.next/standalone/.next/server/app/skill-history.html +1 -1
  527. package/.next/standalone/.next/server/app/skill-history.rsc +6 -6
  528. package/.next/standalone/.next/server/app/skill-history.segments/!KG1haW4p/skill-history/__PAGE__.segment.rsc +2 -2
  529. package/.next/standalone/.next/server/app/skill-history.segments/!KG1haW4p/skill-history.segment.rsc +1 -1
  530. package/.next/standalone/.next/server/app/skill-history.segments/!KG1haW4p.segment.rsc +2 -2
  531. package/.next/standalone/.next/server/app/skill-history.segments/_full.segment.rsc +6 -6
  532. package/.next/standalone/.next/server/app/skill-history.segments/_head.segment.rsc +1 -1
  533. package/.next/standalone/.next/server/app/skill-history.segments/_index.segment.rsc +3 -3
  534. package/.next/standalone/.next/server/app/skill-history.segments/_tree.segment.rsc +2 -2
  535. package/.next/standalone/.next/server/app/skill-opt.html +1 -1
  536. package/.next/standalone/.next/server/app/skill-opt.rsc +5 -5
  537. package/.next/standalone/.next/server/app/skill-opt.segments/!KG1haW4p/skill-opt/__PAGE__.segment.rsc +2 -2
  538. package/.next/standalone/.next/server/app/skill-opt.segments/!KG1haW4p/skill-opt.segment.rsc +1 -1
  539. package/.next/standalone/.next/server/app/skill-opt.segments/!KG1haW4p.segment.rsc +2 -2
  540. package/.next/standalone/.next/server/app/skill-opt.segments/_full.segment.rsc +5 -5
  541. package/.next/standalone/.next/server/app/skill-opt.segments/_head.segment.rsc +1 -1
  542. package/.next/standalone/.next/server/app/skill-opt.segments/_index.segment.rsc +3 -3
  543. package/.next/standalone/.next/server/app/skill-opt.segments/_tree.segment.rsc +2 -2
  544. package/.next/standalone/.next/server/app/skill-release.html +1 -1
  545. package/.next/standalone/.next/server/app/skill-release.rsc +5 -5
  546. package/.next/standalone/.next/server/app/skill-release.segments/!KG1haW4p/skill-release/__PAGE__.segment.rsc +2 -2
  547. package/.next/standalone/.next/server/app/skill-release.segments/!KG1haW4p/skill-release.segment.rsc +1 -1
  548. package/.next/standalone/.next/server/app/skill-release.segments/!KG1haW4p.segment.rsc +2 -2
  549. package/.next/standalone/.next/server/app/skill-release.segments/_full.segment.rsc +5 -5
  550. package/.next/standalone/.next/server/app/skill-release.segments/_head.segment.rsc +1 -1
  551. package/.next/standalone/.next/server/app/skill-release.segments/_index.segment.rsc +3 -3
  552. package/.next/standalone/.next/server/app/skill-release.segments/_tree.segment.rsc +2 -2
  553. package/.next/standalone/.next/server/app/skills.html +1 -1
  554. package/.next/standalone/.next/server/app/skills.rsc +5 -5
  555. package/.next/standalone/.next/server/app/skills.segments/!KG1haW4p/skills/__PAGE__.segment.rsc +2 -2
  556. package/.next/standalone/.next/server/app/skills.segments/!KG1haW4p/skills.segment.rsc +1 -1
  557. package/.next/standalone/.next/server/app/skills.segments/!KG1haW4p.segment.rsc +2 -2
  558. package/.next/standalone/.next/server/app/skills.segments/_full.segment.rsc +5 -5
  559. package/.next/standalone/.next/server/app/skills.segments/_head.segment.rsc +1 -1
  560. package/.next/standalone/.next/server/app/skills.segments/_index.segment.rsc +3 -3
  561. package/.next/standalone/.next/server/app/skills.segments/_tree.segment.rsc +2 -2
  562. package/.next/standalone/.next/server/app/trace.html +1 -1
  563. package/.next/standalone/.next/server/app/trace.rsc +7 -7
  564. package/.next/standalone/.next/server/app/trace.segments/!KG1haW4p/trace/__PAGE__.segment.rsc +2 -2
  565. package/.next/standalone/.next/server/app/trace.segments/!KG1haW4p/trace.segment.rsc +1 -1
  566. package/.next/standalone/.next/server/app/trace.segments/!KG1haW4p.segment.rsc +2 -2
  567. package/.next/standalone/.next/server/app/trace.segments/_full.segment.rsc +7 -7
  568. package/.next/standalone/.next/server/app/trace.segments/_head.segment.rsc +1 -1
  569. package/.next/standalone/.next/server/app/trace.segments/_index.segment.rsc +3 -3
  570. package/.next/standalone/.next/server/app/trace.segments/_tree.segment.rsc +2 -2
  571. package/.next/standalone/.next/server/app/version-analysis.html +1 -0
  572. package/.next/standalone/.next/server/app/version-analysis.meta +16 -0
  573. package/.next/standalone/.next/server/app/version-analysis.rsc +23 -0
  574. package/.next/standalone/.next/server/app/version-analysis.segments/!KG1haW4p/version-analysis/__PAGE__.segment.rsc +9 -0
  575. package/.next/standalone/.next/server/app/version-analysis.segments/!KG1haW4p/version-analysis.segment.rsc +4 -0
  576. package/.next/standalone/.next/server/app/version-analysis.segments/!KG1haW4p.segment.rsc +7 -0
  577. package/.next/standalone/.next/server/app/version-analysis.segments/_full.segment.rsc +23 -0
  578. package/.next/standalone/.next/server/app/version-analysis.segments/_head.segment.rsc +6 -0
  579. package/.next/standalone/.next/server/app/version-analysis.segments/_index.segment.rsc +6 -0
  580. package/.next/standalone/.next/server/app/version-analysis.segments/_tree.segment.rsc +2 -0
  581. package/.next/standalone/.next/server/app/version-management.html +1 -0
  582. package/.next/standalone/.next/server/app/version-management.meta +16 -0
  583. package/.next/standalone/.next/server/app/version-management.rsc +22 -0
  584. package/.next/standalone/.next/server/app/version-management.segments/!KG1haW4p/version-management/__PAGE__.segment.rsc +9 -0
  585. package/.next/standalone/.next/server/app/version-management.segments/!KG1haW4p/version-management.segment.rsc +4 -0
  586. package/.next/standalone/.next/server/app/version-management.segments/!KG1haW4p.segment.rsc +7 -0
  587. package/.next/standalone/.next/server/app/version-management.segments/_full.segment.rsc +22 -0
  588. package/.next/standalone/.next/server/app/version-management.segments/_head.segment.rsc +6 -0
  589. package/.next/standalone/.next/server/app/version-management.segments/_index.segment.rsc +6 -0
  590. package/.next/standalone/.next/server/app/version-management.segments/_tree.segment.rsc +2 -0
  591. package/.next/standalone/.next/server/app-paths-manifest.json +9 -0
  592. package/.next/standalone/.next/server/chunks/[root-of-the-server]__096d00c3._.js +3 -0
  593. package/.next/standalone/.next/server/chunks/[root-of-the-server]__28078c4e._.js +1 -1
  594. package/.next/standalone/.next/server/chunks/[root-of-the-server]__4509f30c._.js +1 -1
  595. package/.next/standalone/.next/server/chunks/[root-of-the-server]__51f686fd._.js +22 -0
  596. package/.next/standalone/.next/server/chunks/[root-of-the-server]__5386e9b4._.js +22 -0
  597. package/.next/standalone/.next/server/chunks/[root-of-the-server]__5cb21a03._.js +3 -0
  598. package/.next/standalone/.next/server/chunks/[root-of-the-server]__6fe0c73e._.js +1 -1
  599. package/.next/standalone/.next/server/chunks/[root-of-the-server]__88e070f0._.js +1 -1
  600. package/.next/standalone/.next/server/chunks/[root-of-the-server]__8b872712._.js +22 -0
  601. package/.next/standalone/.next/server/chunks/[root-of-the-server]__98ce63c7._.js +1 -1
  602. package/.next/standalone/.next/server/chunks/[root-of-the-server]__9f6a4627._.js +1 -1
  603. package/.next/standalone/.next/server/chunks/[root-of-the-server]__c875b500._.js +3 -0
  604. package/.next/standalone/.next/server/chunks/[root-of-the-server]__c8b9af98._.js +1 -1
  605. package/.next/standalone/.next/server/chunks/[root-of-the-server]__cfcf074d._.js +3 -0
  606. package/.next/standalone/.next/server/chunks/[root-of-the-server]__d754b2c2._.js +3 -0
  607. package/.next/standalone/.next/server/chunks/[root-of-the-server]__e60b9568._.js +22 -0
  608. package/.next/standalone/.next/server/chunks/[root-of-the-server]__e8b9c639._.js +22 -0
  609. package/.next/standalone/.next/server/chunks/[root-of-the-server]__f30eea21._.js +3 -0
  610. package/.next/standalone/.next/server/chunks/_05c80664._.js +1 -1
  611. package/.next/standalone/.next/server/chunks/_1c2f3589._.js +1 -1
  612. package/.next/standalone/.next/server/chunks/{_1a32fa23._.js → _5090183e._.js} +2 -2
  613. package/.next/standalone/.next/server/chunks/{_e84c3e5f._.js → _6a203624._.js} +1 -1
  614. package/.next/standalone/.next/server/chunks/{_a0074544._.js → _70b9b972._.js} +1 -1
  615. package/.next/standalone/.next/server/chunks/_78c6471e._.js +1 -1
  616. package/.next/standalone/.next/server/chunks/{_547fcde4._.js → _d02fac80._.js} +2 -2
  617. package/.next/standalone/.next/server/chunks/_d043f698._.js +1 -1
  618. package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_fleet_agent_route_actions_b98e2c99.js +3 -0
  619. package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_modelconfig_pricing_route_actions_bca6856d.js +3 -0
  620. package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_tags_[id]_route_actions_a6f8b324.js +3 -0
  621. package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_tags_route_actions_caf13f5f.js +3 -0
  622. package/.next/standalone/.next/server/chunks/bec2d_app_api_observe_version-analysis_tags_[tagId]_traces_route_actions_ff37f2d3.js +3 -0
  623. package/.next/standalone/.next/server/chunks/ce889_server_app_api_observe_executions_[executionId]_tags_route_actions_08aa41a4.js +3 -0
  624. package/.next/standalone/.next/server/chunks/ce889_server_app_api_observe_version-analysis_compare_route_actions_b48ab573.js +3 -0
  625. package/.next/standalone/.next/server/chunks/src_lib_266d6cf4._.js +51 -0
  626. package/.next/standalone/.next/server/chunks/src_lib_5d95b500._.js +3 -0
  627. package/.next/standalone/.next/server/chunks/src_lib_67530201._.js +51 -0
  628. package/.next/standalone/.next/server/chunks/src_lib_9513f84d._.js +48 -0
  629. package/.next/standalone/.next/server/chunks/src_lib_9d09752c._.js +1 -1
  630. package/.next/standalone/.next/server/chunks/src_lib_a03a423b._.js +48 -0
  631. package/.next/standalone/.next/server/chunks/src_lib_a2a34aa6._.js +1 -1
  632. package/.next/standalone/.next/server/chunks/{src_lib_4751db31._.js → src_lib_dc72b90b._.js} +1 -1
  633. package/.next/standalone/.next/server/chunks/src_lib_ea85a447._.js +1 -1
  634. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0eb5d21d._.js +3 -0
  635. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__143c2f65._.js +3 -0
  636. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__85e7edfe._.js +3 -0
  637. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__c9cf8076._.js → [root-of-the-server]__90686664._.js} +2 -2
  638. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__96628a39._.js +3 -0
  639. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__c69baa4a._.js +3 -0
  640. package/.next/standalone/.next/server/chunks/ssr/_051b1443._.js +3 -0
  641. package/.next/standalone/.next/server/chunks/ssr/_0ae78458._.js +3 -0
  642. package/.next/standalone/.next/server/chunks/ssr/{_400d0da3._.js → _1278164d._.js} +2 -2
  643. package/.next/standalone/.next/server/chunks/ssr/_15e714f2._.js +3 -0
  644. package/.next/standalone/.next/server/chunks/ssr/_2f20fbfc._.js +3 -0
  645. package/.next/standalone/.next/server/chunks/ssr/_4e720925._.js +3 -0
  646. package/.next/standalone/.next/server/chunks/ssr/_5aa55aa6._.js +3 -0
  647. package/.next/standalone/.next/server/chunks/ssr/_8b68f69f._.js +3 -0
  648. package/.next/standalone/.next/server/chunks/ssr/_8d4b753e._.js +3 -0
  649. package/.next/standalone/.next/server/chunks/ssr/_976dfbab._.js +4 -0
  650. package/.next/standalone/.next/server/chunks/ssr/_aab048d0._.js +1 -1
  651. package/.next/standalone/.next/server/chunks/ssr/_be1ffbbf._.js +12 -0
  652. package/.next/standalone/.next/server/chunks/ssr/_c815e0e7._.js +4 -0
  653. package/.next/standalone/.next/server/chunks/ssr/_e4c81263._.js +3 -0
  654. package/.next/standalone/.next/server/chunks/ssr/{_a3d5f9bc._.js → _e5ee8977._.js} +2 -2
  655. package/.next/standalone/.next/server/chunks/ssr/_f634ea15._.js +12 -0
  656. package/.next/standalone/.next/server/chunks/ssr/_next-internal_server_app_(main)_version-analysis_page_actions_479d49a7.js +3 -0
  657. package/.next/standalone/.next/server/chunks/ssr/_next-internal_server_app_(main)_version-management_page_actions_aea5ae93.js +3 -0
  658. package/.next/standalone/.next/server/chunks/ssr/{node_modules_a443e166._.js → node_modules_3b1fd8eb._.js} +2 -2
  659. package/.next/standalone/.next/server/chunks/ssr/node_modules_7680a21d._.js +3 -0
  660. package/.next/standalone/.next/server/chunks/ssr/node_modules_bda25b86._.js +3 -0
  661. package/.next/standalone/.next/server/chunks/ssr/node_modules_bfffaa78._.js +3 -0
  662. package/.next/standalone/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_icons_2e7afafc._.js +3 -0
  663. package/.next/standalone/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_icons_cd0b182b._.js +3 -0
  664. package/.next/standalone/.next/server/chunks/ssr/src_app_(main)_accessconfig_install_page_tsx_6f4ef3fc._.js +3 -3
  665. package/.next/standalone/.next/server/chunks/ssr/src_app_(main)_dashboard_page_tsx_7eac7774._.js +1 -1
  666. package/.next/standalone/.next/server/chunks/ssr/src_app_(main)_modelconfig_registry_page_tsx_1ead2fd4._.js +1 -1
  667. package/.next/standalone/.next/server/chunks/ssr/src_app_(main)_quality_page_tsx_26bb8e80._.js +1 -1
  668. package/.next/standalone/.next/server/chunks/ssr/src_app_(main)_trace_page_tsx_41e7865d._.js +1 -1
  669. package/.next/standalone/.next/server/chunks/ssr/src_app_(main)_version-analysis_page_tsx_63ae8791._.js +3 -0
  670. package/.next/standalone/.next/server/chunks/ssr/src_app_(main)_version-management_page_tsx_87fe0372._.js +3 -0
  671. package/.next/standalone/.next/server/chunks/ssr/src_components_ui_select_tsx_4c0f64d8._.js +1 -1
  672. package/.next/standalone/.next/server/chunks/ssr/src_lib_client_locale-context_tsx_7184d9aa._.js +1 -1
  673. package/.next/standalone/.next/server/pages/404.html +1 -1
  674. package/.next/standalone/.next/server/pages/500.html +2 -2
  675. package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
  676. package/.next/standalone/.next/server/server-reference-manifest.json +1 -1
  677. package/.next/standalone/.next/static/chunks/0257c68e82e9f2b0.js +1 -0
  678. package/.next/standalone/.next/static/chunks/{8754e0cf40813330.js → 06ac4297aa02f40a.js} +1 -1
  679. package/.next/standalone/.next/static/chunks/0fe047909a490ef0.js +1 -0
  680. package/.next/standalone/.next/static/chunks/151b95e65092aa16.js +1 -0
  681. package/.next/standalone/.next/static/chunks/1624a1adcb73d784.js +1 -0
  682. package/.next/standalone/.next/static/chunks/1cb2cee6b2f89fb7.js +1 -0
  683. package/.next/standalone/.next/static/chunks/1f173de64ad85757.js +10 -0
  684. package/.next/standalone/.next/static/chunks/{4dcd21eef469e66b.js → 2064add303799ffc.js} +1 -1
  685. package/.next/standalone/.next/static/chunks/25a9b2907e03a172.css +1 -0
  686. package/.next/standalone/.next/static/chunks/2fb55cc737806639.js +1 -0
  687. package/.next/standalone/.next/static/chunks/30a686796d86273c.js +1 -0
  688. package/.next/standalone/.next/static/chunks/3184105f3d2b47a1.js +10 -0
  689. package/.next/standalone/.next/static/chunks/379315313d164a57.js +1 -0
  690. package/.next/standalone/.next/static/chunks/39157b51ed6489eb.js +1 -0
  691. package/.next/standalone/.next/static/chunks/{dc22f906bd43e9a3.js → 46308ae9f83ac112.js} +3 -3
  692. package/.next/standalone/.next/static/chunks/4b72abe72a9b6cd9.js +6 -0
  693. package/.next/standalone/.next/static/chunks/54538e1a80e53392.js +1 -0
  694. package/.next/standalone/.next/static/chunks/599fdc4cf6eb9e95.js +1 -0
  695. package/.next/standalone/.next/static/chunks/63220d0acc5073cc.js +1 -0
  696. package/.next/standalone/.next/static/chunks/6da1d3424f804755.js +1 -0
  697. package/.next/standalone/.next/static/chunks/6e6f2418240877c6.js +1 -0
  698. package/.next/standalone/.next/static/chunks/8668d6f4c34d1e67.js +3 -0
  699. package/.next/standalone/.next/static/chunks/946d260668afc16b.js +1 -0
  700. package/.next/standalone/.next/static/chunks/97822ca2c186f93d.js +1 -0
  701. package/.next/{static/chunks/96c7e2e47438553a.js → standalone/.next/static/chunks/98588c35b1e00bea.js} +1 -1
  702. package/.next/standalone/.next/static/chunks/a99fb4f44f9a41f3.js +1 -0
  703. package/.next/standalone/.next/static/chunks/b223106f6c610a67.js +1 -0
  704. package/.next/standalone/.next/static/chunks/b5e671771efd9e7d.js +1 -0
  705. package/.next/standalone/.next/static/chunks/cc9a7b6a8edabe81.js +1 -0
  706. package/.next/standalone/.next/static/chunks/cfb3924a60d22c64.js +1 -0
  707. package/.next/standalone/.next/static/chunks/d15d7f6146b85000.js +1 -0
  708. package/.next/standalone/.next/static/chunks/dee90c3e29cd39bb.js +1 -0
  709. package/.next/standalone/.next/static/chunks/{bf909bd0ff1898e4.js → f6954ae67d81050e.js} +1 -1
  710. package/.next/standalone/.next/static/chunks/fc7f5db841a7032a.js +1 -0
  711. package/.next/standalone/node_modules/.prisma/client/edge.js +26 -3
  712. package/.next/standalone/node_modules/.prisma/client/index-browser.js +23 -0
  713. package/.next/standalone/node_modules/.prisma/client/index.js +26 -3
  714. package/.next/standalone/node_modules/.prisma/client/package.json +1 -1
  715. package/.next/standalone/node_modules/.prisma/client/schema.prisma +39 -0
  716. package/.next/standalone/node_modules/.prisma/client/wasm.js +23 -0
  717. package/.next/standalone/package.json +1 -1
  718. package/.next/standalone/prisma/schema.prisma +38 -0
  719. package/.next/static/chunks/0257c68e82e9f2b0.js +1 -0
  720. package/.next/static/chunks/{8754e0cf40813330.js → 06ac4297aa02f40a.js} +1 -1
  721. package/.next/static/chunks/0fe047909a490ef0.js +1 -0
  722. package/.next/static/chunks/151b95e65092aa16.js +1 -0
  723. package/.next/static/chunks/1624a1adcb73d784.js +1 -0
  724. package/.next/static/chunks/1cb2cee6b2f89fb7.js +1 -0
  725. package/.next/static/chunks/1f173de64ad85757.js +10 -0
  726. package/.next/static/chunks/{4dcd21eef469e66b.js → 2064add303799ffc.js} +1 -1
  727. package/.next/static/chunks/25a9b2907e03a172.css +1 -0
  728. package/.next/static/chunks/2fb55cc737806639.js +1 -0
  729. package/.next/static/chunks/30a686796d86273c.js +1 -0
  730. package/.next/static/chunks/3184105f3d2b47a1.js +10 -0
  731. package/.next/static/chunks/379315313d164a57.js +1 -0
  732. package/.next/static/chunks/39157b51ed6489eb.js +1 -0
  733. package/.next/static/chunks/{dc22f906bd43e9a3.js → 46308ae9f83ac112.js} +3 -3
  734. package/.next/static/chunks/4b72abe72a9b6cd9.js +6 -0
  735. package/.next/static/chunks/54538e1a80e53392.js +1 -0
  736. package/.next/static/chunks/599fdc4cf6eb9e95.js +1 -0
  737. package/.next/static/chunks/63220d0acc5073cc.js +1 -0
  738. package/.next/static/chunks/6da1d3424f804755.js +1 -0
  739. package/.next/static/chunks/6e6f2418240877c6.js +1 -0
  740. package/.next/static/chunks/8668d6f4c34d1e67.js +3 -0
  741. package/.next/static/chunks/946d260668afc16b.js +1 -0
  742. package/.next/static/chunks/97822ca2c186f93d.js +1 -0
  743. package/.next/{standalone/.next/static/chunks/96c7e2e47438553a.js → static/chunks/98588c35b1e00bea.js} +1 -1
  744. package/.next/static/chunks/a99fb4f44f9a41f3.js +1 -0
  745. package/.next/static/chunks/b223106f6c610a67.js +1 -0
  746. package/.next/static/chunks/b5e671771efd9e7d.js +1 -0
  747. package/.next/static/chunks/cc9a7b6a8edabe81.js +1 -0
  748. package/.next/static/chunks/cfb3924a60d22c64.js +1 -0
  749. package/.next/static/chunks/d15d7f6146b85000.js +1 -0
  750. package/.next/static/chunks/dee90c3e29cd39bb.js +1 -0
  751. package/.next/static/chunks/{bf909bd0ff1898e4.js → f6954ae67d81050e.js} +1 -1
  752. package/.next/static/chunks/fc7f5db841a7032a.js +1 -0
  753. package/package.json +1 -1
  754. package/prisma/schema.prisma +38 -0
  755. package/.next/standalone/.next/server/chunks/[root-of-the-server]__2574e6ed._.js +0 -3
  756. package/.next/standalone/.next/server/chunks/[root-of-the-server]__2710fb53._.js +0 -3
  757. package/.next/standalone/.next/server/chunks/[root-of-the-server]__8cc92af1._.js +0 -3
  758. package/.next/standalone/.next/server/chunks/[root-of-the-server]__9d2e5f60._.js +0 -3
  759. package/.next/standalone/.next/server/chunks/[root-of-the-server]__bd3dc3ab._.js +0 -3
  760. package/.next/standalone/.next/server/chunks/src_lib_6cb48964._.js +0 -32
  761. package/.next/standalone/.next/server/chunks/src_lib_a3155704._.js +0 -3
  762. package/.next/standalone/.next/server/chunks/src_lib_baaf83ef._.js +0 -29
  763. package/.next/standalone/.next/server/chunks/src_lib_bf0ee699._.js +0 -32
  764. package/.next/standalone/.next/server/chunks/src_lib_dbf3c792._.js +0 -29
  765. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__2ec2bb09._.js +0 -3
  766. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__3cb83dc3._.js +0 -3
  767. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__fc94ba06._.js +0 -3
  768. package/.next/standalone/.next/server/chunks/ssr/_0141e5c7._.js +0 -3
  769. package/.next/standalone/.next/server/chunks/ssr/_0acdaaae._.js +0 -3
  770. package/.next/standalone/.next/server/chunks/ssr/_231821bd._.js +0 -3
  771. package/.next/standalone/.next/server/chunks/ssr/_5d1f8671._.js +0 -12
  772. package/.next/standalone/.next/server/chunks/ssr/_8bba8b8d._.js +0 -3
  773. package/.next/standalone/.next/server/chunks/ssr/_96725836._.js +0 -12
  774. package/.next/standalone/.next/server/chunks/ssr/_b08dc931._.js +0 -3
  775. package/.next/standalone/.next/server/chunks/ssr/_c4db9cec._.js +0 -3
  776. package/.next/standalone/.next/server/chunks/ssr/node_modules_8bfa35b3._.js +0 -3
  777. package/.next/standalone/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_icons_30858f09._.js +0 -3
  778. package/.next/standalone/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_icons_f1e06ad8._.js +0 -3
  779. package/.next/standalone/.next/static/chunks/0b6bd84bf10579a4.js +0 -10
  780. package/.next/standalone/.next/static/chunks/0bca64d67dceae3f.js +0 -1
  781. package/.next/standalone/.next/static/chunks/16047b19dda5c90d.js +0 -10
  782. package/.next/standalone/.next/static/chunks/3a0f454536f3ebc8.js +0 -1
  783. package/.next/standalone/.next/static/chunks/3d19f62114122bd3.js +0 -1
  784. package/.next/standalone/.next/static/chunks/3d6127f72467176d.js +0 -1
  785. package/.next/standalone/.next/static/chunks/44545e70bb7a33b8.js +0 -1
  786. package/.next/standalone/.next/static/chunks/4e52a5c5e332595a.js +0 -1
  787. package/.next/standalone/.next/static/chunks/6238734a2f04b1f9.js +0 -1
  788. package/.next/standalone/.next/static/chunks/66b23011cd8544ad.js +0 -1
  789. package/.next/standalone/.next/static/chunks/7a758615e3d35d6d.js +0 -1
  790. package/.next/standalone/.next/static/chunks/7a7dc24eed0484dc.js +0 -1
  791. package/.next/standalone/.next/static/chunks/7d4fa817c5229801.js +0 -1
  792. package/.next/standalone/.next/static/chunks/8f18a711543d804a.js +0 -1
  793. package/.next/standalone/.next/static/chunks/9155a6c07dc0502d.js +0 -6
  794. package/.next/standalone/.next/static/chunks/94fdb955b1dc512a.js +0 -1
  795. package/.next/standalone/.next/static/chunks/97b8d7ea5d04e2a2.js +0 -1
  796. package/.next/standalone/.next/static/chunks/a31bf4e176b5e90c.js +0 -3
  797. package/.next/standalone/.next/static/chunks/b9597989b5b0abd3.js +0 -1
  798. package/.next/standalone/.next/static/chunks/d170174df1128338.js +0 -1
  799. package/.next/standalone/.next/static/chunks/d91c2c0bbe0b59ab.js +0 -1
  800. package/.next/standalone/.next/static/chunks/e159d293fc72e91b.css +0 -1
  801. package/.next/standalone/.next/static/chunks/e45a4e085c7ce03c.js +0 -1
  802. package/.next/standalone/.next/static/chunks/ffd21617593aaafd.js +0 -1
  803. package/.next/static/chunks/0b6bd84bf10579a4.js +0 -10
  804. package/.next/static/chunks/0bca64d67dceae3f.js +0 -1
  805. package/.next/static/chunks/16047b19dda5c90d.js +0 -10
  806. package/.next/static/chunks/3a0f454536f3ebc8.js +0 -1
  807. package/.next/static/chunks/3d19f62114122bd3.js +0 -1
  808. package/.next/static/chunks/3d6127f72467176d.js +0 -1
  809. package/.next/static/chunks/44545e70bb7a33b8.js +0 -1
  810. package/.next/static/chunks/4e52a5c5e332595a.js +0 -1
  811. package/.next/static/chunks/6238734a2f04b1f9.js +0 -1
  812. package/.next/static/chunks/66b23011cd8544ad.js +0 -1
  813. package/.next/static/chunks/7a758615e3d35d6d.js +0 -1
  814. package/.next/static/chunks/7a7dc24eed0484dc.js +0 -1
  815. package/.next/static/chunks/7d4fa817c5229801.js +0 -1
  816. package/.next/static/chunks/8f18a711543d804a.js +0 -1
  817. package/.next/static/chunks/9155a6c07dc0502d.js +0 -6
  818. package/.next/static/chunks/94fdb955b1dc512a.js +0 -1
  819. package/.next/static/chunks/97b8d7ea5d04e2a2.js +0 -1
  820. package/.next/static/chunks/a31bf4e176b5e90c.js +0 -3
  821. package/.next/static/chunks/b9597989b5b0abd3.js +0 -1
  822. package/.next/static/chunks/d170174df1128338.js +0 -1
  823. package/.next/static/chunks/d91c2c0bbe0b59ab.js +0 -1
  824. package/.next/static/chunks/e159d293fc72e91b.css +0 -1
  825. package/.next/static/chunks/e45a4e085c7ce03c.js +0 -1
  826. package/.next/static/chunks/ffd21617593aaafd.js +0 -1
  827. /package/.next/standalone/.next/static/{iE8084jR9Kgb7Bhs3Xokh → VeFGnFbPjqrwSXp9h5AgX}/_buildManifest.js +0 -0
  828. /package/.next/standalone/.next/static/{iE8084jR9Kgb7Bhs3Xokh → VeFGnFbPjqrwSXp9h5AgX}/_clientMiddlewareManifest.json +0 -0
  829. /package/.next/standalone/.next/static/{iE8084jR9Kgb7Bhs3Xokh → VeFGnFbPjqrwSXp9h5AgX}/_ssgManifest.js +0 -0
  830. /package/.next/static/{iE8084jR9Kgb7Bhs3Xokh → VeFGnFbPjqrwSXp9h5AgX}/_buildManifest.js +0 -0
  831. /package/.next/static/{iE8084jR9Kgb7Bhs3Xokh → VeFGnFbPjqrwSXp9h5AgX}/_clientMiddlewareManifest.json +0 -0
  832. /package/.next/static/{iE8084jR9Kgb7Bhs3Xokh → VeFGnFbPjqrwSXp9h5AgX}/_ssgManifest.js +0 -0
@@ -0,0 +1 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,716327,e=>{"use strict";let t=(0,e.i(456420).default)("chevron-down",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);e.s(["ChevronDown",()=>t],716327)},867927,e=>{"use strict";let t=(0,e.i(456420).default)("chevron-right",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);e.s(["ChevronRight",()=>t],867927)},632781,e=>{"use strict";let t=(0,e.i(456420).default)("loader-circle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]]);e.s(["Loader2",()=>t],632781)},77071,e=>{"use strict";let t=(0,e.i(456420).default)("plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);e.s(["Plus",()=>t],77071)},853138,e=>{"use strict";let t=(0,e.i(456420).default)("triangle-alert",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]]);e.s(["AlertTriangle",()=>t],853138)},263676,e=>{"use strict";let t=(0,e.i(456420).default)("x",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]);e.s(["X",()=>t],263676)},776639,e=>{"use strict";var t=e.i(843476),s=e.i(271645),a=e.i(981140),r=e.i(820783),i=e.i(30030),n=e.i(610772),o=e.i(369340),l=e.i(726330),d=e.i(765491),c=e.i(774606),u=e.i(296626),m=e.i(248425),p=e.i(303536),g=e.i(985369),x=e.i(186312),f=e.i(991918),h="Dialog",[v,b]=(0,i.createContextScope)(h),[j,y]=v(h),N=e=>{let{__scopeDialog:a,children:r,open:i,defaultOpen:l,onOpenChange:d,modal:c=!0}=e,u=s.useRef(null),m=s.useRef(null),[p,g]=(0,o.useControllableState)({prop:i,defaultProp:l??!1,onChange:d,caller:h});return(0,t.jsx)(j,{scope:a,triggerRef:u,contentRef:m,contentId:(0,n.useId)(),titleId:(0,n.useId)(),descriptionId:(0,n.useId)(),open:p,onOpenChange:g,onOpenToggle:s.useCallback(()=>g(e=>!e),[g]),modal:c,children:r})};N.displayName=h;var w="DialogTrigger";s.forwardRef((e,s)=>{let{__scopeDialog:i,...n}=e,o=y(w,i),l=(0,r.useComposedRefs)(s,o.triggerRef);return(0,t.jsx)(m.Primitive.button,{type:"button","aria-haspopup":"dialog","aria-expanded":o.open,"aria-controls":o.open?o.contentId:void 0,"data-state":U(o.open),...n,ref:l,onClick:(0,a.composeEventHandlers)(e.onClick,o.onOpenToggle)})}).displayName=w;var C="DialogPortal",[D,T]=v(C,{forceMount:void 0}),k=e=>{let{__scopeDialog:a,forceMount:r,children:i,container:n}=e,o=y(C,a);return(0,t.jsx)(D,{scope:a,forceMount:r,children:s.Children.map(i,e=>(0,t.jsx)(u.Presence,{present:r||o.open,children:(0,t.jsx)(c.Portal,{asChild:!0,container:n,children:e})}))})};k.displayName=C;var F="DialogOverlay",P=s.forwardRef((e,s)=>{let a=T(F,e.__scopeDialog),{forceMount:r=a.forceMount,...i}=e,n=y(F,e.__scopeDialog);return n.modal?(0,t.jsx)(u.Presence,{present:r||n.open,children:(0,t.jsx)(R,{...i,ref:s})}):null});P.displayName=F;var I=(0,f.createSlot)("DialogOverlay.RemoveScroll"),R=s.forwardRef((e,s)=>{let{__scopeDialog:a,...i}=e,n=y(F,a),o=(0,l.useDismissableLayerSurface)(),d=(0,r.useComposedRefs)(s,o);return(0,t.jsx)(g.RemoveScroll,{as:I,allowPinchZoom:!0,shards:[n.contentRef],children:(0,t.jsx)(m.Primitive.div,{"data-state":U(n.open),...i,ref:d,style:{pointerEvents:"auto",...i.style}})})}),E="DialogContent",S=s.forwardRef((e,s)=>{let a=T(E,e.__scopeDialog),{forceMount:r=a.forceMount,...i}=e,n=y(E,e.__scopeDialog);return(0,t.jsx)(u.Presence,{present:r||n.open,children:n.modal?(0,t.jsx)(z,{...i,ref:s}):(0,t.jsx)(A,{...i,ref:s})})});S.displayName=E;var z=s.forwardRef((e,i)=>{let n=y(E,e.__scopeDialog),o=s.useRef(null),l=(0,r.useComposedRefs)(i,n.contentRef,o);return s.useEffect(()=>{let e=o.current;if(e)return(0,x.hideOthers)(e)},[]),(0,t.jsx)(B,{...e,ref:l,trapFocus:n.open,disableOutsidePointerEvents:n.open,onCloseAutoFocus:(0,a.composeEventHandlers)(e.onCloseAutoFocus,e=>{e.preventDefault(),n.triggerRef.current?.focus()}),onPointerDownOutside:(0,a.composeEventHandlers)(e.onPointerDownOutside,e=>{let t=e.detail.originalEvent,s=0===t.button&&!0===t.ctrlKey;(2===t.button||s)&&e.preventDefault()}),onFocusOutside:(0,a.composeEventHandlers)(e.onFocusOutside,e=>e.preventDefault())})}),A=s.forwardRef((e,a)=>{let r=y(E,e.__scopeDialog),i=s.useRef(!1),n=s.useRef(!1);return(0,t.jsx)(B,{...e,ref:a,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:t=>{e.onCloseAutoFocus?.(t),t.defaultPrevented||(i.current||r.triggerRef.current?.focus(),t.preventDefault()),i.current=!1,n.current=!1},onInteractOutside:t=>{e.onInteractOutside?.(t),t.defaultPrevented||(i.current=!0,"pointerdown"===t.detail.originalEvent.type&&(n.current=!0));let s=t.target;r.triggerRef.current?.contains(s)&&t.preventDefault(),"focusin"===t.detail.originalEvent.type&&n.current&&t.preventDefault()}})}),B=s.forwardRef((e,s)=>{let{__scopeDialog:a,trapFocus:r,onOpenAutoFocus:i,onCloseAutoFocus:n,...o}=e,c=y(E,a);return(0,p.useFocusGuards)(),(0,t.jsx)(t.Fragment,{children:(0,t.jsx)(d.FocusScope,{asChild:!0,loop:!0,trapped:r,onMountAutoFocus:i,onUnmountAutoFocus:n,children:(0,t.jsx)(l.DismissableLayer,{role:"dialog",id:c.contentId,"aria-describedby":c.descriptionId,"aria-labelledby":c.titleId,"data-state":U(c.open),...o,ref:s,deferPointerDownOutside:!0,onDismiss:()=>c.onOpenChange(!1)})})})}),O="DialogTitle",M=s.forwardRef((e,s)=>{let{__scopeDialog:a,...r}=e,i=y(O,a);return(0,t.jsx)(m.Primitive.h2,{id:i.titleId,...r,ref:s})});M.displayName=O;var V="DialogDescription",H=s.forwardRef((e,s)=>{let{__scopeDialog:a,...r}=e,i=y(V,a);return(0,t.jsx)(m.Primitive.p,{id:i.descriptionId,...r,ref:s})});H.displayName=V;var L="DialogClose",_=s.forwardRef((e,s)=>{let{__scopeDialog:r,...i}=e,n=y(L,r);return(0,t.jsx)(m.Primitive.button,{type:"button",...i,ref:s,onClick:(0,a.composeEventHandlers)(e.onClick,()=>n.onOpenChange(!1))})});function U(e){return e?"open":"closed"}_.displayName=L;var $=e.i(263676),q=e.i(975157);function K({className:e,...s}){return(0,t.jsx)(P,{"data-slot":"dialog-overlay",className:(0,q.cn)("fixed inset-0 z-50 bg-black/50 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",e),...s})}function J({className:e,children:s,...a}){return(0,t.jsxs)(k,{children:[(0,t.jsx)(K,{}),(0,t.jsxs)(S,{"data-slot":"dialog-content",className:(0,q.cn)("fixed left-1/2 top-1/2 z-50 grid w-full max-w-lg -translate-x-1/2 -translate-y-1/2 gap-4 rounded-lg border border-card-border bg-card p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95",e),...a,children:[s,(0,t.jsx)(_,{className:"absolute right-4 top-4 rounded-sm opacity-70 transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring","aria-label":"Close",children:(0,t.jsx)($.X,{className:"size-4"})})]})]})}function W({className:e,...s}){return(0,t.jsx)("div",{"data-slot":"dialog-header",className:(0,q.cn)("flex flex-col gap-1.5 text-left",e),...s})}function X({className:e,...s}){return(0,t.jsx)("div",{"data-slot":"dialog-footer",className:(0,q.cn)("flex flex-row justify-end gap-2 pt-2",e),...s})}function G({className:e,...s}){return(0,t.jsx)(M,{"data-slot":"dialog-title",className:(0,q.cn)("text-base font-semibold text-foreground",e),...s})}function Y({className:e,...s}){return(0,t.jsx)(H,{"data-slot":"dialog-description",className:(0,q.cn)("text-sm text-foreground-secondary",e),...s})}e.s(["Dialog",()=>N,"DialogContent",()=>J,"DialogDescription",()=>Y,"DialogFooter",()=>X,"DialogHeader",()=>W,"DialogTitle",()=>G],776639)},573474,e=>{"use strict";let t=(0,e.i(456420).default)("trash-2",[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]]);e.s(["Trash2",()=>t],573474)},347101,e=>{"use strict";var t=e.i(843476),s=e.i(271645),a=e.i(853138),r=e.i(776639),i=e.i(519455),n=e.i(975157);function o({open:e,onOpenChange:o,title:l,description:d,confirmText:c="确认",cancelText:u="取消",tone:m="normal",onConfirm:p}){let[g,x]=s.useState(!1),f=async()=>{try{x(!0),await p(),o(!1)}finally{x(!1)}};return(0,t.jsx)(r.Dialog,{open:e,onOpenChange:e=>!g&&o(e),children:(0,t.jsxs)(r.DialogContent,{className:"sm:max-w-md",children:[(0,t.jsxs)(r.DialogHeader,{children:[(0,t.jsxs)(r.DialogTitle,{className:(0,n.cn)("flex items-center gap-2","danger"===m&&"text-destructive"),children:["danger"===m&&(0,t.jsx)(a.AlertTriangle,{className:"size-4"}),l]}),d&&(0,t.jsx)(r.DialogDescription,{children:d})]}),(0,t.jsxs)(r.DialogFooter,{children:[(0,t.jsx)(i.Button,{variant:"outline",onClick:()=>o(!1),disabled:g,children:u}),(0,t.jsx)(i.Button,{onClick:f,disabled:g,className:(0,n.cn)("danger"===m&&"bg-error text-error-foreground hover:bg-error/90"),children:g?"处理中…":c})]})]})})}e.s(["ConfirmDialog",()=>o])},793479,e=>{"use strict";var t=e.i(843476),s=e.i(975157);function a({className:e,type:a,...r}){return(0,t.jsx)("input",{type:a,"data-slot":"input",className:(0,s.cn)("border-input file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground flex h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm","aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",e),...r})}e.s(["Input",()=>a])},708511,570059,e=>{"use strict";var t=e.i(843476),s=e.i(975157);let a={default:"w-full px-6 py-6",wide:"w-full px-8 py-6",canvas:"w-full p-0"};function r({variant:e="default",className:r,children:i}){return(0,t.jsx)("div",{className:(0,s.cn)("flex-1 flex flex-col min-h-0 overflow-y-auto",a[e],r),children:i})}function i({title:e,description:a,actions:r,className:i}){return(0,t.jsxs)("div",{className:(0,s.cn)("flex items-start justify-between gap-4 mb-4",i),children:[(0,t.jsxs)("div",{className:"min-w-0 space-y-1",children:[(0,t.jsx)("h1",{className:"text-xl font-semibold text-foreground truncate",children:e}),a&&(0,t.jsx)("p",{className:"text-sm text-foreground-muted",children:a})]}),r&&(0,t.jsx)("div",{className:"flex items-center gap-2 shrink-0",children:r})]})}function n({className:e,children:a}){return(0,t.jsx)("div",{className:(0,s.cn)("flex flex-wrap items-center gap-2 mb-3",e),children:a})}function o({className:e,children:a}){return(0,t.jsx)("div",{className:(0,s.cn)("flex-1 min-h-0",e),children:a})}function l({className:e,children:a}){return(0,t.jsx)("div",{className:(0,s.cn)("flex items-center justify-between gap-3 mt-4 pt-3 border-t border-border",e),children:a})}e.s(["PageContainer",()=>r,"PageContent",()=>o,"PageFooter",()=>l,"PageHeader",()=>i,"PageToolbar",()=>n],708511);let d=(0,e.i(456420).default)("inbox",[["polyline",{points:"22 12 16 12 14 15 10 15 8 12 2 12",key:"o97t9d"}],["path",{d:"M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z",key:"oot6mr"}]]);function c({icon:e=d,title:a,description:r,action:i,className:n}){return(0,t.jsxs)("div",{className:(0,s.cn)("flex flex-col items-center justify-center gap-3 text-center py-12 px-6","text-foreground-muted",n),children:[(0,t.jsx)("div",{className:"size-10 rounded-full bg-background-secondary text-foreground-muted flex items-center justify-center",children:(0,t.jsx)(e,{className:"size-5","aria-hidden":!0})}),(0,t.jsxs)("div",{className:"space-y-1",children:[(0,t.jsx)("p",{className:"text-base font-semibold text-foreground",children:a}),r&&(0,t.jsx)("p",{className:"text-sm text-foreground-muted max-w-md",children:r})]}),i&&(0,t.jsx)("div",{className:"pt-1",children:i})]})}e.s(["EmptyState",()=>c],570059)},980799,e=>{"use strict";let t=(0,e.i(456420).default)("tag",[["path",{d:"M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z",key:"vktsd0"}],["circle",{cx:"7.5",cy:"7.5",r:".5",fill:"currentColor",key:"kqv944"}]]);e.s(["Tag",()=>t],980799)},627960,e=>{"use strict";var t=e.i(843476),s=e.i(271645);let a=(0,e.i(456420).default)("pen",[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}]]);var r=e.i(632781),i=e.i(77071),n=e.i(980799),o=e.i(573474),l=e.i(846696),d=e.i(540568),c=e.i(708511),u=e.i(519455),m=e.i(347101),p=e.i(776639),g=e.i(793479),x=e.i(967489),f=e.i(975157);function h({className:e,...s}){return(0,t.jsx)("textarea",{"data-slot":"textarea",className:(0,f.cn)("border-input placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive flex field-sizing-content min-h-16 w-full rounded-md border bg-transparent px-3 py-2 text-base shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",e),...s})}var v=e.i(570059),b=e.i(927643),j=e.i(183752),y=e.i(726526);let N={name:"",description:"",kind:"version",color:"#6366f1"},w=["#6366f1","#16a34a","#0ea5e9","#f59e0b","#ef4444","#8b5cf6","#64748b"];async function C(e,t){try{let s=await e.json();return String(s?.error||t)}catch{return t}}function D(){let{user:e}=(0,b.useAuth)(),{locale:a}=(0,y.useLocale)(),n=a.toLowerCase().startsWith("zh")?{title:"版本管理",subtitle:"通过标签管理版本分组和业务筛选范围",intro:"通过标签实现版本管理:版本标签用于版本分析的对比与详情;业务标签用于在链路追踪中筛选 Trace。",newTag:"新建标签",newVersion:"新建版本标签",newBusiness:"新建业务标签",version:"版本标签",business:"业务标签",versionHint:"用于版本分析的对比与详情",businessHint:"用于链路追踪中筛选 Trace",traceCount:"Trace 数",totalTags:"标签总数",versionTags:"版本标签",businessTags:"业务标签",bindings:"Trace 绑定",createdAt:"创建时间",descriptionColumn:"说明",noDesc:"无说明",edit:"编辑",delete:"删除",actions:"操作",formTitleNew:"新建标签",formTitleEdit:"编辑标签",formDescNew:"创建后可在链路追踪的用户标签列绑定到 Trace。",formDescEdit:"修改会影响所有已绑定 Trace 上的标签展示。",editImpact:"影响范围:名称、说明、颜色和类型变化会同步影响链路追踪、版本分析和业务筛选中的展示;已绑定的 Trace 不会丢失。",name:"名称",description:"描述",type:"标签类型",color:"颜色",cancel:"取消",save:"保存",create:"创建",saving:"保存中...",namePlaceholder:"如 baseline / v1.4 / 回归测试",descPlaceholder:"简短说明版本、实验或业务范围",emptyVersionTitle:"还没有版本标签",emptyBusinessTitle:"还没有业务标签",emptyDesc:"新建标签后,可从链路追踪给 Trace 打标。",loadFailed:"加载标签失败",saveFailed:"保存标签失败",deleteFailed:"删除标签失败",saved:"标签已保存",deleted:"标签已删除",deleteTitle:"确认删除标签?",deleteDesc:"这是硬删除:会删除标签并移除所有 Trace 绑定,Trace 记录本身会保留。",deleteImpactTitle:"影响范围",deleteImpactBindings:"将从 {count} 条 Trace 上移除此标签绑定。",deleteImpactVersion:"版本标签删除后,对应版本会从版本分析的对比和详情中消失。",deleteImpactBusiness:"业务标签删除后,对应链路追踪筛选条件将失效。",confirmDelete:"删除"}:{title:"Version Management",subtitle:"Manage version cohorts and business filter tags",intro:"Version tags power Version Analysis; business tags are used to filter traces in Trace.",newTag:"New tag",newVersion:"New version tag",newBusiness:"New business tag",version:"Version tags",business:"Business tags",versionHint:"Used by Version Analysis comparison and detail views",businessHint:"Used to filter traces in Trace",traceCount:"Traces",totalTags:"Total tags",versionTags:"Version tags",businessTags:"Business tags",bindings:"Trace bindings",createdAt:"Created",descriptionColumn:"Description",noDesc:"No description",edit:"Edit",delete:"Delete",actions:"Actions",formTitleNew:"Create tag",formTitleEdit:"Edit tag",formDescNew:"After creation, tags can be attached to traces in Trace.",formDescEdit:"Changes affect how the tag appears on every bound trace.",editImpact:"Impact: name, description, color, and type changes are reflected in Trace, Version Analysis, and business filters. Bound traces are kept.",name:"Name",description:"Description",type:"Type",color:"Color",cancel:"Cancel",save:"Save",create:"Create",saving:"Saving...",namePlaceholder:"e.g. baseline / v1.4 / regression",descPlaceholder:"Describe the version, experiment, or business scope",emptyVersionTitle:"No version tags yet",emptyBusinessTitle:"No business tags yet",emptyDesc:"Create tags, then attach them from Trace.",loadFailed:"Failed to load tags",saveFailed:"Failed to save tag",deleteFailed:"Failed to delete tag",saved:"Tag saved",deleted:"Tag deleted",deleteTitle:"Delete tag?",deleteDesc:"This hard-deletes the tag and removes it from every trace. Trace records are kept.",deleteImpactTitle:"Impact scope",deleteImpactBindings:"This tag will be removed from {count} traces.",deleteImpactVersion:"Deleting a version tag removes that version from Version Analysis comparison and detail views.",deleteImpactBusiness:"Deleting a business tag makes the corresponding Trace filter unavailable.",confirmDelete:"Delete"},[o,v]=(0,s.useState)([]),[D,F]=(0,s.useState)(!1),[P,I]=(0,s.useState)(!1),[R,E]=(0,s.useState)(N),[S,z]=(0,s.useState)(!1),[A,B]=(0,s.useState)(null),O=(0,s.useCallback)(async()=>{if(e){F(!0);try{let t=await (0,j.apiFetch)(`/api/tags?user=${encodeURIComponent(e)}`);if(!t.ok)throw Error(await C(t,n.loadFailed));let s=await t.json();v(Array.isArray(s)?s:[])}catch(e){l.toast.error(e?.message||n.loadFailed),v([])}finally{F(!1)}}},[n.loadFailed,e]);(0,s.useEffect)(()=>{O()},[O]);let M=(0,s.useMemo)(()=>{let e=o.filter(e=>"version"===e.kind).length;return{version:e,business:o.filter(e=>"business"===e.kind).length,bindings:o.reduce((e,t)=>e+(t.usageCount||0),0)}},[o]),V=(0,s.useMemo)(()=>o.filter(e=>"version"===e.kind).sort((e,t)=>e.name.localeCompare(t.name)),[o]),H=(0,s.useMemo)(()=>o.filter(e=>"business"===e.kind).sort((e,t)=>e.name.localeCompare(t.name)),[o]),L=(e="version")=>{E({...N,kind:e}),I(!0)},_=e=>{E({id:e.id,name:e.name,description:e.description||"",kind:e.kind,color:e.color||N.color}),I(!0)},U=async()=>{if(e&&R.name.trim()){z(!0);try{let t={user:e,name:R.name.trim(),description:R.description.trim(),kind:R.kind,color:R.color},s=R.id?await (0,j.apiFetch)(`/api/tags/${encodeURIComponent(R.id)}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)}):await (0,j.apiFetch)("/api/tags",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});if(!s.ok)throw Error(await C(s,n.saveFailed));l.toast.success(n.saved),I(!1),await O()}catch(e){l.toast.error(e?.message||n.saveFailed)}finally{z(!1)}}},$=async()=>{if(!e||!A)return;let t=await (0,j.apiFetch)(`/api/tags/${encodeURIComponent(A.id)}?user=${encodeURIComponent(e)}`,{method:"DELETE"});if(!t.ok)throw Error(await C(t,n.deleteFailed));l.toast.success(n.deleted),B(null),await O()};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(d.AppTopBar,{title:n.title,showDefaultActions:!1}),(0,t.jsxs)(c.PageContainer,{variant:"wide",className:"bg-background",children:[(0,t.jsx)(c.PageHeader,{title:n.title,description:n.subtitle,actions:(0,t.jsxs)(u.Button,{onClick:()=>L("version"),className:"h-8 gap-1.5",children:[(0,t.jsx)(i.Plus,{className:"size-4"}),n.newTag]})}),(0,t.jsxs)("div",{className:"grid gap-3 md:grid-cols-4 mb-4",children:[(0,t.jsx)(k,{label:n.totalTags,value:o.length}),(0,t.jsx)(k,{label:n.versionTags,value:M.version}),(0,t.jsx)(k,{label:n.businessTags,value:M.business}),(0,t.jsx)(k,{label:n.bindings,value:M.bindings})]}),(0,t.jsx)("div",{className:"mb-4 rounded-md border border-border bg-background-secondary px-3 py-2 text-sm text-foreground-secondary",children:n.intro}),D?(0,t.jsxs)("div",{className:"flex items-center justify-center gap-2 py-16 text-sm text-foreground-muted",children:[(0,t.jsx)(r.Loader2,{className:"size-4 animate-spin"}),n.saving.replace("...","")]}):(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsx)(T,{title:n.version,hint:n.versionHint,tone:"version",tags:V,copy:n,locale:a,emptyTitle:n.emptyVersionTitle,onCreate:()=>L("version"),onEdit:_,onDelete:B}),(0,t.jsx)(T,{title:n.business,hint:n.businessHint,tone:"business",tags:H,copy:n,locale:a,emptyTitle:n.emptyBusinessTitle,onCreate:()=>L("business"),onEdit:_,onDelete:B})]})]}),(0,t.jsx)(p.Dialog,{open:P,onOpenChange:e=>!S&&I(e),children:(0,t.jsxs)(p.DialogContent,{className:"sm:max-w-lg",children:[(0,t.jsxs)(p.DialogHeader,{children:[(0,t.jsx)(p.DialogTitle,{children:R.id?n.formTitleEdit:n.formTitleNew}),(0,t.jsx)(p.DialogDescription,{children:R.id?n.formDescEdit:n.formDescNew})]}),(0,t.jsxs)("div",{className:"grid gap-4",children:[(0,t.jsxs)("label",{className:"grid gap-1.5 text-sm font-medium text-foreground",children:[n.name,(0,t.jsx)(g.Input,{value:R.name,onChange:e=>E(t=>({...t,name:e.target.value})),placeholder:n.namePlaceholder,maxLength:80})]}),(0,t.jsxs)("label",{className:"grid gap-1.5 text-sm font-medium text-foreground",children:[n.description,(0,t.jsx)(h,{value:R.description,onChange:e=>E(t=>({...t,description:e.target.value})),placeholder:n.descPlaceholder,maxLength:300})]}),(0,t.jsxs)("div",{className:"grid gap-1.5 text-sm font-medium text-foreground",children:[n.type,(0,t.jsx)(x.Select,{value:R.kind,onChange:e=>E(t=>({...t,kind:e})),options:[{value:"version",label:n.version},{value:"business",label:n.business}],size:"md"})]}),(0,t.jsxs)("div",{className:"grid gap-2 text-sm font-medium text-foreground",children:[n.color,(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[w.map(e=>(0,t.jsx)("button",{type:"button","aria-label":e,onClick:()=>E(t=>({...t,color:e})),className:(0,f.cn)("size-7 rounded-md border transition-transform focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",R.color===e?"border-foreground scale-105":"border-border"),style:{backgroundColor:e}},e)),(0,t.jsx)(g.Input,{type:"color",value:R.color,onChange:e=>E(t=>({...t,color:e.target.value})),className:"h-8 w-12 p-1"})]})]}),R.id&&(0,t.jsx)("div",{className:"rounded-md border border-warning-subtle bg-warning-subtle px-3 py-2 text-xs leading-5 text-warning",children:n.editImpact})]}),(0,t.jsxs)(p.DialogFooter,{children:[(0,t.jsx)(u.Button,{variant:"outline",onClick:()=>I(!1),disabled:S,children:n.cancel}),(0,t.jsx)(u.Button,{onClick:U,disabled:S||!R.name.trim(),children:S?n.saving:R.id?n.save:n.create})]})]})}),(0,t.jsx)(m.ConfirmDialog,{open:!!A,onOpenChange:e=>!e&&B(null),title:n.deleteTitle,description:A?(0,t.jsxs)("span",{className:"block space-y-2",children:[(0,t.jsxs)("span",{className:"block",children:[n.deleteDesc," (",A.name,")"]}),(0,t.jsxs)("span",{className:"block rounded-md border border-error-border bg-error-subtle px-3 py-2 text-xs leading-5 text-error",children:[(0,t.jsx)("span",{className:"block font-semibold",children:n.deleteImpactTitle}),(0,t.jsx)("span",{className:"mt-1 block",children:n.deleteImpactBindings.replace("{count}",(A.usageCount||0).toLocaleString())}),(0,t.jsx)("span",{className:"mt-1 block",children:"version"===A.kind?n.deleteImpactVersion:n.deleteImpactBusiness})]})]}):n.deleteDesc,confirmText:n.confirmDelete,cancelText:n.cancel,tone:"danger",onConfirm:$})]})}function T({title:e,hint:s,tone:r,tags:l,copy:d,locale:c,emptyTitle:m,onCreate:p,onEdit:g,onDelete:x}){return(0,t.jsxs)("section",{className:"rounded-md border border-border bg-card overflow-hidden",children:[(0,t.jsxs)("div",{className:"flex items-center gap-3 border-b border-border px-4 py-3",children:[(0,t.jsx)("span",{className:"size-2 rounded-full",style:{backgroundColor:"version"===r?"var(--primary)":"var(--success)"}}),(0,t.jsxs)("div",{className:"min-w-0",children:[(0,t.jsx)("h2",{className:"text-sm font-semibold text-foreground",children:e}),(0,t.jsx)("p",{className:"mt-0.5 text-xs text-foreground-muted",children:s})]}),(0,t.jsx)("div",{className:"flex-1"}),(0,t.jsxs)(u.Button,{variant:"outline",size:"sm",onClick:p,children:[(0,t.jsx)(i.Plus,{className:"size-4"}),"version"===r?d.newVersion:d.newBusiness]})]}),0===l.length?(0,t.jsx)(v.EmptyState,{icon:n.Tag,title:m,description:d.emptyDesc}):(0,t.jsx)("div",{className:"overflow-x-auto",children:(0,t.jsxs)("table",{className:"w-full min-w-[760px] text-sm",children:[(0,t.jsx)("thead",{className:"bg-background-secondary text-xs text-foreground-muted",children:(0,t.jsxs)("tr",{children:[(0,t.jsx)("th",{className:"px-3 py-2 text-left font-medium",children:d.type}),(0,t.jsx)("th",{className:"px-3 py-2 text-left font-medium",children:d.descriptionColumn}),(0,t.jsx)("th",{className:"px-3 py-2 text-left font-medium",children:d.traceCount}),(0,t.jsx)("th",{className:"px-3 py-2 text-left font-medium",children:d.createdAt}),(0,t.jsx)("th",{className:"w-[88px] px-3 py-2 text-center font-medium",children:d.actions})]})}),(0,t.jsx)("tbody",{children:l.map(e=>{var s;let r;return(0,t.jsxs)("tr",{className:"border-t border-border hover:bg-background-secondary",children:[(0,t.jsx)("td",{className:"px-3 py-2 align-top",children:(0,t.jsxs)("div",{className:"flex min-w-0 items-center gap-2",children:[(0,t.jsx)("span",{className:"size-2.5 shrink-0 rounded-full",style:{backgroundColor:e.color}}),(0,t.jsxs)("div",{className:"min-w-0",children:[(0,t.jsx)("div",{className:"truncate font-semibold text-foreground",children:e.name}),(0,t.jsx)("div",{className:"text-[11px] text-foreground-muted",children:(s=e.kind,r=c.toLowerCase().startsWith("zh"),"version"===s?r?"版本":"Version":r?"业务":"Business")})]})]})}),(0,t.jsx)("td",{className:"px-3 py-2 align-top text-foreground-secondary",children:(0,t.jsx)("span",{className:"line-clamp-2 max-w-[420px]",children:e.description||d.noDesc})}),(0,t.jsx)("td",{className:"px-3 py-2 align-top font-semibold tabular-nums text-foreground",children:(e.usageCount||0).toLocaleString()}),(0,t.jsx)("td",{className:"px-3 py-2 align-top text-foreground-secondary",children:function(e){if(!e)return"-";let t=new Date(e);return Number.isFinite(t.getTime())?`${t.getFullYear()}-${String(t.getMonth()+1).padStart(2,"0")}-${String(t.getDate()).padStart(2,"0")}`:"-"}(e.createdAt)}),(0,t.jsx)("td",{className:"w-[88px] px-3 py-2 align-top text-center",children:(0,t.jsxs)("div",{className:"inline-flex justify-center gap-1",children:[(0,t.jsx)(u.Button,{variant:"ghost",size:"icon",className:"size-7",onClick:()=>g(e),"aria-label":d.edit,children:(0,t.jsx)(a,{className:"size-3.5"})}),(0,t.jsx)(u.Button,{variant:"ghost",size:"icon",className:"size-7 text-error hover:text-error",onClick:()=>x(e),"aria-label":d.delete,children:(0,t.jsx)(o.Trash2,{className:"size-3.5"})})]})})]},e.id)})})]})})]})}function k({label:e,value:s}){return(0,t.jsxs)("div",{className:"rounded-md border border-border bg-card px-4 py-3",children:[(0,t.jsx)("div",{className:"text-xs text-foreground-muted",children:e}),(0,t.jsx)("div",{className:"mt-1 text-2xl font-semibold tabular-nums text-foreground",children:s.toLocaleString()})]})}e.s(["default",()=>D],627960)}]);
@@ -1 +1 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,76706,861171,e=>{"use strict";function t(e,r=1){return null==e||Number.isNaN(e)?"--":(100*e).toFixed(r)}e.s(["fmtPercentScore",()=>t],76706);let r="[no-evaluable-case]",n="preset-agent-trace-quality",a={trace:"Trace 数据问题",dataset:"评测集配置问题",case:"Case 配置问题",skill:"Skill 归因问题",model:"模型调用问题",evaluator:"评测器问题",system:"系统问题"},s={trace_missing_input:{errorCategory:"trace",shortStatus:"Trace 缺输入",userMessage:"Trace 缺少实际输入,无法匹配评测集 case。",reason:"系统没有从本次执行记录中提取到可用于匹配 case 的任务输入。",nextAction:"检查 trace 采集是否包含用户任务输入;必要时重新采集或重新执行该任务。",retryable:!1,stage:"case-match"},trace_missing_output:{errorCategory:"trace",shortStatus:"Trace 缺输出",userMessage:"Trace 缺少实际输出,无法做任务完成度评测。",reason:"本次 trace 没有提取到 Agent 最终输出,也没有可用的 execution.finalResult fallback。",nextAction:"检查 Agent 是否产出最终回复;确认 trace 采集包含 assistant final message;必要时重新跑该 case。",retryable:!1,stage:"result-artifact"},task_output_extraction_failed:{errorCategory:"trace",shortStatus:"任务输出提取失败",userMessage:"无法从 trace 中提取任务输出。",reason:"任务输出提取流程没有定位到可用于任务完成度评测的最终输出,且没有 fallback 可用。",nextAction:"检查 trace 中是否包含最终回复或关键工具输出;必要时重试评测或重新采集 trace。",retryable:!0,stage:"result-artifact"},trace_data_empty:{errorCategory:"trace",shortStatus:"Trace 数据为空",userMessage:"Trace 数据为空,无法评测。",reason:"系统没有找到可用的 session interactions,也没有足够的 query/finalResult 生成兜底交互。",nextAction:"检查 trace 采集、上传或执行记录入库是否完整。",retryable:!1,stage:"trace-load"},trace_parse_failed:{errorCategory:"trace",shortStatus:"Trace 解析失败",userMessage:"Trace 数据解析失败,无法评测。",reason:"Session.interactions 不是合法 JSON 或结构不兼容。",nextAction:"检查 trace 采集数据格式,必要时重新上传或修复采集链路。",retryable:!1,stage:"trace-parse"},case_not_matched:{errorCategory:"case",shortStatus:"无匹配 case",userMessage:"Trace 输入没有匹配到可用于评测的 case。",reason:"本次任务输入与当前评测集中的 case.input 没有达到可用匹配。",nextAction:"补充对应 case,或确认本次 trace 的任务输入与评测集 case.input 是否一致。",retryable:!1,stage:"case-match"},case_match_failed:{errorCategory:"case",shortStatus:"匹配 case 失败",userMessage:"无法根据 trace 输入自动定位可用于评测的 case。",reason:"trace 输入没有精确匹配到评测集 case,后台自动匹配也没有得到可用结果。",nextAction:"检查本次 trace 的任务输入是否与评测集 case.input 对齐;必要时补充 case 或重新选择评测集。",retryable:!0,stage:"case-match"},dataset_missing:{errorCategory:"dataset",shortStatus:"评测集不存在",userMessage:"评测集不存在,无法匹配可评测 case。",reason:"评测结果关联的数据集已经不存在,或当前用户不可访问。",nextAction:"重新选择评测集后再发起评测。",retryable:!1,stage:"dataset-load"},dataset_empty:{errorCategory:"dataset",shortStatus:"评测集为空",userMessage:"评测集没有可评测 case。",reason:"当前匹配范围内没有可用于评测的 case。",nextAction:"补充评测集 case 后重新评测。",retryable:!1,stage:"dataset-load"},case_missing_expected_output:{errorCategory:"case",shortStatus:"Case 缺预期结果",userMessage:"Case 缺少预期结果,无法做任务完成度评测。",reason:"已匹配到 case,但 expectedOutput 为空。",nextAction:"为该 case 补充 expectedOutput 后重新评测。",retryable:!1,stage:"case-match"},custom_reference_missing:{errorCategory:"case",shortStatus:"缺 reference_output",userMessage:"自定义评估器缺少 reference_output。",reason:"自定义评估器 prompt 引用了 reference_output,但没有匹配到带预期结果的 case。",nextAction:"补充评测集 expectedOutput,或调整自定义评估器 prompt。",retryable:!1,stage:"custom-evaluator"},trace_step_analysis_failed:{errorCategory:"model",shortStatus:"步骤抽取失败",userMessage:"Trace 步骤动态分析失败。",reason:"系统尝试从 trace 中抽取实际执行步骤时失败,通常与模型配置或调用异常有关。",nextAction:"检查评测模型配置和服务状态后重试。",retryable:!0,stage:"trace-step-analysis"},trace_no_steps:{errorCategory:"trace",shortStatus:"Trace 无步骤",userMessage:"Trace 无可提取执行步骤,无法做轨迹评测。",reason:"系统没有从本次 trace 中提取到可用于轨迹评测的实际执行步骤。",nextAction:"检查 trace 质量、采集粒度或执行记录是否完整。",retryable:!1,stage:"trace-step-analysis"},evaluator_timeout:{errorCategory:"evaluator",shortStatus:"评测超时",userMessage:"评测器运行超时。",reason:"评测器在限定时间内没有返回结果。",nextAction:"重试评测;如果持续出现,请检查模型服务响应时间。",retryable:!0,stage:"evaluator"},evaluator_output_invalid:{errorCategory:"evaluator",shortStatus:"评测器输出异常",userMessage:"评测器未返回有效结构化结果。",reason:"评测器输出无法解析为系统需要的 JSON/评分结构。",nextAction:"重试评测;如果持续出现,请检查评测器模型输出。",retryable:!0,stage:"evaluator"},result_evaluator_failed:{errorCategory:"evaluator",shortStatus:"结果评测失败",userMessage:"任务完成度评测失败。",reason:"任务完成度评测器没有产出可用评分或评测 session。",nextAction:"重试评测;如果持续出现,请检查模型配置和评测器日志。",retryable:!0,stage:"result-evaluator"},persist_failed:{errorCategory:"system",shortStatus:"保存失败",userMessage:"评测结果保存失败。",reason:"评测已执行,但结果写入数据库时失败。",nextAction:"检查数据库或服务状态后重试。",retryable:!0,stage:"persist"},evaluator_recovered_failed:{errorCategory:"system",shortStatus:"评测进程异常",userMessage:"评测进程异常中断。",reason:"后台恢复逻辑发现该评测长期停留在 pending/running 状态。",nextAction:"重试评测,并查看服务日志确认是否有进程异常。",retryable:!0,stage:"recover"}};function i(e){return e&&"object"==typeof e&&!Array.isArray(e)?e:{}}function o(e){return"number"==typeof e&&Number.isFinite(e)}function l(e){return i(e?.rawAnalysis)}function c(e){return Array.isArray(e.selectedEvaluators)?e.selectedEvaluators:[]}function d(e,t){let r=c(e);return 0===r.length?t===n:r.includes(t)}function u(e){return!!(d(e,n)&&o(e.trajectoryScore)||d(e,"preset-agent-task-completion")&&null!=function(e){if(o(e.resultEvaluationScore))return e.resultEvaluationScore;let t=i(l(e).resultEvaluation);return o(t.score)?t.score:null}(e))||!!c(e).some(e=>e.startsWith("custom-"))&&null!=function(e){if(o(e.customEvaluationScore))return e.customEvaluationScore;let t=(Array.isArray(e.customEvaluations)?e.customEvaluations:e.customEvaluations&&"object"==typeof e.customEvaluations?Object.values(e.customEvaluations):[]).map(e=>i(e).score).filter(o);return t.length>0?t.reduce((e,t)=>e+t,0)/t.length:null}(e)}function g(e,t={}){let r=s[e]??{errorCategory:"system",shortStatus:"评测失败",userMessage:"评测执行失败。",reason:"评测执行过程中出现未分类异常。",nextAction:"重试评测;如果持续出现,请查看服务日志。",retryable:!0,stage:"unknown"};return{errorCode:e,errorCategory:r.errorCategory,shortStatus:r.shortStatus,userMessage:t.userMessage||r.userMessage,reason:t.reason||r.reason,nextAction:t.nextAction||r.nextAction,retryable:"boolean"==typeof t.retryable?t.retryable:r.retryable,stage:t.stage||r.stage,...t.details?{details:t.details}:{},...t.internal?{internal:t.internal}:{}}}function f(e){if(!e)return null;let t=e.diagnostic;if(t&&"object"==typeof t&&!Array.isArray(t))return t;let n=l(e),a=n.diagnostic;if(a&&"object"==typeof a&&!Array.isArray(a))return a;let s="string"==typeof n.resultEvaluationError?n.resultEvaluationError.trim():"",i=String(e.resultEvaluationError||s||"").trim();if(i)return g(i.includes("结果输出提取失败")||i.includes("任务输出提取")?"task_output_extraction_failed":"result_evaluator_failed",{details:i,reason:i});let o=String(e.errorMessage||"").trim();return o?o.includes(r)?g("case_not_matched",{details:v(o),reason:v(o)}):"failed"===e.status&&o.includes("[recover]")?g("evaluator_recovered_failed",{details:o,reason:o}):null:null}function p(e){return"done"===e||"failed"===e}function h(e){return"pending"===e.status?"pending":"running"===e.status?"running":f(e)?"done"===e.status&&u(e)?"partial_failed":"failed":e.status}function x(e){if("pending"===e.status)return"待评测";if("running"===e.status)return"评测中";let t=f(e);return t?"done"===e.status&&u(e)?"部分评测失败":t.shortStatus:"done"===e.status?"已评测":"评测失败"}function y(e){if("pending"===e.status)return"muted";if("running"===e.status)return"running";let t=f(e);return t?"done"===e.status&&u(e)||["trace","dataset","case","skill"].includes(t.errorCategory)?"warning":"danger":"done"===e.status?"success":"danger"}function m(e){if("pending"===e.status||"running"===e.status)return"";let t=f(e);return t?[t.userMessage,t.reason?`具体原因:${t.reason}`:"",t.nextAction?`下一步建议:${t.nextAction}`:"",t.details?`详细信息:${t.details}`:""].filter(Boolean).join("\n"):String(e.errorMessage||e.resultEvaluationError||"").trim()}function j(e,t={}){if(!e)return"该执行尚未评测";let r=f(e);if(r&&"pending"!==e.status&&"running"!==e.status)return[r.userMessage,"",`错误分类:${a[r.errorCategory]}`,`具体原因:${r.reason}`,`下一步建议:${r.nextAction}`,r.details?`详细信息:${r.details}`:""].filter(e=>""!==e).join("\n");let n=t.composite??null;return null!=n&&Number.isFinite(n)?n>=.8?"该执行在结果与过程两个维度均表现良好":n>=.5?"该执行结果基本可用,但部分关键动作覆盖不足":"该执行关键动作覆盖不足,建议优先排查":"该执行尚未评测"}function v(e){return e.replace(r,"").trim()||"未匹配到可评测 case"}e.s(["getTrajectoryDisplayStatus",()=>h,"getTrajectoryOverallConclusion",()=>j,"getTrajectoryStatusLabel",()=>x,"getTrajectoryStatusTitle",()=>m,"getTrajectoryStatusTone",()=>y,"isTrajectoryEvaluationTerminal",()=>p,"parseTrajectoryDiagnostic",()=>f],861171)},642726,e=>{"use strict";let t=["evaluator","checker","judge","locator","assessor","grader","评估器"],r=["你是「轨迹评估器」的总协调者","你是「Agent 任务完成度」评估器","trace-quality-evaluator","task-completion-evaluator","reference_trajectory","actual_trace","key_point_findings","key-points-checker","detect_redundancy_and_loops","已写入 final_result.json"],n=new Set(["trace-quality-evaluator","task-completion-evaluator"]);function a(e){let r=String(e||"").trim().toLowerCase();return!!r&&(!!n.has(r)||t.some(e=>r.includes(e)))}function s(e){return!!e&&(a(e.name)||a(e.parentAgent))}function i(e){return!!e&&(!![e.agentName,e.agent,...Array.isArray(e.agents)?e.agents:[]].some(e=>a(e))||!!e&&[e.query,e.final_result,e.label].some(e=>{let t=String(e||"");return!!t&&r.some(e=>t.includes(e))}))}function o(e){return e?String([e.agentName,e.agent,...Array.isArray(e.agents)?e.agents:[]].find(e=>{let t=String(e||"").trim();return t&&!a(t)})||"").trim():""}e.s(["getPrimaryExecutionAgentName",()=>o,"isEvaluatorAgent",()=>s,"isEvaluatorTraceRecord",()=>i])},573474,e=>{"use strict";let t=(0,e.i(456420).default)("trash-2",[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]]);e.s(["Trash2",()=>t],573474)},347101,e=>{"use strict";var t=e.i(843476),r=e.i(271645),n=e.i(853138),a=e.i(776639),s=e.i(519455),i=e.i(975157);function o({open:e,onOpenChange:o,title:l,description:c,confirmText:d="确认",cancelText:u="取消",tone:g="normal",onConfirm:f}){let[p,h]=r.useState(!1),x=async()=>{try{h(!0),await f(),o(!1)}finally{h(!1)}};return(0,t.jsx)(a.Dialog,{open:e,onOpenChange:e=>!p&&o(e),children:(0,t.jsxs)(a.DialogContent,{className:"sm:max-w-md",children:[(0,t.jsxs)(a.DialogHeader,{children:[(0,t.jsxs)(a.DialogTitle,{className:(0,i.cn)("flex items-center gap-2","danger"===g&&"text-destructive"),children:["danger"===g&&(0,t.jsx)(n.AlertTriangle,{className:"size-4"}),l]}),c&&(0,t.jsx)(a.DialogDescription,{children:c})]}),(0,t.jsxs)(a.DialogFooter,{children:[(0,t.jsx)(s.Button,{variant:"outline",onClick:()=>o(!1),disabled:p,children:u}),(0,t.jsx)(s.Button,{onClick:x,disabled:p,className:(0,i.cn)("danger"===g&&"bg-error text-error-foreground hover:bg-error/90"),children:p?"处理中…":d})]})]})})}e.s(["ConfirmDialog",()=>o])},111298,e=>{"use strict";var t=e.i(843476),r=e.i(271645),n=e.i(618566),a=e.i(573474),s=e.i(846696),i=e.i(183752),o=e.i(927643),l=e.i(540568),c=e.i(726526),d=e.i(347101),u=e.i(76706),g=e.i(861171),f=e.i(642726),p=e.i(460435);let h="#534AB7",x="#EEEDFE",y="#0F6E56",m="#A32D2D",j="#FFEBEB",v="#9A7311",b="#eceae4",S="#f3f2ee",w="#f9f9fb",k="#1a1a18",A="#2c2b28",C="#6b6a66",T="#8a8884",I="agent-insight:eval-history-state";function E(e){if(!e)return"--";try{return new Date(e).toLocaleString("zh-CN",{hour12:!1})}catch{return e}}function _(e){if(!e)return"--";try{let t=new Date(e),r=Date.now()-t.getTime();if(r<6e4)return"刚刚";if(r<36e5)return`${Math.floor(r/6e4)} 分钟前`;if(r<864e5)return`${Math.floor(r/36e5)} 小时前`;return`${Math.floor(r/864e5)} 天前`}catch{return e}}function $(e){return e&&e.slice(0,14)||"--"}function F(...e){for(let t of e){if("string"!=typeof t)continue;let e=t.trim();if(e)return e}return""}function W(e,t){let r=Array.isArray(e.selectedEvaluators)?e.selectedEvaluators:[];return 0===r.length?"preset-agent-trace-quality"===t:r.includes(t)}function M(e){let t=e.evaluatorName?e.evaluatorName.split("、").map(e=>e.trim()):[],r=e.evaluatorIds.map((e,r)=>e.startsWith("custom-")?"":t[r]?t[r]:"preset-agent-task-completion"===e?"Agent 任务完成度":"preset-agent-trace-quality"===e?"Agent 轨迹质量":e).filter(Boolean);return r.length>0?Array.from(new Set(r)).join("、"):"—"}function D(){let{t:e}=(0,c.useLocale)(),{user:a}=(0,o.useAuth)(),u=(0,n.useRouter)(),g=(0,n.useSearchParams)(),f=g?.get("runId")||"",y=g?.get("autoWatchOnly")==="1"||g?.get("autoWatchOnly")==="true",[m,j]=(0,r.useState)([]),[v,S]=(0,r.useState)([]),[w,A]=(0,r.useState)([]),[T,E]=(0,r.useState)(10),[_,$]=(0,r.useState)(!1),[F,W]=(0,r.useState)(!1),[M,D]=(0,r.useState)(null),[z,O]=(0,r.useState)(!0),[P,q]=(0,r.useState)(""),[H,U]=(0,r.useState)(!1),[J,K]=(0,r.useState)(y),[V,X]=(0,r.useState)(null),[Y,G]=(0,r.useState)(null),Q=(0,r.useRef)(null),Z=(0,r.useRef)(null),ee=(0,r.useRef)(!1),et=(0,r.useRef)("");(0,r.useEffect)(()=>{if(!a)return;let e=!1;return(async()=>{if(f&&!ee.current&&1){let e=window.sessionStorage.getItem(I);if(e)try{let t=JSON.parse(e);if(Date.now()-Number(t.savedAt||0)<6e5&&t.user===a&&t.selectedRunId===f&&t.autoWatchOnly===y&&Array.isArray(t.runSummaries)&&t.runSummaries.some(e=>e.runId===f)){ee.current=!0,A(t.runSummaries),E(t.historyOffset||10),$(!!t.historyHasMore),D(f),K(t.autoWatchOnly),U(t.historyOpen),j([]),S([]),q(""),O(!1),requestAnimationFrame(()=>{Z.current&&(Z.current.scrollTop=t.historyScrollTop||0)});return}}catch{window.sessionStorage.removeItem(I)}}e||(O(!0),A([]),j([]),S([]),E(10),$(!1),D(null));try{let t=new URLSearchParams({user:a,limit:String(10)}),r=f||et.current;r&&t.set("includeRunId",r),J&&t.set("autoWatchOnly","1");let n=await (0,i.apiFetch)(`/api/eval/trajectory/runs?${t.toString()}`),s=await n.json();if(!n.ok)throw Error(s?.error||n.statusText);let o=Array.isArray(s?.runs)?s.runs:[];if(!e){A(o),E("number"==typeof s?.nextOffset?s.nextOffset:10),$(!!s?.hasMore);let e=f||et.current,t=e?o.find(t=>t.runId===e):null;D(t?.runId||o[0]?.runId||null),et.current="",q("")}}catch(r){let t=r instanceof Error?r.message:String(r);e||q(`加载失败:${t}`)}finally{e||O(!1)}})(),()=>{e=!0}},[a,J,f,y]),(0,r.useEffect)(()=>{if(!a||!M)return;let e=!1,t=async()=>{try{let t=await (0,i.apiFetch)(`/api/eval/trajectory/results?user=${encodeURIComponent(a)}&runId=${encodeURIComponent(M)}&limit=500`),r=await t.json();if(!t.ok)throw Error(r?.error||t.statusText);let n=Array.isArray(r?.results)?r.results:[],s=Array.from(new Set(n.map(e=>e.taskId||"").filter(Boolean))),o=[];if(s.length>0){let e=new URLSearchParams({user:a,taskIds:s.join(","),skipAutoEvalReady:"1"}),t=await (0,i.apiFetch)(`/api/observe/data?${e.toString()}`),r=await t.json();if(!t.ok)throw Error(r?.error||t.statusText);o=Array.isArray(r)?r:[]}e||(j(n),S(o),q(""))}catch(r){let t=r instanceof Error?r.message:String(r);e||q(`加载失败:${t}`)}};t();let r=setInterval(t,5e3);return()=>{e=!0,clearInterval(r)}},[M,a]),(0,r.useEffect)(()=>{M||(j([]),S([]))},[M]),(0,r.useEffect)(()=>{let e=Q.current;if(!e||!a||!_||F)return;let t=new IntersectionObserver(e=>{if(!e.some(e=>e.isIntersecting))return;W(!0);let t=new URLSearchParams({user:a,limit:String(10)});t.set("offset",String(T)),J&&t.set("autoWatchOnly","1"),(0,i.apiFetch)(`/api/eval/trajectory/runs?${t.toString()}`).then(async e=>{let t=await e.json();if(!e.ok)throw Error(t?.error||e.statusText);let r=Array.isArray(t?.runs)?t.runs:[];A(e=>{let t=new Set(e.map(e=>e.runId));return[...e,...r.filter(e=>!t.has(e.runId))]}),E("number"==typeof t?.nextOffset?t.nextOffset:T+10),$(!!t?.hasMore)}).catch(e=>q(`加载历史任务失败:${e instanceof Error?e.message:String(e)}`)).finally(()=>W(!1))},{rootMargin:"180px"});return t.observe(e),()=>t.disconnect()},[J,_,F,T,a]);let er=(0,r.useMemo)(()=>{let e=new Map;for(let t of v)t.task_id&&e.set(t.task_id,t),t.upload_id&&e.set(t.upload_id,t);return e},[v]),en=(0,r.useMemo)(()=>w.find(e=>e.runId===M)||null,[w,M]),ea=(0,r.useMemo)(()=>m.filter(e=>!e.watchPlaceholder),[m]),es=async()=>{if(a&&V){G(V.runId);try{let e=await (0,i.apiFetch)("/api/eval/trajectory/runs",{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({user:a,runId:V.runId})}),t=await e.json();if(!e.ok)throw Error(t?.error||e.statusText);let r=w.findIndex(e=>e.runId===V.runId),n=w.filter(e=>e.runId!==V.runId),o=M===V.runId?n[r]?.runId||n[r-1]?.runId||n[0]?.runId||null:M;A(n),M===V.runId&&(D(o),j([]),S([])),X(null),q(""),s.toast.success(`已删除评测批次「${V.taskTitle}」`)}catch(e){throw s.toast.error(`删除失败:${e instanceof Error?e.message:String(e)}`),e}finally{G(null)}}},ei=(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8},children:[(0,t.jsxs)("button",{onClick:()=>U(e=>!e),title:H?"收起历史任务":"展开历史任务",style:{display:"flex",alignItems:"center",gap:5,padding:"5px 10px",background:H?x:"transparent",color:H?h:C,border:`1px solid ${H?h:b}`,borderRadius:6,fontSize:12,fontWeight:500,cursor:"pointer",transition:"all 0.15s"},children:[(0,t.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 13 13",fill:"none",children:[(0,t.jsx)("circle",{cx:"6.5",cy:"6.5",r:"5.5",stroke:"currentColor",strokeWidth:"1.3"}),(0,t.jsx)("path",{d:"M6.5 3.5v3l2 1",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round"})]}),"历史任务"]}),(0,t.jsx)("button",{onClick:()=>u.push("/eval/trajectory"),style:{padding:"6px 14px",background:h,color:"#fff",border:"none",borderRadius:6,fontSize:12,fontWeight:500,cursor:"pointer"},children:"+ 发起新评测"})]});return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(l.AppTopBar,{title:(0,t.jsx)(p.Term,{id:"eval-batch",label:e("nav.eval")}),actions:ei,showDefaultActions:!1}),(0,t.jsxs)("div",{style:{flex:1,display:"flex",overflow:"hidden",minHeight:0},children:[(0,t.jsx)("main",{style:{flex:1,overflowY:"auto",minWidth:0,color:k},children:z?(0,t.jsx)("div",{style:{padding:24,color:C},children:"正在加载评测批次..."}):0!==w.length||J?0===w.length?(0,t.jsx)(L,{onClear:()=>K(!1)}):en?(0,t.jsx)(R,{run:en,results:ea,records:v,recordMap:er,router:u,user:a,error:P,autoWatchOnly:J,onBeforeOpenTrace:function(e){if(!a)return;let t={user:a,selectedRunId:e,autoWatchOnly:J,historyOpen:H,historyOffset:T,historyHasMore:_,historyScrollTop:Z.current?.scrollTop||0,runSummaries:w,savedAt:Date.now()};window.sessionStorage.setItem(I,JSON.stringify(t))},onDeleteRun:()=>X(en),deleteDisabled:en.runningCount>0||Y===en.runId,deleting:Y===en.runId},en.runId):null:(0,t.jsx)(N,{onCreate:()=>u.push("/eval/trajectory"),error:P})}),(0,t.jsxs)("aside",{style:{width:300*!!H,flexShrink:0,borderLeft:H?`1px solid ${b}`:"none",background:"#FBFAF6",display:"flex",flexDirection:"column",overflow:"hidden",transition:"width 0.2s ease"},children:[(0,t.jsxs)("header",{style:{display:"flex",alignItems:"center",padding:"12px 16px",borderBottom:`1px solid ${b}`,flexShrink:0,whiteSpace:"nowrap"},children:[(0,t.jsxs)("div",{style:{fontSize:13,fontWeight:600,color:k,display:"flex",alignItems:"center",gap:6},children:[(0,t.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 13 13",fill:"none",children:[(0,t.jsx)("circle",{cx:"6.5",cy:"6.5",r:"5.5",stroke:"currentColor",strokeWidth:"1.3"}),(0,t.jsx)("path",{d:"M6.5 3.5v3l2 1",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round"})]}),"历史任务"]}),(0,t.jsxs)("button",{type:"button",onClick:function(){et.current=M||"",K(e=>!e)},title:J?"查看全部历史任务":"只看自动观测任务",style:{marginLeft:8,padding:"5px 10px",height:28,borderRadius:8,border:`1px solid ${J?h:b}`,background:J?x:"#fff",color:J?h:C,display:"flex",alignItems:"center",gap:6,fontSize:12,fontWeight:500,cursor:"pointer"},children:[(0,t.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 13 13",fill:"none","aria-hidden":"true",children:(0,t.jsx)("path",{d:"M2 3h9M3.5 6.5h6M5.2 10h2.6",stroke:"currentColor",strokeWidth:"1.4",strokeLinecap:"round"})}),(0,t.jsx)("span",{children:J?"全部任务":"自动观测任务"})]})]}),(0,t.jsxs)("div",{ref:Z,style:{flex:1,overflowY:"auto",padding:10,display:"flex",flexDirection:"column",gap:6},children:[0===w.length?(0,t.jsx)("div",{style:{padding:24,textAlign:"center",fontSize:12,color:C},children:J?"没有自动观测任务":"还没有任何评测任务"}):w.map(e=>(0,t.jsx)(B,{run:e,active:e.runId===M,onClick:()=>D(e.runId),onDelete:()=>X(e),deleteDisabled:e.runningCount>0||Y===e.runId,deleting:Y===e.runId},e.runId)),(0,t.jsx)("div",{ref:Q,style:{height:1}}),F&&(0,t.jsx)("div",{style:{padding:8,textAlign:"center",fontSize:11,color:C},children:"正在加载更多..."})]})]})]}),(0,t.jsx)(d.ConfirmDialog,{open:!!V,onOpenChange:e=>{(e||!Y)&&(e||X(null))},title:"删除这次评测执行?",description:V?`会删除该批次下的评测结果和由本批次派生的优化点数据,原始 trace 会保留,可稍后重新评测。任务:${V.taskTitle}`:void 0,confirmText:"删除批次",cancelText:"取消",tone:"danger",onConfirm:es})]})}function z(){return(0,t.jsx)(r.Suspense,{fallback:(0,t.jsx)("div",{style:{padding:24,color:C},children:"Loading..."}),children:(0,t.jsx)(D,{})})}function R({run:e,results:n,records:s,recordMap:o,router:l,user:c,error:d,autoWatchOnly:I,onBeforeOpenTrace:D,onDeleteRun:z,deleteDisabled:R,deleting:B}){let[O,N]=(0,r.useState)(!1),[L,V]=(0,r.useState)(new Set),[X,Y]=(0,r.useState)(!1),[G,Q]=(0,r.useState)(""),[Z,ee]=(0,r.useState)(""),[et,er]=(0,r.useState)([]),[en,ea]=(0,r.useState)(!1),[es,ei]=(0,r.useState)(null),eo=es??e.autoWatch,el=O?et:s,ec=(0,r.useMemo)(()=>new Set(n.map(e=>e.taskId||e.executionId||"").filter(Boolean)),[n]),ed=(0,r.useMemo)(()=>{let t=e.watchedAgent||e.executionAgent;return el.filter(e=>!!e.task_id).filter(e=>!(0,f.isEvaluatorTraceRecord)(e)).filter(e=>!ec.has(e.task_id||"")).filter(e=>(0,f.getPrimaryExecutionAgentName)(e)===t).sort((e,t)=>{let r=e.timestamp?new Date(e.timestamp).getTime():0;return(t.timestamp?new Date(t.timestamp).getTime():0)-r})},[ec,el,e.executionAgent,e.watchedAgent]);(0,r.useEffect)(()=>{if(!O||!c||et.length>0)return;let e=!1,t=new URLSearchParams({user:c,skipAutoEvalReady:"1"});return(0,i.apiFetch)(`/api/observe/data?${t.toString()}`).then(async t=>{let r=await t.json();if(!t.ok)throw Error(r?.error||t.statusText);e||er(Array.isArray(r)?r:[])}).catch(t=>{e||ee(`加载可追加 trace 失败:${t instanceof Error?t.message:String(t)}`)}),()=>{e=!0}},[et.length,O,c]);let eu=async()=>{if(!c)return void ee("请先登录");let t=Array.from(L);if(0===t.length)return void ee("请至少选择一条 trace");Y(!0),ee(""),Q("");try{let r=await (0,i.apiFetch)("/api/eval/trajectory/run",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({user:c,evaluatorRunId:e.runId,taskIds:t,evaluators:e.evaluatorIds})}),n=await r.json();if(!r.ok)return void ee(`追加失败:${n?.error||r.statusText}`);Q(`已追加 ${n.created?.length??0} 条 trace 到本批次`),V(new Set),N(!1)}catch(e){ee(`追加失败:${e instanceof Error?e.message:String(e)}`)}finally{Y(!1)}},eg=async t=>{if(!c)return void ee("请先登录");ea(!0),ee(""),Q(""),ei(t);try{let r=await (0,i.apiFetch)("/api/eval/trajectory/run",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({user:c,evaluatorRunId:e.runId,autoWatch:t})}),n=await r.json();if(!r.ok){ei(e.autoWatch),ee(`${t?"开启":"关闭"}自动观测失败:${n?.error||r.statusText}`);return}Q(t?"已重新开启自动观测":"已关闭自动观测,后续新 trace 不会再自动追加")}catch(r){ei(e.autoWatch),ee(`${t?"开启":"关闭"}自动观测失败:${r instanceof Error?r.message:String(r)}`)}finally{ea(!1)}};return(0,t.jsxs)("div",{style:{padding:"18px 22px 28px"},children:[(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10,marginBottom:14,flexWrap:"wrap"},children:[(0,t.jsx)("span",{style:H(x,h),children:"评测批次"}),eo&&(0,t.jsx)("span",{style:H("#EAF7F1",y),children:"自动观测"}),(0,t.jsx)("span",{style:{fontSize:12,color:C},children:"任务已同步到历史卡片与详情页"}),(0,t.jsx)("div",{style:{flex:1}}),(0,t.jsx)("button",{type:"button","aria-label":`删除评测批次 ${e.taskTitle}`,title:B?"删除中...":R?"评测进行中,暂时不能删除":"删除该评测批次",disabled:R,onClick:z,style:{width:28,height:28,borderRadius:8,border:`1px solid ${R?b:"#F1D1D1"}`,background:B?j:"#fff",color:R?T:m,display:"inline-flex",alignItems:"center",justifyContent:"center",cursor:R?"not-allowed":"pointer",opacity:R?.6:1},children:(0,t.jsx)(a.Trash2,{size:14,strokeWidth:2.1})}),(0,t.jsxs)("span",{style:{fontSize:11,color:C},children:["发起时间:",E(e.createdAt)]})]}),d&&(0,t.jsx)("div",{style:U(m,j,"#FFD4D4"),children:d}),(0,t.jsxs)("div",{style:{background:"linear-gradient(135deg, #FBFAF6 0%, #FFFFFF 100%)",border:`1px solid ${b}`,borderRadius:8,padding:16,marginBottom:14},children:[(0,t.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",gap:16,alignItems:"flex-start",flexWrap:"wrap"},children:[(0,t.jsxs)("div",{style:{minWidth:0,flex:"1 1 420px"},children:[(0,t.jsx)("div",{style:{fontSize:12,color:C,marginBottom:6},children:"评测任务"}),(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"},children:[(0,t.jsx)("div",{style:{fontSize:20,fontWeight:700,color:k,lineHeight:1.3},children:e.taskTitle}),eo&&(0,t.jsx)("span",{style:H("#EAF7F1",y,!0),children:"自动观测"})]}),(0,t.jsx)("div",{style:{marginTop:6,fontSize:12.5,color:e.taskDescription?A:T,lineHeight:1.6},children:e.taskDescription||""})]}),(0,t.jsx)("div",{style:{display:"flex",gap:8,flexWrap:"wrap",justifyContent:"flex-end",minWidth:408},children:(0,t.jsxs)("div",{style:{minWidth:200,flex:"0 0 200px",padding:"12px 14px",borderRadius:10,border:`1px solid ${eo?"#CDECDD":b}`,background:eo?"#F6FFFA":"#fff",display:"flex",alignItems:"center",justifyContent:"space-between",gap:14},children:[(0,t.jsxs)("div",{style:{minWidth:0},children:[(0,t.jsx)("div",{style:{fontSize:11.5,color:C,marginBottom:4},children:(0,t.jsx)(p.Term,{id:"auto-observe",label:"自动观测"})}),(0,t.jsx)("div",{style:{fontSize:14,color:eo?y:T,fontWeight:700},children:eo?"开启中":"已关闭"})]}),(0,t.jsx)(q,{checked:eo,disabled:en,onChange:eg,"aria-label":"切换自动观测"})]})})]}),(0,t.jsxs)("div",{style:{marginTop:16,paddingTop:16,borderTop:`1px solid ${S}`,display:"grid",gridTemplateColumns:"minmax(220px, 1.25fr) minmax(180px, 1.15fr) repeat(3, minmax(120px, 1fr))",gap:14},children:[(0,t.jsx)(P,{label:(0,t.jsx)(p.Term,{id:"eval-agent",label:"执行 Agent"}),value:e.executionAgent||"—",mono:!0,primary:!0,truncate:!0}),(0,t.jsx)(P,{label:(0,t.jsx)(p.Term,{id:"evaluator",label:"评估器"}),value:M(e),truncate:!0}),(0,t.jsx)(P,{label:"trace 总数",value:String(e.traceCount)}),(0,t.jsx)(P,{label:"评测进度",value:`${e.doneCount} / ${e.traceCount}`,detail:(0,t.jsxs)("span",{style:{fontSize:11},children:[(0,t.jsxs)("span",{style:{color:y},children:["完成 ",e.doneCount]}),e.runningCount>0&&(0,t.jsxs)("span",{style:{color:"#1677ff"},children:[" · 进行中 ",e.runningCount]}),e.failedCount>0&&(0,t.jsxs)("span",{style:{color:m},children:[" · 失败 ",e.failedCount]})]})}),(0,t.jsx)(P,{label:"平均分",value:null!=e.avgScore?`${(0,u.fmtPercentScore)(e.avgScore)} / 100`:"--",valueColor:null!=e.avgScore?e.avgScore>=.8?y:e.avgScore>=.5?v:m:T})]})]}),(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,marginBottom:8},children:[(0,t.jsx)("div",{style:{fontSize:13,fontWeight:600,color:k},children:"本批次 trace 评测列表"}),(0,t.jsx)("div",{style:{fontSize:12,color:C},children:"点行查看单条 trace 的评测细节"}),(0,t.jsx)("div",{style:{flex:1}}),(0,t.jsx)("button",{type:"button",onClick:()=>{N(e=>!e),ee(""),Q("")},style:{padding:"5px 11px",borderRadius:6,border:`1px solid ${h}`,background:O?x:"#fff",color:h,fontSize:12,fontWeight:500,cursor:"pointer"},children:"+ 增加评测 trace"})]}),(O||G||Z)&&(0,t.jsxs)("div",{style:{border:`1px solid ${b}`,borderRadius:8,background:"#fff",padding:12,marginBottom:10},children:[Z&&(0,t.jsx)("div",{style:U(m,j,"#FFD4D4"),children:Z}),G&&(0,t.jsx)("div",{style:U(y,"#F0F7F4","#D1EAE2"),children:G}),O?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,marginBottom:8},children:[(0,t.jsxs)("div",{style:{fontSize:12,color:C},children:["可追加 trace:",ed.length]}),(0,t.jsx)("div",{style:{flex:1}}),(0,t.jsx)("button",{type:"button",disabled:X||0===L.size,onClick:eu,style:{padding:"5px 12px",borderRadius:6,border:"none",background:X||0===L.size?"#bdb8df":h,color:"#fff",fontSize:12,cursor:X||0===L.size?"not-allowed":"pointer"},children:X?"追加中...":`开始评测 (${L.size})`})]}),0===ed.length?(0,t.jsx)("div",{style:{padding:16,textAlign:"center",fontSize:12,color:C},children:"没有可追加的 trace。"}):(0,t.jsxs)("div",{style:{maxHeight:260,overflow:"auto",border:`1px solid ${S}`,borderRadius:6},children:[(0,t.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"28px minmax(170px, 220px) minmax(0, 1fr) minmax(0, 1fr) 84px",gap:10,alignItems:"center",padding:"8px 10px",borderBottom:`1px solid ${S}`,background:w,color:C,fontSize:11,fontWeight:500},children:[(0,t.jsx)("span",{}),(0,t.jsx)("span",{children:"TRACE ID"}),(0,t.jsx)("span",{children:"Trace 任务输入"}),(0,t.jsx)("span",{children:"Trace 任务输出"}),(0,t.jsx)("span",{style:{textAlign:"right"},children:"执行时间"})]}),ed.map(e=>{let r=e.task_id||"";return(0,t.jsxs)("label",{style:{display:"grid",gridTemplateColumns:"28px minmax(170px, 220px) minmax(0, 1fr) minmax(0, 1fr) 84px",gap:10,alignItems:"center",padding:"8px 10px",borderBottom:`1px solid ${S}`,cursor:"pointer",fontSize:12},children:[(0,t.jsx)("input",{type:"checkbox",checked:L.has(r),onChange:()=>{V(e=>{let t=new Set(e);return t.has(r)?t.delete(r):t.add(r),t})}}),(0,t.jsx)("code",{style:{color:C,fontFamily:"var(--font-mono)",whiteSpace:"nowrap"},title:r,children:$(r)}),(0,t.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},title:e.query||"",children:e.query||"(空输入)"}),(0,t.jsxs)("span",{style:{minWidth:0},children:[(0,t.jsx)("span",{style:{display:"block",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},title:e.final_result||"",children:e.final_result||"—"}),(0,t.jsxs)("span",{style:{display:"block",color:T,fontSize:10,marginTop:2},children:[e.framework||"",e.model?` \xb7 ${e.model}`:""]})]}),(0,t.jsx)("span",{style:{color:C,textAlign:"right"},children:_(e.timestamp)})]},r)})]})]}):null]}),(0,t.jsx)("div",{style:{border:`1px solid ${b}`,borderRadius:9,overflow:"hidden",background:"#fff"},children:(0,t.jsxs)("table",{style:{width:"100%",borderCollapse:"collapse",fontSize:13},children:[(0,t.jsx)("thead",{children:(0,t.jsxs)("tr",{style:{background:w,borderBottom:`1px solid ${b}`},children:[(0,t.jsx)("th",{style:J(170,"left"),children:(0,t.jsx)(p.Term,{id:"trace",label:"TRACE ID"})}),(0,t.jsx)("th",{style:J(void 0,"left"),children:(0,t.jsx)(p.Term,{id:"trace",label:"Trace 任务输入"})}),(0,t.jsx)("th",{style:J(void 0,"left"),children:(0,t.jsx)(p.Term,{id:"trace",label:"Trace 任务输出"})}),(0,t.jsx)("th",{style:J(80,"center"),children:"评测状态"}),(0,t.jsx)("th",{style:J(92,"left"),children:"得分"}),(0,t.jsx)("th",{style:J(110,"left"),children:"评测时间"})]})}),(0,t.jsx)("tbody",{children:n.map(r=>{let n,a=r.taskId||r.executionId||"",s=o.get(a),i=!!a,c=function(e){if(!(0,g.isTrajectoryEvaluationTerminal)(e.status)||"done"!==(0,g.getTrajectoryDisplayStatus)(e))return null;let t=W(e,"preset-agent-trace-quality")?e.trajectoryScore:null,r=W(e,"preset-agent-task-completion")?e.resultEvaluationScore??null:null;if(W(e,"preset-agent-trace-quality")&&(null==t||!Number.isFinite(t))||W(e,"preset-agent-task-completion")&&(null==r||!Number.isFinite(r)))return null;let n=[t,r].filter(e=>"number"==typeof e&&Number.isFinite(e));return n.length>0?n.reduce((e,t)=>e+t,0)/n.length:null}(r),d=F(r.traceInput,s?.query),f=F(r.traceOutput,s?.final_result),p=[F(s?.framework,r.traceFramework),F(s?.model,r.traceModel)].filter(Boolean).join(" · ");return(0,t.jsxs)("tr",{onClick:()=>{if(!a)return;D(e.runId);let t=new URLSearchParams({runId:e.runId,datasetId:r.datasetId,resultId:r.id});I&&t.set("autoWatchOnly","1"),l.push(`/eval/trajectory/${encodeURIComponent(a)}?${t.toString()}`)},style:{borderBottom:`1px solid ${S}`,cursor:i?"pointer":"default"},onMouseEnter:e=>{i&&(e.currentTarget.style.background=w)},onMouseLeave:e=>e.currentTarget.style.background="transparent",children:[(0,t.jsx)("td",{style:{...K("left"),fontFamily:"var(--font-mono)",color:A,whiteSpace:"nowrap"},title:a,children:$(a)}),(0,t.jsx)("td",{style:{...K("left"),maxWidth:280},title:d,children:d?(0,t.jsx)("div",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:d}):(0,t.jsx)("span",{style:{color:T},children:"未提取到任务输入"})}),(0,t.jsx)("td",{style:{...K("left"),maxWidth:280},title:f,children:f?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("div",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:f}),p&&(0,t.jsx)("div",{style:{fontSize:11,color:T,marginTop:2},children:p})]}):(0,t.jsx)("span",{style:{color:T},children:"未提取到任务输出"})}),(0,t.jsx)("td",{style:K("center"),children:(0,t.jsx)("span",{style:{color:"warning"===(n=(0,g.getTrajectoryStatusTone)(r))?v:"danger"===n?m:"running"===n?"#1677ff":"success"===n?y:T,fontWeight:500},title:(0,g.getTrajectoryStatusTitle)(r),children:(0,g.getTrajectoryStatusLabel)(r)})}),(0,t.jsx)("td",{style:{...K("left"),minWidth:92,color:null!=c?h:T,fontWeight:600},children:null!=c?`${(0,u.fmtPercentScore)(c)} 分`:"--"}),(0,t.jsx)("td",{style:{...K("left"),color:C},children:E(r.createdAt)})]},r.id)})})]})})]})}function B({run:e,active:r,onClick:n,onDelete:s,deleteDisabled:i,deleting:o}){let l=null!=e.avgScore?`${(0,u.fmtPercentScore)(e.avgScore)} / 100`:"—",c=M(e);return(0,t.jsxs)("div",{onClick:n,style:{padding:12,border:`1px solid ${r?h:b}`,borderRadius:6,background:r?x:"#fff",cursor:"pointer",transition:"border-color 0.15s, background 0.15s"},onMouseEnter:e=>{r||(e.currentTarget.style.borderColor="#d8d6cf")},onMouseLeave:e=>{r||(e.currentTarget.style.borderColor=b)},children:[(0,t.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:8},children:[(0,t.jsxs)("div",{style:{minWidth:0,display:"flex",alignItems:"center",gap:8,flex:1},children:[(0,t.jsx)("span",{style:{fontSize:12.5,fontWeight:600,color:k,minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},title:e.taskTitle,children:e.taskTitle}),(0,t.jsx)("button",{type:"button","aria-label":`删除评测批次 ${e.taskTitle}`,title:o?"删除中...":i?"评测进行中,暂时不能删除":"删除该评测批次",disabled:i,onClick:e=>{e.stopPropagation(),i||s()},style:{flexShrink:0,width:22,height:22,borderRadius:6,border:"none",background:o?j:"transparent",color:i?T:C,display:"inline-flex",alignItems:"center",justifyContent:"center",cursor:i?"not-allowed":"pointer",opacity:i?.5:.9},children:(0,t.jsx)(a.Trash2,{size:13,strokeWidth:2.1})})]}),(0,t.jsx)("span",{style:{fontSize:11,color:C,flexShrink:0},children:_(e.createdAt)})]}),e.autoWatch&&(0,t.jsx)("div",{style:{marginBottom:8},children:(0,t.jsx)("span",{style:H("#EAF7F1",y,!0),children:"自动观测"})}),(0,t.jsx)("div",{style:{fontSize:11.5,color:e.taskDescription?A:T,marginBottom:8,lineHeight:1.5,display:"-webkit-box",WebkitLineClamp:2,WebkitBoxOrient:"vertical",overflow:"hidden"},title:e.taskDescription||"",children:e.taskDescription||""}),(0,t.jsx)("div",{style:{display:"flex",alignItems:"center",gap:8,marginBottom:8},children:(0,t.jsx)("span",{style:{fontSize:11,color:C,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},children:e.executionAgent||"未识别 Agent"})}),(0,t.jsxs)("div",{style:{fontSize:11,color:C,marginBottom:8,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},title:c,children:["评估器:",c]}),(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,fontSize:11},children:[(0,t.jsx)(O,{done:e.doneCount,running:e.runningCount,failed:e.failedCount,total:e.traceCount}),(0,t.jsxs)("span",{style:{color:C},children:[e.doneCount,"/",e.traceCount]}),(0,t.jsx)("span",{style:{flex:1}}),(0,t.jsx)("span",{style:{color:null!=e.avgScore?h:T,fontWeight:600},children:l})]})]})}function O({done:e,running:r,failed:n,total:a}){return 0===a?null:(0,t.jsxs)("div",{style:{display:"flex",height:4,width:60,background:w,borderRadius:2,overflow:"hidden"},children:[(0,t.jsx)("div",{style:{width:`${e/a*100}%`,background:y}}),(0,t.jsx)("div",{style:{width:`${r/a*100}%`,background:"#1677ff"}}),(0,t.jsx)("div",{style:{width:`${n/a*100}%`,background:m}})]})}function N({onCreate:e,error:r}){return(0,t.jsxs)("div",{style:{padding:"60px 22px",textAlign:"center",color:C},children:[(0,t.jsx)("div",{style:{marginBottom:12,fontSize:14},children:"还没有任何评测批次"}),r&&(0,t.jsx)("div",{style:{...U(m,j,"#FFD4D4"),maxWidth:480,margin:"0 auto 12px"},children:r}),(0,t.jsx)("button",{onClick:e,style:{padding:"8px 18px",background:h,color:"#fff",border:"none",borderRadius:6,fontSize:13,fontWeight:500,cursor:"pointer"},children:"发起首次评测 →"})]})}function L({onClear:e}){return(0,t.jsxs)("div",{style:{padding:"60px 22px",textAlign:"center",color:C},children:[(0,t.jsx)("div",{style:{marginBottom:12,fontSize:14},children:"没有自动观测历史任务"}),(0,t.jsx)("button",{onClick:e,style:{padding:"8px 18px",background:"#fff",color:h,border:`1px solid ${h}`,borderRadius:6,fontSize:13,fontWeight:500,cursor:"pointer"},children:"查看全部历史任务"})]})}function P({label:e,value:r,detail:n,primary:a,mono:s,valueColor:i,truncate:o}){return(0,t.jsxs)("div",{style:{minWidth:0},children:[(0,t.jsx)("div",{style:{fontSize:12,color:C,marginBottom:4},children:e}),(0,t.jsx)("div",{title:o?r:void 0,style:{fontSize:14,fontWeight:600,color:i||(a?k:A),fontFamily:s?"monospace":void 0,lineHeight:1.35,...o?{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}:{}},children:r}),n?(0,t.jsx)("div",{style:{marginTop:3},children:n}):null]})}function q({checked:e,disabled:r,onChange:n,"aria-label":a}){return(0,t.jsx)("button",{type:"button",role:"switch","aria-checked":e,"aria-label":a,disabled:r,onClick:()=>n(!e),style:{width:42,height:22,borderRadius:999,border:`1px solid ${e?"#21A36B":"#C9CDD3"}`,background:e?"#23B26F":"#D6D8DC",padding:2,cursor:r?"not-allowed":"pointer",opacity:r?.6:1,boxShadow:e?"inset 0 0 0 1px rgba(255,255,255,0.2), 0 1px 4px rgba(18, 128, 79, 0.16)":"inset 0 0 0 1px rgba(255,255,255,0.35)",transition:"background 0.16s ease, border-color 0.16s ease, box-shadow 0.16s ease"},children:(0,t.jsx)("span",{style:{display:"block",width:16,height:16,borderRadius:"50%",background:"#fff",transform:e?"translateX(20px)":"translateX(0)",boxShadow:"0 1px 4px rgba(24, 24, 27, 0.2)",transition:"transform 0.16s ease"}})})}function H(e,t,r){return{display:"inline-block",padding:r?"1px 6px":"2px 8px",background:e,color:t,borderRadius:4,fontSize:r?10:11,fontWeight:500,whiteSpace:"nowrap"}}function U(e,t,r){return{padding:10,marginBottom:12,borderRadius:6,background:t,border:`1px solid ${r}`,color:e,fontSize:12}}function J(e,t="left"){return{padding:"9px 10px",textAlign:t,fontWeight:500,color:C,fontSize:12,...e?{width:e}:{}}}function K(e="left"){return{padding:"9px 10px",textAlign:e,verticalAlign:"middle",fontSize:13}}e.s(["default",()=>z])}]);
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,573474,e=>{"use strict";let t=(0,e.i(456420).default)("trash-2",[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]]);e.s(["Trash2",()=>t],573474)},347101,e=>{"use strict";var t=e.i(843476),r=e.i(271645),n=e.i(853138),a=e.i(776639),s=e.i(519455),i=e.i(975157);function o({open:e,onOpenChange:o,title:l,description:c,confirmText:d="确认",cancelText:u="取消",tone:g="normal",onConfirm:f}){let[p,h]=r.useState(!1),x=async()=>{try{h(!0),await f(),o(!1)}finally{h(!1)}};return(0,t.jsx)(a.Dialog,{open:e,onOpenChange:e=>!p&&o(e),children:(0,t.jsxs)(a.DialogContent,{className:"sm:max-w-md",children:[(0,t.jsxs)(a.DialogHeader,{children:[(0,t.jsxs)(a.DialogTitle,{className:(0,i.cn)("flex items-center gap-2","danger"===g&&"text-destructive"),children:["danger"===g&&(0,t.jsx)(n.AlertTriangle,{className:"size-4"}),l]}),c&&(0,t.jsx)(a.DialogDescription,{children:c})]}),(0,t.jsxs)(a.DialogFooter,{children:[(0,t.jsx)(s.Button,{variant:"outline",onClick:()=>o(!1),disabled:p,children:u}),(0,t.jsx)(s.Button,{onClick:x,disabled:p,className:(0,i.cn)("danger"===g&&"bg-error text-error-foreground hover:bg-error/90"),children:p?"处理中…":d})]})]})})}e.s(["ConfirmDialog",()=>o])},76706,861171,e=>{"use strict";function t(e,r=1){return null==e||Number.isNaN(e)?"--":(100*e).toFixed(r)}e.s(["fmtPercentScore",()=>t],76706);let r="[no-evaluable-case]",n="preset-agent-trace-quality",a={trace:"Trace 数据问题",dataset:"评测集配置问题",case:"Case 配置问题",skill:"Skill 归因问题",model:"模型调用问题",evaluator:"评测器问题",system:"系统问题"},s={trace_missing_input:{errorCategory:"trace",shortStatus:"Trace 缺输入",userMessage:"Trace 缺少实际输入,无法匹配评测集 case。",reason:"系统没有从本次执行记录中提取到可用于匹配 case 的任务输入。",nextAction:"检查 trace 采集是否包含用户任务输入;必要时重新采集或重新执行该任务。",retryable:!1,stage:"case-match"},trace_missing_output:{errorCategory:"trace",shortStatus:"Trace 缺输出",userMessage:"Trace 缺少实际输出,无法做任务完成度评测。",reason:"本次 trace 没有提取到 Agent 最终输出,也没有可用的 execution.finalResult fallback。",nextAction:"检查 Agent 是否产出最终回复;确认 trace 采集包含 assistant final message;必要时重新跑该 case。",retryable:!1,stage:"result-artifact"},task_output_extraction_failed:{errorCategory:"trace",shortStatus:"任务输出提取失败",userMessage:"无法从 trace 中提取任务输出。",reason:"任务输出提取流程没有定位到可用于任务完成度评测的最终输出,且没有 fallback 可用。",nextAction:"检查 trace 中是否包含最终回复或关键工具输出;必要时重试评测或重新采集 trace。",retryable:!0,stage:"result-artifact"},trace_data_empty:{errorCategory:"trace",shortStatus:"Trace 数据为空",userMessage:"Trace 数据为空,无法评测。",reason:"系统没有找到可用的 session interactions,也没有足够的 query/finalResult 生成兜底交互。",nextAction:"检查 trace 采集、上传或执行记录入库是否完整。",retryable:!1,stage:"trace-load"},trace_parse_failed:{errorCategory:"trace",shortStatus:"Trace 解析失败",userMessage:"Trace 数据解析失败,无法评测。",reason:"Session.interactions 不是合法 JSON 或结构不兼容。",nextAction:"检查 trace 采集数据格式,必要时重新上传或修复采集链路。",retryable:!1,stage:"trace-parse"},case_not_matched:{errorCategory:"case",shortStatus:"无匹配 case",userMessage:"Trace 输入没有匹配到可用于评测的 case。",reason:"本次任务输入与当前评测集中的 case.input 没有达到可用匹配。",nextAction:"补充对应 case,或确认本次 trace 的任务输入与评测集 case.input 是否一致。",retryable:!1,stage:"case-match"},case_match_failed:{errorCategory:"case",shortStatus:"匹配 case 失败",userMessage:"无法根据 trace 输入自动定位可用于评测的 case。",reason:"trace 输入没有精确匹配到评测集 case,后台自动匹配也没有得到可用结果。",nextAction:"检查本次 trace 的任务输入是否与评测集 case.input 对齐;必要时补充 case 或重新选择评测集。",retryable:!0,stage:"case-match"},dataset_missing:{errorCategory:"dataset",shortStatus:"评测集不存在",userMessage:"评测集不存在,无法匹配可评测 case。",reason:"评测结果关联的数据集已经不存在,或当前用户不可访问。",nextAction:"重新选择评测集后再发起评测。",retryable:!1,stage:"dataset-load"},dataset_empty:{errorCategory:"dataset",shortStatus:"评测集为空",userMessage:"评测集没有可评测 case。",reason:"当前匹配范围内没有可用于评测的 case。",nextAction:"补充评测集 case 后重新评测。",retryable:!1,stage:"dataset-load"},case_missing_expected_output:{errorCategory:"case",shortStatus:"Case 缺预期结果",userMessage:"Case 缺少预期结果,无法做任务完成度评测。",reason:"已匹配到 case,但 expectedOutput 为空。",nextAction:"为该 case 补充 expectedOutput 后重新评测。",retryable:!1,stage:"case-match"},custom_reference_missing:{errorCategory:"case",shortStatus:"缺 reference_output",userMessage:"自定义评估器缺少 reference_output。",reason:"自定义评估器 prompt 引用了 reference_output,但没有匹配到带预期结果的 case。",nextAction:"补充评测集 expectedOutput,或调整自定义评估器 prompt。",retryable:!1,stage:"custom-evaluator"},trace_step_analysis_failed:{errorCategory:"model",shortStatus:"步骤抽取失败",userMessage:"Trace 步骤动态分析失败。",reason:"系统尝试从 trace 中抽取实际执行步骤时失败,通常与模型配置或调用异常有关。",nextAction:"检查评测模型配置和服务状态后重试。",retryable:!0,stage:"trace-step-analysis"},trace_no_steps:{errorCategory:"trace",shortStatus:"Trace 无步骤",userMessage:"Trace 无可提取执行步骤,无法做轨迹评测。",reason:"系统没有从本次 trace 中提取到可用于轨迹评测的实际执行步骤。",nextAction:"检查 trace 质量、采集粒度或执行记录是否完整。",retryable:!1,stage:"trace-step-analysis"},evaluator_timeout:{errorCategory:"evaluator",shortStatus:"评测超时",userMessage:"评测器运行超时。",reason:"评测器在限定时间内没有返回结果。",nextAction:"重试评测;如果持续出现,请检查模型服务响应时间。",retryable:!0,stage:"evaluator"},evaluator_output_invalid:{errorCategory:"evaluator",shortStatus:"评测器输出异常",userMessage:"评测器未返回有效结构化结果。",reason:"评测器输出无法解析为系统需要的 JSON/评分结构。",nextAction:"重试评测;如果持续出现,请检查评测器模型输出。",retryable:!0,stage:"evaluator"},result_evaluator_failed:{errorCategory:"evaluator",shortStatus:"结果评测失败",userMessage:"任务完成度评测失败。",reason:"任务完成度评测器没有产出可用评分或评测 session。",nextAction:"重试评测;如果持续出现,请检查模型配置和评测器日志。",retryable:!0,stage:"result-evaluator"},persist_failed:{errorCategory:"system",shortStatus:"保存失败",userMessage:"评测结果保存失败。",reason:"评测已执行,但结果写入数据库时失败。",nextAction:"检查数据库或服务状态后重试。",retryable:!0,stage:"persist"},evaluator_recovered_failed:{errorCategory:"system",shortStatus:"评测进程异常",userMessage:"评测进程异常中断。",reason:"后台恢复逻辑发现该评测长期停留在 pending/running 状态。",nextAction:"重试评测,并查看服务日志确认是否有进程异常。",retryable:!0,stage:"recover"}};function i(e){return e&&"object"==typeof e&&!Array.isArray(e)?e:{}}function o(e){return"number"==typeof e&&Number.isFinite(e)}function l(e){return i(e?.rawAnalysis)}function c(e){return Array.isArray(e.selectedEvaluators)?e.selectedEvaluators:[]}function d(e,t){let r=c(e);return 0===r.length?t===n:r.includes(t)}function u(e){return!!(d(e,n)&&o(e.trajectoryScore)||d(e,"preset-agent-task-completion")&&null!=function(e){if(o(e.resultEvaluationScore))return e.resultEvaluationScore;let t=i(l(e).resultEvaluation);return o(t.score)?t.score:null}(e))||!!c(e).some(e=>e.startsWith("custom-"))&&null!=function(e){if(o(e.customEvaluationScore))return e.customEvaluationScore;let t=(Array.isArray(e.customEvaluations)?e.customEvaluations:e.customEvaluations&&"object"==typeof e.customEvaluations?Object.values(e.customEvaluations):[]).map(e=>i(e).score).filter(o);return t.length>0?t.reduce((e,t)=>e+t,0)/t.length:null}(e)}function g(e,t={}){let r=s[e]??{errorCategory:"system",shortStatus:"评测失败",userMessage:"评测执行失败。",reason:"评测执行过程中出现未分类异常。",nextAction:"重试评测;如果持续出现,请查看服务日志。",retryable:!0,stage:"unknown"};return{errorCode:e,errorCategory:r.errorCategory,shortStatus:r.shortStatus,userMessage:t.userMessage||r.userMessage,reason:t.reason||r.reason,nextAction:t.nextAction||r.nextAction,retryable:"boolean"==typeof t.retryable?t.retryable:r.retryable,stage:t.stage||r.stage,...t.details?{details:t.details}:{},...t.internal?{internal:t.internal}:{}}}function f(e){if(!e)return null;let t=e.diagnostic;if(t&&"object"==typeof t&&!Array.isArray(t))return t;let n=l(e),a=n.diagnostic;if(a&&"object"==typeof a&&!Array.isArray(a))return a;let s="string"==typeof n.resultEvaluationError?n.resultEvaluationError.trim():"",i=String(e.resultEvaluationError||s||"").trim();if(i)return g(i.includes("结果输出提取失败")||i.includes("任务输出提取")?"task_output_extraction_failed":"result_evaluator_failed",{details:i,reason:i});let o=String(e.errorMessage||"").trim();return o?o.includes(r)?g("case_not_matched",{details:v(o),reason:v(o)}):"failed"===e.status&&o.includes("[recover]")?g("evaluator_recovered_failed",{details:o,reason:o}):null:null}function p(e){return"done"===e||"failed"===e}function h(e){return"pending"===e.status?"pending":"running"===e.status?"running":f(e)?"done"===e.status&&u(e)?"partial_failed":"failed":e.status}function x(e){if("pending"===e.status)return"待评测";if("running"===e.status)return"评测中";let t=f(e);return t?"done"===e.status&&u(e)?"部分评测失败":t.shortStatus:"done"===e.status?"已评测":"评测失败"}function y(e){if("pending"===e.status)return"muted";if("running"===e.status)return"running";let t=f(e);return t?"done"===e.status&&u(e)||["trace","dataset","case","skill"].includes(t.errorCategory)?"warning":"danger":"done"===e.status?"success":"danger"}function m(e){if("pending"===e.status||"running"===e.status)return"";let t=f(e);return t?[t.userMessage,t.reason?`具体原因:${t.reason}`:"",t.nextAction?`下一步建议:${t.nextAction}`:"",t.details?`详细信息:${t.details}`:""].filter(Boolean).join("\n"):String(e.errorMessage||e.resultEvaluationError||"").trim()}function j(e,t={}){if(!e)return"该执行尚未评测";let r=f(e);if(r&&"pending"!==e.status&&"running"!==e.status)return[r.userMessage,"",`错误分类:${a[r.errorCategory]}`,`具体原因:${r.reason}`,`下一步建议:${r.nextAction}`,r.details?`详细信息:${r.details}`:""].filter(e=>""!==e).join("\n");let n=t.composite??null;return null!=n&&Number.isFinite(n)?n>=.8?"该执行在结果与过程两个维度均表现良好":n>=.5?"该执行结果基本可用,但部分关键动作覆盖不足":"该执行关键动作覆盖不足,建议优先排查":"该执行尚未评测"}function v(e){return e.replace(r,"").trim()||"未匹配到可评测 case"}e.s(["getTrajectoryDisplayStatus",()=>h,"getTrajectoryOverallConclusion",()=>j,"getTrajectoryStatusLabel",()=>x,"getTrajectoryStatusTitle",()=>m,"getTrajectoryStatusTone",()=>y,"isTrajectoryEvaluationTerminal",()=>p,"parseTrajectoryDiagnostic",()=>f],861171)},642726,e=>{"use strict";let t=["evaluator","checker","judge","locator","assessor","grader","评估器"],r=["你是「轨迹评估器」的总协调者","你是「Agent 任务完成度」评估器","trace-quality-evaluator","task-completion-evaluator","reference_trajectory","actual_trace","key_point_findings","key-points-checker","detect_redundancy_and_loops","已写入 final_result.json"],n=new Set(["trace-quality-evaluator","task-completion-evaluator"]);function a(e){let r=String(e||"").trim().toLowerCase();return!!r&&(!!n.has(r)||t.some(e=>r.includes(e)))}function s(e){return!!e&&(a(e.name)||a(e.parentAgent))}function i(e){return!!e&&(!![e.agentName,e.agent,...Array.isArray(e.agents)?e.agents:[]].some(e=>a(e))||!!e&&[e.query,e.final_result,e.label].some(e=>{let t=String(e||"");return!!t&&r.some(e=>t.includes(e))}))}function o(e){return e?String([e.agentName,e.agent,...Array.isArray(e.agents)?e.agents:[]].find(e=>{let t=String(e||"").trim();return t&&!a(t)})||"").trim():""}e.s(["getPrimaryExecutionAgentName",()=>o,"isEvaluatorAgent",()=>s,"isEvaluatorTraceRecord",()=>i])},111298,e=>{"use strict";var t=e.i(843476),r=e.i(271645),n=e.i(618566),a=e.i(573474),s=e.i(846696),i=e.i(183752),o=e.i(927643),l=e.i(540568),c=e.i(726526),d=e.i(347101),u=e.i(76706),g=e.i(861171),f=e.i(642726),p=e.i(460435);let h="#534AB7",x="#EEEDFE",y="#0F6E56",m="#A32D2D",j="#FFEBEB",v="#9A7311",b="#eceae4",S="#f3f2ee",w="#f9f9fb",k="#1a1a18",A="#2c2b28",C="#6b6a66",T="#8a8884",I="agent-insight:eval-history-state";function E(e){if(!e)return"--";try{return new Date(e).toLocaleString("zh-CN",{hour12:!1})}catch{return e}}function _(e){if(!e)return"--";try{let t=new Date(e),r=Date.now()-t.getTime();if(r<6e4)return"刚刚";if(r<36e5)return`${Math.floor(r/6e4)} 分钟前`;if(r<864e5)return`${Math.floor(r/36e5)} 小时前`;return`${Math.floor(r/864e5)} 天前`}catch{return e}}function $(e){return e&&e.slice(0,14)||"--"}function F(...e){for(let t of e){if("string"!=typeof t)continue;let e=t.trim();if(e)return e}return""}function W(e,t){let r=Array.isArray(e.selectedEvaluators)?e.selectedEvaluators:[];return 0===r.length?"preset-agent-trace-quality"===t:r.includes(t)}function M(e){let t=e.evaluatorName?e.evaluatorName.split("、").map(e=>e.trim()):[],r=e.evaluatorIds.map((e,r)=>e.startsWith("custom-")?"":t[r]?t[r]:"preset-agent-task-completion"===e?"Agent 任务完成度":"preset-agent-trace-quality"===e?"Agent 轨迹质量":e).filter(Boolean);return r.length>0?Array.from(new Set(r)).join("、"):"—"}function D(){let{t:e}=(0,c.useLocale)(),{user:a}=(0,o.useAuth)(),u=(0,n.useRouter)(),g=(0,n.useSearchParams)(),f=g?.get("runId")||"",y=g?.get("autoWatchOnly")==="1"||g?.get("autoWatchOnly")==="true",[m,j]=(0,r.useState)([]),[v,S]=(0,r.useState)([]),[w,A]=(0,r.useState)([]),[T,E]=(0,r.useState)(10),[_,$]=(0,r.useState)(!1),[F,W]=(0,r.useState)(!1),[M,D]=(0,r.useState)(null),[z,O]=(0,r.useState)(!0),[P,q]=(0,r.useState)(""),[H,U]=(0,r.useState)(!1),[J,K]=(0,r.useState)(y),[V,X]=(0,r.useState)(null),[Y,G]=(0,r.useState)(null),Q=(0,r.useRef)(null),Z=(0,r.useRef)(null),ee=(0,r.useRef)(!1),et=(0,r.useRef)("");(0,r.useEffect)(()=>{if(!a)return;let e=!1;return(async()=>{if(f&&!ee.current&&1){let e=window.sessionStorage.getItem(I);if(e)try{let t=JSON.parse(e);if(Date.now()-Number(t.savedAt||0)<6e5&&t.user===a&&t.selectedRunId===f&&t.autoWatchOnly===y&&Array.isArray(t.runSummaries)&&t.runSummaries.some(e=>e.runId===f)){ee.current=!0,A(t.runSummaries),E(t.historyOffset||10),$(!!t.historyHasMore),D(f),K(t.autoWatchOnly),U(t.historyOpen),j([]),S([]),q(""),O(!1),requestAnimationFrame(()=>{Z.current&&(Z.current.scrollTop=t.historyScrollTop||0)});return}}catch{window.sessionStorage.removeItem(I)}}e||(O(!0),A([]),j([]),S([]),E(10),$(!1),D(null));try{let t=new URLSearchParams({user:a,limit:String(10)}),r=f||et.current;r&&t.set("includeRunId",r),J&&t.set("autoWatchOnly","1");let n=await (0,i.apiFetch)(`/api/eval/trajectory/runs?${t.toString()}`),s=await n.json();if(!n.ok)throw Error(s?.error||n.statusText);let o=Array.isArray(s?.runs)?s.runs:[];if(!e){A(o),E("number"==typeof s?.nextOffset?s.nextOffset:10),$(!!s?.hasMore);let e=f||et.current,t=e?o.find(t=>t.runId===e):null;D(t?.runId||o[0]?.runId||null),et.current="",q("")}}catch(r){let t=r instanceof Error?r.message:String(r);e||q(`加载失败:${t}`)}finally{e||O(!1)}})(),()=>{e=!0}},[a,J,f,y]),(0,r.useEffect)(()=>{if(!a||!M)return;let e=!1,t=async()=>{try{let t=await (0,i.apiFetch)(`/api/eval/trajectory/results?user=${encodeURIComponent(a)}&runId=${encodeURIComponent(M)}&limit=500`),r=await t.json();if(!t.ok)throw Error(r?.error||t.statusText);let n=Array.isArray(r?.results)?r.results:[],s=Array.from(new Set(n.map(e=>e.taskId||"").filter(Boolean))),o=[];if(s.length>0){let e=new URLSearchParams({user:a,taskIds:s.join(","),skipAutoEvalReady:"1"}),t=await (0,i.apiFetch)(`/api/observe/data?${e.toString()}`),r=await t.json();if(!t.ok)throw Error(r?.error||t.statusText);o=Array.isArray(r)?r:[]}e||(j(n),S(o),q(""))}catch(r){let t=r instanceof Error?r.message:String(r);e||q(`加载失败:${t}`)}};t();let r=setInterval(t,5e3);return()=>{e=!0,clearInterval(r)}},[M,a]),(0,r.useEffect)(()=>{M||(j([]),S([]))},[M]),(0,r.useEffect)(()=>{let e=Q.current;if(!e||!a||!_||F)return;let t=new IntersectionObserver(e=>{if(!e.some(e=>e.isIntersecting))return;W(!0);let t=new URLSearchParams({user:a,limit:String(10)});t.set("offset",String(T)),J&&t.set("autoWatchOnly","1"),(0,i.apiFetch)(`/api/eval/trajectory/runs?${t.toString()}`).then(async e=>{let t=await e.json();if(!e.ok)throw Error(t?.error||e.statusText);let r=Array.isArray(t?.runs)?t.runs:[];A(e=>{let t=new Set(e.map(e=>e.runId));return[...e,...r.filter(e=>!t.has(e.runId))]}),E("number"==typeof t?.nextOffset?t.nextOffset:T+10),$(!!t?.hasMore)}).catch(e=>q(`加载历史任务失败:${e instanceof Error?e.message:String(e)}`)).finally(()=>W(!1))},{rootMargin:"180px"});return t.observe(e),()=>t.disconnect()},[J,_,F,T,a]);let er=(0,r.useMemo)(()=>{let e=new Map;for(let t of v)t.task_id&&e.set(t.task_id,t),t.upload_id&&e.set(t.upload_id,t);return e},[v]),en=(0,r.useMemo)(()=>w.find(e=>e.runId===M)||null,[w,M]),ea=(0,r.useMemo)(()=>m.filter(e=>!e.watchPlaceholder),[m]),es=async()=>{if(a&&V){G(V.runId);try{let e=await (0,i.apiFetch)("/api/eval/trajectory/runs",{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({user:a,runId:V.runId})}),t=await e.json();if(!e.ok)throw Error(t?.error||e.statusText);let r=w.findIndex(e=>e.runId===V.runId),n=w.filter(e=>e.runId!==V.runId),o=M===V.runId?n[r]?.runId||n[r-1]?.runId||n[0]?.runId||null:M;A(n),M===V.runId&&(D(o),j([]),S([])),X(null),q(""),s.toast.success(`已删除评测批次「${V.taskTitle}」`)}catch(e){throw s.toast.error(`删除失败:${e instanceof Error?e.message:String(e)}`),e}finally{G(null)}}},ei=(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8},children:[(0,t.jsxs)("button",{onClick:()=>U(e=>!e),title:H?"收起历史任务":"展开历史任务",style:{display:"flex",alignItems:"center",gap:5,padding:"5px 10px",background:H?x:"transparent",color:H?h:C,border:`1px solid ${H?h:b}`,borderRadius:6,fontSize:12,fontWeight:500,cursor:"pointer",transition:"all 0.15s"},children:[(0,t.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 13 13",fill:"none",children:[(0,t.jsx)("circle",{cx:"6.5",cy:"6.5",r:"5.5",stroke:"currentColor",strokeWidth:"1.3"}),(0,t.jsx)("path",{d:"M6.5 3.5v3l2 1",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round"})]}),"历史任务"]}),(0,t.jsx)("button",{onClick:()=>u.push("/eval/trajectory"),style:{padding:"6px 14px",background:h,color:"#fff",border:"none",borderRadius:6,fontSize:12,fontWeight:500,cursor:"pointer"},children:"+ 发起新评测"})]});return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(l.AppTopBar,{title:(0,t.jsx)(p.Term,{id:"eval-batch",label:e("nav.eval")}),actions:ei,showDefaultActions:!1}),(0,t.jsxs)("div",{style:{flex:1,display:"flex",overflow:"hidden",minHeight:0},children:[(0,t.jsx)("main",{style:{flex:1,overflowY:"auto",minWidth:0,color:k},children:z?(0,t.jsx)("div",{style:{padding:24,color:C},children:"正在加载评测批次..."}):0!==w.length||J?0===w.length?(0,t.jsx)(L,{onClear:()=>K(!1)}):en?(0,t.jsx)(R,{run:en,results:ea,records:v,recordMap:er,router:u,user:a,error:P,autoWatchOnly:J,onBeforeOpenTrace:function(e){if(!a)return;let t={user:a,selectedRunId:e,autoWatchOnly:J,historyOpen:H,historyOffset:T,historyHasMore:_,historyScrollTop:Z.current?.scrollTop||0,runSummaries:w,savedAt:Date.now()};window.sessionStorage.setItem(I,JSON.stringify(t))},onDeleteRun:()=>X(en),deleteDisabled:en.runningCount>0||Y===en.runId,deleting:Y===en.runId},en.runId):null:(0,t.jsx)(N,{onCreate:()=>u.push("/eval/trajectory"),error:P})}),(0,t.jsxs)("aside",{style:{width:300*!!H,flexShrink:0,borderLeft:H?`1px solid ${b}`:"none",background:"#FBFAF6",display:"flex",flexDirection:"column",overflow:"hidden",transition:"width 0.2s ease"},children:[(0,t.jsxs)("header",{style:{display:"flex",alignItems:"center",padding:"12px 16px",borderBottom:`1px solid ${b}`,flexShrink:0,whiteSpace:"nowrap"},children:[(0,t.jsxs)("div",{style:{fontSize:13,fontWeight:600,color:k,display:"flex",alignItems:"center",gap:6},children:[(0,t.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 13 13",fill:"none",children:[(0,t.jsx)("circle",{cx:"6.5",cy:"6.5",r:"5.5",stroke:"currentColor",strokeWidth:"1.3"}),(0,t.jsx)("path",{d:"M6.5 3.5v3l2 1",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round"})]}),"历史任务"]}),(0,t.jsxs)("button",{type:"button",onClick:function(){et.current=M||"",K(e=>!e)},title:J?"查看全部历史任务":"只看自动观测任务",style:{marginLeft:8,padding:"5px 10px",height:28,borderRadius:8,border:`1px solid ${J?h:b}`,background:J?x:"#fff",color:J?h:C,display:"flex",alignItems:"center",gap:6,fontSize:12,fontWeight:500,cursor:"pointer"},children:[(0,t.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 13 13",fill:"none","aria-hidden":"true",children:(0,t.jsx)("path",{d:"M2 3h9M3.5 6.5h6M5.2 10h2.6",stroke:"currentColor",strokeWidth:"1.4",strokeLinecap:"round"})}),(0,t.jsx)("span",{children:J?"全部任务":"自动观测任务"})]})]}),(0,t.jsxs)("div",{ref:Z,style:{flex:1,overflowY:"auto",padding:10,display:"flex",flexDirection:"column",gap:6},children:[0===w.length?(0,t.jsx)("div",{style:{padding:24,textAlign:"center",fontSize:12,color:C},children:J?"没有自动观测任务":"还没有任何评测任务"}):w.map(e=>(0,t.jsx)(B,{run:e,active:e.runId===M,onClick:()=>D(e.runId),onDelete:()=>X(e),deleteDisabled:e.runningCount>0||Y===e.runId,deleting:Y===e.runId},e.runId)),(0,t.jsx)("div",{ref:Q,style:{height:1}}),F&&(0,t.jsx)("div",{style:{padding:8,textAlign:"center",fontSize:11,color:C},children:"正在加载更多..."})]})]})]}),(0,t.jsx)(d.ConfirmDialog,{open:!!V,onOpenChange:e=>{(e||!Y)&&(e||X(null))},title:"删除这次评测执行?",description:V?`会删除该批次下的评测结果和由本批次派生的优化点数据,原始 trace 会保留,可稍后重新评测。任务:${V.taskTitle}`:void 0,confirmText:"删除批次",cancelText:"取消",tone:"danger",onConfirm:es})]})}function z(){return(0,t.jsx)(r.Suspense,{fallback:(0,t.jsx)("div",{style:{padding:24,color:C},children:"Loading..."}),children:(0,t.jsx)(D,{})})}function R({run:e,results:n,records:s,recordMap:o,router:l,user:c,error:d,autoWatchOnly:I,onBeforeOpenTrace:D,onDeleteRun:z,deleteDisabled:R,deleting:B}){let[O,N]=(0,r.useState)(!1),[L,V]=(0,r.useState)(new Set),[X,Y]=(0,r.useState)(!1),[G,Q]=(0,r.useState)(""),[Z,ee]=(0,r.useState)(""),[et,er]=(0,r.useState)([]),[en,ea]=(0,r.useState)(!1),[es,ei]=(0,r.useState)(null),eo=es??e.autoWatch,el=O?et:s,ec=(0,r.useMemo)(()=>new Set(n.map(e=>e.taskId||e.executionId||"").filter(Boolean)),[n]),ed=(0,r.useMemo)(()=>{let t=e.watchedAgent||e.executionAgent;return el.filter(e=>!!e.task_id).filter(e=>!(0,f.isEvaluatorTraceRecord)(e)).filter(e=>!ec.has(e.task_id||"")).filter(e=>(0,f.getPrimaryExecutionAgentName)(e)===t).sort((e,t)=>{let r=e.timestamp?new Date(e.timestamp).getTime():0;return(t.timestamp?new Date(t.timestamp).getTime():0)-r})},[ec,el,e.executionAgent,e.watchedAgent]);(0,r.useEffect)(()=>{if(!O||!c||et.length>0)return;let e=!1,t=new URLSearchParams({user:c,skipAutoEvalReady:"1"});return(0,i.apiFetch)(`/api/observe/data?${t.toString()}`).then(async t=>{let r=await t.json();if(!t.ok)throw Error(r?.error||t.statusText);e||er(Array.isArray(r)?r:[])}).catch(t=>{e||ee(`加载可追加 trace 失败:${t instanceof Error?t.message:String(t)}`)}),()=>{e=!0}},[et.length,O,c]);let eu=async()=>{if(!c)return void ee("请先登录");let t=Array.from(L);if(0===t.length)return void ee("请至少选择一条 trace");Y(!0),ee(""),Q("");try{let r=await (0,i.apiFetch)("/api/eval/trajectory/run",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({user:c,evaluatorRunId:e.runId,taskIds:t,evaluators:e.evaluatorIds})}),n=await r.json();if(!r.ok)return void ee(`追加失败:${n?.error||r.statusText}`);Q(`已追加 ${n.created?.length??0} 条 trace 到本批次`),V(new Set),N(!1)}catch(e){ee(`追加失败:${e instanceof Error?e.message:String(e)}`)}finally{Y(!1)}},eg=async t=>{if(!c)return void ee("请先登录");ea(!0),ee(""),Q(""),ei(t);try{let r=await (0,i.apiFetch)("/api/eval/trajectory/run",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({user:c,evaluatorRunId:e.runId,autoWatch:t})}),n=await r.json();if(!r.ok){ei(e.autoWatch),ee(`${t?"开启":"关闭"}自动观测失败:${n?.error||r.statusText}`);return}Q(t?"已重新开启自动观测":"已关闭自动观测,后续新 trace 不会再自动追加")}catch(r){ei(e.autoWatch),ee(`${t?"开启":"关闭"}自动观测失败:${r instanceof Error?r.message:String(r)}`)}finally{ea(!1)}};return(0,t.jsxs)("div",{style:{padding:"18px 22px 28px"},children:[(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10,marginBottom:14,flexWrap:"wrap"},children:[(0,t.jsx)("span",{style:H(x,h),children:"评测批次"}),eo&&(0,t.jsx)("span",{style:H("#EAF7F1",y),children:"自动观测"}),(0,t.jsx)("span",{style:{fontSize:12,color:C},children:"任务已同步到历史卡片与详情页"}),(0,t.jsx)("div",{style:{flex:1}}),(0,t.jsx)("button",{type:"button","aria-label":`删除评测批次 ${e.taskTitle}`,title:B?"删除中...":R?"评测进行中,暂时不能删除":"删除该评测批次",disabled:R,onClick:z,style:{width:28,height:28,borderRadius:8,border:`1px solid ${R?b:"#F1D1D1"}`,background:B?j:"#fff",color:R?T:m,display:"inline-flex",alignItems:"center",justifyContent:"center",cursor:R?"not-allowed":"pointer",opacity:R?.6:1},children:(0,t.jsx)(a.Trash2,{size:14,strokeWidth:2.1})}),(0,t.jsxs)("span",{style:{fontSize:11,color:C},children:["发起时间:",E(e.createdAt)]})]}),d&&(0,t.jsx)("div",{style:U(m,j,"#FFD4D4"),children:d}),(0,t.jsxs)("div",{style:{background:"linear-gradient(135deg, #FBFAF6 0%, #FFFFFF 100%)",border:`1px solid ${b}`,borderRadius:8,padding:16,marginBottom:14},children:[(0,t.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",gap:16,alignItems:"flex-start",flexWrap:"wrap"},children:[(0,t.jsxs)("div",{style:{minWidth:0,flex:"1 1 420px"},children:[(0,t.jsx)("div",{style:{fontSize:12,color:C,marginBottom:6},children:"评测任务"}),(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"},children:[(0,t.jsx)("div",{style:{fontSize:20,fontWeight:700,color:k,lineHeight:1.3},children:e.taskTitle}),eo&&(0,t.jsx)("span",{style:H("#EAF7F1",y,!0),children:"自动观测"})]}),(0,t.jsx)("div",{style:{marginTop:6,fontSize:12.5,color:e.taskDescription?A:T,lineHeight:1.6},children:e.taskDescription||""})]}),(0,t.jsx)("div",{style:{display:"flex",gap:8,flexWrap:"wrap",justifyContent:"flex-end",minWidth:408},children:(0,t.jsxs)("div",{style:{minWidth:200,flex:"0 0 200px",padding:"12px 14px",borderRadius:10,border:`1px solid ${eo?"#CDECDD":b}`,background:eo?"#F6FFFA":"#fff",display:"flex",alignItems:"center",justifyContent:"space-between",gap:14},children:[(0,t.jsxs)("div",{style:{minWidth:0},children:[(0,t.jsx)("div",{style:{fontSize:11.5,color:C,marginBottom:4},children:(0,t.jsx)(p.Term,{id:"auto-observe",label:"自动观测"})}),(0,t.jsx)("div",{style:{fontSize:14,color:eo?y:T,fontWeight:700},children:eo?"开启中":"已关闭"})]}),(0,t.jsx)(q,{checked:eo,disabled:en,onChange:eg,"aria-label":"切换自动观测"})]})})]}),(0,t.jsxs)("div",{style:{marginTop:16,paddingTop:16,borderTop:`1px solid ${S}`,display:"grid",gridTemplateColumns:"minmax(220px, 1.25fr) minmax(180px, 1.15fr) repeat(3, minmax(120px, 1fr))",gap:14},children:[(0,t.jsx)(P,{label:(0,t.jsx)(p.Term,{id:"eval-agent",label:"执行 Agent"}),value:e.executionAgent||"—",mono:!0,primary:!0,truncate:!0}),(0,t.jsx)(P,{label:(0,t.jsx)(p.Term,{id:"evaluator",label:"评估器"}),value:M(e),truncate:!0}),(0,t.jsx)(P,{label:"trace 总数",value:String(e.traceCount)}),(0,t.jsx)(P,{label:"评测进度",value:`${e.doneCount} / ${e.traceCount}`,detail:(0,t.jsxs)("span",{style:{fontSize:11},children:[(0,t.jsxs)("span",{style:{color:y},children:["完成 ",e.doneCount]}),e.runningCount>0&&(0,t.jsxs)("span",{style:{color:"#1677ff"},children:[" · 进行中 ",e.runningCount]}),e.failedCount>0&&(0,t.jsxs)("span",{style:{color:m},children:[" · 失败 ",e.failedCount]})]})}),(0,t.jsx)(P,{label:"平均分",value:null!=e.avgScore?`${(0,u.fmtPercentScore)(e.avgScore)} / 100`:"--",valueColor:null!=e.avgScore?e.avgScore>=.8?y:e.avgScore>=.5?v:m:T})]})]}),(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,marginBottom:8},children:[(0,t.jsx)("div",{style:{fontSize:13,fontWeight:600,color:k},children:"本批次 trace 评测列表"}),(0,t.jsx)("div",{style:{fontSize:12,color:C},children:"点行查看单条 trace 的评测细节"}),(0,t.jsx)("div",{style:{flex:1}}),(0,t.jsx)("button",{type:"button",onClick:()=>{N(e=>!e),ee(""),Q("")},style:{padding:"5px 11px",borderRadius:6,border:`1px solid ${h}`,background:O?x:"#fff",color:h,fontSize:12,fontWeight:500,cursor:"pointer"},children:"+ 增加评测 trace"})]}),(O||G||Z)&&(0,t.jsxs)("div",{style:{border:`1px solid ${b}`,borderRadius:8,background:"#fff",padding:12,marginBottom:10},children:[Z&&(0,t.jsx)("div",{style:U(m,j,"#FFD4D4"),children:Z}),G&&(0,t.jsx)("div",{style:U(y,"#F0F7F4","#D1EAE2"),children:G}),O?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,marginBottom:8},children:[(0,t.jsxs)("div",{style:{fontSize:12,color:C},children:["可追加 trace:",ed.length]}),(0,t.jsx)("div",{style:{flex:1}}),(0,t.jsx)("button",{type:"button",disabled:X||0===L.size,onClick:eu,style:{padding:"5px 12px",borderRadius:6,border:"none",background:X||0===L.size?"#bdb8df":h,color:"#fff",fontSize:12,cursor:X||0===L.size?"not-allowed":"pointer"},children:X?"追加中...":`开始评测 (${L.size})`})]}),0===ed.length?(0,t.jsx)("div",{style:{padding:16,textAlign:"center",fontSize:12,color:C},children:"没有可追加的 trace。"}):(0,t.jsxs)("div",{style:{maxHeight:260,overflow:"auto",border:`1px solid ${S}`,borderRadius:6},children:[(0,t.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"28px minmax(170px, 220px) minmax(0, 1fr) minmax(0, 1fr) 84px",gap:10,alignItems:"center",padding:"8px 10px",borderBottom:`1px solid ${S}`,background:w,color:C,fontSize:11,fontWeight:500},children:[(0,t.jsx)("span",{}),(0,t.jsx)("span",{children:"TRACE ID"}),(0,t.jsx)("span",{children:"Trace 任务输入"}),(0,t.jsx)("span",{children:"Trace 任务输出"}),(0,t.jsx)("span",{style:{textAlign:"right"},children:"执行时间"})]}),ed.map(e=>{let r=e.task_id||"";return(0,t.jsxs)("label",{style:{display:"grid",gridTemplateColumns:"28px minmax(170px, 220px) minmax(0, 1fr) minmax(0, 1fr) 84px",gap:10,alignItems:"center",padding:"8px 10px",borderBottom:`1px solid ${S}`,cursor:"pointer",fontSize:12},children:[(0,t.jsx)("input",{type:"checkbox",checked:L.has(r),onChange:()=>{V(e=>{let t=new Set(e);return t.has(r)?t.delete(r):t.add(r),t})}}),(0,t.jsx)("code",{style:{color:C,fontFamily:"var(--font-mono)",whiteSpace:"nowrap"},title:r,children:$(r)}),(0,t.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},title:e.query||"",children:e.query||"(空输入)"}),(0,t.jsxs)("span",{style:{minWidth:0},children:[(0,t.jsx)("span",{style:{display:"block",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},title:e.final_result||"",children:e.final_result||"—"}),(0,t.jsxs)("span",{style:{display:"block",color:T,fontSize:10,marginTop:2},children:[e.framework||"",e.model?` \xb7 ${e.model}`:""]})]}),(0,t.jsx)("span",{style:{color:C,textAlign:"right"},children:_(e.timestamp)})]},r)})]})]}):null]}),(0,t.jsx)("div",{style:{border:`1px solid ${b}`,borderRadius:9,overflow:"hidden",background:"#fff"},children:(0,t.jsxs)("table",{style:{width:"100%",borderCollapse:"collapse",fontSize:13},children:[(0,t.jsx)("thead",{children:(0,t.jsxs)("tr",{style:{background:w,borderBottom:`1px solid ${b}`},children:[(0,t.jsx)("th",{style:J(170,"left"),children:(0,t.jsx)(p.Term,{id:"trace",label:"TRACE ID"})}),(0,t.jsx)("th",{style:J(void 0,"left"),children:(0,t.jsx)(p.Term,{id:"trace",label:"Trace 任务输入"})}),(0,t.jsx)("th",{style:J(void 0,"left"),children:(0,t.jsx)(p.Term,{id:"trace",label:"Trace 任务输出"})}),(0,t.jsx)("th",{style:J(80,"center"),children:"评测状态"}),(0,t.jsx)("th",{style:J(92,"left"),children:"得分"}),(0,t.jsx)("th",{style:J(110,"left"),children:"评测时间"})]})}),(0,t.jsx)("tbody",{children:n.map(r=>{let n,a=r.taskId||r.executionId||"",s=o.get(a),i=!!a,c=function(e){if(!(0,g.isTrajectoryEvaluationTerminal)(e.status)||"done"!==(0,g.getTrajectoryDisplayStatus)(e))return null;let t=W(e,"preset-agent-trace-quality")?e.trajectoryScore:null,r=W(e,"preset-agent-task-completion")?e.resultEvaluationScore??null:null;if(W(e,"preset-agent-trace-quality")&&(null==t||!Number.isFinite(t))||W(e,"preset-agent-task-completion")&&(null==r||!Number.isFinite(r)))return null;let n=[t,r].filter(e=>"number"==typeof e&&Number.isFinite(e));return n.length>0?n.reduce((e,t)=>e+t,0)/n.length:null}(r),d=F(r.traceInput,s?.query),f=F(r.traceOutput,s?.final_result),p=[F(s?.framework,r.traceFramework),F(s?.model,r.traceModel)].filter(Boolean).join(" · ");return(0,t.jsxs)("tr",{onClick:()=>{if(!a)return;D(e.runId);let t=new URLSearchParams({runId:e.runId,datasetId:r.datasetId,resultId:r.id});I&&t.set("autoWatchOnly","1"),l.push(`/eval/trajectory/${encodeURIComponent(a)}?${t.toString()}`)},style:{borderBottom:`1px solid ${S}`,cursor:i?"pointer":"default"},onMouseEnter:e=>{i&&(e.currentTarget.style.background=w)},onMouseLeave:e=>e.currentTarget.style.background="transparent",children:[(0,t.jsx)("td",{style:{...K("left"),fontFamily:"var(--font-mono)",color:A,whiteSpace:"nowrap"},title:a,children:$(a)}),(0,t.jsx)("td",{style:{...K("left"),maxWidth:280},title:d,children:d?(0,t.jsx)("div",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:d}):(0,t.jsx)("span",{style:{color:T},children:"未提取到任务输入"})}),(0,t.jsx)("td",{style:{...K("left"),maxWidth:280},title:f,children:f?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("div",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:f}),p&&(0,t.jsx)("div",{style:{fontSize:11,color:T,marginTop:2},children:p})]}):(0,t.jsx)("span",{style:{color:T},children:"未提取到任务输出"})}),(0,t.jsx)("td",{style:K("center"),children:(0,t.jsx)("span",{style:{color:"warning"===(n=(0,g.getTrajectoryStatusTone)(r))?v:"danger"===n?m:"running"===n?"#1677ff":"success"===n?y:T,fontWeight:500},title:(0,g.getTrajectoryStatusTitle)(r),children:(0,g.getTrajectoryStatusLabel)(r)})}),(0,t.jsx)("td",{style:{...K("left"),minWidth:92,color:null!=c?h:T,fontWeight:600},children:null!=c?`${(0,u.fmtPercentScore)(c)} 分`:"--"}),(0,t.jsx)("td",{style:{...K("left"),color:C},children:E(r.createdAt)})]},r.id)})})]})})]})}function B({run:e,active:r,onClick:n,onDelete:s,deleteDisabled:i,deleting:o}){let l=null!=e.avgScore?`${(0,u.fmtPercentScore)(e.avgScore)} / 100`:"—",c=M(e);return(0,t.jsxs)("div",{onClick:n,style:{padding:12,border:`1px solid ${r?h:b}`,borderRadius:6,background:r?x:"#fff",cursor:"pointer",transition:"border-color 0.15s, background 0.15s"},onMouseEnter:e=>{r||(e.currentTarget.style.borderColor="#d8d6cf")},onMouseLeave:e=>{r||(e.currentTarget.style.borderColor=b)},children:[(0,t.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:8},children:[(0,t.jsxs)("div",{style:{minWidth:0,display:"flex",alignItems:"center",gap:8,flex:1},children:[(0,t.jsx)("span",{style:{fontSize:12.5,fontWeight:600,color:k,minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},title:e.taskTitle,children:e.taskTitle}),(0,t.jsx)("button",{type:"button","aria-label":`删除评测批次 ${e.taskTitle}`,title:o?"删除中...":i?"评测进行中,暂时不能删除":"删除该评测批次",disabled:i,onClick:e=>{e.stopPropagation(),i||s()},style:{flexShrink:0,width:22,height:22,borderRadius:6,border:"none",background:o?j:"transparent",color:i?T:C,display:"inline-flex",alignItems:"center",justifyContent:"center",cursor:i?"not-allowed":"pointer",opacity:i?.5:.9},children:(0,t.jsx)(a.Trash2,{size:13,strokeWidth:2.1})})]}),(0,t.jsx)("span",{style:{fontSize:11,color:C,flexShrink:0},children:_(e.createdAt)})]}),e.autoWatch&&(0,t.jsx)("div",{style:{marginBottom:8},children:(0,t.jsx)("span",{style:H("#EAF7F1",y,!0),children:"自动观测"})}),(0,t.jsx)("div",{style:{fontSize:11.5,color:e.taskDescription?A:T,marginBottom:8,lineHeight:1.5,display:"-webkit-box",WebkitLineClamp:2,WebkitBoxOrient:"vertical",overflow:"hidden"},title:e.taskDescription||"",children:e.taskDescription||""}),(0,t.jsx)("div",{style:{display:"flex",alignItems:"center",gap:8,marginBottom:8},children:(0,t.jsx)("span",{style:{fontSize:11,color:C,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},children:e.executionAgent||"未识别 Agent"})}),(0,t.jsxs)("div",{style:{fontSize:11,color:C,marginBottom:8,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},title:c,children:["评估器:",c]}),(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,fontSize:11},children:[(0,t.jsx)(O,{done:e.doneCount,running:e.runningCount,failed:e.failedCount,total:e.traceCount}),(0,t.jsxs)("span",{style:{color:C},children:[e.doneCount,"/",e.traceCount]}),(0,t.jsx)("span",{style:{flex:1}}),(0,t.jsx)("span",{style:{color:null!=e.avgScore?h:T,fontWeight:600},children:l})]})]})}function O({done:e,running:r,failed:n,total:a}){return 0===a?null:(0,t.jsxs)("div",{style:{display:"flex",height:4,width:60,background:w,borderRadius:2,overflow:"hidden"},children:[(0,t.jsx)("div",{style:{width:`${e/a*100}%`,background:y}}),(0,t.jsx)("div",{style:{width:`${r/a*100}%`,background:"#1677ff"}}),(0,t.jsx)("div",{style:{width:`${n/a*100}%`,background:m}})]})}function N({onCreate:e,error:r}){return(0,t.jsxs)("div",{style:{padding:"60px 22px",textAlign:"center",color:C},children:[(0,t.jsx)("div",{style:{marginBottom:12,fontSize:14},children:"还没有任何评测批次"}),r&&(0,t.jsx)("div",{style:{...U(m,j,"#FFD4D4"),maxWidth:480,margin:"0 auto 12px"},children:r}),(0,t.jsx)("button",{onClick:e,style:{padding:"8px 18px",background:h,color:"#fff",border:"none",borderRadius:6,fontSize:13,fontWeight:500,cursor:"pointer"},children:"发起首次评测 →"})]})}function L({onClear:e}){return(0,t.jsxs)("div",{style:{padding:"60px 22px",textAlign:"center",color:C},children:[(0,t.jsx)("div",{style:{marginBottom:12,fontSize:14},children:"没有自动观测历史任务"}),(0,t.jsx)("button",{onClick:e,style:{padding:"8px 18px",background:"#fff",color:h,border:`1px solid ${h}`,borderRadius:6,fontSize:13,fontWeight:500,cursor:"pointer"},children:"查看全部历史任务"})]})}function P({label:e,value:r,detail:n,primary:a,mono:s,valueColor:i,truncate:o}){return(0,t.jsxs)("div",{style:{minWidth:0},children:[(0,t.jsx)("div",{style:{fontSize:12,color:C,marginBottom:4},children:e}),(0,t.jsx)("div",{title:o?r:void 0,style:{fontSize:14,fontWeight:600,color:i||(a?k:A),fontFamily:s?"monospace":void 0,lineHeight:1.35,...o?{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}:{}},children:r}),n?(0,t.jsx)("div",{style:{marginTop:3},children:n}):null]})}function q({checked:e,disabled:r,onChange:n,"aria-label":a}){return(0,t.jsx)("button",{type:"button",role:"switch","aria-checked":e,"aria-label":a,disabled:r,onClick:()=>n(!e),style:{width:42,height:22,borderRadius:999,border:`1px solid ${e?"#21A36B":"#C9CDD3"}`,background:e?"#23B26F":"#D6D8DC",padding:2,cursor:r?"not-allowed":"pointer",opacity:r?.6:1,boxShadow:e?"inset 0 0 0 1px rgba(255,255,255,0.2), 0 1px 4px rgba(18, 128, 79, 0.16)":"inset 0 0 0 1px rgba(255,255,255,0.35)",transition:"background 0.16s ease, border-color 0.16s ease, box-shadow 0.16s ease"},children:(0,t.jsx)("span",{style:{display:"block",width:16,height:16,borderRadius:"50%",background:"#fff",transform:e?"translateX(20px)":"translateX(0)",boxShadow:"0 1px 4px rgba(24, 24, 27, 0.2)",transition:"transform 0.16s ease"}})})}function H(e,t,r){return{display:"inline-block",padding:r?"1px 6px":"2px 8px",background:e,color:t,borderRadius:4,fontSize:r?10:11,fontWeight:500,whiteSpace:"nowrap"}}function U(e,t,r){return{padding:10,marginBottom:12,borderRadius:6,background:t,border:`1px solid ${r}`,color:e,fontSize:12}}function J(e,t="left"){return{padding:"9px 10px",textAlign:t,fontWeight:500,color:C,fontSize:12,...e?{width:e}:{}}}function K(e="left"){return{padding:"9px 10px",textAlign:e,verticalAlign:"middle",fontSize:13}}e.s(["default",()=>z])}]);
@@ -0,0 +1 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,615408,e=>{"use strict";e.s(["presetEvaluators",0,[{id:"preset-agent-task-completion",name:"Agent 任务完成度",description:"评估 Agent 是否成功、完整地实现了用户目标,适合回归集和上线验收。",evaluatorType:"LLM",source:"preset",targetTypes:["结果"],objectives:["任务完成","内容质量"],scenarios:["Agent通用评测"],runMode:"LLM Judge",scoreRange:"0-1",popularity:96,mappedMetrics:["目标达成","步骤完整","答案可用"],status:"ready",runtimeHref:"/eval/trajectory",runtimeNote:"opencode-task-completion-evaluator.ts (single opencode agent)"},{id:"preset-agent-trace-quality",name:"Agent 轨迹质量",description:"评估 Agent 内部执行轨迹是否准确、稳定,关注规划、调用和中间结果。基于 opencode 单主评估器完成 completeness / tool-choice / attribution 判断,并结合规则冗余检测。",evaluatorType:"LLM",source:"preset",targetTypes:["轨迹"],objectives:["轨迹质量"],scenarios:["Agent通用评测","轨迹评测"],runMode:"Trace Judge (opencode)",scoreRange:"0-1",popularity:91,mappedMetrics:["轨迹准确性","推理连续性","异常处理"],status:"ready",runtimeHref:"/eval/trajectory",runtimeNote:"opencode-trajectory-evaluator.ts (single opencode agent)"}]])},482022,e=>{"use strict";let t=(0,e.i(456420).default)("external-link",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]]);e.s(["ExternalLink",()=>t],482022)},741120,e=>{"use strict";let t=(0,e.i(456420).default)("refresh-cw",[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]]);e.s(["RefreshCw",()=>t],741120)},77071,e=>{"use strict";let t=(0,e.i(456420).default)("plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);e.s(["Plus",()=>t],77071)},853138,e=>{"use strict";let t=(0,e.i(456420).default)("triangle-alert",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]]);e.s(["AlertTriangle",()=>t],853138)},716327,e=>{"use strict";let t=(0,e.i(456420).default)("chevron-down",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);e.s(["ChevronDown",()=>t],716327)},867927,e=>{"use strict";let t=(0,e.i(456420).default)("chevron-right",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);e.s(["ChevronRight",()=>t],867927)},583967,e=>{"use strict";let t=(0,e.i(456420).default)("circle-x",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]]);e.s(["XCircle",()=>t],583967)},632781,e=>{"use strict";let t=(0,e.i(456420).default)("loader-circle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]]);e.s(["Loader2",()=>t],632781)},616933,e=>{"use strict";let t=(0,e.i(456420).default)("circle-check",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);e.s(["default",()=>t])},847211,e=>{"use strict";let t=(0,e.i(456420).default)("ban",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M4.929 4.929 19.07 19.071",key:"196cmz"}]]);e.s(["Ban",()=>t],847211)},551757,e=>{"use strict";var t=e.i(616933);e.s(["CheckCircle2",()=>t.default])},474544,e=>{"use strict";let t=(0,e.i(456420).default)("clock",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 6v6l4 2",key:"mmk7yg"}]]);e.s(["Clock",()=>t],474544)},51907,e=>{"use strict";var t=e.i(843476),r=e.i(853138),a=e.i(847211),s=e.i(551757),n=e.i(474544),l=e.i(632781),o=e.i(583967),c=e.i(975157);let i={running:{subtle:"bg-blue-50 text-blue-700 border-blue-200 dark:bg-blue-500/10 dark:text-blue-300 dark:border-blue-400/30",outline:"bg-transparent text-blue-700 border-blue-300 dark:text-blue-300 dark:border-blue-400/40",iconClass:"animate-spin"},success:{subtle:"bg-success-subtle text-success border-success-border",outline:"bg-transparent text-success border-success/40"},warning:{subtle:"bg-warning-subtle text-warning border-warning-border",outline:"bg-transparent text-warning border-warning/40"},error:{subtle:"bg-error-subtle text-error border-error-border",outline:"bg-transparent text-error border-error/40"},cancelled:{subtle:"bg-background-secondary text-foreground-muted border-border",outline:"bg-transparent text-foreground-muted border-border-dark"},pending:{subtle:"bg-background-secondary text-foreground-muted border-border",outline:"bg-transparent text-foreground-muted border-border"}},d={running:l.Loader2,success:s.CheckCircle2,warning:r.AlertTriangle,error:o.XCircle,cancelled:a.Ban,pending:n.Clock};function u({status:e,label:r,variant:a="subtle",size:s="sm",className:n,...l}){let o=d[e],u=i[e];return(0,t.jsxs)("span",{role:"status",className:(0,c.cn)("inline-flex items-center rounded-sm border font-medium whitespace-nowrap","sm"===s?"h-5 px-1.5 text-xs gap-1":"h-6 px-2 text-sm gap-1.5",u[a],n),...l,children:[(0,t.jsx)(o,{className:(0,c.cn)("size-3.5 shrink-0",u.iconClass),"aria-hidden":!0}),(0,t.jsx)("span",{children:r})]})}e.s(["StatusBadge",()=>u])},994004,e=>{"use strict";let t=(0,e.i(456420).default)("history",[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}],["path",{d:"M12 7v5l4 2",key:"1fdv2h"}]]);e.s(["History",()=>t],994004)}]);