agent-insight 0.2.0-beta → 0.2.2-beta

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 (387) hide show
  1. package/.next/standalone/.next/BUILD_ID +1 -1
  2. package/.next/standalone/.next/build-manifest.json +2 -2
  3. package/.next/standalone/.next/server/app/(main)/accessconfig/install/page_client-reference-manifest.js +1 -1
  4. package/.next/standalone/.next/server/app/(main)/dashboard/page_client-reference-manifest.js +1 -1
  5. package/.next/standalone/.next/server/app/(main)/dataset/page_client-reference-manifest.js +1 -1
  6. package/.next/standalone/.next/server/app/(main)/eval/page_client-reference-manifest.js +1 -1
  7. package/.next/standalone/.next/server/app/(main)/eval/run/[runId]/page_client-reference-manifest.js +1 -1
  8. package/.next/standalone/.next/server/app/(main)/eval/trajectory/[taskId]/page_client-reference-manifest.js +1 -1
  9. package/.next/standalone/.next/server/app/(main)/eval/trajectory/[taskId]/trace/page_client-reference-manifest.js +1 -1
  10. package/.next/standalone/.next/server/app/(main)/eval/trajectory/page_client-reference-manifest.js +1 -1
  11. package/.next/standalone/.next/server/app/(main)/fault/page_client-reference-manifest.js +1 -1
  12. package/.next/standalone/.next/server/app/(main)/metrics/evaluators/[id]/page_client-reference-manifest.js +1 -1
  13. package/.next/standalone/.next/server/app/(main)/metrics/page_client-reference-manifest.js +1 -1
  14. package/.next/standalone/.next/server/app/(main)/modelconfig/registry/page_client-reference-manifest.js +1 -1
  15. package/.next/standalone/.next/server/app/(main)/modelconfig/web-search/page_client-reference-manifest.js +1 -1
  16. package/.next/standalone/.next/server/app/(main)/quality/page_client-reference-manifest.js +1 -1
  17. package/.next/standalone/.next/server/app/(main)/skill-eval/grayscale/page_client-reference-manifest.js +1 -1
  18. package/.next/standalone/.next/server/app/(main)/skill-eval/page_client-reference-manifest.js +1 -1
  19. package/.next/standalone/.next/server/app/(main)/skill-generator/page_client-reference-manifest.js +1 -1
  20. package/.next/standalone/.next/server/app/(main)/skill-opt/[name]/[version]/page_client-reference-manifest.js +1 -1
  21. package/.next/standalone/.next/server/app/(main)/skill-opt/page_client-reference-manifest.js +1 -1
  22. package/.next/standalone/.next/server/app/(main)/trace/page_client-reference-manifest.js +1 -1
  23. package/.next/standalone/.next/server/app/_global-error.html +2 -2
  24. package/.next/standalone/.next/server/app/_global-error.rsc +1 -1
  25. package/.next/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  26. package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  27. package/.next/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  28. package/.next/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  29. package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  30. package/.next/standalone/.next/server/app/_not-found.html +1 -1
  31. package/.next/standalone/.next/server/app/_not-found.rsc +1 -1
  32. package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
  33. package/.next/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  34. package/.next/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
  35. package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  36. package/.next/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  37. package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  38. package/.next/standalone/.next/server/app/accessconfig/channels.html +1 -1
  39. package/.next/standalone/.next/server/app/accessconfig/channels.rsc +1 -1
  40. package/.next/standalone/.next/server/app/accessconfig/channels.segments/!KG1haW4p/accessconfig/channels/__PAGE__.segment.rsc +1 -1
  41. package/.next/standalone/.next/server/app/accessconfig/channels.segments/!KG1haW4p/accessconfig/channels.segment.rsc +1 -1
  42. package/.next/standalone/.next/server/app/accessconfig/channels.segments/!KG1haW4p/accessconfig.segment.rsc +1 -1
  43. package/.next/standalone/.next/server/app/accessconfig/channels.segments/!KG1haW4p.segment.rsc +1 -1
  44. package/.next/standalone/.next/server/app/accessconfig/channels.segments/_full.segment.rsc +1 -1
  45. package/.next/standalone/.next/server/app/accessconfig/channels.segments/_head.segment.rsc +1 -1
  46. package/.next/standalone/.next/server/app/accessconfig/channels.segments/_index.segment.rsc +1 -1
  47. package/.next/standalone/.next/server/app/accessconfig/channels.segments/_tree.segment.rsc +1 -1
  48. package/.next/standalone/.next/server/app/accessconfig/health.html +1 -1
  49. package/.next/standalone/.next/server/app/accessconfig/health.rsc +1 -1
  50. package/.next/standalone/.next/server/app/accessconfig/health.segments/!KG1haW4p/accessconfig/health/__PAGE__.segment.rsc +1 -1
  51. package/.next/standalone/.next/server/app/accessconfig/health.segments/!KG1haW4p/accessconfig/health.segment.rsc +1 -1
  52. package/.next/standalone/.next/server/app/accessconfig/health.segments/!KG1haW4p/accessconfig.segment.rsc +1 -1
  53. package/.next/standalone/.next/server/app/accessconfig/health.segments/!KG1haW4p.segment.rsc +1 -1
  54. package/.next/standalone/.next/server/app/accessconfig/health.segments/_full.segment.rsc +1 -1
  55. package/.next/standalone/.next/server/app/accessconfig/health.segments/_head.segment.rsc +1 -1
  56. package/.next/standalone/.next/server/app/accessconfig/health.segments/_index.segment.rsc +1 -1
  57. package/.next/standalone/.next/server/app/accessconfig/health.segments/_tree.segment.rsc +1 -1
  58. package/.next/standalone/.next/server/app/accessconfig/install.html +1 -1
  59. package/.next/standalone/.next/server/app/accessconfig/install.rsc +2 -2
  60. package/.next/standalone/.next/server/app/accessconfig/install.segments/!KG1haW4p/accessconfig/install/__PAGE__.segment.rsc +2 -2
  61. package/.next/standalone/.next/server/app/accessconfig/install.segments/!KG1haW4p/accessconfig/install.segment.rsc +1 -1
  62. package/.next/standalone/.next/server/app/accessconfig/install.segments/!KG1haW4p/accessconfig.segment.rsc +1 -1
  63. package/.next/standalone/.next/server/app/accessconfig/install.segments/!KG1haW4p.segment.rsc +1 -1
  64. package/.next/standalone/.next/server/app/accessconfig/install.segments/_full.segment.rsc +2 -2
  65. package/.next/standalone/.next/server/app/accessconfig/install.segments/_head.segment.rsc +1 -1
  66. package/.next/standalone/.next/server/app/accessconfig/install.segments/_index.segment.rsc +1 -1
  67. package/.next/standalone/.next/server/app/accessconfig/install.segments/_tree.segment.rsc +1 -1
  68. package/.next/standalone/.next/server/app/accessconfig/webhooks.html +1 -1
  69. package/.next/standalone/.next/server/app/accessconfig/webhooks.rsc +1 -1
  70. package/.next/standalone/.next/server/app/accessconfig/webhooks.segments/!KG1haW4p/accessconfig/webhooks/__PAGE__.segment.rsc +1 -1
  71. package/.next/standalone/.next/server/app/accessconfig/webhooks.segments/!KG1haW4p/accessconfig/webhooks.segment.rsc +1 -1
  72. package/.next/standalone/.next/server/app/accessconfig/webhooks.segments/!KG1haW4p/accessconfig.segment.rsc +1 -1
  73. package/.next/standalone/.next/server/app/accessconfig/webhooks.segments/!KG1haW4p.segment.rsc +1 -1
  74. package/.next/standalone/.next/server/app/accessconfig/webhooks.segments/_full.segment.rsc +1 -1
  75. package/.next/standalone/.next/server/app/accessconfig/webhooks.segments/_head.segment.rsc +1 -1
  76. package/.next/standalone/.next/server/app/accessconfig/webhooks.segments/_index.segment.rsc +1 -1
  77. package/.next/standalone/.next/server/app/accessconfig/webhooks.segments/_tree.segment.rsc +1 -1
  78. package/.next/standalone/.next/server/app/accessconfig.html +1 -1
  79. package/.next/standalone/.next/server/app/accessconfig.rsc +1 -1
  80. package/.next/standalone/.next/server/app/accessconfig.segments/!KG1haW4p/accessconfig/__PAGE__.segment.rsc +1 -1
  81. package/.next/standalone/.next/server/app/accessconfig.segments/!KG1haW4p/accessconfig.segment.rsc +1 -1
  82. package/.next/standalone/.next/server/app/accessconfig.segments/!KG1haW4p.segment.rsc +1 -1
  83. package/.next/standalone/.next/server/app/accessconfig.segments/_full.segment.rsc +1 -1
  84. package/.next/standalone/.next/server/app/accessconfig.segments/_head.segment.rsc +1 -1
  85. package/.next/standalone/.next/server/app/accessconfig.segments/_index.segment.rsc +1 -1
  86. package/.next/standalone/.next/server/app/accessconfig.segments/_tree.segment.rsc +1 -1
  87. package/.next/standalone/.next/server/app/agents.html +1 -1
  88. package/.next/standalone/.next/server/app/agents.rsc +1 -1
  89. package/.next/standalone/.next/server/app/agents.segments/!KG1haW4p/agents/__PAGE__.segment.rsc +1 -1
  90. package/.next/standalone/.next/server/app/agents.segments/!KG1haW4p/agents.segment.rsc +1 -1
  91. package/.next/standalone/.next/server/app/agents.segments/!KG1haW4p.segment.rsc +1 -1
  92. package/.next/standalone/.next/server/app/agents.segments/_full.segment.rsc +1 -1
  93. package/.next/standalone/.next/server/app/agents.segments/_head.segment.rsc +1 -1
  94. package/.next/standalone/.next/server/app/agents.segments/_index.segment.rsc +1 -1
  95. package/.next/standalone/.next/server/app/agents.segments/_tree.segment.rsc +1 -1
  96. package/.next/standalone/.next/server/app/api/agent/run/route.js.nft.json +1 -1
  97. package/.next/standalone/.next/server/app/api/agent/stream/route.js.nft.json +1 -1
  98. package/.next/standalone/.next/server/app/api/debug/batch-tasks/[taskId]/route.js.nft.json +1 -1
  99. package/.next/standalone/.next/server/app/api/debug/execute/route.js.nft.json +1 -1
  100. package/.next/standalone/.next/server/app/api/debug/grayscale-tasks/[taskId]/route.js.nft.json +1 -1
  101. package/.next/standalone/.next/server/app/api/eval/terminate-all/route.js.nft.json +1 -1
  102. package/.next/standalone/.next/server/app/api/eval/trajectory/results/[id]/route.js +1 -1
  103. package/.next/standalone/.next/server/app/api/eval/trajectory/run/route.js +6 -6
  104. package/.next/standalone/.next/server/app/api/eval/trajectory/run/route.js.nft.json +1 -1
  105. package/.next/standalone/.next/server/app/api/eval/trajectory/runs/route.js +1 -1
  106. package/.next/standalone/.next/server/app/api/fault/diagnosis/stream/route.js.nft.json +1 -1
  107. package/.next/standalone/.next/server/app/api/observe/executions/[executionId]/agent-debug/route.js.nft.json +1 -1
  108. package/.next/standalone/.next/server/app/api/skill-eval/trigger/[skillName]/run/route.js.nft.json +1 -1
  109. package/.next/standalone/.next/server/app/api/skill-generator/attachments/route.js.nft.json +1 -1
  110. package/.next/standalone/.next/server/app/api/skill-generator/chat/route.js.nft.json +1 -1
  111. package/.next/standalone/.next/server/app/api/skill-opt/chat/route.js.nft.json +1 -1
  112. package/.next/standalone/.next/server/app/api/user-evaluators/route.js.nft.json +1 -1
  113. package/.next/standalone/.next/server/app/dashboard.html +1 -1
  114. package/.next/standalone/.next/server/app/dashboard.rsc +2 -2
  115. package/.next/standalone/.next/server/app/dashboard.segments/!KG1haW4p/dashboard/__PAGE__.segment.rsc +2 -2
  116. package/.next/standalone/.next/server/app/dashboard.segments/!KG1haW4p/dashboard.segment.rsc +1 -1
  117. package/.next/standalone/.next/server/app/dashboard.segments/!KG1haW4p.segment.rsc +1 -1
  118. package/.next/standalone/.next/server/app/dashboard.segments/_full.segment.rsc +2 -2
  119. package/.next/standalone/.next/server/app/dashboard.segments/_head.segment.rsc +1 -1
  120. package/.next/standalone/.next/server/app/dashboard.segments/_index.segment.rsc +1 -1
  121. package/.next/standalone/.next/server/app/dashboard.segments/_tree.segment.rsc +1 -1
  122. package/.next/standalone/.next/server/app/dataset.html +1 -1
  123. package/.next/standalone/.next/server/app/dataset.rsc +2 -2
  124. package/.next/standalone/.next/server/app/dataset.segments/!KG1haW4p/dataset/__PAGE__.segment.rsc +2 -2
  125. package/.next/standalone/.next/server/app/dataset.segments/!KG1haW4p/dataset.segment.rsc +1 -1
  126. package/.next/standalone/.next/server/app/dataset.segments/!KG1haW4p.segment.rsc +1 -1
  127. package/.next/standalone/.next/server/app/dataset.segments/_full.segment.rsc +2 -2
  128. package/.next/standalone/.next/server/app/dataset.segments/_head.segment.rsc +1 -1
  129. package/.next/standalone/.next/server/app/dataset.segments/_index.segment.rsc +1 -1
  130. package/.next/standalone/.next/server/app/dataset.segments/_tree.segment.rsc +1 -1
  131. package/.next/standalone/.next/server/app/eval/trajectory.html +1 -1
  132. package/.next/standalone/.next/server/app/eval/trajectory.rsc +2 -2
  133. package/.next/standalone/.next/server/app/eval/trajectory.segments/!KG1haW4p/eval/trajectory/__PAGE__.segment.rsc +2 -2
  134. package/.next/standalone/.next/server/app/eval/trajectory.segments/!KG1haW4p/eval/trajectory.segment.rsc +1 -1
  135. package/.next/standalone/.next/server/app/eval/trajectory.segments/!KG1haW4p/eval.segment.rsc +1 -1
  136. package/.next/standalone/.next/server/app/eval/trajectory.segments/!KG1haW4p.segment.rsc +1 -1
  137. package/.next/standalone/.next/server/app/eval/trajectory.segments/_full.segment.rsc +2 -2
  138. package/.next/standalone/.next/server/app/eval/trajectory.segments/_head.segment.rsc +1 -1
  139. package/.next/standalone/.next/server/app/eval/trajectory.segments/_index.segment.rsc +1 -1
  140. package/.next/standalone/.next/server/app/eval/trajectory.segments/_tree.segment.rsc +1 -1
  141. package/.next/standalone/.next/server/app/eval.html +1 -1
  142. package/.next/standalone/.next/server/app/eval.rsc +2 -2
  143. package/.next/standalone/.next/server/app/eval.segments/!KG1haW4p/eval/__PAGE__.segment.rsc +2 -2
  144. package/.next/standalone/.next/server/app/eval.segments/!KG1haW4p/eval.segment.rsc +1 -1
  145. package/.next/standalone/.next/server/app/eval.segments/!KG1haW4p.segment.rsc +1 -1
  146. package/.next/standalone/.next/server/app/eval.segments/_full.segment.rsc +2 -2
  147. package/.next/standalone/.next/server/app/eval.segments/_head.segment.rsc +1 -1
  148. package/.next/standalone/.next/server/app/eval.segments/_index.segment.rsc +1 -1
  149. package/.next/standalone/.next/server/app/eval.segments/_tree.segment.rsc +1 -1
  150. package/.next/standalone/.next/server/app/fault.html +1 -1
  151. package/.next/standalone/.next/server/app/fault.rsc +2 -2
  152. package/.next/standalone/.next/server/app/fault.segments/!KG1haW4p/fault/__PAGE__.segment.rsc +2 -2
  153. package/.next/standalone/.next/server/app/fault.segments/!KG1haW4p/fault.segment.rsc +1 -1
  154. package/.next/standalone/.next/server/app/fault.segments/!KG1haW4p.segment.rsc +1 -1
  155. package/.next/standalone/.next/server/app/fault.segments/_full.segment.rsc +2 -2
  156. package/.next/standalone/.next/server/app/fault.segments/_head.segment.rsc +1 -1
  157. package/.next/standalone/.next/server/app/fault.segments/_index.segment.rsc +1 -1
  158. package/.next/standalone/.next/server/app/fault.segments/_tree.segment.rsc +1 -1
  159. package/.next/standalone/.next/server/app/index.html +1 -1
  160. package/.next/standalone/.next/server/app/index.rsc +1 -1
  161. package/.next/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  162. package/.next/standalone/.next/server/app/index.segments/_full.segment.rsc +1 -1
  163. package/.next/standalone/.next/server/app/index.segments/_head.segment.rsc +1 -1
  164. package/.next/standalone/.next/server/app/index.segments/_index.segment.rsc +1 -1
  165. package/.next/standalone/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  166. package/.next/standalone/.next/server/app/login.html +1 -1
  167. package/.next/standalone/.next/server/app/login.rsc +1 -1
  168. package/.next/standalone/.next/server/app/login.segments/_full.segment.rsc +1 -1
  169. package/.next/standalone/.next/server/app/login.segments/_head.segment.rsc +1 -1
  170. package/.next/standalone/.next/server/app/login.segments/_index.segment.rsc +1 -1
  171. package/.next/standalone/.next/server/app/login.segments/_tree.segment.rsc +1 -1
  172. package/.next/standalone/.next/server/app/login.segments/login/__PAGE__.segment.rsc +1 -1
  173. package/.next/standalone/.next/server/app/login.segments/login.segment.rsc +1 -1
  174. package/.next/standalone/.next/server/app/memory.html +1 -1
  175. package/.next/standalone/.next/server/app/memory.rsc +1 -1
  176. package/.next/standalone/.next/server/app/memory.segments/!KG1haW4p/memory/__PAGE__.segment.rsc +1 -1
  177. package/.next/standalone/.next/server/app/memory.segments/!KG1haW4p/memory.segment.rsc +1 -1
  178. package/.next/standalone/.next/server/app/memory.segments/!KG1haW4p.segment.rsc +1 -1
  179. package/.next/standalone/.next/server/app/memory.segments/_full.segment.rsc +1 -1
  180. package/.next/standalone/.next/server/app/memory.segments/_head.segment.rsc +1 -1
  181. package/.next/standalone/.next/server/app/memory.segments/_index.segment.rsc +1 -1
  182. package/.next/standalone/.next/server/app/memory.segments/_tree.segment.rsc +1 -1
  183. package/.next/standalone/.next/server/app/metrics.html +1 -1
  184. package/.next/standalone/.next/server/app/metrics.rsc +2 -2
  185. package/.next/standalone/.next/server/app/metrics.segments/!KG1haW4p/metrics/__PAGE__.segment.rsc +2 -2
  186. package/.next/standalone/.next/server/app/metrics.segments/!KG1haW4p/metrics.segment.rsc +1 -1
  187. package/.next/standalone/.next/server/app/metrics.segments/!KG1haW4p.segment.rsc +1 -1
  188. package/.next/standalone/.next/server/app/metrics.segments/_full.segment.rsc +2 -2
  189. package/.next/standalone/.next/server/app/metrics.segments/_head.segment.rsc +1 -1
  190. package/.next/standalone/.next/server/app/metrics.segments/_index.segment.rsc +1 -1
  191. package/.next/standalone/.next/server/app/metrics.segments/_tree.segment.rsc +1 -1
  192. package/.next/standalone/.next/server/app/modelconfig/registry.html +1 -1
  193. package/.next/standalone/.next/server/app/modelconfig/registry.rsc +2 -2
  194. package/.next/standalone/.next/server/app/modelconfig/registry.segments/!KG1haW4p/modelconfig/registry/__PAGE__.segment.rsc +2 -2
  195. package/.next/standalone/.next/server/app/modelconfig/registry.segments/!KG1haW4p/modelconfig/registry.segment.rsc +1 -1
  196. package/.next/standalone/.next/server/app/modelconfig/registry.segments/!KG1haW4p/modelconfig.segment.rsc +1 -1
  197. package/.next/standalone/.next/server/app/modelconfig/registry.segments/!KG1haW4p.segment.rsc +1 -1
  198. package/.next/standalone/.next/server/app/modelconfig/registry.segments/_full.segment.rsc +2 -2
  199. package/.next/standalone/.next/server/app/modelconfig/registry.segments/_head.segment.rsc +1 -1
  200. package/.next/standalone/.next/server/app/modelconfig/registry.segments/_index.segment.rsc +1 -1
  201. package/.next/standalone/.next/server/app/modelconfig/registry.segments/_tree.segment.rsc +1 -1
  202. package/.next/standalone/.next/server/app/modelconfig/web-search.html +1 -1
  203. package/.next/standalone/.next/server/app/modelconfig/web-search.rsc +2 -2
  204. package/.next/standalone/.next/server/app/modelconfig/web-search.segments/!KG1haW4p/modelconfig/web-search/__PAGE__.segment.rsc +2 -2
  205. package/.next/standalone/.next/server/app/modelconfig/web-search.segments/!KG1haW4p/modelconfig/web-search.segment.rsc +1 -1
  206. package/.next/standalone/.next/server/app/modelconfig/web-search.segments/!KG1haW4p/modelconfig.segment.rsc +1 -1
  207. package/.next/standalone/.next/server/app/modelconfig/web-search.segments/!KG1haW4p.segment.rsc +1 -1
  208. package/.next/standalone/.next/server/app/modelconfig/web-search.segments/_full.segment.rsc +2 -2
  209. package/.next/standalone/.next/server/app/modelconfig/web-search.segments/_head.segment.rsc +1 -1
  210. package/.next/standalone/.next/server/app/modelconfig/web-search.segments/_index.segment.rsc +1 -1
  211. package/.next/standalone/.next/server/app/modelconfig/web-search.segments/_tree.segment.rsc +1 -1
  212. package/.next/standalone/.next/server/app/modelconfig.html +1 -1
  213. package/.next/standalone/.next/server/app/modelconfig.rsc +1 -1
  214. package/.next/standalone/.next/server/app/modelconfig.segments/!KG1haW4p/modelconfig/__PAGE__.segment.rsc +1 -1
  215. package/.next/standalone/.next/server/app/modelconfig.segments/!KG1haW4p/modelconfig.segment.rsc +1 -1
  216. package/.next/standalone/.next/server/app/modelconfig.segments/!KG1haW4p.segment.rsc +1 -1
  217. package/.next/standalone/.next/server/app/modelconfig.segments/_full.segment.rsc +1 -1
  218. package/.next/standalone/.next/server/app/modelconfig.segments/_head.segment.rsc +1 -1
  219. package/.next/standalone/.next/server/app/modelconfig.segments/_index.segment.rsc +1 -1
  220. package/.next/standalone/.next/server/app/modelconfig.segments/_tree.segment.rsc +1 -1
  221. package/.next/standalone/.next/server/app/optapi.html +1 -1
  222. package/.next/standalone/.next/server/app/optapi.rsc +1 -1
  223. package/.next/standalone/.next/server/app/optapi.segments/!KG1haW4p/optapi/__PAGE__.segment.rsc +1 -1
  224. package/.next/standalone/.next/server/app/optapi.segments/!KG1haW4p/optapi.segment.rsc +1 -1
  225. package/.next/standalone/.next/server/app/optapi.segments/!KG1haW4p.segment.rsc +1 -1
  226. package/.next/standalone/.next/server/app/optapi.segments/_full.segment.rsc +1 -1
  227. package/.next/standalone/.next/server/app/optapi.segments/_head.segment.rsc +1 -1
  228. package/.next/standalone/.next/server/app/optapi.segments/_index.segment.rsc +1 -1
  229. package/.next/standalone/.next/server/app/optapi.segments/_tree.segment.rsc +1 -1
  230. package/.next/standalone/.next/server/app/quality.html +1 -1
  231. package/.next/standalone/.next/server/app/quality.rsc +2 -2
  232. package/.next/standalone/.next/server/app/quality.segments/!KG1haW4p/quality/__PAGE__.segment.rsc +2 -2
  233. package/.next/standalone/.next/server/app/quality.segments/!KG1haW4p/quality.segment.rsc +1 -1
  234. package/.next/standalone/.next/server/app/quality.segments/!KG1haW4p.segment.rsc +1 -1
  235. package/.next/standalone/.next/server/app/quality.segments/_full.segment.rsc +2 -2
  236. package/.next/standalone/.next/server/app/quality.segments/_head.segment.rsc +1 -1
  237. package/.next/standalone/.next/server/app/quality.segments/_index.segment.rsc +1 -1
  238. package/.next/standalone/.next/server/app/quality.segments/_tree.segment.rsc +1 -1
  239. package/.next/standalone/.next/server/app/security.html +1 -1
  240. package/.next/standalone/.next/server/app/security.rsc +1 -1
  241. package/.next/standalone/.next/server/app/security.segments/!KG1haW4p/security/__PAGE__.segment.rsc +1 -1
  242. package/.next/standalone/.next/server/app/security.segments/!KG1haW4p/security.segment.rsc +1 -1
  243. package/.next/standalone/.next/server/app/security.segments/!KG1haW4p.segment.rsc +1 -1
  244. package/.next/standalone/.next/server/app/security.segments/_full.segment.rsc +1 -1
  245. package/.next/standalone/.next/server/app/security.segments/_head.segment.rsc +1 -1
  246. package/.next/standalone/.next/server/app/security.segments/_index.segment.rsc +1 -1
  247. package/.next/standalone/.next/server/app/security.segments/_tree.segment.rsc +1 -1
  248. package/.next/standalone/.next/server/app/skill-detail.html +1 -1
  249. package/.next/standalone/.next/server/app/skill-detail.rsc +1 -1
  250. package/.next/standalone/.next/server/app/skill-detail.segments/_full.segment.rsc +1 -1
  251. package/.next/standalone/.next/server/app/skill-detail.segments/_head.segment.rsc +1 -1
  252. package/.next/standalone/.next/server/app/skill-detail.segments/_index.segment.rsc +1 -1
  253. package/.next/standalone/.next/server/app/skill-detail.segments/_tree.segment.rsc +1 -1
  254. package/.next/standalone/.next/server/app/skill-detail.segments/skill-detail/__PAGE__.segment.rsc +1 -1
  255. package/.next/standalone/.next/server/app/skill-detail.segments/skill-detail.segment.rsc +1 -1
  256. package/.next/standalone/.next/server/app/skill-eval/grayscale.html +2 -2
  257. package/.next/standalone/.next/server/app/skill-eval/grayscale.rsc +3 -3
  258. package/.next/standalone/.next/server/app/skill-eval/grayscale.segments/!KG1haW4p/skill-eval/grayscale/__PAGE__.segment.rsc +2 -2
  259. package/.next/standalone/.next/server/app/skill-eval/grayscale.segments/!KG1haW4p/skill-eval/grayscale.segment.rsc +1 -1
  260. package/.next/standalone/.next/server/app/skill-eval/grayscale.segments/!KG1haW4p/skill-eval.segment.rsc +1 -1
  261. package/.next/standalone/.next/server/app/skill-eval/grayscale.segments/!KG1haW4p.segment.rsc +1 -1
  262. package/.next/standalone/.next/server/app/skill-eval/grayscale.segments/_full.segment.rsc +3 -3
  263. package/.next/standalone/.next/server/app/skill-eval/grayscale.segments/_head.segment.rsc +1 -1
  264. package/.next/standalone/.next/server/app/skill-eval/grayscale.segments/_index.segment.rsc +1 -1
  265. package/.next/standalone/.next/server/app/skill-eval/grayscale.segments/_tree.segment.rsc +1 -1
  266. package/.next/standalone/.next/server/app/skill-eval.html +1 -1
  267. package/.next/standalone/.next/server/app/skill-eval.rsc +4 -4
  268. package/.next/standalone/.next/server/app/skill-eval.segments/!KG1haW4p/skill-eval/__PAGE__.segment.rsc +2 -2
  269. package/.next/standalone/.next/server/app/skill-eval.segments/!KG1haW4p/skill-eval.segment.rsc +1 -1
  270. package/.next/standalone/.next/server/app/skill-eval.segments/!KG1haW4p.segment.rsc +1 -1
  271. package/.next/standalone/.next/server/app/skill-eval.segments/_full.segment.rsc +4 -4
  272. package/.next/standalone/.next/server/app/skill-eval.segments/_head.segment.rsc +1 -1
  273. package/.next/standalone/.next/server/app/skill-eval.segments/_index.segment.rsc +1 -1
  274. package/.next/standalone/.next/server/app/skill-eval.segments/_tree.segment.rsc +1 -1
  275. package/.next/standalone/.next/server/app/skill-generator.html +1 -1
  276. package/.next/standalone/.next/server/app/skill-generator.rsc +2 -2
  277. package/.next/standalone/.next/server/app/skill-generator.segments/!KG1haW4p/skill-generator/__PAGE__.segment.rsc +2 -2
  278. package/.next/standalone/.next/server/app/skill-generator.segments/!KG1haW4p/skill-generator.segment.rsc +1 -1
  279. package/.next/standalone/.next/server/app/skill-generator.segments/!KG1haW4p.segment.rsc +1 -1
  280. package/.next/standalone/.next/server/app/skill-generator.segments/_full.segment.rsc +2 -2
  281. package/.next/standalone/.next/server/app/skill-generator.segments/_head.segment.rsc +1 -1
  282. package/.next/standalone/.next/server/app/skill-generator.segments/_index.segment.rsc +1 -1
  283. package/.next/standalone/.next/server/app/skill-generator.segments/_tree.segment.rsc +1 -1
  284. package/.next/standalone/.next/server/app/skill-history.html +1 -1
  285. package/.next/standalone/.next/server/app/skill-history.rsc +1 -1
  286. package/.next/standalone/.next/server/app/skill-history.segments/!KG1haW4p/skill-history/__PAGE__.segment.rsc +1 -1
  287. package/.next/standalone/.next/server/app/skill-history.segments/!KG1haW4p/skill-history.segment.rsc +1 -1
  288. package/.next/standalone/.next/server/app/skill-history.segments/!KG1haW4p.segment.rsc +1 -1
  289. package/.next/standalone/.next/server/app/skill-history.segments/_full.segment.rsc +1 -1
  290. package/.next/standalone/.next/server/app/skill-history.segments/_head.segment.rsc +1 -1
  291. package/.next/standalone/.next/server/app/skill-history.segments/_index.segment.rsc +1 -1
  292. package/.next/standalone/.next/server/app/skill-history.segments/_tree.segment.rsc +1 -1
  293. package/.next/standalone/.next/server/app/skill-opt.html +1 -1
  294. package/.next/standalone/.next/server/app/skill-opt.rsc +2 -2
  295. package/.next/standalone/.next/server/app/skill-opt.segments/!KG1haW4p/skill-opt/__PAGE__.segment.rsc +2 -2
  296. package/.next/standalone/.next/server/app/skill-opt.segments/!KG1haW4p/skill-opt.segment.rsc +1 -1
  297. package/.next/standalone/.next/server/app/skill-opt.segments/!KG1haW4p.segment.rsc +1 -1
  298. package/.next/standalone/.next/server/app/skill-opt.segments/_full.segment.rsc +2 -2
  299. package/.next/standalone/.next/server/app/skill-opt.segments/_head.segment.rsc +1 -1
  300. package/.next/standalone/.next/server/app/skill-opt.segments/_index.segment.rsc +1 -1
  301. package/.next/standalone/.next/server/app/skill-opt.segments/_tree.segment.rsc +1 -1
  302. package/.next/standalone/.next/server/app/skill-release.html +1 -1
  303. package/.next/standalone/.next/server/app/skill-release.rsc +1 -1
  304. package/.next/standalone/.next/server/app/skill-release.segments/!KG1haW4p/skill-release/__PAGE__.segment.rsc +1 -1
  305. package/.next/standalone/.next/server/app/skill-release.segments/!KG1haW4p/skill-release.segment.rsc +1 -1
  306. package/.next/standalone/.next/server/app/skill-release.segments/!KG1haW4p.segment.rsc +1 -1
  307. package/.next/standalone/.next/server/app/skill-release.segments/_full.segment.rsc +1 -1
  308. package/.next/standalone/.next/server/app/skill-release.segments/_head.segment.rsc +1 -1
  309. package/.next/standalone/.next/server/app/skill-release.segments/_index.segment.rsc +1 -1
  310. package/.next/standalone/.next/server/app/skill-release.segments/_tree.segment.rsc +1 -1
  311. package/.next/standalone/.next/server/app/skills.html +1 -1
  312. package/.next/standalone/.next/server/app/skills.rsc +1 -1
  313. package/.next/standalone/.next/server/app/skills.segments/!KG1haW4p/skills/__PAGE__.segment.rsc +1 -1
  314. package/.next/standalone/.next/server/app/skills.segments/!KG1haW4p/skills.segment.rsc +1 -1
  315. package/.next/standalone/.next/server/app/skills.segments/!KG1haW4p.segment.rsc +1 -1
  316. package/.next/standalone/.next/server/app/skills.segments/_full.segment.rsc +1 -1
  317. package/.next/standalone/.next/server/app/skills.segments/_head.segment.rsc +1 -1
  318. package/.next/standalone/.next/server/app/skills.segments/_index.segment.rsc +1 -1
  319. package/.next/standalone/.next/server/app/skills.segments/_tree.segment.rsc +1 -1
  320. package/.next/standalone/.next/server/app/trace.html +1 -1
  321. package/.next/standalone/.next/server/app/trace.rsc +2 -2
  322. package/.next/standalone/.next/server/app/trace.segments/!KG1haW4p/trace/__PAGE__.segment.rsc +2 -2
  323. package/.next/standalone/.next/server/app/trace.segments/!KG1haW4p/trace.segment.rsc +1 -1
  324. package/.next/standalone/.next/server/app/trace.segments/!KG1haW4p.segment.rsc +1 -1
  325. package/.next/standalone/.next/server/app/trace.segments/_full.segment.rsc +2 -2
  326. package/.next/standalone/.next/server/app/trace.segments/_head.segment.rsc +1 -1
  327. package/.next/standalone/.next/server/app/trace.segments/_index.segment.rsc +1 -1
  328. package/.next/standalone/.next/server/app/trace.segments/_tree.segment.rsc +1 -1
  329. package/.next/standalone/.next/server/chunks/[root-of-the-server]__29b88539._.js +1 -1
  330. package/.next/standalone/.next/server/chunks/[root-of-the-server]__571e2dc5._.js +1 -1
  331. package/.next/standalone/.next/server/chunks/[root-of-the-server]__aeca73e7._.js +1 -1
  332. package/.next/standalone/.next/server/chunks/_5041b697._.js +1 -1
  333. package/.next/standalone/.next/server/chunks/_73cb0d03._.js +7 -7
  334. package/.next/standalone/.next/server/chunks/_7ecc72d5._.js +1 -1
  335. package/.next/standalone/.next/server/chunks/_b2cfd29b._.js +1 -1
  336. package/.next/standalone/.next/server/chunks/_d36858e9._.js +3 -3
  337. package/.next/standalone/.next/server/chunks/src_lib_69eb724e._.js +1 -1
  338. package/.next/standalone/.next/server/chunks/ssr/_2e8ebb20._.js +1 -1
  339. package/.next/standalone/.next/server/chunks/ssr/_8e76c6f5._.js +1 -1
  340. package/.next/standalone/.next/server/chunks/ssr/_da30fab4._.js +1 -1
  341. package/.next/standalone/.next/server/chunks/ssr/_ddf088e7._.js +1 -1
  342. package/.next/standalone/.next/server/chunks/ssr/src_243b92c2._.js +1 -1
  343. package/.next/standalone/.next/server/chunks/ssr/src_app_(main)_eval_trajectory_page_tsx_052751f5._.js +1 -1
  344. package/.next/standalone/.next/server/chunks/ssr/src_app_(main)_skill-eval_page_tsx_d6828614._.js +1 -1
  345. package/.next/standalone/.next/server/chunks/ssr/src_f0e17888._.js +1 -1
  346. package/.next/standalone/.next/server/pages/404.html +1 -1
  347. package/.next/standalone/.next/server/pages/500.html +2 -2
  348. package/.next/standalone/.next/static/chunks/046dc786e7e13cc4.js +1 -0
  349. package/.next/standalone/.next/static/chunks/4812c235bebb18ff.js +1 -0
  350. package/.next/standalone/.next/static/chunks/49bb7f20fbab9dac.js +1 -0
  351. package/.next/standalone/.next/static/chunks/{150c66f334898c1b.js → 6f9e84819ba4f450.js} +1 -1
  352. package/.next/{static/chunks/9ce93159d07d77fc.js → standalone/.next/static/chunks/781813e2aa38a20f.js} +1 -1
  353. package/.next/{static/chunks/d12348f4045911d6.js → standalone/.next/static/chunks/84b0f0dc8be9bc7e.js} +1 -1
  354. package/.next/standalone/.next/static/chunks/8871e04c4e1fd6c4.js +1 -0
  355. package/.next/standalone/.next/static/chunks/e33bd5306b9b9d64.js +1 -0
  356. package/.next/standalone/package.json +1 -3
  357. package/.next/standalone/scripts/install.js +11 -0
  358. package/.next/standalone/scripts/postinstall.js +20 -6
  359. package/.next/standalone/scripts/start.js +8 -0
  360. package/.next/static/chunks/046dc786e7e13cc4.js +1 -0
  361. package/.next/static/chunks/4812c235bebb18ff.js +1 -0
  362. package/.next/static/chunks/49bb7f20fbab9dac.js +1 -0
  363. package/.next/static/chunks/{150c66f334898c1b.js → 6f9e84819ba4f450.js} +1 -1
  364. package/.next/{standalone/.next/static/chunks/9ce93159d07d77fc.js → static/chunks/781813e2aa38a20f.js} +1 -1
  365. package/.next/{standalone/.next/static/chunks/d12348f4045911d6.js → static/chunks/84b0f0dc8be9bc7e.js} +1 -1
  366. package/.next/static/chunks/8871e04c4e1fd6c4.js +1 -0
  367. package/.next/static/chunks/e33bd5306b9b9d64.js +1 -0
  368. package/package.json +1 -3
  369. package/scripts/install.js +11 -0
  370. package/scripts/postinstall.js +20 -6
  371. package/scripts/start.js +8 -0
  372. package/.next/standalone/.next/static/chunks/63fd190c8d8ebf18.js +0 -1
  373. package/.next/standalone/.next/static/chunks/7100361dbae12246.js +0 -1
  374. package/.next/standalone/.next/static/chunks/a9d1c1054358afe7.js +0 -1
  375. package/.next/standalone/.next/static/chunks/bc8ee6907cb73517.js +0 -1
  376. package/.next/standalone/.next/static/chunks/d2f0f5c92132648a.js +0 -1
  377. package/.next/static/chunks/63fd190c8d8ebf18.js +0 -1
  378. package/.next/static/chunks/7100361dbae12246.js +0 -1
  379. package/.next/static/chunks/a9d1c1054358afe7.js +0 -1
  380. package/.next/static/chunks/bc8ee6907cb73517.js +0 -1
  381. package/.next/static/chunks/d2f0f5c92132648a.js +0 -1
  382. /package/.next/standalone/.next/static/{xPAK0xEAbffUxaOdHM34l → _A9OyLyPRvkXox-SGvz3D}/_buildManifest.js +0 -0
  383. /package/.next/standalone/.next/static/{xPAK0xEAbffUxaOdHM34l → _A9OyLyPRvkXox-SGvz3D}/_clientMiddlewareManifest.json +0 -0
  384. /package/.next/standalone/.next/static/{xPAK0xEAbffUxaOdHM34l → _A9OyLyPRvkXox-SGvz3D}/_ssgManifest.js +0 -0
  385. /package/.next/static/{xPAK0xEAbffUxaOdHM34l → _A9OyLyPRvkXox-SGvz3D}/_buildManifest.js +0 -0
  386. /package/.next/static/{xPAK0xEAbffUxaOdHM34l → _A9OyLyPRvkXox-SGvz3D}/_clientMiddlewareManifest.json +0 -0
  387. /package/.next/static/{xPAK0xEAbffUxaOdHM34l → _A9OyLyPRvkXox-SGvz3D}/_ssgManifest.js +0 -0
@@ -1,3 +1,3 @@
1
- module.exports=[99468,a=>{"use strict";let b={version:"agent-skill-scoring-v2.1",minSampleSize:1,recommendedSampleSize:20,minRepeats:1,capabilityScoreNeutral:50,capabilityScoreSlope:2.5,capabilityGoodThreshold:75,capabilityRejectThreshold:50,costGoodPct:20,costWarningPct:100,costRejectPct:200,costCouplingBonus:15,costCouplingPenalty:20,costGoodThreshold:70,costRejectThreshold:40,varianceMax:.25,stabilityGoodThreshold:70,stabilityRejectThreshold:50,capabilityDataQualityLowMax:5,capabilityDataQualityHighMin:95};function c(a,b,c){return Math.max(b,Math.min(c,a))}function d(a,b=1){let c=10**b;return Math.round(a*c)/c}function e(a){if("number"==typeof a&&Number.isFinite(a)&&a>0)return a;if("string"!=typeof a)return null;let b=a.match(/(\d+(?:\.\d+)?)\s*s?/i);if(!b)return null;let c=Number(b[1]);return Number.isFinite(c)&&c>0?c:null}function f(a){return a?Array.isArray(a.runs)&&a.runs.length>0?a.runs.flatMap(f):"pass"===a.status||"fail"===a.status||"executed"===a.status||"number"==typeof a.score||"number"==typeof a.pass||"number"==typeof a.tokenUsage||"string"==typeof a.timeCost||"number"==typeof a.timeCost?[a]:[]:[]}function g(a){return"pass"===a.status||"fail"===a.status||"number"==typeof a.score||"number"==typeof a.pass}function h(a){return"number"==typeof a.score&&Number.isFinite(a.score)?a.score:"number"==typeof a.pass&&Number.isFinite(a.pass)?a.pass:"pass"===a.status?100:"fail"===a.status?0:null}function i(a){let b=h(a);return null==b?null:b>=60}function j(a){return 0===a.length?null:a.reduce((a,b)=>a+b,0)/a.length}function k(a,b){return null==a||null==b||a<=0?null:(b-a)/a*100}function l(a){let b=a.map(i).filter(a=>null!=a);return 0===b.length?null:b.filter(Boolean).length/b.length}function m(a,b=1){return null!=a&&Number.isFinite(a)?String(d(a,b)):"—"}function n(a,n){let o=n?.policy??b,p=Object.entries(a).filter(([a])=>!n?.caseIds||n.caseIds.includes(a)).map(([a,b])=>({caseId:a,aRuns:f(b.a).filter(g),bRuns:f(b.b).filter(g)})).filter(a=>a.aRuns.length>0&&a.bRuns.length>0),q=p.flatMap(a=>a.aRuns),r=p.flatMap(a=>a.bRuns),s=p.length,t=n?.repeatRounds??Math.max(1,...p.map(a=>Math.max(a.aRuns.length,a.bRuns.length,1))),u=s>=o.minSampleSize,v=q.map(h).filter(a=>null!=a),w=r.map(h).filter(a=>null!=a),x=j(v),y=j(w),z=null==x||null==y?null:y-x,A=null==z?null:c(o.capabilityScoreNeutral+z*o.capabilityScoreSlope,0,100),B=null!=x&&null!=y?x<o.capabilityDataQualityLowMax&&y<o.capabilityDataQualityLowMax?`A/B 评测均分同为 < ${o.capabilityDataQualityLowMax},数据集可能过难`:x>o.capabilityDataQualityHighMin&&y>o.capabilityDataQualityHighMin?`A/B 评测均分同为 > ${o.capabilityDataQualityHighMin},数据集可能过易,区分度不足`:void 0:void 0,C=u?null==A?"unavailable":B?"data-quality":A>=o.capabilityGoodThreshold?"good":A<o.capabilityRejectThreshold?"reject":"warning":"insufficient",D=l(q),E=l(r),F=null==D||null==E?null:(E-D)*100,G={formula:`clamp(${o.capabilityScoreNeutral} + Δscore \xd7 ${o.capabilityScoreSlope}, 0, 100)`,steps:[`avgEvalA = mean(${v.length} runs) = ${m(x)}`,`avgEvalB = mean(${w.length} runs) = ${m(y)}`,`Δscore = avgEvalB − avgEvalA = ${m(z)}`,`score = clamp(${o.capabilityScoreNeutral} + ${m(z)} \xd7 ${o.capabilityScoreSlope}, 0, 100) = ${m(A)}`],reference:"docs/skill-ab-scoring.md §3.1"},H=q.map(a=>a.tokenUsage).filter(a=>"number"==typeof a&&Number.isFinite(a)&&a>0),I=r.map(a=>a.tokenUsage).filter(a=>"number"==typeof a&&Number.isFinite(a)&&a>0),J=j(H),K=j(I),L=k(J,K),M=j(q.map(a=>e(a.timeCost)).filter(a=>null!=a)),N=j(r.map(a=>e(a.timeCost)).filter(a=>null!=a)),O=k(M,N),P=j(q.map(a=>a.toolCallCount).filter(a=>"number"==typeof a&&Number.isFinite(a))),Q=j(r.map(a=>a.toolCallCount).filter(a=>"number"==typeof a&&Number.isFinite(a))),R=k(P,Q),S=function(a,b){if(null==a)return null;if(a<=0)return 100;if(a<=b.costGoodPct)return 100-a/b.costGoodPct*20;if(a<=b.costWarningPct){let c=b.costWarningPct-b.costGoodPct;return 80-(a-b.costGoodPct)/c*40}if(a<=b.costRejectPct){let c=b.costRejectPct-b.costWarningPct;return 40-(a-b.costWarningPct)/c*40}return 0}(L,o),T=null==S?null:null==A?c(S,0,100):A>=o.capabilityGoodThreshold?c(S+o.costCouplingBonus,0,100):A<o.capabilityRejectThreshold?c(S-o.costCouplingPenalty,0,100):c(S,0,100),U=null==J?"A 组平均 Token 缺失或为 0,成本维度无法计算":void 0,V=u?null==T?"unavailable":T>=o.costGoodThreshold?"good":T<o.costRejectThreshold?"reject":"warning":"insufficient",W=null==A?"无能力分参考":A>=o.capabilityGoodThreshold?`能力 ${m(A)} ≥ ${o.capabilityGoodThreshold} → +${o.costCouplingBonus}`:A<o.capabilityRejectThreshold?`能力 ${m(A)} < ${o.capabilityRejectThreshold} → −${o.costCouplingPenalty}`:`能力 ${m(A)} 居中 → \xb10`,X={formula:`baseCost(Δtoken) + couplingByCapability`,steps:[`avgTokensA = mean(${H.length} runs) = ${m(J,0)}`,`avgTokensB = mean(${I.length} runs) = ${m(K,0)}`,`Δtoken = (avgTokensB − avgTokensA) / avgTokensA \xd7 100% = ${m(L)}%`,`baseCost = piecewise(Δtoken; 0%→100, ${o.costGoodPct}%→80, ${o.costWarningPct}%→40, ${o.costRejectPct}%→0) = ${m(S)}`,`coupling = ${W}`,`score = clamp(baseCost + coupling, 0, 100) = ${m(T)}`],reference:"docs/skill-ab-scoring.md §4.1"},Y=r.length>0?r.filter(a=>a.skillTriggered).length/r.length:null,Z=p.map(a=>(function(a){if(a.length<2)return null;let b=a.reduce((a,b)=>a+b,0)/a.length;return a.reduce((a,c)=>a+(c-b)**2,0)/a.length})(a.bRuns.map(i).filter(a=>null!=a).map(a=>+!!a))).filter(a=>null!=a),$=Z.length>0?j(Z):null,_=null!=$,aa=c(1-($??0)/o.varianceMax,0,1),ab=null==Y?null:c(100*Y*aa,0,100),ac=null==Y?null:c(100*Y,0,100),ad=null==$?null:c(100*aa,0,100),ae=u?null==ab?"unavailable":ab>=o.stabilityGoodThreshold?"good":ab<o.stabilityRejectThreshold?null!=Y&&100*Y<o.stabilityRejectThreshold?"revise-description":"unreliable":"warning":"insufficient",af={formula:`invokeRate \xd7 100 \xd7 (1 − variance / ${o.varianceMax})`,steps:[`invokeRate = ${r.length>0?r.filter(a=>a.skillTriggered).length:0} / ${r.length} = ${m(null==Y?null:100*Y)}%`,_?`variance = mean(per-case binary variance, ${Z.length} cases) = ${m($,3)}`:`variance = (重复轮次 < 2,按 0 处理)`,`1 − var/${o.varianceMax} = ${m(aa,3)}`,`score = ${m(null==Y?null:100*Y)}% \xd7 ${m(aa,3)} = ${m(ab)}`],reference:"docs/skill-ab-scoring.md §5.1"},ag=[A,T,ab].every(a=>null!=a),ah=u&&ag?Math.round(Math.min(A,T,ab)):null,ai=[];null!=A&&A<o.capabilityRejectThreshold&&ai.push({key:"capability",label:`能力分 ${m(A)} < ${o.capabilityRejectThreshold}`,ceiling:o.capabilityRejectThreshold}),null!=T&&T<o.costRejectThreshold&&ai.push({key:"cost",label:`成本分 ${m(T)} < ${o.costRejectThreshold}`,ceiling:o.costRejectThreshold}),null!=ab&&ab<o.stabilityRejectThreshold&&ai.push({key:"stability",label:`稳定性分 ${m(ab)} < ${o.stabilityRejectThreshold}`,ceiling:o.stabilityRejectThreshold});let aj=ai[0]?.key??null,ak=null!=A&&null!=T&&null!=ab&&A>=o.capabilityGoodThreshold&&T>=o.costGoodThreshold&&ab>=o.stabilityGoodThreshold,al=u?aj?"reject":ak?"direct-release":"monitor-release":"insufficient",am={formula:"min(capability, cost, stability)",steps:[`capability = ${m(A)}`,`cost = ${m(T)}`,`stability = ${m(ab)}`,ag?`total = min(...) = ${m(ah,0)}`:`total = 任一维度缺失,无法出综合分`],reference:"docs/skill-ab-scoring.md §6.1"},an=null==ah?{grade:"insufficient",gradeLabel:"样本不足"}:ah>=90?{grade:"excellent",gradeLabel:"优秀"}:ah>=75?{grade:"good",gradeLabel:"良好"}:ah>=60?{grade:"pass",gradeLabel:"合格"}:ah>=40?{grade:"weak",gradeLabel:"偏弱"}:{grade:"fail",gradeLabel:"不合格"};return{policyVersion:o.version,sampleSize:s,completedPairs:s,repeatRounds:t,confidence:s>=20?"high":s>=10?"medium":"low",canScore:u,totalScore:ah,totalScoreBreakdown:am,...an,decision:al,decisionLabel:"insufficient"===al?"样本不足":"reject"===al?"capability"===aj?"打回(能力)":"cost"===aj?"打回(成本)":"打回(稳定性)":"direct-release"===al?"直接发布":"监控发布",allowRelease:"direct-release"===al||"monitor-release"===al,rejectCategory:aj,hardGates:ai,capability:{avgEvalScoreA:null==x?null:d(x,1),avgEvalScoreB:null==y?null:d(y,1),deltaScore:null==z?null:d(z,1),passRateA:null==D?null:d(100*D,1),passRateB:null==E?null:d(100*E,1),deltaPp:null==F?null:d(F,1),score:null==A?null:d(A,1),verdict:C,label:"good"===C?"好":"reject"===C?"拒绝":"data-quality"===C?"数据质量问题":"insufficient"===C?"样本不足":"unavailable"===C?"无法计算":"一般",tone:"good"===C?"green":"reject"===C?"red":"insufficient"===C||"unavailable"===C?"gray":"amber",dataQualityIssue:B,breakdown:G},cost:{avgTokensA:null==J?null:Math.round(J),avgTokensB:null==K?null:Math.round(K),deltaTokenPct:null==L?null:d(L,1),avgDurationA:null==M?null:d(M,1),avgDurationB:null==N?null:d(N,1),deltaDurationPct:null==O?null:d(O,1),avgStepsA:null==P?null:d(P,1),avgStepsB:null==Q?null:d(Q,1),deltaStepsPct:null==R?null:d(R,1),baseCost:null==S?null:d(S,1),score:null==T?null:d(T,1),verdict:V,label:"good"===V?"好":"reject"===V?"拒绝":"insufficient"===V?"样本不足":"unavailable"===V?"无法计算":"警告",tone:"good"===V?"green":"reject"===V?"red":"insufficient"===V||"unavailable"===V?"gray":"amber",dataQualityIssue:U,breakdown:X},stability:{invokeRate:null==Y?null:d(100*Y,1),variance:null==$?null:d($,3),score:null==ab?null:d(ab,1),invokeScore:null==ac?null:d(ac,1),varianceScore:null==ad?null:d(ad,1),verdict:ae,label:"good"===ae?"好":"revise-description"===ae?"改描述":"unreliable"===ae?"不可靠":"insufficient"===ae?"样本不足":"unavailable"===ae?"无法计算":"警告",tone:"good"===ae?"green":"revise-description"===ae||"unreliable"===ae?"red":"insufficient"===ae||"unavailable"===ae?"gray":"amber",varianceComputable:_,dataQualityIssue:_?void 0:"重复轮次不足,方差不可计算",breakdown:af}}}a.s(["DEFAULT_AB_SCORING_POLICY",0,b,"calculateAbScoring",()=>n])},467952,a=>{"use strict";var b=a.i(187924),c=a.i(572131),d=a.i(575110);let e=a.i(478614).presetEvaluators.filter(a=>"ready"===a.status).map(a=>({id:a.id,name:a.name,description:a.description,source:"preset"}));function f(){let a=new Date,b=a=>String(a).padStart(2,"0");return`评测任务 ${a.getFullYear()}-${b(a.getMonth()+1)}-${b(a.getDate())} ${b(a.getHours())}:${b(a.getMinutes())}`}function g({open:a,user:g,onClose:h,onCreated:i,defaultTitle:j,defaultDescription:k,evaluators:l}){let[m,n]=(0,c.useState)(""),[o,p]=(0,c.useState)(""),[q,r]=(0,c.useState)(!1),[s,t]=(0,c.useState)("");if((0,c.useEffect)(()=>{a&&(n(j??""),p(k??""),t(""),r(!1))},[a,j,k]),!a)return null;let u=new Map([...e.map(a=>[a.id,a.name])]),v=(l||[]).filter(a=>u.has(a)),w=v.map(a=>u.get(a)||a),x=m.trim()||f(),y=v.length>0&&v.length<=5&&!q,z=async()=>{if(y){r(!0),t("");try{let a=await (0,d.apiFetch)("/api/eval/trajectory/run",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({user:g,placeholderOnly:!0,evaluators:v,taskTitle:x,taskDescription:o.trim()})}),b=await a.json().catch(()=>({}));if(!a.ok||!b.evaluatorRunId){t(b?.error||`创建失败 (${a.status})`),r(!1);return}i({evaluatorRunId:String(b.evaluatorRunId),taskTitle:x,taskDescription:o.trim(),selectedEvaluators:Array.isArray(b.evaluators)?b.evaluators:v,selectedEvaluatorNames:Array.isArray(b.evaluatorNames)?b.evaluatorNames:[]})}catch(a){t(a instanceof Error?a.message:String(a)),r(!1)}}};return(0,b.jsx)("div",{onClick:a=>{a.target===a.currentTarget&&h()},style:{position:"fixed",inset:0,zIndex:1100,background:"rgba(24,24,27,.45)",backdropFilter:"blur(2px)",display:"flex",alignItems:"flex-start",justifyContent:"center",paddingTop:"10vh"},children:(0,b.jsxs)("div",{style:{background:"#fff",borderRadius:12,boxShadow:"0 16px 48px rgba(0,0,0,.18)",width:580,maxWidth:"calc(100vw - 32px)",overflow:"hidden",display:"flex",flexDirection:"column",maxHeight:"80vh"},children:[(0,b.jsxs)("div",{style:{padding:"14px 18px",borderBottom:"1px solid #E4E4E7",display:"flex",alignItems:"center",justifyContent:"space-between"},children:[(0,b.jsx)("h3",{style:{margin:0,fontSize:14,fontWeight:600,color:"#18181B"},children:"+ 新建评测任务"}),(0,b.jsx)("button",{type:"button",onClick:h,style:{background:"transparent",border:"none",color:"#71717A",fontSize:18,cursor:"pointer",padding:"2px 8px",lineHeight:1,borderRadius:4},"aria-label":"关闭",children:"×"})]}),(0,b.jsxs)("div",{style:{padding:18,overflowY:"auto"},children:[(0,b.jsxs)("div",{style:{marginBottom:14},children:[(0,b.jsxs)("label",{style:{display:"block",fontSize:12,fontWeight:600,color:"#18181B",marginBottom:5},children:["任务名 ",(0,b.jsx)("span",{style:{color:"#B91C1C",marginLeft:2},children:"*"})]}),(0,b.jsx)("input",{type:"text",value:m,onChange:a=>n(a.target.value),placeholder:`默认: ${f()}`,maxLength:60,style:{width:"100%",padding:"7px 11px",borderRadius:6,border:"1px solid #D4D4D8",fontSize:13,color:"#18181B",outline:"none",fontFamily:"inherit"},onFocus:a=>a.currentTarget.style.borderColor="#4F46E5",onBlur:a=>a.currentTarget.style.borderColor="#D4D4D8"}),(0,b.jsxs)("div",{style:{fontSize:11,color:"#71717A",marginTop:4},children:["为这个评测任务取个名字, 留空将使用默认时间戳 (",m.length,"/60)"]})]}),(0,b.jsxs)("div",{style:{marginBottom:14},children:[(0,b.jsx)("label",{style:{display:"block",fontSize:12,fontWeight:600,color:"#18181B",marginBottom:5},children:"任务描述"}),(0,b.jsx)("textarea",{value:o,onChange:a=>p(a.target.value),placeholder:"可选: 任务背景 / 目标 / 关注点...",maxLength:500,rows:3,style:{width:"100%",padding:"7px 11px",borderRadius:6,border:"1px solid #D4D4D8",fontSize:12.5,color:"#18181B",outline:"none",fontFamily:"inherit",resize:"vertical",minHeight:60},onFocus:a=>a.currentTarget.style.borderColor="#4F46E5",onBlur:a=>a.currentTarget.style.borderColor="#D4D4D8"})]}),(0,b.jsxs)("div",{style:{marginBottom:10},children:[(0,b.jsxs)("label",{style:{display:"block",fontSize:12,fontWeight:600,color:"#18181B",marginBottom:5},children:["评估器",(0,b.jsxs)("span",{style:{fontWeight:400,color:"#71717A",fontSize:11,marginLeft:6},children:["(取自上方配置, 共 ",w.length," 个)"]})]}),w.length>0?(0,b.jsx)("div",{style:{display:"flex",flexWrap:"wrap",gap:6},children:w.map((a,c)=>(0,b.jsx)("span",{style:{padding:"3px 9px",borderRadius:99,background:"#EEF2FF",color:"#4F46E5",fontSize:11.5,fontWeight:600,border:"1px solid rgba(79,70,229,.2)"},children:a},`${a}_${c}`))}):(0,b.jsx)("div",{style:{padding:"8px 11px",background:"#FEF2F2",color:"#B91C1C",border:"1px solid #FECACA",borderRadius:6,fontSize:12},children:"配置区未选择评估器, 请先在上方「评估器」下拉里勾选至少 1 个。"}),(0,b.jsx)("div",{style:{fontSize:11,color:"#71717A",marginTop:5,lineHeight:1.5},children:"ⓘ 任务下所有评测都会用这些评估器跑。想改评估器请在上方配置区调整。"})]}),s&&(0,b.jsx)("div",{style:{padding:"8px 11px",background:"#FEF2F2",color:"#B91C1C",border:"1px solid #FECACA",borderRadius:6,fontSize:12,marginTop:10},children:s})]}),(0,b.jsxs)("div",{style:{padding:"11px 18px",borderTop:"1px solid #E4E4E7",display:"flex",justifyContent:"flex-end",gap:8,background:"#FAFAFA"},children:[(0,b.jsx)("button",{type:"button",onClick:h,disabled:q,style:{padding:"6px 12px",borderRadius:6,border:"1px solid #D4D4D8",background:"#fff",fontSize:12.5,fontWeight:500,color:"#52525B",cursor:q?"not-allowed":"pointer",opacity:q?.5:1},children:"取消"}),(0,b.jsx)("button",{type:"button",onClick:z,disabled:!y,style:{padding:"6px 14px",borderRadius:6,border:"1px solid #4F46E5",background:y?"#4F46E5":"#A5A0E4",fontSize:12.5,fontWeight:600,color:"#fff",cursor:y?"pointer":"not-allowed"},children:q?"创建中...":"创建任务"})]})]})})}a.s(["NewEvaluationBatchDialog",()=>g])},525589,738835,103970,a=>{"use strict";var b=a.i(187924),c=a.i(572131),d=a.i(111098),e=a.i(193658),f=a.i(589027),g=a.i(164831);let h=(0,g.default)("ellipsis",[["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}],["circle",{cx:"19",cy:"12",r:"1",key:"1wjl8i"}],["circle",{cx:"5",cy:"12",r:"1",key:"1pcz8c"}]]),i=(0,g.default)("pause",[["rect",{x:"14",y:"3",width:"5",height:"18",rx:"1",key:"kaeet6"}],["rect",{x:"5",y:"3",width:"5",height:"18",rx:"1",key:"1wsw3u"}]]),j=(0,g.default)("play",[["path",{d:"M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z",key:"10ikf1"}]]);a.s(["Play",()=>j],738835);var k=a.i(519783),l=a.i(699570),m=a.i(526982),n=a.i(368114);function o(){let{isCollapsed:a,toggleSidebar:c}=(0,m.useSidebar)(),f=a?e.PanelLeftOpen:d.PanelLeftClose;return(0,b.jsx)("button",{type:"button",onClick:c,"aria-label":a?"展开侧栏":"折叠侧栏",className:"inline-flex size-7 shrink-0 items-center justify-center rounded-md text-foreground-secondary transition-colors hover:bg-background-secondary hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",children:(0,b.jsx)(f,{className:"size-4"})})}function p({items:a,moduleLabel:d}){let e=a?.length?a:d?[{label:d}]:[];return e.length?(0,b.jsx)("nav",{"aria-label":"Breadcrumb",className:"flex min-w-0 items-center gap-1.5 text-sm",children:e.map((a,d)=>{let f=d===e.length-1,g=f?(0,b.jsx)("span",{className:"truncate font-medium text-foreground",children:a.label}):a.href||a.onClick?(0,b.jsx)("a",{href:a.href,onClick:a.onClick,className:"truncate text-foreground-secondary transition-colors hover:text-foreground",children:a.label}):(0,b.jsx)("span",{className:"truncate text-foreground-secondary",children:a.label});return(0,b.jsxs)(c.Fragment,{children:[g,!f&&(0,b.jsx)("span",{"aria-hidden":"true",className:"select-none text-[var(--primary)] opacity-50",children:" › "})]},d)})}):null}function q({variant:a,action:c,secondaryAction:d,moreMenu:e,live:f}){return"live"===a&&f?(0,b.jsx)(t,{live:f}):(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[d&&(0,b.jsxs)(l.Button,{variant:"secondary",size:"sm",onClick:d.onClick,disabled:d.disabled,children:[d.icon&&(0,b.jsx)(d.icon,{}),d.label]}),c&&(0,b.jsxs)(l.Button,{variant:"default",size:"sm",onClick:c.onClick,disabled:c.disabled,children:[c.icon&&(0,b.jsx)(c.icon,{}),c.label]}),"detail"===a&&e&&e.length>0&&(0,b.jsx)(r,{items:e})]})}function r({items:a}){return(0,b.jsxs)("details",{className:"relative",children:[(0,b.jsx)("summary",{"aria-label":"更多操作",className:"inline-flex size-8 cursor-pointer list-none items-center justify-center rounded-md text-foreground-secondary transition-colors hover:bg-background-secondary hover:text-foreground [&::-webkit-details-marker]:hidden",children:(0,b.jsx)(h,{className:"size-4"})}),(0,b.jsx)("div",{role:"menu",className:"absolute right-0 z-30 mt-1 min-w-[160px] overflow-hidden rounded-md border border-border bg-card shadow-md",children:a.map((a,c)=>(0,b.jsxs)("button",{type:"button",role:"menuitem",onClick:a.onClick,className:(0,n.cn)("flex w-full items-center gap-2 px-3 py-2 text-left text-sm transition-colors hover:bg-background-secondary",a.destructive?"text-[var(--error)]":"text-foreground"),children:[a.icon&&(0,b.jsx)(a.icon,{className:"size-4"}),a.label]},c))})]})}let s=["1s","3s","5s","15s","30s","1m"];function t({live:a}){var c;let d,e,g,h,m,o=(c=a.lastUpdate,d=`${c.getMonth()+1}`,e=`${c.getDate()}`,g=`${c.getHours()}`.padStart(2,"0"),h=`${c.getMinutes()}`.padStart(2,"0"),m=`${c.getSeconds()}`.padStart(2,"0"),`${d}/${e} \xb7 ${g}:${h}:${m}`);return(0,b.jsxs)("div",{className:"flex items-center gap-3",children:[(0,b.jsxs)("span",{"aria-label":a.label??"实时数据",className:"inline-flex items-center gap-1.5 rounded-sm bg-[var(--success-subtle)] px-2 py-0.5 text-[11px] font-medium text-[var(--success)]",children:[(0,b.jsx)("span",{className:"size-1.5 animate-pulse rounded-full bg-current"}),a.label??"实时数据"]}),(0,b.jsx)("time",{className:"font-mono tabular-nums text-xs text-foreground-muted",children:o}),a.onRefreshRateChange?(0,b.jsxs)("details",{className:"relative",children:[(0,b.jsxs)("summary",{className:"inline-flex h-7 cursor-pointer list-none items-center gap-1 rounded-md border border-border bg-card px-2 text-xs text-foreground transition-colors hover:bg-background-secondary [&::-webkit-details-marker]:hidden",children:[(0,b.jsx)(k.RefreshCw,{className:"size-3"}),a.refreshRate,(0,b.jsx)(f.ChevronDown,{className:"size-3 opacity-60"})]}),(0,b.jsx)("div",{className:"absolute right-0 z-30 mt-1 min-w-[64px] overflow-hidden rounded-md border border-border bg-card shadow-md",children:s.map(c=>(0,b.jsx)("button",{type:"button",onClick:()=>a.onRefreshRateChange?.(c),className:(0,n.cn)("block w-full px-3 py-1.5 text-left text-xs transition-colors hover:bg-background-secondary",c===a.refreshRate?"font-medium text-[var(--primary)]":"text-foreground"),children:c},c))})]}):(0,b.jsxs)("span",{className:"inline-flex h-7 items-center gap-1 rounded-md border border-border bg-card px-2 text-xs text-foreground-muted",children:[(0,b.jsx)(k.RefreshCw,{className:"size-3"}),a.refreshRate]}),(0,b.jsxs)(l.Button,{variant:"secondary",size:"sm",onClick:a.onTogglePause,children:[a.paused?(0,b.jsx)(j,{}):(0,b.jsx)(i,{}),a.paused?"继续":"暂停"]})]})}function u({obj:a}){let c=(a.iconChar||a.title.charAt(0)||"?").slice(0,1).toUpperCase();return(0,b.jsxs)("div",{className:"flex items-center gap-3",children:[(0,b.jsx)("div",{className:"grid size-8 shrink-0 place-items-center rounded-md bg-[var(--primary-subtle)] font-mono text-xs font-semibold text-[var(--primary)]",children:c}),(0,b.jsxs)("div",{className:"min-w-0 leading-tight",children:[(0,b.jsxs)("div",{className:"flex items-center gap-1.5 font-mono text-[15px] font-semibold tracking-[-0.01em] text-foreground",children:[(0,b.jsx)("span",{className:"truncate",children:a.title}),a.versionMenu&&(0,b.jsx)(v,{menu:a.versionMenu})]}),(0,b.jsx)("div",{className:"mt-0.5 text-xs text-foreground-muted",children:a.sub})]})]})}function v({menu:a}){return(0,b.jsxs)("details",{className:"relative",children:[(0,b.jsx)("summary",{"aria-label":"切换版本",className:"inline-flex cursor-pointer list-none items-center text-foreground-muted hover:text-foreground [&::-webkit-details-marker]:hidden",children:(0,b.jsx)(f.ChevronDown,{className:"size-3"})}),(0,b.jsx)("div",{className:"absolute left-0 z-30 mt-1 min-w-[160px] overflow-hidden rounded-md border border-border bg-card shadow-md",children:a.versions.map(c=>(0,b.jsxs)("button",{type:"button",onClick:()=>a.onSelect(c.id),className:(0,n.cn)("flex w-full items-center justify-between px-3 py-1.5 text-left text-xs transition-colors hover:bg-background-secondary",c.id===a.current?"font-medium text-[var(--primary)]":"text-foreground"),children:[(0,b.jsx)("span",{className:"font-mono",children:c.label}),c.current&&(0,b.jsx)("span",{className:"text-[10px] text-foreground-muted",children:"当前"})]},c.id))})]})}function w({banner:a}){let c="info"===a.variant?"bg-[var(--primary-subtle)] text-[var(--primary)] border-[var(--primary-subtle-border)]":"warning"===a.variant?"bg-[var(--warning-subtle)] text-[var(--warning)] border-[var(--warning-subtle-border)]":"bg-[var(--error-subtle)] text-[var(--error)] border-[var(--error-subtle-border)]";return(0,b.jsxs)("div",{role:"status",className:(0,n.cn)("flex items-center gap-3 border-b px-6 py-3 text-sm",c),children:[(0,b.jsx)("span",{className:"flex-1",children:a.message}),a.action&&(0,b.jsxs)("button",{type:"button",onClick:a.action.onClick,className:"shrink-0 font-medium underline-offset-2 hover:underline",children:[a.action.label," →"]})]})}function x({meta:a,sticky:c}){return(0,b.jsxs)("div",{className:(0,n.cn)("border-b border-border bg-card px-6 py-3",c&&"sticky top-[56px] z-[9]"),children:["kpi"===a.kind&&(0,b.jsx)(y,{items:a.items}),"filter"===a.kind&&(0,b.jsx)("div",{className:"flex flex-wrap items-center gap-3",children:a.children}),"tabs"===a.kind&&(0,b.jsx)(z,{items:a.items,value:a.value,onChange:a.onChange})]})}function y({items:a}){return(0,b.jsx)("div",{className:"grid grid-cols-2 gap-4 md:grid-cols-4",children:a.map((a,c)=>(0,b.jsxs)("div",{className:"min-w-0",children:[(0,b.jsx)("div",{className:"text-xs text-foreground-muted",children:a.label}),(0,b.jsx)("div",{className:(0,n.cn)("mt-1 font-mono text-lg font-semibold tabular-nums","warning"===a.tone&&"text-[var(--warning)]","success"===a.tone&&"text-[var(--success)]",!a.tone&&"text-foreground"),children:a.value}),a.sub&&(0,b.jsx)("div",{className:"mt-0.5 text-xs text-foreground-muted",children:a.sub})]},c))})}function z({items:a,value:c,onChange:d}){return(0,b.jsx)("div",{className:"flex items-center gap-1 overflow-x-auto",children:a.map(a=>{let e=a.value===c;return(0,b.jsxs)("button",{type:"button",onClick:()=>d(a.value),className:(0,n.cn)("relative whitespace-nowrap px-3 py-2 text-sm transition-colors",e?"font-medium text-[var(--primary)]":"text-foreground-secondary hover:text-foreground"),children:[a.label,e&&(0,b.jsx)("span",{className:"absolute inset-x-3 -bottom-px h-0.5 rounded-full bg-[var(--primary)]"})]},a.value)})})}function A(a){let{breadcrumbs:c,moduleLabel:d,icon:e,title:f,badges:g,variant:h,action:i,secondaryAction:j,moreMenu:k,live:l,contextObject:m,description:n,banner:r,metaStrip:s,stickyMeta:t}=a,v="detail-object"===h&&m;return(0,b.jsxs)("header",{className:"sticky top-0 z-10 bg-card",children:[v?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{className:"flex h-9 items-center gap-3 border-b border-border bg-background-secondary px-6",children:[(0,b.jsx)(o,{}),(0,b.jsx)(p,{items:c,moduleLabel:d})]}),(0,b.jsxs)("div",{className:"flex h-14 items-center gap-3 border-b border-border px-6",children:[(0,b.jsx)(u,{obj:m}),(0,b.jsx)("div",{className:"flex-1"}),(0,b.jsx)(q,{variant:h,action:i,secondaryAction:j})]})]}):(0,b.jsxs)("div",{className:"flex h-14 items-center gap-3 border-b border-border px-6",children:[(0,b.jsx)(o,{}),(0,b.jsxs)("div",{className:"flex min-w-0 flex-1 items-center gap-3",children:[(0,b.jsx)(p,{items:c,moduleLabel:d}),f&&(0,b.jsxs)("div",{className:"flex min-w-0 items-center gap-2",children:[e&&(0,b.jsx)(e,{className:"size-4 text-foreground-secondary"}),(0,b.jsx)("h1",{className:"truncate text-sm font-medium text-foreground",children:f}),g]})]}),(0,b.jsx)(q,{variant:h,action:i,secondaryAction:j,moreMenu:k,live:l})]}),n&&!v&&(0,b.jsx)("p",{className:"border-b border-border bg-card px-6 py-2 text-xs text-foreground-secondary",children:n}),r&&(0,b.jsx)(w,{banner:r}),s&&(0,b.jsx)(x,{meta:s,sticky:t})]})}a.s(["PageHeader",()=>A],525589);let B={sm:"text-xs",md:"text-sm",lg:"text-lg",xl:"text-2xl"},C={default:"text-foreground",success:"text-[var(--success)]",warning:"text-[var(--warning)]",error:"text-[var(--error)]",muted:"text-foreground-muted"};function D({value:a,unit:c,format:d="plain",precision:e,size:f="md",tone:g="default",className:h,fallback:i="—"}){let j;return j=null==a||""===a?i:"number"==typeof a?Number.isFinite(a)?function(a,b,c=1){return"compact"===b?new Intl.NumberFormat(void 0,{notation:"compact",maximumFractionDigits:c}).format(a):"percent"===b?new Intl.NumberFormat(void 0,{style:"percent",maximumFractionDigits:c}).format(a):new Intl.NumberFormat(void 0,{maximumFractionDigits:c}).format(a)}(a,d,e):i:String(a),(0,b.jsxs)("span",{className:(0,n.cn)("inline-flex items-baseline gap-1 font-mono tabular-nums font-semibold",B[f],C[g],h),children:[(0,b.jsx)("span",{children:j}),c&&j!==i&&(0,b.jsx)("span",{className:"text-[0.65em] font-medium text-foreground-muted",children:c})]})}a.s(["MetricValue",()=>D],103970)},754790,a=>{"use strict";function b(a,b){let c,d,e="string"==typeof a.task_id?a.task_id.trim():"",f="string"==typeof a.upload_id?a.upload_id.trim():"",g="string"==typeof a.dataset_id?a.dataset_id.trim():"",h="string"==typeof a.dataset_name?a.dataset_name.trim():"";return{id:(c="string"==typeof a.task_id?a.task_id.trim():"",d="string"==typeof a.upload_id?a.upload_id.trim():"",c&&d?`trace:${c}:${d}`:c?`trace:${c}`:d?`trace:upload:${d}`:`trace:index:${b}`),input:String(a.query||e||f||`trace_${b}`),datasetName:h||"Traces",datasetId:g||"traces",sourceType:"trace",sourceExecutionSessionId:e,sourceUploadId:f,sourceDatasetId:g,sourceDatasetName:h}}function c(a){if(!Array.isArray(a)||0===a.length)return null;for(let b=a.length-1;b>=0;b-=1){let c=a[b];if(!c?.sessionId)continue;let d="number"==typeof c.runIndex&&Number.isFinite(c.runIndex)?c.runIndex:null;if(null!=d)return d}return null}a.s(["buildGrayscaleTraceCase",()=>b,"findLatestRunnableRunIndex",()=>c])},306765,a=>{"use strict";var b=a.i(187924),c=a.i(572131),d=a.i(50944),e=a.i(525589),f=a.i(100842),g=a.i(699570),h=a.i(580701),i=a.i(103970),j=a.i(924330),k=a.i(738835),l=a.i(168370),m=a.i(403512),n=a.i(106927),o=a.i(943408),p=a.i(575110),q=a.i(99468),r=a.i(754790),s=a.i(467952),t=a.i(478614);function u(){return(0,b.jsx)(c.Suspense,{fallback:null,children:(0,b.jsx)(O,{})})}function v(a){return JSON.stringify({skillId:a.skillId,versionAId:a.versionAId,versionBId:a.versionBId,sourceMode:a.sourceMode,selectedDatasetId:a.selectedDatasetId,linkedDatasetIds:[...a.linkedDatasetIds].sort(),selectedTraceAId:a.selectedTraceAId,selectedTraceBId:a.selectedTraceBId,repeatRounds:a.repeatRounds,agentMaxConcurrency:a.agentMaxConcurrency,autoEval:a.autoEval,recordTriggerDetails:a.recordTriggerDetails,evaluatorIds:[...a.evaluatorIds].sort(),caseIds:[...a.caseIds].sort()})}function w(a){return Object.values(a).some(a=>[a.a,a.b].some(a=>"running"===a.status||"evaluating"===a.status||(a.runs||[]).some(a=>"running"===a.status||"evaluating"===a.status)))}function x(a){return Object.values(a).some(a=>[a.a,a.b].some(a=>(a.runs||[]).some(a=>"executed"===a.status&&!!a.sessionId&&!a.evaluatorRunId&&"number"!=typeof a.score)))}let y={pending:{bg:"rgba(100,116,139,.10)",fg:"#475569"},running:{bg:"rgba(37,99,235,.10)",fg:"#2563EB",pulse:!0},done:{bg:"rgba(22,163,74,.10)",fg:"#15803D",icon:"✓"},fail:{bg:"rgba(220,38,38,.10)",fg:"#B91C1C",icon:"⚠"}};function z({trigger:a,content:d}){let[e,f]=(0,c.useState)(!1),g=(0,c.useRef)(null),h=()=>{g.current&&(clearTimeout(g.current),g.current=null)},i=()=>{h(),g.current=setTimeout(()=>f(!1),1e3)};return(0,c.useEffect)(()=>()=>{g.current&&clearTimeout(g.current)},[]),(0,b.jsxs)("span",{style:{position:"relative",display:"inline-block"},onMouseEnter:()=>{h(),f(!0)},onMouseLeave:i,children:[a,e&&(0,b.jsx)("div",{onMouseEnter:h,onMouseLeave:i,style:{position:"absolute",top:"100%",left:0,marginTop:6,zIndex:50,background:"#1F2937",color:"#F9FAFB",padding:"10px 12px",borderRadius:6,fontSize:11,lineHeight:1.5,maxWidth:480,minWidth:240,whiteSpace:"pre-wrap",wordBreak:"break-word",userSelect:"text",cursor:"text",boxShadow:"0 4px 16px rgba(0,0,0,0.25)"},children:d})]})}function A({label:a,tone:c}){let d=y[c];return(0,b.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:4,fontSize:12,fontWeight:600,color:d.fg,whiteSpace:"nowrap"},children:[d.pulse&&(0,b.jsx)("span",{style:{display:"inline-block",width:6,height:6,borderRadius:"50%",background:"currentColor",animation:"pulse 1.5s ease-in-out infinite"}}),d.icon&&(0,b.jsx)("span",{children:d.icon}),a]})}function B({decisionReady:a,abScoring:c,sampleSize:d,repeatRounds:e,recommendedSampleSize:f,policy:g,decisionTitle:h,decisionAdvice:i,onViewTrace:j,locale:k,toneColor:l,toneBg:m}){let n,o,p,q,r=a&&"insufficient"!==c.decision?"reject"===c.decision?"red":"direct-release"===c.decision?"green":"amber":"gray",s=l(r),t=m(r),u=(()=>{if(!a)return null;if(c.rejectCategory)return c.rejectCategory;if(null==c.totalScore)return null;let b=[{key:"capability",v:c.capability.score},{key:"cost",v:c.cost.score},{key:"stability",v:c.stability.score}].filter(a=>null!=a.v);return 0===b.length?null:b.sort((a,b)=>a.v-b.v)[0].key})(),v=a=>"capability"===a?c.capability.tone:"cost"===a?c.cost.tone:c.stability.tone,w=(()=>{if(!a)return"";if("capability"===u){let a=c.capability.avgEvalScoreA,b=c.capability.avgEvalScoreB,d=c.capability.deltaScore,e=c.hardGates.find(a=>"capability"===a.key),f=[];return null!=a&&null!=b&&f.push(`评测均分由 ${a} → ${b}`),null!=d&&f.push(`Δ ${d>0?"+":""}${d}`),e&&f.push(`命中 hard gate (< ${g.capabilityRejectThreshold})`),f.join(", ")}if("cost"===u){let a=c.cost.deltaTokenPct,b=c.cost.deltaDurationPct,d=c.capability.score,e=null==d?0:d>=g.capabilityGoodThreshold?g.costCouplingBonus:d<g.capabilityRejectThreshold?-g.costCouplingPenalty:0,f=[];return null!=a&&f.push(`ΔToken ${a>0?"+":""}${a}%`),null!=b&&f.push(`耗时 ${b>0?"+":""}${b}%`),0!==e&&f.push(`能力耦合 ${e>0?"+":""}${e}`),f.join(", ")}if("stability"===u){let a=c.stability.invokeRate,b=c.stability.variance,d=[];return null!=a&&d.push(`触发率 ${a}%`),d.push(null==b?`方差 — (R=${e})`:`方差 ${b}`),d.join(", ")}return""})(),x=a&&d<f?`样本量偏少, 建议补到 N≥${f}、R≥${Math.max(g.minRepeats,3)}`:"",y=({value:a,tone:c})=>{let d=null==a?0:Math.max(0,Math.min(100,a));return(0,b.jsxs)("div",{style:{position:"relative",height:8,background:"#E7E5E4",borderRadius:999,overflow:"hidden"},children:[(0,b.jsx)("div",{style:{width:`${Math.max(2,d)}%`,height:"100%",background:l(c),borderRadius:999}}),(0,b.jsx)("span",{style:{position:"absolute",left:"50%",top:0,bottom:0,width:1,background:"rgba(0,0,0,0.18)"}}),(0,b.jsx)("span",{style:{position:"absolute",left:"75%",top:0,bottom:0,width:1,background:"rgba(0,0,0,0.18)"}})]})},z=({value:a,tone:c})=>(0,b.jsxs)("div",{style:{fontFamily:"ui-monospace, monospace",fontVariantNumeric:"tabular-nums",textAlign:"right",whiteSpace:"nowrap"},children:[(0,b.jsx)("span",{style:{fontSize:18,fontWeight:800,color:l(c)},children:null==a?"—":a}),(0,b.jsx)("span",{style:{fontSize:11,color:"#A8A29E",marginLeft:4},children:"/ 100"})]}),A=({tone:a,label:c})=>(0,b.jsx)("span",{style:{display:"inline-block",padding:"1px 7px",borderRadius:4,fontSize:10,fontWeight:700,color:l(a),background:m(a)},children:c}),B=[{key:"capability",label:"能力",subtitle:"Skill 让 Agent 多做成了多少事",score:c.capability.score,tone:c.capability.tone,verdictLabel:c.capability.label,evidence:a?(0,b.jsxs)(b.Fragment,{children:["A ",c.capability.avgEvalScoreA??"—",(0,b.jsx)("span",{style:{color:"#A8A29E",margin:"0 4px"},children:"→"}),"B ",c.capability.avgEvalScoreB??"—",null!=c.capability.deltaScore&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("span",{style:{color:"#A8A29E",margin:"0 8px"},children:"·"}),"Δscore ",c.capability.deltaScore>0?"+":"",c.capability.deltaScore]})]}):"—"},{key:"cost",label:"成本",subtitle:"多花了多少 token / 时间",score:c.cost.score,tone:c.cost.tone,verdictLabel:c.cost.label,evidence:a?(n=c.cost.deltaTokenPct,o=c.cost.deltaDurationPct,q=null==(p=c.capability.score)?0:p>=g.capabilityGoodThreshold?g.costCouplingBonus:p<g.capabilityRejectThreshold?-g.costCouplingPenalty:0,(0,b.jsxs)(b.Fragment,{children:["ΔToken ",null==n?"—":`${n>0?"+":""}${n}%`,(0,b.jsx)("span",{style:{color:"#A8A29E",margin:"0 8px"},children:"·"}),"耗时 ",null==o?"—":`${o>0?"+":""}${o}%`,0!==q&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("span",{style:{color:"#A8A29E",margin:"0 8px"},children:"·"}),"能力耦合 ",q>0?"+":"",q]})]})):"—"},{key:"stability",label:"稳定性",subtitle:"该触发时触发了吗, 结果稳吗",score:c.stability.score,tone:c.stability.tone,verdictLabel:c.stability.label,evidence:a?(0,b.jsxs)(b.Fragment,{children:["触发率 ",null==c.stability.invokeRate?"—":`${c.stability.invokeRate}%`,(0,b.jsx)("span",{style:{color:"#A8A29E",margin:"0 8px"},children:"·"}),"方差 ",null==c.stability.variance?`— (R=${e})`:c.stability.variance]}):"—"}];return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{style:{border:`1px solid ${"gray"===r?"#E7E5E4":s}`,background:t,borderRadius:10,padding:"14px 18px",display:"grid",gridTemplateColumns:"minmax(170px, auto) 1fr auto",gap:18,alignItems:"center"},children:[(0,b.jsxs)("div",{style:{borderRight:"1px solid rgba(0,0,0,0.08)",paddingRight:16},children:[(0,b.jsx)("div",{style:{fontSize:10,color:"#888780",fontFamily:"ui-monospace, monospace",fontWeight:700,letterSpacing:1.5},children:"DECISION"}),(0,b.jsx)("div",{style:{fontSize:26,fontWeight:800,color:s,lineHeight:1.05,marginTop:2},children:h}),(0,b.jsxs)("div",{style:{fontSize:11,color:"#5F5E5A",marginTop:4,fontFamily:"ui-monospace, monospace",fontVariantNumeric:"tabular-nums"},children:["综合 ",(0,b.jsx)("span",{style:{fontWeight:700,color:s},children:a&&null!=c.totalScore?c.totalScore:"—"})," / 100"]})]}),(0,b.jsxs)("div",{style:{fontSize:13,lineHeight:1.65,color:"#374151"},children:[u&&w&&(0,b.jsxs)("div",{children:[(0,b.jsx)("span",{style:{color:"#5F5E5A"},children:"短板在 "}),(0,b.jsx)("span",{style:{display:"inline-block",padding:"1px 7px",borderRadius:4,fontSize:11,fontWeight:700,color:l(v(u)),background:m(v(u))},children:"capability"===u?"能力":"cost"===u?"成本":"稳定性"}),(0,b.jsx)("span",{style:{color:"#5F5E5A"},children:" · "}),(0,b.jsx)("span",{children:w})]}),(0,b.jsxs)("div",{style:{marginTop:u&&w?4:0,color:"#5F5E5A"},children:[(0,b.jsx)("span",{style:{color:"#1F2937",fontWeight:700},children:"下一步"}),(0,b.jsx)("span",{style:{color:"#A8A29E",margin:"0 6px"},children:"·"}),(0,b.jsx)("span",{children:i}),x&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("span",{style:{color:"#A8A29E",margin:"0 6px"},children:";"}),(0,b.jsx)("span",{style:{color:"#BA7517"},children:x})]})]})]}),(0,b.jsx)("div",{style:{display:"flex",gap:8},children:(0,b.jsx)("button",{onClick:j,style:{padding:"7px 14px",borderRadius:6,border:"1px solid #D6D3D1",background:"white",color:"#1F2937",fontSize:12,fontWeight:600,cursor:"pointer",whiteSpace:"nowrap"},children:"zh"===k?"查看 Trace":"View Trace"})})]}),(0,b.jsxs)("div",{style:{border:"1px solid #E7E5E4",borderRadius:10,overflow:"hidden",background:"white"},children:[(0,b.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"minmax(220px, 1.6fr) 90px minmax(180px, 2fr) minmax(220px, 1.8fr)",gap:16,padding:"8px 16px",background:"#FAFAF7",borderBottom:"1px solid #E7E5E4",fontSize:10,color:"#888780",fontFamily:"ui-monospace, monospace",fontWeight:700,letterSpacing:1},children:[(0,b.jsx)("div",{children:"维度"}),(0,b.jsx)("div",{style:{textAlign:"right"},children:"分数"}),(0,b.jsxs)("div",{style:{position:"relative"},children:["0 ",(0,b.jsx)("span",{style:{position:"absolute",left:"50%",transform:"translateX(-50%)"},children:"· 50 ·"}),(0,b.jsx)("span",{style:{position:"absolute",left:"75%",transform:"translateX(-50%)"},children:"75"}),(0,b.jsx)("span",{style:{float:"right"},children:"100"})]}),(0,b.jsx)("div",{children:"关键证据"})]}),B.map(a=>(0,b.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"minmax(220px, 1.6fr) 90px minmax(180px, 2fr) minmax(220px, 1.8fr)",gap:16,padding:"12px 16px",borderBottom:"1px solid #F5F4EE",alignItems:"center"},children:[(0,b.jsxs)("div",{children:[(0,b.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8},children:[(0,b.jsx)("span",{style:{fontSize:14,fontWeight:700,color:"#1F2937"},children:a.label}),(0,b.jsx)(A,{tone:a.tone,label:a.verdictLabel})]}),(0,b.jsx)("div",{style:{fontSize:11,color:"#888780",marginTop:2},children:a.subtitle})]}),(0,b.jsx)(z,{value:a.score,tone:a.tone}),(0,b.jsx)(y,{value:a.score,tone:a.tone}),(0,b.jsx)("div",{style:{fontSize:12,color:"#374151",fontFamily:"ui-monospace, monospace",fontVariantNumeric:"tabular-nums",overflow:"hidden",textOverflow:"ellipsis"},children:a.evidence})]},a.key))]}),(0,b.jsxs)("details",{style:{border:"1px solid #E7E5E4",borderRadius:10,overflow:"hidden",background:"white"},open:!!a&&"reject"===c.decision,children:[(0,b.jsxs)("summary",{style:{cursor:"pointer",padding:"10px 16px",display:"flex",alignItems:"center",gap:8,background:"#FAFAF7",borderBottom:"1px solid #E7E5E4",fontSize:12,fontWeight:700,color:"#374151",userSelect:"none",listStyle:"none"},children:[(0,b.jsx)("span",{style:{color:"#A8A29E",fontFamily:"ui-monospace, monospace",fontSize:11},children:"▸"}),(0,b.jsx)("span",{children:"原始数据与计算公式"}),(0,b.jsx)("span",{style:{flex:1}}),(0,b.jsx)("span",{style:{color:"#A8A29E",fontFamily:"ui-monospace, monospace",fontSize:11,fontWeight:400},children:"min(capability, cost, stability)"})]}),(0,b.jsxs)("div",{style:{padding:16,display:"grid",gridTemplateColumns:"repeat(2, minmax(0, 1fr))",gap:12},children:[(0,b.jsx)(C,{label:"能力",tag:"capability",tone:c.capability.tone,rows:[{k:"评测均分",a:c.capability.avgEvalScoreA,b:c.capability.avgEvalScoreB,aFmt:a=>null==a?"—":String(a),bFmt:a=>null==a?"—":String(a)},{k:"通过率",a:c.capability.passRateA,b:c.capability.passRateB,aFmt:a=>null==a?"—":`${a}%`,bFmt:a=>null==a?"—":`${a}%`}],delta:{label:"Δscore",value:null==c.capability.deltaScore?"—":`${c.capability.deltaScore>0?"+":""}${c.capability.deltaScore}`},breakdown:c.capability.breakdown,dataQualityIssue:c.capability.dataQualityIssue,toneColor:l,toneBg:m}),(0,b.jsx)(C,{label:"成本",tag:"cost",tone:c.cost.tone,rows:[{k:"Token",a:c.cost.avgTokensA,b:c.cost.avgTokensB,aFmt:a=>null==a?"—":a.toLocaleString(),bFmt:a=>null==a?"—":a.toLocaleString()},{k:"耗时",a:c.cost.avgDurationA,b:c.cost.avgDurationB,aFmt:a=>null==a?"—":`${a}s`,bFmt:a=>null==a?"—":`${a}s`},{k:"步数",a:c.cost.avgStepsA,b:c.cost.avgStepsB,aFmt:a=>null==a?"—":String(a),bFmt:a=>null==a?"—":String(a)}],delta:{label:"ΔToken",value:null==c.cost.deltaTokenPct?"—":`${c.cost.deltaTokenPct>0?"+":""}${c.cost.deltaTokenPct}%`},breakdown:c.cost.breakdown,dataQualityIssue:c.cost.dataQualityIssue,toneColor:l,toneBg:m}),(0,b.jsx)(C,{label:"稳定性",tag:"stability",tone:c.stability.tone,rows:[{k:"触发率",a:null,b:c.stability.invokeRate,aFmt:()=>"—",bFmt:a=>null==a?"—":`${a}%`,oneSide:!0},{k:"方差",a:null,b:c.stability.variance,aFmt:()=>"—",bFmt:a=>null==a?`— (R=${e})`:String(a),oneSide:!0}],delta:null,breakdown:c.stability.breakdown,dataQualityIssue:c.stability.dataQualityIssue,toneColor:l,toneBg:m}),(0,b.jsx)(C,{label:"综合 (短板原则)",tag:"verdict",tone:r,rows:[],delta:null,breakdown:c.totalScoreBreakdown,dataQualityIssue:c.hardGates.length>0?`命中 hard gate:${c.hardGates.map(a=>a.label).join("、")}`:void 0,toneColor:l,toneBg:m})]})]}),(0,b.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",fontSize:10,color:"#A8A29E",fontFamily:"ui-monospace, monospace",paddingTop:2},children:[(0,b.jsxs)("span",{children:["SAMPLE N=",d,f?` / 推荐 ≥${f}`:""," · 重复 ",e," 轮 · 置信度 ","high"===c.confidence?"高":"medium"===c.confidence?"中":"低"]}),(0,b.jsxs)("span",{children:["策略:",c.policyVersion]})]})]})}function C({label:a,tag:c,tone:d,rows:e,delta:f,breakdown:g,dataQualityIssue:h,toneColor:i,toneBg:j}){return(0,b.jsxs)("div",{style:{border:"1px solid #E7E5E4",borderRadius:8,background:"#FAFAF7",overflow:"hidden"},children:[(0,b.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",padding:"8px 12px",background:"white",borderBottom:"1px solid #E7E5E4"},children:[(0,b.jsx)("span",{style:{fontSize:13,fontWeight:700,color:"#1F2937"},children:a}),(0,b.jsx)("span",{style:{fontSize:10,color:i(d),background:j(d),padding:"1px 7px",borderRadius:4,fontFamily:"ui-monospace, monospace",fontWeight:700,letterSpacing:.5},children:c})]}),(0,b.jsxs)("div",{style:{padding:"10px 12px",display:"flex",flexDirection:"column",gap:6},children:[e.map(a=>(0,b.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"64px 1fr 1fr",gap:8,alignItems:"baseline",fontSize:12},children:[(0,b.jsx)("span",{style:{color:"#5F5E5A"},children:a.k}),(0,b.jsx)("span",{style:{fontFamily:"ui-monospace, monospace",fontVariantNumeric:"tabular-nums",color:"#374151",textAlign:"right"},children:a.oneSide?"":(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("span",{style:{color:"#A8A29E",marginRight:6},children:"A"}),a.aFmt(a.a)]})}),(0,b.jsxs)("span",{style:{fontFamily:"ui-monospace, monospace",fontVariantNumeric:"tabular-nums",color:"#374151",textAlign:"right"},children:[(0,b.jsx)("span",{style:{color:"#A8A29E",marginRight:6},children:"B"}),a.bFmt(a.b)]})]},a.k)),f&&(0,b.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"64px 1fr",gap:8,alignItems:"baseline",fontSize:12,marginTop:2,paddingTop:6,borderTop:"1px dashed #E7E5E4"},children:[(0,b.jsx)("span",{style:{color:"#5F5E5A"},children:f.label}),(0,b.jsx)("span",{style:{fontFamily:"ui-monospace, monospace",fontVariantNumeric:"tabular-nums",fontWeight:700,color:i(d),textAlign:"right"},children:f.value})]}),(0,b.jsx)("pre",{style:{margin:"8px 0 0",padding:"8px 10px",background:"white",border:"1px solid #E7E5E4",borderRadius:4,fontFamily:"ui-monospace, monospace",fontVariantNumeric:"tabular-nums",fontSize:10.5,lineHeight:1.65,color:"#374151",whiteSpace:"pre-wrap",wordBreak:"break-word"},children:g.steps.join("\n")}),h&&(0,b.jsx)("div",{style:{fontSize:11,color:"#BA7517",marginTop:2},children:h}),(0,b.jsx)("div",{style:{fontSize:10,color:"#A8A29E",fontFamily:"ui-monospace, monospace",textAlign:"right"},children:g.reference})]})]})}let D=[...t.presetEvaluators.filter(a=>"ready"===a.status).map(a=>({id:a.id,name:a.name}))],E=new Set(D.map(a=>a.id));function F(a){return Array.from(new Set(a.map(a=>String(a||"").trim()).filter(Boolean)))}function G(a,b){let c=F((Array.isArray(a)?a:a?[a]:[]).map(a=>String(a||"").trim())).filter(a=>E.has(a));if(c.length>0)return c;let d=String(b||"").trim();return d&&E.has(d)?[d]:[]}function H(a,b){let c=new Map((a?.evaluations||[]).map(a=>[a.evaluatorId,a]));return b.filter(a=>{let b=c.get(a);return!b||"failed"===b.status||"pending"===b.status})}let I=()=>(0,b.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,b.jsx)("circle",{cx:"12",cy:"12",r:"10"}),(0,b.jsx)("polyline",{points:"12 6 12 12 16 14"})]}),J=()=>(0,b.jsx)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"currentColor",children:(0,b.jsx)("polygon",{points:"5 3 19 12 5 21 5 3"})}),K=()=>(0,b.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:(0,b.jsx)("path",{d:"M6 9H4.5a2.5 2.5 0 0 1 0-5H6M18 9h1.5a2.5 2.5 0 0 0 0-5H18M4 22h16M10 14.66V17c0 .55-.45 1-1 1H4v2h16v-2h-5c-.55 0-1-.45-1-1v-2.34M12 2a4 4 0 0 0-4 4v5a4 4 0 0 0 8 0V6a4 4 0 0 0-4-4z"})}),L=()=>(0,b.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"3",strokeLinecap:"round",strokeLinejoin:"round",children:(0,b.jsx)("polyline",{points:"20 6 9 17 4 12"})}),M=()=>(0,b.jsxs)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,b.jsx)("circle",{cx:"12",cy:"12",r:"3"}),(0,b.jsx)("path",{d:"M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 1 1-2.83 2.83l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-4 0v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 1 1-2.83-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1 0-4h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 1 1 2.83-2.83l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 4 0v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 1 1 2.83 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 0 4h-.09a1.65 1.65 0 0 0-1.51 1z"})]}),N=()=>(0,b.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:(0,b.jsx)("path",{d:"M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z"})});function O(){let{locale:a}=(0,n.useLocale)();(0,d.useRouter)();let[f,g]=(0,c.useState)(0),[h,i]=(0,c.useState)(0),k=(0,c.useRef)(null);return(0,b.jsxs)("div",{className:"debug-root",children:[(0,b.jsx)(e.PageHeader,{variant:"management",breadcrumbs:[{label:"zh"===a?"Skills 评测":"Skill Evaluation",href:"/skill-eval"},{label:"zh"===a?"调测分析":"Debug & Analysis"}],title:"zh"===a?"A/B 测试":"A/B Test",action:{label:"zh"===a?"新建任务":"New Task",icon:m.Plus,onClick:()=>g(a=>a+1)},secondaryAction:{label:"zh"===a?"历史任务":"History",icon:j.History,onClick:()=>i(a=>a+1)}}),(0,b.jsx)("div",{className:"d-layout",style:{background:"var(--background-secondary)"},children:(0,b.jsx)("div",{className:"d-main-area",ref:k,style:{padding:0},children:(0,b.jsx)(P,{newTaskTrigger:f,historyPanelTrigger:h})})})]})}function P({newTaskTrigger:a,historyPanelTrigger:e,pageTitle:j,pageDescription:m,pageBadge:t,onBack:u,onOptimize:y,parentSkillId:C,parentSkillVersion:E,skillSelectorSlot:O,hifi:P=!1}){var Q,R;let S,T,U,V,W,X,Y,Z,$,{locale:_}=(0,n.useLocale)(),{user:aa}=(0,o.useAuth)(),ab=(0,d.useRouter)(),[ac,ad]=(0,c.useState)(null),[ae,af]=(0,c.useState)([]),[ag,ah]=(0,c.useState)(!1),[ai,aj]=(0,c.useState)(""),[ak,al]=(0,c.useState)(""),[am,an]=(0,c.useState)(!1),ao=(0,c.useRef)(null),[ap,aq]=(0,c.useState)([]),[ar,as]=(0,c.useState)([]),[at,au]=(0,c.useState)([]),[av,aw]=(0,c.useState)(""),[ax,ay]=(0,c.useState)(""),[az,aA]=(0,c.useState)(""),[aB,aC]=(0,c.useState)("dataset"),[aD,aE]=(0,c.useState)(""),[aF,aG]=(0,c.useState)(!1),[aH,aI]=(0,c.useState)(""),[aJ,aK]=(0,c.useState)(1),[aL,aM]=(0,c.useState)(4),[aN,aO]=(0,c.useState)(null),[aP,aQ]=(0,c.useState)(null),[aR,aS]=(0,c.useState)("7d"),[aT,aU]=(0,c.useState)([]),[aV,aW]=(0,c.useState)(!1),[aX,aY]=(0,c.useState)(""),[aZ,a$]=(0,c.useState)(""),[a_,a0]=(0,c.useState)(""),[a1,a2]=(0,c.useState)([]),[a3,a4]=(0,c.useState)(!1),[a5,a6]=(0,c.useState)([]),[a7,a8]=(0,c.useState)(!1),[a9,ba]=(0,c.useState)(""),[bb,bc]=(0,c.useState)(!1),[bd,be]=(0,c.useState)(!1),[bf,bg]=(0,c.useState)(!1),[bh,bi]=(0,c.useState)({config:!1,exec:!1,result:!1}),[bj,bk]=(0,c.useState)(!1),bl=(0,c.useCallback)(a=>{bk(!0),bi(b=>({...b,[a]:!b[a]}))},[]),[bm,bn]=(0,c.useState)(!1),[bo,bp]=(0,c.useState)(!1),[bq,br]=(0,c.useState)(!1),[bs,bt]=(0,c.useState)(!1),[bu,bv]=(0,c.useState)(""),[bw,bx]=(0,c.useState)(""),[by,bz]=(0,c.useState)([]),[bA,bB]=(0,c.useState)({}),[bC,bD]=(0,c.useState)([]),[bE,bF]=(0,c.useState)(!1),[bG,bH]=(0,c.useState)(()=>new Set),bI=(0,c.useRef)(bG),bJ=(a,b,c)=>`${a}::${b}::${c}`,bK=a=>{if(bI.current.has(a))return!1;let b=new Set(bI.current);return b.add(a),bI.current=b,bH(b),!0},bL=a=>{if(!bI.current.has(a))return;let b=new Set(bI.current);b.delete(a),bI.current=b,bH(b)},[bM,bN]=(0,c.useState)(""),[bO,bP]=(0,c.useState)(""),[bQ,bR]=(0,c.useState)("all"),bS=(0,c.useRef)({}),bT="__NONE__",bU=()=>{let a=new Date;return`A/B测试 ${a.getFullYear()}-${String(a.getMonth()+1).padStart(2,"0")}-${String(a.getDate()).padStart(2,"0")}-${String(a.getHours()).padStart(2,"0")}`},bV="zh"===_?"点击命名任务…":"Name this task…",bW=a=>{ad(null),b1.current=null,b0.current=null,aj(bU()),al(""),aw(a),ay(bT),aA(""),aC("dataset"),aE(""),aI(""),a6([]),bD([]),aS("7d"),aY(""),a$(""),bB({}),b2.current={},bF(!1),b3.current=!1,bN(""),bv(""),bx(""),bz([]),a0(""),a2([]),b6.current=null,ah(!0)},bX=(a,b,c,d)=>{if(!b)return!1;let e=a.configJson||{};return(a.skillId||e.skillId||"")===b&&(c?(a.skillVersionId||e.versionBId||"")===c:null==d||Number(a.skillVersion)===Number(d))},bY=a=>{let b=a.configJson?.latestResultAt,c="string"==typeof b?Date.parse(b):0;if(Number.isFinite(c)&&c>0)return c;let d=Object.values(a.caseStatesJson||{}).flatMap(a=>["a","b"].flatMap(b=>(a?.[b]?.runs||[]).map(a=>"string"==typeof a.completedAt?Date.parse(a.completedAt):0))).filter(a=>Number.isFinite(a)&&a>0);return d.length>0?Math.max(...d):Date.parse(a.createdAt||"")||0},bZ=a=>Object.values(a.caseStatesJson||{}).some(a=>["a","b"].some(b=>{let c=a?.[b];return!!(c&&("pending"!==c.status||(c.runs?.length||0)>0))})),b$=(a,b,c,d)=>{let e=a.filter(a=>bX(a,b,c,d));if(0!==e.length)return e.sort((a,b)=>{let c=Number(!!b.activeRun)-Number(!!a.activeRun);if(0!==c)return c;let d=Number(bZ(b))-Number(bZ(a));return 0!==d?d:bY(b)-bY(a)})[0]},b_=a=>{ad(a),b0.current=a?.id??null,bt(!1),ah(!1),aj("");let b=a.configJson||{},c=b.skillId||a.skillId||"";c&&aw(c),aC("dataset"),aK(b.repeatRounds||1),aM(b.agentMaxConcurrency||4);let d=G(b.evaluators||b.evaluationBatchEvaluators,b.evaluatorId||"");a2(d),a0(d[0]||""),al(b.taskDescription||"");let e=Array.isArray(b.linkedDatasetIds)?b.linkedDatasetIds:[];aE(b.selectedDatasetId||e[0]||""),aI(b.selectedCaseId||""),a6(e),bD(Array.isArray(b.checkedCaseIds)?b.checkedCaseIds:Array.isArray(b.selectedCaseIds)?b.selectedCaseIds:[]),aS(b.traceTimeRange||"7d"),aY(b.selectedTraceAId||""),a$(b.selectedTraceBId||""),bv(b.evaluationBatchId||""),bx(b.evaluationBatchTitle||""),bz(Array.isArray(b.evaluationBatchEvaluators)?b.evaluationBatchEvaluators:[]),b.versionAId||b.versionBId?b6.current={versionAId:b.versionAId,versionBId:b.versionBId}:b6.current=null;let f=a.caseStatesJson||{},g={};bB(g=f.a||f.b?{[b.selectedCaseId||"legacy-case"]:{a:f.a||{status:"pending"},b:f.b||{status:"pending"}}}:f),b2.current=g,bF(!!a.activeRun||w(g)||x(g)),bN(Object.keys(g).length>0?v({skillId:c,versionAId:b.versionAId||"",versionBId:b.versionBId||"",sourceMode:"dataset",selectedDatasetId:b.selectedDatasetId||"",linkedDatasetIds:b.linkedDatasetIds||[],selectedTraceAId:b.selectedTraceAId||"",selectedTraceBId:b.selectedTraceBId||"",repeatRounds:b.repeatRounds||1,agentMaxConcurrency:b.agentMaxConcurrency||4,autoEval:!0,recordTriggerDetails:!0,evaluatorIds:G(b.evaluators||b.evaluationBatchEvaluators,b.evaluatorId||""),caseIds:Object.keys(g)}):"")},b0=(0,c.useRef)(void 0);(0,c.useEffect)(()=>{aa&&(0,p.apiFetch)(`/api/debug/grayscale-tasks?user=${encodeURIComponent(aa)}`).then(a=>a.json()).then(a=>{if(Array.isArray(a)&&a.length>0){af(a),void 0===b0.current&&(b0.current=null);let b=(b0.current?a.find(a=>a.id===b0.current):null)||(C?b$(a,C,void 0,E):[...a].sort((a,b)=>bY(b)-bY(a))[0]);b?b_(b):C?bW(C):bW("")}else bW(C||"")}).catch(()=>{bW(C||"")})},[aa,C,E]);let b1=(0,c.useRef)(null);(0,c.useEffect)(()=>{b1.current=ac},[ac]);let b2=(0,c.useRef)(bA);(0,c.useEffect)(()=>{b2.current=bA},[bA]),(0,c.useEffect)(()=>{if(0===bI.current.size)return;let a=new Set(bI.current),b=!1;for(let c of Array.from(a)){let[d,e,f]=c.split("::"),g=Number(f),h=bA[d]?.[e],i=(h?.runs||[]).find(a=>a.runIndex===g);i&&("pass"===i.status||"fail"===i.status)&&(a.delete(c),b=!0)}b&&(bI.current=a,bH(a))},[bA]);let b3=(0,c.useRef)(bE);(0,c.useEffect)(()=>{b3.current=bE},[bE]);let b4=(0,c.useRef)({skillId:av,versionAId:ax,versionBId:az,sourceMode:aB,selectedDatasetId:aD,selectedCaseId:aH,selectedCaseIds:bC,checkedCaseIds:bC,taskDescription:ak,linkedDatasetIds:a5,traceTimeRange:aR,selectedTraceAId:aX,selectedTraceBId:aZ,repeatRounds:aJ,agentMaxConcurrency:aL,autoEval:!0,recordTriggerDetails:!0,evaluatorId:a_,evaluators:a1,evaluationBatchId:bu,evaluationBatchTitle:bw,evaluationBatchEvaluators:by});(0,c.useEffect)(()=>{b4.current={skillId:av,versionAId:ax,versionBId:az,sourceMode:aB,selectedDatasetId:aD,selectedCaseId:aH,selectedCaseIds:bC,checkedCaseIds:bC,taskDescription:ak,linkedDatasetIds:a5,traceTimeRange:aR,selectedTraceAId:aX,selectedTraceBId:aZ,repeatRounds:aJ,agentMaxConcurrency:aL,autoEval:!0,recordTriggerDetails:!0,evaluatorId:a_,evaluators:a1,evaluationBatchId:bu,evaluationBatchTitle:bw,evaluationBatchEvaluators:by}},[av,ax,az,aB,aD,aH,bC,ak,a5,aR,aX,aZ,aJ,aL,!0,!0,a_,a1,bu,bw,by]);let b5=(0,c.useMemo)(()=>v({skillId:av,versionAId:ax,versionBId:az,sourceMode:aB,selectedDatasetId:aD,linkedDatasetIds:a5,selectedTraceAId:aX,selectedTraceBId:aZ,repeatRounds:aJ,agentMaxConcurrency:aL,autoEval:!0,recordTriggerDetails:!0,evaluatorIds:a1,caseIds:bC}),[av,ax,az,aB,aD,a5,aX,aZ,aJ,aL,!0,!0,a1,bC]),b6=(0,c.useRef)(null),b7=(0,c.useCallback)(async(a,b,c)=>{if(!aa||!a)return;let d={user:aa};void 0!==b&&(d.configJson=b),void 0!==c&&(d.caseStatesJson=c);try{await (0,p.apiFetch)(`/api/debug/grayscale-tasks/${a}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(d)})}catch{}},[aa]),b8=(0,c.useCallback)(a=>{b1.current&&b7(b1.current.id,b4.current,a)},[b7]),b9=(0,c.useCallback)(a=>{br(!1);let b=b1.current;if(!b)return;bv(a.evaluatorRunId),bx(a.taskTitle),bz(a.selectedEvaluators);let c={...b4.current,evaluationBatchId:a.evaluatorRunId,evaluationBatchTitle:a.taskTitle,evaluationBatchEvaluators:a.selectedEvaluators};b7(b.id,c,void 0),ad(a=>a?{...a,configJson:{...a.configJson||{},...c}}:a)},[b7]),ca=(0,c.useCallback)(async(a,b,c)=>{if(!aa||!a||!b||b===bT)return null;let d=(c||ai||bU()).trim(),e=await (0,p.apiFetch)("/api/debug/grayscale-tasks",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({user:aa,taskName:d,skillId:a,versionAId:ax,versionBId:b})});if(e.ok){let a=await e.json();return af(b=>b.some(b=>b.id===a.id)?b:[a,...b]),{task:a,existed:!1}}if(409===e.status){let a=await e.json().catch(()=>({}));if(a.existingTask)return af(b=>b.some(b=>b.id===a.existingTask.id)?b:[a.existingTask,...b]),{task:a.existingTask,existed:!0}}return null},[aa,ai,ax]);(0,c.useEffect)(()=>{if(!C||!az||az===bT||bs)return;let a=b1.current;if(a&&bX(a,C,az,E))return;let b=b$(ae,C,az,E);if(b)return void b_(b);let c=!1;return ca(C,az).then(a=>{!c&&a?.task&&b_(a.task)}).catch(()=>{}),()=>{c=!0}},[C,E,az,ae,ca,bs]),(0,c.useEffect)(()=>{let a=b1.current;if(a&&av){if(!az)return;let b=a.skillId||a.configJson?.skillId||"";if(b&&b!==av)return;let c=a.skillVersionId||a.configJson?.versionBId||"";if(c&&c!==az)return;let d=a.configJson||{};if(!ax&&d.versionAId||!az&&d.versionBId)return;b7(a.id,{...b4.current,skillId:av,versionAId:ax,versionBId:az})}},[av,ax,az,b7]),(0,c.useEffect)(()=>{let a=b1.current;a&&b7(a.id,{...b4.current,selectedCaseIds:bC,checkedCaseIds:bC})},[bC,b7]),(0,c.useEffect)(()=>()=>{let a=b1.current;a&&b7(a.id,b4.current,b2.current),Object.values(bS.current).forEach(clearInterval)},[b7]),(0,c.useEffect)(()=>{if("trace"!==aB||!aa||!av)return void aU([]);aW(!0);let a=ar.find(a=>a.id===av),b=new URLSearchParams({user:aa});a&&b.set("skill",a.name);let c="1d"===aR?1:"3d"===aR?3:7;b.set("since",String(Date.now()-864e5*c)),(0,p.apiFetch)(`/api/observe/data?${b.toString()}`).then(a=>a.json()).then(a=>{Array.isArray(a)&&aU(a.slice(0,100))}).catch(()=>{}).finally(()=>aW(!1))},[aB,aa,av,aR,ar]),(0,c.useEffect)(()=>{aa&&Promise.all([(0,p.apiFetch)(`/api/agent-datasets?user=${encodeURIComponent(aa)}`).then(a=>a.json()),(0,p.apiFetch)(`/api/skills?user=${encodeURIComponent(aa)}`).then(a=>a.json())]).then(([a,b])=>{if(Array.isArray(a)&&aq(a),Array.isArray(b)){let a=b.map(a=>({id:a.id,name:a.name}));as(a),aw(b=>b||a[0]?.id||"")}}).catch(()=>{})},[aa]),(0,c.useEffect)(()=>{if(!aa||!av){au([]),ay(bT),aA("");return}(0,p.apiFetch)(`/api/skills/${av}/versions?user=${encodeURIComponent(aa)}`).then(a=>a.json()).then(a=>{if(Array.isArray(a)){au(a);let b=b6.current;if(b){let c=b.versionAId===bT||a.find(a=>a.id===b.versionAId),d=b.versionBId===bT||a.find(a=>a.id===b.versionBId);c?ay(b.versionAId):ay(bT),d?aA(b.versionBId):aA(a[a.length-1]?.id||a[0]?.id||""),b6.current=null}else{ay(bT);let b=a.find(a=>a.isCurrent);aA(b?.id||a[a.length-1]?.id||a[0]?.id||"")}}}).catch(()=>{})},[aa,av]),(0,c.useEffect)(()=>{if(!C)return;let a=b1.current,b=a?.skillId||a?.configJson?.skillId||"";b&&b!==C&&bW(C),av!==C&&aw(C)},[C,av]),(0,c.useEffect)(()=>{if(null==E||0===at.length)return;let a=at.find(a=>Number(a.version)===Number(E));a?.id&&az!==a.id&&aA(a.id)},[E,az,at]);let cb=async(a,b,c)=>{let d;if(!ac)return;let e=bJ(a,b,c);if(!bK(e))return;let f=cs.find(b=>b.id===a),g=f?.input||"";if(!g.trim())return void bL(e);let h="a"===b?ax:az,i=h===bT,j=i?null:at.find(a=>a.id===h),k=ar.find(a=>a.id===av),l=null;if(bB(d=>{let e,f,g=d[a];if(!g)return d;let h={...d,[a]:{...g,[b]:(f=((e=g[b]??{status:"pending"}).runs??[]).map(a=>{if(a.runIndex!==c)return a;let b={...a,status:"running"};return delete b.sessionId,delete b.evaluatorRunId,delete b.evaluationResultId,delete b.evaluationTraceId,delete b.score,delete b.tier,delete b.evaluations,delete b.failureType,delete b.failureDetail,delete b.timeCost,delete b.tokenUsage,delete b.skillTriggered,delete b.toolCallCount,delete b.toolCalls,delete b.completedAt,b.output="",b}),{...e,status:"running",runs:f})}};return l=h,h}),!l)return void bL(e);await b7(ac.id,b4.current,l);try{let f=await (0,p.apiFetch)("/api/debug/execute",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({user:aa||"debug-user",query:g,skill:i?void 0:k?.name,skillVersion:i||!j?void 0:Number(j.version),tagSkill:k?.name,mode:"grayscale"})}),h=await f.json();if(!f.ok||!h.jobId){bB(d=>{let e=d[a];if(!e)return d;let f=e[b];if(!f)return d;let g=(f.runs??[]).map(a=>a.runIndex===c?{...a,status:"fail",output:h.error||"dispatch failed"}:a);return{...d,[a]:{...e,[b]:{...f,runs:g}}}}),bL(e);return}d=h.jobId}catch(d){bB(e=>{let f=e[a];if(!f)return e;let g=f[b];if(!g)return e;let h=(g.runs??[]).map(a=>a.runIndex===c?{...a,status:"fail",output:String(d)}:a);return{...e,[a]:{...f,[b]:{...g,runs:h}}}}),bL(e);return}let m=async()=>{try{let f=await (0,p.apiFetch)(`/api/debug/execute/${d}`),g=await f.json();if("completed"===g.status)return bB(e=>{let f=e[a];if(!f)return e;let h=f[b];if(!h)return e;let i=(h.runs??[]).map(a=>a.runIndex===c?{...a,status:"executed",jobId:d,output:g.output??"",timeCost:g.timeCost,tokenUsage:g.tokenUsage??0,sessionId:g.sessionId,skillTriggered:!!j}:a),k={...e,[a]:{...f,[b]:{...h,runs:i}}};return b8(k),cc(a,b,c),k}),!0;if("failed"===g.status||g.error)return bB(e=>{let f=e[a];if(!f)return e;let h=f[b];if(!h)return e;let i=(h.runs??[]).map(a=>a.runIndex===c?{...a,status:"fail",jobId:d,output:g.error||"agent failed",failureType:"agent_error",failureDetail:g.error||"agent failed"}:a),j={...e,[a]:{...f,[b]:{...h,runs:i}}};return b8(j),j}),bL(e),!1;return null}catch{return null}},n=`retry_exec_${a}_${b}_${c}`;bS.current[n]&&clearInterval(bS.current[n]),bS.current[n]=setInterval(async()=>{null!==await m()&&(clearInterval(bS.current[n]),delete bS.current[n])},3e3)},cc=async(a,b,c,d)=>{if(!ac)return;let e=bJ(a,b,c);bK(e);let f=b2.current[a]?.[b]?.runs?.find(a=>a.runIndex===c),g=G(d&&d.length>0?d:H(f,a1),a_),h=null;if(bB(d=>{let e=d[a];if(!e)return d;let f=e[b];if(!f)return d;let i=(f.runs||[]).map(a=>{if(a.runIndex!==c)return a;let b={...a,status:"evaluating"},d=(b.evaluations||[]).map(a=>g.includes(a.evaluatorId)?{...a,status:"running",errorMessage:void 0}:a);if(b.evaluations=d.length>0?d:g.map(a=>({evaluatorId:a,evaluatorName:dl.get(a)||a,status:"running"})),b.evaluations.some(a=>"done"===a.status)){let a=function(a){let b=(a||[]).filter(a=>"done"===a.status&&"number"==typeof a.score&&Number.isFinite(a.score)).map(a=>a.score);if(0!==b.length)return Math.round(b.reduce((a,b)=>a+b,0)/b.length)}(b.evaluations);"number"==typeof a&&(b.score=a,b.tier=a>=80?"good":a>=50?"warn":"poor")}else delete b.evaluatorRunId,delete b.evaluationResultId,delete b.evaluationTraceId,delete b.score,delete b.tier;return delete b.failureType,delete b.failureDetail,delete b.completedAt,b.output="",b}),j={...f,runs:i,status:"evaluating"},k={...d,[a]:{...e,[b]:j}};return h=k,k}),!h)return void bL(e);await b7(ac.id,b4.current,h);try{let b=await (0,p.apiFetch)(`/api/debug/grayscale-tasks/${ac.id}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({user:aa||"debug-user",action:"evaluate",caseIds:[a],evaluatorId:a_,evaluators:g,onlyMissingEvaluation:!0})}),c=await b.json().catch(()=>({}));if(!b.ok){alert(c.error||("zh"===_?"评测重试失败":"Retry evaluation failed")),bL(e);return}cj(ac.id)}catch(a){alert(String(a)),bL(e)}},cd=(ai.trim()||ac?.taskName?.trim()||bU()).trim(),ce=cd||bV,cf=!cd,cg=(0,c.useCallback)(()=>{aj(a=>a||ac?.taskName||""),ah(!0)},[ac?.taskName]),ch=(0,c.useCallback)(()=>{let a=ai.trim();a?aj(a):ac?.taskName&&aj(ac.taskName),ah(!1)},[ac?.taskName,ai]);(0,c.useEffect)(()=>{if(!ag)return;let a=window.requestAnimationFrame(()=>{ao.current?.focus(),ao.current?.select()});return()=>window.cancelAnimationFrame(a)},[ag]);let ci=async(a,b)=>{if(!ac)return void alert("zh"===_?"请先创建或加载 A/B 测试任务后再评测。":"Create or load an A/B task before evaluating.");let c=b2.current[a]?.[b],d=(0,r.findLatestRunnableRunIndex)(c?.runs);null==d?alert("zh"===_?"当前侧暂无可评测的执行记录。":"No execution record is available to evaluate for this side."):await cc(a,b,d)},cj=(0,c.useCallback)(a=>{if(!aa||!a)return;let b=`task_${a}`;bS.current[b]&&clearInterval(bS.current[b]);let c=async()=>{try{let c=await (0,p.apiFetch)(`/api/debug/grayscale-tasks/${a}?user=${encodeURIComponent(aa)}`),d=await c.json();if(!c.ok)return;if(b1.current?.id!==a){clearInterval(bS.current[b]),delete bS.current[b];return}let e=d.caseStatesJson||{};bB(a=>(function(a,b){let c=["pass","fail","executed"],d=["pending","running","evaluating"],e=(a,b)=>{if(!a)return b??{status:"pending"};if(!b)return a;let e=a.runs??[],f=b.runs??[],g=e[e.length-1],h=f[f.length-1];return e.length>f.length&&g&&!c.includes(g.status)||g&&h&&e.length===f.length&&g.runIndex===h.runIndex&&d.includes(g.status)&&("evaluating"===g.status&&"evaluating"!==h.status&&"pass"!==h.status||"running"===g.status&&"pending"===h.status)?a:b},f=new Set([...Object.keys(a),...Object.keys(b)]),g={};for(let c of f)g[c]={a:e(a[c]?.a,b[c]?.a),b:e(a[c]?.b,b[c]?.b)};return g})(a,e)),ad(a=>a?{...a,...d}:d),d.activeRun||w(e)||d.configJson?.autoEval!==!1&&x(e)?bF(!0):(bF(!1),clearInterval(bS.current[b]),delete bS.current[b])}catch{}};c(),bS.current[b]=setInterval(c,2500)},[aa]);(0,c.useEffect)(()=>{ac?.id&&bE&&cj(ac.id)},[ac?.id,bE,cj]);let ck=async()=>{if(ac&&window.confirm("zh"===_?"确定终止当前 A/B 测试? 已 in-flight 的执行/评测会被标记为「用户终止」失败, 但产生的 trace 不会被清。":"Abort current A/B test? In-flight runs will be marked as user-aborted failures; existing traces are preserved."))try{let a=await (0,p.apiFetch)(`/api/debug/grayscale-tasks/${ac.id}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({user:aa||"debug-user",action:"abort"})});if(!a.ok){let b=await a.json().catch(()=>({}));alert(("zh"===_?"终止失败: ":"Abort failed: ")+(b.error||a.status));return}(()=>{if(0===bI.current.size)return;let a=new Set;bI.current=a,bH(a)})(),cj(ac.id)}catch(a){alert(String(a))}},cl=async()=>{if(!(b3.current||b1.current?.activeRun||w(b2.current))){if(!ac)return void alert("zh"===_?"请先新建并保存评测任务。":"Please create and save an evaluation task first.");if(0===bC.length)return void alert("zh"===_?"请至少选择 1 条样本后再执行。":"Please select at least one sample before running.");bF(!0),bN(b5),ad(a=>a?{...a,activeRun:{taskId:a.id,runId:"pending",status:"running",startedAt:Date.now()}}:a);try{let a=await (0,p.apiFetch)(`/api/debug/grayscale-tasks/${ac.id}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({user:aa||"debug-user",action:"start",caseIds:bC,evaluatorId:a_,evaluators:a1,agentMaxConcurrency:aL})}),b=await a.json().catch(()=>({}));if(!a.ok){if(409===a.status)return void cj(ac.id);bF(!1),ad(a=>a?{...a,activeRun:null}:a),alert(b.error||("zh"===_?"启动失败":"Failed to start"));return}cj(ac.id)}catch(a){bF(!1),ad(a=>a?{...a,activeRun:null}:a),alert(String(a))}}},cm=async()=>{if(cd&&aa&&av&&az&&az!==bT){an(!0);try{if(ac){let a={...b4.current,taskDescription:ak.trim()},b=await (0,p.apiFetch)(`/api/debug/grayscale-tasks/${ac.id}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({user:aa,taskName:cd,configJson:a})});if(b.ok){let a=await b.json();b_(a),af(b=>b.map(b=>b.id===a.id?a:b))}else if(409===b.status){let a=await b.json().catch(()=>({}));alert(a?.error||("zh"===_?"该版本下已存在同名 A/B 任务,请换一个名字":"An A/B task with this name already exists for this version")),aj(ac.taskName||"");return}}else{let a=await ca(av,az,cd);if(a){let b=a.task,c={...b4.current,skillId:b.skillId||b.configJson?.skillId||av,versionAId:ax,versionBId:az,taskDescription:ak.trim()},d=await (0,p.apiFetch)(`/api/debug/grayscale-tasks/${b.id}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({user:aa,taskName:cd,configJson:c})}),e=d.ok?await d.json():{...b,taskName:cd,configJson:c};b_(e),af(a=>a.some(a=>a.id===e.id)?a.map(a=>a.id===e.id?e:a):[e,...a]),a.existed&&alert("zh"===_?"该 Skill 版本已存在 A/B 任务(每个版本仅允许一个)。已切换到该任务并保存你的配置。":"An A/B task already exists for this skill version (one per version). Switched to it and saved your config.")}}}catch{}finally{ah(!1),an(!1)}}},cn=()=>{Object.entries(bS.current).forEach(([a,b])=>{a.startsWith("task_")&&(clearInterval(b),delete bS.current[a])}),bt(!0),bW(C||av),ah(!0)};(0,c.useEffect)(()=>{a>0&&cn()},[a]),(0,c.useEffect)(()=>{e>0&&bg(!0)},[e]);let co=C?ae.filter(a=>a.skillId===C||a.configJson?.skillId===C):av?ae.filter(a=>bX(a,av,az&&az!==bT?az:void 0)):ae,cp=async()=>{if(a9.trim()&&aa){bc(!0);try{let a=await (0,p.apiFetch)("/api/agent-datasets",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({user:aa,name:a9.trim()})});if(a.ok){let b=await a.json();aq(a=>[...a,b]);let c=[...a5,b.id];a6(c),aE(c[0]||""),a8(!1),ba(""),b1.current&&b7(b1.current.id,{...b4.current,selectedDatasetId:c[0]||"",linkedDatasetIds:c})}}catch{}finally{bc(!1)}}},cq=a=>a===bT?"zh"===_?"无 Skill":"No Skill":a&&"string"!=typeof a?a.semanticVersion||`v${a.version}`:"string"==typeof a?a:"--",cr=a5.length>0?a5:aD?[aD]:[],cs="dataset"===aB?ap.filter(a=>cr.includes(a.id)).flatMap(a=>(a.cases||[]).map(b=>({...b,datasetName:a.name,datasetId:a.id,sourceType:"dataset"}))):aT.map((a,b)=>(0,r.buildGrayscaleTraceCase)(a,b)),ct=(0,c.useMemo)(()=>new Map(cs.map(a=>[a.id,a])),[cs]);(0,c.useEffect)(()=>{if(0===cs.length)return;let a=new Set(cs.map(a=>a.id));if(0===bC.filter(b=>!a.has(b)).length)return;let b=bC.filter(b=>a.has(b));bD(b),ac&&b7(ac.id,{...b4.current,selectedCaseIds:b,checkedCaseIds:b})},[cs]),(0,c.useEffect)(()=>{cs.length>0&&!aH&&aI(cs[0].id)},[cs,aH]);let cu=cs.find(a=>a.id===aH)||cs[0],cv=cs.filter(a=>{if(!(a.input.toLowerCase().includes(bO.toLowerCase())||a.id.toLowerCase().includes(bO.toLowerCase())))return!1;let b=bA[a.id]||{a:{status:"pending"},b:{status:"pending"}},c=b.a.status,d=b.b.status;return"pending"===bQ?"pending"===c&&"pending"===d:"executed"===bQ?"executed"===c||"evaluating"===c||"running"===c||"executed"===d||"evaluating"===d||"running"===d:"evaluated"!==bQ||"pass"===c&&"pass"===d});cs.length,cs.filter(a=>{let b=bA[a.id]||{a:{status:"pending"},b:{status:"pending"}};return"pending"===b.a.status&&"pending"===b.b.status}).length;let cw=cs.filter(a=>{let b=bA[a.id]||{a:{status:"pending"},b:{status:"pending"}};return"executed"===b.a.status||"evaluating"===b.a.status||"running"===b.a.status||"executed"===b.b.status||"evaluating"===b.b.status||"running"===b.b.status}).length,cx=cs.filter(a=>{let b=bA[a.id]||{a:{status:"pending"},b:{status:"pending"}};return"pass"===b.a.status&&"pass"===b.b.status}).length,cy=bC.filter(a=>cs.some(b=>b.id===a)).length;cs.filter(a=>{let b=bA[a.id];return!!b&&"pass"===b.a.status&&"pass"===b.b.status&&(b.b.score??0)>(b.a.score??0)}).length;let cz=ar.find(a=>a.id===av),cA=at.find(a=>a.id===ax);at.find(a=>a.id===az),a5.map(a=>ap.find(b=>b.id===a)).filter(Boolean),ap.filter(a=>!a5.includes(a.id));let cB=bA[cu?.id]?.a?.status==="pass"||bA[cu?.id]?.a?.status==="executed",cC=!!bM&&bM===b5,cD=Object.keys(bA).filter(a=>{let b=bA[a];return!!b&&["a","b"].some(a=>{let c=b[a];return"pending"!==c.status||(c.runs?.length||0)>0})}),cE=(cC||w(bA))&&bC.length>0?bC:cD,cF=cE.flatMap(a=>["a","b"].map(b=>{let c=bA[a]?.[b];return c?.runCount||c?.runs?.length||0})).filter(a=>a>0),cG=cF.length>0?Math.max(1,...cF):aJ,cH=(a,b)=>{let c=a.reduce((a,c)=>{let d=bA[c]?.[b];return d?a+(d.runCount||d.runs?.length||0):a},0);return c>0?c:a.length*aJ},cI=a=>{let b,c,d=cE.length>0?cE:cu?.id?[cu.id]:[];if(0===d.length)return{status:"pending",runsCompleted:"zh"===_?"0/0 未执行":"0/0 Pending",timeCost:"—",tokenUsage:void 0,score:void 0,triggerRate:"—",toolCall:"—",sessionId:"",output:""};let e=d.map(b=>bA[b]?.[a]).filter(Boolean).flatMap(a=>a.runs&&a.runs.length>0?a.runs:"pending"!==a.status?[{...a,runIndex:1}]:[]),f=Math.max(cH(d,a),e.length||d.length),g=d.flatMap(a=>{let b=bA[a];return b?["a","b"].flatMap(a=>{let c=b[a];return c.runs&&c.runs.length>0?c.runs:"pending"!==c.status?[{...c,runIndex:1}]:[]}):[]}),h=cH(d,"a")+cH(d,"b"),i=g.filter(a=>["executed","evaluating","pass","fail"].includes(a.status)).length,j=g.length>0&&i<h,k=e.filter(a=>"running"===a.status).length,l=e.filter(a=>"evaluating"===a.status).length,m=e.filter(a=>"fail"===a.status).length,n=e.filter(a=>"executed"===a.status||"evaluating"===a.status||"pass"===a.status||"fail"===a.status),o=e.filter(a=>"pass"===a.status||"fail"===a.status),p=n.length,q=o.length,r=n.filter(a=>"fail"!==a.status),s=r.length,t=r.filter(a=>!!a.sessionId||"string"==typeof a.timeCost||"number"==typeof a.tokenUsage),u=(b=t.map(a=>"string"==typeof a.timeCost?parseFloat(a.timeCost):0).filter(a=>Number.isFinite(a)&&a>0)).length>0?`${(b.reduce((a,b)=>a+b,0)/b.length).toFixed(1)}s`:"—",v=(c=t.filter(a=>"number"==typeof a.tokenUsage&&(a.tokenUsage||0)>0)).length>0?Math.round(c.reduce((a,b)=>a+(b.tokenUsage||0),0)/c.length):void 0,w=t.find(a=>a.sessionId)?.sessionId||"",x=t.find(a=>a.output)?.output||"",y=t.filter(a=>a.skillTriggered).length,z=t.length>0?`${y}/${t.length} (${Math.round(y/t.length*100)}%)`:"—",A=Array.from(new Set(t.flatMap(a=>a.toolCalls||[]))).slice(0,3),B=t.reduce((a,b)=>a+(b.toolCallCount||0),0),C=A.length>0?`${A.join(", ")} \xb7 ${B}`:B>0?`${B} calls`:"无",D="pending";if(0===e.length?D="pending":j||k>0||p<f?D="running":l>0||q<f&&p===f?D="evaluating":m>0?D="failed":q===f&&f>0&&(D="completed"),"pending"===D)return{status:"pending",runsCompleted:"zh"===_?`0/${f} 未执行`:`0/${f} Pending`,timeCost:"—",tokenUsage:void 0,score:void 0,accuracy:"—",triggerRate:"—",toolCall:"—",sessionId:"",output:""};if("running"===D)return{status:"running",runsCompleted:"zh"===_?`${p}/${f} 执行中`:`${p}/${f} Running`,timeCost:"—",tokenUsage:void 0,score:void 0,accuracy:"—",triggerRate:"—",toolCall:"—",sessionId:"",output:""};if("evaluating"===D)return{status:"evaluating",runsCompleted:"zh"===_?`${q}/${f} 评估中`:`${q}/${f} Evaluating`,timeCost:u,tokenUsage:v,score:void 0,triggerRate:z,toolCall:C,accuracy:"—",sessionId:w,output:x};if("failed"===D)return{status:"fail",runsCompleted:"zh"===_?`${s}/${f} 执行完成 \xb7 ${m} 失败`:`${s}/${f} completed \xb7 ${m} failed`,timeCost:u,tokenUsage:v,score:void 0,triggerRate:z,toolCall:C,accuracy:"—",sessionId:w,output:x};let E=0,F=0,G=0,H=0,I=o.filter(a=>"string"==typeof a.timeCost||"number"==typeof a.tokenUsage);I.forEach(a=>{let b=0;"string"==typeof a.timeCost?b=parseFloat(a.timeCost)||0:"number"==typeof a.timeCost&&(b=a.timeCost),E+=b,F+=a.tokenUsage||0,"number"==typeof a.score&&(G+=a.score,H++)});let J=I.length>0?(E/I.length).toFixed(1)+"s":"—",K=I.length>0?Math.round(F/I.length):0,L=H>0?Math.round(G/H):void 0,M=o.filter(a=>a.skillTriggered).length,N=q>0?`${M}/${q} (${Math.round(M/q*100)}%)`:"—",O=Array.from(new Set(o.flatMap(a=>a.toolCalls||[]))).slice(0,3),P=o.reduce((a,b)=>a+(b.toolCallCount||0),0);return{status:"executed",runsCompleted:"zh"===_?`${q}/${f} 执行完成`:`${q}/${f} Completed`,timeCost:J,tokenUsage:K||void 0,score:L,accuracy:null!=L?`${L}%`:"—",triggerRate:N,toolCall:O.length>0?`${O.join(", ")} \xb7 ${P}`:P>0?`${P} calls`:"无",sessionId:o[0]?.sessionId||"",output:o[0]?.output||"Success"}},cJ=cI("a"),cK=cI("b"),cL="executed"===cJ.status||"pass"===cJ.status,cM="executed"===cK.status||"pass"===cK.status,cN="evaluating"===cJ.status,cO="evaluating"===cK.status,cP="fail"===cJ.status,cQ="fail"===cK.status,cR=!!ac?.activeRun,cS=x(bA),cT=bE||cR||w(bA)||cS,cU=bC.length>0&&bC.some(a=>{let b=bA[a];return!!b&&["a","b"].some(a=>{let c=b[a];return"pending"!==c.status||(c.runs?.length||0)>0})})&&cC,cV=cT?"zh"===_?"执行中":"Running":cU?"zh"===_?"重新执行":"Run Again":"zh"===_?"开始执行":"Start Execution",cW=cL&&cM,cX=!!(av&&az&&az!==bT),cY=!cT&&cX&&a1.length>0&&("dataset"===aB?cr.length>0&&cy>0:!!(aX||aZ||aT.length>0)),cZ=!cY,c$=cU||cD.length>0||cw>0||cx>0||cW,c_=cT||!c$&&cY,c0=cY?"zh"===_?"✓ 配置完成":"Configured":"zh"===_?"配置中":"Configuring",c1={config:cY||cT||c$,exec:!cT&&(!!c$||!c_),result:cT||!c$},c2=cE.length>0?cE:bC.length>0?bC:void 0,c3=(0,q.calculateAbScoring)(bA,{repeatRounds:aJ,caseIds:c2}),c4=cW?c3.decisionLabel:"zh"===_?"等待评估完成":"Waiting for evaluation",c5=cW?null==c3.totalScore?"zh"===_?"— 分":"— pts":"zh"===_?`${c3.totalScore} 分`:`${c3.totalScore} pts`:"zh"===_?"待评分":"Pending score",c6=cW?"insufficient"===c3.decision?"zh"===_?`当前只有 ${c3.sampleSize} 个完成配对样本;N < ${q.DEFAULT_AB_SCORING_POLICY.minSampleSize} 不输出发布结论,请补齐样本后复测。`:`Only ${c3.sampleSize} paired samples are complete; add samples before making a release decision.`:"reject"===c3.decision?(S=c3.hardGates.map(a=>a.label).join("、"),"zh"===_?`命中 hard gate:${S}。至少一个维度已低于拒绝阈值,因此当前结论为打回。建议先按打回类别修正后复测。`:`Hard gate hit: ${c3.hardGates.map(a=>a.label).join(", ")}. At least one dimension is below the reject threshold, so the current decision is reject. Revise and retest first.`):"monitor-release"===c3.decision?"zh"===_?"可小流量监控发布,并持续观察 Token 成本、触发率和多轮一致性。":"Proceed with monitored rollout and watch token cost, invoke rate, and variance.":"zh"===_?"三维指标均达标,可进入全量发布,同时保留后续复测记录。":"All three dimensions pass; proceed to full release and keep retesting over time.":"zh"===_?"等待所有执行记录评估完成后,再查看综合判定和上线动作。":"Wait for all execution records to finish evaluation before taking a release action.",c7=(()=>{if("trace"===aB){let a=[aX,aZ].filter(Boolean).length||aT.length;return"zh"===_?`${a} 条链路`:`${a} traces`}let a=cr.length;return"zh"===_?`${a} 数据集`:`${a} datasets`})(),c8="zh"===_?`${cy} 样本 x ${aJ} 轮 \xb7 ${c7}`:`${cy} samples x ${aJ} rounds \xb7 ${c7}`,c9=bC.length>0?bC:cD,da=2*c9.length*aJ,db=a=>c9.reduce((b,c)=>{let d=bA[c];return d?b+["a","b"].reduce((b,c)=>{let e=d[c];return e?b+(e.runs&&e.runs.length>0?e.runs:"pending"!==e.status?[{...e,runIndex:1}]:[]).filter(b=>a(b.status)).length:b},0):b},0),dc=db(a=>["executed","evaluating","pass","fail"].includes(a)),dd=db(a=>"pass"===a||"fail"===a),de=0===da?"zh"===_?"0/0 未选择样本":"0/0 No samples selected":cT?"zh"===_?`${dc}/${da} 完成 \xb7 执行中`:`${dc}/${da} done \xb7 Running`:dd>=da?"zh"===_?`${dc}/${da} 完成 \xb7 已评分`:`${dc}/${da} done \xb7 Scored`:dc>dd?"zh"===_?`${dc}/${da} 完成 \xb7 ${dd}/${da} 已评分`:`${dc}/${da} done \xb7 ${dd}/${da} scored`:"zh"===_?`${dc}/${da} 完成 \xb7 待执行`:`${dc}/${da} done \xb7 Pending`,df=cW?c4:cx>0?"zh"===_?`${cx}/${c9.length||cy} 样本已评估`:`${cx}/${c9.length||cy} samples evaluated`:"zh"===_?"等待评估完成":"Waiting for evaluation",dg=a=>1===a?"done":2===a?cw>0||cB?"done":"active":3===a&&(cx>0||cB)?"active":"pending",dh=ac?.createdAt?new Date(ac.createdAt).toLocaleString("zh"===_?"zh-CN":"en-US",{month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"}):"zh"===_?"未保存":"Unsaved",di="",dj="zh"===_?"草稿":"Draft";bE?(di="is-running",dj="zh"===_?"运行中":"Running"):cW?"direct-release"===c3.decision?(di="is-done",dj="zh"===_?"已通过":"Pass"):"reject"===c3.decision?(di="is-reject",dj="zh"===_?"打回":"Reject"):"insufficient"===c3.decision?(di="is-warn",dj="zh"===_?"样本不足":"Insufficient"):(di="is-warn",dj="zh"===_?"需关注":"Review"):ac&&(dj="zh"===_?"待执行":"Pending");let dk=(0,c.useMemo)(()=>D,[]),dl=(0,c.useMemo)(()=>new Map(dk.map(a=>[a.id,a.name])),[dk]),dm=a1.every(a=>D.some(b=>b.id===a));(0,c.useEffect)(()=>{P&&!bj&&bi(a=>a.config===c1.config&&a.exec===c1.exec&&a.result===c1.result?a:c1)},[c1,bj,P]),(0,c.useEffect)(()=>{P&&bk(!1)},[ac?.id,P]);let dn=(0,c.useMemo)(()=>[{value:"1",label:"zh"===_?"1 轮":"1 round"},{value:"2",label:"zh"===_?"2 轮":"2 rounds"},{value:"3",label:"zh"===_?"3 轮":"3 rounds"},{value:"5",label:"zh"===_?"5 轮":"5 rounds"},{value:"10",label:"zh"===_?"10 轮":"10 rounds"}],[_]),dp=0===a1.length?"zh"===_?"请选择评估器":"Select evaluators":a1.length<=2?a1.map(a=>dl.get(a)||a).join("、"):`${a1.slice(0,2).map(a=>dl.get(a)||a).join("、")} ${"zh"===_?`等 ${a1.length} 项`:`and ${a1.length-2} more`}`,dq=0===cr.length?"zh"===_?"请选择数据集":"Select datasets":cr.length<=2?cr.map(a=>ap.find(b=>b.id===a)?.name||a).join("、"):`${cr.slice(0,2).map(a=>ap.find(b=>b.id===a)?.name||a).join("、")} ${"zh"===_?`等 ${cr.length} 项`:`and ${cr.length-2} more`}`,dr=(0,c.useMemo)(()=>[{value:bT,label:"zh"===_?"无 Skill":"No Skill"},...at.map(a=>({value:a.id,label:`v${a.semanticVersion||a.version}`}))],[bT,_,at]),ds=ax===bT?"zh"===_?"默认对照组不加载 Skill,也可选择同 Skill 的历史版本":"Control runs without Skill by default; a previous version is optional":`${"zh"===_?"对照组加载":"Control loads"} ${cz?.name||"Skill"} ${cq(cA||ax)}`,dt=a=>a===bT?"grayscale-baseline-agent":"grayscale-skill-agent",du=a=>a===bT?"zh"===_?"基线 Agent":"Baseline Agent":"Skill Agent",dv=(T=ax||bT,`${du(T)} \xb7 ${dt(T)}`),dw=aJ>1?"zh"===_?"多轮运行可观察波动和稳定性":"Multiple rounds reveal variance and stability":"zh"===_?"单轮适合快速试跑与校验配置":"One round is best for quick validation",dx=cr.reduce((a,b)=>{let c=ap.find(a=>a.id===b);return a+(Array.isArray(c?.cases)?c.cases.length:0)},0),dy=cr.length>0?`${"zh"===_?"当前共选择":"Selected"} ${cr.length} ${"zh"===_?"个数据集,合计":"datasets with"} ${dx} ${"zh"===_?"条样本":"cases"}`:"zh"===_?"先选择数据集,再勾选要执行的样本":"Choose datasets before selecting cases",dz=dm?"zh"===_?"使用预置评估器,适合直接开始评测":"Built-in evaluator for a quick start":"zh"===_?"使用自定义评估器,适合特定业务规则":"Custom evaluator for domain-specific scoring";return(0,b.jsxs)("div",{className:`ab-page-v2${P?" gray-hifi":""}`,style:{paddingBottom:60},children:[(0,b.jsxs)("div",{style:{padding:"24px 28px 12px 28px"},children:[P&&(0,b.jsxs)("div",{className:"gh-task-row",children:[(0,b.jsxs)("div",{className:"gh-task-title-row",children:[ag?(0,b.jsx)("input",{ref:ao,className:"gh-task-title",value:ai,onChange:a=>aj(a.target.value),onBlur:ch,onKeyDown:a=>{"Enter"===a.key?(a.preventDefault(),ch()):"Escape"===a.key&&(a.preventDefault(),aj(ac?.taskName||""),ah(!1))},placeholder:bV,spellCheck:!1,"aria-label":"zh"===_?"任务名称":"Task name"}):(0,b.jsx)("button",{type:"button",className:`gh-task-title-trigger${cf?" is-placeholder":""}`,onClick:cg,"aria-label":"zh"===_?"编辑任务名称":"Edit task name",children:ce}),(0,b.jsx)("span",{className:`gh-task-state ${di}`,children:dj}),(0,b.jsx)("span",{className:"gh-task-cat",children:"A/B Compare"})]}),(0,b.jsxs)("div",{className:"gh-task-info-row",children:[(0,b.jsx)("div",{className:"gh-task-meta",children:(0,b.jsxs)("span",{className:"gh-task-meta-item",children:[(0,b.jsx)("span",{className:"ico",children:"⏱"}),dh]})}),(0,b.jsxs)("div",{className:"gh-task-actions",children:[(0,b.jsxs)("button",{type:"button",className:"gh-btn",onClick:cn,style:{borderColor:"var(--accent)",color:"var(--accent)",fontWeight:600},children:["+ ","zh"===_?"新建任务":"New Task"]}),(0,b.jsx)("button",{type:"button",className:"gh-btn",onClick:()=>bg(!0),children:"zh"===_?"历史任务":"History"}),(0,b.jsx)("button",{type:"button",className:"gh-btn",onClick:cm,children:"zh"===_?"保存配置":"Save"}),(0,b.jsxs)("button",{type:"button",className:"gh-btn is-primary",onClick:cl,disabled:cZ,children:["▶ ","zh"===_?"复测":"Re-run"]})]})]})]}),!u&&(0,b.jsxs)("div",{className:"sa-back-line",style:{display:"flex",alignItems:"center",gap:8,margin:"0 0 16px 0"},children:[(0,b.jsxs)("button",{className:"sa-back-btn",onClick:()=>ab.push("/skill-eval"),children:[(0,b.jsx)("span",{children:"←"}),"zh"===_?"返回综合分析":"Back to Dashboard"]}),(0,b.jsx)("span",{children:"/"}),(0,b.jsx)("b",{children:"zh"===_?"A/B测试":"A/B Testing"})]}),!C&&!ac&&(0,b.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:12,flexWrap:"wrap",background:"#FAF5FF",border:"1px dashed var(--accent, #7E22CE)",borderRadius:12,padding:"14px 18px",marginBottom:16},children:[(0,b.jsxs)("span",{style:{fontSize:13,fontWeight:700,color:"#7E22CE",whiteSpace:"nowrap"},children:["+ ","zh"===_?"新建 A/B 任务":"New A/B Task"]}),(0,b.jsx)("input",{value:ai,onChange:a=>aj(a.target.value),placeholder:"zh"===_?"给这个任务起个名字…":"Name this task…",spellCheck:!1,style:{flex:1,minWidth:200,height:34,borderRadius:6,border:"1px solid #E7E5E4",padding:"0 12px",fontSize:13,outline:"none"}}),(0,b.jsx)("button",{type:"button",onClick:cm,disabled:!av||!az||az===bT||!ai.trim()||am,style:{height:34,padding:"0 18px",borderRadius:6,border:"none",background:"#7E22CE",color:"#fff",fontSize:13,fontWeight:600,whiteSpace:"nowrap",cursor:av&&az&&az!==bT&&ai.trim()&&!am?"pointer":"not-allowed",opacity:av&&az&&az!==bT&&ai.trim()&&!am?1:.5},children:"zh"===_?"创建任务":"Create"}),(0,b.jsx)("span",{style:{fontSize:11,color:"#A1A1AA",whiteSpace:"nowrap"},children:"zh"===_?"先在下方选好 Skill 与 B 实验版本":"Pick a skill & B version below"})]}),(0,b.jsx)("div",{className:"gh-skill-summary",style:{background:"white",borderRadius:12,padding:"20px 24px",color:"#1C1917",display:"flex",alignItems:"center",justifyContent:"space-between",gap:20,marginBottom:16,boxShadow:"0 4px 20px rgba(0,0,0,0.05)",border:"1px solid rgba(0,0,0,0.08)"},children:(0,b.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:16},children:[(0,b.jsx)("div",{style:{width:44,height:44,borderRadius:8,background:"#3730A3",display:"flex",alignItems:"center",justifyContent:"center",fontSize:14,fontWeight:700,color:"white",fontFamily:"ui-monospace, monospace"},children:cz?.name?cz.name.replace(/[^a-zA-Z0-9]/g,"").slice(0,3).toUpperCase():"SKL"}),(0,b.jsx)("div",{children:(0,b.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:16,flexWrap:"wrap"},children:[(0,b.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:4},children:[(0,b.jsx)("span",{style:{fontSize:9,color:"#78716C",fontFamily:"ui-monospace, monospace",textTransform:"uppercase"},children:"评测 Skill 对象"}),(0,b.jsx)("select",{value:av,onChange:a=>{ac||aw(a.target.value)},disabled:!!ac,style:{background:"#F5F5F4",border:"1px solid #E7E5E4",color:"#1C1917",borderRadius:6,padding:"6px 12px",fontSize:14,fontWeight:700,cursor:ac?"not-allowed":"pointer",opacity:ac?.75:1,outline:"none",minWidth:160,height:34},children:ar.map(a=>(0,b.jsx)("option",{value:a.id,style:{background:"white",color:"#1C1917"},children:a.name},a.id))})]}),(0,b.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:4},children:[(0,b.jsx)("span",{style:{fontSize:9,color:"#78716C",fontFamily:"ui-monospace, monospace",textTransform:"uppercase"},children:"A 对照版本"}),(0,b.jsxs)("select",{value:ax,onChange:a=>ay(a.target.value),style:{background:"#F5F5F4",border:"1px solid #E7E5E4",color:"#1C1917",borderRadius:6,padding:"6px 12px",fontSize:13,fontWeight:600,cursor:"pointer",outline:"none",minWidth:120,height:34},children:[(0,b.jsx)("option",{value:bT,style:{background:"white",color:"#1C1917"},children:"zh"===_?"无 Skill":"No Skill"}),at.map(a=>(0,b.jsxs)("option",{value:a.id,style:{background:"white",color:"#1C1917"},children:["v",a.semanticVersion||a.version]},a.id))]})]}),(0,b.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:4},children:[(0,b.jsx)("span",{style:{fontSize:9,color:"#78716C",fontFamily:"ui-monospace, monospace",textTransform:"uppercase"},children:"B 实验版本"}),(0,b.jsxs)("select",{value:az,onChange:a=>{ac||aA(a.target.value)},disabled:!!ac,style:{background:"#F5F5F4",border:"1px solid #E7E5E4",color:"#1C1917",borderRadius:6,padding:"6px 12px",fontSize:13,fontWeight:600,cursor:ac?"not-allowed":"pointer",opacity:ac?.75:1,outline:"none",minWidth:120,height:34},children:[(0,b.jsx)("option",{value:bT,style:{background:"white",color:"#1C1917"},children:"zh"===_?"无 Skill":"No Skill"}),at.map(a=>(0,b.jsxs)("option",{value:a.id,style:{background:"white",color:"#1C1917"},children:["v",a.semanticVersion||a.version]},a.id))]})]})]})})]})}),P&&(V=(U=[dg(1),dg(2),dg(3)]).filter(a=>"done"===a).length,W="zh"===_?["配置","运行 · A/B 评测","测评结果"]:["Config · Cases","Run · A/B Eval","Result · Analysis"],X=[c8,de,df],(0,b.jsx)("div",{className:"gh-stepper",style:{"--gh-done-pct":`${0===V?0:V>=2?100:50}%`},children:(0,b.jsxs)("div",{className:"gh-stepper-row",children:[(0,b.jsxs)("div",{className:"gh-step gh-step-origin",children:[(0,b.jsx)("div",{className:"gh-step-circle"}),(0,b.jsxs)("div",{className:"gh-step-body",children:[(0,b.jsx)("div",{className:"gh-step-name",children:"zh"===_?"A/B 测试":"A/B Testing"}),(0,b.jsx)("div",{className:"gh-step-sub",children:"zh"===_?"启用 vs 未启用 Skill 的差异对照":"Skill on vs off comparison"})]})]}),[1,2,3].map(a=>{let c=U[a-1];return(0,b.jsxs)("div",{className:`gh-step ${"done"===c?"is-done":"active"===c?"is-active":"is-idle"}`,children:[(0,b.jsx)("div",{className:"gh-step-circle",children:"done"===c?null:(0,b.jsx)("span",{children:a})}),(0,b.jsxs)("div",{className:"gh-step-body",children:[(0,b.jsx)("div",{className:"gh-step-name",children:W[a-1]}),(0,b.jsx)("div",{className:"gh-step-sub",children:X[a-1]})]})]},a)})]})})),(0,b.jsxs)("div",{className:"v2-stepper",style:{position:"sticky",top:16,zIndex:40,background:"var(--card-bg)",border:"1px solid var(--border)",borderRadius:12},children:[(0,b.jsxs)("div",{className:`v2-step ${dg(1)}`,children:[(0,b.jsx)("div",{className:"v2-step-circle",children:"done"===dg(1)?(0,b.jsx)(L,{}):"1"}),(0,b.jsxs)("div",{className:"v2-step-info",children:[(0,b.jsx)("span",{className:"v2-step-label",children:"STEP 1 · CONFIG"}),(0,b.jsx)("span",{className:"v2-step-name",children:"zh"===_?"准备: 配置实验参数":"Config params"}),(0,b.jsx)("span",{className:"v2-step-meta",style:{color:"var(--success)"},children:c8})]})]}),(0,b.jsxs)("div",{className:`v2-step ${dg(2)}`,children:[(0,b.jsx)("div",{className:"v2-step-circle",children:"done"===dg(2)?(0,b.jsx)(L,{}):"2"}),(0,b.jsxs)("div",{className:"v2-step-info",children:[(0,b.jsx)("span",{className:"v2-step-label",children:"STEP 2 · EXECUTION"}),(0,b.jsx)("span",{className:"v2-step-name",children:"zh"===_?"执行: 运行 A/B 测试":"Run A/B Testing"}),(0,b.jsx)("span",{className:"v2-step-meta",style:{color:"var(--success)"},children:de})]})]}),(0,b.jsxs)("div",{className:`v2-step ${dg(3)}`,children:[(0,b.jsx)("div",{className:"v2-step-circle",children:"done"===dg(3)?(0,b.jsx)(L,{}):"3"}),(0,b.jsxs)("div",{className:"v2-step-info",children:[(0,b.jsx)("span",{className:"v2-step-label",children:"STEP 3 · DECISION"}),(0,b.jsx)("span",{className:"v2-step-name",children:"zh"===_?"决策: 综合判定 & 上线":"Decision verdict"}),(0,b.jsx)("span",{className:"v2-step-meta",style:{color:"var(--primary)",fontWeight:600},children:df})]})]})]})]}),(0,b.jsxs)("div",{style:{padding:"0 28px",display:"flex",flexDirection:"column",gap:16},children:[(0,b.jsxs)("div",{className:"v2-stage-card config",style:{background:"white",border:"0.5px solid rgba(0,0,0,0.08)"},"data-collapsible":P?"1":void 0,"data-collapsed":P?bh.config?"1":"0":void 0,children:[(0,b.jsxs)("div",{className:"v2-stage-card-header",style:{borderBottom:"0.5px solid rgba(0,0,0,0.08)"},onClick:P?()=>bl("config"):void 0,children:[(0,b.jsx)("div",{className:"v2-stage-num-badge",children:(0,b.jsx)(M,{})}),(0,b.jsxs)("div",{className:"v2-stage-title-block",children:[(0,b.jsxs)("div",{className:"v2-stage-card-title",children:["zh"===_?"配置":"Config",(0,b.jsx)("span",{className:`v2-stage-pill ${cY?"done":"pending"}`,style:{background:cY?"#E1F5EE":"#F5F4EE",color:cY?"#0F6E56":"#5F5E5A",fontSize:11,padding:"2px 8px",borderRadius:4},children:c0})]}),(0,b.jsx)("div",{className:"v2-stage-card-subtitle",children:"zh"===_?"设置参数 · 实验版本由 Skill 分析决定,对照版本由本配置决定":"Set up parameters · Experiment version comes from Skill analysis, control version from this config"})]}),P&&(0,b.jsx)("button",{type:"button",className:"gh-card-chev","aria-label":bh.config?"zh"===_?"展开":"Expand":"zh"===_?"折叠":"Collapse",onClick:a=>{a.stopPropagation(),bl("config")}})]}),(0,b.jsxs)("div",{className:"v2-stage-card-body",children:[(0,b.jsxs)("div",{className:"v2-config-grid",children:[(0,b.jsxs)("div",{className:"v2-config-item v2-config-item--compact",children:[(0,b.jsxs)("span",{className:"v2-config-item-label",children:["zh"===_?"重复轮次":"Repeat rounds"," ",(0,b.jsx)("span",{className:"req",children:"*"})]}),(0,b.jsx)(h.Select,{"aria-label":"zh"===_?"选择重复轮次":"Select repeat rounds",value:String(aJ),onChange:a=>{let b=Number(a);aK(b),ac&&b7(ac.id,{...b4.current,repeatRounds:b})},options:dn,active:aJ>1,size:"sm",className:"v2-config-select"}),(0,b.jsx)("span",{className:"v2-config-item-hint",children:dw})]}),(0,b.jsxs)("div",{className:"v2-config-item v2-config-item--compact",children:[(0,b.jsx)("span",{className:"v2-config-item-label",children:"zh"===_?"数据集":"Dataset"}),(0,b.jsxs)("div",{style:{position:"relative"},children:[(0,b.jsxs)("button",{type:"button","aria-label":"zh"===_?"选择数据集":"Select datasets",className:"v2-config-select",onClick:()=>aG(a=>!a),style:{width:"100%",minHeight:34,border:cr.length>0?"1px solid var(--primary)":"1px solid var(--border)",borderRadius:6,background:"var(--background)",color:cr.length>0?"var(--foreground)":"var(--foreground-muted)",display:"flex",alignItems:"center",justifyContent:"space-between",gap:8,padding:"0 10px",fontSize:13,textAlign:"left",cursor:"pointer"},children:[(0,b.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:dq}),(0,b.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:6,flexShrink:0},children:[cr.length>0&&(0,b.jsx)("span",{style:{fontSize:10,fontWeight:700,color:"var(--primary)",background:"var(--primary-subtle)",borderRadius:99,padding:"0 6px"},children:cr.length}),(0,b.jsx)("span",{style:{color:"var(--foreground-muted)",fontSize:11},children:aF?"▲":"▼"})]})]}),aF&&(0,b.jsx)("div",{style:{position:"absolute",top:"calc(100% + 4px)",left:0,right:0,zIndex:60,background:"var(--background)",border:"1px solid var(--border)",borderRadius:8,boxShadow:"0 8px 24px rgba(0,0,0,.12)",maxHeight:240,overflowY:"auto",padding:4},children:ap.map(a=>{let c=cr.includes(a.id);return(0,b.jsxs)("button",{type:"button",onClick:()=>{var b;let c,d;(b=a.id)&&(d=(c=F(cr.includes(b)?cr.filter(a=>a!==b):[...cr,b]))[0]||"",a6(c),aE(d),bD([]),ac&&b7(ac.id,{...b4.current,selectedDatasetId:d,linkedDatasetIds:c,selectedCaseIds:[],checkedCaseIds:[],selectedCaseId:""}))},style:{width:"100%",display:"flex",alignItems:"center",gap:8,padding:"7px 9px",border:"none",borderRadius:5,background:c?"var(--primary-subtle)":"transparent",color:"var(--foreground)",cursor:"pointer",fontSize:12.5,textAlign:"left"},children:[(0,b.jsx)("span",{style:{width:15,height:15,borderRadius:4,border:c?"1px solid var(--primary)":"1px solid var(--border)",background:c?"var(--primary)":"var(--background)",color:"var(--primary-foreground)",display:"inline-flex",alignItems:"center",justifyContent:"center",fontSize:10,fontWeight:700,flexShrink:0},children:c?"✓":""}),(0,b.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:a.name})]},a.id)})})]}),(0,b.jsx)("span",{className:"v2-config-item-hint",children:dy})]}),(0,b.jsxs)("div",{className:"v2-config-item v2-config-item--compact",children:[(0,b.jsx)("span",{className:"v2-config-item-label",children:"zh"===_?"评估器":"Evaluator"}),(0,b.jsxs)("div",{style:{position:"relative"},children:[(0,b.jsxs)("button",{type:"button","aria-label":"zh"===_?"选择评估器":"Select evaluators",className:"v2-config-select",onClick:()=>a4(a=>!a),style:{width:"100%",minHeight:34,border:a1.length>0?"1px solid var(--primary)":"1px solid var(--border)",borderRadius:6,background:"var(--background)",color:a1.length>0?"var(--foreground)":"var(--foreground-muted)",display:"flex",alignItems:"center",justifyContent:"space-between",gap:8,padding:"0 10px",fontSize:13,textAlign:"left",cursor:"pointer"},children:[(0,b.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:dp}),(0,b.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:6,flexShrink:0},children:[a1.length>0&&(0,b.jsx)("span",{style:{fontSize:10,fontWeight:700,color:"var(--primary)",background:"var(--primary-subtle)",borderRadius:99,padding:"0 6px"},children:a1.length}),(0,b.jsx)("span",{style:{color:"var(--foreground-muted)",fontSize:11},children:a3?"▲":"▼"})]})]}),a3&&(0,b.jsx)("div",{style:{position:"absolute",top:"calc(100% + 4px)",left:0,right:0,zIndex:60,background:"var(--background)",border:"1px solid var(--border)",borderRadius:8,boxShadow:"0 8px 24px rgba(0,0,0,.12)",maxHeight:240,overflowY:"auto",padding:4},children:dk.map(a=>{let c=a1.includes(a.id);return(0,b.jsxs)("button",{type:"button",onClick:()=>{var b;let c;(b=a.id)&&(a2(c=G(a1.includes(b)?a1.filter(a=>a!==b):[...a1,b])),a0(c[0]||""),ac&&b7(ac.id,{...b4.current,evaluatorId:c[0]||"",evaluators:c}))},style:{width:"100%",display:"flex",alignItems:"center",gap:8,padding:"7px 9px",border:"none",borderRadius:5,background:c?"var(--primary-subtle)":"transparent",color:"var(--foreground)",cursor:"pointer",fontSize:12.5,textAlign:"left"},children:[(0,b.jsx)("span",{style:{width:15,height:15,borderRadius:4,border:c?"1px solid var(--primary)":"1px solid var(--border)",background:c?"var(--primary)":"var(--background)",color:"var(--primary-foreground)",display:"inline-flex",alignItems:"center",justifyContent:"center",fontSize:10,fontWeight:700,flexShrink:0},children:c?"✓":""}),(0,b.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:a.name})]},a.id)})})]}),(0,b.jsx)("span",{className:"v2-config-item-hint",children:dz})]}),(0,b.jsxs)("div",{className:"v2-config-item v2-config-item--compact",children:[(0,b.jsx)("span",{className:"v2-config-item-label",children:"zh"===_?"对照组 Skill 版本":"Control Skill version"}),(0,b.jsx)(h.Select,{"aria-label":"zh"===_?"选择对照组 Skill 版本":"Select control Skill version",value:ax||bT,onChange:a=>{ay(a),ac&&b7(ac.id,{...b4.current,versionAId:a})},options:dr,active:!!(ax&&ax!==bT),size:"sm",className:"v2-config-select"}),(0,b.jsx)("span",{className:"v2-config-item-hint",children:ds}),(0,b.jsx)("span",{className:"v2-config-item-hint ab-agent-hint",children:dv})]})]}),(0,b.jsx)("div",{style:{borderTop:"1px dotted rgba(0, 0, 0, 0.15)",margin:"16px 0"}}),(0,b.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,fontSize:13,fontWeight:700,color:"#2C2C2A",marginBottom:12},children:[(0,b.jsx)(N,{}),(0,b.jsx)("span",{children:"zh"===_?"输入来源":"Input Source"})]}),(0,b.jsx)("div",{className:"v2-tabs",style:{marginBottom:12},children:(0,b.jsx)("button",{className:`v2-tab ${"dataset"===aB?"active":""}`,onClick:()=>{aC("dataset"),ac&&b7(ac.id,{...b4.current,sourceMode:"dataset"})},children:"zh"===_?"从数据集发起":"From dataset"})}),(0,b.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:6,height:360,overflowY:"auto",marginBottom:12,paddingRight:4},children:[cv.map((a,c)=>{let d=aH===a.id,e=bC.includes(a.id);return(0,b.jsxs)("div",{className:`v2-dataset-row ${d?"current":""}`,onClick:()=>{aI(a.id),ac&&b7(ac.id,{...b4.current,selectedCaseId:a.id})},style:{cursor:"pointer",display:"flex",alignItems:"center",gap:12,padding:"10px 14px",borderRadius:8,border:d?"1px solid #185FA5":"1px solid #E7E5E4",background:d?"#F0F7FF":"white",marginBottom:6,transition:"all 0.2s"},children:[(0,b.jsx)("input",{type:"checkbox",checked:e,onClick:a=>a.stopPropagation(),onChange:()=>{bD(b=>{let c=b.includes(a.id)?b.filter(b=>b!==a.id):[...b,a.id];return ac&&b7(ac.id,{...b4.current,selectedCaseIds:c,checkedCaseIds:c}),c})},style:{width:16,height:16,cursor:"pointer",accentColor:"#185FA5"}}),d?(0,b.jsx)("span",{className:"idx",style:{background:"#185FA5",color:"white",borderColor:"#185FA5",fontWeight:600,fontSize:11,padding:"2px 8px",borderRadius:4},children:"zh"===_?"当前":"Current"}):(0,b.jsx)("span",{className:"idx",style:{fontFamily:"ui-monospace, monospace",fontSize:12},children:String(c+1).padStart(2,"0")}),(0,b.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,b.jsx)("div",{style:{fontSize:13,fontWeight:600,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:a.input}),"trace"===a.sourceType&&(0,b.jsx)("div",{style:{marginTop:4,fontSize:11,color:"#78716C",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:[a.sourceDatasetName?`dataset ${a.sourceDatasetName}`:"",a.sourceUploadId?`upload ${a.sourceUploadId}`:"",a.sourceExecutionSessionId?`exec ${a.sourceExecutionSessionId}`:""].filter(Boolean).join(" · ")})]})]},a.id)}),0===cv.length&&(0,b.jsx)("div",{style:{padding:20,textAlign:"center",fontSize:12,color:"#888780"},children:"zh"===_?"暂无数据用例":"No cases found"})]}),(0,b.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",background:cy>0?"#E1F5EE":"#FEF2F2",border:cy>0?"1px solid #0F6E56":"1px solid #FCA5A5",padding:"8px 16px",borderRadius:8,marginBottom:12,fontSize:12,fontWeight:600,color:cy>0?"#0F6E56":"#991B1B",transition:"all 0.2s"},children:[(0,b.jsx)("span",{children:"zh"===_?`已选样本数:${cy} 个`:`Selected Samples: ${cy}`}),(0,b.jsx)("span",{children:cy>0?"zh"===_?"✓ 将按已选样本执行":"✓ Ready to run selected samples":"zh"===_?"⚠️ 请先选择至少 1 条样本":"⚠️ Select at least one sample"})]}),(0,b.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:16,marginTop:14,paddingTop:14,borderTop:"1px solid var(--border)"},children:[(0,b.jsxs)(g.Button,{variant:"default",size:"default",onClick:cl,disabled:cZ,children:[(0,b.jsx)(k.Play,{})," ",cV]}),(0,b.jsx)("button",{type:"button",className:"ab-stop-run-btn",onClick:ck,"aria-label":"zh"===_?"终止":"Abort",title:"zh"===_?"终止当前 A/B 测试":"Abort current A/B test",disabled:!cT,children:(0,b.jsx)("span",{children:"zh"===_?"终止":"Abort"})}),(0,b.jsxs)("label",{style:{display:"flex",alignItems:"center",gap:8,fontSize:12,fontWeight:700,color:"var(--foreground)"},children:[(0,b.jsx)("span",{children:"zh"===_?"Agent 最大并发数":"Max agent concurrency"}),(0,b.jsx)("select",{value:aL,onChange:a=>{let b=Math.max(1,Number(a.target.value));aM(b),ac&&b7(ac.id,{...b4.current,agentMaxConcurrency:b})},style:{height:32,minWidth:72,border:"1px solid var(--border-dark)",borderRadius:6,padding:"0 8px",fontSize:13,fontWeight:700,cursor:"pointer",background:"var(--card-bg)",color:"var(--foreground)"},children:[1,2,4,8,16,32].map(a=>(0,b.jsx)("option",{value:a,children:a},a))})]}),(0,b.jsx)("div",{style:{fontSize:12,color:"var(--foreground-secondary)",lineHeight:1.4},children:"zh"===_?`当前配置:${cy} 样本 * 2 组 * ${aJ} 轮 = ${2*cy*aJ} 次执行 | 最大并发:${aL}`:`Current Config: ${cy} samples * 2 groups * ${aJ} rounds = ${2*cy*aJ} runs | Max concurrency: ${aL}`})]})]})]}),(0,b.jsxs)("div",{className:"v2-stage-card s1",style:{background:"var(--card-bg)",border:"1px solid var(--border)",marginBottom:0},"data-collapsible":P?"1":void 0,"data-collapsed":P?bh.exec?"1":"0":void 0,children:[(0,b.jsxs)("div",{className:"v2-stage-card-header",style:{borderBottom:"1px solid var(--border)"},onClick:P?()=>bl("exec"):void 0,children:[(0,b.jsx)("div",{className:"v2-stage-num-badge",style:{background:"var(--primary)",color:"var(--primary-foreground)",justifyContent:"center",alignItems:"center"},children:(0,b.jsx)(J,{})}),(0,b.jsxs)("div",{className:"v2-stage-title-block",children:[(0,b.jsx)("div",{className:"v2-stage-card-title",children:(0,b.jsx)("span",{children:"zh"===_?"执行 A/B 测试":"Execute A/B Testing"})}),(0,b.jsx)("div",{className:"v2-stage-card-subtitle",children:"zh"===_?`对照组 (${cq(at.find(a=>a.id===ax)||ax)}) vs 实验组 (${cq(at.find(a=>a.id===az)||az)}) \xb7 每次执行的过程数据`:`Control (${cq(at.find(a=>a.id===ax)||ax)}) vs Experiment (${cq(at.find(a=>a.id===az)||az)}) \xb7 Exposing raw execution steps`})]}),P&&(0,b.jsx)("button",{type:"button",className:"gh-card-chev","aria-label":bh.exec?"zh"===_?"展开":"Expand":"zh"===_?"折叠":"Collapse",onClick:a=>{a.stopPropagation(),bl("exec")}})]}),(0,b.jsx)("div",{className:"v2-stage-card-body",style:{padding:18},children:(0,b.jsxs)("div",{className:"v2-compare-grid",style:{gridTemplateColumns:"1fr 20px 1fr"},children:[(0,b.jsxs)("div",{className:"v2-compare-col baseline ab-col-a",children:[(0,b.jsxs)("div",{className:"v2-col-header",children:[(0,b.jsx)("div",{className:"v2-col-tag a",children:"A"}),(0,b.jsxs)("div",{className:"v2-col-name-block",children:[(0,b.jsx)("div",{className:"v2-col-name",children:"zh"===_?`对照组: ${du(ax||bT)}`:`Control: ${du(ax||bT)}`}),(0,b.jsxs)("div",{className:"v2-col-variant-line",children:[(0,b.jsxs)("span",{className:`v2-skill-state ${ax===bT?"off":"on"} ab-skill-state`,children:["Skill: ",ax===bT?"zh"===_?"无 Skill":"No Skill":`${cz?.name||"cpu-model-query"} ${cq(at.find(a=>a.id===ax)||ax)}`]}),(0,b.jsxs)("span",{className:"ab-agent-state",title:dt(ax||bT),children:["Agent: ",dt(ax||bT)]})]})]}),(0,b.jsx)(f.StatusBadge,{status:cL?"success":cP?"error":cN||"running"===cJ.status?"running":"pending",label:cL?"zh"===_?"完成":"Done":cP?"zh"===_?"失败":"Failed":cN?"zh"===_?"评估中":"Evaluating":"running"===cJ.status?"zh"===_?"执行中":"Running":"zh"===_?"未执行":"Pending"})]}),(0,b.jsxs)("div",{className:"v2-col-body",style:{padding:16},children:[(0,b.jsx)("div",{className:"v2-exec-result",style:{paddingBottom:12},children:cL?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("div",{className:"v2-result-icon success",style:{color:"var(--success)",background:"var(--success-subtle)",width:44,height:44,fontSize:20},children:"✓"}),(0,b.jsx)("div",{className:"v2-result-text",style:{fontSize:14},children:cJ.runsCompleted}),(0,b.jsxs)("div",{className:"v2-result-sub",children:["平均耗时 ",cJ.timeCost," · ",cG,"轮重复"]})]}):cP?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("div",{className:"v2-result-icon",style:{color:"var(--error)",background:"var(--error-subtle)",width:44,height:44,fontSize:20},children:"!"}),(0,b.jsx)("div",{className:"v2-result-text",style:{fontSize:14},children:cJ.runsCompleted}),(0,b.jsx)("div",{className:"v2-result-sub",children:"zh"===_?"存在未完整执行的记录":"Some runs did not finish"})]}):"running"===cJ.status?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("div",{className:"v2-result-icon ab-icon-running",style:{width:44,height:44,fontSize:20},children:"⚡"}),(0,b.jsx)("div",{className:"v2-result-text",style:{fontSize:14},children:cJ.runsCompleted}),(0,b.jsx)("div",{className:"v2-result-sub",children:"zh"===_?"执行记录生成中...":"Generating execution records..."})]}):cN?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("div",{className:"v2-result-icon ab-icon-eval",style:{width:44,height:44,fontSize:20},children:"◌"}),(0,b.jsx)("div",{className:"v2-result-text",style:{fontSize:14},children:cJ.runsCompleted}),(0,b.jsx)("div",{className:"v2-result-sub",children:"zh"===_?"评估记录生成中...":"Generating evaluation records..."})]}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("div",{className:"v2-result-icon ab-icon-pending",style:{width:44,height:44,fontSize:20},children:"⏳"}),(0,b.jsx)("div",{className:"v2-result-text",style:{fontSize:14},children:cJ.runsCompleted}),(0,b.jsx)("div",{className:"v2-result-sub",children:"zh"===_?"等待执行评测":"Awaiting execution"})]})}),(0,b.jsxs)("div",{className:"v2-process-data",children:[(0,b.jsxs)("div",{className:"v2-process-row",children:[(0,b.jsx)("span",{className:"v2-process-label",children:"zh"===_?"Skill 触发":"Skill triggers"}),(0,b.jsx)("span",{className:"v2-process-value text-foreground-muted",children:cJ.triggerRate})]}),(0,b.jsxs)("div",{className:"v2-process-row",children:[(0,b.jsx)("span",{className:"v2-process-label",children:"zh"===_?"工具调用":"Tool calls"}),(0,b.jsx)("span",{className:"v2-process-value font-mono text-[11px] bg-background-secondary rounded px-1.5 py-0.5",children:cJ.toolCall})]}),(0,b.jsxs)("div",{className:"v2-process-row",children:[(0,b.jsx)("span",{className:"v2-process-label",children:"zh"===_?"答案准确性":"Accuracy"}),(0,b.jsx)("span",{className:"v2-process-value text-[var(--error)] font-bold",children:cJ.accuracy})]})]}),(0,b.jsxs)("div",{className:"v2-metric-row",style:{borderRadius:8,overflow:"hidden",marginTop:12},children:[(0,b.jsxs)("div",{className:"v2-metric-cell",children:[(0,b.jsx)("div",{className:"label",children:"zh"===_?"耗时":"Cost"}),(0,b.jsx)("div",{className:"value",children:(0,b.jsx)(i.MetricValue,{value:cJ.timeCost,size:"md"})})]}),(0,b.jsxs)("div",{className:"v2-metric-cell",children:[(0,b.jsx)("div",{className:"label",children:"TOKEN"}),(0,b.jsx)("div",{className:"value",children:(0,b.jsx)(i.MetricValue,{value:cJ.tokenUsage,format:"compact",size:"md"})})]}),(0,b.jsxs)("div",{className:`v2-metric-cell text-center ${"number"==typeof cJ.score?"ab-score-highlight":""}`,children:[(0,b.jsx)("div",{className:"label",children:"zh"===_?"评分":"Score"}),(0,b.jsx)("div",{className:"value",children:(0,b.jsx)(i.MetricValue,{value:"number"==typeof cJ.score?cJ.score:null,size:"md",tone:"number"==typeof cJ.score?"default":"muted"})})]})]})]}),(0,b.jsxs)("div",{className:"v2-col-actions",style:{background:"var(--background-secondary)",borderTop:"1px solid var(--border)",display:"flex",alignItems:"center",gap:8,padding:"8px 12px"},children:[(0,b.jsxs)(g.Button,{variant:"ghost",size:"sm",onClick:()=>aQ({title:"zh"===_?"A 对照组执行记录":"A Control Records",side:"a"}),children:[(0,b.jsx)(l.ExternalLink,{})," ","zh"===_?"执行记录":"Records"]}),(0,b.jsx)(g.Button,{variant:"default",size:"sm",onClick:()=>ci(aH,"a"),children:"zh"===_?"✓ 评测":"Evaluate"}),(0,b.jsx)("span",{className:"v2-trace-id",children:cJ.sessionId})]})]}),(0,b.jsx)("div",{className:"v2-compare-vs",children:(0,b.jsx)("span",{children:"VS"})}),(0,b.jsxs)("div",{className:"v2-compare-col candidate ab-col-b",children:[(0,b.jsxs)("div",{className:"v2-col-header",children:[(0,b.jsx)("div",{className:"v2-col-tag b",children:"B"}),(0,b.jsxs)("div",{className:"v2-col-name-block",children:[(0,b.jsx)("div",{className:"v2-col-name",children:"zh"===_?`实验组: ${du(az||bT)}`:`Experiment: ${du(az||bT)}`}),(0,b.jsxs)("div",{className:"v2-col-variant-line",children:[(0,b.jsxs)("span",{className:`v2-skill-state ${az===bT?"off":"on"} ab-skill-state`,children:["Skill: ",az===bT?"zh"===_?"无 Skill":"No Skill":`${cz?.name||"cpu-model-query"} ${cq(at.find(a=>a.id===az)||az)}`]}),(0,b.jsxs)("span",{className:"ab-agent-state",title:dt(az||bT),children:["Agent: ",dt(az||bT)]})]})]}),(0,b.jsx)(f.StatusBadge,{status:cM?"success":cQ?"error":cO||"running"===cK.status?"running":"pending",label:cM?"zh"===_?"完成":"Done":cQ?"zh"===_?"失败":"Failed":cO?"zh"===_?"评估中":"Evaluating":"running"===cK.status?"zh"===_?"执行中":"Running":"zh"===_?"未执行":"Pending"})]}),(0,b.jsxs)("div",{className:"v2-col-body",style:{padding:16},children:[(0,b.jsx)("div",{className:"v2-exec-result",style:{paddingBottom:12},children:cM?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("div",{className:"v2-result-icon success",style:{color:"var(--success)",background:"var(--success-subtle)",width:44,height:44,fontSize:20},children:"✓"}),(0,b.jsx)("div",{className:"v2-result-text",style:{fontSize:14},children:cK.runsCompleted}),(0,b.jsxs)("div",{className:"v2-result-sub",children:["平均耗时 ",cK.timeCost," · ",cG,"轮重复"]})]}):cQ?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("div",{className:"v2-result-icon",style:{color:"var(--error)",background:"var(--error-subtle)",width:44,height:44,fontSize:20},children:"!"}),(0,b.jsx)("div",{className:"v2-result-text",style:{fontSize:14},children:cK.runsCompleted}),(0,b.jsx)("div",{className:"v2-result-sub",children:"zh"===_?"存在未完整执行的记录":"Some runs did not finish"})]}):"running"===cK.status?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("div",{className:"v2-result-icon ab-icon-running",style:{width:44,height:44,fontSize:20},children:"⚡"}),(0,b.jsx)("div",{className:"v2-result-text",style:{fontSize:14},children:cK.runsCompleted}),(0,b.jsx)("div",{className:"v2-result-sub",children:"zh"===_?"执行记录生成中...":"Generating execution records..."})]}):cO?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("div",{className:"v2-result-icon ab-icon-eval",style:{width:44,height:44,fontSize:20},children:"◌"}),(0,b.jsx)("div",{className:"v2-result-text",style:{fontSize:14},children:cK.runsCompleted}),(0,b.jsx)("div",{className:"v2-result-sub",children:"zh"===_?"评估记录生成中...":"Generating evaluation records..."})]}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("div",{className:"v2-result-icon ab-icon-pending",style:{width:44,height:44,fontSize:20},children:"⏳"}),(0,b.jsx)("div",{className:"v2-result-text",style:{fontSize:14},children:cK.runsCompleted}),(0,b.jsx)("div",{className:"v2-result-sub",children:"zh"===_?"等待执行评测":"Awaiting execution"})]})}),(0,b.jsxs)("div",{className:"v2-process-data",children:[(0,b.jsxs)("div",{className:"v2-process-row",children:[(0,b.jsx)("span",{className:"v2-process-label",children:"zh"===_?"Skill 触发":"Skill triggers"}),(0,b.jsx)("span",{className:"v2-process-value text-[var(--success)] font-bold",children:cK.triggerRate})]}),(0,b.jsxs)("div",{className:"v2-process-row",children:[(0,b.jsx)("span",{className:"v2-process-label",children:"zh"===_?"工具调用":"Tool calls"}),(0,b.jsx)("span",{className:"v2-process-value font-mono text-[11px] bg-background-secondary rounded px-1.5 py-0.5",children:cK.toolCall})]}),(0,b.jsxs)("div",{className:"v2-process-row",children:[(0,b.jsx)("span",{className:"v2-process-label",children:"zh"===_?"答案准确性":"Accuracy"}),(0,b.jsx)("span",{className:"v2-process-value text-[var(--success)] font-bold",children:cK.accuracy})]})]}),(0,b.jsxs)("div",{className:"v2-metric-row",style:{borderRadius:8,overflow:"hidden",marginTop:12},children:[(0,b.jsxs)("div",{className:"v2-metric-cell",children:[(0,b.jsx)("div",{className:"label",children:"zh"===_?"耗时":"Cost"}),(0,b.jsx)("div",{className:"value",children:(0,b.jsx)(i.MetricValue,{value:cK.timeCost,size:"md"})})]}),(0,b.jsxs)("div",{className:"v2-metric-cell",children:[(0,b.jsx)("div",{className:"label",children:"TOKEN"}),(0,b.jsx)("div",{className:"value",children:(0,b.jsx)(i.MetricValue,{value:cK.tokenUsage,format:"compact",size:"md"})})]}),(0,b.jsxs)("div",{className:`v2-metric-cell text-center ${"number"==typeof cK.score?"ab-score-highlight":""}`,children:[(0,b.jsx)("div",{className:"label",children:"zh"===_?"评分":"Score"}),(0,b.jsx)("div",{className:"value",children:(0,b.jsx)(i.MetricValue,{value:"number"==typeof cK.score?cK.score:null,size:"md",tone:"number"==typeof cK.score?"success":"muted"})})]})]})]}),(0,b.jsxs)("div",{className:"v2-col-actions",style:{background:"var(--background-secondary)",borderTop:"1px solid var(--border)",display:"flex",alignItems:"center",gap:8,padding:"8px 12px"},children:[(0,b.jsxs)(g.Button,{variant:"ghost",size:"sm",onClick:()=>aQ({title:"zh"===_?"B 实验组执行记录":"B Experiment Records",side:"b"}),children:[(0,b.jsx)(l.ExternalLink,{})," ","zh"===_?"执行记录":"Records"]}),(0,b.jsx)(g.Button,{variant:"default",size:"sm",onClick:()=>ci(aH,"b"),children:"zh"===_?"✓ 评测":"Evaluate"}),(0,b.jsx)("span",{className:"v2-trace-id",children:cK.sessionId})]})]})]})})]}),(0,b.jsxs)("div",{className:"v2-stage-card s3",style:{background:"white",border:"0.5px solid rgba(0,0,0,0.08)",marginBottom:0,borderLeft:"4px solid #BA7517"},"data-collapsible":P?"1":void 0,"data-collapsed":P?bh.result?"1":"0":void 0,children:[(0,b.jsxs)("div",{className:"v2-stage-card-header",style:{borderBottom:"0.5px solid rgba(0,0,0,0.08)"},onClick:P?()=>bl("result"):void 0,children:[(0,b.jsx)("div",{className:"v2-stage-num-badge",style:{background:"#BA7517",color:"white",justifyContent:"center",alignItems:"center"},children:(0,b.jsx)(K,{})}),(0,b.jsxs)("div",{className:"v2-stage-title-block",children:[(0,b.jsxs)("div",{className:"v2-stage-card-title",style:{display:"flex",justifyContent:"space-between",width:"100%",alignItems:"center"},children:[(0,b.jsx)("span",{children:"zh"===_?"测评结果":"Evaluation Result"}),(0,b.jsx)("span",{className:"v2-stage-pill active",style:{background:cW?"#E1F5EE":"#FAEEDA",color:cW?"#0F6E56":"#854F0B",fontSize:11},children:cW?"zh"===_?"✓ 可决策":"Ready":"zh"===_?"⚡ 等待决策":"Waiting"})]}),(0,b.jsx)("div",{className:"v2-stage-card-subtitle",children:c5})]}),P&&(0,b.jsx)("button",{type:"button",className:"gh-card-chev","aria-label":bh.result?"zh"===_?"展开":"Expand":"zh"===_?"折叠":"Collapse",onClick:a=>{a.stopPropagation(),bl("result")}})]}),(0,b.jsx)("div",{className:"v2-stage-card-body",style:{padding:24,display:"flex",flexDirection:"column",gap:16},children:P?(()=>{let a="direct-release"===c3.decision?"pass":"reject"===c3.decision?"reject":"monitor-release"===c3.decision?"warn":"idle",c=(a,b=1)=>"number"==typeof a&&Number.isFinite(a)?a.toFixed(b).replace(/\.0$/,""):"—",d=(a,b=1)=>"number"==typeof a&&Number.isFinite(a)?(a>=0?"+":"")+a.toFixed(b).replace(/\.0$/,"")+"%":"—",e=(a,b=1)=>"number"==typeof a&&Number.isFinite(a)?(a>0?"+":"")+a.toFixed(b).replace(/\.0$/,""):"—",f=at.find(a=>a.id===az),g=f?`v${f.semanticVersion||f.version}`:"",h=ax===bT?"zh"===_?"无 Skill":"No Skill":`v${cq(at.find(a=>a.id===ax)||ax)}`,i=az===bT?"zh"===_?"无 Skill":"No Skill":"zh"===_?"开 Skill":"With Skill",j=c3.capability,k=c3.cost,l=c3.stability;if(!cW)return(0,b.jsxs)("div",{className:"gh-verdict-empty",children:[(0,b.jsxs)("div",{className:"gh-verdict-empty-title",children:["⚡ ","zh"===_?"等待评分":"Waiting for scoring"]}),(0,b.jsx)("div",{className:"gh-verdict-empty-sub",children:"zh"===_?`已收集 ${c3.sampleSize} 条 \xb7 等待 A/B 两侧执行 + 评测全部完成`:`Collected ${c3.sampleSize} so far \xb7 waiting for both sides to finish`})]});let m=[{key:"capability",label:"zh"===_?"能力":"Capability",desc:"zh"===_?"Skill 让 Agent 多做成了多少事":"How much the skill lifts the agent",data:j},{key:"cost",label:"zh"===_?"成本":"Cost",desc:"zh"===_?"多花了多少 token / 时间":"Extra tokens / time spent",data:k},{key:"stability",label:"zh"===_?"稳定性":"Stability",desc:"zh"===_?"该触发时触发了吗,结果稳吗":"Triggers correctly + stable output",data:l}];return(0,b.jsxs)("div",{className:"gh-verdict-block",children:[(0,b.jsxs)("div",{className:"gh-rc",children:[(0,b.jsxs)("span",{className:"gh-rc-skill",children:[cz?.name||"—",g&&(0,b.jsx)("span",{className:"gh-rc-ver",children:g})]}),(0,b.jsx)("span",{className:"gh-rc-sep",children:"·"}),(0,b.jsxs)("span",{className:"gh-rc-ab",children:[(0,b.jsx)("span",{className:"gh-rc-tag a",children:"A"}),h,(0,b.jsx)("span",{className:"gh-rc-vs",children:"zh"===_?"对比":"vs"}),(0,b.jsx)("span",{className:"gh-rc-tag b",children:"B"}),i]}),(0,b.jsx)("span",{className:"gh-rc-policy",children:c3.policyVersion})]}),(0,b.jsxs)("div",{className:`gh-decision ${a}`,children:[(0,b.jsx)("div",{className:"gh-decision-verdict",children:(0,b.jsxs)("div",{className:"gh-decision-score",children:["zh"===_?"综合":"Total"," ",(0,b.jsx)("b",{children:c(c3.totalScore,1)})," / 100"]})}),(0,b.jsxs)("div",{className:"gh-decision-body",children:[(0,b.jsx)("div",{className:"gh-decision-headline",children:c3.rejectCategory?(0,b.jsxs)(b.Fragment,{children:["zh"===_?"短板在 ":"Bottleneck: ",(0,b.jsx)("span",{className:"hl",children:"capability"===c3.rejectCategory?"zh"===_?"能力":"Capability":"cost"===c3.rejectCategory?"zh"===_?"成本":"Cost":"zh"===_?"稳定性":"Stability"}),"capability"===c3.rejectCategory&&(0,b.jsxs)(b.Fragment,{children:["zh"===_?":评测均分由 ":" — eval avg ",(0,b.jsxs)("span",{className:"num",children:[c(j.avgEvalScoreA,1)," → ",c(j.avgEvalScoreB,1)]}),"zh"===_?"(Δ ":" (Δ ",(0,b.jsx)("span",{className:"num",children:e(j.deltaScore,1)}),"zh"===_?")":")"]}),"cost"===c3.rejectCategory&&(0,b.jsxs)(b.Fragment,{children:["zh"===_?":ΔToken ":" — ΔToken ",(0,b.jsx)("span",{className:"num",children:d(k.deltaTokenPct,1)}),"zh"===_?",耗时 ":", duration ",(0,b.jsx)("span",{className:"num",children:d(k.deltaDurationPct,1)})]}),"stability"===c3.rejectCategory&&(0,b.jsxs)(b.Fragment,{children:["zh"===_?":触发率 ":" — invoke ",(0,b.jsxs)("span",{className:"num",children:[c(l.invokeRate,0),"%"]})]})]}):(0,b.jsx)("span",{children:"zh"===_?`全维通过 \xb7 综合 ${c(c3.totalScore,1)} / 100`:`All dims pass \xb7 total ${c(c3.totalScore,1)} / 100`})}),c6&&(0,b.jsxs)("div",{className:"gh-decision-next",children:[(0,b.jsx)("b",{children:"zh"===_?"下一步":"Next"})," · ",c6]})]}),(0,b.jsxs)("div",{className:"gh-decision-actions",children:[(0,b.jsx)("button",{type:"button",className:"gh-btn",onClick:()=>aQ({title:"zh"===_?"B 实验组执行记录":"B Experiment Records",side:"b"}),children:"zh"===_?"查看 Trace":"View Trace"}),(0,b.jsx)("button",{type:"button",className:"gh-btn is-dark",onClick:cl,disabled:cZ,children:cT?"zh"===_?"执行中…":"Running…":`▶ ${"zh"===_?"复测":"Re-run"}`})]})]}),(0,b.jsxs)("div",{className:"gh-dims",children:[(0,b.jsxs)("div",{className:"gh-dims-row gh-dims-head",children:[(0,b.jsx)("div",{children:"zh"===_?"维度":"DIM"}),(0,b.jsx)("div",{children:"zh"===_?"分数":"SCORE"}),(0,b.jsx)("div",{children:"0 · 50 · 75 · 100"}),(0,b.jsx)("div",{children:"zh"===_?"关键证据":"EVIDENCE"})]}),m.map(a=>{let f,g="green"===(f=a.data.tone)?"good":"amber"===f?"warn":"red"===f?"fail":"idle",h="number"==typeof a.data.score?a.data.score:null;return(0,b.jsxs)("div",{className:"gh-dims-row",children:[(0,b.jsxs)("div",{className:"gh-dim-name-cell",children:[(0,b.jsxs)("div",{className:"gh-dim-name-row",children:[(0,b.jsx)("span",{className:"gh-dim-name",children:a.label}),(0,b.jsx)("span",{className:`gh-dim-pill ${g}`,children:"zh"===_&&"拒绝"===a.data.label?"高风险":a.data.label})]}),(0,b.jsx)("span",{className:"gh-dim-desc",children:a.desc})]}),(0,b.jsxs)("div",{className:`gh-dim-score ${g}`,children:[null==h?"—":c(h,1),(0,b.jsx)("span",{className:"gh-dim-outof",children:"/ 100"})]}),(0,b.jsx)("div",{className:"gh-dim-bar-cell",children:(0,b.jsx)("div",{className:"gh-dim-bar-track",children:(0,b.jsx)("div",{className:`gh-dim-bar-fill ${g}`,style:{width:`${Math.max(0,Math.min(100,h??0))}%`}})})}),(0,b.jsxs)("div",{className:"gh-dim-evidence",children:["capability"===a.key&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("span",{className:"row",children:["A ",(0,b.jsx)("span",{className:"num",children:c(j.avgEvalScoreA,1)})," ",(0,b.jsx)("span",{className:"arrow",children:"→"})," B ",(0,b.jsx)("span",{className:"num",children:c(j.avgEvalScoreB,1)})]}),(0,b.jsxs)("span",{className:"row",children:["zh"===_?"评分变化":"Δscore"," ",(0,b.jsx)("span",{className:`delta ${(j.deltaScore??0)>=0?"up":"down"}`,children:e(j.deltaScore,1)})]})]}),"cost"===a.key&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("span",{className:"row",children:["ΔToken ",(0,b.jsx)("span",{className:`delta ${(k.deltaTokenPct??0)<=0?"up":"down"}`,children:d(k.deltaTokenPct,1)})," · ","zh"===_?"耗时":"Duration"," ",(0,b.jsx)("span",{className:`delta ${(k.deltaDurationPct??0)<=0?"up":"down"}`,children:d(k.deltaDurationPct,1)})]}),"number"==typeof k.baseCost&&"number"==typeof k.score&&(0,b.jsxs)("span",{className:"row",children:["zh"===_?"能力耦合":"Capability coupling"," ",(0,b.jsx)("span",{className:`delta ${k.score-k.baseCost>=0?"up":"down"}`,children:e(k.score-k.baseCost,0)})]})]}),"stability"===a.key&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("span",{className:"row",children:["zh"===_?"触发率":"Invoke"," ",(0,b.jsxs)("span",{className:"num",children:[c(l.invokeRate,0),"%"]})]}),(0,b.jsxs)("span",{className:"row",children:["zh"===_?"方差":"Variance"," ",l.varianceComputable?(0,b.jsx)("span",{className:"num",children:c(l.variance,2)}):(0,b.jsxs)(b.Fragment,{children:["— (R=",c3.repeatRounds,")"]})]})]})]})]},a.key)})]}),(0,b.jsxs)("div",{className:`gh-raw${bm?"":" is-collapsed"}`,children:[(0,b.jsxs)("button",{type:"button",className:"gh-raw-head",onClick:()=>bn(a=>!a),children:[(0,b.jsx)("span",{className:"gh-raw-chev"}),(0,b.jsx)("span",{children:"zh"===_?"原始数据与计算公式":"Raw data & formulas"}),(0,b.jsx)("span",{className:"gh-raw-formula",children:"min(capability, cost, stability)"})]}),(0,b.jsx)("div",{className:"gh-raw-body",children:(0,b.jsxs)("div",{className:"gh-raw-grid",children:[(0,b.jsxs)("div",{className:"gh-raw-card",children:[(0,b.jsxs)("div",{className:"gh-raw-card-head",children:[(0,b.jsx)("span",{className:"gh-raw-card-title",children:"zh"===_?"能力":"Capability"}),(0,b.jsx)("span",{className:"gh-raw-card-tag",children:"capability"})]}),(0,b.jsxs)("div",{className:"kv",children:[(0,b.jsx)("span",{className:"k",children:"zh"===_?"评测均分":"Eval avg"}),(0,b.jsx)("span",{className:"a",children:c(j.avgEvalScoreA,1)}),(0,b.jsx)("span",{className:"b",children:c(j.avgEvalScoreB,1)})]}),(0,b.jsxs)("div",{className:"kv",children:[(0,b.jsx)("span",{className:"k",children:"zh"===_?"通过率":"Pass rate"}),(0,b.jsxs)("span",{className:"a",children:[c(j.passRateA,1),"%"]}),(0,b.jsxs)("span",{className:"b",children:[c(j.passRateB,1),"%"]})]}),(0,b.jsxs)("div",{className:"delta",children:[(0,b.jsx)("span",{className:"k",children:"zh"===_?"评分变化":"Δscore"}),(0,b.jsx)("span",{className:`v ${(j.deltaScore??0)>=0?"up":"down"}`,children:e(j.deltaScore,1)})]}),j.breakdown?.formula&&(0,b.jsx)("div",{className:"formula",children:j.breakdown.formula})]}),(0,b.jsxs)("div",{className:"gh-raw-card",children:[(0,b.jsxs)("div",{className:"gh-raw-card-head",children:[(0,b.jsx)("span",{className:"gh-raw-card-title",children:"zh"===_?"成本":"Cost"}),(0,b.jsx)("span",{className:"gh-raw-card-tag",children:"cost"})]}),(0,b.jsxs)("div",{className:"kv",children:[(0,b.jsx)("span",{className:"k",children:"Token"}),(0,b.jsx)("span",{className:"a",children:c(k.avgTokensA,0)}),(0,b.jsx)("span",{className:"b",children:c(k.avgTokensB,0)})]}),(0,b.jsxs)("div",{className:"kv",children:[(0,b.jsxs)("span",{className:"k",children:["zh"===_?"耗时":"Duration","(s)"]}),(0,b.jsx)("span",{className:"a",children:c(k.avgDurationA,1)}),(0,b.jsx)("span",{className:"b",children:c(k.avgDurationB,1)})]}),(0,b.jsxs)("div",{className:"kv",children:[(0,b.jsx)("span",{className:"k",children:"zh"===_?"步数":"Steps"}),(0,b.jsx)("span",{className:"a",children:c(k.avgStepsA,1)}),(0,b.jsx)("span",{className:"b",children:c(k.avgStepsB,1)})]}),(0,b.jsxs)("div",{className:"delta",children:[(0,b.jsx)("span",{className:"k",children:"ΔToken"}),(0,b.jsx)("span",{className:`v ${(k.deltaTokenPct??0)<=0?"up":"down"}`,children:d(k.deltaTokenPct,1)})]}),k.breakdown?.formula&&(0,b.jsx)("div",{className:"formula",children:k.breakdown.formula})]}),(0,b.jsxs)("div",{className:"gh-raw-card",children:[(0,b.jsxs)("div",{className:"gh-raw-card-head",children:[(0,b.jsx)("span",{className:"gh-raw-card-title",children:"zh"===_?"稳定性":"Stability"}),(0,b.jsx)("span",{className:"gh-raw-card-tag",children:"stability"})]}),(0,b.jsxs)("div",{className:"kv",children:[(0,b.jsx)("span",{className:"k",children:"zh"===_?"触发率":"Invoke rate"}),(0,b.jsx)("span",{className:"a",children:"—"}),(0,b.jsxs)("span",{className:"b",children:[c(l.invokeRate,0),"%"]})]}),(0,b.jsxs)("div",{className:"kv",children:[(0,b.jsx)("span",{className:"k",children:"zh"===_?"方差":"Variance"}),(0,b.jsx)("span",{className:"a",children:"—"}),(0,b.jsx)("span",{className:"b",children:l.varianceComputable?c(l.variance,3):`— (R=${c3.repeatRounds})`})]}),l.dataQualityIssue&&(0,b.jsxs)("div",{className:"delta",children:[(0,b.jsx)("span",{className:"k",children:"zh"===_?"告警":"Warning"}),(0,b.jsx)("span",{className:"v warn",children:l.dataQualityIssue})]}),l.breakdown?.formula&&(0,b.jsx)("div",{className:"formula",children:l.breakdown.formula})]}),(0,b.jsxs)("div",{className:"gh-raw-card",children:[(0,b.jsxs)("div",{className:"gh-raw-card-head",children:[(0,b.jsx)("span",{className:"gh-raw-card-title",children:"zh"===_?"综合(短板原则)":"Verdict (min)"}),(0,b.jsx)("span",{className:"gh-raw-card-tag",children:"verdict"})]}),(0,b.jsxs)("div",{className:"kv",children:[(0,b.jsx)("span",{className:"k",children:"capability"}),(0,b.jsx)("span",{className:"b",style:{color:"var(--gh-st-fail)"},children:c(j.score,1)})]}),(0,b.jsxs)("div",{className:"kv",children:[(0,b.jsx)("span",{className:"k",children:"cost"}),(0,b.jsx)("span",{className:"b",style:{color:"var(--gh-st-warn)"},children:c(k.score,1)})]}),(0,b.jsxs)("div",{className:"kv",children:[(0,b.jsx)("span",{className:"k",children:"stability"}),(0,b.jsx)("span",{className:"b",style:{color:"var(--gh-st-done)"},children:c(l.score,1)})]}),c3.hardGates.length>0&&(0,b.jsxs)("div",{className:"delta",children:[(0,b.jsx)("span",{className:"k",children:"zh"===_?"命中 hard gate":"Hard gates"}),(0,b.jsx)("span",{className:"v down",children:c3.hardGates.map(a=>a.label).join("、")})]}),(0,b.jsxs)("div",{className:"formula",children:["verdict = min(capability, cost, stability) = ",c(c3.totalScore,1)," → ",c3.gradeLabel||c3.grade]})]})]})})]})]})})():(0,b.jsx)(B,{decisionReady:cW,abScoring:c3,sampleSize:c3.sampleSize,repeatRounds:c3.repeatRounds,recommendedSampleSize:q.DEFAULT_AB_SCORING_POLICY.recommendedSampleSize,policy:q.DEFAULT_AB_SCORING_POLICY,decisionTitle:c4,decisionAdvice:c6,onViewTrace:()=>aQ({title:"zh"===_?"B 实验组执行记录":"B Experiment Records",side:"b"}),locale:_,toneColor:a=>"green"===a?"#0F6E56":"red"===a?"#DC2626":"amber"===a?"#BA7517":"#5F5E5A",toneBg:a=>"green"===a?"#E1F5EE":"red"===a?"#FEE2E2":"amber"===a?"#FAEEDA":"#F5F4EE"})})]})]}),bf&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("div",{className:"d-drawer-mask",onClick:()=>bg(!1)}),(0,b.jsx)("div",{className:"d-history-drawer",children:(0,b.jsxs)("div",{className:"d-history-panel",children:[(0,b.jsxs)("div",{className:"d-history-head",children:[(0,b.jsxs)("div",{className:"d-history-head-title",children:[(0,b.jsx)(I,{}),"zh"===_?"历史任务":"Task History",(0,b.jsxs)("span",{style:{fontWeight:400,color:"var(--ink-4)",fontSize:11,marginLeft:6},children:[co.length,"zh"===_?" 条":" tasks"]})]}),(0,b.jsx)("button",{className:"d-drawer-close",onClick:()=>bg(!1),children:"×"})]}),(0,b.jsxs)("div",{className:"d-history-body",children:[(0,b.jsxs)("button",{type:"button",onClick:()=>{cn(),bg(!1)},style:{width:"100%",textAlign:"left",padding:"10px 12px",borderRadius:8,border:"1px dashed var(--accent)",background:"var(--accent-soft)",color:"var(--accent)",fontSize:13,fontWeight:600,cursor:"pointer",marginBottom:10},children:["+ ","zh"===_?"新建 A/B 任务":"New A/B Task"]}),0===co.length?(0,b.jsx)("div",{style:{padding:"32px 16px",textAlign:"center",color:"var(--ink-4)",fontSize:12},children:"zh"===_?"暂无历史任务":"No task history"}):co.slice().reverse().map(a=>(0,b.jsxs)("div",{className:"d-history-item",style:ac?.id===a.id?{borderColor:"var(--accent)",background:"var(--accent-soft)"}:{},onClick:()=>{C&&a.skillId!==C&&a.configJson?.skillId!==C?bW(C):b_(a),bg(!1)},children:[(0,b.jsxs)("div",{className:"d-history-item-top",children:[(0,b.jsx)("div",{className:"d-history-item-title",style:ac?.id===a.id?{color:"var(--accent)"}:{},children:a.taskName}),(0,b.jsx)("span",{className:"d-history-item-id",children:new Date(a.createdAt).toLocaleString("zh"===_?"zh-CN":"en-US",{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})})]}),a.configJson?.taskDescription&&(0,b.jsx)("div",{className:"d-history-item-query",children:a.configJson.taskDescription})]},a.id))]})]})})]}),a7&&(0,b.jsx)("div",{className:"d-modal-mask",onClick:()=>a8(!1),children:(0,b.jsxs)("div",{className:"d-modal",style:{width:440},onClick:a=>a.stopPropagation(),children:[(0,b.jsxs)("div",{className:"d-modal-head",children:[(0,b.jsx)("div",{className:"d-modal-title",children:"zh"===_?"新建数据集":"New Dataset"}),(0,b.jsx)("button",{className:"d-modal-close",onClick:()=>a8(!1),children:"×"})]}),(0,b.jsxs)("div",{className:"d-modal-body",children:[(0,b.jsxs)("div",{className:"gray-field",children:[(0,b.jsx)("div",{className:"gray-field-label",children:"zh"===_?"数据集名称":"Dataset Name"}),(0,b.jsx)("input",{className:"gray-input",value:a9,onChange:a=>ba(a.target.value),onKeyDown:a=>{"Enter"!==a.key||a.nativeEvent.isComposing||cp(),"Escape"===a.key&&a8(!1)},placeholder:"zh"===_?"请输入数据集名称…":"Enter dataset name…",autoFocus:!0})]}),(0,b.jsx)("div",{style:{marginTop:10,fontSize:12,color:"var(--ink-3)",lineHeight:1.5},children:"zh"===_?"创建后将自动关联到当前评测任务,可在数据集管理中添加测试用例。":"The dataset will be linked to the current task. Add test cases in Dataset Management."})]}),(0,b.jsxs)("div",{className:"d-modal-foot",children:[(0,b.jsx)("button",{className:"d-btn sm",onClick:()=>a8(!1),children:"zh"===_?"取消":"Cancel"}),(0,b.jsx)("button",{className:"d-btn sm primary",onClick:cp,disabled:!a9.trim()||bb,children:bb?"zh"===_?"创建中…":"Creating…":"zh"===_?"创建":"Create"})]})]})}),(0,b.jsx)(s.NewEvaluationBatchDialog,{open:bq,user:aa||"",defaultTitle:ac?.taskName,evaluators:a1,onClose:()=>br(!1),onCreated:b9}),aN&&(0,b.jsx)("div",{className:"output-modal-overlay",onClick:()=>aO(null),children:(0,b.jsxs)("div",{className:"output-modal",onClick:a=>a.stopPropagation(),children:[(0,b.jsxs)("div",{className:"output-modal-header",children:[(0,b.jsx)("span",{className:"output-modal-title",children:aN.title}),(0,b.jsx)("button",{className:"output-modal-close",onClick:()=>aO(null),"aria-label":"close",children:"×"})]}),(0,b.jsx)("pre",{className:"output-modal-body",children:aN.content||("zh"===_?"(空)":"(empty)")})]})}),aP&&(0,b.jsx)("div",{className:"output-modal-overlay",onClick:()=>aQ(null),children:(0,b.jsxs)("div",{className:"output-modal",style:{width:"min(980px, calc(100vw - 48px))",maxHeight:"82vh"},onClick:a=>a.stopPropagation(),children:[(0,b.jsxs)("div",{className:"output-modal-header",children:[(0,b.jsx)("span",{className:"output-modal-title",children:aP.title}),(0,b.jsx)("button",{className:"output-modal-close",onClick:()=>aQ(null),"aria-label":"close",children:"×"})]}),(0,b.jsxs)("div",{style:{padding:16,display:"flex",flexDirection:"column",gap:14},children:[(0,b.jsx)("div",{style:{color:"#5F5E5A",fontSize:13},children:"zh"===_?"仅展示当前组所有轮次的执行 session id 与评估 session id。点击任一 session id 可跳转链路详情。":"Execution session ids and evaluation session ids for this group only. Click any session id to open its trace detail."}),(R=Q=aP.side,Y=(cE.length>0?cE:cu?.id?[cu.id]:[]).flatMap(a=>(bA[a]?.[R]?.runs||[]).map(b=>({caseId:a,roundIndex:b.roundIndex||b.runIndex,executionTraceId:b.sessionId||"",evaluationTraceId:b.evaluationTraceId||"",evaluatorRunId:b.evaluatorRunId||"",evaluationResultId:b.evaluationResultId||"",evaluations:b.evaluations||[],status:b.status,score:b.score,failureType:b.failureType,failureDetail:b.failureDetail,output:b.output}))),Z="a"===Q?"#BA7517":"#1D9E75",$="a"===Q?"zh"===_?"A 对照组":"A Control":"zh"===_?"B 实验组":"B Experiment",(0,b.jsxs)("div",{style:{border:"1px solid #E7E5E4",borderRadius:8,overflow:"hidden",background:"white"},children:[(0,b.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",padding:"10px 12px",background:"#FAFAF7",borderBottom:"1px solid #E7E5E4"},children:[(0,b.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,fontWeight:700,color:"#2C2C2A"},children:[(0,b.jsx)("span",{style:{width:22,height:22,borderRadius:6,background:Z,color:"white",display:"inline-flex",alignItems:"center",justifyContent:"center",fontSize:12},children:Q.toUpperCase()}),$]}),(0,b.jsxs)("span",{style:{fontSize:12,color:"#888780"},children:[Y.length," traces"]})]}),0===Y.length?(0,b.jsx)("div",{style:{padding:14,color:"#888780",fontSize:13},children:"zh"===_?"暂无执行记录":"No execution records yet"}):(0,b.jsxs)("div",{style:{display:"flex",flexDirection:"column",maxHeight:420,overflowY:"auto"},children:[(0,b.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"140px 1fr 1fr 90px 60px 70px",gap:12,padding:"8px 12px",background:"#FAFAF7",borderBottom:"1px solid #E7E5E4",fontSize:11,fontWeight:700,color:"#5F5E5A",textTransform:"none",letterSpacing:0,position:"sticky",top:0,zIndex:1},children:[(0,b.jsx)("div",{children:"Case ID"}),(0,b.jsx)("div",{children:"zh"===_?"执行 session id":"Execution session id"}),(0,b.jsx)("div",{children:"zh"===_?"评估器":"Evaluators"}),(0,b.jsx)("div",{children:"zh"===_?"评测结果":"Eval result"}),(0,b.jsx)("div",{style:{textAlign:"right"},children:"zh"===_?"分数":"Score"}),(0,b.jsx)("div",{style:{textAlign:"right"},children:"zh"===_?"操作":"Action"})]}),Y.map((a,c)=>{let d,e,f,g,h,i,j=!!a.failureType,k=j||"fail"!==a.status?"":a.output||"评测失败",l=a.evaluations&&a.evaluations.length>0?a.evaluations:a.evaluatorRunId?[{evaluatorId:a_,evaluatorName:dl.get(a_)||a_,status:"pass"===a.status?"done":"fail"!==a.status||j?"evaluating"===a.status?"running":"pending":"failed",evaluatorRunId:a.evaluatorRunId,evaluationTraceId:a.evaluationTraceId,score:a.score,errorMessage:k}]:[],{exec:m,evaluation:n}=function(a){let b,{status:c,hasExecFailure:d,evaluations:e,evaluatorRunId:f}=a,g=c??"pending",h=e||[],i=!!f||h.length>0,j=h.some(a=>"pending"===a.status||"running"===a.status),k=h.some(a=>"failed"===a.status),l=h.some(a=>"done"===a.status);return(b="fail"===g&&d&&!i?{label:"执行失败",tone:"fail"}:"pending"===g?{label:"排队中",tone:"pending"}:"running"===g?{label:"执行中",tone:"running"}:{label:"执行完成",tone:"done"},"pending"===g||"running"===g||"fail"===g&&d)?{exec:b,evaluation:null}:{exec:b,evaluation:j?{label:"评测中",tone:"running"}:"executed"!==g||i?l&&!k?{label:"已评测",tone:"done"}:k?{label:"评测失败",tone:"fail"}:"evaluating"===g?{label:"评测中",tone:"running"}:"pass"===g?{label:"已评测",tone:"done"}:{label:"评测失败",tone:"fail"}:{label:"待评测",tone:"pending"}}}({status:a.status,hasExecFailure:j,evaluations:l,evaluatorRunId:a.evaluatorRunId}),o=j?`[${a.failureType}] ${a.failureDetail||a.output||"执行失败"}`:"",p=!j&&("fail"===a.status||l.some(a=>"failed"===a.status))?k||l.find(a=>"failed"===a.status)?.errorMessage||"评测失败":"",q=H({evaluations:l},a1),r=ct.get(a.caseId),s=r?.datasetId||ac?.configJson?.selectedDatasetId,t=r?.sourceType==="trace"?r.sourceExecutionSessionId?`/trace?taskId=${encodeURIComponent(r.sourceExecutionSessionId)}`:null:s&&a.caseId?`/dataset/${encodeURIComponent(s)}?case=${encodeURIComponent(a.caseId)}`:null,u=(l||[]).find(a=>!!a.evaluationResultId&&!!a.evaluatorRunId&&"done"===a.status)||(l||[]).find(a=>!!a.evaluationResultId&&!!a.evaluatorRunId),v=u?.evaluatorRunId||a.evaluatorRunId,w=u?.evaluationResultId||a.evaluationResultId,x=a.executionTraceId&&v&&w?(d=new URLSearchParams({runId:v,resultId:w}),s&&d.set("datasetId",s),`/eval/trajectory/${encodeURIComponent(a.executionTraceId)}?${d.toString()}`):"",y=l.some(a=>"done"===a.status&&"number"==typeof a.score)||"number"==typeof a.score,B=r?.sourceType==="trace"?[r.sourceDatasetName?`dataset: ${r.sourceDatasetName}`:"",r.sourceUploadId?`upload: ${r.sourceUploadId}`:"",r.sourceExecutionSessionId?`execution: ${r.sourceExecutionSessionId}`:""].filter(Boolean).join(" | "):`R${a.roundIndex||"-"} \xb7 ${a.caseId}`;return(0,b.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"140px 1fr 1fr 90px 60px 70px",gap:12,alignItems:"center",padding:"10px 12px",borderTop:"1px solid #F1EFE8",fontSize:12},children:[(0,b.jsxs)("div",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",minWidth:0},title:B,children:[(0,b.jsxs)("span",{style:{color:"#5F5E5A",fontWeight:600,marginRight:4},children:["R",a.roundIndex||"-"]}),t?(0,b.jsx)("a",{href:t,target:"_blank",rel:"noopener noreferrer",style:{fontFamily:"ui-monospace, monospace",fontSize:11,color:"#185FA5",textDecoration:"none"},onMouseEnter:a=>a.currentTarget.style.textDecoration="underline",onMouseLeave:a=>a.currentTarget.style.textDecoration="none",children:a.caseId}):(0,b.jsx)("span",{style:{fontFamily:"ui-monospace, monospace",fontSize:11,color:"#5F5E5A"},children:a.caseId})]}),(0,b.jsx)("div",{style:{minWidth:0},children:"fail"===m.tone?(0,b.jsx)(z,{trigger:(0,b.jsx)(A,{label:m.label,tone:"fail"}),content:o}):"pending"===m.tone||"running"===m.tone?(0,b.jsx)(A,{label:m.label,tone:m.tone}):a.executionTraceId?(0,b.jsx)("button",{className:"v2-action-btn",style:{maxWidth:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontFamily:"ui-monospace, monospace"},onClick:()=>window.open(`/trace?taskId=${encodeURIComponent(a.executionTraceId)}`,"_blank"),children:a.executionTraceId}):(0,b.jsx)("span",{style:{color:"#B8B6AE"},children:"—"})}),(0,b.jsx)("div",{style:{minWidth:0},children:n?"fail"===n.tone&&0===l.length?(0,b.jsx)(z,{trigger:(0,b.jsx)(A,{label:n.label,tone:"fail"}),content:p}):("pending"===n.tone||"running"===n.tone)&&0===l.length?(0,b.jsx)(A,{label:n.label,tone:n.tone}):(0,b.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:6,minWidth:0},children:(0,b.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:5,fontSize:11,color:"#5F5E5A"},children:l.map(a=>{let c="done"===a.status?"done":"failed"===a.status?"fail":"running"===a.status?"running":"pending";return(0,b.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:2},children:[(0,b.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"minmax(96px, 1fr) minmax(80px, 1fr) 44px",gap:6,alignItems:"center"},children:[(0,b.jsx)("span",{title:a.evaluatorName,style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:a.evaluatorName}),a.evaluationTraceId?(0,b.jsx)("button",{className:"v2-action-btn",style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontFamily:"ui-monospace, monospace"},onClick:()=>window.open(`/trace?taskId=${encodeURIComponent(a.evaluationTraceId||"")}`,"_blank"),title:a.evaluatorRunId?`runId: ${a.evaluatorRunId}`:void 0,children:a.evaluationTraceId}):(0,b.jsx)(A,{label:"done"===a.status?"已评测":"failed"===a.status?"失败":"running"===a.status?"评测中":"待评",tone:c}),(0,b.jsx)("span",{style:{textAlign:"right",fontWeight:700,color:"failed"===a.status?"#B91C1C":Z},children:"number"==typeof a.score?a.score:"—"})]}),"failed"===a.status&&a.errorMessage?(0,b.jsxs)("div",{style:{fontSize:10.5,color:"#B91C1C",lineHeight:1.4,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},title:a.errorMessage,children:["⚠ ",a.errorMessage]}):null]},`${a.evaluatorId}-${a.evaluatorRunId||""}`)})})}):(0,b.jsx)("span",{style:{color:"#B8B6AE"},children:"—"})}),(0,b.jsx)("div",{children:x&&y?(0,b.jsxs)("button",{className:"v2-action-btn",style:{fontSize:11,padding:"3px 8px",background:"#EEF2FF",color:"#4F46E5",border:"1px solid rgba(79,70,229,.25)",borderRadius:4,cursor:"pointer",fontWeight:600,whiteSpace:"nowrap"},title:`跳转到单条评测详情 runId=${v}, trace=${a.executionTraceId}, resultId=${w}`,onClick:()=>window.open(x,"_blank"),children:["📋 ","zh"===_?"查看":"View"]}):n?(0,b.jsx)(A,{label:n.label,tone:n.tone}):a.evaluatorRunId?(0,b.jsx)(A,{label:"zh"===_?"结果未绑定":"Unbound",tone:"fail"}):(0,b.jsx)("span",{style:{color:"#B8B6AE",fontSize:11},children:"—"})}),(0,b.jsx)("div",{style:{textAlign:"right",color:Z,fontWeight:700,fontSize:14},children:"number"==typeof a.score?a.score:"—"}),(0,b.jsx)("div",{style:{textAlign:"right"},children:(e=a.roundIndex||1,f=bJ(a.caseId,Q,e),g=bG.has(f),h="fail"===m.tone||n&&"fail"===n.tone,i=!j&&!!(n&&"fail"===n.tone),g?(0,b.jsxs)("button",{className:"v2-action-btn",disabled:!0,style:{fontSize:11,padding:"4px 8px",background:"#E7E5E4",color:"#78716C",border:"none",borderRadius:4,cursor:"not-allowed",whiteSpace:"nowrap",opacity:.85},title:"zh"===_?"重试进行中, 请等待结果。如需打断, 点击顶部「终止」按钮。":"Retry in progress; wait for result or use top Abort button to interrupt.",children:["⏳ ","zh"===_?"重试中":"Retrying"]}):h?(0,b.jsxs)("button",{className:"v2-action-btn",style:{fontSize:11,padding:"4px 8px",background:"#1C1917",color:"white",border:"none",borderRadius:4,cursor:"pointer",whiteSpace:"nowrap"},title:j?"zh"===_?"执行失败 → 从执行重试 (会自动评测)":"Retry from execution (auto-evaluate)":"zh"===_?"评测失败 → 仅重新评失败或缺失的评估器 (复用现有 session)":"Retry failed or missing evaluators only",onClick:()=>{j?cb(a.caseId,Q,e):cc(a.caseId,Q,e,q)},children:["🔁 ",i?"zh"===_?"重评":"Re-evaluate":"zh"===_?"重跑":"Rerun"]}):(0,b.jsx)("span",{style:{color:"#B8B6AE",fontSize:11},children:"—"}))})]},`${Q}-${a.caseId}-${a.roundIndex}-${c}`)})]})]}))]})]})})]})}a.s(["GrayscaleEvaluation",()=>P,"default",()=>u])}];
1
+ module.exports=[99468,a=>{"use strict";let b={version:"agent-skill-scoring-v2.1",minSampleSize:1,recommendedSampleSize:20,minRepeats:1,capabilityScoreNeutral:50,capabilityScoreSlope:2.5,capabilityGoodThreshold:75,capabilityRejectThreshold:50,costGoodPct:20,costWarningPct:100,costRejectPct:200,costCouplingBonus:15,costCouplingPenalty:20,costGoodThreshold:70,costRejectThreshold:40,varianceMax:.25,stabilityGoodThreshold:70,stabilityRejectThreshold:50,capabilityDataQualityLowMax:5,capabilityDataQualityHighMin:95};function c(a,b,c){return Math.max(b,Math.min(c,a))}function d(a,b=1){let c=10**b;return Math.round(a*c)/c}function e(a){if("number"==typeof a&&Number.isFinite(a)&&a>0)return a;if("string"!=typeof a)return null;let b=a.match(/(\d+(?:\.\d+)?)\s*s?/i);if(!b)return null;let c=Number(b[1]);return Number.isFinite(c)&&c>0?c:null}function f(a){return a?Array.isArray(a.runs)&&a.runs.length>0?a.runs.flatMap(f):"pass"===a.status||"fail"===a.status||"executed"===a.status||"number"==typeof a.score||"number"==typeof a.pass||"number"==typeof a.tokenUsage||"string"==typeof a.timeCost||"number"==typeof a.timeCost?[a]:[]:[]}function g(a){return"pass"===a.status||"fail"===a.status||"number"==typeof a.score||"number"==typeof a.pass}function h(a){return"number"==typeof a.score&&Number.isFinite(a.score)?a.score:"number"==typeof a.pass&&Number.isFinite(a.pass)?a.pass:"pass"===a.status?100:"fail"===a.status?0:null}function i(a){let b=h(a);return null==b?null:b>=60}function j(a){return 0===a.length?null:a.reduce((a,b)=>a+b,0)/a.length}function k(a,b){return null==a||null==b||a<=0?null:(b-a)/a*100}function l(a){let b=a.map(i).filter(a=>null!=a);return 0===b.length?null:b.filter(Boolean).length/b.length}function m(a,b=1){return null!=a&&Number.isFinite(a)?String(d(a,b)):"—"}function n(a,n){let o=n?.policy??b,p=Object.entries(a).filter(([a])=>!n?.caseIds||n.caseIds.includes(a)).map(([a,b])=>({caseId:a,aRuns:f(b.a).filter(g),bRuns:f(b.b).filter(g)})).filter(a=>a.aRuns.length>0&&a.bRuns.length>0),q=p.flatMap(a=>a.aRuns),r=p.flatMap(a=>a.bRuns),s=p.length,t=n?.repeatRounds??Math.max(1,...p.map(a=>Math.max(a.aRuns.length,a.bRuns.length,1))),u=s>=o.minSampleSize,v=q.map(h).filter(a=>null!=a),w=r.map(h).filter(a=>null!=a),x=j(v),y=j(w),z=null==x||null==y?null:y-x,A=null==z?null:c(o.capabilityScoreNeutral+z*o.capabilityScoreSlope,0,100),B=null!=x&&null!=y?x<o.capabilityDataQualityLowMax&&y<o.capabilityDataQualityLowMax?`A/B 评测均分同为 < ${o.capabilityDataQualityLowMax},数据集可能过难`:x>o.capabilityDataQualityHighMin&&y>o.capabilityDataQualityHighMin?`A/B 评测均分同为 > ${o.capabilityDataQualityHighMin},数据集可能过易,区分度不足`:void 0:void 0,C=u?null==A?"unavailable":B?"data-quality":A>=o.capabilityGoodThreshold?"good":A<o.capabilityRejectThreshold?"reject":"warning":"insufficient",D=l(q),E=l(r),F=null==D||null==E?null:(E-D)*100,G={formula:`clamp(${o.capabilityScoreNeutral} + Δscore \xd7 ${o.capabilityScoreSlope}, 0, 100)`,steps:[`avgEvalA = mean(${v.length} runs) = ${m(x)}`,`avgEvalB = mean(${w.length} runs) = ${m(y)}`,`Δscore = avgEvalB − avgEvalA = ${m(z)}`,`score = clamp(${o.capabilityScoreNeutral} + ${m(z)} \xd7 ${o.capabilityScoreSlope}, 0, 100) = ${m(A)}`],reference:"docs/skill-ab-scoring.md §3.1"},H=q.map(a=>a.tokenUsage).filter(a=>"number"==typeof a&&Number.isFinite(a)&&a>0),I=r.map(a=>a.tokenUsage).filter(a=>"number"==typeof a&&Number.isFinite(a)&&a>0),J=j(H),K=j(I),L=k(J,K),M=j(q.map(a=>e(a.timeCost)).filter(a=>null!=a)),N=j(r.map(a=>e(a.timeCost)).filter(a=>null!=a)),O=k(M,N),P=j(q.map(a=>a.toolCallCount).filter(a=>"number"==typeof a&&Number.isFinite(a))),Q=j(r.map(a=>a.toolCallCount).filter(a=>"number"==typeof a&&Number.isFinite(a))),R=k(P,Q),S=function(a,b){if(null==a)return null;if(a<=0)return 100;if(a<=b.costGoodPct)return 100-a/b.costGoodPct*20;if(a<=b.costWarningPct){let c=b.costWarningPct-b.costGoodPct;return 80-(a-b.costGoodPct)/c*40}if(a<=b.costRejectPct){let c=b.costRejectPct-b.costWarningPct;return 40-(a-b.costWarningPct)/c*40}return 0}(L,o),T=null==S?null:null==A?c(S,0,100):A>=o.capabilityGoodThreshold?c(S+o.costCouplingBonus,0,100):A<o.capabilityRejectThreshold?c(S-o.costCouplingPenalty,0,100):c(S,0,100),U=null==J?"A 组平均 Token 缺失或为 0,成本维度无法计算":void 0,V=u?null==T?"unavailable":T>=o.costGoodThreshold?"good":T<o.costRejectThreshold?"reject":"warning":"insufficient",W=null==A?"无能力分参考":A>=o.capabilityGoodThreshold?`能力 ${m(A)} ≥ ${o.capabilityGoodThreshold} → +${o.costCouplingBonus}`:A<o.capabilityRejectThreshold?`能力 ${m(A)} < ${o.capabilityRejectThreshold} → −${o.costCouplingPenalty}`:`能力 ${m(A)} 居中 → \xb10`,X={formula:`baseCost(Δtoken) + couplingByCapability`,steps:[`avgTokensA = mean(${H.length} runs) = ${m(J,0)}`,`avgTokensB = mean(${I.length} runs) = ${m(K,0)}`,`Δtoken = (avgTokensB − avgTokensA) / avgTokensA \xd7 100% = ${m(L)}%`,`baseCost = piecewise(Δtoken; 0%→100, ${o.costGoodPct}%→80, ${o.costWarningPct}%→40, ${o.costRejectPct}%→0) = ${m(S)}`,`coupling = ${W}`,`score = clamp(baseCost + coupling, 0, 100) = ${m(T)}`],reference:"docs/skill-ab-scoring.md §4.1"},Y=r.length>0?r.filter(a=>a.skillTriggered).length/r.length:null,Z=p.map(a=>(function(a){if(a.length<2)return null;let b=a.reduce((a,b)=>a+b,0)/a.length;return a.reduce((a,c)=>a+(c-b)**2,0)/a.length})(a.bRuns.map(i).filter(a=>null!=a).map(a=>+!!a))).filter(a=>null!=a),$=Z.length>0?j(Z):null,_=null!=$,aa=c(1-($??0)/o.varianceMax,0,1),ab=null==Y?null:c(100*Y*aa,0,100),ac=null==Y?null:c(100*Y,0,100),ad=null==$?null:c(100*aa,0,100),ae=u?null==ab?"unavailable":ab>=o.stabilityGoodThreshold?"good":ab<o.stabilityRejectThreshold?null!=Y&&100*Y<o.stabilityRejectThreshold?"revise-description":"unreliable":"warning":"insufficient",af={formula:`invokeRate \xd7 100 \xd7 (1 − variance / ${o.varianceMax})`,steps:[`invokeRate = ${r.length>0?r.filter(a=>a.skillTriggered).length:0} / ${r.length} = ${m(null==Y?null:100*Y)}%`,_?`variance = mean(per-case binary variance, ${Z.length} cases) = ${m($,3)}`:`variance = (重复轮次 < 2,按 0 处理)`,`1 − var/${o.varianceMax} = ${m(aa,3)}`,`score = ${m(null==Y?null:100*Y)}% \xd7 ${m(aa,3)} = ${m(ab)}`],reference:"docs/skill-ab-scoring.md §5.1"},ag=[A,T,ab].every(a=>null!=a),ah=u&&ag?Math.round(Math.min(A,T,ab)):null,ai=[];null!=A&&A<o.capabilityRejectThreshold&&ai.push({key:"capability",label:`能力分 ${m(A)} < ${o.capabilityRejectThreshold}`,ceiling:o.capabilityRejectThreshold}),null!=T&&T<o.costRejectThreshold&&ai.push({key:"cost",label:`成本分 ${m(T)} < ${o.costRejectThreshold}`,ceiling:o.costRejectThreshold}),null!=ab&&ab<o.stabilityRejectThreshold&&ai.push({key:"stability",label:`稳定性分 ${m(ab)} < ${o.stabilityRejectThreshold}`,ceiling:o.stabilityRejectThreshold});let aj=ai[0]?.key??null,ak=null!=A&&null!=T&&null!=ab&&A>=o.capabilityGoodThreshold&&T>=o.costGoodThreshold&&ab>=o.stabilityGoodThreshold,al=u?aj?"reject":ak?"direct-release":"monitor-release":"insufficient",am={formula:"min(capability, cost, stability)",steps:[`capability = ${m(A)}`,`cost = ${m(T)}`,`stability = ${m(ab)}`,ag?`total = min(...) = ${m(ah,0)}`:`total = 任一维度缺失,无法出综合分`],reference:"docs/skill-ab-scoring.md §6.1"},an=null==ah?{grade:"insufficient",gradeLabel:"样本不足"}:ah>=90?{grade:"excellent",gradeLabel:"优秀"}:ah>=75?{grade:"good",gradeLabel:"良好"}:ah>=60?{grade:"pass",gradeLabel:"合格"}:ah>=40?{grade:"weak",gradeLabel:"偏弱"}:{grade:"fail",gradeLabel:"不合格"};return{policyVersion:o.version,sampleSize:s,completedPairs:s,repeatRounds:t,confidence:s>=20?"high":s>=10?"medium":"low",canScore:u,totalScore:ah,totalScoreBreakdown:am,...an,decision:al,decisionLabel:"insufficient"===al?"样本不足":"reject"===al?"capability"===aj?"打回(能力)":"cost"===aj?"打回(成本)":"打回(稳定性)":"direct-release"===al?"直接发布":"监控发布",allowRelease:"direct-release"===al||"monitor-release"===al,rejectCategory:aj,hardGates:ai,capability:{avgEvalScoreA:null==x?null:d(x,1),avgEvalScoreB:null==y?null:d(y,1),deltaScore:null==z?null:d(z,1),passRateA:null==D?null:d(100*D,1),passRateB:null==E?null:d(100*E,1),deltaPp:null==F?null:d(F,1),score:null==A?null:d(A,1),verdict:C,label:"good"===C?"好":"reject"===C?"拒绝":"data-quality"===C?"数据质量问题":"insufficient"===C?"样本不足":"unavailable"===C?"无法计算":"一般",tone:"good"===C?"green":"reject"===C?"red":"insufficient"===C||"unavailable"===C?"gray":"amber",dataQualityIssue:B,breakdown:G},cost:{avgTokensA:null==J?null:Math.round(J),avgTokensB:null==K?null:Math.round(K),deltaTokenPct:null==L?null:d(L,1),avgDurationA:null==M?null:d(M,1),avgDurationB:null==N?null:d(N,1),deltaDurationPct:null==O?null:d(O,1),avgStepsA:null==P?null:d(P,1),avgStepsB:null==Q?null:d(Q,1),deltaStepsPct:null==R?null:d(R,1),baseCost:null==S?null:d(S,1),score:null==T?null:d(T,1),verdict:V,label:"good"===V?"好":"reject"===V?"拒绝":"insufficient"===V?"样本不足":"unavailable"===V?"无法计算":"警告",tone:"good"===V?"green":"reject"===V?"red":"insufficient"===V||"unavailable"===V?"gray":"amber",dataQualityIssue:U,breakdown:X},stability:{invokeRate:null==Y?null:d(100*Y,1),variance:null==$?null:d($,3),score:null==ab?null:d(ab,1),invokeScore:null==ac?null:d(ac,1),varianceScore:null==ad?null:d(ad,1),verdict:ae,label:"good"===ae?"好":"revise-description"===ae?"改描述":"unreliable"===ae?"不可靠":"insufficient"===ae?"样本不足":"unavailable"===ae?"无法计算":"警告",tone:"good"===ae?"green":"revise-description"===ae||"unreliable"===ae?"red":"insufficient"===ae||"unavailable"===ae?"gray":"amber",varianceComputable:_,dataQualityIssue:_?void 0:"重复轮次不足,方差不可计算",breakdown:af}}}a.s(["DEFAULT_AB_SCORING_POLICY",0,b,"calculateAbScoring",()=>n])},467952,a=>{"use strict";var b=a.i(187924),c=a.i(572131),d=a.i(575110);let e=a.i(478614).presetEvaluators.filter(a=>"ready"===a.status).map(a=>({id:a.id,name:a.name,description:a.description,source:"preset"}));function f(){let a=new Date,b=a=>String(a).padStart(2,"0");return`评测任务 ${a.getFullYear()}-${b(a.getMonth()+1)}-${b(a.getDate())} ${b(a.getHours())}:${b(a.getMinutes())}`}function g({open:a,user:g,onClose:h,onCreated:i,defaultTitle:j,defaultDescription:k,evaluators:l,taskScope:m,taskSkillName:n,taskSkillVersion:o}){let[p,q]=(0,c.useState)(""),[r,s]=(0,c.useState)(""),[t,u]=(0,c.useState)(!1),[v,w]=(0,c.useState)("");if((0,c.useEffect)(()=>{a&&(q(j??""),s(k??""),w(""),u(!1))},[a,j,k]),!a)return null;let x=new Map([...e.map(a=>[a.id,a.name])]),y=(l||[]).filter(a=>x.has(a)),z=y.map(a=>x.get(a)||a),A=p.trim()||f(),B=y.length>0&&y.length<=5&&!t,C=async()=>{if(B){u(!0),w("");try{let a=await (0,d.apiFetch)("/api/eval/trajectory/run",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({user:g,placeholderOnly:!0,...m?{taskScope:m,skillName:n,skillVersion:o}:{},evaluators:y,taskTitle:A,taskDescription:r.trim()})}),b=await a.json().catch(()=>({}));if(!a.ok||!b.evaluatorRunId){w(b?.error||`创建失败 (${a.status})`),u(!1);return}i({evaluatorRunId:String(b.evaluatorRunId),taskTitle:A,taskDescription:r.trim(),selectedEvaluators:Array.isArray(b.evaluators)?b.evaluators:y,selectedEvaluatorNames:Array.isArray(b.evaluatorNames)?b.evaluatorNames:[]})}catch(a){w(a instanceof Error?a.message:String(a)),u(!1)}}};return(0,b.jsx)("div",{onClick:a=>{a.target===a.currentTarget&&h()},style:{position:"fixed",inset:0,zIndex:1100,background:"rgba(24,24,27,.45)",backdropFilter:"blur(2px)",display:"flex",alignItems:"flex-start",justifyContent:"center",paddingTop:"10vh"},children:(0,b.jsxs)("div",{style:{background:"#fff",borderRadius:12,boxShadow:"0 16px 48px rgba(0,0,0,.18)",width:580,maxWidth:"calc(100vw - 32px)",overflow:"hidden",display:"flex",flexDirection:"column",maxHeight:"80vh"},children:[(0,b.jsxs)("div",{style:{padding:"14px 18px",borderBottom:"1px solid #E4E4E7",display:"flex",alignItems:"center",justifyContent:"space-between"},children:[(0,b.jsx)("h3",{style:{margin:0,fontSize:14,fontWeight:600,color:"#18181B"},children:"+ 新建评测任务"}),(0,b.jsx)("button",{type:"button",onClick:h,style:{background:"transparent",border:"none",color:"#71717A",fontSize:18,cursor:"pointer",padding:"2px 8px",lineHeight:1,borderRadius:4},"aria-label":"关闭",children:"×"})]}),(0,b.jsxs)("div",{style:{padding:18,overflowY:"auto"},children:[(0,b.jsxs)("div",{style:{marginBottom:14},children:[(0,b.jsxs)("label",{style:{display:"block",fontSize:12,fontWeight:600,color:"#18181B",marginBottom:5},children:["任务名 ",(0,b.jsx)("span",{style:{color:"#B91C1C",marginLeft:2},children:"*"})]}),(0,b.jsx)("input",{type:"text",value:p,onChange:a=>q(a.target.value),placeholder:`默认: ${f()}`,maxLength:60,style:{width:"100%",padding:"7px 11px",borderRadius:6,border:"1px solid #D4D4D8",fontSize:13,color:"#18181B",outline:"none",fontFamily:"inherit"},onFocus:a=>a.currentTarget.style.borderColor="#4F46E5",onBlur:a=>a.currentTarget.style.borderColor="#D4D4D8"}),(0,b.jsxs)("div",{style:{fontSize:11,color:"#71717A",marginTop:4},children:["为这个评测任务取个名字, 留空将使用默认时间戳 (",p.length,"/60)"]})]}),(0,b.jsxs)("div",{style:{marginBottom:14},children:[(0,b.jsx)("label",{style:{display:"block",fontSize:12,fontWeight:600,color:"#18181B",marginBottom:5},children:"任务描述"}),(0,b.jsx)("textarea",{value:r,onChange:a=>s(a.target.value),placeholder:"可选: 任务背景 / 目标 / 关注点...",maxLength:500,rows:3,style:{width:"100%",padding:"7px 11px",borderRadius:6,border:"1px solid #D4D4D8",fontSize:12.5,color:"#18181B",outline:"none",fontFamily:"inherit",resize:"vertical",minHeight:60},onFocus:a=>a.currentTarget.style.borderColor="#4F46E5",onBlur:a=>a.currentTarget.style.borderColor="#D4D4D8"})]}),(0,b.jsxs)("div",{style:{marginBottom:10},children:[(0,b.jsxs)("label",{style:{display:"block",fontSize:12,fontWeight:600,color:"#18181B",marginBottom:5},children:["评估器",(0,b.jsxs)("span",{style:{fontWeight:400,color:"#71717A",fontSize:11,marginLeft:6},children:["(取自上方配置, 共 ",z.length," 个)"]})]}),z.length>0?(0,b.jsx)("div",{style:{display:"flex",flexWrap:"wrap",gap:6},children:z.map((a,c)=>(0,b.jsx)("span",{style:{padding:"3px 9px",borderRadius:99,background:"#EEF2FF",color:"#4F46E5",fontSize:11.5,fontWeight:600,border:"1px solid rgba(79,70,229,.2)"},children:a},`${a}_${c}`))}):(0,b.jsx)("div",{style:{padding:"8px 11px",background:"#FEF2F2",color:"#B91C1C",border:"1px solid #FECACA",borderRadius:6,fontSize:12},children:"配置区未选择评估器, 请先在上方「评估器」下拉里勾选至少 1 个。"}),(0,b.jsx)("div",{style:{fontSize:11,color:"#71717A",marginTop:5,lineHeight:1.5},children:"ⓘ 任务下所有评测都会用这些评估器跑。想改评估器请在上方配置区调整。"})]}),v&&(0,b.jsx)("div",{style:{padding:"8px 11px",background:"#FEF2F2",color:"#B91C1C",border:"1px solid #FECACA",borderRadius:6,fontSize:12,marginTop:10},children:v})]}),(0,b.jsxs)("div",{style:{padding:"11px 18px",borderTop:"1px solid #E4E4E7",display:"flex",justifyContent:"flex-end",gap:8,background:"#FAFAFA"},children:[(0,b.jsx)("button",{type:"button",onClick:h,disabled:t,style:{padding:"6px 12px",borderRadius:6,border:"1px solid #D4D4D8",background:"#fff",fontSize:12.5,fontWeight:500,color:"#52525B",cursor:t?"not-allowed":"pointer",opacity:t?.5:1},children:"取消"}),(0,b.jsx)("button",{type:"button",onClick:C,disabled:!B,style:{padding:"6px 14px",borderRadius:6,border:"1px solid #4F46E5",background:B?"#4F46E5":"#A5A0E4",fontSize:12.5,fontWeight:600,color:"#fff",cursor:B?"pointer":"not-allowed"},children:t?"创建中...":"创建任务"})]})]})})}a.s(["NewEvaluationBatchDialog",()=>g])},525589,738835,103970,a=>{"use strict";var b=a.i(187924),c=a.i(572131),d=a.i(111098),e=a.i(193658),f=a.i(589027),g=a.i(164831);let h=(0,g.default)("ellipsis",[["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}],["circle",{cx:"19",cy:"12",r:"1",key:"1wjl8i"}],["circle",{cx:"5",cy:"12",r:"1",key:"1pcz8c"}]]),i=(0,g.default)("pause",[["rect",{x:"14",y:"3",width:"5",height:"18",rx:"1",key:"kaeet6"}],["rect",{x:"5",y:"3",width:"5",height:"18",rx:"1",key:"1wsw3u"}]]),j=(0,g.default)("play",[["path",{d:"M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z",key:"10ikf1"}]]);a.s(["Play",()=>j],738835);var k=a.i(519783),l=a.i(699570),m=a.i(526982),n=a.i(368114);function o(){let{isCollapsed:a,toggleSidebar:c}=(0,m.useSidebar)(),f=a?e.PanelLeftOpen:d.PanelLeftClose;return(0,b.jsx)("button",{type:"button",onClick:c,"aria-label":a?"展开侧栏":"折叠侧栏",className:"inline-flex size-7 shrink-0 items-center justify-center rounded-md text-foreground-secondary transition-colors hover:bg-background-secondary hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",children:(0,b.jsx)(f,{className:"size-4"})})}function p({items:a,moduleLabel:d}){let e=a?.length?a:d?[{label:d}]:[];return e.length?(0,b.jsx)("nav",{"aria-label":"Breadcrumb",className:"flex min-w-0 items-center gap-1.5 text-sm",children:e.map((a,d)=>{let f=d===e.length-1,g=f?(0,b.jsx)("span",{className:"truncate font-medium text-foreground",children:a.label}):a.href||a.onClick?(0,b.jsx)("a",{href:a.href,onClick:a.onClick,className:"truncate text-foreground-secondary transition-colors hover:text-foreground",children:a.label}):(0,b.jsx)("span",{className:"truncate text-foreground-secondary",children:a.label});return(0,b.jsxs)(c.Fragment,{children:[g,!f&&(0,b.jsx)("span",{"aria-hidden":"true",className:"select-none text-[var(--primary)] opacity-50",children:" › "})]},d)})}):null}function q({variant:a,action:c,secondaryAction:d,moreMenu:e,live:f}){return"live"===a&&f?(0,b.jsx)(t,{live:f}):(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[d&&(0,b.jsxs)(l.Button,{variant:"secondary",size:"sm",onClick:d.onClick,disabled:d.disabled,children:[d.icon&&(0,b.jsx)(d.icon,{}),d.label]}),c&&(0,b.jsxs)(l.Button,{variant:"default",size:"sm",onClick:c.onClick,disabled:c.disabled,children:[c.icon&&(0,b.jsx)(c.icon,{}),c.label]}),"detail"===a&&e&&e.length>0&&(0,b.jsx)(r,{items:e})]})}function r({items:a}){return(0,b.jsxs)("details",{className:"relative",children:[(0,b.jsx)("summary",{"aria-label":"更多操作",className:"inline-flex size-8 cursor-pointer list-none items-center justify-center rounded-md text-foreground-secondary transition-colors hover:bg-background-secondary hover:text-foreground [&::-webkit-details-marker]:hidden",children:(0,b.jsx)(h,{className:"size-4"})}),(0,b.jsx)("div",{role:"menu",className:"absolute right-0 z-30 mt-1 min-w-[160px] overflow-hidden rounded-md border border-border bg-card shadow-md",children:a.map((a,c)=>(0,b.jsxs)("button",{type:"button",role:"menuitem",onClick:a.onClick,className:(0,n.cn)("flex w-full items-center gap-2 px-3 py-2 text-left text-sm transition-colors hover:bg-background-secondary",a.destructive?"text-[var(--error)]":"text-foreground"),children:[a.icon&&(0,b.jsx)(a.icon,{className:"size-4"}),a.label]},c))})]})}let s=["1s","3s","5s","15s","30s","1m"];function t({live:a}){var c;let d,e,g,h,m,o=(c=a.lastUpdate,d=`${c.getMonth()+1}`,e=`${c.getDate()}`,g=`${c.getHours()}`.padStart(2,"0"),h=`${c.getMinutes()}`.padStart(2,"0"),m=`${c.getSeconds()}`.padStart(2,"0"),`${d}/${e} \xb7 ${g}:${h}:${m}`);return(0,b.jsxs)("div",{className:"flex items-center gap-3",children:[(0,b.jsxs)("span",{"aria-label":a.label??"实时数据",className:"inline-flex items-center gap-1.5 rounded-sm bg-[var(--success-subtle)] px-2 py-0.5 text-[11px] font-medium text-[var(--success)]",children:[(0,b.jsx)("span",{className:"size-1.5 animate-pulse rounded-full bg-current"}),a.label??"实时数据"]}),(0,b.jsx)("time",{className:"font-mono tabular-nums text-xs text-foreground-muted",children:o}),a.onRefreshRateChange?(0,b.jsxs)("details",{className:"relative",children:[(0,b.jsxs)("summary",{className:"inline-flex h-7 cursor-pointer list-none items-center gap-1 rounded-md border border-border bg-card px-2 text-xs text-foreground transition-colors hover:bg-background-secondary [&::-webkit-details-marker]:hidden",children:[(0,b.jsx)(k.RefreshCw,{className:"size-3"}),a.refreshRate,(0,b.jsx)(f.ChevronDown,{className:"size-3 opacity-60"})]}),(0,b.jsx)("div",{className:"absolute right-0 z-30 mt-1 min-w-[64px] overflow-hidden rounded-md border border-border bg-card shadow-md",children:s.map(c=>(0,b.jsx)("button",{type:"button",onClick:()=>a.onRefreshRateChange?.(c),className:(0,n.cn)("block w-full px-3 py-1.5 text-left text-xs transition-colors hover:bg-background-secondary",c===a.refreshRate?"font-medium text-[var(--primary)]":"text-foreground"),children:c},c))})]}):(0,b.jsxs)("span",{className:"inline-flex h-7 items-center gap-1 rounded-md border border-border bg-card px-2 text-xs text-foreground-muted",children:[(0,b.jsx)(k.RefreshCw,{className:"size-3"}),a.refreshRate]}),(0,b.jsxs)(l.Button,{variant:"secondary",size:"sm",onClick:a.onTogglePause,children:[a.paused?(0,b.jsx)(j,{}):(0,b.jsx)(i,{}),a.paused?"继续":"暂停"]})]})}function u({obj:a}){let c=(a.iconChar||a.title.charAt(0)||"?").slice(0,1).toUpperCase();return(0,b.jsxs)("div",{className:"flex items-center gap-3",children:[(0,b.jsx)("div",{className:"grid size-8 shrink-0 place-items-center rounded-md bg-[var(--primary-subtle)] font-mono text-xs font-semibold text-[var(--primary)]",children:c}),(0,b.jsxs)("div",{className:"min-w-0 leading-tight",children:[(0,b.jsxs)("div",{className:"flex items-center gap-1.5 font-mono text-[15px] font-semibold tracking-[-0.01em] text-foreground",children:[(0,b.jsx)("span",{className:"truncate",children:a.title}),a.versionMenu&&(0,b.jsx)(v,{menu:a.versionMenu})]}),(0,b.jsx)("div",{className:"mt-0.5 text-xs text-foreground-muted",children:a.sub})]})]})}function v({menu:a}){return(0,b.jsxs)("details",{className:"relative",children:[(0,b.jsx)("summary",{"aria-label":"切换版本",className:"inline-flex cursor-pointer list-none items-center text-foreground-muted hover:text-foreground [&::-webkit-details-marker]:hidden",children:(0,b.jsx)(f.ChevronDown,{className:"size-3"})}),(0,b.jsx)("div",{className:"absolute left-0 z-30 mt-1 min-w-[160px] overflow-hidden rounded-md border border-border bg-card shadow-md",children:a.versions.map(c=>(0,b.jsxs)("button",{type:"button",onClick:()=>a.onSelect(c.id),className:(0,n.cn)("flex w-full items-center justify-between px-3 py-1.5 text-left text-xs transition-colors hover:bg-background-secondary",c.id===a.current?"font-medium text-[var(--primary)]":"text-foreground"),children:[(0,b.jsx)("span",{className:"font-mono",children:c.label}),c.current&&(0,b.jsx)("span",{className:"text-[10px] text-foreground-muted",children:"当前"})]},c.id))})]})}function w({banner:a}){let c="info"===a.variant?"bg-[var(--primary-subtle)] text-[var(--primary)] border-[var(--primary-subtle-border)]":"warning"===a.variant?"bg-[var(--warning-subtle)] text-[var(--warning)] border-[var(--warning-subtle-border)]":"bg-[var(--error-subtle)] text-[var(--error)] border-[var(--error-subtle-border)]";return(0,b.jsxs)("div",{role:"status",className:(0,n.cn)("flex items-center gap-3 border-b px-6 py-3 text-sm",c),children:[(0,b.jsx)("span",{className:"flex-1",children:a.message}),a.action&&(0,b.jsxs)("button",{type:"button",onClick:a.action.onClick,className:"shrink-0 font-medium underline-offset-2 hover:underline",children:[a.action.label," →"]})]})}function x({meta:a,sticky:c}){return(0,b.jsxs)("div",{className:(0,n.cn)("border-b border-border bg-card px-6 py-3",c&&"sticky top-[56px] z-[9]"),children:["kpi"===a.kind&&(0,b.jsx)(y,{items:a.items}),"filter"===a.kind&&(0,b.jsx)("div",{className:"flex flex-wrap items-center gap-3",children:a.children}),"tabs"===a.kind&&(0,b.jsx)(z,{items:a.items,value:a.value,onChange:a.onChange})]})}function y({items:a}){return(0,b.jsx)("div",{className:"grid grid-cols-2 gap-4 md:grid-cols-4",children:a.map((a,c)=>(0,b.jsxs)("div",{className:"min-w-0",children:[(0,b.jsx)("div",{className:"text-xs text-foreground-muted",children:a.label}),(0,b.jsx)("div",{className:(0,n.cn)("mt-1 font-mono text-lg font-semibold tabular-nums","warning"===a.tone&&"text-[var(--warning)]","success"===a.tone&&"text-[var(--success)]",!a.tone&&"text-foreground"),children:a.value}),a.sub&&(0,b.jsx)("div",{className:"mt-0.5 text-xs text-foreground-muted",children:a.sub})]},c))})}function z({items:a,value:c,onChange:d}){return(0,b.jsx)("div",{className:"flex items-center gap-1 overflow-x-auto",children:a.map(a=>{let e=a.value===c;return(0,b.jsxs)("button",{type:"button",onClick:()=>d(a.value),className:(0,n.cn)("relative whitespace-nowrap px-3 py-2 text-sm transition-colors",e?"font-medium text-[var(--primary)]":"text-foreground-secondary hover:text-foreground"),children:[a.label,e&&(0,b.jsx)("span",{className:"absolute inset-x-3 -bottom-px h-0.5 rounded-full bg-[var(--primary)]"})]},a.value)})})}function A(a){let{breadcrumbs:c,moduleLabel:d,icon:e,title:f,badges:g,variant:h,action:i,secondaryAction:j,moreMenu:k,live:l,contextObject:m,description:n,banner:r,metaStrip:s,stickyMeta:t}=a,v="detail-object"===h&&m;return(0,b.jsxs)("header",{className:"sticky top-0 z-10 bg-card",children:[v?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{className:"flex h-9 items-center gap-3 border-b border-border bg-background-secondary px-6",children:[(0,b.jsx)(o,{}),(0,b.jsx)(p,{items:c,moduleLabel:d})]}),(0,b.jsxs)("div",{className:"flex h-14 items-center gap-3 border-b border-border px-6",children:[(0,b.jsx)(u,{obj:m}),(0,b.jsx)("div",{className:"flex-1"}),(0,b.jsx)(q,{variant:h,action:i,secondaryAction:j})]})]}):(0,b.jsxs)("div",{className:"flex h-14 items-center gap-3 border-b border-border px-6",children:[(0,b.jsx)(o,{}),(0,b.jsxs)("div",{className:"flex min-w-0 flex-1 items-center gap-3",children:[(0,b.jsx)(p,{items:c,moduleLabel:d}),f&&(0,b.jsxs)("div",{className:"flex min-w-0 items-center gap-2",children:[e&&(0,b.jsx)(e,{className:"size-4 text-foreground-secondary"}),(0,b.jsx)("h1",{className:"truncate text-sm font-medium text-foreground",children:f}),g]})]}),(0,b.jsx)(q,{variant:h,action:i,secondaryAction:j,moreMenu:k,live:l})]}),n&&!v&&(0,b.jsx)("p",{className:"border-b border-border bg-card px-6 py-2 text-xs text-foreground-secondary",children:n}),r&&(0,b.jsx)(w,{banner:r}),s&&(0,b.jsx)(x,{meta:s,sticky:t})]})}a.s(["PageHeader",()=>A],525589);let B={sm:"text-xs",md:"text-sm",lg:"text-lg",xl:"text-2xl"},C={default:"text-foreground",success:"text-[var(--success)]",warning:"text-[var(--warning)]",error:"text-[var(--error)]",muted:"text-foreground-muted"};function D({value:a,unit:c,format:d="plain",precision:e,size:f="md",tone:g="default",className:h,fallback:i="—"}){let j;return j=null==a||""===a?i:"number"==typeof a?Number.isFinite(a)?function(a,b,c=1){return"compact"===b?new Intl.NumberFormat(void 0,{notation:"compact",maximumFractionDigits:c}).format(a):"percent"===b?new Intl.NumberFormat(void 0,{style:"percent",maximumFractionDigits:c}).format(a):new Intl.NumberFormat(void 0,{maximumFractionDigits:c}).format(a)}(a,d,e):i:String(a),(0,b.jsxs)("span",{className:(0,n.cn)("inline-flex items-baseline gap-1 font-mono tabular-nums font-semibold",B[f],C[g],h),children:[(0,b.jsx)("span",{children:j}),c&&j!==i&&(0,b.jsx)("span",{className:"text-[0.65em] font-medium text-foreground-muted",children:c})]})}a.s(["MetricValue",()=>D],103970)},754790,a=>{"use strict";function b(a,b){let c,d,e="string"==typeof a.task_id?a.task_id.trim():"",f="string"==typeof a.upload_id?a.upload_id.trim():"",g="string"==typeof a.dataset_id?a.dataset_id.trim():"",h="string"==typeof a.dataset_name?a.dataset_name.trim():"";return{id:(c="string"==typeof a.task_id?a.task_id.trim():"",d="string"==typeof a.upload_id?a.upload_id.trim():"",c&&d?`trace:${c}:${d}`:c?`trace:${c}`:d?`trace:upload:${d}`:`trace:index:${b}`),input:String(a.query||e||f||`trace_${b}`),datasetName:h||"Traces",datasetId:g||"traces",sourceType:"trace",sourceExecutionSessionId:e,sourceUploadId:f,sourceDatasetId:g,sourceDatasetName:h}}function c(a){if(!Array.isArray(a)||0===a.length)return null;for(let b=a.length-1;b>=0;b-=1){let c=a[b];if(!c?.sessionId)continue;let d="number"==typeof c.runIndex&&Number.isFinite(c.runIndex)?c.runIndex:null;if(null!=d)return d}return null}a.s(["buildGrayscaleTraceCase",()=>b,"findLatestRunnableRunIndex",()=>c])},306765,a=>{"use strict";var b=a.i(187924),c=a.i(572131),d=a.i(50944),e=a.i(525589),f=a.i(100842),g=a.i(699570),h=a.i(580701),i=a.i(103970),j=a.i(924330),k=a.i(738835),l=a.i(168370),m=a.i(403512),n=a.i(106927),o=a.i(943408),p=a.i(575110),q=a.i(99468),r=a.i(754790),s=a.i(467952),t=a.i(478614);function u(){return(0,b.jsx)(c.Suspense,{fallback:null,children:(0,b.jsx)(O,{})})}function v(a){return JSON.stringify({skillId:a.skillId,versionAId:a.versionAId,versionBId:a.versionBId,sourceMode:a.sourceMode,selectedDatasetId:a.selectedDatasetId,linkedDatasetIds:[...a.linkedDatasetIds].sort(),selectedTraceAId:a.selectedTraceAId,selectedTraceBId:a.selectedTraceBId,repeatRounds:a.repeatRounds,agentMaxConcurrency:a.agentMaxConcurrency,autoEval:a.autoEval,recordTriggerDetails:a.recordTriggerDetails,evaluatorIds:[...a.evaluatorIds].sort(),caseIds:[...a.caseIds].sort()})}function w(a){return Object.values(a).some(a=>[a.a,a.b].some(a=>"running"===a.status||"evaluating"===a.status||(a.runs||[]).some(a=>"running"===a.status||"evaluating"===a.status)))}function x(a){return Object.values(a).some(a=>[a.a,a.b].some(a=>(a.runs||[]).some(a=>"executed"===a.status&&!!a.sessionId&&!a.evaluatorRunId&&"number"!=typeof a.score)))}let y={pending:{bg:"rgba(100,116,139,.10)",fg:"#475569"},running:{bg:"rgba(37,99,235,.10)",fg:"#2563EB",pulse:!0},done:{bg:"rgba(22,163,74,.10)",fg:"#15803D",icon:"✓"},fail:{bg:"rgba(220,38,38,.10)",fg:"#B91C1C",icon:"⚠"}};function z({trigger:a,content:d}){let[e,f]=(0,c.useState)(!1),g=(0,c.useRef)(null),h=()=>{g.current&&(clearTimeout(g.current),g.current=null)},i=()=>{h(),g.current=setTimeout(()=>f(!1),1e3)};return(0,c.useEffect)(()=>()=>{g.current&&clearTimeout(g.current)},[]),(0,b.jsxs)("span",{style:{position:"relative",display:"inline-block"},onMouseEnter:()=>{h(),f(!0)},onMouseLeave:i,children:[a,e&&(0,b.jsx)("div",{onMouseEnter:h,onMouseLeave:i,style:{position:"absolute",top:"100%",left:0,marginTop:6,zIndex:50,background:"#1F2937",color:"#F9FAFB",padding:"10px 12px",borderRadius:6,fontSize:11,lineHeight:1.5,maxWidth:480,minWidth:240,whiteSpace:"pre-wrap",wordBreak:"break-word",userSelect:"text",cursor:"text",boxShadow:"0 4px 16px rgba(0,0,0,0.25)"},children:d})]})}function A({label:a,tone:c}){let d=y[c];return(0,b.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:4,fontSize:12,fontWeight:600,color:d.fg,whiteSpace:"nowrap"},children:[d.pulse&&(0,b.jsx)("span",{style:{display:"inline-block",width:6,height:6,borderRadius:"50%",background:"currentColor",animation:"pulse 1.5s ease-in-out infinite"}}),d.icon&&(0,b.jsx)("span",{children:d.icon}),a]})}function B({decisionReady:a,abScoring:c,sampleSize:d,repeatRounds:e,recommendedSampleSize:f,policy:g,decisionTitle:h,decisionAdvice:i,onViewTrace:j,locale:k,toneColor:l,toneBg:m}){let n,o,p,q,r=a&&"insufficient"!==c.decision?"reject"===c.decision?"red":"direct-release"===c.decision?"green":"amber":"gray",s=l(r),t=m(r),u=(()=>{if(!a)return null;if(c.rejectCategory)return c.rejectCategory;if(null==c.totalScore)return null;let b=[{key:"capability",v:c.capability.score},{key:"cost",v:c.cost.score},{key:"stability",v:c.stability.score}].filter(a=>null!=a.v);return 0===b.length?null:b.sort((a,b)=>a.v-b.v)[0].key})(),v=a=>"capability"===a?c.capability.tone:"cost"===a?c.cost.tone:c.stability.tone,w=(()=>{if(!a)return"";if("capability"===u){let a=c.capability.avgEvalScoreA,b=c.capability.avgEvalScoreB,d=c.capability.deltaScore,e=c.hardGates.find(a=>"capability"===a.key),f=[];return null!=a&&null!=b&&f.push(`评测均分由 ${a} → ${b}`),null!=d&&f.push(`Δ ${d>0?"+":""}${d}`),e&&f.push(`命中 hard gate (< ${g.capabilityRejectThreshold})`),f.join(", ")}if("cost"===u){let a=c.cost.deltaTokenPct,b=c.cost.deltaDurationPct,d=c.capability.score,e=null==d?0:d>=g.capabilityGoodThreshold?g.costCouplingBonus:d<g.capabilityRejectThreshold?-g.costCouplingPenalty:0,f=[];return null!=a&&f.push(`ΔToken ${a>0?"+":""}${a}%`),null!=b&&f.push(`耗时 ${b>0?"+":""}${b}%`),0!==e&&f.push(`能力耦合 ${e>0?"+":""}${e}`),f.join(", ")}if("stability"===u){let a=c.stability.invokeRate,b=c.stability.variance,d=[];return null!=a&&d.push(`触发率 ${a}%`),d.push(null==b?`方差 — (R=${e})`:`方差 ${b}`),d.join(", ")}return""})(),x=a&&d<f?`样本量偏少, 建议补到 N≥${f}、R≥${Math.max(g.minRepeats,3)}`:"",y=({value:a,tone:c})=>{let d=null==a?0:Math.max(0,Math.min(100,a));return(0,b.jsxs)("div",{style:{position:"relative",height:8,background:"#E7E5E4",borderRadius:999,overflow:"hidden"},children:[(0,b.jsx)("div",{style:{width:`${Math.max(2,d)}%`,height:"100%",background:l(c),borderRadius:999}}),(0,b.jsx)("span",{style:{position:"absolute",left:"50%",top:0,bottom:0,width:1,background:"rgba(0,0,0,0.18)"}}),(0,b.jsx)("span",{style:{position:"absolute",left:"75%",top:0,bottom:0,width:1,background:"rgba(0,0,0,0.18)"}})]})},z=({value:a,tone:c})=>(0,b.jsxs)("div",{style:{fontFamily:"ui-monospace, monospace",fontVariantNumeric:"tabular-nums",textAlign:"right",whiteSpace:"nowrap"},children:[(0,b.jsx)("span",{style:{fontSize:18,fontWeight:800,color:l(c)},children:null==a?"—":a}),(0,b.jsx)("span",{style:{fontSize:11,color:"#A8A29E",marginLeft:4},children:"/ 100"})]}),A=({tone:a,label:c})=>(0,b.jsx)("span",{style:{display:"inline-block",padding:"1px 7px",borderRadius:4,fontSize:10,fontWeight:700,color:l(a),background:m(a)},children:c}),B=[{key:"capability",label:"能力",subtitle:"Skill 让 Agent 多做成了多少事",score:c.capability.score,tone:c.capability.tone,verdictLabel:c.capability.label,evidence:a?(0,b.jsxs)(b.Fragment,{children:["A ",c.capability.avgEvalScoreA??"—",(0,b.jsx)("span",{style:{color:"#A8A29E",margin:"0 4px"},children:"→"}),"B ",c.capability.avgEvalScoreB??"—",null!=c.capability.deltaScore&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("span",{style:{color:"#A8A29E",margin:"0 8px"},children:"·"}),"Δscore ",c.capability.deltaScore>0?"+":"",c.capability.deltaScore]})]}):"—"},{key:"cost",label:"成本",subtitle:"多花了多少 token / 时间",score:c.cost.score,tone:c.cost.tone,verdictLabel:c.cost.label,evidence:a?(n=c.cost.deltaTokenPct,o=c.cost.deltaDurationPct,q=null==(p=c.capability.score)?0:p>=g.capabilityGoodThreshold?g.costCouplingBonus:p<g.capabilityRejectThreshold?-g.costCouplingPenalty:0,(0,b.jsxs)(b.Fragment,{children:["ΔToken ",null==n?"—":`${n>0?"+":""}${n}%`,(0,b.jsx)("span",{style:{color:"#A8A29E",margin:"0 8px"},children:"·"}),"耗时 ",null==o?"—":`${o>0?"+":""}${o}%`,0!==q&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("span",{style:{color:"#A8A29E",margin:"0 8px"},children:"·"}),"能力耦合 ",q>0?"+":"",q]})]})):"—"},{key:"stability",label:"稳定性",subtitle:"该触发时触发了吗, 结果稳吗",score:c.stability.score,tone:c.stability.tone,verdictLabel:c.stability.label,evidence:a?(0,b.jsxs)(b.Fragment,{children:["触发率 ",null==c.stability.invokeRate?"—":`${c.stability.invokeRate}%`,(0,b.jsx)("span",{style:{color:"#A8A29E",margin:"0 8px"},children:"·"}),"方差 ",null==c.stability.variance?`— (R=${e})`:c.stability.variance]}):"—"}];return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{style:{border:`1px solid ${"gray"===r?"#E7E5E4":s}`,background:t,borderRadius:10,padding:"14px 18px",display:"grid",gridTemplateColumns:"minmax(170px, auto) 1fr auto",gap:18,alignItems:"center"},children:[(0,b.jsxs)("div",{style:{borderRight:"1px solid rgba(0,0,0,0.08)",paddingRight:16},children:[(0,b.jsx)("div",{style:{fontSize:10,color:"#888780",fontFamily:"ui-monospace, monospace",fontWeight:700,letterSpacing:1.5},children:"DECISION"}),(0,b.jsx)("div",{style:{fontSize:26,fontWeight:800,color:s,lineHeight:1.05,marginTop:2},children:h}),(0,b.jsxs)("div",{style:{fontSize:11,color:"#5F5E5A",marginTop:4,fontFamily:"ui-monospace, monospace",fontVariantNumeric:"tabular-nums"},children:["综合 ",(0,b.jsx)("span",{style:{fontWeight:700,color:s},children:a&&null!=c.totalScore?c.totalScore:"—"})," / 100"]})]}),(0,b.jsxs)("div",{style:{fontSize:13,lineHeight:1.65,color:"#374151"},children:[u&&w&&(0,b.jsxs)("div",{children:[(0,b.jsx)("span",{style:{color:"#5F5E5A"},children:"短板在 "}),(0,b.jsx)("span",{style:{display:"inline-block",padding:"1px 7px",borderRadius:4,fontSize:11,fontWeight:700,color:l(v(u)),background:m(v(u))},children:"capability"===u?"能力":"cost"===u?"成本":"稳定性"}),(0,b.jsx)("span",{style:{color:"#5F5E5A"},children:" · "}),(0,b.jsx)("span",{children:w})]}),(0,b.jsxs)("div",{style:{marginTop:u&&w?4:0,color:"#5F5E5A"},children:[(0,b.jsx)("span",{style:{color:"#1F2937",fontWeight:700},children:"下一步"}),(0,b.jsx)("span",{style:{color:"#A8A29E",margin:"0 6px"},children:"·"}),(0,b.jsx)("span",{children:i}),x&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("span",{style:{color:"#A8A29E",margin:"0 6px"},children:";"}),(0,b.jsx)("span",{style:{color:"#BA7517"},children:x})]})]})]}),(0,b.jsx)("div",{style:{display:"flex",gap:8},children:(0,b.jsx)("button",{onClick:j,style:{padding:"7px 14px",borderRadius:6,border:"1px solid #D6D3D1",background:"white",color:"#1F2937",fontSize:12,fontWeight:600,cursor:"pointer",whiteSpace:"nowrap"},children:"zh"===k?"查看 Trace":"View Trace"})})]}),(0,b.jsxs)("div",{style:{border:"1px solid #E7E5E4",borderRadius:10,overflow:"hidden",background:"white"},children:[(0,b.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"minmax(220px, 1.6fr) 90px minmax(180px, 2fr) minmax(220px, 1.8fr)",gap:16,padding:"8px 16px",background:"#FAFAF7",borderBottom:"1px solid #E7E5E4",fontSize:10,color:"#888780",fontFamily:"ui-monospace, monospace",fontWeight:700,letterSpacing:1},children:[(0,b.jsx)("div",{children:"维度"}),(0,b.jsx)("div",{style:{textAlign:"right"},children:"分数"}),(0,b.jsxs)("div",{style:{position:"relative"},children:["0 ",(0,b.jsx)("span",{style:{position:"absolute",left:"50%",transform:"translateX(-50%)"},children:"· 50 ·"}),(0,b.jsx)("span",{style:{position:"absolute",left:"75%",transform:"translateX(-50%)"},children:"75"}),(0,b.jsx)("span",{style:{float:"right"},children:"100"})]}),(0,b.jsx)("div",{children:"关键证据"})]}),B.map(a=>(0,b.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"minmax(220px, 1.6fr) 90px minmax(180px, 2fr) minmax(220px, 1.8fr)",gap:16,padding:"12px 16px",borderBottom:"1px solid #F5F4EE",alignItems:"center"},children:[(0,b.jsxs)("div",{children:[(0,b.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8},children:[(0,b.jsx)("span",{style:{fontSize:14,fontWeight:700,color:"#1F2937"},children:a.label}),(0,b.jsx)(A,{tone:a.tone,label:a.verdictLabel})]}),(0,b.jsx)("div",{style:{fontSize:11,color:"#888780",marginTop:2},children:a.subtitle})]}),(0,b.jsx)(z,{value:a.score,tone:a.tone}),(0,b.jsx)(y,{value:a.score,tone:a.tone}),(0,b.jsx)("div",{style:{fontSize:12,color:"#374151",fontFamily:"ui-monospace, monospace",fontVariantNumeric:"tabular-nums",overflow:"hidden",textOverflow:"ellipsis"},children:a.evidence})]},a.key))]}),(0,b.jsxs)("details",{style:{border:"1px solid #E7E5E4",borderRadius:10,overflow:"hidden",background:"white"},open:!!a&&"reject"===c.decision,children:[(0,b.jsxs)("summary",{style:{cursor:"pointer",padding:"10px 16px",display:"flex",alignItems:"center",gap:8,background:"#FAFAF7",borderBottom:"1px solid #E7E5E4",fontSize:12,fontWeight:700,color:"#374151",userSelect:"none",listStyle:"none"},children:[(0,b.jsx)("span",{style:{color:"#A8A29E",fontFamily:"ui-monospace, monospace",fontSize:11},children:"▸"}),(0,b.jsx)("span",{children:"原始数据与计算公式"}),(0,b.jsx)("span",{style:{flex:1}}),(0,b.jsx)("span",{style:{color:"#A8A29E",fontFamily:"ui-monospace, monospace",fontSize:11,fontWeight:400},children:"min(capability, cost, stability)"})]}),(0,b.jsxs)("div",{style:{padding:16,display:"grid",gridTemplateColumns:"repeat(2, minmax(0, 1fr))",gap:12},children:[(0,b.jsx)(C,{label:"能力",tag:"capability",tone:c.capability.tone,rows:[{k:"评测均分",a:c.capability.avgEvalScoreA,b:c.capability.avgEvalScoreB,aFmt:a=>null==a?"—":String(a),bFmt:a=>null==a?"—":String(a)},{k:"通过率",a:c.capability.passRateA,b:c.capability.passRateB,aFmt:a=>null==a?"—":`${a}%`,bFmt:a=>null==a?"—":`${a}%`}],delta:{label:"Δscore",value:null==c.capability.deltaScore?"—":`${c.capability.deltaScore>0?"+":""}${c.capability.deltaScore}`},breakdown:c.capability.breakdown,dataQualityIssue:c.capability.dataQualityIssue,toneColor:l,toneBg:m}),(0,b.jsx)(C,{label:"成本",tag:"cost",tone:c.cost.tone,rows:[{k:"Token",a:c.cost.avgTokensA,b:c.cost.avgTokensB,aFmt:a=>null==a?"—":a.toLocaleString(),bFmt:a=>null==a?"—":a.toLocaleString()},{k:"耗时",a:c.cost.avgDurationA,b:c.cost.avgDurationB,aFmt:a=>null==a?"—":`${a}s`,bFmt:a=>null==a?"—":`${a}s`},{k:"步数",a:c.cost.avgStepsA,b:c.cost.avgStepsB,aFmt:a=>null==a?"—":String(a),bFmt:a=>null==a?"—":String(a)}],delta:{label:"ΔToken",value:null==c.cost.deltaTokenPct?"—":`${c.cost.deltaTokenPct>0?"+":""}${c.cost.deltaTokenPct}%`},breakdown:c.cost.breakdown,dataQualityIssue:c.cost.dataQualityIssue,toneColor:l,toneBg:m}),(0,b.jsx)(C,{label:"稳定性",tag:"stability",tone:c.stability.tone,rows:[{k:"触发率",a:null,b:c.stability.invokeRate,aFmt:()=>"—",bFmt:a=>null==a?"—":`${a}%`,oneSide:!0},{k:"方差",a:null,b:c.stability.variance,aFmt:()=>"—",bFmt:a=>null==a?`— (R=${e})`:String(a),oneSide:!0}],delta:null,breakdown:c.stability.breakdown,dataQualityIssue:c.stability.dataQualityIssue,toneColor:l,toneBg:m}),(0,b.jsx)(C,{label:"综合 (短板原则)",tag:"verdict",tone:r,rows:[],delta:null,breakdown:c.totalScoreBreakdown,dataQualityIssue:c.hardGates.length>0?`命中 hard gate:${c.hardGates.map(a=>a.label).join("、")}`:void 0,toneColor:l,toneBg:m})]})]}),(0,b.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",fontSize:10,color:"#A8A29E",fontFamily:"ui-monospace, monospace",paddingTop:2},children:[(0,b.jsxs)("span",{children:["SAMPLE N=",d,f?` / 推荐 ≥${f}`:""," · 重复 ",e," 轮 · 置信度 ","high"===c.confidence?"高":"medium"===c.confidence?"中":"低"]}),(0,b.jsxs)("span",{children:["策略:",c.policyVersion]})]})]})}function C({label:a,tag:c,tone:d,rows:e,delta:f,breakdown:g,dataQualityIssue:h,toneColor:i,toneBg:j}){return(0,b.jsxs)("div",{style:{border:"1px solid #E7E5E4",borderRadius:8,background:"#FAFAF7",overflow:"hidden"},children:[(0,b.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",padding:"8px 12px",background:"white",borderBottom:"1px solid #E7E5E4"},children:[(0,b.jsx)("span",{style:{fontSize:13,fontWeight:700,color:"#1F2937"},children:a}),(0,b.jsx)("span",{style:{fontSize:10,color:i(d),background:j(d),padding:"1px 7px",borderRadius:4,fontFamily:"ui-monospace, monospace",fontWeight:700,letterSpacing:.5},children:c})]}),(0,b.jsxs)("div",{style:{padding:"10px 12px",display:"flex",flexDirection:"column",gap:6},children:[e.map(a=>(0,b.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"64px 1fr 1fr",gap:8,alignItems:"baseline",fontSize:12},children:[(0,b.jsx)("span",{style:{color:"#5F5E5A"},children:a.k}),(0,b.jsx)("span",{style:{fontFamily:"ui-monospace, monospace",fontVariantNumeric:"tabular-nums",color:"#374151",textAlign:"right"},children:a.oneSide?"":(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("span",{style:{color:"#A8A29E",marginRight:6},children:"A"}),a.aFmt(a.a)]})}),(0,b.jsxs)("span",{style:{fontFamily:"ui-monospace, monospace",fontVariantNumeric:"tabular-nums",color:"#374151",textAlign:"right"},children:[(0,b.jsx)("span",{style:{color:"#A8A29E",marginRight:6},children:"B"}),a.bFmt(a.b)]})]},a.k)),f&&(0,b.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"64px 1fr",gap:8,alignItems:"baseline",fontSize:12,marginTop:2,paddingTop:6,borderTop:"1px dashed #E7E5E4"},children:[(0,b.jsx)("span",{style:{color:"#5F5E5A"},children:f.label}),(0,b.jsx)("span",{style:{fontFamily:"ui-monospace, monospace",fontVariantNumeric:"tabular-nums",fontWeight:700,color:i(d),textAlign:"right"},children:f.value})]}),(0,b.jsx)("pre",{style:{margin:"8px 0 0",padding:"8px 10px",background:"white",border:"1px solid #E7E5E4",borderRadius:4,fontFamily:"ui-monospace, monospace",fontVariantNumeric:"tabular-nums",fontSize:10.5,lineHeight:1.65,color:"#374151",whiteSpace:"pre-wrap",wordBreak:"break-word"},children:g.steps.join("\n")}),h&&(0,b.jsx)("div",{style:{fontSize:11,color:"#BA7517",marginTop:2},children:h}),(0,b.jsx)("div",{style:{fontSize:10,color:"#A8A29E",fontFamily:"ui-monospace, monospace",textAlign:"right"},children:g.reference})]})]})}let D=[...t.presetEvaluators.filter(a=>"ready"===a.status).map(a=>({id:a.id,name:a.name}))],E=new Set(D.map(a=>a.id));function F(a){return Array.from(new Set(a.map(a=>String(a||"").trim()).filter(Boolean)))}function G(a,b){let c=F((Array.isArray(a)?a:a?[a]:[]).map(a=>String(a||"").trim())).filter(a=>E.has(a));if(c.length>0)return c;let d=String(b||"").trim();return d&&E.has(d)?[d]:[]}function H(a,b){let c=new Map((a?.evaluations||[]).map(a=>[a.evaluatorId,a]));return b.filter(a=>{let b=c.get(a);return!b||"failed"===b.status||"pending"===b.status})}let I=()=>(0,b.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,b.jsx)("circle",{cx:"12",cy:"12",r:"10"}),(0,b.jsx)("polyline",{points:"12 6 12 12 16 14"})]}),J=()=>(0,b.jsx)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"currentColor",children:(0,b.jsx)("polygon",{points:"5 3 19 12 5 21 5 3"})}),K=()=>(0,b.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:(0,b.jsx)("path",{d:"M6 9H4.5a2.5 2.5 0 0 1 0-5H6M18 9h1.5a2.5 2.5 0 0 0 0-5H18M4 22h16M10 14.66V17c0 .55-.45 1-1 1H4v2h16v-2h-5c-.55 0-1-.45-1-1v-2.34M12 2a4 4 0 0 0-4 4v5a4 4 0 0 0 8 0V6a4 4 0 0 0-4-4z"})}),L=()=>(0,b.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"3",strokeLinecap:"round",strokeLinejoin:"round",children:(0,b.jsx)("polyline",{points:"20 6 9 17 4 12"})}),M=()=>(0,b.jsxs)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,b.jsx)("circle",{cx:"12",cy:"12",r:"3"}),(0,b.jsx)("path",{d:"M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 1 1-2.83 2.83l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-4 0v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 1 1-2.83-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1 0-4h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 1 1 2.83-2.83l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 4 0v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 1 1 2.83 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 0 4h-.09a1.65 1.65 0 0 0-1.51 1z"})]}),N=()=>(0,b.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:(0,b.jsx)("path",{d:"M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z"})});function O(){let{locale:a}=(0,n.useLocale)();(0,d.useRouter)();let[f,g]=(0,c.useState)(0),[h,i]=(0,c.useState)(0),k=(0,c.useRef)(null);return(0,b.jsxs)("div",{className:"debug-root",children:[(0,b.jsx)(e.PageHeader,{variant:"management",breadcrumbs:[{label:"zh"===a?"Skills 评测":"Skill Evaluation",href:"/skill-eval"},{label:"zh"===a?"调测分析":"Debug & Analysis"}],title:"zh"===a?"A/B 测试":"A/B Test",action:{label:"zh"===a?"新建任务":"New Task",icon:m.Plus,onClick:()=>g(a=>a+1)},secondaryAction:{label:"zh"===a?"历史任务":"History",icon:j.History,onClick:()=>i(a=>a+1)}}),(0,b.jsx)("div",{className:"d-layout",style:{background:"var(--background-secondary)"},children:(0,b.jsx)("div",{className:"d-main-area",ref:k,style:{padding:0},children:(0,b.jsx)(P,{newTaskTrigger:f,historyPanelTrigger:h})})})]})}function P({newTaskTrigger:a,historyPanelTrigger:e,pageTitle:j,pageDescription:m,pageBadge:t,onBack:u,onOptimize:y,parentSkillId:C,parentSkillVersion:E,skillSelectorSlot:O,hifi:P=!1}){var Q,R;let S,T,U,V,W,X,Y,Z,$,{locale:_}=(0,n.useLocale)(),{user:aa}=(0,o.useAuth)(),ab=(0,d.useRouter)(),[ac,ad]=(0,c.useState)(null),[ae,af]=(0,c.useState)([]),[ag,ah]=(0,c.useState)(!1),[ai,aj]=(0,c.useState)(""),[ak,al]=(0,c.useState)(""),[am,an]=(0,c.useState)(!1),ao=(0,c.useRef)(null),[ap,aq]=(0,c.useState)([]),[ar,as]=(0,c.useState)([]),[at,au]=(0,c.useState)([]),[av,aw]=(0,c.useState)(""),[ax,ay]=(0,c.useState)(""),[az,aA]=(0,c.useState)(""),[aB,aC]=(0,c.useState)("dataset"),[aD,aE]=(0,c.useState)(""),[aF,aG]=(0,c.useState)(!1),[aH,aI]=(0,c.useState)(""),[aJ,aK]=(0,c.useState)(1),[aL,aM]=(0,c.useState)(4),[aN,aO]=(0,c.useState)(null),[aP,aQ]=(0,c.useState)(null),[aR,aS]=(0,c.useState)("7d"),[aT,aU]=(0,c.useState)([]),[aV,aW]=(0,c.useState)(!1),[aX,aY]=(0,c.useState)(""),[aZ,a$]=(0,c.useState)(""),[a_,a0]=(0,c.useState)(""),[a1,a2]=(0,c.useState)([]),[a3,a4]=(0,c.useState)(!1),[a5,a6]=(0,c.useState)([]),[a7,a8]=(0,c.useState)(!1),[a9,ba]=(0,c.useState)(""),[bb,bc]=(0,c.useState)(!1),[bd,be]=(0,c.useState)(!1),[bf,bg]=(0,c.useState)(!1),[bh,bi]=(0,c.useState)({config:!1,exec:!1,result:!1}),[bj,bk]=(0,c.useState)(!1),bl=(0,c.useCallback)(a=>{bk(!0),bi(b=>({...b,[a]:!b[a]}))},[]),[bm,bn]=(0,c.useState)(!1),[bo,bp]=(0,c.useState)(!1),[bq,br]=(0,c.useState)(!1),[bs,bt]=(0,c.useState)(!1),[bu,bv]=(0,c.useState)(""),[bw,bx]=(0,c.useState)(""),[by,bz]=(0,c.useState)([]),[bA,bB]=(0,c.useState)({}),[bC,bD]=(0,c.useState)([]),[bE,bF]=(0,c.useState)(!1),[bG,bH]=(0,c.useState)(()=>new Set),bI=(0,c.useRef)(bG),bJ=(a,b,c)=>`${a}::${b}::${c}`,bK=a=>{if(bI.current.has(a))return!1;let b=new Set(bI.current);return b.add(a),bI.current=b,bH(b),!0},bL=a=>{if(!bI.current.has(a))return;let b=new Set(bI.current);b.delete(a),bI.current=b,bH(b)},[bM,bN]=(0,c.useState)(""),[bO,bP]=(0,c.useState)(""),[bQ,bR]=(0,c.useState)("all"),bS=(0,c.useRef)({}),bT="__NONE__",bU=()=>{let a=new Date;return`A/B测试 ${a.getFullYear()}-${String(a.getMonth()+1).padStart(2,"0")}-${String(a.getDate()).padStart(2,"0")}-${String(a.getHours()).padStart(2,"0")}`},bV="zh"===_?"点击命名任务…":"Name this task…",bW=a=>{ad(null),b1.current=null,b0.current=null,aj(bU()),al(""),aw(a),ay(bT),aA(""),aC("dataset"),aE(""),aI(""),a6([]),bD([]),aS("7d"),aY(""),a$(""),bB({}),b2.current={},bF(!1),b3.current=!1,bN(""),bv(""),bx(""),bz([]),a0(""),a2([]),b6.current=null,ah(!0)},bX=(a,b,c,d)=>{if(!b)return!1;let e=a.configJson||{};return(a.skillId||e.skillId||"")===b&&(c?(a.skillVersionId||e.versionBId||"")===c:null==d||Number(a.skillVersion)===Number(d))},bY=a=>{let b=a.configJson?.latestResultAt,c="string"==typeof b?Date.parse(b):0;if(Number.isFinite(c)&&c>0)return c;let d=Object.values(a.caseStatesJson||{}).flatMap(a=>["a","b"].flatMap(b=>(a?.[b]?.runs||[]).map(a=>"string"==typeof a.completedAt?Date.parse(a.completedAt):0))).filter(a=>Number.isFinite(a)&&a>0);return d.length>0?Math.max(...d):Date.parse(a.createdAt||"")||0},bZ=a=>Object.values(a.caseStatesJson||{}).some(a=>["a","b"].some(b=>{let c=a?.[b];return!!(c&&("pending"!==c.status||(c.runs?.length||0)>0))})),b$=(a,b,c,d)=>{let e=a.filter(a=>bX(a,b,c,d));if(0!==e.length)return e.sort((a,b)=>{let c=Number(!!b.activeRun)-Number(!!a.activeRun);if(0!==c)return c;let d=Number(bZ(b))-Number(bZ(a));return 0!==d?d:bY(b)-bY(a)})[0]},b_=a=>{ad(a),b0.current=a?.id??null,bt(!1),ah(!1),aj("");let b=a.configJson||{},c=b.skillId||a.skillId||"";c&&aw(c),aC("dataset"),aK(b.repeatRounds||1),aM(b.agentMaxConcurrency||4);let d=G(b.evaluators||b.evaluationBatchEvaluators,b.evaluatorId||"");a2(d),a0(d[0]||""),al(b.taskDescription||"");let e=Array.isArray(b.linkedDatasetIds)?b.linkedDatasetIds:[];aE(b.selectedDatasetId||e[0]||""),aI(b.selectedCaseId||""),a6(e),bD(Array.isArray(b.checkedCaseIds)?b.checkedCaseIds:Array.isArray(b.selectedCaseIds)?b.selectedCaseIds:[]),aS(b.traceTimeRange||"7d"),aY(b.selectedTraceAId||""),a$(b.selectedTraceBId||""),bv(b.evaluationBatchId||""),bx(b.evaluationBatchTitle||""),bz(Array.isArray(b.evaluationBatchEvaluators)?b.evaluationBatchEvaluators:[]),b.versionAId||b.versionBId?b6.current={versionAId:b.versionAId,versionBId:b.versionBId}:b6.current=null;let f=a.caseStatesJson||{},g={};bB(g=f.a||f.b?{[b.selectedCaseId||"legacy-case"]:{a:f.a||{status:"pending"},b:f.b||{status:"pending"}}}:f),b2.current=g,bF(!!a.activeRun||w(g)||x(g)),bN(Object.keys(g).length>0?v({skillId:c,versionAId:b.versionAId||"",versionBId:b.versionBId||"",sourceMode:"dataset",selectedDatasetId:b.selectedDatasetId||"",linkedDatasetIds:b.linkedDatasetIds||[],selectedTraceAId:b.selectedTraceAId||"",selectedTraceBId:b.selectedTraceBId||"",repeatRounds:b.repeatRounds||1,agentMaxConcurrency:b.agentMaxConcurrency||4,autoEval:!0,recordTriggerDetails:!0,evaluatorIds:G(b.evaluators||b.evaluationBatchEvaluators,b.evaluatorId||""),caseIds:Object.keys(g)}):"")},b0=(0,c.useRef)(void 0);(0,c.useEffect)(()=>{aa&&(0,p.apiFetch)(`/api/debug/grayscale-tasks?user=${encodeURIComponent(aa)}`).then(a=>a.json()).then(a=>{if(Array.isArray(a)&&a.length>0){af(a),void 0===b0.current&&(b0.current=null);let b=(b0.current?a.find(a=>a.id===b0.current):null)||(C?b$(a,C,void 0,E):[...a].sort((a,b)=>bY(b)-bY(a))[0]);b?b_(b):C?bW(C):bW("")}else bW(C||"")}).catch(()=>{bW(C||"")})},[aa,C,E]);let b1=(0,c.useRef)(null);(0,c.useEffect)(()=>{b1.current=ac},[ac]);let b2=(0,c.useRef)(bA);(0,c.useEffect)(()=>{b2.current=bA},[bA]),(0,c.useEffect)(()=>{if(0===bI.current.size)return;let a=new Set(bI.current),b=!1;for(let c of Array.from(a)){let[d,e,f]=c.split("::"),g=Number(f),h=bA[d]?.[e],i=(h?.runs||[]).find(a=>a.runIndex===g);i&&("pass"===i.status||"fail"===i.status)&&(a.delete(c),b=!0)}b&&(bI.current=a,bH(a))},[bA]);let b3=(0,c.useRef)(bE);(0,c.useEffect)(()=>{b3.current=bE},[bE]);let b4=(0,c.useRef)({skillId:av,versionAId:ax,versionBId:az,sourceMode:aB,selectedDatasetId:aD,selectedCaseId:aH,selectedCaseIds:bC,checkedCaseIds:bC,taskDescription:ak,linkedDatasetIds:a5,traceTimeRange:aR,selectedTraceAId:aX,selectedTraceBId:aZ,repeatRounds:aJ,agentMaxConcurrency:aL,autoEval:!0,recordTriggerDetails:!0,evaluatorId:a_,evaluators:a1,evaluationBatchId:bu,evaluationBatchTitle:bw,evaluationBatchEvaluators:by});(0,c.useEffect)(()=>{b4.current={skillId:av,versionAId:ax,versionBId:az,sourceMode:aB,selectedDatasetId:aD,selectedCaseId:aH,selectedCaseIds:bC,checkedCaseIds:bC,taskDescription:ak,linkedDatasetIds:a5,traceTimeRange:aR,selectedTraceAId:aX,selectedTraceBId:aZ,repeatRounds:aJ,agentMaxConcurrency:aL,autoEval:!0,recordTriggerDetails:!0,evaluatorId:a_,evaluators:a1,evaluationBatchId:bu,evaluationBatchTitle:bw,evaluationBatchEvaluators:by}},[av,ax,az,aB,aD,aH,bC,ak,a5,aR,aX,aZ,aJ,aL,!0,!0,a_,a1,bu,bw,by]);let b5=(0,c.useMemo)(()=>v({skillId:av,versionAId:ax,versionBId:az,sourceMode:aB,selectedDatasetId:aD,linkedDatasetIds:a5,selectedTraceAId:aX,selectedTraceBId:aZ,repeatRounds:aJ,agentMaxConcurrency:aL,autoEval:!0,recordTriggerDetails:!0,evaluatorIds:a1,caseIds:bC}),[av,ax,az,aB,aD,a5,aX,aZ,aJ,aL,!0,!0,a1,bC]),b6=(0,c.useRef)(null),b7=(0,c.useCallback)(async(a,b,c)=>{if(!aa||!a)return;let d={user:aa};void 0!==b&&(d.configJson=b),void 0!==c&&(d.caseStatesJson=c);try{await (0,p.apiFetch)(`/api/debug/grayscale-tasks/${a}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(d)})}catch{}},[aa]),b8=(0,c.useCallback)(a=>{b1.current&&b7(b1.current.id,b4.current,a)},[b7]),b9=(0,c.useCallback)(a=>{br(!1);let b=b1.current;if(!b)return;bv(a.evaluatorRunId),bx(a.taskTitle),bz(a.selectedEvaluators);let c={...b4.current,evaluationBatchId:a.evaluatorRunId,evaluationBatchTitle:a.taskTitle,evaluationBatchEvaluators:a.selectedEvaluators};b7(b.id,c,void 0),ad(a=>a?{...a,configJson:{...a.configJson||{},...c}}:a)},[b7]),ca=(0,c.useCallback)(async(a,b,c)=>{if(!aa||!a||!b||b===bT)return null;let d=(c||ai||bU()).trim(),e=await (0,p.apiFetch)("/api/debug/grayscale-tasks",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({user:aa,taskName:d,skillId:a,versionAId:ax,versionBId:b})});if(e.ok){let a=await e.json();return af(b=>b.some(b=>b.id===a.id)?b:[a,...b]),{task:a,existed:!1}}if(409===e.status){let a=await e.json().catch(()=>({}));if(a.existingTask)return af(b=>b.some(b=>b.id===a.existingTask.id)?b:[a.existingTask,...b]),{task:a.existingTask,existed:!0}}return null},[aa,ai,ax]);(0,c.useEffect)(()=>{if(!C||!az||az===bT||bs)return;let a=b1.current;if(a&&bX(a,C,az,E))return;let b=b$(ae,C,az,E);if(b)return void b_(b);let c=!1;return ca(C,az).then(a=>{!c&&a?.task&&b_(a.task)}).catch(()=>{}),()=>{c=!0}},[C,E,az,ae,ca,bs]),(0,c.useEffect)(()=>{let a=b1.current;if(a&&av){if(!az)return;let b=a.skillId||a.configJson?.skillId||"";if(b&&b!==av)return;let c=a.skillVersionId||a.configJson?.versionBId||"";if(c&&c!==az)return;let d=a.configJson||{};if(!ax&&d.versionAId||!az&&d.versionBId)return;b7(a.id,{...b4.current,skillId:av,versionAId:ax,versionBId:az})}},[av,ax,az,b7]),(0,c.useEffect)(()=>{let a=b1.current;a&&b7(a.id,{...b4.current,selectedCaseIds:bC,checkedCaseIds:bC})},[bC,b7]),(0,c.useEffect)(()=>()=>{let a=b1.current;a&&b7(a.id,b4.current,b2.current),Object.values(bS.current).forEach(clearInterval)},[b7]),(0,c.useEffect)(()=>{if("trace"!==aB||!aa||!av)return void aU([]);aW(!0);let a=ar.find(a=>a.id===av),b=new URLSearchParams({user:aa});a&&b.set("skill",a.name);let c="1d"===aR?1:"3d"===aR?3:7;b.set("since",String(Date.now()-864e5*c)),(0,p.apiFetch)(`/api/observe/data?${b.toString()}`).then(a=>a.json()).then(a=>{Array.isArray(a)&&aU(a.slice(0,100))}).catch(()=>{}).finally(()=>aW(!1))},[aB,aa,av,aR,ar]),(0,c.useEffect)(()=>{aa&&Promise.all([(0,p.apiFetch)(`/api/agent-datasets?user=${encodeURIComponent(aa)}`).then(a=>a.json()),(0,p.apiFetch)(`/api/skills?user=${encodeURIComponent(aa)}`).then(a=>a.json())]).then(([a,b])=>{if(Array.isArray(a)&&aq(a),Array.isArray(b)){let a=b.map(a=>({id:a.id,name:a.name}));as(a),aw(b=>b||a[0]?.id||"")}}).catch(()=>{})},[aa]),(0,c.useEffect)(()=>{if(!aa||!av){au([]),ay(bT),aA("");return}(0,p.apiFetch)(`/api/skills/${av}/versions?user=${encodeURIComponent(aa)}`).then(a=>a.json()).then(a=>{if(Array.isArray(a)){au(a);let b=b6.current;if(b){let c=b.versionAId===bT||a.find(a=>a.id===b.versionAId),d=b.versionBId===bT||a.find(a=>a.id===b.versionBId);c?ay(b.versionAId):ay(bT),d?aA(b.versionBId):aA(a[a.length-1]?.id||a[0]?.id||""),b6.current=null}else{ay(bT);let b=a.find(a=>a.isCurrent);aA(b?.id||a[a.length-1]?.id||a[0]?.id||"")}}}).catch(()=>{})},[aa,av]),(0,c.useEffect)(()=>{if(!C)return;let a=b1.current,b=a?.skillId||a?.configJson?.skillId||"";b&&b!==C&&bW(C),av!==C&&aw(C)},[C,av]),(0,c.useEffect)(()=>{if(null==E||0===at.length)return;let a=at.find(a=>Number(a.version)===Number(E));a?.id&&az!==a.id&&aA(a.id)},[E,az,at]);let cb=async(a,b,c)=>{let d;if(!ac)return;let e=bJ(a,b,c);if(!bK(e))return;let f=cs.find(b=>b.id===a),g=f?.input||"";if(!g.trim())return void bL(e);let h="a"===b?ax:az,i=h===bT,j=i?null:at.find(a=>a.id===h),k=ar.find(a=>a.id===av),l=null;if(bB(d=>{let e,f,g=d[a];if(!g)return d;let h={...d,[a]:{...g,[b]:(f=((e=g[b]??{status:"pending"}).runs??[]).map(a=>{if(a.runIndex!==c)return a;let b={...a,status:"running"};return delete b.sessionId,delete b.evaluatorRunId,delete b.evaluationResultId,delete b.evaluationTraceId,delete b.score,delete b.tier,delete b.evaluations,delete b.failureType,delete b.failureDetail,delete b.timeCost,delete b.tokenUsage,delete b.skillTriggered,delete b.toolCallCount,delete b.toolCalls,delete b.completedAt,b.output="",b}),{...e,status:"running",runs:f})}};return l=h,h}),!l)return void bL(e);await b7(ac.id,b4.current,l);try{let f=await (0,p.apiFetch)("/api/debug/execute",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({user:aa||"debug-user",query:g,skill:i?void 0:k?.name,skillVersion:i||!j?void 0:Number(j.version),tagSkill:k?.name,mode:"grayscale"})}),h=await f.json();if(!f.ok||!h.jobId){bB(d=>{let e=d[a];if(!e)return d;let f=e[b];if(!f)return d;let g=(f.runs??[]).map(a=>a.runIndex===c?{...a,status:"fail",output:h.error||"dispatch failed"}:a);return{...d,[a]:{...e,[b]:{...f,runs:g}}}}),bL(e);return}d=h.jobId}catch(d){bB(e=>{let f=e[a];if(!f)return e;let g=f[b];if(!g)return e;let h=(g.runs??[]).map(a=>a.runIndex===c?{...a,status:"fail",output:String(d)}:a);return{...e,[a]:{...f,[b]:{...g,runs:h}}}}),bL(e);return}let m=async()=>{try{let f=await (0,p.apiFetch)(`/api/debug/execute/${d}`),g=await f.json();if("completed"===g.status)return bB(e=>{let f=e[a];if(!f)return e;let h=f[b];if(!h)return e;let i=(h.runs??[]).map(a=>a.runIndex===c?{...a,status:"executed",jobId:d,output:g.output??"",timeCost:g.timeCost,tokenUsage:g.tokenUsage??0,sessionId:g.sessionId,skillTriggered:!!j}:a),k={...e,[a]:{...f,[b]:{...h,runs:i}}};return b8(k),cc(a,b,c),k}),!0;if("failed"===g.status||g.error)return bB(e=>{let f=e[a];if(!f)return e;let h=f[b];if(!h)return e;let i=(h.runs??[]).map(a=>a.runIndex===c?{...a,status:"fail",jobId:d,output:g.error||"agent failed",failureType:"agent_error",failureDetail:g.error||"agent failed"}:a),j={...e,[a]:{...f,[b]:{...h,runs:i}}};return b8(j),j}),bL(e),!1;return null}catch{return null}},n=`retry_exec_${a}_${b}_${c}`;bS.current[n]&&clearInterval(bS.current[n]),bS.current[n]=setInterval(async()=>{null!==await m()&&(clearInterval(bS.current[n]),delete bS.current[n])},3e3)},cc=async(a,b,c,d)=>{if(!ac)return;let e=bJ(a,b,c);bK(e);let f=b2.current[a]?.[b]?.runs?.find(a=>a.runIndex===c),g=G(d&&d.length>0?d:H(f,a1),a_),h=null;if(bB(d=>{let e=d[a];if(!e)return d;let f=e[b];if(!f)return d;let i=(f.runs||[]).map(a=>{if(a.runIndex!==c)return a;let b={...a,status:"evaluating"},d=(b.evaluations||[]).map(a=>g.includes(a.evaluatorId)?{...a,status:"running",errorMessage:void 0}:a);if(b.evaluations=d.length>0?d:g.map(a=>({evaluatorId:a,evaluatorName:dl.get(a)||a,status:"running"})),b.evaluations.some(a=>"done"===a.status)){let a=function(a){let b=(a||[]).filter(a=>"done"===a.status&&"number"==typeof a.score&&Number.isFinite(a.score)).map(a=>a.score);if(0!==b.length)return Math.round(b.reduce((a,b)=>a+b,0)/b.length)}(b.evaluations);"number"==typeof a&&(b.score=a,b.tier=a>=80?"good":a>=50?"warn":"poor")}else delete b.evaluatorRunId,delete b.evaluationResultId,delete b.evaluationTraceId,delete b.score,delete b.tier;return delete b.failureType,delete b.failureDetail,delete b.completedAt,b.output="",b}),j={...f,runs:i,status:"evaluating"},k={...d,[a]:{...e,[b]:j}};return h=k,k}),!h)return void bL(e);await b7(ac.id,b4.current,h);try{let b=await (0,p.apiFetch)(`/api/debug/grayscale-tasks/${ac.id}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({user:aa||"debug-user",action:"evaluate",caseIds:[a],evaluatorId:a_,evaluators:g,onlyMissingEvaluation:!0})}),c=await b.json().catch(()=>({}));if(!b.ok){alert(c.error||("zh"===_?"评测重试失败":"Retry evaluation failed")),bL(e);return}cj(ac.id)}catch(a){alert(String(a)),bL(e)}},cd=(ai.trim()||ac?.taskName?.trim()||bU()).trim(),ce=cd||bV,cf=!cd,cg=(0,c.useCallback)(()=>{aj(a=>a||ac?.taskName||""),ah(!0)},[ac?.taskName]),ch=(0,c.useCallback)(()=>{let a=ai.trim();a?aj(a):ac?.taskName&&aj(ac.taskName),ah(!1)},[ac?.taskName,ai]);(0,c.useEffect)(()=>{if(!ag)return;let a=window.requestAnimationFrame(()=>{ao.current?.focus(),ao.current?.select()});return()=>window.cancelAnimationFrame(a)},[ag]);let ci=async(a,b)=>{if(!ac)return void alert("zh"===_?"请先创建或加载 A/B 测试任务后再评测。":"Create or load an A/B task before evaluating.");let c=b2.current[a]?.[b],d=(0,r.findLatestRunnableRunIndex)(c?.runs);null==d?alert("zh"===_?"当前侧暂无可评测的执行记录。":"No execution record is available to evaluate for this side."):await cc(a,b,d)},cj=(0,c.useCallback)(a=>{if(!aa||!a)return;let b=`task_${a}`;bS.current[b]&&clearInterval(bS.current[b]);let c=async()=>{try{let c=await (0,p.apiFetch)(`/api/debug/grayscale-tasks/${a}?user=${encodeURIComponent(aa)}`),d=await c.json();if(!c.ok)return;if(b1.current?.id!==a){clearInterval(bS.current[b]),delete bS.current[b];return}let e=d.caseStatesJson||{};bB(a=>(function(a,b){let c=["pass","fail","executed"],d=["pending","running","evaluating"],e=(a,b)=>{if(!a)return b??{status:"pending"};if(!b)return a;let e=a.runs??[],f=b.runs??[],g=e[e.length-1],h=f[f.length-1];return e.length>f.length&&g&&!c.includes(g.status)||g&&h&&e.length===f.length&&g.runIndex===h.runIndex&&d.includes(g.status)&&("evaluating"===g.status&&"evaluating"!==h.status&&"pass"!==h.status||"running"===g.status&&"pending"===h.status)?a:b},f=new Set([...Object.keys(a),...Object.keys(b)]),g={};for(let c of f)g[c]={a:e(a[c]?.a,b[c]?.a),b:e(a[c]?.b,b[c]?.b)};return g})(a,e)),ad(a=>a?{...a,...d}:d),d.activeRun||w(e)||d.configJson?.autoEval!==!1&&x(e)?bF(!0):(bF(!1),clearInterval(bS.current[b]),delete bS.current[b])}catch{}};c(),bS.current[b]=setInterval(c,2500)},[aa]);(0,c.useEffect)(()=>{ac?.id&&bE&&cj(ac.id)},[ac?.id,bE,cj]);let ck=async()=>{if(ac&&window.confirm("zh"===_?"确定终止当前 A/B 测试? 已 in-flight 的执行/评测会被标记为「用户终止」失败, 但产生的 trace 不会被清。":"Abort current A/B test? In-flight runs will be marked as user-aborted failures; existing traces are preserved."))try{let a=await (0,p.apiFetch)(`/api/debug/grayscale-tasks/${ac.id}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({user:aa||"debug-user",action:"abort"})});if(!a.ok){let b=await a.json().catch(()=>({}));alert(("zh"===_?"终止失败: ":"Abort failed: ")+(b.error||a.status));return}(()=>{if(0===bI.current.size)return;let a=new Set;bI.current=a,bH(a)})(),cj(ac.id)}catch(a){alert(String(a))}},cl=async()=>{if(!(b3.current||b1.current?.activeRun||w(b2.current))){if(!ac)return void alert("zh"===_?"请先新建并保存评测任务。":"Please create and save an evaluation task first.");if(0===bC.length)return void alert("zh"===_?"请至少选择 1 条样本后再执行。":"Please select at least one sample before running.");bF(!0),bN(b5),ad(a=>a?{...a,activeRun:{taskId:a.id,runId:"pending",status:"running",startedAt:Date.now()}}:a);try{let a=await (0,p.apiFetch)(`/api/debug/grayscale-tasks/${ac.id}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({user:aa||"debug-user",action:"start",caseIds:bC,evaluatorId:a_,evaluators:a1,agentMaxConcurrency:aL})}),b=await a.json().catch(()=>({}));if(!a.ok){if(409===a.status)return void cj(ac.id);bF(!1),ad(a=>a?{...a,activeRun:null}:a),alert(b.error||("zh"===_?"启动失败":"Failed to start"));return}cj(ac.id)}catch(a){bF(!1),ad(a=>a?{...a,activeRun:null}:a),alert(String(a))}}},cm=async()=>{if(cd&&aa&&av&&az&&az!==bT){an(!0);try{if(ac){let a={...b4.current,taskDescription:ak.trim()},b=await (0,p.apiFetch)(`/api/debug/grayscale-tasks/${ac.id}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({user:aa,taskName:cd,configJson:a})});if(b.ok){let a=await b.json();b_(a),af(b=>b.map(b=>b.id===a.id?a:b))}else if(409===b.status){let a=await b.json().catch(()=>({}));alert(a?.error||("zh"===_?"该版本下已存在同名 A/B 任务,请换一个名字":"An A/B task with this name already exists for this version")),aj(ac.taskName||"");return}}else{let a=await ca(av,az,cd);if(a){let b=a.task,c={...b4.current,skillId:b.skillId||b.configJson?.skillId||av,versionAId:ax,versionBId:az,taskDescription:ak.trim()},d=await (0,p.apiFetch)(`/api/debug/grayscale-tasks/${b.id}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({user:aa,taskName:cd,configJson:c})}),e=d.ok?await d.json():{...b,taskName:cd,configJson:c};b_(e),af(a=>a.some(a=>a.id===e.id)?a.map(a=>a.id===e.id?e:a):[e,...a]),a.existed&&alert("zh"===_?"该 Skill 版本已存在 A/B 任务(每个版本仅允许一个)。已切换到该任务并保存你的配置。":"An A/B task already exists for this skill version (one per version). Switched to it and saved your config.")}}}catch{}finally{ah(!1),an(!1)}}},cn=()=>{Object.entries(bS.current).forEach(([a,b])=>{a.startsWith("task_")&&(clearInterval(b),delete bS.current[a])}),bt(!0),bW(C||av),ah(!0)};(0,c.useEffect)(()=>{a>0&&cn()},[a]),(0,c.useEffect)(()=>{e>0&&bg(!0)},[e]);let co=C?ae.filter(a=>a.skillId===C||a.configJson?.skillId===C):av?ae.filter(a=>bX(a,av,az&&az!==bT?az:void 0)):ae,cp=async()=>{if(a9.trim()&&aa){bc(!0);try{let a=await (0,p.apiFetch)("/api/agent-datasets",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({user:aa,name:a9.trim()})});if(a.ok){let b=await a.json();aq(a=>[...a,b]);let c=[...a5,b.id];a6(c),aE(c[0]||""),a8(!1),ba(""),b1.current&&b7(b1.current.id,{...b4.current,selectedDatasetId:c[0]||"",linkedDatasetIds:c})}}catch{}finally{bc(!1)}}},cq=a=>a===bT?"zh"===_?"无 Skill":"No Skill":a&&"string"!=typeof a?a.semanticVersion||`v${a.version}`:"string"==typeof a?a:"--",cr=a5.length>0?a5:aD?[aD]:[],cs="dataset"===aB?ap.filter(a=>cr.includes(a.id)).flatMap(a=>(a.cases||[]).map(b=>({...b,datasetName:a.name,datasetId:a.id,sourceType:"dataset"}))):aT.map((a,b)=>(0,r.buildGrayscaleTraceCase)(a,b)),ct=(0,c.useMemo)(()=>new Map(cs.map(a=>[a.id,a])),[cs]);(0,c.useEffect)(()=>{if(0===cs.length)return;let a=new Set(cs.map(a=>a.id));if(0===bC.filter(b=>!a.has(b)).length)return;let b=bC.filter(b=>a.has(b));bD(b),ac&&b7(ac.id,{...b4.current,selectedCaseIds:b,checkedCaseIds:b})},[cs]),(0,c.useEffect)(()=>{cs.length>0&&!aH&&aI(cs[0].id)},[cs,aH]);let cu=cs.find(a=>a.id===aH)||cs[0],cv=cs.filter(a=>{if(!(a.input.toLowerCase().includes(bO.toLowerCase())||a.id.toLowerCase().includes(bO.toLowerCase())))return!1;let b=bA[a.id]||{a:{status:"pending"},b:{status:"pending"}},c=b.a.status,d=b.b.status;return"pending"===bQ?"pending"===c&&"pending"===d:"executed"===bQ?"executed"===c||"evaluating"===c||"running"===c||"executed"===d||"evaluating"===d||"running"===d:"evaluated"!==bQ||"pass"===c&&"pass"===d});cs.length,cs.filter(a=>{let b=bA[a.id]||{a:{status:"pending"},b:{status:"pending"}};return"pending"===b.a.status&&"pending"===b.b.status}).length;let cw=cs.filter(a=>{let b=bA[a.id]||{a:{status:"pending"},b:{status:"pending"}};return"executed"===b.a.status||"evaluating"===b.a.status||"running"===b.a.status||"executed"===b.b.status||"evaluating"===b.b.status||"running"===b.b.status}).length,cx=cs.filter(a=>{let b=bA[a.id]||{a:{status:"pending"},b:{status:"pending"}};return"pass"===b.a.status&&"pass"===b.b.status}).length,cy=bC.filter(a=>cs.some(b=>b.id===a)).length;cs.filter(a=>{let b=bA[a.id];return!!b&&"pass"===b.a.status&&"pass"===b.b.status&&(b.b.score??0)>(b.a.score??0)}).length;let cz=ar.find(a=>a.id===av),cA=at.find(a=>a.id===ax);at.find(a=>a.id===az),a5.map(a=>ap.find(b=>b.id===a)).filter(Boolean),ap.filter(a=>!a5.includes(a.id));let cB=bA[cu?.id]?.a?.status==="pass"||bA[cu?.id]?.a?.status==="executed",cC=!!bM&&bM===b5,cD=Object.keys(bA).filter(a=>{let b=bA[a];return!!b&&["a","b"].some(a=>{let c=b[a];return"pending"!==c.status||(c.runs?.length||0)>0})}),cE=(cC||w(bA))&&bC.length>0?bC:cD,cF=cE.flatMap(a=>["a","b"].map(b=>{let c=bA[a]?.[b];return c?.runCount||c?.runs?.length||0})).filter(a=>a>0),cG=cF.length>0?Math.max(1,...cF):aJ,cH=(a,b)=>{let c=a.reduce((a,c)=>{let d=bA[c]?.[b];return d?a+(d.runCount||d.runs?.length||0):a},0);return c>0?c:a.length*aJ},cI=a=>{let b,c,d=cE.length>0?cE:cu?.id?[cu.id]:[];if(0===d.length)return{status:"pending",runsCompleted:"zh"===_?"0/0 未执行":"0/0 Pending",timeCost:"—",tokenUsage:void 0,score:void 0,triggerRate:"—",toolCall:"—",sessionId:"",output:""};let e=d.map(b=>bA[b]?.[a]).filter(Boolean).flatMap(a=>a.runs&&a.runs.length>0?a.runs:"pending"!==a.status?[{...a,runIndex:1}]:[]),f=Math.max(cH(d,a),e.length||d.length),g=d.flatMap(a=>{let b=bA[a];return b?["a","b"].flatMap(a=>{let c=b[a];return c.runs&&c.runs.length>0?c.runs:"pending"!==c.status?[{...c,runIndex:1}]:[]}):[]}),h=cH(d,"a")+cH(d,"b"),i=g.filter(a=>["executed","evaluating","pass","fail"].includes(a.status)).length,j=g.length>0&&i<h,k=e.filter(a=>"running"===a.status).length,l=e.filter(a=>"evaluating"===a.status).length,m=e.filter(a=>"fail"===a.status).length,n=e.filter(a=>"executed"===a.status||"evaluating"===a.status||"pass"===a.status||"fail"===a.status),o=e.filter(a=>"pass"===a.status||"fail"===a.status),p=n.length,q=o.length,r=n.filter(a=>"fail"!==a.status),s=r.length,t=r.filter(a=>!!a.sessionId||"string"==typeof a.timeCost||"number"==typeof a.tokenUsage),u=(b=t.map(a=>"string"==typeof a.timeCost?parseFloat(a.timeCost):0).filter(a=>Number.isFinite(a)&&a>0)).length>0?`${(b.reduce((a,b)=>a+b,0)/b.length).toFixed(1)}s`:"—",v=(c=t.filter(a=>"number"==typeof a.tokenUsage&&(a.tokenUsage||0)>0)).length>0?Math.round(c.reduce((a,b)=>a+(b.tokenUsage||0),0)/c.length):void 0,w=t.find(a=>a.sessionId)?.sessionId||"",x=t.find(a=>a.output)?.output||"",y=t.filter(a=>a.skillTriggered).length,z=t.length>0?`${y}/${t.length} (${Math.round(y/t.length*100)}%)`:"—",A=Array.from(new Set(t.flatMap(a=>a.toolCalls||[]))).slice(0,3),B=t.reduce((a,b)=>a+(b.toolCallCount||0),0),C=A.length>0?`${A.join(", ")} \xb7 ${B}`:B>0?`${B} calls`:"无",D="pending";if(0===e.length?D="pending":j||k>0||p<f?D="running":l>0||q<f&&p===f?D="evaluating":m>0?D="failed":q===f&&f>0&&(D="completed"),"pending"===D)return{status:"pending",runsCompleted:"zh"===_?`0/${f} 未执行`:`0/${f} Pending`,timeCost:"—",tokenUsage:void 0,score:void 0,accuracy:"—",triggerRate:"—",toolCall:"—",sessionId:"",output:""};if("running"===D)return{status:"running",runsCompleted:"zh"===_?`${p}/${f} 执行中`:`${p}/${f} Running`,timeCost:"—",tokenUsage:void 0,score:void 0,accuracy:"—",triggerRate:"—",toolCall:"—",sessionId:"",output:""};if("evaluating"===D)return{status:"evaluating",runsCompleted:"zh"===_?`${q}/${f} 评估中`:`${q}/${f} Evaluating`,timeCost:u,tokenUsage:v,score:void 0,triggerRate:z,toolCall:C,accuracy:"—",sessionId:w,output:x};if("failed"===D)return{status:"fail",runsCompleted:"zh"===_?`${s}/${f} 执行完成 \xb7 ${m} 失败`:`${s}/${f} completed \xb7 ${m} failed`,timeCost:u,tokenUsage:v,score:void 0,triggerRate:z,toolCall:C,accuracy:"—",sessionId:w,output:x};let E=0,F=0,G=0,H=0,I=o.filter(a=>"string"==typeof a.timeCost||"number"==typeof a.tokenUsage);I.forEach(a=>{let b=0;"string"==typeof a.timeCost?b=parseFloat(a.timeCost)||0:"number"==typeof a.timeCost&&(b=a.timeCost),E+=b,F+=a.tokenUsage||0,"number"==typeof a.score&&(G+=a.score,H++)});let J=I.length>0?(E/I.length).toFixed(1)+"s":"—",K=I.length>0?Math.round(F/I.length):0,L=H>0?Math.round(G/H):void 0,M=o.filter(a=>a.skillTriggered).length,N=q>0?`${M}/${q} (${Math.round(M/q*100)}%)`:"—",O=Array.from(new Set(o.flatMap(a=>a.toolCalls||[]))).slice(0,3),P=o.reduce((a,b)=>a+(b.toolCallCount||0),0);return{status:"executed",runsCompleted:"zh"===_?`${q}/${f} 执行完成`:`${q}/${f} Completed`,timeCost:J,tokenUsage:K||void 0,score:L,accuracy:null!=L?`${L}%`:"—",triggerRate:N,toolCall:O.length>0?`${O.join(", ")} \xb7 ${P}`:P>0?`${P} calls`:"无",sessionId:o[0]?.sessionId||"",output:o[0]?.output||"Success"}},cJ=cI("a"),cK=cI("b"),cL="executed"===cJ.status||"pass"===cJ.status,cM="executed"===cK.status||"pass"===cK.status,cN="evaluating"===cJ.status,cO="evaluating"===cK.status,cP="fail"===cJ.status,cQ="fail"===cK.status,cR=!!ac?.activeRun,cS=x(bA),cT=bE||cR||w(bA)||cS,cU=bC.length>0&&bC.some(a=>{let b=bA[a];return!!b&&["a","b"].some(a=>{let c=b[a];return"pending"!==c.status||(c.runs?.length||0)>0})})&&cC,cV=cT?"zh"===_?"执行中":"Running":cU?"zh"===_?"重新执行":"Run Again":"zh"===_?"开始执行":"Start Execution",cW=cL&&cM,cX=!!(av&&az&&az!==bT),cY=!cT&&cX&&a1.length>0&&("dataset"===aB?cr.length>0&&cy>0:!!(aX||aZ||aT.length>0)),cZ=!cY,c$=cU||cD.length>0||cw>0||cx>0||cW,c_=cT||!c$&&cY,c0=cY?"zh"===_?"✓ 配置完成":"Configured":"zh"===_?"配置中":"Configuring",c1={config:cY||cT||c$,exec:!cT&&(!!c$||!c_),result:cT||!c$},c2=cE.length>0?cE:bC.length>0?bC:void 0,c3=(0,q.calculateAbScoring)(bA,{repeatRounds:aJ,caseIds:c2}),c4=cW?c3.decisionLabel:"zh"===_?"等待评估完成":"Waiting for evaluation",c5=cW?null==c3.totalScore?"zh"===_?"— 分":"— pts":"zh"===_?`${c3.totalScore} 分`:`${c3.totalScore} pts`:"zh"===_?"待评分":"Pending score",c6=cW?"insufficient"===c3.decision?"zh"===_?`当前只有 ${c3.sampleSize} 个完成配对样本;N < ${q.DEFAULT_AB_SCORING_POLICY.minSampleSize} 不输出发布结论,请补齐样本后复测。`:`Only ${c3.sampleSize} paired samples are complete; add samples before making a release decision.`:"reject"===c3.decision?(S=c3.hardGates.map(a=>a.label).join("、"),"zh"===_?`命中 hard gate:${S}。至少一个维度已低于拒绝阈值,因此当前结论为打回。建议先按打回类别修正后复测。`:`Hard gate hit: ${c3.hardGates.map(a=>a.label).join(", ")}. At least one dimension is below the reject threshold, so the current decision is reject. Revise and retest first.`):"monitor-release"===c3.decision?"zh"===_?"可小流量监控发布,并持续观察 Token 成本、触发率和多轮一致性。":"Proceed with monitored rollout and watch token cost, invoke rate, and variance.":"zh"===_?"三维指标均达标,可进入全量发布,同时保留后续复测记录。":"All three dimensions pass; proceed to full release and keep retesting over time.":"zh"===_?"等待所有执行记录评估完成后,再查看综合判定和上线动作。":"Wait for all execution records to finish evaluation before taking a release action.",c7=(()=>{if("trace"===aB){let a=[aX,aZ].filter(Boolean).length||aT.length;return"zh"===_?`${a} 条链路`:`${a} traces`}let a=cr.length;return"zh"===_?`${a} 数据集`:`${a} datasets`})(),c8="zh"===_?`${cy} 样本 x ${aJ} 轮 \xb7 ${c7}`:`${cy} samples x ${aJ} rounds \xb7 ${c7}`,c9=bC.length>0?bC:cD,da=2*c9.length*aJ,db=a=>c9.reduce((b,c)=>{let d=bA[c];return d?b+["a","b"].reduce((b,c)=>{let e=d[c];return e?b+(e.runs&&e.runs.length>0?e.runs:"pending"!==e.status?[{...e,runIndex:1}]:[]).filter(b=>a(b.status)).length:b},0):b},0),dc=db(a=>["executed","evaluating","pass","fail"].includes(a)),dd=db(a=>"pass"===a||"fail"===a),de=0===da?"zh"===_?"0/0 未选择样本":"0/0 No samples selected":cT?"zh"===_?`${dc}/${da} 完成 \xb7 执行中`:`${dc}/${da} done \xb7 Running`:dd>=da?"zh"===_?`${dc}/${da} 完成 \xb7 已评分`:`${dc}/${da} done \xb7 Scored`:dc>dd?"zh"===_?`${dc}/${da} 完成 \xb7 ${dd}/${da} 已评分`:`${dc}/${da} done \xb7 ${dd}/${da} scored`:"zh"===_?`${dc}/${da} 完成 \xb7 待执行`:`${dc}/${da} done \xb7 Pending`,df=cW?c4:cx>0?"zh"===_?`${cx}/${c9.length||cy} 样本已评估`:`${cx}/${c9.length||cy} samples evaluated`:"zh"===_?"等待评估完成":"Waiting for evaluation",dg=a=>1===a?"done":2===a?cw>0||cB?"done":"active":3===a&&(cx>0||cB)?"active":"pending",dh=ac?.createdAt?new Date(ac.createdAt).toLocaleString("zh"===_?"zh-CN":"en-US",{month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"}):"zh"===_?"未保存":"Unsaved",di="",dj="zh"===_?"草稿":"Draft";bE?(di="is-running",dj="zh"===_?"运行中":"Running"):cW?"direct-release"===c3.decision?(di="is-done",dj="zh"===_?"已通过":"Pass"):"reject"===c3.decision?(di="is-reject",dj="zh"===_?"打回":"Reject"):"insufficient"===c3.decision?(di="is-warn",dj="zh"===_?"样本不足":"Insufficient"):(di="is-warn",dj="zh"===_?"需关注":"Review"):ac&&(dj="zh"===_?"待执行":"Pending");let dk=(0,c.useMemo)(()=>D,[]),dl=(0,c.useMemo)(()=>new Map(dk.map(a=>[a.id,a.name])),[dk]),dm=a1.every(a=>D.some(b=>b.id===a));(0,c.useEffect)(()=>{P&&!bj&&bi(a=>a.config===c1.config&&a.exec===c1.exec&&a.result===c1.result?a:c1)},[c1,bj,P]),(0,c.useEffect)(()=>{P&&bk(!1)},[ac?.id,P]);let dn=(0,c.useMemo)(()=>[{value:"1",label:"zh"===_?"1 轮":"1 round"},{value:"2",label:"zh"===_?"2 轮":"2 rounds"},{value:"3",label:"zh"===_?"3 轮":"3 rounds"},{value:"5",label:"zh"===_?"5 轮":"5 rounds"},{value:"10",label:"zh"===_?"10 轮":"10 rounds"}],[_]),dp=0===a1.length?"zh"===_?"请选择评估器":"Select evaluators":a1.length<=2?a1.map(a=>dl.get(a)||a).join("、"):`${a1.slice(0,2).map(a=>dl.get(a)||a).join("、")} ${"zh"===_?`等 ${a1.length} 项`:`and ${a1.length-2} more`}`,dq=0===cr.length?"zh"===_?"请选择数据集":"Select datasets":cr.length<=2?cr.map(a=>ap.find(b=>b.id===a)?.name||a).join("、"):`${cr.slice(0,2).map(a=>ap.find(b=>b.id===a)?.name||a).join("、")} ${"zh"===_?`等 ${cr.length} 项`:`and ${cr.length-2} more`}`,dr=(0,c.useMemo)(()=>[{value:bT,label:"zh"===_?"无 Skill":"No Skill"},...at.map(a=>({value:a.id,label:`v${a.semanticVersion||a.version}`}))],[bT,_,at]),ds=ax===bT?"zh"===_?"默认对照组不加载 Skill,也可选择同 Skill 的历史版本":"Control runs without Skill by default; a previous version is optional":`${"zh"===_?"对照组加载":"Control loads"} ${cz?.name||"Skill"} ${cq(cA||ax)}`,dt=a=>a===bT?"grayscale-baseline-agent":"grayscale-skill-agent",du=a=>a===bT?"zh"===_?"基线 Agent":"Baseline Agent":"Skill Agent",dv=(T=ax||bT,`${du(T)} \xb7 ${dt(T)}`),dw=aJ>1?"zh"===_?"多轮运行可观察波动和稳定性":"Multiple rounds reveal variance and stability":"zh"===_?"单轮适合快速试跑与校验配置":"One round is best for quick validation",dx=cr.reduce((a,b)=>{let c=ap.find(a=>a.id===b);return a+(Array.isArray(c?.cases)?c.cases.length:0)},0),dy=cr.length>0?`${"zh"===_?"当前共选择":"Selected"} ${cr.length} ${"zh"===_?"个数据集,合计":"datasets with"} ${dx} ${"zh"===_?"条样本":"cases"}`:"zh"===_?"先选择数据集,再勾选要执行的样本":"Choose datasets before selecting cases",dz=dm?"zh"===_?"使用预置评估器,适合直接开始评测":"Built-in evaluator for a quick start":"zh"===_?"使用自定义评估器,适合特定业务规则":"Custom evaluator for domain-specific scoring";return(0,b.jsxs)("div",{className:`ab-page-v2${P?" gray-hifi":""}`,style:{paddingBottom:60},children:[(0,b.jsxs)("div",{style:{padding:"24px 28px 12px 28px"},children:[P&&(0,b.jsxs)("div",{className:"gh-task-row",children:[(0,b.jsxs)("div",{className:"gh-task-title-row",children:[ag?(0,b.jsx)("input",{ref:ao,className:"gh-task-title",value:ai,onChange:a=>aj(a.target.value),onBlur:ch,onKeyDown:a=>{"Enter"===a.key?(a.preventDefault(),ch()):"Escape"===a.key&&(a.preventDefault(),aj(ac?.taskName||""),ah(!1))},placeholder:bV,spellCheck:!1,"aria-label":"zh"===_?"任务名称":"Task name"}):(0,b.jsx)("button",{type:"button",className:`gh-task-title-trigger${cf?" is-placeholder":""}`,onClick:cg,"aria-label":"zh"===_?"编辑任务名称":"Edit task name",children:ce}),(0,b.jsx)("span",{className:`gh-task-state ${di}`,children:dj}),(0,b.jsx)("span",{className:"gh-task-cat",children:"A/B Compare"})]}),(0,b.jsxs)("div",{className:"gh-task-info-row",children:[(0,b.jsx)("div",{className:"gh-task-meta",children:(0,b.jsxs)("span",{className:"gh-task-meta-item",children:[(0,b.jsx)("span",{className:"ico",children:"⏱"}),dh]})}),(0,b.jsxs)("div",{className:"gh-task-actions",children:[(0,b.jsxs)("button",{type:"button",className:"gh-btn",onClick:cn,style:{borderColor:"var(--accent)",color:"var(--accent)",fontWeight:600},children:["+ ","zh"===_?"新建任务":"New Task"]}),(0,b.jsx)("button",{type:"button",className:"gh-btn",onClick:()=>bg(!0),children:"zh"===_?"历史任务":"History"}),(0,b.jsx)("button",{type:"button",className:"gh-btn",onClick:cm,children:"zh"===_?"保存配置":"Save"}),(0,b.jsxs)("button",{type:"button",className:"gh-btn is-primary",onClick:cl,disabled:cZ,children:["▶ ","zh"===_?"复测":"Re-run"]})]})]})]}),!u&&(0,b.jsxs)("div",{className:"sa-back-line",style:{display:"flex",alignItems:"center",gap:8,margin:"0 0 16px 0"},children:[(0,b.jsxs)("button",{className:"sa-back-btn",onClick:()=>ab.push("/skill-eval"),children:[(0,b.jsx)("span",{children:"←"}),"zh"===_?"返回综合分析":"Back to Dashboard"]}),(0,b.jsx)("span",{children:"/"}),(0,b.jsx)("b",{children:"zh"===_?"A/B测试":"A/B Testing"})]}),!C&&!ac&&(0,b.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:12,flexWrap:"wrap",background:"#FAF5FF",border:"1px dashed var(--accent, #7E22CE)",borderRadius:12,padding:"14px 18px",marginBottom:16},children:[(0,b.jsxs)("span",{style:{fontSize:13,fontWeight:700,color:"#7E22CE",whiteSpace:"nowrap"},children:["+ ","zh"===_?"新建 A/B 任务":"New A/B Task"]}),(0,b.jsx)("input",{value:ai,onChange:a=>aj(a.target.value),placeholder:"zh"===_?"给这个任务起个名字…":"Name this task…",spellCheck:!1,style:{flex:1,minWidth:200,height:34,borderRadius:6,border:"1px solid #E7E5E4",padding:"0 12px",fontSize:13,outline:"none"}}),(0,b.jsx)("button",{type:"button",onClick:cm,disabled:!av||!az||az===bT||!ai.trim()||am,style:{height:34,padding:"0 18px",borderRadius:6,border:"none",background:"#7E22CE",color:"#fff",fontSize:13,fontWeight:600,whiteSpace:"nowrap",cursor:av&&az&&az!==bT&&ai.trim()&&!am?"pointer":"not-allowed",opacity:av&&az&&az!==bT&&ai.trim()&&!am?1:.5},children:"zh"===_?"创建任务":"Create"}),(0,b.jsx)("span",{style:{fontSize:11,color:"#A1A1AA",whiteSpace:"nowrap"},children:"zh"===_?"先在下方选好 Skill 与 B 实验版本":"Pick a skill & B version below"})]}),(0,b.jsx)("div",{className:"gh-skill-summary",style:{background:"white",borderRadius:12,padding:"20px 24px",color:"#1C1917",display:"flex",alignItems:"center",justifyContent:"space-between",gap:20,marginBottom:16,boxShadow:"0 4px 20px rgba(0,0,0,0.05)",border:"1px solid rgba(0,0,0,0.08)"},children:(0,b.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:16},children:[(0,b.jsx)("div",{style:{width:44,height:44,borderRadius:8,background:"#3730A3",display:"flex",alignItems:"center",justifyContent:"center",fontSize:14,fontWeight:700,color:"white",fontFamily:"ui-monospace, monospace"},children:cz?.name?cz.name.replace(/[^a-zA-Z0-9]/g,"").slice(0,3).toUpperCase():"SKL"}),(0,b.jsx)("div",{children:(0,b.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:16,flexWrap:"wrap"},children:[(0,b.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:4},children:[(0,b.jsx)("span",{style:{fontSize:9,color:"#78716C",fontFamily:"ui-monospace, monospace",textTransform:"uppercase"},children:"评测 Skill 对象"}),(0,b.jsx)("select",{value:av,onChange:a=>{ac||aw(a.target.value)},disabled:!!ac,style:{background:"#F5F5F4",border:"1px solid #E7E5E4",color:"#1C1917",borderRadius:6,padding:"6px 12px",fontSize:14,fontWeight:700,cursor:ac?"not-allowed":"pointer",opacity:ac?.75:1,outline:"none",minWidth:160,height:34},children:ar.map(a=>(0,b.jsx)("option",{value:a.id,style:{background:"white",color:"#1C1917"},children:a.name},a.id))})]}),(0,b.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:4},children:[(0,b.jsx)("span",{style:{fontSize:9,color:"#78716C",fontFamily:"ui-monospace, monospace",textTransform:"uppercase"},children:"A 对照版本"}),(0,b.jsxs)("select",{value:ax,onChange:a=>ay(a.target.value),style:{background:"#F5F5F4",border:"1px solid #E7E5E4",color:"#1C1917",borderRadius:6,padding:"6px 12px",fontSize:13,fontWeight:600,cursor:"pointer",outline:"none",minWidth:120,height:34},children:[(0,b.jsx)("option",{value:bT,style:{background:"white",color:"#1C1917"},children:"zh"===_?"无 Skill":"No Skill"}),at.map(a=>(0,b.jsxs)("option",{value:a.id,style:{background:"white",color:"#1C1917"},children:["v",a.semanticVersion||a.version]},a.id))]})]}),(0,b.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:4},children:[(0,b.jsx)("span",{style:{fontSize:9,color:"#78716C",fontFamily:"ui-monospace, monospace",textTransform:"uppercase"},children:"B 实验版本"}),(0,b.jsxs)("select",{value:az,onChange:a=>{ac||aA(a.target.value)},disabled:!!ac,style:{background:"#F5F5F4",border:"1px solid #E7E5E4",color:"#1C1917",borderRadius:6,padding:"6px 12px",fontSize:13,fontWeight:600,cursor:ac?"not-allowed":"pointer",opacity:ac?.75:1,outline:"none",minWidth:120,height:34},children:[(0,b.jsx)("option",{value:bT,style:{background:"white",color:"#1C1917"},children:"zh"===_?"无 Skill":"No Skill"}),at.map(a=>(0,b.jsxs)("option",{value:a.id,style:{background:"white",color:"#1C1917"},children:["v",a.semanticVersion||a.version]},a.id))]})]})]})})]})}),P&&(V=(U=[dg(1),dg(2),dg(3)]).filter(a=>"done"===a).length,W="zh"===_?["配置","运行 · A/B 评测","测评结果"]:["Config · Cases","Run · A/B Eval","Result · Analysis"],X=[c8,de,df],(0,b.jsx)("div",{className:"gh-stepper",style:{"--gh-done-pct":`${0===V?0:V>=2?100:50}%`},children:(0,b.jsxs)("div",{className:"gh-stepper-row",children:[(0,b.jsxs)("div",{className:"gh-step gh-step-origin",children:[(0,b.jsx)("div",{className:"gh-step-circle"}),(0,b.jsxs)("div",{className:"gh-step-body",children:[(0,b.jsx)("div",{className:"gh-step-name",children:"zh"===_?"A/B 测试":"A/B Testing"}),(0,b.jsx)("div",{className:"gh-step-sub",children:"zh"===_?"启用 vs 未启用 Skill 的差异对照":"Skill on vs off comparison"})]})]}),[1,2,3].map(a=>{let c=U[a-1];return(0,b.jsxs)("div",{className:`gh-step ${"done"===c?"is-done":"active"===c?"is-active":"is-idle"}`,children:[(0,b.jsx)("div",{className:"gh-step-circle",children:"done"===c?null:(0,b.jsx)("span",{children:a})}),(0,b.jsxs)("div",{className:"gh-step-body",children:[(0,b.jsx)("div",{className:"gh-step-name",children:W[a-1]}),(0,b.jsx)("div",{className:"gh-step-sub",children:X[a-1]})]})]},a)})]})})),(0,b.jsxs)("div",{className:"v2-stepper",style:{position:"sticky",top:16,zIndex:40,background:"var(--card-bg)",border:"1px solid var(--border)",borderRadius:12},children:[(0,b.jsxs)("div",{className:`v2-step ${dg(1)}`,children:[(0,b.jsx)("div",{className:"v2-step-circle",children:"done"===dg(1)?(0,b.jsx)(L,{}):"1"}),(0,b.jsxs)("div",{className:"v2-step-info",children:[(0,b.jsx)("span",{className:"v2-step-label",children:"STEP 1 · CONFIG"}),(0,b.jsx)("span",{className:"v2-step-name",children:"zh"===_?"准备: 配置实验参数":"Config params"}),(0,b.jsx)("span",{className:"v2-step-meta",style:{color:"var(--success)"},children:c8})]})]}),(0,b.jsxs)("div",{className:`v2-step ${dg(2)}`,children:[(0,b.jsx)("div",{className:"v2-step-circle",children:"done"===dg(2)?(0,b.jsx)(L,{}):"2"}),(0,b.jsxs)("div",{className:"v2-step-info",children:[(0,b.jsx)("span",{className:"v2-step-label",children:"STEP 2 · EXECUTION"}),(0,b.jsx)("span",{className:"v2-step-name",children:"zh"===_?"执行: 运行 A/B 测试":"Run A/B Testing"}),(0,b.jsx)("span",{className:"v2-step-meta",style:{color:"var(--success)"},children:de})]})]}),(0,b.jsxs)("div",{className:`v2-step ${dg(3)}`,children:[(0,b.jsx)("div",{className:"v2-step-circle",children:"done"===dg(3)?(0,b.jsx)(L,{}):"3"}),(0,b.jsxs)("div",{className:"v2-step-info",children:[(0,b.jsx)("span",{className:"v2-step-label",children:"STEP 3 · DECISION"}),(0,b.jsx)("span",{className:"v2-step-name",children:"zh"===_?"决策: 综合判定 & 上线":"Decision verdict"}),(0,b.jsx)("span",{className:"v2-step-meta",style:{color:"var(--primary)",fontWeight:600},children:df})]})]})]})]}),(0,b.jsxs)("div",{style:{padding:"0 28px",display:"flex",flexDirection:"column",gap:16},children:[(0,b.jsxs)("div",{className:"v2-stage-card config",style:{background:"white",border:"0.5px solid rgba(0,0,0,0.08)"},"data-collapsible":P?"1":void 0,"data-collapsed":P?bh.config?"1":"0":void 0,children:[(0,b.jsxs)("div",{className:"v2-stage-card-header",style:{borderBottom:"0.5px solid rgba(0,0,0,0.08)"},onClick:P?()=>bl("config"):void 0,children:[(0,b.jsx)("div",{className:"v2-stage-num-badge",children:(0,b.jsx)(M,{})}),(0,b.jsxs)("div",{className:"v2-stage-title-block",children:[(0,b.jsxs)("div",{className:"v2-stage-card-title",children:["zh"===_?"配置":"Config",(0,b.jsx)("span",{className:`v2-stage-pill ${cY?"done":"pending"}`,style:{background:cY?"#E1F5EE":"#F5F4EE",color:cY?"#0F6E56":"#5F5E5A",fontSize:11,padding:"2px 8px",borderRadius:4},children:c0})]}),(0,b.jsx)("div",{className:"v2-stage-card-subtitle",children:"zh"===_?"设置参数 · 实验版本由 Skill 分析决定,对照版本由本配置决定":"Set up parameters · Experiment version comes from Skill analysis, control version from this config"})]}),P&&(0,b.jsx)("button",{type:"button",className:"gh-card-chev","aria-label":bh.config?"zh"===_?"展开":"Expand":"zh"===_?"折叠":"Collapse",onClick:a=>{a.stopPropagation(),bl("config")}})]}),(0,b.jsxs)("div",{className:"v2-stage-card-body",children:[(0,b.jsxs)("div",{className:"v2-config-grid",children:[(0,b.jsxs)("div",{className:"v2-config-item v2-config-item--compact",children:[(0,b.jsxs)("span",{className:"v2-config-item-label",children:["zh"===_?"重复轮次":"Repeat rounds"," ",(0,b.jsx)("span",{className:"req",children:"*"})]}),(0,b.jsx)(h.Select,{"aria-label":"zh"===_?"选择重复轮次":"Select repeat rounds",value:String(aJ),onChange:a=>{let b=Number(a);aK(b),ac&&b7(ac.id,{...b4.current,repeatRounds:b})},options:dn,active:aJ>1,size:"sm",className:"v2-config-select"}),(0,b.jsx)("span",{className:"v2-config-item-hint",children:dw})]}),(0,b.jsxs)("div",{className:"v2-config-item v2-config-item--compact",children:[(0,b.jsx)("span",{className:"v2-config-item-label",children:"zh"===_?"数据集":"Dataset"}),(0,b.jsxs)("div",{style:{position:"relative"},children:[(0,b.jsxs)("button",{type:"button","aria-label":"zh"===_?"选择数据集":"Select datasets",className:"v2-config-select",onClick:()=>aG(a=>!a),style:{width:"100%",minHeight:34,border:cr.length>0?"1px solid var(--primary)":"1px solid var(--border)",borderRadius:6,background:"var(--background)",color:cr.length>0?"var(--foreground)":"var(--foreground-muted)",display:"flex",alignItems:"center",justifyContent:"space-between",gap:8,padding:"0 10px",fontSize:13,textAlign:"left",cursor:"pointer"},children:[(0,b.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:dq}),(0,b.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:6,flexShrink:0},children:[cr.length>0&&(0,b.jsx)("span",{style:{fontSize:10,fontWeight:700,color:"var(--primary)",background:"var(--primary-subtle)",borderRadius:99,padding:"0 6px"},children:cr.length}),(0,b.jsx)("span",{style:{color:"var(--foreground-muted)",fontSize:11},children:aF?"▲":"▼"})]})]}),aF&&(0,b.jsx)("div",{style:{position:"absolute",top:"calc(100% + 4px)",left:0,right:0,zIndex:60,background:"var(--background)",border:"1px solid var(--border)",borderRadius:8,boxShadow:"0 8px 24px rgba(0,0,0,.12)",maxHeight:240,overflowY:"auto",padding:4},children:ap.map(a=>{let c=cr.includes(a.id);return(0,b.jsxs)("button",{type:"button",onClick:()=>{var b;let c,d;(b=a.id)&&(d=(c=F(cr.includes(b)?cr.filter(a=>a!==b):[...cr,b]))[0]||"",a6(c),aE(d),bD([]),ac&&b7(ac.id,{...b4.current,selectedDatasetId:d,linkedDatasetIds:c,selectedCaseIds:[],checkedCaseIds:[],selectedCaseId:""}))},style:{width:"100%",display:"flex",alignItems:"center",gap:8,padding:"7px 9px",border:"none",borderRadius:5,background:c?"var(--primary-subtle)":"transparent",color:"var(--foreground)",cursor:"pointer",fontSize:12.5,textAlign:"left"},children:[(0,b.jsx)("span",{style:{width:15,height:15,borderRadius:4,border:c?"1px solid var(--primary)":"1px solid var(--border)",background:c?"var(--primary)":"var(--background)",color:"var(--primary-foreground)",display:"inline-flex",alignItems:"center",justifyContent:"center",fontSize:10,fontWeight:700,flexShrink:0},children:c?"✓":""}),(0,b.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:a.name})]},a.id)})})]}),(0,b.jsx)("span",{className:"v2-config-item-hint",children:dy})]}),(0,b.jsxs)("div",{className:"v2-config-item v2-config-item--compact",children:[(0,b.jsx)("span",{className:"v2-config-item-label",children:"zh"===_?"评估器":"Evaluator"}),(0,b.jsxs)("div",{style:{position:"relative"},children:[(0,b.jsxs)("button",{type:"button","aria-label":"zh"===_?"选择评估器":"Select evaluators",className:"v2-config-select",onClick:()=>a4(a=>!a),style:{width:"100%",minHeight:34,border:a1.length>0?"1px solid var(--primary)":"1px solid var(--border)",borderRadius:6,background:"var(--background)",color:a1.length>0?"var(--foreground)":"var(--foreground-muted)",display:"flex",alignItems:"center",justifyContent:"space-between",gap:8,padding:"0 10px",fontSize:13,textAlign:"left",cursor:"pointer"},children:[(0,b.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:dp}),(0,b.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:6,flexShrink:0},children:[a1.length>0&&(0,b.jsx)("span",{style:{fontSize:10,fontWeight:700,color:"var(--primary)",background:"var(--primary-subtle)",borderRadius:99,padding:"0 6px"},children:a1.length}),(0,b.jsx)("span",{style:{color:"var(--foreground-muted)",fontSize:11},children:a3?"▲":"▼"})]})]}),a3&&(0,b.jsx)("div",{style:{position:"absolute",top:"calc(100% + 4px)",left:0,right:0,zIndex:60,background:"var(--background)",border:"1px solid var(--border)",borderRadius:8,boxShadow:"0 8px 24px rgba(0,0,0,.12)",maxHeight:240,overflowY:"auto",padding:4},children:dk.map(a=>{let c=a1.includes(a.id);return(0,b.jsxs)("button",{type:"button",onClick:()=>{var b;let c;(b=a.id)&&(a2(c=G(a1.includes(b)?a1.filter(a=>a!==b):[...a1,b])),a0(c[0]||""),ac&&b7(ac.id,{...b4.current,evaluatorId:c[0]||"",evaluators:c}))},style:{width:"100%",display:"flex",alignItems:"center",gap:8,padding:"7px 9px",border:"none",borderRadius:5,background:c?"var(--primary-subtle)":"transparent",color:"var(--foreground)",cursor:"pointer",fontSize:12.5,textAlign:"left"},children:[(0,b.jsx)("span",{style:{width:15,height:15,borderRadius:4,border:c?"1px solid var(--primary)":"1px solid var(--border)",background:c?"var(--primary)":"var(--background)",color:"var(--primary-foreground)",display:"inline-flex",alignItems:"center",justifyContent:"center",fontSize:10,fontWeight:700,flexShrink:0},children:c?"✓":""}),(0,b.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:a.name})]},a.id)})})]}),(0,b.jsx)("span",{className:"v2-config-item-hint",children:dz})]}),(0,b.jsxs)("div",{className:"v2-config-item v2-config-item--compact",children:[(0,b.jsx)("span",{className:"v2-config-item-label",children:"zh"===_?"对照组 Skill 版本":"Control Skill version"}),(0,b.jsx)(h.Select,{"aria-label":"zh"===_?"选择对照组 Skill 版本":"Select control Skill version",value:ax||bT,onChange:a=>{ay(a),ac&&b7(ac.id,{...b4.current,versionAId:a})},options:dr,active:!!(ax&&ax!==bT),size:"sm",className:"v2-config-select"}),(0,b.jsx)("span",{className:"v2-config-item-hint",children:ds}),(0,b.jsx)("span",{className:"v2-config-item-hint ab-agent-hint",children:dv})]})]}),(0,b.jsx)("div",{style:{borderTop:"1px dotted rgba(0, 0, 0, 0.15)",margin:"16px 0"}}),(0,b.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,fontSize:13,fontWeight:700,color:"#2C2C2A",marginBottom:12},children:[(0,b.jsx)(N,{}),(0,b.jsx)("span",{children:"zh"===_?"输入来源":"Input Source"})]}),(0,b.jsx)("div",{className:"v2-tabs",style:{marginBottom:12},children:(0,b.jsx)("button",{className:`v2-tab ${"dataset"===aB?"active":""}`,onClick:()=>{aC("dataset"),ac&&b7(ac.id,{...b4.current,sourceMode:"dataset"})},children:"zh"===_?"从数据集发起":"From dataset"})}),(0,b.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:6,height:360,overflowY:"auto",marginBottom:12,paddingRight:4},children:[cv.map((a,c)=>{let d=aH===a.id,e=bC.includes(a.id);return(0,b.jsxs)("div",{className:`v2-dataset-row ${d?"current":""}`,onClick:()=>{aI(a.id),ac&&b7(ac.id,{...b4.current,selectedCaseId:a.id})},style:{cursor:"pointer",display:"flex",alignItems:"center",gap:12,padding:"10px 14px",borderRadius:8,border:d?"1px solid #185FA5":"1px solid #E7E5E4",background:d?"#F0F7FF":"white",marginBottom:6,transition:"all 0.2s"},children:[(0,b.jsx)("input",{type:"checkbox",checked:e,onClick:a=>a.stopPropagation(),onChange:()=>{bD(b=>{let c=b.includes(a.id)?b.filter(b=>b!==a.id):[...b,a.id];return ac&&b7(ac.id,{...b4.current,selectedCaseIds:c,checkedCaseIds:c}),c})},style:{width:16,height:16,cursor:"pointer",accentColor:"#185FA5"}}),d?(0,b.jsx)("span",{className:"idx",style:{background:"#185FA5",color:"white",borderColor:"#185FA5",fontWeight:600,fontSize:11,padding:"2px 8px",borderRadius:4},children:"zh"===_?"当前":"Current"}):(0,b.jsx)("span",{className:"idx",style:{fontFamily:"ui-monospace, monospace",fontSize:12},children:String(c+1).padStart(2,"0")}),(0,b.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,b.jsx)("div",{style:{fontSize:13,fontWeight:600,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:a.input}),"trace"===a.sourceType&&(0,b.jsx)("div",{style:{marginTop:4,fontSize:11,color:"#78716C",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:[a.sourceDatasetName?`dataset ${a.sourceDatasetName}`:"",a.sourceUploadId?`upload ${a.sourceUploadId}`:"",a.sourceExecutionSessionId?`exec ${a.sourceExecutionSessionId}`:""].filter(Boolean).join(" · ")})]})]},a.id)}),0===cv.length&&(0,b.jsx)("div",{style:{padding:20,textAlign:"center",fontSize:12,color:"#888780"},children:"zh"===_?"暂无数据用例":"No cases found"})]}),(0,b.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",background:cy>0?"#E1F5EE":"#FEF2F2",border:cy>0?"1px solid #0F6E56":"1px solid #FCA5A5",padding:"8px 16px",borderRadius:8,marginBottom:12,fontSize:12,fontWeight:600,color:cy>0?"#0F6E56":"#991B1B",transition:"all 0.2s"},children:[(0,b.jsx)("span",{children:"zh"===_?`已选样本数:${cy} 个`:`Selected Samples: ${cy}`}),(0,b.jsx)("span",{children:cy>0?"zh"===_?"✓ 将按已选样本执行":"✓ Ready to run selected samples":"zh"===_?"⚠️ 请先选择至少 1 条样本":"⚠️ Select at least one sample"})]}),(0,b.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:16,marginTop:14,paddingTop:14,borderTop:"1px solid var(--border)"},children:[(0,b.jsxs)(g.Button,{variant:"default",size:"default",onClick:cl,disabled:cZ,children:[(0,b.jsx)(k.Play,{})," ",cV]}),(0,b.jsx)("button",{type:"button",className:"ab-stop-run-btn",onClick:ck,"aria-label":"zh"===_?"终止":"Abort",title:"zh"===_?"终止当前 A/B 测试":"Abort current A/B test",disabled:!cT,children:(0,b.jsx)("span",{children:"zh"===_?"终止":"Abort"})}),(0,b.jsxs)("label",{style:{display:"flex",alignItems:"center",gap:8,fontSize:12,fontWeight:700,color:"var(--foreground)"},children:[(0,b.jsx)("span",{children:"zh"===_?"Agent 最大并发数":"Max agent concurrency"}),(0,b.jsx)("select",{value:aL,onChange:a=>{let b=Math.max(1,Number(a.target.value));aM(b),ac&&b7(ac.id,{...b4.current,agentMaxConcurrency:b})},style:{height:32,minWidth:72,border:"1px solid var(--border-dark)",borderRadius:6,padding:"0 8px",fontSize:13,fontWeight:700,cursor:"pointer",background:"var(--card-bg)",color:"var(--foreground)"},children:[1,2,4,8,16,32].map(a=>(0,b.jsx)("option",{value:a,children:a},a))})]}),(0,b.jsx)("div",{style:{fontSize:12,color:"var(--foreground-secondary)",lineHeight:1.4},children:"zh"===_?`当前配置:${cy} 样本 * 2 组 * ${aJ} 轮 = ${2*cy*aJ} 次执行 | 最大并发:${aL}`:`Current Config: ${cy} samples * 2 groups * ${aJ} rounds = ${2*cy*aJ} runs | Max concurrency: ${aL}`})]})]})]}),(0,b.jsxs)("div",{className:"v2-stage-card s1",style:{background:"var(--card-bg)",border:"1px solid var(--border)",marginBottom:0},"data-collapsible":P?"1":void 0,"data-collapsed":P?bh.exec?"1":"0":void 0,children:[(0,b.jsxs)("div",{className:"v2-stage-card-header",style:{borderBottom:"1px solid var(--border)"},onClick:P?()=>bl("exec"):void 0,children:[(0,b.jsx)("div",{className:"v2-stage-num-badge",style:{background:"var(--primary)",color:"var(--primary-foreground)",justifyContent:"center",alignItems:"center"},children:(0,b.jsx)(J,{})}),(0,b.jsxs)("div",{className:"v2-stage-title-block",children:[(0,b.jsx)("div",{className:"v2-stage-card-title",children:(0,b.jsx)("span",{children:"zh"===_?"执行 A/B 测试":"Execute A/B Testing"})}),(0,b.jsx)("div",{className:"v2-stage-card-subtitle",children:"zh"===_?`对照组 (${cq(at.find(a=>a.id===ax)||ax)}) vs 实验组 (${cq(at.find(a=>a.id===az)||az)}) \xb7 每次执行的过程数据`:`Control (${cq(at.find(a=>a.id===ax)||ax)}) vs Experiment (${cq(at.find(a=>a.id===az)||az)}) \xb7 Exposing raw execution steps`})]}),P&&(0,b.jsx)("button",{type:"button",className:"gh-card-chev","aria-label":bh.exec?"zh"===_?"展开":"Expand":"zh"===_?"折叠":"Collapse",onClick:a=>{a.stopPropagation(),bl("exec")}})]}),(0,b.jsx)("div",{className:"v2-stage-card-body",style:{padding:18},children:(0,b.jsxs)("div",{className:"v2-compare-grid",style:{gridTemplateColumns:"1fr 20px 1fr"},children:[(0,b.jsxs)("div",{className:"v2-compare-col baseline ab-col-a",children:[(0,b.jsxs)("div",{className:"v2-col-header",children:[(0,b.jsx)("div",{className:"v2-col-tag a",children:"A"}),(0,b.jsxs)("div",{className:"v2-col-name-block",children:[(0,b.jsx)("div",{className:"v2-col-name",children:"zh"===_?`对照组: ${du(ax||bT)}`:`Control: ${du(ax||bT)}`}),(0,b.jsxs)("div",{className:"v2-col-variant-line",children:[(0,b.jsxs)("span",{className:`v2-skill-state ${ax===bT?"off":"on"} ab-skill-state`,children:["Skill: ",ax===bT?"zh"===_?"无 Skill":"No Skill":`${cz?.name||"cpu-model-query"} ${cq(at.find(a=>a.id===ax)||ax)}`]}),(0,b.jsxs)("span",{className:"ab-agent-state",title:dt(ax||bT),children:["Agent: ",dt(ax||bT)]})]})]}),(0,b.jsx)(f.StatusBadge,{status:cL?"success":cP?"error":cN||"running"===cJ.status?"running":"pending",label:cL?"zh"===_?"完成":"Done":cP?"zh"===_?"失败":"Failed":cN?"zh"===_?"评估中":"Evaluating":"running"===cJ.status?"zh"===_?"执行中":"Running":"zh"===_?"未执行":"Pending"})]}),(0,b.jsxs)("div",{className:"v2-col-body",style:{padding:16},children:[(0,b.jsx)("div",{className:"v2-exec-result",style:{paddingBottom:12},children:cL?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("div",{className:"v2-result-icon success",style:{color:"var(--success)",background:"var(--success-subtle)",width:44,height:44,fontSize:20},children:"✓"}),(0,b.jsx)("div",{className:"v2-result-text",style:{fontSize:14},children:cJ.runsCompleted}),(0,b.jsxs)("div",{className:"v2-result-sub",children:["平均耗时 ",cJ.timeCost," · ",cG,"轮重复"]})]}):cP?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("div",{className:"v2-result-icon",style:{color:"var(--error)",background:"var(--error-subtle)",width:44,height:44,fontSize:20},children:"!"}),(0,b.jsx)("div",{className:"v2-result-text",style:{fontSize:14},children:cJ.runsCompleted}),(0,b.jsx)("div",{className:"v2-result-sub",children:"zh"===_?"存在未完整执行的记录":"Some runs did not finish"})]}):"running"===cJ.status?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("div",{className:"v2-result-icon ab-icon-running",style:{width:44,height:44,fontSize:20},children:"⚡"}),(0,b.jsx)("div",{className:"v2-result-text",style:{fontSize:14},children:cJ.runsCompleted}),(0,b.jsx)("div",{className:"v2-result-sub",children:"zh"===_?"执行记录生成中...":"Generating execution records..."})]}):cN?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("div",{className:"v2-result-icon ab-icon-eval",style:{width:44,height:44,fontSize:20},children:"◌"}),(0,b.jsx)("div",{className:"v2-result-text",style:{fontSize:14},children:cJ.runsCompleted}),(0,b.jsx)("div",{className:"v2-result-sub",children:"zh"===_?"评估记录生成中...":"Generating evaluation records..."})]}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("div",{className:"v2-result-icon ab-icon-pending",style:{width:44,height:44,fontSize:20},children:"⏳"}),(0,b.jsx)("div",{className:"v2-result-text",style:{fontSize:14},children:cJ.runsCompleted}),(0,b.jsx)("div",{className:"v2-result-sub",children:"zh"===_?"等待执行评测":"Awaiting execution"})]})}),(0,b.jsxs)("div",{className:"v2-process-data",children:[(0,b.jsxs)("div",{className:"v2-process-row",children:[(0,b.jsx)("span",{className:"v2-process-label",children:"zh"===_?"Skill 触发":"Skill triggers"}),(0,b.jsx)("span",{className:"v2-process-value text-foreground-muted",children:cJ.triggerRate})]}),(0,b.jsxs)("div",{className:"v2-process-row",children:[(0,b.jsx)("span",{className:"v2-process-label",children:"zh"===_?"工具调用":"Tool calls"}),(0,b.jsx)("span",{className:"v2-process-value font-mono text-[11px] bg-background-secondary rounded px-1.5 py-0.5",children:cJ.toolCall})]}),(0,b.jsxs)("div",{className:"v2-process-row",children:[(0,b.jsx)("span",{className:"v2-process-label",children:"zh"===_?"答案准确性":"Accuracy"}),(0,b.jsx)("span",{className:"v2-process-value text-[var(--error)] font-bold",children:cJ.accuracy})]})]}),(0,b.jsxs)("div",{className:"v2-metric-row",style:{borderRadius:8,overflow:"hidden",marginTop:12},children:[(0,b.jsxs)("div",{className:"v2-metric-cell",children:[(0,b.jsx)("div",{className:"label",children:"zh"===_?"耗时":"Cost"}),(0,b.jsx)("div",{className:"value",children:(0,b.jsx)(i.MetricValue,{value:cJ.timeCost,size:"md"})})]}),(0,b.jsxs)("div",{className:"v2-metric-cell",children:[(0,b.jsx)("div",{className:"label",children:"TOKEN"}),(0,b.jsx)("div",{className:"value",children:(0,b.jsx)(i.MetricValue,{value:cJ.tokenUsage,format:"compact",size:"md"})})]}),(0,b.jsxs)("div",{className:`v2-metric-cell text-center ${"number"==typeof cJ.score?"ab-score-highlight":""}`,children:[(0,b.jsx)("div",{className:"label",children:"zh"===_?"评分":"Score"}),(0,b.jsx)("div",{className:"value",children:(0,b.jsx)(i.MetricValue,{value:"number"==typeof cJ.score?cJ.score:null,size:"md",tone:"number"==typeof cJ.score?"default":"muted"})})]})]})]}),(0,b.jsxs)("div",{className:"v2-col-actions",style:{background:"var(--background-secondary)",borderTop:"1px solid var(--border)",display:"flex",alignItems:"center",gap:8,padding:"8px 12px"},children:[(0,b.jsxs)(g.Button,{variant:"ghost",size:"sm",onClick:()=>aQ({title:"zh"===_?"A 对照组执行记录":"A Control Records",side:"a"}),children:[(0,b.jsx)(l.ExternalLink,{})," ","zh"===_?"执行记录":"Records"]}),(0,b.jsx)(g.Button,{variant:"default",size:"sm",onClick:()=>ci(aH,"a"),children:"zh"===_?"✓ 评测":"Evaluate"}),(0,b.jsx)("span",{className:"v2-trace-id",children:cJ.sessionId})]})]}),(0,b.jsx)("div",{className:"v2-compare-vs",children:(0,b.jsx)("span",{children:"VS"})}),(0,b.jsxs)("div",{className:"v2-compare-col candidate ab-col-b",children:[(0,b.jsxs)("div",{className:"v2-col-header",children:[(0,b.jsx)("div",{className:"v2-col-tag b",children:"B"}),(0,b.jsxs)("div",{className:"v2-col-name-block",children:[(0,b.jsx)("div",{className:"v2-col-name",children:"zh"===_?`实验组: ${du(az||bT)}`:`Experiment: ${du(az||bT)}`}),(0,b.jsxs)("div",{className:"v2-col-variant-line",children:[(0,b.jsxs)("span",{className:`v2-skill-state ${az===bT?"off":"on"} ab-skill-state`,children:["Skill: ",az===bT?"zh"===_?"无 Skill":"No Skill":`${cz?.name||"cpu-model-query"} ${cq(at.find(a=>a.id===az)||az)}`]}),(0,b.jsxs)("span",{className:"ab-agent-state",title:dt(az||bT),children:["Agent: ",dt(az||bT)]})]})]}),(0,b.jsx)(f.StatusBadge,{status:cM?"success":cQ?"error":cO||"running"===cK.status?"running":"pending",label:cM?"zh"===_?"完成":"Done":cQ?"zh"===_?"失败":"Failed":cO?"zh"===_?"评估中":"Evaluating":"running"===cK.status?"zh"===_?"执行中":"Running":"zh"===_?"未执行":"Pending"})]}),(0,b.jsxs)("div",{className:"v2-col-body",style:{padding:16},children:[(0,b.jsx)("div",{className:"v2-exec-result",style:{paddingBottom:12},children:cM?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("div",{className:"v2-result-icon success",style:{color:"var(--success)",background:"var(--success-subtle)",width:44,height:44,fontSize:20},children:"✓"}),(0,b.jsx)("div",{className:"v2-result-text",style:{fontSize:14},children:cK.runsCompleted}),(0,b.jsxs)("div",{className:"v2-result-sub",children:["平均耗时 ",cK.timeCost," · ",cG,"轮重复"]})]}):cQ?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("div",{className:"v2-result-icon",style:{color:"var(--error)",background:"var(--error-subtle)",width:44,height:44,fontSize:20},children:"!"}),(0,b.jsx)("div",{className:"v2-result-text",style:{fontSize:14},children:cK.runsCompleted}),(0,b.jsx)("div",{className:"v2-result-sub",children:"zh"===_?"存在未完整执行的记录":"Some runs did not finish"})]}):"running"===cK.status?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("div",{className:"v2-result-icon ab-icon-running",style:{width:44,height:44,fontSize:20},children:"⚡"}),(0,b.jsx)("div",{className:"v2-result-text",style:{fontSize:14},children:cK.runsCompleted}),(0,b.jsx)("div",{className:"v2-result-sub",children:"zh"===_?"执行记录生成中...":"Generating execution records..."})]}):cO?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("div",{className:"v2-result-icon ab-icon-eval",style:{width:44,height:44,fontSize:20},children:"◌"}),(0,b.jsx)("div",{className:"v2-result-text",style:{fontSize:14},children:cK.runsCompleted}),(0,b.jsx)("div",{className:"v2-result-sub",children:"zh"===_?"评估记录生成中...":"Generating evaluation records..."})]}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("div",{className:"v2-result-icon ab-icon-pending",style:{width:44,height:44,fontSize:20},children:"⏳"}),(0,b.jsx)("div",{className:"v2-result-text",style:{fontSize:14},children:cK.runsCompleted}),(0,b.jsx)("div",{className:"v2-result-sub",children:"zh"===_?"等待执行评测":"Awaiting execution"})]})}),(0,b.jsxs)("div",{className:"v2-process-data",children:[(0,b.jsxs)("div",{className:"v2-process-row",children:[(0,b.jsx)("span",{className:"v2-process-label",children:"zh"===_?"Skill 触发":"Skill triggers"}),(0,b.jsx)("span",{className:"v2-process-value text-[var(--success)] font-bold",children:cK.triggerRate})]}),(0,b.jsxs)("div",{className:"v2-process-row",children:[(0,b.jsx)("span",{className:"v2-process-label",children:"zh"===_?"工具调用":"Tool calls"}),(0,b.jsx)("span",{className:"v2-process-value font-mono text-[11px] bg-background-secondary rounded px-1.5 py-0.5",children:cK.toolCall})]}),(0,b.jsxs)("div",{className:"v2-process-row",children:[(0,b.jsx)("span",{className:"v2-process-label",children:"zh"===_?"答案准确性":"Accuracy"}),(0,b.jsx)("span",{className:"v2-process-value text-[var(--success)] font-bold",children:cK.accuracy})]})]}),(0,b.jsxs)("div",{className:"v2-metric-row",style:{borderRadius:8,overflow:"hidden",marginTop:12},children:[(0,b.jsxs)("div",{className:"v2-metric-cell",children:[(0,b.jsx)("div",{className:"label",children:"zh"===_?"耗时":"Cost"}),(0,b.jsx)("div",{className:"value",children:(0,b.jsx)(i.MetricValue,{value:cK.timeCost,size:"md"})})]}),(0,b.jsxs)("div",{className:"v2-metric-cell",children:[(0,b.jsx)("div",{className:"label",children:"TOKEN"}),(0,b.jsx)("div",{className:"value",children:(0,b.jsx)(i.MetricValue,{value:cK.tokenUsage,format:"compact",size:"md"})})]}),(0,b.jsxs)("div",{className:`v2-metric-cell text-center ${"number"==typeof cK.score?"ab-score-highlight":""}`,children:[(0,b.jsx)("div",{className:"label",children:"zh"===_?"评分":"Score"}),(0,b.jsx)("div",{className:"value",children:(0,b.jsx)(i.MetricValue,{value:"number"==typeof cK.score?cK.score:null,size:"md",tone:"number"==typeof cK.score?"success":"muted"})})]})]})]}),(0,b.jsxs)("div",{className:"v2-col-actions",style:{background:"var(--background-secondary)",borderTop:"1px solid var(--border)",display:"flex",alignItems:"center",gap:8,padding:"8px 12px"},children:[(0,b.jsxs)(g.Button,{variant:"ghost",size:"sm",onClick:()=>aQ({title:"zh"===_?"B 实验组执行记录":"B Experiment Records",side:"b"}),children:[(0,b.jsx)(l.ExternalLink,{})," ","zh"===_?"执行记录":"Records"]}),(0,b.jsx)(g.Button,{variant:"default",size:"sm",onClick:()=>ci(aH,"b"),children:"zh"===_?"✓ 评测":"Evaluate"}),(0,b.jsx)("span",{className:"v2-trace-id",children:cK.sessionId})]})]})]})})]}),(0,b.jsxs)("div",{className:"v2-stage-card s3",style:{background:"white",border:"0.5px solid rgba(0,0,0,0.08)",marginBottom:0,borderLeft:"4px solid #BA7517"},"data-collapsible":P?"1":void 0,"data-collapsed":P?bh.result?"1":"0":void 0,children:[(0,b.jsxs)("div",{className:"v2-stage-card-header",style:{borderBottom:"0.5px solid rgba(0,0,0,0.08)"},onClick:P?()=>bl("result"):void 0,children:[(0,b.jsx)("div",{className:"v2-stage-num-badge",style:{background:"#BA7517",color:"white",justifyContent:"center",alignItems:"center"},children:(0,b.jsx)(K,{})}),(0,b.jsxs)("div",{className:"v2-stage-title-block",children:[(0,b.jsxs)("div",{className:"v2-stage-card-title",style:{display:"flex",justifyContent:"space-between",width:"100%",alignItems:"center"},children:[(0,b.jsx)("span",{children:"zh"===_?"测评结果":"Evaluation Result"}),(0,b.jsx)("span",{className:"v2-stage-pill active",style:{background:cW?"#E1F5EE":"#FAEEDA",color:cW?"#0F6E56":"#854F0B",fontSize:11},children:cW?"zh"===_?"✓ 可决策":"Ready":"zh"===_?"⚡ 等待决策":"Waiting"})]}),(0,b.jsx)("div",{className:"v2-stage-card-subtitle",children:c5})]}),P&&(0,b.jsx)("button",{type:"button",className:"gh-card-chev","aria-label":bh.result?"zh"===_?"展开":"Expand":"zh"===_?"折叠":"Collapse",onClick:a=>{a.stopPropagation(),bl("result")}})]}),(0,b.jsx)("div",{className:"v2-stage-card-body",style:{padding:24,display:"flex",flexDirection:"column",gap:16},children:P?(()=>{let a="direct-release"===c3.decision?"pass":"reject"===c3.decision?"reject":"monitor-release"===c3.decision?"warn":"idle",c=(a,b=1)=>"number"==typeof a&&Number.isFinite(a)?a.toFixed(b).replace(/\.0$/,""):"—",d=(a,b=1)=>"number"==typeof a&&Number.isFinite(a)?(a>=0?"+":"")+a.toFixed(b).replace(/\.0$/,"")+"%":"—",e=(a,b=1)=>"number"==typeof a&&Number.isFinite(a)?(a>0?"+":"")+a.toFixed(b).replace(/\.0$/,""):"—",f=at.find(a=>a.id===az),g=f?`v${f.semanticVersion||f.version}`:"",h=ax===bT?"zh"===_?"无 Skill":"No Skill":`v${cq(at.find(a=>a.id===ax)||ax)}`,i=az===bT?"zh"===_?"无 Skill":"No Skill":"zh"===_?"开 Skill":"With Skill",j=c3.capability,k=c3.cost,l=c3.stability;if(!cW)return(0,b.jsxs)("div",{className:"gh-verdict-empty",children:[(0,b.jsxs)("div",{className:"gh-verdict-empty-title",children:["⚡ ","zh"===_?"等待评分":"Waiting for scoring"]}),(0,b.jsx)("div",{className:"gh-verdict-empty-sub",children:"zh"===_?`已收集 ${c3.sampleSize} 条 \xb7 等待 A/B 两侧执行 + 评测全部完成`:`Collected ${c3.sampleSize} so far \xb7 waiting for both sides to finish`})]});let m=[{key:"capability",label:"zh"===_?"能力":"Capability",desc:"zh"===_?"Skill 让 Agent 多做成了多少事":"How much the skill lifts the agent",data:j},{key:"cost",label:"zh"===_?"成本":"Cost",desc:"zh"===_?"多花了多少 token / 时间":"Extra tokens / time spent",data:k},{key:"stability",label:"zh"===_?"稳定性":"Stability",desc:"zh"===_?"该触发时触发了吗,结果稳吗":"Triggers correctly + stable output",data:l}];return(0,b.jsxs)("div",{className:"gh-verdict-block",children:[(0,b.jsxs)("div",{className:"gh-rc",children:[(0,b.jsxs)("span",{className:"gh-rc-skill",children:[cz?.name||"—",g&&(0,b.jsx)("span",{className:"gh-rc-ver",children:g})]}),(0,b.jsx)("span",{className:"gh-rc-sep",children:"·"}),(0,b.jsxs)("span",{className:"gh-rc-ab",children:[(0,b.jsx)("span",{className:"gh-rc-tag a",children:"A"}),h,(0,b.jsx)("span",{className:"gh-rc-vs",children:"zh"===_?"对比":"vs"}),(0,b.jsx)("span",{className:"gh-rc-tag b",children:"B"}),i]}),(0,b.jsx)("span",{className:"gh-rc-policy",children:c3.policyVersion})]}),(0,b.jsxs)("div",{className:`gh-decision ${a}`,children:[(0,b.jsx)("div",{className:"gh-decision-verdict",children:(0,b.jsxs)("div",{className:"gh-decision-score",children:["zh"===_?"综合":"Total"," ",(0,b.jsx)("b",{children:c(c3.totalScore,1)})," / 100"]})}),(0,b.jsxs)("div",{className:"gh-decision-body",children:[(0,b.jsx)("div",{className:"gh-decision-headline",children:c3.rejectCategory?(0,b.jsxs)(b.Fragment,{children:["zh"===_?"短板在 ":"Bottleneck: ",(0,b.jsx)("span",{className:"hl",children:"capability"===c3.rejectCategory?"zh"===_?"能力":"Capability":"cost"===c3.rejectCategory?"zh"===_?"成本":"Cost":"zh"===_?"稳定性":"Stability"}),"capability"===c3.rejectCategory&&(0,b.jsxs)(b.Fragment,{children:["zh"===_?":评测均分由 ":" — eval avg ",(0,b.jsxs)("span",{className:"num",children:[c(j.avgEvalScoreA,1)," → ",c(j.avgEvalScoreB,1)]}),"zh"===_?"(Δ ":" (Δ ",(0,b.jsx)("span",{className:"num",children:e(j.deltaScore,1)}),"zh"===_?")":")"]}),"cost"===c3.rejectCategory&&(0,b.jsxs)(b.Fragment,{children:["zh"===_?":ΔToken ":" — ΔToken ",(0,b.jsx)("span",{className:"num",children:d(k.deltaTokenPct,1)}),"zh"===_?",耗时 ":", duration ",(0,b.jsx)("span",{className:"num",children:d(k.deltaDurationPct,1)})]}),"stability"===c3.rejectCategory&&(0,b.jsxs)(b.Fragment,{children:["zh"===_?":触发率 ":" — invoke ",(0,b.jsxs)("span",{className:"num",children:[c(l.invokeRate,0),"%"]})]})]}):(0,b.jsx)("span",{children:"zh"===_?`全维通过 \xb7 综合 ${c(c3.totalScore,1)} / 100`:`All dims pass \xb7 total ${c(c3.totalScore,1)} / 100`})}),c6&&(0,b.jsxs)("div",{className:"gh-decision-next",children:[(0,b.jsx)("b",{children:"zh"===_?"下一步":"Next"})," · ",c6]})]}),(0,b.jsxs)("div",{className:"gh-decision-actions",children:[(0,b.jsx)("button",{type:"button",className:"gh-btn",onClick:()=>aQ({title:"zh"===_?"B 实验组执行记录":"B Experiment Records",side:"b"}),children:"zh"===_?"查看 Trace":"View Trace"}),(0,b.jsx)("button",{type:"button",className:"gh-btn is-dark",onClick:cl,disabled:cZ,children:cT?"zh"===_?"执行中…":"Running…":`▶ ${"zh"===_?"复测":"Re-run"}`})]})]}),(0,b.jsxs)("div",{className:"gh-dims",children:[(0,b.jsxs)("div",{className:"gh-dims-row gh-dims-head",children:[(0,b.jsx)("div",{children:"zh"===_?"维度":"DIM"}),(0,b.jsx)("div",{children:"zh"===_?"分数":"SCORE"}),(0,b.jsx)("div",{children:"0 · 50 · 75 · 100"}),(0,b.jsx)("div",{children:"zh"===_?"关键证据":"EVIDENCE"})]}),m.map(a=>{let f,g="green"===(f=a.data.tone)?"good":"amber"===f?"warn":"red"===f?"fail":"idle",h="number"==typeof a.data.score?a.data.score:null;return(0,b.jsxs)("div",{className:"gh-dims-row",children:[(0,b.jsxs)("div",{className:"gh-dim-name-cell",children:[(0,b.jsxs)("div",{className:"gh-dim-name-row",children:[(0,b.jsx)("span",{className:"gh-dim-name",children:a.label}),(0,b.jsx)("span",{className:`gh-dim-pill ${g}`,children:"zh"===_&&"拒绝"===a.data.label?"高风险":a.data.label})]}),(0,b.jsx)("span",{className:"gh-dim-desc",children:a.desc})]}),(0,b.jsxs)("div",{className:`gh-dim-score ${g}`,children:[null==h?"—":c(h,1),(0,b.jsx)("span",{className:"gh-dim-outof",children:"/ 100"})]}),(0,b.jsx)("div",{className:"gh-dim-bar-cell",children:(0,b.jsx)("div",{className:"gh-dim-bar-track",children:(0,b.jsx)("div",{className:`gh-dim-bar-fill ${g}`,style:{width:`${Math.max(0,Math.min(100,h??0))}%`}})})}),(0,b.jsxs)("div",{className:"gh-dim-evidence",children:["capability"===a.key&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("span",{className:"row",children:["A ",(0,b.jsx)("span",{className:"num",children:c(j.avgEvalScoreA,1)})," ",(0,b.jsx)("span",{className:"arrow",children:"→"})," B ",(0,b.jsx)("span",{className:"num",children:c(j.avgEvalScoreB,1)})]}),(0,b.jsxs)("span",{className:"row",children:["zh"===_?"评分变化":"Δscore"," ",(0,b.jsx)("span",{className:`delta ${(j.deltaScore??0)>=0?"up":"down"}`,children:e(j.deltaScore,1)})]})]}),"cost"===a.key&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("span",{className:"row",children:["ΔToken ",(0,b.jsx)("span",{className:`delta ${(k.deltaTokenPct??0)<=0?"up":"down"}`,children:d(k.deltaTokenPct,1)})," · ","zh"===_?"耗时":"Duration"," ",(0,b.jsx)("span",{className:`delta ${(k.deltaDurationPct??0)<=0?"up":"down"}`,children:d(k.deltaDurationPct,1)})]}),"number"==typeof k.baseCost&&"number"==typeof k.score&&(0,b.jsxs)("span",{className:"row",children:["zh"===_?"能力耦合":"Capability coupling"," ",(0,b.jsx)("span",{className:`delta ${k.score-k.baseCost>=0?"up":"down"}`,children:e(k.score-k.baseCost,0)})]})]}),"stability"===a.key&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("span",{className:"row",children:["zh"===_?"触发率":"Invoke"," ",(0,b.jsxs)("span",{className:"num",children:[c(l.invokeRate,0),"%"]})]}),(0,b.jsxs)("span",{className:"row",children:["zh"===_?"方差":"Variance"," ",l.varianceComputable?(0,b.jsx)("span",{className:"num",children:c(l.variance,2)}):(0,b.jsxs)(b.Fragment,{children:["— (R=",c3.repeatRounds,")"]})]})]})]})]},a.key)})]}),(0,b.jsxs)("div",{className:`gh-raw${bm?"":" is-collapsed"}`,children:[(0,b.jsxs)("button",{type:"button",className:"gh-raw-head",onClick:()=>bn(a=>!a),children:[(0,b.jsx)("span",{className:"gh-raw-chev"}),(0,b.jsx)("span",{children:"zh"===_?"原始数据与计算公式":"Raw data & formulas"}),(0,b.jsx)("span",{className:"gh-raw-formula",children:"min(capability, cost, stability)"})]}),(0,b.jsx)("div",{className:"gh-raw-body",children:(0,b.jsxs)("div",{className:"gh-raw-grid",children:[(0,b.jsxs)("div",{className:"gh-raw-card",children:[(0,b.jsxs)("div",{className:"gh-raw-card-head",children:[(0,b.jsx)("span",{className:"gh-raw-card-title",children:"zh"===_?"能力":"Capability"}),(0,b.jsx)("span",{className:"gh-raw-card-tag",children:"capability"})]}),(0,b.jsxs)("div",{className:"kv",children:[(0,b.jsx)("span",{className:"k",children:"zh"===_?"评测均分":"Eval avg"}),(0,b.jsx)("span",{className:"a",children:c(j.avgEvalScoreA,1)}),(0,b.jsx)("span",{className:"b",children:c(j.avgEvalScoreB,1)})]}),(0,b.jsxs)("div",{className:"kv",children:[(0,b.jsx)("span",{className:"k",children:"zh"===_?"通过率":"Pass rate"}),(0,b.jsxs)("span",{className:"a",children:[c(j.passRateA,1),"%"]}),(0,b.jsxs)("span",{className:"b",children:[c(j.passRateB,1),"%"]})]}),(0,b.jsxs)("div",{className:"delta",children:[(0,b.jsx)("span",{className:"k",children:"zh"===_?"评分变化":"Δscore"}),(0,b.jsx)("span",{className:`v ${(j.deltaScore??0)>=0?"up":"down"}`,children:e(j.deltaScore,1)})]}),j.breakdown?.formula&&(0,b.jsx)("div",{className:"formula",children:j.breakdown.formula})]}),(0,b.jsxs)("div",{className:"gh-raw-card",children:[(0,b.jsxs)("div",{className:"gh-raw-card-head",children:[(0,b.jsx)("span",{className:"gh-raw-card-title",children:"zh"===_?"成本":"Cost"}),(0,b.jsx)("span",{className:"gh-raw-card-tag",children:"cost"})]}),(0,b.jsxs)("div",{className:"kv",children:[(0,b.jsx)("span",{className:"k",children:"Token"}),(0,b.jsx)("span",{className:"a",children:c(k.avgTokensA,0)}),(0,b.jsx)("span",{className:"b",children:c(k.avgTokensB,0)})]}),(0,b.jsxs)("div",{className:"kv",children:[(0,b.jsxs)("span",{className:"k",children:["zh"===_?"耗时":"Duration","(s)"]}),(0,b.jsx)("span",{className:"a",children:c(k.avgDurationA,1)}),(0,b.jsx)("span",{className:"b",children:c(k.avgDurationB,1)})]}),(0,b.jsxs)("div",{className:"kv",children:[(0,b.jsx)("span",{className:"k",children:"zh"===_?"步数":"Steps"}),(0,b.jsx)("span",{className:"a",children:c(k.avgStepsA,1)}),(0,b.jsx)("span",{className:"b",children:c(k.avgStepsB,1)})]}),(0,b.jsxs)("div",{className:"delta",children:[(0,b.jsx)("span",{className:"k",children:"ΔToken"}),(0,b.jsx)("span",{className:`v ${(k.deltaTokenPct??0)<=0?"up":"down"}`,children:d(k.deltaTokenPct,1)})]}),k.breakdown?.formula&&(0,b.jsx)("div",{className:"formula",children:k.breakdown.formula})]}),(0,b.jsxs)("div",{className:"gh-raw-card",children:[(0,b.jsxs)("div",{className:"gh-raw-card-head",children:[(0,b.jsx)("span",{className:"gh-raw-card-title",children:"zh"===_?"稳定性":"Stability"}),(0,b.jsx)("span",{className:"gh-raw-card-tag",children:"stability"})]}),(0,b.jsxs)("div",{className:"kv",children:[(0,b.jsx)("span",{className:"k",children:"zh"===_?"触发率":"Invoke rate"}),(0,b.jsx)("span",{className:"a",children:"—"}),(0,b.jsxs)("span",{className:"b",children:[c(l.invokeRate,0),"%"]})]}),(0,b.jsxs)("div",{className:"kv",children:[(0,b.jsx)("span",{className:"k",children:"zh"===_?"方差":"Variance"}),(0,b.jsx)("span",{className:"a",children:"—"}),(0,b.jsx)("span",{className:"b",children:l.varianceComputable?c(l.variance,3):`— (R=${c3.repeatRounds})`})]}),l.dataQualityIssue&&(0,b.jsxs)("div",{className:"delta",children:[(0,b.jsx)("span",{className:"k",children:"zh"===_?"告警":"Warning"}),(0,b.jsx)("span",{className:"v warn",children:l.dataQualityIssue})]}),l.breakdown?.formula&&(0,b.jsx)("div",{className:"formula",children:l.breakdown.formula})]}),(0,b.jsxs)("div",{className:"gh-raw-card",children:[(0,b.jsxs)("div",{className:"gh-raw-card-head",children:[(0,b.jsx)("span",{className:"gh-raw-card-title",children:"zh"===_?"综合(短板原则)":"Verdict (min)"}),(0,b.jsx)("span",{className:"gh-raw-card-tag",children:"verdict"})]}),(0,b.jsxs)("div",{className:"kv",children:[(0,b.jsx)("span",{className:"k",children:"capability"}),(0,b.jsx)("span",{className:"b",style:{color:"var(--gh-st-fail)"},children:c(j.score,1)})]}),(0,b.jsxs)("div",{className:"kv",children:[(0,b.jsx)("span",{className:"k",children:"cost"}),(0,b.jsx)("span",{className:"b",style:{color:"var(--gh-st-warn)"},children:c(k.score,1)})]}),(0,b.jsxs)("div",{className:"kv",children:[(0,b.jsx)("span",{className:"k",children:"stability"}),(0,b.jsx)("span",{className:"b",style:{color:"var(--gh-st-done)"},children:c(l.score,1)})]}),c3.hardGates.length>0&&(0,b.jsxs)("div",{className:"delta",children:[(0,b.jsx)("span",{className:"k",children:"zh"===_?"命中 hard gate":"Hard gates"}),(0,b.jsx)("span",{className:"v down",children:c3.hardGates.map(a=>a.label).join("、")})]}),(0,b.jsxs)("div",{className:"formula",children:["verdict = min(capability, cost, stability) = ",c(c3.totalScore,1)," → ",c3.gradeLabel||c3.grade]})]})]})})]})]})})():(0,b.jsx)(B,{decisionReady:cW,abScoring:c3,sampleSize:c3.sampleSize,repeatRounds:c3.repeatRounds,recommendedSampleSize:q.DEFAULT_AB_SCORING_POLICY.recommendedSampleSize,policy:q.DEFAULT_AB_SCORING_POLICY,decisionTitle:c4,decisionAdvice:c6,onViewTrace:()=>aQ({title:"zh"===_?"B 实验组执行记录":"B Experiment Records",side:"b"}),locale:_,toneColor:a=>"green"===a?"#0F6E56":"red"===a?"#DC2626":"amber"===a?"#BA7517":"#5F5E5A",toneBg:a=>"green"===a?"#E1F5EE":"red"===a?"#FEE2E2":"amber"===a?"#FAEEDA":"#F5F4EE"})})]})]}),bf&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("div",{className:"d-drawer-mask",onClick:()=>bg(!1)}),(0,b.jsx)("div",{className:"d-history-drawer",children:(0,b.jsxs)("div",{className:"d-history-panel",children:[(0,b.jsxs)("div",{className:"d-history-head",children:[(0,b.jsxs)("div",{className:"d-history-head-title",children:[(0,b.jsx)(I,{}),"zh"===_?"历史任务":"Task History",(0,b.jsxs)("span",{style:{fontWeight:400,color:"var(--ink-4)",fontSize:11,marginLeft:6},children:[co.length,"zh"===_?" 条":" tasks"]})]}),(0,b.jsx)("button",{className:"d-drawer-close",onClick:()=>bg(!1),children:"×"})]}),(0,b.jsxs)("div",{className:"d-history-body",children:[(0,b.jsxs)("button",{type:"button",onClick:()=>{cn(),bg(!1)},style:{width:"100%",textAlign:"left",padding:"10px 12px",borderRadius:8,border:"1px dashed var(--accent)",background:"var(--accent-soft)",color:"var(--accent)",fontSize:13,fontWeight:600,cursor:"pointer",marginBottom:10},children:["+ ","zh"===_?"新建 A/B 任务":"New A/B Task"]}),0===co.length?(0,b.jsx)("div",{style:{padding:"32px 16px",textAlign:"center",color:"var(--ink-4)",fontSize:12},children:"zh"===_?"暂无历史任务":"No task history"}):co.slice().reverse().map(a=>(0,b.jsxs)("div",{className:"d-history-item",style:ac?.id===a.id?{borderColor:"var(--accent)",background:"var(--accent-soft)"}:{},onClick:()=>{C&&a.skillId!==C&&a.configJson?.skillId!==C?bW(C):b_(a),bg(!1)},children:[(0,b.jsxs)("div",{className:"d-history-item-top",children:[(0,b.jsx)("div",{className:"d-history-item-title",style:ac?.id===a.id?{color:"var(--accent)"}:{},children:a.taskName}),(0,b.jsx)("span",{className:"d-history-item-id",children:new Date(a.createdAt).toLocaleString("zh"===_?"zh-CN":"en-US",{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})})]}),a.configJson?.taskDescription&&(0,b.jsx)("div",{className:"d-history-item-query",children:a.configJson.taskDescription})]},a.id))]})]})})]}),a7&&(0,b.jsx)("div",{className:"d-modal-mask",onClick:()=>a8(!1),children:(0,b.jsxs)("div",{className:"d-modal",style:{width:440},onClick:a=>a.stopPropagation(),children:[(0,b.jsxs)("div",{className:"d-modal-head",children:[(0,b.jsx)("div",{className:"d-modal-title",children:"zh"===_?"新建数据集":"New Dataset"}),(0,b.jsx)("button",{className:"d-modal-close",onClick:()=>a8(!1),children:"×"})]}),(0,b.jsxs)("div",{className:"d-modal-body",children:[(0,b.jsxs)("div",{className:"gray-field",children:[(0,b.jsx)("div",{className:"gray-field-label",children:"zh"===_?"数据集名称":"Dataset Name"}),(0,b.jsx)("input",{className:"gray-input",value:a9,onChange:a=>ba(a.target.value),onKeyDown:a=>{"Enter"!==a.key||a.nativeEvent.isComposing||cp(),"Escape"===a.key&&a8(!1)},placeholder:"zh"===_?"请输入数据集名称…":"Enter dataset name…",autoFocus:!0})]}),(0,b.jsx)("div",{style:{marginTop:10,fontSize:12,color:"var(--ink-3)",lineHeight:1.5},children:"zh"===_?"创建后将自动关联到当前评测任务,可在数据集管理中添加测试用例。":"The dataset will be linked to the current task. Add test cases in Dataset Management."})]}),(0,b.jsxs)("div",{className:"d-modal-foot",children:[(0,b.jsx)("button",{className:"d-btn sm",onClick:()=>a8(!1),children:"zh"===_?"取消":"Cancel"}),(0,b.jsx)("button",{className:"d-btn sm primary",onClick:cp,disabled:!a9.trim()||bb,children:bb?"zh"===_?"创建中…":"Creating…":"zh"===_?"创建":"Create"})]})]})}),(0,b.jsx)(s.NewEvaluationBatchDialog,{open:bq,user:aa||"",defaultTitle:ac?.taskName,evaluators:a1,onClose:()=>br(!1),onCreated:b9}),aN&&(0,b.jsx)("div",{className:"output-modal-overlay",onClick:()=>aO(null),children:(0,b.jsxs)("div",{className:"output-modal",onClick:a=>a.stopPropagation(),children:[(0,b.jsxs)("div",{className:"output-modal-header",children:[(0,b.jsx)("span",{className:"output-modal-title",children:aN.title}),(0,b.jsx)("button",{className:"output-modal-close",onClick:()=>aO(null),"aria-label":"close",children:"×"})]}),(0,b.jsx)("pre",{className:"output-modal-body",children:aN.content||("zh"===_?"(空)":"(empty)")})]})}),aP&&(0,b.jsx)("div",{className:"output-modal-overlay",onClick:()=>aQ(null),children:(0,b.jsxs)("div",{className:"output-modal",style:{width:"min(980px, calc(100vw - 48px))",maxHeight:"82vh"},onClick:a=>a.stopPropagation(),children:[(0,b.jsxs)("div",{className:"output-modal-header",children:[(0,b.jsx)("span",{className:"output-modal-title",children:aP.title}),(0,b.jsx)("button",{className:"output-modal-close",onClick:()=>aQ(null),"aria-label":"close",children:"×"})]}),(0,b.jsxs)("div",{style:{padding:16,display:"flex",flexDirection:"column",gap:14},children:[(0,b.jsx)("div",{style:{color:"#5F5E5A",fontSize:13},children:"zh"===_?"仅展示当前组所有轮次的执行 session id 与评估 session id。点击任一 session id 可跳转链路详情。":"Execution session ids and evaluation session ids for this group only. Click any session id to open its trace detail."}),(R=Q=aP.side,Y=(cE.length>0?cE:cu?.id?[cu.id]:[]).flatMap(a=>(bA[a]?.[R]?.runs||[]).map(b=>({caseId:a,roundIndex:b.roundIndex||b.runIndex,executionTraceId:b.sessionId||"",evaluationTraceId:b.evaluationTraceId||"",evaluatorRunId:b.evaluatorRunId||"",evaluationResultId:b.evaluationResultId||"",evaluations:b.evaluations||[],status:b.status,score:b.score,failureType:b.failureType,failureDetail:b.failureDetail,output:b.output}))),Z="a"===Q?"#BA7517":"#1D9E75",$="a"===Q?"zh"===_?"A 对照组":"A Control":"zh"===_?"B 实验组":"B Experiment",(0,b.jsxs)("div",{style:{border:"1px solid #E7E5E4",borderRadius:8,overflow:"hidden",background:"white"},children:[(0,b.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",padding:"10px 12px",background:"#FAFAF7",borderBottom:"1px solid #E7E5E4"},children:[(0,b.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,fontWeight:700,color:"#2C2C2A"},children:[(0,b.jsx)("span",{style:{width:22,height:22,borderRadius:6,background:Z,color:"white",display:"inline-flex",alignItems:"center",justifyContent:"center",fontSize:12},children:Q.toUpperCase()}),$]}),(0,b.jsxs)("span",{style:{fontSize:12,color:"#888780"},children:[Y.length," traces"]})]}),0===Y.length?(0,b.jsx)("div",{style:{padding:14,color:"#888780",fontSize:13},children:"zh"===_?"暂无执行记录":"No execution records yet"}):(0,b.jsxs)("div",{style:{display:"flex",flexDirection:"column",maxHeight:420,overflowY:"auto"},children:[(0,b.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"140px 1fr 1fr 90px 60px 70px",gap:12,padding:"8px 12px",background:"#FAFAF7",borderBottom:"1px solid #E7E5E4",fontSize:11,fontWeight:700,color:"#5F5E5A",textTransform:"none",letterSpacing:0,position:"sticky",top:0,zIndex:1},children:[(0,b.jsx)("div",{children:"Case ID"}),(0,b.jsx)("div",{children:"zh"===_?"执行 session id":"Execution session id"}),(0,b.jsx)("div",{children:"zh"===_?"评估器":"Evaluators"}),(0,b.jsx)("div",{children:"zh"===_?"评测结果":"Eval result"}),(0,b.jsx)("div",{style:{textAlign:"right"},children:"zh"===_?"分数":"Score"}),(0,b.jsx)("div",{style:{textAlign:"right"},children:"zh"===_?"操作":"Action"})]}),Y.map((a,c)=>{let d,e,f,g,h,i,j=!!a.failureType,k=j||"fail"!==a.status?"":a.output||"评测失败",l=a.evaluations&&a.evaluations.length>0?a.evaluations:a.evaluatorRunId?[{evaluatorId:a_,evaluatorName:dl.get(a_)||a_,status:"pass"===a.status?"done":"fail"!==a.status||j?"evaluating"===a.status?"running":"pending":"failed",evaluatorRunId:a.evaluatorRunId,evaluationTraceId:a.evaluationTraceId,score:a.score,errorMessage:k}]:[],{exec:m,evaluation:n}=function(a){let b,{status:c,hasExecFailure:d,evaluations:e,evaluatorRunId:f}=a,g=c??"pending",h=e||[],i=!!f||h.length>0,j=h.some(a=>"pending"===a.status||"running"===a.status),k=h.some(a=>"failed"===a.status),l=h.some(a=>"done"===a.status);return(b="fail"===g&&d&&!i?{label:"执行失败",tone:"fail"}:"pending"===g?{label:"排队中",tone:"pending"}:"running"===g?{label:"执行中",tone:"running"}:{label:"执行完成",tone:"done"},"pending"===g||"running"===g||"fail"===g&&d)?{exec:b,evaluation:null}:{exec:b,evaluation:j?{label:"评测中",tone:"running"}:"executed"!==g||i?l&&!k?{label:"已评测",tone:"done"}:k?{label:"评测失败",tone:"fail"}:"evaluating"===g?{label:"评测中",tone:"running"}:"pass"===g?{label:"已评测",tone:"done"}:{label:"评测失败",tone:"fail"}:{label:"待评测",tone:"pending"}}}({status:a.status,hasExecFailure:j,evaluations:l,evaluatorRunId:a.evaluatorRunId}),o=j?`[${a.failureType}] ${a.failureDetail||a.output||"执行失败"}`:"",p=!j&&("fail"===a.status||l.some(a=>"failed"===a.status))?k||l.find(a=>"failed"===a.status)?.errorMessage||"评测失败":"",q=H({evaluations:l},a1),r=ct.get(a.caseId),s=r?.datasetId||ac?.configJson?.selectedDatasetId,t=r?.sourceType==="trace"?r.sourceExecutionSessionId?`/trace?taskId=${encodeURIComponent(r.sourceExecutionSessionId)}`:null:s&&a.caseId?`/dataset/${encodeURIComponent(s)}?case=${encodeURIComponent(a.caseId)}`:null,u=(l||[]).find(a=>!!a.evaluationResultId&&!!a.evaluatorRunId&&"done"===a.status)||(l||[]).find(a=>!!a.evaluationResultId&&!!a.evaluatorRunId),v=u?.evaluatorRunId||a.evaluatorRunId,w=u?.evaluationResultId||a.evaluationResultId,x=a.executionTraceId&&v&&w?(d=new URLSearchParams({runId:v,resultId:w}),s&&d.set("datasetId",s),`/eval/trajectory/${encodeURIComponent(a.executionTraceId)}?${d.toString()}`):"",y=l.some(a=>"done"===a.status&&"number"==typeof a.score)||"number"==typeof a.score,B=r?.sourceType==="trace"?[r.sourceDatasetName?`dataset: ${r.sourceDatasetName}`:"",r.sourceUploadId?`upload: ${r.sourceUploadId}`:"",r.sourceExecutionSessionId?`execution: ${r.sourceExecutionSessionId}`:""].filter(Boolean).join(" | "):`R${a.roundIndex||"-"} \xb7 ${a.caseId}`;return(0,b.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"140px 1fr 1fr 90px 60px 70px",gap:12,alignItems:"center",padding:"10px 12px",borderTop:"1px solid #F1EFE8",fontSize:12},children:[(0,b.jsxs)("div",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",minWidth:0},title:B,children:[(0,b.jsxs)("span",{style:{color:"#5F5E5A",fontWeight:600,marginRight:4},children:["R",a.roundIndex||"-"]}),t?(0,b.jsx)("a",{href:t,target:"_blank",rel:"noopener noreferrer",style:{fontFamily:"ui-monospace, monospace",fontSize:11,color:"#185FA5",textDecoration:"none"},onMouseEnter:a=>a.currentTarget.style.textDecoration="underline",onMouseLeave:a=>a.currentTarget.style.textDecoration="none",children:a.caseId}):(0,b.jsx)("span",{style:{fontFamily:"ui-monospace, monospace",fontSize:11,color:"#5F5E5A"},children:a.caseId})]}),(0,b.jsx)("div",{style:{minWidth:0},children:"fail"===m.tone?(0,b.jsx)(z,{trigger:(0,b.jsx)(A,{label:m.label,tone:"fail"}),content:o}):"pending"===m.tone||"running"===m.tone?(0,b.jsx)(A,{label:m.label,tone:m.tone}):a.executionTraceId?(0,b.jsx)("button",{className:"v2-action-btn",style:{maxWidth:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontFamily:"ui-monospace, monospace"},onClick:()=>window.open(`/trace?taskId=${encodeURIComponent(a.executionTraceId)}`,"_blank"),children:a.executionTraceId}):(0,b.jsx)("span",{style:{color:"#B8B6AE"},children:"—"})}),(0,b.jsx)("div",{style:{minWidth:0},children:n?"fail"===n.tone&&0===l.length?(0,b.jsx)(z,{trigger:(0,b.jsx)(A,{label:n.label,tone:"fail"}),content:p}):("pending"===n.tone||"running"===n.tone)&&0===l.length?(0,b.jsx)(A,{label:n.label,tone:n.tone}):(0,b.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:6,minWidth:0},children:(0,b.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:5,fontSize:11,color:"#5F5E5A"},children:l.map(a=>{let c="done"===a.status?"done":"failed"===a.status?"fail":"running"===a.status?"running":"pending";return(0,b.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:2},children:[(0,b.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"minmax(96px, 1fr) minmax(80px, 1fr) 44px",gap:6,alignItems:"center"},children:[(0,b.jsx)("span",{title:a.evaluatorName,style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:a.evaluatorName}),a.evaluationTraceId?(0,b.jsx)("button",{className:"v2-action-btn",style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontFamily:"ui-monospace, monospace"},onClick:()=>window.open(`/trace?taskId=${encodeURIComponent(a.evaluationTraceId||"")}`,"_blank"),title:a.evaluatorRunId?`runId: ${a.evaluatorRunId}`:void 0,children:a.evaluationTraceId}):(0,b.jsx)(A,{label:"done"===a.status?"已评测":"failed"===a.status?"失败":"running"===a.status?"评测中":"待评",tone:c}),(0,b.jsx)("span",{style:{textAlign:"right",fontWeight:700,color:"failed"===a.status?"#B91C1C":Z},children:"number"==typeof a.score?a.score:"—"})]}),"failed"===a.status&&a.errorMessage?(0,b.jsxs)("div",{style:{fontSize:10.5,color:"#B91C1C",lineHeight:1.4,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},title:a.errorMessage,children:["⚠ ",a.errorMessage]}):null]},`${a.evaluatorId}-${a.evaluatorRunId||""}`)})})}):(0,b.jsx)("span",{style:{color:"#B8B6AE"},children:"—"})}),(0,b.jsx)("div",{children:x&&y?(0,b.jsxs)("button",{className:"v2-action-btn",style:{fontSize:11,padding:"3px 8px",background:"#EEF2FF",color:"#4F46E5",border:"1px solid rgba(79,70,229,.25)",borderRadius:4,cursor:"pointer",fontWeight:600,whiteSpace:"nowrap"},title:`跳转到单条评测详情 runId=${v}, trace=${a.executionTraceId}, resultId=${w}`,onClick:()=>window.open(x,"_blank"),children:["📋 ","zh"===_?"查看":"View"]}):n?(0,b.jsx)(A,{label:n.label,tone:n.tone}):a.evaluatorRunId?(0,b.jsx)(A,{label:"zh"===_?"结果未绑定":"Unbound",tone:"fail"}):(0,b.jsx)("span",{style:{color:"#B8B6AE",fontSize:11},children:"—"})}),(0,b.jsx)("div",{style:{textAlign:"right",color:Z,fontWeight:700,fontSize:14},children:"number"==typeof a.score?a.score:"—"}),(0,b.jsx)("div",{style:{textAlign:"right"},children:(e=a.roundIndex||1,f=bJ(a.caseId,Q,e),g=bG.has(f),h="fail"===m.tone||n&&"fail"===n.tone,i=!j&&!!(n&&"fail"===n.tone),g?(0,b.jsxs)("button",{className:"v2-action-btn",disabled:!0,style:{fontSize:11,padding:"4px 8px",background:"#E7E5E4",color:"#78716C",border:"none",borderRadius:4,cursor:"not-allowed",whiteSpace:"nowrap",opacity:.85},title:"zh"===_?"重试进行中, 请等待结果。如需打断, 点击顶部「终止」按钮。":"Retry in progress; wait for result or use top Abort button to interrupt.",children:["⏳ ","zh"===_?"重试中":"Retrying"]}):h?(0,b.jsxs)("button",{className:"v2-action-btn",style:{fontSize:11,padding:"4px 8px",background:"#1C1917",color:"white",border:"none",borderRadius:4,cursor:"pointer",whiteSpace:"nowrap"},title:j?"zh"===_?"执行失败 → 从执行重试 (会自动评测)":"Retry from execution (auto-evaluate)":"zh"===_?"评测失败 → 仅重新评失败或缺失的评估器 (复用现有 session)":"Retry failed or missing evaluators only",onClick:()=>{j?cb(a.caseId,Q,e):cc(a.caseId,Q,e,q)},children:["🔁 ",i?"zh"===_?"重评":"Re-evaluate":"zh"===_?"重跑":"Rerun"]}):(0,b.jsx)("span",{style:{color:"#B8B6AE",fontSize:11},children:"—"}))})]},`${Q}-${a.caseId}-${a.roundIndex}-${c}`)})]})]}))]})]})})]})}a.s(["GrayscaleEvaluation",()=>P,"default",()=>u])}];
2
2
 
3
3
  //# sourceMappingURL=src_243b92c2._.js.map