agent-insight 0.5.3 → 0.5.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (480) 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/prerender-manifest.json +3 -3
  4. package/.next/standalone/.next/server/app/(main)/accessconfig/channels/page_client-reference-manifest.js +1 -1
  5. package/.next/standalone/.next/server/app/(main)/accessconfig/health/page_client-reference-manifest.js +1 -1
  6. package/.next/standalone/.next/server/app/(main)/accessconfig/install/page_client-reference-manifest.js +1 -1
  7. package/.next/standalone/.next/server/app/(main)/accessconfig/page_client-reference-manifest.js +1 -1
  8. package/.next/standalone/.next/server/app/(main)/accessconfig/webhooks/page_client-reference-manifest.js +1 -1
  9. package/.next/standalone/.next/server/app/(main)/agents/page_client-reference-manifest.js +1 -1
  10. package/.next/standalone/.next/server/app/(main)/dashboard/page_client-reference-manifest.js +1 -1
  11. package/.next/standalone/.next/server/app/(main)/dataset/[id]/page_client-reference-manifest.js +1 -1
  12. package/.next/standalone/.next/server/app/(main)/dataset/page_client-reference-manifest.js +1 -1
  13. package/.next/standalone/.next/server/app/(main)/eval/page_client-reference-manifest.js +1 -1
  14. package/.next/standalone/.next/server/app/(main)/eval/run/[runId]/page_client-reference-manifest.js +1 -1
  15. package/.next/standalone/.next/server/app/(main)/eval/trajectory/[taskId]/page_client-reference-manifest.js +1 -1
  16. package/.next/standalone/.next/server/app/(main)/eval/trajectory/[taskId]/trace/page_client-reference-manifest.js +1 -1
  17. package/.next/standalone/.next/server/app/(main)/eval/trajectory/page_client-reference-manifest.js +1 -1
  18. package/.next/standalone/.next/server/app/(main)/evaluation/[id]/page_client-reference-manifest.js +1 -1
  19. package/.next/standalone/.next/server/app/(main)/fault/page.js.nft.json +1 -1
  20. package/.next/standalone/.next/server/app/(main)/fault/page_client-reference-manifest.js +1 -1
  21. package/.next/standalone/.next/server/app/(main)/infra/page_client-reference-manifest.js +1 -1
  22. package/.next/standalone/.next/server/app/(main)/infra/source/[id]/page_client-reference-manifest.js +1 -1
  23. package/.next/standalone/.next/server/app/(main)/infra/sources/page_client-reference-manifest.js +1 -1
  24. package/.next/standalone/.next/server/app/(main)/memory/page_client-reference-manifest.js +1 -1
  25. package/.next/standalone/.next/server/app/(main)/metrics/evaluators/[id]/page_client-reference-manifest.js +1 -1
  26. package/.next/standalone/.next/server/app/(main)/metrics/page.js.nft.json +1 -1
  27. package/.next/standalone/.next/server/app/(main)/metrics/page_client-reference-manifest.js +1 -1
  28. package/.next/standalone/.next/server/app/(main)/modelconfig/page_client-reference-manifest.js +1 -1
  29. package/.next/standalone/.next/server/app/(main)/modelconfig/registry/page_client-reference-manifest.js +1 -1
  30. package/.next/standalone/.next/server/app/(main)/modelconfig/web-search/page_client-reference-manifest.js +1 -1
  31. package/.next/standalone/.next/server/app/(main)/optapi/page_client-reference-manifest.js +1 -1
  32. package/.next/standalone/.next/server/app/(main)/quality/page_client-reference-manifest.js +1 -1
  33. package/.next/standalone/.next/server/app/(main)/security/page_client-reference-manifest.js +1 -1
  34. package/.next/standalone/.next/server/app/(main)/skill-eval/grayscale/page_client-reference-manifest.js +1 -1
  35. package/.next/standalone/.next/server/app/(main)/skill-eval/page_client-reference-manifest.js +1 -1
  36. package/.next/standalone/.next/server/app/(main)/skill-eval/trigger/[skillName]/page_client-reference-manifest.js +1 -1
  37. package/.next/standalone/.next/server/app/(main)/skill-generator/page_client-reference-manifest.js +1 -1
  38. package/.next/standalone/.next/server/app/(main)/skill-history/page.js.nft.json +1 -1
  39. package/.next/standalone/.next/server/app/(main)/skill-history/page_client-reference-manifest.js +1 -1
  40. package/.next/standalone/.next/server/app/(main)/skill-opt/[name]/[version]/page_client-reference-manifest.js +1 -1
  41. package/.next/standalone/.next/server/app/(main)/skill-opt/page_client-reference-manifest.js +1 -1
  42. package/.next/standalone/.next/server/app/(main)/skill-release/page_client-reference-manifest.js +1 -1
  43. package/.next/standalone/.next/server/app/(main)/skills/page_client-reference-manifest.js +1 -1
  44. package/.next/standalone/.next/server/app/(main)/trace/page.js.nft.json +1 -1
  45. package/.next/standalone/.next/server/app/(main)/trace/page_client-reference-manifest.js +1 -1
  46. package/.next/standalone/.next/server/app/(main)/version-analysis/page_client-reference-manifest.js +1 -1
  47. package/.next/standalone/.next/server/app/(main)/version-management/page_client-reference-manifest.js +1 -1
  48. package/.next/standalone/.next/server/app/_global-error.html +2 -2
  49. package/.next/standalone/.next/server/app/_global-error.rsc +1 -1
  50. package/.next/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  51. package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  52. package/.next/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  53. package/.next/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  54. package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  55. package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  56. package/.next/standalone/.next/server/app/_not-found.html +1 -1
  57. package/.next/standalone/.next/server/app/_not-found.rsc +3 -3
  58. package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +3 -3
  59. package/.next/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  60. package/.next/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +3 -3
  61. package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  62. package/.next/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  63. package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  64. package/.next/standalone/.next/server/app/accessconfig/channels.html +1 -1
  65. package/.next/standalone/.next/server/app/accessconfig/channels.rsc +5 -5
  66. package/.next/standalone/.next/server/app/accessconfig/channels.segments/!KG1haW4p/accessconfig/channels/__PAGE__.segment.rsc +2 -2
  67. package/.next/standalone/.next/server/app/accessconfig/channels.segments/!KG1haW4p/accessconfig/channels.segment.rsc +1 -1
  68. package/.next/standalone/.next/server/app/accessconfig/channels.segments/!KG1haW4p/accessconfig.segment.rsc +1 -1
  69. package/.next/standalone/.next/server/app/accessconfig/channels.segments/!KG1haW4p.segment.rsc +2 -2
  70. package/.next/standalone/.next/server/app/accessconfig/channels.segments/_full.segment.rsc +5 -5
  71. package/.next/standalone/.next/server/app/accessconfig/channels.segments/_head.segment.rsc +1 -1
  72. package/.next/standalone/.next/server/app/accessconfig/channels.segments/_index.segment.rsc +3 -3
  73. package/.next/standalone/.next/server/app/accessconfig/channels.segments/_tree.segment.rsc +2 -2
  74. package/.next/standalone/.next/server/app/accessconfig/health.html +1 -1
  75. package/.next/standalone/.next/server/app/accessconfig/health.rsc +5 -5
  76. package/.next/standalone/.next/server/app/accessconfig/health.segments/!KG1haW4p/accessconfig/health/__PAGE__.segment.rsc +2 -2
  77. package/.next/standalone/.next/server/app/accessconfig/health.segments/!KG1haW4p/accessconfig/health.segment.rsc +1 -1
  78. package/.next/standalone/.next/server/app/accessconfig/health.segments/!KG1haW4p/accessconfig.segment.rsc +1 -1
  79. package/.next/standalone/.next/server/app/accessconfig/health.segments/!KG1haW4p.segment.rsc +2 -2
  80. package/.next/standalone/.next/server/app/accessconfig/health.segments/_full.segment.rsc +5 -5
  81. package/.next/standalone/.next/server/app/accessconfig/health.segments/_head.segment.rsc +1 -1
  82. package/.next/standalone/.next/server/app/accessconfig/health.segments/_index.segment.rsc +3 -3
  83. package/.next/standalone/.next/server/app/accessconfig/health.segments/_tree.segment.rsc +2 -2
  84. package/.next/standalone/.next/server/app/accessconfig/install.html +2 -2
  85. package/.next/standalone/.next/server/app/accessconfig/install.rsc +5 -5
  86. package/.next/standalone/.next/server/app/accessconfig/install.segments/!KG1haW4p/accessconfig/install/__PAGE__.segment.rsc +2 -2
  87. package/.next/standalone/.next/server/app/accessconfig/install.segments/!KG1haW4p/accessconfig/install.segment.rsc +1 -1
  88. package/.next/standalone/.next/server/app/accessconfig/install.segments/!KG1haW4p/accessconfig.segment.rsc +1 -1
  89. package/.next/standalone/.next/server/app/accessconfig/install.segments/!KG1haW4p.segment.rsc +2 -2
  90. package/.next/standalone/.next/server/app/accessconfig/install.segments/_full.segment.rsc +5 -5
  91. package/.next/standalone/.next/server/app/accessconfig/install.segments/_head.segment.rsc +1 -1
  92. package/.next/standalone/.next/server/app/accessconfig/install.segments/_index.segment.rsc +3 -3
  93. package/.next/standalone/.next/server/app/accessconfig/install.segments/_tree.segment.rsc +2 -2
  94. package/.next/standalone/.next/server/app/accessconfig/webhooks.html +1 -1
  95. package/.next/standalone/.next/server/app/accessconfig/webhooks.rsc +5 -5
  96. package/.next/standalone/.next/server/app/accessconfig/webhooks.segments/!KG1haW4p/accessconfig/webhooks/__PAGE__.segment.rsc +2 -2
  97. package/.next/standalone/.next/server/app/accessconfig/webhooks.segments/!KG1haW4p/accessconfig/webhooks.segment.rsc +1 -1
  98. package/.next/standalone/.next/server/app/accessconfig/webhooks.segments/!KG1haW4p/accessconfig.segment.rsc +1 -1
  99. package/.next/standalone/.next/server/app/accessconfig/webhooks.segments/!KG1haW4p.segment.rsc +2 -2
  100. package/.next/standalone/.next/server/app/accessconfig/webhooks.segments/_full.segment.rsc +5 -5
  101. package/.next/standalone/.next/server/app/accessconfig/webhooks.segments/_head.segment.rsc +1 -1
  102. package/.next/standalone/.next/server/app/accessconfig/webhooks.segments/_index.segment.rsc +3 -3
  103. package/.next/standalone/.next/server/app/accessconfig/webhooks.segments/_tree.segment.rsc +2 -2
  104. package/.next/standalone/.next/server/app/accessconfig.html +1 -1
  105. package/.next/standalone/.next/server/app/accessconfig.rsc +4 -4
  106. package/.next/standalone/.next/server/app/accessconfig.segments/!KG1haW4p/accessconfig/__PAGE__.segment.rsc +1 -1
  107. package/.next/standalone/.next/server/app/accessconfig.segments/!KG1haW4p/accessconfig.segment.rsc +1 -1
  108. package/.next/standalone/.next/server/app/accessconfig.segments/!KG1haW4p.segment.rsc +2 -2
  109. package/.next/standalone/.next/server/app/accessconfig.segments/_full.segment.rsc +4 -4
  110. package/.next/standalone/.next/server/app/accessconfig.segments/_head.segment.rsc +1 -1
  111. package/.next/standalone/.next/server/app/accessconfig.segments/_index.segment.rsc +3 -3
  112. package/.next/standalone/.next/server/app/accessconfig.segments/_tree.segment.rsc +2 -2
  113. package/.next/standalone/.next/server/app/agents.html +1 -1
  114. package/.next/standalone/.next/server/app/agents.rsc +5 -5
  115. package/.next/standalone/.next/server/app/agents.segments/!KG1haW4p/agents/__PAGE__.segment.rsc +2 -2
  116. package/.next/standalone/.next/server/app/agents.segments/!KG1haW4p/agents.segment.rsc +1 -1
  117. package/.next/standalone/.next/server/app/agents.segments/!KG1haW4p.segment.rsc +2 -2
  118. package/.next/standalone/.next/server/app/agents.segments/_full.segment.rsc +5 -5
  119. package/.next/standalone/.next/server/app/agents.segments/_head.segment.rsc +1 -1
  120. package/.next/standalone/.next/server/app/agents.segments/_index.segment.rsc +3 -3
  121. package/.next/standalone/.next/server/app/agents.segments/_tree.segment.rsc +2 -2
  122. package/.next/standalone/.next/server/app/api/agent/run/route.js.nft.json +1 -1
  123. package/.next/standalone/.next/server/app/api/agent/stream/route.js.nft.json +1 -1
  124. package/.next/standalone/.next/server/app/api/debug/batch-tasks/[taskId]/route.js.nft.json +1 -1
  125. package/.next/standalone/.next/server/app/api/debug/execute/route.js.nft.json +1 -1
  126. package/.next/standalone/.next/server/app/api/debug/grayscale-tasks/[taskId]/route.js.nft.json +1 -1
  127. package/.next/standalone/.next/server/app/api/eval/terminate-all/route.js.nft.json +1 -1
  128. package/.next/standalone/.next/server/app/api/eval/trajectory/run/route.js.nft.json +1 -1
  129. package/.next/standalone/.next/server/app/api/fault/diagnosis/stream/route.js.nft.json +1 -1
  130. package/.next/standalone/.next/server/app/api/observe/executions/[executionId]/agent-debug/route.js.nft.json +1 -1
  131. package/.next/standalone/.next/server/app/api/observe/executions/[executionId]/agent-debug/skills-analysis/route.js.nft.json +1 -1
  132. package/.next/standalone/.next/server/app/api/observe/version-analysis/compare/route.js +1 -1
  133. package/.next/standalone/.next/server/app/api/observe/version-analysis/compare/route.js.nft.json +1 -1
  134. package/.next/standalone/.next/server/app/api/observe/version-analysis/tags/[tagId]/traces/route.js +1 -1
  135. package/.next/standalone/.next/server/app/api/observe/version-analysis/tags/[tagId]/traces/route.js.nft.json +1 -1
  136. package/.next/standalone/.next/server/app/api/skill-eval/trigger/[skillName]/draft/route.js.nft.json +1 -1
  137. package/.next/standalone/.next/server/app/api/skill-eval/trigger/[skillName]/run/route.js.nft.json +1 -1
  138. package/.next/standalone/.next/server/app/api/skill-generator/attachments/route.js.nft.json +1 -1
  139. package/.next/standalone/.next/server/app/api/skill-generator/chat/route.js.nft.json +1 -1
  140. package/.next/standalone/.next/server/app/api/skill-generator/files/content/route.js.nft.json +1 -1
  141. package/.next/standalone/.next/server/app/api/skill-generator/files/download/route.js.nft.json +1 -1
  142. package/.next/standalone/.next/server/app/api/skill-generator/files/info/route.js.nft.json +1 -1
  143. package/.next/standalone/.next/server/app/api/skill-generator/files/list/route.js.nft.json +1 -1
  144. package/.next/standalone/.next/server/app/api/skill-opt/chat/route.js.nft.json +1 -1
  145. package/.next/standalone/.next/server/app/api/skill-opt/sessions/[id]/iterations/[draftNumber]/apply/route.js.nft.json +1 -1
  146. package/.next/standalone/.next/server/app/api/skills/[id]/versions/[version]/download/route.js.nft.json +1 -1
  147. package/.next/standalone/.next/server/app/api/skills/[id]/versions/[version]/files/[...path]/route.js.nft.json +1 -1
  148. package/.next/standalone/.next/server/app/api/user-evaluators/route.js.nft.json +1 -1
  149. package/.next/standalone/.next/server/app/dashboard.html +1 -1
  150. package/.next/standalone/.next/server/app/dashboard.rsc +5 -5
  151. package/.next/standalone/.next/server/app/dashboard.segments/!KG1haW4p/dashboard/__PAGE__.segment.rsc +2 -2
  152. package/.next/standalone/.next/server/app/dashboard.segments/!KG1haW4p/dashboard.segment.rsc +1 -1
  153. package/.next/standalone/.next/server/app/dashboard.segments/!KG1haW4p.segment.rsc +2 -2
  154. package/.next/standalone/.next/server/app/dashboard.segments/_full.segment.rsc +5 -5
  155. package/.next/standalone/.next/server/app/dashboard.segments/_head.segment.rsc +1 -1
  156. package/.next/standalone/.next/server/app/dashboard.segments/_index.segment.rsc +3 -3
  157. package/.next/standalone/.next/server/app/dashboard.segments/_tree.segment.rsc +2 -2
  158. package/.next/standalone/.next/server/app/dataset.html +1 -1
  159. package/.next/standalone/.next/server/app/dataset.rsc +5 -5
  160. package/.next/standalone/.next/server/app/dataset.segments/!KG1haW4p/dataset/__PAGE__.segment.rsc +2 -2
  161. package/.next/standalone/.next/server/app/dataset.segments/!KG1haW4p/dataset.segment.rsc +1 -1
  162. package/.next/standalone/.next/server/app/dataset.segments/!KG1haW4p.segment.rsc +2 -2
  163. package/.next/standalone/.next/server/app/dataset.segments/_full.segment.rsc +5 -5
  164. package/.next/standalone/.next/server/app/dataset.segments/_head.segment.rsc +1 -1
  165. package/.next/standalone/.next/server/app/dataset.segments/_index.segment.rsc +3 -3
  166. package/.next/standalone/.next/server/app/dataset.segments/_tree.segment.rsc +2 -2
  167. package/.next/standalone/.next/server/app/eval/trajectory.html +1 -1
  168. package/.next/standalone/.next/server/app/eval/trajectory.rsc +5 -5
  169. package/.next/standalone/.next/server/app/eval/trajectory.segments/!KG1haW4p/eval/trajectory/__PAGE__.segment.rsc +2 -2
  170. package/.next/standalone/.next/server/app/eval/trajectory.segments/!KG1haW4p/eval/trajectory.segment.rsc +1 -1
  171. package/.next/standalone/.next/server/app/eval/trajectory.segments/!KG1haW4p/eval.segment.rsc +1 -1
  172. package/.next/standalone/.next/server/app/eval/trajectory.segments/!KG1haW4p.segment.rsc +2 -2
  173. package/.next/standalone/.next/server/app/eval/trajectory.segments/_full.segment.rsc +5 -5
  174. package/.next/standalone/.next/server/app/eval/trajectory.segments/_head.segment.rsc +1 -1
  175. package/.next/standalone/.next/server/app/eval/trajectory.segments/_index.segment.rsc +3 -3
  176. package/.next/standalone/.next/server/app/eval/trajectory.segments/_tree.segment.rsc +2 -2
  177. package/.next/standalone/.next/server/app/eval.html +1 -1
  178. package/.next/standalone/.next/server/app/eval.rsc +5 -5
  179. package/.next/standalone/.next/server/app/eval.segments/!KG1haW4p/eval/__PAGE__.segment.rsc +2 -2
  180. package/.next/standalone/.next/server/app/eval.segments/!KG1haW4p/eval.segment.rsc +1 -1
  181. package/.next/standalone/.next/server/app/eval.segments/!KG1haW4p.segment.rsc +2 -2
  182. package/.next/standalone/.next/server/app/eval.segments/_full.segment.rsc +5 -5
  183. package/.next/standalone/.next/server/app/eval.segments/_head.segment.rsc +1 -1
  184. package/.next/standalone/.next/server/app/eval.segments/_index.segment.rsc +3 -3
  185. package/.next/standalone/.next/server/app/eval.segments/_tree.segment.rsc +2 -2
  186. package/.next/standalone/.next/server/app/fault.html +1 -1
  187. package/.next/standalone/.next/server/app/fault.rsc +5 -5
  188. package/.next/standalone/.next/server/app/fault.segments/!KG1haW4p/fault/__PAGE__.segment.rsc +2 -2
  189. package/.next/standalone/.next/server/app/fault.segments/!KG1haW4p/fault.segment.rsc +1 -1
  190. package/.next/standalone/.next/server/app/fault.segments/!KG1haW4p.segment.rsc +2 -2
  191. package/.next/standalone/.next/server/app/fault.segments/_full.segment.rsc +5 -5
  192. package/.next/standalone/.next/server/app/fault.segments/_head.segment.rsc +1 -1
  193. package/.next/standalone/.next/server/app/fault.segments/_index.segment.rsc +3 -3
  194. package/.next/standalone/.next/server/app/fault.segments/_tree.segment.rsc +2 -2
  195. package/.next/standalone/.next/server/app/index.html +1 -1
  196. package/.next/standalone/.next/server/app/index.rsc +3 -3
  197. package/.next/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  198. package/.next/standalone/.next/server/app/index.segments/_full.segment.rsc +3 -3
  199. package/.next/standalone/.next/server/app/index.segments/_head.segment.rsc +1 -1
  200. package/.next/standalone/.next/server/app/index.segments/_index.segment.rsc +3 -3
  201. package/.next/standalone/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  202. package/.next/standalone/.next/server/app/infra/sources.html +1 -1
  203. package/.next/standalone/.next/server/app/infra/sources.rsc +5 -5
  204. package/.next/standalone/.next/server/app/infra/sources.segments/!KG1haW4p/infra/sources/__PAGE__.segment.rsc +2 -2
  205. package/.next/standalone/.next/server/app/infra/sources.segments/!KG1haW4p/infra/sources.segment.rsc +1 -1
  206. package/.next/standalone/.next/server/app/infra/sources.segments/!KG1haW4p/infra.segment.rsc +1 -1
  207. package/.next/standalone/.next/server/app/infra/sources.segments/!KG1haW4p.segment.rsc +2 -2
  208. package/.next/standalone/.next/server/app/infra/sources.segments/_full.segment.rsc +5 -5
  209. package/.next/standalone/.next/server/app/infra/sources.segments/_head.segment.rsc +1 -1
  210. package/.next/standalone/.next/server/app/infra/sources.segments/_index.segment.rsc +3 -3
  211. package/.next/standalone/.next/server/app/infra/sources.segments/_tree.segment.rsc +2 -2
  212. package/.next/standalone/.next/server/app/infra.html +1 -1
  213. package/.next/standalone/.next/server/app/infra.rsc +5 -5
  214. package/.next/standalone/.next/server/app/infra.segments/!KG1haW4p/infra/__PAGE__.segment.rsc +2 -2
  215. package/.next/standalone/.next/server/app/infra.segments/!KG1haW4p/infra.segment.rsc +1 -1
  216. package/.next/standalone/.next/server/app/infra.segments/!KG1haW4p.segment.rsc +2 -2
  217. package/.next/standalone/.next/server/app/infra.segments/_full.segment.rsc +5 -5
  218. package/.next/standalone/.next/server/app/infra.segments/_head.segment.rsc +1 -1
  219. package/.next/standalone/.next/server/app/infra.segments/_index.segment.rsc +3 -3
  220. package/.next/standalone/.next/server/app/infra.segments/_tree.segment.rsc +2 -2
  221. package/.next/standalone/.next/server/app/login/page_client-reference-manifest.js +1 -1
  222. package/.next/standalone/.next/server/app/login.html +1 -1
  223. package/.next/standalone/.next/server/app/login.rsc +4 -4
  224. package/.next/standalone/.next/server/app/login.segments/_full.segment.rsc +4 -4
  225. package/.next/standalone/.next/server/app/login.segments/_head.segment.rsc +1 -1
  226. package/.next/standalone/.next/server/app/login.segments/_index.segment.rsc +3 -3
  227. package/.next/standalone/.next/server/app/login.segments/_tree.segment.rsc +2 -2
  228. package/.next/standalone/.next/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
  229. package/.next/standalone/.next/server/app/login.segments/login.segment.rsc +1 -1
  230. package/.next/standalone/.next/server/app/memory.html +1 -1
  231. package/.next/standalone/.next/server/app/memory.rsc +5 -5
  232. package/.next/standalone/.next/server/app/memory.segments/!KG1haW4p/memory/__PAGE__.segment.rsc +2 -2
  233. package/.next/standalone/.next/server/app/memory.segments/!KG1haW4p/memory.segment.rsc +1 -1
  234. package/.next/standalone/.next/server/app/memory.segments/!KG1haW4p.segment.rsc +2 -2
  235. package/.next/standalone/.next/server/app/memory.segments/_full.segment.rsc +5 -5
  236. package/.next/standalone/.next/server/app/memory.segments/_head.segment.rsc +1 -1
  237. package/.next/standalone/.next/server/app/memory.segments/_index.segment.rsc +3 -3
  238. package/.next/standalone/.next/server/app/memory.segments/_tree.segment.rsc +2 -2
  239. package/.next/standalone/.next/server/app/metrics.html +1 -1
  240. package/.next/standalone/.next/server/app/metrics.rsc +5 -5
  241. package/.next/standalone/.next/server/app/metrics.segments/!KG1haW4p/metrics/__PAGE__.segment.rsc +2 -2
  242. package/.next/standalone/.next/server/app/metrics.segments/!KG1haW4p/metrics.segment.rsc +1 -1
  243. package/.next/standalone/.next/server/app/metrics.segments/!KG1haW4p.segment.rsc +2 -2
  244. package/.next/standalone/.next/server/app/metrics.segments/_full.segment.rsc +5 -5
  245. package/.next/standalone/.next/server/app/metrics.segments/_head.segment.rsc +1 -1
  246. package/.next/standalone/.next/server/app/metrics.segments/_index.segment.rsc +3 -3
  247. package/.next/standalone/.next/server/app/metrics.segments/_tree.segment.rsc +2 -2
  248. package/.next/standalone/.next/server/app/modelconfig/registry.html +1 -1
  249. package/.next/standalone/.next/server/app/modelconfig/registry.rsc +5 -5
  250. package/.next/standalone/.next/server/app/modelconfig/registry.segments/!KG1haW4p/modelconfig/registry/__PAGE__.segment.rsc +2 -2
  251. package/.next/standalone/.next/server/app/modelconfig/registry.segments/!KG1haW4p/modelconfig/registry.segment.rsc +1 -1
  252. package/.next/standalone/.next/server/app/modelconfig/registry.segments/!KG1haW4p/modelconfig.segment.rsc +1 -1
  253. package/.next/standalone/.next/server/app/modelconfig/registry.segments/!KG1haW4p.segment.rsc +2 -2
  254. package/.next/standalone/.next/server/app/modelconfig/registry.segments/_full.segment.rsc +5 -5
  255. package/.next/standalone/.next/server/app/modelconfig/registry.segments/_head.segment.rsc +1 -1
  256. package/.next/standalone/.next/server/app/modelconfig/registry.segments/_index.segment.rsc +3 -3
  257. package/.next/standalone/.next/server/app/modelconfig/registry.segments/_tree.segment.rsc +2 -2
  258. package/.next/standalone/.next/server/app/modelconfig/web-search.html +1 -1
  259. package/.next/standalone/.next/server/app/modelconfig/web-search.rsc +5 -5
  260. package/.next/standalone/.next/server/app/modelconfig/web-search.segments/!KG1haW4p/modelconfig/web-search/__PAGE__.segment.rsc +2 -2
  261. package/.next/standalone/.next/server/app/modelconfig/web-search.segments/!KG1haW4p/modelconfig/web-search.segment.rsc +1 -1
  262. package/.next/standalone/.next/server/app/modelconfig/web-search.segments/!KG1haW4p/modelconfig.segment.rsc +1 -1
  263. package/.next/standalone/.next/server/app/modelconfig/web-search.segments/!KG1haW4p.segment.rsc +2 -2
  264. package/.next/standalone/.next/server/app/modelconfig/web-search.segments/_full.segment.rsc +5 -5
  265. package/.next/standalone/.next/server/app/modelconfig/web-search.segments/_head.segment.rsc +1 -1
  266. package/.next/standalone/.next/server/app/modelconfig/web-search.segments/_index.segment.rsc +3 -3
  267. package/.next/standalone/.next/server/app/modelconfig/web-search.segments/_tree.segment.rsc +2 -2
  268. package/.next/standalone/.next/server/app/modelconfig.html +1 -1
  269. package/.next/standalone/.next/server/app/modelconfig.rsc +4 -4
  270. package/.next/standalone/.next/server/app/modelconfig.segments/!KG1haW4p/modelconfig/__PAGE__.segment.rsc +1 -1
  271. package/.next/standalone/.next/server/app/modelconfig.segments/!KG1haW4p/modelconfig.segment.rsc +1 -1
  272. package/.next/standalone/.next/server/app/modelconfig.segments/!KG1haW4p.segment.rsc +2 -2
  273. package/.next/standalone/.next/server/app/modelconfig.segments/_full.segment.rsc +4 -4
  274. package/.next/standalone/.next/server/app/modelconfig.segments/_head.segment.rsc +1 -1
  275. package/.next/standalone/.next/server/app/modelconfig.segments/_index.segment.rsc +3 -3
  276. package/.next/standalone/.next/server/app/modelconfig.segments/_tree.segment.rsc +2 -2
  277. package/.next/standalone/.next/server/app/optapi.html +1 -1
  278. package/.next/standalone/.next/server/app/optapi.rsc +5 -5
  279. package/.next/standalone/.next/server/app/optapi.segments/!KG1haW4p/optapi/__PAGE__.segment.rsc +2 -2
  280. package/.next/standalone/.next/server/app/optapi.segments/!KG1haW4p/optapi.segment.rsc +1 -1
  281. package/.next/standalone/.next/server/app/optapi.segments/!KG1haW4p.segment.rsc +2 -2
  282. package/.next/standalone/.next/server/app/optapi.segments/_full.segment.rsc +5 -5
  283. package/.next/standalone/.next/server/app/optapi.segments/_head.segment.rsc +1 -1
  284. package/.next/standalone/.next/server/app/optapi.segments/_index.segment.rsc +3 -3
  285. package/.next/standalone/.next/server/app/optapi.segments/_tree.segment.rsc +2 -2
  286. package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  287. package/.next/standalone/.next/server/app/quality.html +1 -1
  288. package/.next/standalone/.next/server/app/quality.rsc +5 -5
  289. package/.next/standalone/.next/server/app/quality.segments/!KG1haW4p/quality/__PAGE__.segment.rsc +2 -2
  290. package/.next/standalone/.next/server/app/quality.segments/!KG1haW4p/quality.segment.rsc +1 -1
  291. package/.next/standalone/.next/server/app/quality.segments/!KG1haW4p.segment.rsc +2 -2
  292. package/.next/standalone/.next/server/app/quality.segments/_full.segment.rsc +5 -5
  293. package/.next/standalone/.next/server/app/quality.segments/_head.segment.rsc +1 -1
  294. package/.next/standalone/.next/server/app/quality.segments/_index.segment.rsc +3 -3
  295. package/.next/standalone/.next/server/app/quality.segments/_tree.segment.rsc +2 -2
  296. package/.next/standalone/.next/server/app/security.html +1 -1
  297. package/.next/standalone/.next/server/app/security.rsc +5 -5
  298. package/.next/standalone/.next/server/app/security.segments/!KG1haW4p/security/__PAGE__.segment.rsc +2 -2
  299. package/.next/standalone/.next/server/app/security.segments/!KG1haW4p/security.segment.rsc +1 -1
  300. package/.next/standalone/.next/server/app/security.segments/!KG1haW4p.segment.rsc +2 -2
  301. package/.next/standalone/.next/server/app/security.segments/_full.segment.rsc +5 -5
  302. package/.next/standalone/.next/server/app/security.segments/_head.segment.rsc +1 -1
  303. package/.next/standalone/.next/server/app/security.segments/_index.segment.rsc +3 -3
  304. package/.next/standalone/.next/server/app/security.segments/_tree.segment.rsc +2 -2
  305. package/.next/standalone/.next/server/app/skill-detail/page_client-reference-manifest.js +1 -1
  306. package/.next/standalone/.next/server/app/skill-detail.html +1 -1
  307. package/.next/standalone/.next/server/app/skill-detail.rsc +4 -4
  308. package/.next/standalone/.next/server/app/skill-detail.segments/_full.segment.rsc +4 -4
  309. package/.next/standalone/.next/server/app/skill-detail.segments/_head.segment.rsc +1 -1
  310. package/.next/standalone/.next/server/app/skill-detail.segments/_index.segment.rsc +3 -3
  311. package/.next/standalone/.next/server/app/skill-detail.segments/_tree.segment.rsc +2 -2
  312. package/.next/standalone/.next/server/app/skill-detail.segments/skill-detail/__PAGE__.segment.rsc +2 -2
  313. package/.next/standalone/.next/server/app/skill-detail.segments/skill-detail.segment.rsc +1 -1
  314. package/.next/standalone/.next/server/app/skill-eval/grayscale.html +2 -2
  315. package/.next/standalone/.next/server/app/skill-eval/grayscale.rsc +5 -5
  316. package/.next/standalone/.next/server/app/skill-eval/grayscale.segments/!KG1haW4p/skill-eval/grayscale/__PAGE__.segment.rsc +2 -2
  317. package/.next/standalone/.next/server/app/skill-eval/grayscale.segments/!KG1haW4p/skill-eval/grayscale.segment.rsc +1 -1
  318. package/.next/standalone/.next/server/app/skill-eval/grayscale.segments/!KG1haW4p/skill-eval.segment.rsc +1 -1
  319. package/.next/standalone/.next/server/app/skill-eval/grayscale.segments/!KG1haW4p.segment.rsc +2 -2
  320. package/.next/standalone/.next/server/app/skill-eval/grayscale.segments/_full.segment.rsc +5 -5
  321. package/.next/standalone/.next/server/app/skill-eval/grayscale.segments/_head.segment.rsc +1 -1
  322. package/.next/standalone/.next/server/app/skill-eval/grayscale.segments/_index.segment.rsc +3 -3
  323. package/.next/standalone/.next/server/app/skill-eval/grayscale.segments/_tree.segment.rsc +2 -2
  324. package/.next/standalone/.next/server/app/skill-eval.html +1 -1
  325. package/.next/standalone/.next/server/app/skill-eval.rsc +5 -5
  326. package/.next/standalone/.next/server/app/skill-eval.segments/!KG1haW4p/skill-eval/__PAGE__.segment.rsc +2 -2
  327. package/.next/standalone/.next/server/app/skill-eval.segments/!KG1haW4p/skill-eval.segment.rsc +1 -1
  328. package/.next/standalone/.next/server/app/skill-eval.segments/!KG1haW4p.segment.rsc +2 -2
  329. package/.next/standalone/.next/server/app/skill-eval.segments/_full.segment.rsc +5 -5
  330. package/.next/standalone/.next/server/app/skill-eval.segments/_head.segment.rsc +1 -1
  331. package/.next/standalone/.next/server/app/skill-eval.segments/_index.segment.rsc +3 -3
  332. package/.next/standalone/.next/server/app/skill-eval.segments/_tree.segment.rsc +2 -2
  333. package/.next/standalone/.next/server/app/skill-generator.html +1 -1
  334. package/.next/standalone/.next/server/app/skill-generator.rsc +5 -5
  335. package/.next/standalone/.next/server/app/skill-generator.segments/!KG1haW4p/skill-generator/__PAGE__.segment.rsc +2 -2
  336. package/.next/standalone/.next/server/app/skill-generator.segments/!KG1haW4p/skill-generator.segment.rsc +1 -1
  337. package/.next/standalone/.next/server/app/skill-generator.segments/!KG1haW4p.segment.rsc +2 -2
  338. package/.next/standalone/.next/server/app/skill-generator.segments/_full.segment.rsc +5 -5
  339. package/.next/standalone/.next/server/app/skill-generator.segments/_head.segment.rsc +1 -1
  340. package/.next/standalone/.next/server/app/skill-generator.segments/_index.segment.rsc +3 -3
  341. package/.next/standalone/.next/server/app/skill-generator.segments/_tree.segment.rsc +2 -2
  342. package/.next/standalone/.next/server/app/skill-history.html +1 -1
  343. package/.next/standalone/.next/server/app/skill-history.rsc +5 -5
  344. package/.next/standalone/.next/server/app/skill-history.segments/!KG1haW4p/skill-history/__PAGE__.segment.rsc +2 -2
  345. package/.next/standalone/.next/server/app/skill-history.segments/!KG1haW4p/skill-history.segment.rsc +1 -1
  346. package/.next/standalone/.next/server/app/skill-history.segments/!KG1haW4p.segment.rsc +2 -2
  347. package/.next/standalone/.next/server/app/skill-history.segments/_full.segment.rsc +5 -5
  348. package/.next/standalone/.next/server/app/skill-history.segments/_head.segment.rsc +1 -1
  349. package/.next/standalone/.next/server/app/skill-history.segments/_index.segment.rsc +3 -3
  350. package/.next/standalone/.next/server/app/skill-history.segments/_tree.segment.rsc +2 -2
  351. package/.next/standalone/.next/server/app/skill-opt.html +1 -1
  352. package/.next/standalone/.next/server/app/skill-opt.rsc +5 -5
  353. package/.next/standalone/.next/server/app/skill-opt.segments/!KG1haW4p/skill-opt/__PAGE__.segment.rsc +2 -2
  354. package/.next/standalone/.next/server/app/skill-opt.segments/!KG1haW4p/skill-opt.segment.rsc +1 -1
  355. package/.next/standalone/.next/server/app/skill-opt.segments/!KG1haW4p.segment.rsc +2 -2
  356. package/.next/standalone/.next/server/app/skill-opt.segments/_full.segment.rsc +5 -5
  357. package/.next/standalone/.next/server/app/skill-opt.segments/_head.segment.rsc +1 -1
  358. package/.next/standalone/.next/server/app/skill-opt.segments/_index.segment.rsc +3 -3
  359. package/.next/standalone/.next/server/app/skill-opt.segments/_tree.segment.rsc +2 -2
  360. package/.next/standalone/.next/server/app/skill-release.html +1 -1
  361. package/.next/standalone/.next/server/app/skill-release.rsc +5 -5
  362. package/.next/standalone/.next/server/app/skill-release.segments/!KG1haW4p/skill-release/__PAGE__.segment.rsc +2 -2
  363. package/.next/standalone/.next/server/app/skill-release.segments/!KG1haW4p/skill-release.segment.rsc +1 -1
  364. package/.next/standalone/.next/server/app/skill-release.segments/!KG1haW4p.segment.rsc +2 -2
  365. package/.next/standalone/.next/server/app/skill-release.segments/_full.segment.rsc +5 -5
  366. package/.next/standalone/.next/server/app/skill-release.segments/_head.segment.rsc +1 -1
  367. package/.next/standalone/.next/server/app/skill-release.segments/_index.segment.rsc +3 -3
  368. package/.next/standalone/.next/server/app/skill-release.segments/_tree.segment.rsc +2 -2
  369. package/.next/standalone/.next/server/app/skills.html +1 -1
  370. package/.next/standalone/.next/server/app/skills.rsc +5 -5
  371. package/.next/standalone/.next/server/app/skills.segments/!KG1haW4p/skills/__PAGE__.segment.rsc +2 -2
  372. package/.next/standalone/.next/server/app/skills.segments/!KG1haW4p/skills.segment.rsc +1 -1
  373. package/.next/standalone/.next/server/app/skills.segments/!KG1haW4p.segment.rsc +2 -2
  374. package/.next/standalone/.next/server/app/skills.segments/_full.segment.rsc +5 -5
  375. package/.next/standalone/.next/server/app/skills.segments/_head.segment.rsc +1 -1
  376. package/.next/standalone/.next/server/app/skills.segments/_index.segment.rsc +3 -3
  377. package/.next/standalone/.next/server/app/skills.segments/_tree.segment.rsc +2 -2
  378. package/.next/standalone/.next/server/app/trace.html +1 -1
  379. package/.next/standalone/.next/server/app/trace.rsc +7 -7
  380. package/.next/standalone/.next/server/app/trace.segments/!KG1haW4p/trace/__PAGE__.segment.rsc +2 -2
  381. package/.next/standalone/.next/server/app/trace.segments/!KG1haW4p/trace.segment.rsc +1 -1
  382. package/.next/standalone/.next/server/app/trace.segments/!KG1haW4p.segment.rsc +2 -2
  383. package/.next/standalone/.next/server/app/trace.segments/_full.segment.rsc +7 -7
  384. package/.next/standalone/.next/server/app/trace.segments/_head.segment.rsc +1 -1
  385. package/.next/standalone/.next/server/app/trace.segments/_index.segment.rsc +3 -3
  386. package/.next/standalone/.next/server/app/trace.segments/_tree.segment.rsc +2 -2
  387. package/.next/standalone/.next/server/app/version-analysis.html +1 -1
  388. package/.next/standalone/.next/server/app/version-analysis.rsc +5 -5
  389. package/.next/standalone/.next/server/app/version-analysis.segments/!KG1haW4p/version-analysis/__PAGE__.segment.rsc +2 -2
  390. package/.next/standalone/.next/server/app/version-analysis.segments/!KG1haW4p/version-analysis.segment.rsc +1 -1
  391. package/.next/standalone/.next/server/app/version-analysis.segments/!KG1haW4p.segment.rsc +2 -2
  392. package/.next/standalone/.next/server/app/version-analysis.segments/_full.segment.rsc +5 -5
  393. package/.next/standalone/.next/server/app/version-analysis.segments/_head.segment.rsc +1 -1
  394. package/.next/standalone/.next/server/app/version-analysis.segments/_index.segment.rsc +3 -3
  395. package/.next/standalone/.next/server/app/version-analysis.segments/_tree.segment.rsc +2 -2
  396. package/.next/standalone/.next/server/app/version-management.html +1 -1
  397. package/.next/standalone/.next/server/app/version-management.rsc +5 -5
  398. package/.next/standalone/.next/server/app/version-management.segments/!KG1haW4p/version-management/__PAGE__.segment.rsc +2 -2
  399. package/.next/standalone/.next/server/app/version-management.segments/!KG1haW4p/version-management.segment.rsc +1 -1
  400. package/.next/standalone/.next/server/app/version-management.segments/!KG1haW4p.segment.rsc +2 -2
  401. package/.next/standalone/.next/server/app/version-management.segments/_full.segment.rsc +5 -5
  402. package/.next/standalone/.next/server/app/version-management.segments/_head.segment.rsc +1 -1
  403. package/.next/standalone/.next/server/app/version-management.segments/_index.segment.rsc +3 -3
  404. package/.next/standalone/.next/server/app/version-management.segments/_tree.segment.rsc +2 -2
  405. package/.next/standalone/.next/server/chunks/[root-of-the-server]__b0d1e6e5._.js +22 -0
  406. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__8b872712._.js → [root-of-the-server]__c60fa3da._.js} +2 -2
  407. package/.next/standalone/.next/server/chunks/_0ce5f29d._.js +1 -1
  408. package/.next/standalone/.next/server/chunks/_0e34c123._.js +3 -3
  409. package/.next/standalone/.next/server/chunks/_5090183e._.js +1 -1
  410. package/.next/standalone/.next/server/chunks/_adf9e9c5._.js +1 -1
  411. package/.next/standalone/.next/server/chunks/_b172b746._.js +3 -3
  412. package/.next/standalone/.next/server/chunks/_cfa898f4._.js +1 -1
  413. package/.next/standalone/.next/server/chunks/_d02fac80._.js +1 -1
  414. package/.next/standalone/.next/server/chunks/src_lib_a2a34aa6._.js +1 -1
  415. package/.next/standalone/.next/server/chunks/src_lib_ea85a447._.js +1 -1
  416. package/.next/standalone/.next/server/chunks/src_lib_engine_general-agent_970b1dfe._.js +2 -2
  417. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__143c2f65._.js → [root-of-the-server]__83687057._.js} +2 -2
  418. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__b8d3d1c3._.js +8 -0
  419. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__f82e551e._.js +3 -0
  420. package/.next/standalone/.next/server/chunks/ssr/node_modules_11388c48._.js +3 -0
  421. package/.next/standalone/.next/server/chunks/ssr/node_modules_32596a86._.js +3 -0
  422. package/.next/standalone/.next/server/chunks/ssr/src_app_(main)_fault_page_tsx_96431a5d._.js +2 -2
  423. package/.next/standalone/.next/server/chunks/ssr/src_app_(main)_metrics_page_tsx_f1599761._.js +1 -1
  424. package/.next/standalone/.next/server/chunks/ssr/src_app_(main)_trace_page_tsx_41e7865d._.js +1 -1
  425. package/.next/standalone/.next/server/chunks/ssr/{src_lib_evaluators_7597c2fd._.js → src_lib_070bb60a._.js} +2 -2
  426. package/.next/standalone/.next/server/chunks/ssr/src_lib_client_locale-context_tsx_7184d9aa._.js +1 -1
  427. package/.next/standalone/.next/server/pages/404.html +1 -1
  428. package/.next/standalone/.next/server/pages/500.html +2 -2
  429. package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
  430. package/.next/standalone/.next/server/server-reference-manifest.json +1 -1
  431. package/.next/standalone/.next/static/chunks/4d2c017f2f4c9160.css +1 -0
  432. package/.next/standalone/.next/static/chunks/5be4d965983c6b40.js +6 -0
  433. package/.next/standalone/.next/static/chunks/{04bc84975996b76d.js → 7884153c8f8649dd.js} +1 -1
  434. package/.next/{static/chunks/6b2552d3da7451ee.js → standalone/.next/static/chunks/85ce12a5c9536a2d.js} +1 -1
  435. package/.next/standalone/.next/static/chunks/913c61f4f0a12da4.js +1 -0
  436. package/.next/standalone/.next/static/chunks/{b5e671771efd9e7d.js → b11e37b43e38eb95.js} +1 -1
  437. package/.next/standalone/.next/static/chunks/cf0b4e5d7b804bf5.js +1 -0
  438. package/.next/standalone/.next/static/chunks/df6f2eedbe05162e.js +1 -0
  439. package/.next/standalone/.next/static/chunks/e0af9e5baf811284.js +4 -0
  440. package/.next/standalone/.next/static/chunks/f61ffd647f90b66c.js +1 -0
  441. package/.next/standalone/docker-compose.amd64.yml +2 -1
  442. package/.next/standalone/docker-compose.arm64.yml +11 -0
  443. package/.next/standalone/package.json +1 -1
  444. package/.next/static/chunks/4d2c017f2f4c9160.css +1 -0
  445. package/.next/static/chunks/5be4d965983c6b40.js +6 -0
  446. package/.next/static/chunks/{04bc84975996b76d.js → 7884153c8f8649dd.js} +1 -1
  447. package/.next/{standalone/.next/static/chunks/6b2552d3da7451ee.js → static/chunks/85ce12a5c9536a2d.js} +1 -1
  448. package/.next/static/chunks/913c61f4f0a12da4.js +1 -0
  449. package/.next/static/chunks/{b5e671771efd9e7d.js → b11e37b43e38eb95.js} +1 -1
  450. package/.next/static/chunks/cf0b4e5d7b804bf5.js +1 -0
  451. package/.next/static/chunks/df6f2eedbe05162e.js +1 -0
  452. package/.next/static/chunks/e0af9e5baf811284.js +4 -0
  453. package/.next/static/chunks/f61ffd647f90b66c.js +1 -0
  454. package/package.json +1 -1
  455. package/.next/standalone/.next/server/chunks/[root-of-the-server]__51f686fd._.js +0 -22
  456. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__90686664._.js +0 -8
  457. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__96628a39._.js +0 -3
  458. package/.next/standalone/.next/server/chunks/ssr/node_modules_bda25b86._.js +0 -3
  459. package/.next/standalone/.next/static/chunks/0fe047909a490ef0.js +0 -1
  460. package/.next/standalone/.next/static/chunks/1cb2cee6b2f89fb7.js +0 -1
  461. package/.next/standalone/.next/static/chunks/25a9b2907e03a172.css +0 -1
  462. package/.next/standalone/.next/static/chunks/30a686796d86273c.js +0 -1
  463. package/.next/standalone/.next/static/chunks/4b72abe72a9b6cd9.js +0 -6
  464. package/.next/standalone/.next/static/chunks/6e6f2418240877c6.js +0 -1
  465. package/.next/standalone/.next/static/chunks/946d260668afc16b.js +0 -1
  466. package/.next/standalone/.next/static/chunks/efe225251ea151f0.js +0 -4
  467. package/.next/static/chunks/0fe047909a490ef0.js +0 -1
  468. package/.next/static/chunks/1cb2cee6b2f89fb7.js +0 -1
  469. package/.next/static/chunks/25a9b2907e03a172.css +0 -1
  470. package/.next/static/chunks/30a686796d86273c.js +0 -1
  471. package/.next/static/chunks/4b72abe72a9b6cd9.js +0 -6
  472. package/.next/static/chunks/6e6f2418240877c6.js +0 -1
  473. package/.next/static/chunks/946d260668afc16b.js +0 -1
  474. package/.next/static/chunks/efe225251ea151f0.js +0 -4
  475. /package/.next/standalone/.next/static/{VeFGnFbPjqrwSXp9h5AgX → pzAy0mrZCL0PmE4h3HDut}/_buildManifest.js +0 -0
  476. /package/.next/standalone/.next/static/{VeFGnFbPjqrwSXp9h5AgX → pzAy0mrZCL0PmE4h3HDut}/_clientMiddlewareManifest.json +0 -0
  477. /package/.next/standalone/.next/static/{VeFGnFbPjqrwSXp9h5AgX → pzAy0mrZCL0PmE4h3HDut}/_ssgManifest.js +0 -0
  478. /package/.next/static/{VeFGnFbPjqrwSXp9h5AgX → pzAy0mrZCL0PmE4h3HDut}/_buildManifest.js +0 -0
  479. /package/.next/static/{VeFGnFbPjqrwSXp9h5AgX → pzAy0mrZCL0PmE4h3HDut}/_clientMiddlewareManifest.json +0 -0
  480. /package/.next/static/{VeFGnFbPjqrwSXp9h5AgX → pzAy0mrZCL0PmE4h3HDut}/_ssgManifest.js +0 -0
@@ -0,0 +1,4 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,75948,e=>{"use strict";var t=e.i(167225),r=e.i(843476),n=e.i(271645),s=e.i(522016),i=e.i(618566),a=e.i(711241),o=e.i(456420);let l=(0,o.default)("at-sign",[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M16 8v5a3 3 0 0 0 6 0v-1a10 10 0 1 0-4 8",key:"7n84p3"}]]),d=(0,o.default)("bot",[["path",{d:"M12 8V4H8",key:"hb8ula"}],["rect",{width:"16",height:"12",x:"4",y:"8",rx:"2",key:"enze0r"}],["path",{d:"M2 14h2",key:"vft8re"}],["path",{d:"M20 14h2",key:"4cs60a"}],["path",{d:"M15 13v2",key:"1xurst"}],["path",{d:"M9 13v2",key:"rq6x2g"}]]);var c=e.i(716327),u=e.i(867927),p=e.i(474544),g=e.i(482022),x=e.i(269846),m=e.i(994004),h=e.i(632781),f=e.i(468590);let b=(0,o.default)("panel-left",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}]]);var v=e.i(77071);let y=(0,o.default)("send",[["path",{d:"M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z",key:"1ffxy3"}],["path",{d:"m21.854 2.147-10.94 10.939",key:"12cjpa"}]]);var j=e.i(328623);let k=(0,o.default)("user-round",[["circle",{cx:"12",cy:"8",r:"5",key:"1hypcn"}],["path",{d:"M20 21a8 8 0 0 0-16 0",key:"rfgkzh"}]]);var S=e.i(263676),w=e.i(918789),N=e.i(742531),z=e.i(540568),C=e.i(853138);let I=(0,o.default)("brain-circuit",[["path",{d:"M12 5a3 3 0 1 0-5.997.125 4 4 0 0 0-2.526 5.77 4 4 0 0 0 .556 6.588A4 4 0 1 0 12 18Z",key:"l5xja"}],["path",{d:"M9 13a4.5 4.5 0 0 0 3-4",key:"10igwf"}],["path",{d:"M6.003 5.125A3 3 0 0 0 6.401 6.5",key:"105sqy"}],["path",{d:"M3.477 10.896a4 4 0 0 1 .585-.396",key:"ql3yin"}],["path",{d:"M6 18a4 4 0 0 1-1.967-.516",key:"2e4loj"}],["path",{d:"M12 13h4",key:"1ku699"}],["path",{d:"M12 18h6a2 2 0 0 1 2 2v1",key:"105ag5"}],["path",{d:"M12 8h8",key:"1lhi5i"}],["path",{d:"M16 8V5a2 2 0 0 1 2-2",key:"u6izg6"}],["circle",{cx:"16",cy:"13",r:".5",key:"ry7gng"}],["circle",{cx:"18",cy:"3",r:".5",key:"1aiba7"}],["circle",{cx:"20",cy:"21",r:".5",key:"yhc1fs"}],["circle",{cx:"20",cy:"8",r:".5",key:"1e43v0"}]]);var $=e.i(551757);let R=(0,o.default)("eye",[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);var A=e.i(226091),T=e.i(741120),_=e.i(395925);let E=(0,o.default)("zap",[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",key:"1xq2db"}]]);var M=e.i(519455),L=e.i(51907);let B=(0,o.default)("chevron-up",[["path",{d:"m18 15-6-6-6 6",key:"153udz"}]]);var W=e.i(975157);function F({children:e,maxLines:t=6,className:s,buttonClassName:i,expandLabel:a="Expand",collapseLabel:o="Collapse"}){let l=n.useRef(null),d=n.useRef(!1),[u,p]=n.useState(!1),[g,x]=n.useState(!1);return n.useEffect(()=>{d.current=u},[u]),n.useEffect(()=>{let e=l.current;if(!e)return;let t=()=>{d.current||x(e.scrollHeight>e.clientHeight+1)};t();let r=new ResizeObserver(t);return r.observe(e),()=>r.disconnect()},[e,t]),(0,r.jsxs)("div",{className:"min-w-0",children:[(0,r.jsx)("div",{ref:l,className:(0,W.cn)("min-w-0 whitespace-pre-wrap break-words",s),style:u?void 0:{display:"-webkit-box",WebkitBoxOrient:"vertical",WebkitLineClamp:t,overflow:"hidden"},children:e}),g&&(0,r.jsxs)("button",{type:"button","aria-expanded":u,className:(0,W.cn)("mt-1 inline-flex items-center gap-1 rounded-sm text-[11.5px] font-semibold text-primary outline-none hover:underline focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",i),onClick:()=>p(e=>!e),children:[u?o:a,u?(0,r.jsx)(B,{className:"size-3"}):(0,r.jsx)(c.ChevronDown,{className:"size-3"})]})]})}var D=e.i(797324),O=e.i(183752);let H=[{key:"memory",zh:"记忆",en:"Memory"},{key:"reflection",zh:"反思",en:"Reflection"},{key:"planning",zh:"计划",en:"Planning"},{key:"action",zh:"行动",en:"Action"},{key:"system",zh:"系统",en:"System"}];function P(e){return e.row?.status||e.status||""}function U(e){return e.skillsAnalysis||null}function q(e){return U(e)?.status==="running"||"running"===e.status}let G=H.filter(e=>"system"!==e.key),K={memory:{zh:"检查 Agent 是否错误引用历史信息、遗漏用户前文约束,或把不存在的上下文当成事实。",en:"Checks whether the agent misused prior context, forgot user constraints, or relied on nonexistent history."},reflection:{zh:"检查 Agent 是否误读工具结果、错误判断成功/失败,或过早认为任务已经完成。",en:"Checks whether the agent misread tool results, misjudged progress, or claimed success too early."},planning:{zh:"检查计划是否忽略环境约束、选择不可行路径,或与后续动作明显不一致。",en:"Checks whether the plan ignored constraints, chose infeasible steps, or diverged from later actions."},action:{zh:"检查真实工具调用、命令、路径、参数和动作执行结果是否存在明确问题。",en:"Checks real tool calls, commands, paths, parameters, and action results for concrete issues."},system:{zh:"检查工具、运行环境、模型限制、权限、超时等外部系统层异常。",en:"Checks tool, runtime, model-limit, permission, timeout, and other external system errors."}},Y={memory:p.Clock,reflection:f.MessageSquare,planning:$.CheckCircle2,action:E,system:A.FileText};function X(e){let t=new Date().toISOString();return{status:"running",source:"agent-debug",generatedAt:t,updatedAt:t,interactionHash:e,errorMessage:null,keyActionResults:[]}}function J({executionId:e,user:t,locale:s,traceExplicitErrors:i=[],onNodeRefClick:a}){let o="zh"===s,[l,d]=(0,n.useState)(!1),[c,u]=(0,n.useState)(null),[g,x]=(0,n.useState)(null),[m,f]=(0,n.useState)(""),b=(0,n.useRef)(!1),v=(0,n.useRef)(new Set);async function y(r=!1){if(e&&!l){b.current=!0,d(!0),f(""),function(r=!1){if(!e||!t||!r&&(g?.status==="done"&&eu(g).length>0||g?.status==="running"))return;let n=`${e}:${r?"force":"auto"}:${g?.interactionHash||""}`;!r&&v.current.has(n)||(r?v.current.clear():v.current.add(n),S(r))}(r);try{let n=await (0,O.apiFetch)(`/api/observe/executions/${encodeURIComponent(e)}/agent-debug`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({user:t,force:r})}),s=await n.json().catch(()=>({}));if(409===n.status&&"running"===P(s))return void j(s);if(!n.ok)throw Error(s.error||`HTTP ${n.status}`);j(s)}catch(e){d(!1),f(e instanceof Error?e.message:String(e))}}}function j(e){let t=P(e),r=e.report||null;if("running"===t){b.current=!0,u(r),f(""),d(!0);return}b.current=!1,d(!1),u(r),f(e.row?.errorMessage||e.error||"")}function k(e){let t=U(e);t?x(t):e.error||e.row?.status==="running"||x(e=>e?.status==="running"?e:null)}async function S(r=!1){if(!e||!t)return;let n=g?.interactionHash;x(X(n));try{let n=await (0,O.apiFetch)(`/api/observe/executions/${encodeURIComponent(e)}/agent-debug/skills-analysis`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({user:t,force:r})}),s=await n.json().catch(()=>({}));if(k(s),!n.ok)throw Error(s.error||`HTTP ${n.status}`)}catch(t){let e=t instanceof Error?t.message:String(t);x(t=>{var r;let s;return r=t?.interactionHash||n,{status:"failed",source:"agent-debug",generatedAt:s=new Date().toISOString(),updatedAt:s,interactionHash:r,errorMessage:e,keyActionResults:[]}})}}return(0,n.useEffect)(()=>{if(!e)return;let t=!1;return(0,O.apiFetch)(`/api/observe/executions/${encodeURIComponent(e)}/agent-debug`).then(e=>e.ok?e.json():Promise.reject(Error(`HTTP ${e.status}`))).then(e=>{t||j(e)}).catch(e=>{t||(d(!1),f(e instanceof Error?e.message:String(e)))}),()=>{t=!0}},[e]),(0,n.useEffect)(()=>{if(!e)return;x(null),v.current.clear();let t=!1;return(0,O.apiFetch)(`/api/observe/executions/${encodeURIComponent(e)}/agent-debug/skills-analysis`).then(e=>e.ok?e.json():Promise.reject(Error(`HTTP ${e.status}`))).then(e=>{t||k(e)}).catch(()=>{t||x(null)}),()=>{t=!0}},[e]),(0,n.useEffect)(()=>{if(!e||!l)return;let t=!1,r=async()=>{try{let r=await (0,O.apiFetch)(`/api/observe/executions/${encodeURIComponent(e)}/agent-debug`),n=await r.json().catch(()=>({}));if(t)return;if(!r.ok)throw Error(n.error||`HTTP ${r.status}`);j(n)}catch(e){if(t)return;d(!1),f(e instanceof Error?e.message:String(e))}},n=window.setInterval(r,3e3);return()=>{t=!0,window.clearInterval(n)}},[e,l]),(0,r.jsxs)("div",{className:"mb-6 space-y-4",children:[!c&&!m&&!l&&(0,r.jsx)(el,{children:(0,r.jsx)("div",{className:"relative overflow-hidden rounded-lg border border-card-border bg-card shadow-sm",children:(0,r.jsxs)("div",{className:"relative p-5",children:[(0,r.jsxs)("div",{className:"flex items-start justify-between gap-4",children:[(0,r.jsxs)("div",{className:"min-w-0",children:[(0,r.jsxs)("div",{className:"mb-2 inline-flex items-center gap-1.5 rounded-full border border-primary-subtle-border bg-primary-subtle px-2 py-0.5 text-[10.5px] font-bold tracking-[0.12em] text-primary",children:[(0,r.jsx)("span",{className:"size-1.5 rounded-full bg-primary"}),o?"AGENTDEBUG · 四维认知":"AGENTDEBUG · FOUR-DIMENSION"]}),(0,r.jsx)("h3",{className:"text-lg font-extrabold tracking-tight text-foreground",children:o?"需要更深入的诊断?":"Need deeper diagnosis?"}),(0,r.jsx)("p",{className:"mt-1 max-w-[560px] text-[13px] leading-relaxed text-foreground-muted",children:o?"按 AgentDebug 原方案,将每个执行片段抽取为 Memory / Reflection / Planning / Action 四个认知模块;System 作为外部工具/环境异常单独检查,再进入根因定位。":"Use the original AgentDebug pipeline: decompose execution slices into four cognitive modules, check System errors separately, then identify the key diagnostic finding."})]}),(0,r.jsx)(ee,{})]}),(0,r.jsxs)("div",{className:"mt-4 flex flex-wrap items-center gap-4 text-[11.5px] text-foreground-muted",children:[(0,r.jsxs)("span",{className:"inline-flex items-center gap-1",children:[(0,r.jsx)(p.Clock,{className:"size-3"})," ",o?"预计 8-30s":"8-30s expected"]}),(0,r.jsxs)("span",{className:"inline-flex items-center gap-1",children:[(0,r.jsx)(I,{className:"size-3"})," ",o?"初筛 + 根因定位":"Phase 1 + Phase 2"]}),(0,r.jsxs)("span",{className:"inline-flex items-center gap-1",children:[(0,r.jsx)(A.FileText,{className:"size-3"})," ",o?"报告自动归档":"Report archived"]})]}),(0,r.jsx)("div",{className:"mt-4 flex items-center gap-2",children:(0,r.jsxs)(M.Button,{size:"sm",onClick:()=>y(!1),children:[(0,r.jsx)(E,{className:"size-4"}),o?"启动智能诊断":"Start diagnosis"]})})]})})}),l&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(ed,{children:o?"启动智能诊断(四个认知模块 + System 异常检查)":"Start AgentDebug diagnosis"}),(0,r.jsx)(el,{meta:o?"诊断进行中":"Running diagnosis",children:(0,r.jsxs)("div",{className:"rounded-lg border border-card-border bg-card p-5 shadow-sm",children:[(0,r.jsxs)("div",{className:"mb-3 flex items-start justify-between gap-3",children:[(0,r.jsxs)("div",{children:[(0,r.jsxs)("div",{className:"text-[14.5px] font-bold tracking-tight text-foreground",children:["AgentDebug · ",o?"初筛 + 根因定位":"Original two-phase pipeline"]}),(0,r.jsx)("div",{className:"mt-0.5 text-[11.5px] text-foreground-muted",children:o?"正在抽取 Memory / Reflection / Planning / Action 与 System 模块,并进入根因联合定位。":"Extracting Memory / Reflection / Planning / Action and System modules, then Phase 2 critical-error analysis."})]}),(0,r.jsx)(h.Loader2,{className:"size-5 animate-spin text-primary"})]}),(0,r.jsx)("div",{className:"space-y-2",children:H.map(e=>(0,r.jsx)(eo,{label:`${e.en} \xb7 ${o?e.zh:e.key}`},e.key))}),(0,r.jsx)("div",{className:"mt-4 border-t border-border pt-3 text-[11.5px] text-foreground-muted",children:(0,r.jsxs)("span",{className:"inline-flex items-center gap-1.5",children:[(0,r.jsx)("span",{className:"size-1.5 rounded-full bg-primary"}),o?"载入 Execution.interactions · 映射左侧节点 · 调用 AgentDebug detector":"Loading interactions · mapping trace nodes · calling AgentDebug detectors"]})})]})}),g&&(0,r.jsx)(el,{meta:o?"Skills 分析":"Skills analysis",children:(0,r.jsx)(ea,{executionId:e,user:t,zh:o,analysis:g,onAnalysisUpdate:x})})]}),m&&!l&&(0,r.jsx)(el,{meta:o?"诊断失败":"Diagnosis failed",children:(0,r.jsxs)("div",{className:"flex items-start gap-2 rounded-lg border border-error-border bg-error-subtle p-4 text-sm text-error",children:[(0,r.jsx)(C.AlertTriangle,{className:"mt-0.5 size-4 shrink-0"}),(0,r.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,r.jsx)("div",{className:"font-semibold",children:o?"AgentDebug 运行失败":"AgentDebug failed"}),(0,r.jsx)("div",{className:"mt-1 break-words text-xs leading-5",children:m}),(0,r.jsxs)(M.Button,{className:"mt-3",variant:"outline",size:"sm",onClick:()=>y(!0),children:[(0,r.jsx)(T.RefreshCw,{className:"size-3.5"}),o?"重试":"Retry"]})]})]})}),c&&!l&&(0,r.jsx)(el,{meta:`${o?"诊断完成":"Done"} \xb7 ${function(e,t){var r;let n;if(!Number.isFinite(e)||e<0)return t?"未知耗时":"unknown duration";if(e<1e3)return`${Math.round(e)}ms`;let s=e/1e3,i=Math.floor(s/3600),a=Math.floor(s%3600/60),o=Number.isInteger(n=(r=s%60)>=10?Math.round(r):Math.round(10*r)/10)?String(n):n.toFixed(1);return i>0?t?`${i}小时${a}分${o}秒`:`${i}h ${a}m ${o}s`:a>0?t?`${a}分${o}秒`:`${a}m ${o}s`:t?`${o}秒`:`${o}s`}(c.stats.durationMs,o)} \xb7 ${o?"智能诊断 Agent":"diagnosis agent"}`,children:(0,r.jsx)(V,{report:c,zh:o,executionId:e,user:t,traceExplicitErrors:i,onNodeRefClick:a,skillsAnalysis:g,onSkillsAnalysisUpdate:x,onRerun:()=>y(!0)})})]})}function V({report:e,zh:t,executionId:s,user:i,traceExplicitErrors:a,onNodeRefClick:o,skillsAnalysis:l,onSkillsAnalysisUpdate:d,onRerun:c}){let u=(0,n.useMemo)(()=>{var t,r,n;let s;return Array.isArray((t=e).findings)&&t.findings.length>0?t.findings:t.rootCause?[(r=t.rootCause,s=function(e,t){var r;let n=[],s=em({traceStepIndex:(r=e).criticalTraceStepIndex??r.criticalStep??void 0,traceNodeLabel:r.criticalTraceNodeLabel,traceNodeKind:r.criticalTraceNodeKind}),i=t.find(t=>t.module===e.criticalModule&&em(t)===s&&t.errorType===e.criticalErrorType)||t.find(t=>t.module===e.criticalModule&&em(t)===s);for(let r of(i&&n.push({issueId:i.id,role:"root"}),e.cascadingChain)){let e=t.find(e=>e.module===r.module&&em(e)===em(r)&&e.errorType===r.errorType)||t.find(e=>e.module===r.module&&em(e)===em(r));e&&!n.some(t=>t.issueId===e.id)&&n.push({issueId:e.id,role:"downstream"})}return 0===n.length&&t[0]&&n.push({issueId:t[0].id,role:"root"}),n}(r,n=t.issues),{id:"finding-root-cause",severity:n.find(e=>e.id===s[0]?.issueId)?.severity||"high",impact:"quality_degrading",summary:r.summary,evidence:r.evidence,issueRefs:s,correctionGuidance:r.correctionGuidance,confidence:r.confidence})]:[]},[e]),p=(0,n.useMemo)(()=>Array.isArray(e.trajectoryFindings)?e.trajectoryFindings:[],[e]),[g,x]=(0,n.useState)(()=>new Set(u[0]?[u[0].id]:[])),m=e.issues.length+a.length,h=u.length+p.length;return((0,n.useEffect)(()=>{x(new Set(u[0]?[u[0].id]:[]))},[u]),e.skippedReason)?(0,r.jsxs)("div",{className:"rounded-lg border border-card-border bg-card p-4 shadow-sm",children:[(0,r.jsxs)("div",{className:"mb-2 flex items-center gap-2",children:[(0,r.jsx)(L.StatusBadge,{status:"warning",label:t?"未运行":"Skipped"}),(0,r.jsx)("span",{className:"text-sm font-semibold text-foreground",children:"AgentDebug"})]}),(0,r.jsx)("p",{className:"text-sm leading-6 text-foreground-muted",children:e.skippedReason})]}):e.triage?.shortCircuited&&e.triage.fatalDiagnosis?(0,r.jsxs)("div",{className:"space-y-3",children:[(0,r.jsx)(Z,{report:e,zh:t,onNodeRefClick:o,onRerun:c}),(0,r.jsx)(ea,{executionId:s,user:i,zh:t,analysis:l,onAnalysisUpdate:d})]}):(0,r.jsxs)("div",{className:"space-y-3",children:[(0,r.jsxs)("div",{className:"rounded-lg border border-card-border bg-card p-4 shadow-sm",children:[(0,r.jsxs)("div",{className:"mb-3 flex items-center justify-between gap-3",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)("div",{className:"flex size-7 items-center justify-center rounded-lg border border-error-border bg-error-subtle text-error",children:(0,r.jsx)(C.AlertTriangle,{className:"size-3.5"})}),(0,r.jsxs)("div",{children:[(0,r.jsx)("div",{className:"text-[10.5px] font-bold tracking-[0.14em] text-error",children:t?"关键诊断发现":"KEY DIAGNOSTIC FINDINGS"}),(0,r.jsx)("div",{className:"mt-0.5 text-sm font-bold tracking-tight text-foreground",children:h>0?t?`${h} 条发现 \xb7 ${m} 条证据节点`:`${h} findings \xb7 ${m} evidence nodes`:t?"未发现明确关键问题":"No clear key finding"})]})]}),(0,r.jsxs)(M.Button,{variant:"outline",size:"sm",onClick:c,children:[(0,r.jsx)(T.RefreshCw,{className:"size-3.5"}),t?"重新诊断":"Rerun"]})]}),h>0?(0,r.jsxs)("div",{className:"space-y-2",children:[u.map((n,s)=>(0,r.jsx)(er,{finding:n,index:s,report:e,zh:t,expanded:g.has(n.id),traceExplicitErrors:0===s?a:[],onToggle:()=>{x(e=>{let t=new Set(e);return t.has(n.id)?t.delete(n.id):t.add(n.id),t})},onNodeRefClick:o},n.id)),p.map((e,n)=>(0,r.jsx)(Q,{finding:e,index:u.length+n,zh:t,expanded:g.has(e.id),onToggle:()=>{x(t=>{let r=new Set(t);return r.has(e.id)?r.delete(e.id):r.add(e.id),r})},onNodeRefClick:o},e.id))]}):(0,r.jsx)("p",{className:"text-sm text-foreground-muted",children:t?"初筛未检测到足够明确的问题。":"Phase 1 did not find a clear issue."})]}),(0,r.jsx)(ea,{executionId:s,user:i,zh:t,analysis:l,onAnalysisUpdate:d})]})}function Q({finding:e,index:t,zh:n,expanded:s,onToggle:i,onNodeRefClick:a}){let o=null!=e.span.fromStep&&null!=e.span.toStep?`#${e.span.fromStep}–#${e.span.toStep}`:n?`${e.span.turnCount} 个 turn`:`${e.span.turnCount} turns`;return(0,r.jsxs)("div",{className:"rounded-lg border border-border bg-background-secondary p-3",children:[(0,r.jsxs)("button",{type:"button","aria-expanded":s,onClick:i,className:"flex w-full items-start gap-2 text-left outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",children:[(0,r.jsx)("div",{className:"flex size-6 shrink-0 items-center justify-center rounded-md border border-border bg-card text-[11px] font-bold text-primary",children:t+1}),(0,r.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,r.jsx)("div",{className:"text-[13px] font-semibold leading-6 text-foreground",children:ef(e.summary)}),(0,r.jsxs)("div",{className:"mt-0.5 flex flex-wrap items-center gap-1.5 text-[11px] text-foreground-muted",children:[(0,r.jsxs)("span",{className:"inline-flex items-center gap-1 rounded bg-error-subtle px-1 py-0.5 text-error",children:[(0,r.jsx)(_.RotateCcw,{className:"size-3"}),n?"疑似循环":"Suspected loop"]}),(0,r.jsxs)("span",{children:[n?"区间":"span"," ",o]})]})]}),s?(0,r.jsx)(c.ChevronDown,{className:"mt-1 size-3.5 shrink-0 text-foreground-muted"}):(0,r.jsx)(u.ChevronRight,{className:"mt-1 size-3.5 shrink-0 text-foreground-muted"})]}),s&&(0,r.jsxs)("div",{className:"mt-3 space-y-3 border-t border-border pt-3",children:[(0,r.jsxs)("section",{children:[(0,r.jsx)("div",{className:"mb-1 text-[10.5px] font-bold tracking-wider text-foreground-muted",children:n?"故障机制":"Mechanism"}),(0,r.jsx)("div",{className:"text-[12.5px] leading-6 text-foreground",children:eh(e.mechanism)})]}),e.faultChain.length>0&&(0,r.jsxs)("section",{children:[(0,r.jsx)("div",{className:"mb-1 text-[10.5px] font-bold tracking-wider text-foreground-muted",children:n?"故障链":"Fault chain"}),(0,r.jsx)("ol",{className:"space-y-0.5",children:e.faultChain.map((e,t)=>(0,r.jsxs)("li",{className:"text-[12px] leading-6 text-foreground-muted",children:[t+1,". ",eh(e)]},t))})]}),(0,r.jsxs)("section",{children:[(0,r.jsx)("div",{className:"mb-1 text-[10.5px] font-bold tracking-wider text-foreground-muted",children:n?"无进展证据":"No-progress evidence"}),(0,r.jsx)("div",{className:"text-[12px] leading-6 text-foreground-muted",children:eh(e.noProgressEvidence)})]}),e.anchors.length>0&&(0,r.jsxs)("section",{className:"flex flex-wrap items-center gap-1.5",children:[(0,r.jsx)("span",{className:"text-[10.5px] font-bold tracking-wider text-foreground-muted",children:n?"证据节点":"Evidence"}),e.anchors.map((e,t)=>{let n=null!=e.traceStepIndex?`#${e.traceStepIndex}`:e.traceNodeLabel||`node ${t+1}`,s=!!(e.anchorId&&a);return(0,r.jsxs)("button",{type:"button",disabled:!s,onClick:()=>{e.anchorId&&a&&a(e.anchorId)},className:`rounded border border-border px-1.5 py-0.5 text-[11px] ${s?"cursor-pointer text-error hover:bg-error-subtle":"cursor-default text-foreground-muted"}`,title:e.traceNodeLabel||"",children:[n,e.note?` \xb7 ${e.note}`:""]},t)})]}),(0,r.jsxs)("section",{className:"rounded-lg border border-border bg-card px-3 py-2.5",children:[(0,r.jsx)("div",{className:"mb-1 text-[10.5px] font-bold tracking-wider text-foreground-muted",children:n?"建议":"Guidance"}),(0,r.jsx)("div",{className:"text-[12.5px] leading-6 text-foreground",children:eh(e.correctionGuidance)})]})]})]})}function Z({report:e,zh:t,onNodeRefClick:n,onRerun:s}){var i;let a=e.triage?.fatalDiagnosis;return a?(0,r.jsxs)("div",{className:"rounded-lg border border-error-border bg-card p-4 shadow-sm",children:[(0,r.jsxs)("div",{className:"mb-3 flex items-start justify-between gap-3",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)("div",{className:"flex size-7 items-center justify-center rounded-lg border border-error-border bg-error-subtle text-error",children:(0,r.jsx)(C.AlertTriangle,{className:"size-3.5"})}),(0,r.jsxs)("div",{children:[(0,r.jsx)("div",{className:"text-[10.5px] font-bold tracking-[0.14em] text-error",children:t?"明显失败":"FATAL DIAGNOSIS"}),(0,r.jsxs)("div",{className:"mt-0.5 text-sm font-bold tracking-tight text-foreground",children:[(i=e.triage?.category||"normal",t?"infra"===i?"基础设施级失败":"tool_systemic"===i?"工具系统性失败":"early_fatal"===i?"早期不可恢复失败":"正常预检":i),a.toolName?` \xb7 ${a.toolName}`:""]})]})]}),(0,r.jsxs)(M.Button,{variant:"outline",size:"sm",onClick:s,children:[(0,r.jsx)(T.RefreshCw,{className:"size-3.5"}),t?"重新诊断":"Rerun"]})]}),(0,r.jsx)("p",{className:"mt-3 text-[13px] leading-7 text-foreground",children:a.summary}),(a.affectedTraceStepIndexes?.length||a.affectedSteps.length)>0&&(0,r.jsxs)("div",{className:"mt-3 flex flex-wrap items-center gap-1.5 text-[11px] text-foreground-muted",children:[(0,r.jsx)("span",{className:"font-semibold",children:t?"受影响左侧节点":"Affected trace nodes"}),(a.affectedTraceStepIndexes?.length?a.affectedTraceStepIndexes:a.affectedSteps).map(e=>(0,r.jsx)("span",{className:"rounded-md border border-border bg-background-secondary px-2 py-1 font-mono text-foreground",children:ex(e,t)},e))]}),a.rawErrorEvidence&&(0,r.jsx)("p",{className:"mt-3 rounded-md border border-border bg-background-secondary p-2 font-mono text-[11.5px] leading-5 text-foreground-muted",children:a.rawErrorEvidence}),(0,r.jsxs)("div",{className:"mt-3 rounded-lg border border-border bg-background-secondary px-3 py-2.5",children:[(0,r.jsx)("div",{className:"mb-1 text-[10.5px] font-bold tracking-wider text-foreground-muted",children:t?"建议":"Recommendation"}),(0,r.jsx)("div",{className:"text-[12.5px] leading-6 text-foreground",children:a.recommendation})]}),a.anchorId&&n&&(0,r.jsxs)(M.Button,{className:"mt-3",variant:"ghost",size:"sm",onClick:()=>n(a.anchorId),children:[t?"跳到左侧节点":"View trace node",(0,r.jsx)(u.ChevronRight,{className:"size-3.5"})]})]}):null}function ee(){return(0,r.jsx)("div",{className:"hidden grid-cols-2 gap-1.5 md:grid",children:H.slice(0,4).map(e=>{let t=Y[e.key]||R;return(0,r.jsxs)("div",{className:"flex w-[100px] items-center gap-1.5 rounded-lg border border-border bg-background-secondary px-2 py-1.5 text-foreground",children:[(0,r.jsx)(t,{className:"size-3"}),(0,r.jsx)("span",{className:"text-[10.5px] font-bold",children:e.en})]},e.key)})})}function et({title:e,help:t}){return(0,r.jsxs)("div",{className:"flex items-center gap-1 text-sm font-bold text-foreground",children:[(0,r.jsx)("span",{children:e}),(0,r.jsx)(D.TermPopover,{term:e,tag:"fault",body:t,side:"top",align:"center",children:(0,r.jsx)("span",{className:"sr-only",children:e})})]})}function er({finding:e,index:t,report:s,zh:i,expanded:a,traceExplicitErrors:o,onToggle:l,onNodeRefClick:d}){var p,g;let x,m,h,f=(p=e,x=new Map(s.issues.map(e=>[e.id,e])),p.issueRefs.map(e=>x.get(e.issueId)).filter(e=>!!e)),b=f.find(t=>e.issueRefs.find(e=>e.issueId===t.id)?.role==="root")||f[0],v=0===t?H:G,y=(h=(m=((g=e.summary)||"").trim().match(/[^。!?.!?]+[。!?.!?]?/g),m?.map(e=>e.trim()).filter(Boolean)||[])).length<=2?{conclusion:g,details:""}:{conclusion:h.slice(0,2).join(""),details:h.slice(2).join("")},[j,k]=(0,n.useState)(!1);return(0,r.jsxs)("div",{className:"rounded-lg border border-border bg-background-secondary p-3",children:[(0,r.jsxs)("button",{type:"button","aria-expanded":a,onClick:l,className:"flex w-full items-start gap-2 text-left outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",children:[(0,r.jsx)("div",{className:"flex size-6 shrink-0 items-center justify-center rounded-md border border-border bg-card text-[11px] font-bold text-primary",children:t+1}),(0,r.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,r.jsx)("div",{className:"text-[13px] font-semibold leading-6 text-foreground",children:ef(y.conclusion||e.summary)}),b&&(0,r.jsx)("div",{className:"mt-0.5 text-[11px] text-foreground-muted",children:eg(b,i)})]}),a?(0,r.jsx)(c.ChevronDown,{className:"mt-1 size-3.5 shrink-0 text-foreground-muted"}):(0,r.jsx)(u.ChevronRight,{className:"mt-1 size-3.5 shrink-0 text-foreground-muted"})]}),a&&(0,r.jsxs)("div",{className:"mt-3 space-y-3 border-t border-border pt-3",children:[(0,r.jsxs)("section",{className:"rounded-lg border border-border bg-card",children:[(0,r.jsxs)("button",{type:"button","aria-expanded":j,onClick:()=>k(e=>!e),className:"flex w-full items-center gap-2 px-3 py-2.5 text-left outline-none hover:bg-background-secondary focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",children:[(0,r.jsx)("span",{className:"text-[10.5px] font-bold tracking-wider text-foreground-muted",children:i?"证据":"Evidence"}),(0,r.jsx)("span",{className:"h-px min-w-4 flex-1 bg-border"}),(0,r.jsx)("span",{className:"text-[11px] text-foreground-muted",children:i?"展开查看关联模块证据":"Expand linked module evidence"}),j?(0,r.jsx)(c.ChevronDown,{className:"size-3.5 shrink-0 text-foreground-muted"}):(0,r.jsx)(u.ChevronRight,{className:"size-3.5 shrink-0 text-foreground-muted"})]}),j&&(0,r.jsxs)("div",{className:"border-t border-border p-3",children:[e.evidence&&(0,r.jsx)("p",{className:"mb-2 rounded-md border border-border bg-background-secondary p-2 font-mono text-[11.5px] leading-5 text-foreground-muted",children:eh(e.evidence)}),(0,r.jsx)("div",{className:"grid gap-2 md:grid-cols-2",children:v.map(n=>(0,r.jsx)(en,{module:n,zh:i,globalSystem:0===t&&"system"===n.key,issues:"system"===n.key?s.issues.filter(e=>"system"===e.module):f.filter(e=>e.module===n.key),traceExplicitErrors:0===t&&"system"===n.key?o:[],finding:e,onNodeRefClick:d},n.key))})]})]}),y.details&&(0,r.jsxs)("section",{children:[(0,r.jsx)("div",{className:"mb-1 text-[10.5px] font-bold tracking-wider text-foreground-muted",children:i?"分析说明":"Analysis notes"}),(0,r.jsx)(F,{maxLines:4,className:"text-[12px] leading-6 text-foreground-muted",expandLabel:i?"展开完整说明":"Show full notes",collapseLabel:i?"收起说明":"Collapse notes",children:eh(y.details)})]}),(0,r.jsxs)("section",{className:"rounded-lg border border-border bg-card px-3 py-2.5",children:[(0,r.jsx)("div",{className:"mb-1 text-[10.5px] font-bold tracking-wider text-foreground-muted",children:i?"建议":"Guidance"}),(0,r.jsx)("div",{className:"text-[12.5px] leading-6 text-foreground",children:eh(e.correctionGuidance)})]})]})]})}function en({module:e,zh:t,globalSystem:s,issues:i,traceExplicitErrors:a,finding:o,onNodeRefClick:l}){let d=Y[e.key]||R,[p,g]=(0,n.useState)(!1),x=[...i].sort((e,t)=>{let r=o.issueRefs.find(t=>t.issueId===e.id)?.role||"contributing",n=ec(o.issueRefs.find(e=>e.issueId===t.id)?.role||"contributing")-ec(r);if(0!==n)return n;let s=eb(t.severity)-eb(e.severity);return 0!==s?s:(em(e)??e.step)-(em(t)??t.step)}),m=[...a].sort((e,t)=>(e.traceStepIndex??Number.MAX_SAFE_INTEGER)-(t.traceStepIndex??Number.MAX_SAFE_INTEGER)),h=x.length+m.length,f=s?t?"全局 System 证据":"Global System Evidence":e.en;return(0,r.jsxs)("div",{className:"rounded-lg border border-border bg-card p-3",children:[(0,r.jsxs)("button",{type:"button","aria-expanded":p,onClick:()=>g(e=>!e),className:"flex w-full items-start justify-between gap-2 text-left outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)("div",{className:"flex size-7 items-center justify-center rounded-lg border border-border bg-background-secondary text-primary",children:(0,r.jsx)(d,{className:"size-3.5"})}),(0,r.jsxs)("div",{children:[(0,r.jsx)(et,{title:f,help:(t?K[e.key]?.zh:K[e.key]?.en)||e.key}),(0,r.jsx)("div",{className:"text-[11px] text-foreground-muted",children:s?t?"只在第一条关键发现展示一次":"Shown once in the first finding":t?e.zh:e.key})]})]}),(0,r.jsxs)("div",{className:"flex shrink-0 items-center gap-1.5",children:[(0,r.jsx)(L.StatusBadge,{status:h>0?"warning":"success",label:h>0?`${h}`:"OK"}),p?(0,r.jsx)(c.ChevronDown,{className:"mt-0.5 size-3.5 text-foreground-muted"}):(0,r.jsx)(u.ChevronRight,{className:"mt-0.5 size-3.5 text-foreground-muted"})]})]}),p&&(h>0?(0,r.jsxs)("div",{className:"mt-3 max-h-72 space-y-2 overflow-y-auto pr-1",children:[x.map(e=>(0,r.jsx)(es,{issue:e,role:o.issueRefs.find(t=>t.issueId===e.id)?.role,zh:t,onNodeRefClick:l},e.id)),m.map(e=>(0,r.jsx)(ei,{error:e,zh:t,onNodeRefClick:l},e.id))]}):(0,r.jsx)("p",{className:"mt-3 text-[12px] leading-6 text-foreground-muted",children:t?"当前发现未关联该模块问题":"This finding has no issue linked to this module."}))]})}function es({issue:e,role:t,zh:n,onNodeRefClick:s}){return(0,r.jsxs)("div",{className:"rounded-md border border-border bg-background-secondary px-2.5 py-2",children:[(0,r.jsx)("div",{className:"mb-1 flex flex-wrap items-center gap-1.5",children:(0,r.jsx)("span",{className:"rounded bg-card px-1.5 py-0.5 font-mono text-[10.5px] font-semibold text-primary",children:eg(e,n)})}),(0,r.jsx)(F,{maxLines:4,className:"text-[11.5px] leading-5 text-foreground-muted",expandLabel:n?"展开完整原因":"Show full reason",collapseLabel:n?"收起原因":"Collapse reason",children:eh(e.reasoning||e.evidence)}),e.evidence&&e.reasoning&&(0,r.jsx)(F,{maxLines:3,className:"mt-1.5 font-mono text-[10.5px] leading-5 text-foreground-muted",expandLabel:n?"展开证据原文":"Show evidence",collapseLabel:n?"收起证据原文":"Collapse evidence",children:eh(e.evidence)}),e.anchorId&&s&&(0,r.jsxs)(M.Button,{className:"mt-1.5 h-6 px-0 text-[11px]",variant:"link",size:"sm",onClick:()=>s(e.anchorId),children:[n?"跳到左侧节点":"View trace node",(0,r.jsx)(u.ChevronRight,{className:"size-3"})]})]})}function ei({error:e,zh:t,onNodeRefClick:n}){return(0,r.jsxs)("div",{className:"rounded-md border border-border bg-background-secondary px-2.5 py-2",children:[(0,r.jsx)("div",{className:"mb-1 flex flex-wrap items-center gap-1.5",children:(0,r.jsx)("span",{className:"rounded bg-card px-1.5 py-0.5 font-mono text-[10.5px] font-semibold text-primary",children:eg(e,t)})}),(e.description||e.context)&&(0,r.jsx)(F,{maxLines:4,className:"text-[11.5px] leading-5 text-foreground-muted",expandLabel:t?"展开详情":"Show details",collapseLabel:t?"收起详情":"Collapse details",children:[e.description,e.context].filter(Boolean).join("\n")}),e.anchorId&&n&&(0,r.jsxs)(M.Button,{className:"mt-1.5 h-6 px-0 text-[11px]",variant:"link",size:"sm",onClick:()=>n(e.anchorId),children:[t?"跳到左侧节点":"View trace node",(0,r.jsx)(u.ChevronRight,{className:"size-3"})]})]})}function ea({executionId:e,user:t,zh:s,analysis:i,onAnalysisUpdate:a}){let[o,l]=(0,n.useState)(!1),[d,p]=(0,n.useState)(!1),[g,x]=(0,n.useState)(!1),[m,f]=(0,n.useState)(""),[b,v]=(0,n.useState)(i);(0,n.useEffect)(()=>{v(i)},[i]);let y=eu(b),k=function(e){if(!e)return[];let t=e.skillSuggestions||e.skill_suggestions;return Array.isArray(t)?t.map(e=>e&&"object"==typeof e?e:null).filter(e=>!!e).map(e=>{let t=ep(e.severity).toLowerCase();return{category:ep(e.category)||"其他",severity:"high"===t||"low"===t?t:"medium",summary:ep(e.summary),evidence:ep(e.evidence),improvementSuggestion:ep(e.improvementSuggestion)||ep(e.improvement_suggestion)}}).filter(e=>e.summary&&e.improvementSuggestion):[]}(b),S=(b?.reasonText||""||"").replace(/\r\n/g,"\n").replace(/(完整性(?:\([^)]+\))?[::])/g,"\n$1").replace(/(工具选择(?:\([^)]+\))?[::])/g,"\n$1").replace(/(冗余(?:\([^)]+\))?[::])/g,"\n$1").split(/\n+/).map(e=>e.trim()).filter(e=>e&&!/^执行路径分析/.test(e)&&!/可能触发封顶|封顶/.test(e)).join("\n"),w=b?.status||"pending",N="done"===w&&y.length>0,z="running"!==w,C="failed"===w,I=y.filter(e=>"partial"===e.status||"missing"===e.status||"not_applicable"===e.status).length;async function $(r=!0){if(!e||!t||o)return;l(!0),f("");let n=X(b?.interactionHash);v(n),a(n);try{let n=await (0,O.apiFetch)(`/api/observe/executions/${encodeURIComponent(e)}/agent-debug/skills-analysis`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({user:t,force:r})}),s=await n.json().catch(()=>({}));if(409===n.status&&q(s)){R(s),d||p(!0);return}if(R(s),!n.ok)throw Error(s.error||`HTTP ${n.status}`);d||p(!0)}catch(e){f(e instanceof Error?e.message:String(e))}finally{l(!1)}}function R(e){let t=U(e);t?(v(t),a(t)):e.error||(v(e=>e?.status==="running"?e:null),b?.status!=="running"&&a(null)),(!e.error||q(e))&&f("")}return(0,n.useEffect)(()=>{if(!e||"running"!==w)return;let t=!1,r=async()=>{try{let r=await (0,O.apiFetch)(`/api/observe/executions/${encodeURIComponent(e)}/agent-debug/skills-analysis`),n=await r.json().catch(()=>({}));if(t)return;if(!r.ok)throw Error(n.error||`HTTP ${r.status}`);let s=U(n);s&&(a(s),v(s),"failed"!==s.status&&f(""))}catch(e){t||f(e instanceof Error?e.message:String(e))}},n=window.setInterval(r,3e3);return()=>{t=!0,window.clearInterval(n)}},[e,a,w]),(0,r.jsxs)("div",{className:"rounded-lg border border-card-border bg-card p-4 shadow-sm",children:[(0,r.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,r.jsxs)("button",{type:"button","aria-expanded":d,onClick:()=>p(e=>!e),className:"flex min-w-0 flex-1 items-start gap-2 text-left outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",children:[d?(0,r.jsx)(c.ChevronDown,{className:"mt-1 size-3.5 shrink-0 text-foreground-muted"}):(0,r.jsx)(u.ChevronRight,{className:"mt-1 size-3.5 shrink-0 text-foreground-muted"}),(0,r.jsxs)("div",{className:"min-w-0",children:[(0,r.jsx)("div",{className:"text-[10.5px] font-bold tracking-[0.14em] text-primary",children:s?"Skills 分析":"SKILLS ANALYSIS"}),(o||"running"===w||!N)&&(0,r.jsx)("div",{className:"mt-0.5 text-sm font-bold tracking-tight text-foreground",children:o||"running"===w?s?"正在生成 Skills 步骤核验":"Generating Skills step review":s?"暂无 Skills 步骤核验结果":"No Skills step review yet"}),N&&(0,r.jsx)("div",{className:"mt-0.5 text-[11px] text-foreground-muted",children:s?`${y.length} 个 Skill 步骤`:`${y.length} Skill steps`})]})]}),z&&(0,r.jsxs)(M.Button,{variant:"outline",size:"sm",onClick:()=>$(!0),disabled:o,children:[o?(0,r.jsx)(h.Loader2,{className:"size-3.5 animate-spin"}):(0,r.jsx)(j.Sparkles,{className:"size-3.5"}),C||b?s?"重新分析":"Re-analyze":s?"生成 Skills 分析":"Generate Skills analysis"]})]}),d&&(0,r.jsxs)("div",{className:"mt-3",children:[m&&(0,r.jsx)("div",{className:"mb-3 rounded-md border border-error-border bg-error-subtle p-2 text-[12px] text-error",children:m}),N?(0,r.jsxs)("div",{className:"space-y-3",children:[S&&(0,r.jsxs)("div",{className:"rounded-md border border-border bg-background-secondary p-3",children:[(0,r.jsx)("div",{className:"mb-1 text-[10.5px] font-bold tracking-wider text-foreground-muted",children:s?"总结":"Summary"}),(0,r.jsx)("p",{className:"whitespace-pre-line text-[12.5px] leading-6 text-foreground-muted",children:S})]}),(0,r.jsxs)("div",{className:"rounded-md border border-border bg-background-secondary",children:[(0,r.jsxs)("button",{type:"button","aria-expanded":g,onClick:()=>x(e=>!e),className:"flex w-full items-center gap-2 px-3 py-2.5 text-left outline-none hover:bg-card focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",children:[(0,r.jsx)("span",{className:"text-[12px] font-bold text-foreground",children:s?"Skill 步骤核验":"Skill step review"}),(0,r.jsx)(L.StatusBadge,{status:I>0?"warning":"success",label:`${y.length}`}),I>0&&(0,r.jsx)("span",{className:"text-[11px] text-foreground-muted",children:s?`${I} 个需关注`:`${I} need attention`}),(0,r.jsx)("span",{className:"h-px min-w-4 flex-1 bg-border"}),g?(0,r.jsx)(c.ChevronDown,{className:"size-3.5 shrink-0 text-foreground-muted"}):(0,r.jsx)(u.ChevronRight,{className:"size-3.5 shrink-0 text-foreground-muted"})]}),g&&(0,r.jsx)("div",{className:"space-y-2 border-t border-border p-2.5",children:y.map((e,t)=>{var n;let i,a;return(0,r.jsxs)("div",{className:"rounded-md border border-border bg-card px-2.5 py-2",children:[(0,r.jsxs)("div",{className:"mb-1 flex flex-wrap items-center gap-1.5",children:[(0,r.jsx)(L.StatusBadge,{status:"covered"===(i=e.status.toLowerCase())||"passed"===i||"pass"===i||"success"===i?"success":"missing"===i||"failed"===i||"fail"===i||"error"===i?"error":"not_applicable"===i||"not-applicable"===i||"n/a"===i?"pending":"warning",label:(n=e.status,a=n.toLowerCase(),(s?"covered"===a||"passed"===a||"pass"===a||"success"===a?"已覆盖":"partial"===a||"partially_covered"===a?"部分覆盖":"missing"===a||"failed"===a||"fail"===a||"error"===a?"未覆盖":"not_applicable"===a||"not-applicable"===a||"n/a"===a?"不适用":n:n)||(s?"Skill 步骤":"Skill step"))}),(0,r.jsx)("span",{className:"text-[12px] font-semibold text-foreground",children:e.title||(s?`Skill 步骤 ${t+1}`:`Skill step ${t+1}`)})]}),e.description&&(0,r.jsx)("p",{className:"text-[11.5px] leading-5 text-foreground-muted",children:e.description}),"covered"!==e.status&&"not_applicable"!==e.status&&e.suggestion&&(0,r.jsxs)("div",{className:"mt-2 rounded-md border border-success-border bg-success-subtle px-2 py-1.5 text-[11.5px] leading-5 text-success",children:[(0,r.jsx)("span",{className:"font-semibold",children:s?"改进建议":"Suggestion"}),(0,r.jsx)("span",{className:"ml-1 text-foreground-muted",children:e.suggestion})]})]},`${t}-${e.title}`)})})]}),k.length>0&&(0,r.jsxs)("div",{className:"rounded-md border border-border bg-background-secondary",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2 px-3 py-2.5",children:[(0,r.jsx)("span",{className:"text-[12px] font-bold text-foreground",children:s?"Skill 改进建议":"Skill improvement suggestions"}),(0,r.jsx)(L.StatusBadge,{status:"warning",label:`${k.length}`}),(0,r.jsx)("span",{className:"h-px min-w-4 flex-1 bg-border"})]}),(0,r.jsx)("div",{className:"space-y-2 border-t border-border p-2.5",children:k.map((e,t)=>(0,r.jsxs)("div",{className:"rounded-md border border-border bg-card px-2.5 py-2",children:[(0,r.jsxs)("div",{className:"mb-1 flex flex-wrap items-center gap-1.5",children:[(0,r.jsx)(L.StatusBadge,{status:"high"===e.severity?"error":"medium"===e.severity?"warning":"success",label:e.category}),(0,r.jsx)("span",{className:"text-[12px] font-semibold text-foreground",children:e.summary})]}),e.evidence&&(0,r.jsx)("p",{className:"text-[11.5px] leading-5 text-foreground-muted",children:e.evidence}),(0,r.jsxs)("div",{className:"mt-2 rounded-md border border-success-border bg-success-subtle px-2 py-1.5 text-[11.5px] leading-5 text-success",children:[(0,r.jsx)("span",{className:"font-semibold",children:s?"改进建议":"Suggestion"}),(0,r.jsx)("span",{className:"ml-1 text-foreground-muted",children:e.improvementSuggestion})]})]},`sugg-${t}-${e.summary}`))})]})]}):(0,r.jsxs)("div",{className:"rounded-md border border-border bg-background-secondary p-3",children:[(0,r.jsx)("p",{className:"text-[12.5px] leading-6 text-foreground-muted",children:o||"running"===w?s?"正在生成 Skills 步骤核验。完成后会保存到 AgentDebug Skills 分析缓存里。":"Skills step review is running. The result will be saved in the AgentDebug Skills cache.":C?s?`Skills 步骤核验失败:${b?.errorMessage||"未知错误"}。可以重新分析。`:`Skills step review failed: ${b?.errorMessage||"unknown error"}. You can re-analyze.`:"done"===w?s?"已保存 Skills 分析结果,但缺少步骤核验明细。可以重新分析。":"Saved Skills analysis has no step review details. You can re-analyze.":s?"当前 trace 还没有 Skills 步骤核验结果。点击生成后会分析 Skill 步骤覆盖情况,并保存到 AgentDebug Skills 分析缓存。":"This trace has no Skills step review yet. Generate it to analyze Skill step coverage and save it in the AgentDebug Skills cache."}),z&&(0,r.jsxs)(M.Button,{variant:"outline",size:"sm",className:"mt-2",onClick:()=>$(!0),disabled:o,children:[o?(0,r.jsx)(h.Loader2,{className:"size-3.5 animate-spin"}):(0,r.jsx)(j.Sparkles,{className:"size-3.5"}),C||b?s?"重新分析":"Re-analyze":s?"生成 Skills 分析":"Generate Skills analysis"]})]})]})]})}function eo({label:e}){return(0,r.jsxs)("div",{className:"flex items-center gap-3",children:[(0,r.jsx)("div",{className:"flex size-7 shrink-0 items-center justify-center rounded-lg border border-border bg-background-secondary text-primary",children:(0,r.jsx)(h.Loader2,{className:"size-3.5 animate-spin"})}),(0,r.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,r.jsxs)("div",{className:"mb-1 flex items-baseline justify-between gap-2",children:[(0,r.jsx)("span",{className:"truncate text-[12.5px] font-bold text-foreground",children:e}),(0,r.jsx)("span",{className:"text-[11px] text-primary",children:"分析中"})]}),(0,r.jsx)("div",{className:"h-1.5 overflow-hidden rounded-full bg-background-secondary",children:(0,r.jsx)("div",{className:"h-full w-2/3 rounded-full bg-primary"})})]})]})}function el({children:e,meta:t}){return(0,r.jsxs)("article",{className:"flex items-start gap-3",children:[(0,r.jsx)("div",{className:"flex size-9 shrink-0 items-center justify-center rounded-xl border border-primary-subtle-border bg-primary-subtle text-primary",children:(0,r.jsx)(j.Sparkles,{className:"size-4"})}),(0,r.jsxs)("div",{className:"min-w-0 flex-1",children:[t&&(0,r.jsx)("div",{className:"mb-1.5 text-[11px] text-foreground-muted",children:t}),(0,r.jsx)("div",{className:"max-w-[860px]",children:e})]})]})}function ed({children:e}){return(0,r.jsx)("article",{className:"flex justify-end gap-3",children:(0,r.jsx)("div",{className:"max-w-[80%] rounded-2xl rounded-tr-md bg-primary px-4 py-2.5 text-[13.5px] leading-6 text-primary-foreground",children:e})})}function ec(e){return"root"===e?3:"contributing"===e?2:+("downstream"===e)}function eu(e){if(!e)return[];let t=e.keyActionResults||e.key_action_results;return Array.isArray(t)?t.map(e=>e&&"object"==typeof e?e:null).filter(e=>!!e).map(e=>({title:ep(e.actionContent)||ep(e.action_content)||ep(e.actionName)||ep(e.name)||ep(e.title)||ep(e.keyAction)||"",description:ep(e.traceComparisonAnalysis)||ep(e.trace_comparison_analysis)||ep(e.reason)||ep(e.description)||ep(e.evidence)||"",status:ep(e.coverage)||ep(e.status)||ep(e.result)||ep(e.matchStatus)||"",suggestion:ep(e.skillImprovementSuggestion)||ep(e.skill_improvement_suggestion)||ep(e.suggestion)||""})):[]}function ep(e){return"string"==typeof e?e:""}function eg(e,t){let r,n=em(e),s=null==n?t?"左侧节点":"Trace node":ex(n,t),i=e.traceNodeLabel?` \xb7 ${(r=e.traceNodeLabel.trim()).length>48?`${r.slice(0,48)}...`:r}`:"";return`${s}${i}`}function ex(e,t){return t?`节点 #${e}`:`Node #${e}`}function em(e){return e.traceStepIndex??null}function eh(e){return(e||"").replace(/步骤\s*\d+\s*[((]\s*左侧节点\s*#(\d+)\s*[))]/g,"左侧节点 #$1").replace(/第\s*\d+\s*步\s*[((]\s*左侧节点\s*#(\d+)\s*[))]/g,"左侧节点 #$1").replace(/步骤\s*\d+/g,"相关节点").replace(/第\s*\d+\s*步/g,"相关节点")}function ef(e){return eh(e).replace(/根本原因/g,"关键发现").replace(/根因为/g,"关键发现是").replace(/根因是/g,"关键发现是").replace(/作为根因/g,"作为关键发现").replace(/根因/g,"关键发现")}function eb(e){return"high"===e?3:"medium"===e?2:1}var ev=e.i(927643),ey=e.i(726526),ej=e.i(460435),ek=e.i(434567);function eS(e,t){let r=[];e.agentName&&r.push(e.agentName),e.subagentType&&r.push(`type ${e.subagentType}`);let n=[e.stats.llmCalls?`${e.stats.llmCalls} LLM`:"",e.stats.toolCalls?`${e.stats.toolCalls} tool`:"",e.stats.skillCalls?`${e.stats.skillCalls} skill`:"",e.stats.taskCalls?`${e.stats.taskCalls} task`:""].filter(Boolean).join(" · ");return n&&r.push(n),r.join(" · ")||("zh"===t?"执行 Agent":"Agent")}function ew(e){if(null!=e){if("number"==typeof e&&Number.isFinite(e))return e>0&&e<1e10?1e3*e:e;if("string"==typeof e){let t=e.trim();if(!t)return;if(/^\d+(\.\d+)?$/.test(t)){let e=Number(t);if(!Number.isFinite(e))return;return e>0&&e<1e10?1e3*e:e}let r=Date.parse(t);return Number.isFinite(r)?r:void 0}}}function eN(e,t=300){if(null==e)return"";if("string"==typeof e)return ez(e,t);try{return ez(JSON.stringify(e),t)}catch{return ez(String(e),t)}}function ez(e,t){let r=String(e||"");return r.length>t?`${r.slice(0,t)}...`:r}var eC=e.i(601461);let eI=t.default.env.NEXT_PUBLIC_URL_PREFIX||"",e$=[20,50,100],eR={"1h":36e5,"3h":108e5,"24h":864e5,"7d":6048e5,"30d":2592e6,all:1/0};function eA(e){let t=Array.isArray(e.invoked_skills)?e.invoked_skills:Array.isArray(e.invokedSkills)?e.invokedSkills:[],r=new Set;return t.forEach(e=>{let t=e?.name?.trim();t&&r.add(t)}),Array.from(r)}function eT(){return(0,r.jsx)(n.Suspense,{fallback:(0,r.jsx)("div",{children:"Loading..."}),children:(0,r.jsx)(e_,{})})}function e_(){let e=(0,i.useRouter)(),t=(0,i.useSearchParams)(),{user:s}=(0,ev.useAuth)(),{t:a,locale:o}=(0,ey.useLocale)(),[l,d]=(0,n.useState)([]),[c,u]=(0,n.useState)(!0),[p,g]=(0,n.useState)(null),[x,m]=(0,n.useState)(1),[h,f]=(0,n.useState)(20),[b,v]=(0,n.useState)("all"),[y,j]=(0,n.useState)("yes"),[k,S]=(0,n.useState)("all"),[w,N]=(0,n.useState)(()=>t?.get("agent")||"all"),[C,I]=(0,n.useState)("all"),[$,R]=(0,n.useState)("user"),A=t=>{g(t);let r=new URLSearchParams(window.location.search);if(t){let e=t.task_id||t.upload_id;e&&r.set("taskId",e)}else r.delete("taskId");e.push(`${window.location.pathname}?${r.toString()}`,{scroll:!1})};(0,n.useEffect)(()=>{let e=t?.get("taskId"),r=t?.get("executionId"),n=e||r;if(n){let e=l.find(e=>e.task_id===n||e.upload_id===n);e?p!==e&&g(e):r&&(!p||p.task_id!==n&&p.upload_id!==n)&&g({timestamp:new Date().toISOString(),task_id:n,upload_id:n})}else p&&g(null)},[t,l]),(0,n.useEffect)(()=>{s&&(u(!0),(0,O.apiFetch)(`/api/observe/data?user=${encodeURIComponent(s)}&fields=light`).then(e=>e.json()).then(e=>{d(Array.isArray(e)?e:[])}).catch(()=>d([])).finally(()=>u(!1)))},[s]);let{availableAgents:T,availableSkills:_,frameworks:E}=(0,n.useMemo)(()=>{let e=new Set,t=new Set,r=new Set;return l.forEach(n=>{n.agent&&e.add(n.agent),n.framework&&(e.add(n.framework),r.add(n.framework)),n.agents&&n.agents.forEach(t=>e.add(t)),eA(n).forEach(e=>t.add(e))}),{availableAgents:Array.from(e).sort(),availableSkills:Array.from(t).sort(),frameworks:Array.from(r).sort()}},[l]),M=(0,n.useMemo)(()=>{let e=Date.now(),t=eR[b];return l.filter(r=>{if(t!==1/0&&e-("string"==typeof r.timestamp?Date.parse(r.timestamp):Number(r.timestamp))>t)return!1;let n=r.failures&&r.failures.length>0||(r.tool_call_error_count||0)>0;if("yes"===y&&!n||"no"===y&&n||"all"!==k&&r.framework!==k)return!1;if("all"!==w&&""!==w){let e=r.agent===w||r.framework===w,t=r.agents&&r.agents.includes(w);if(!e&&!t)return!1}return("all"===C||!!eA(r).includes(C))&&("all"===$||(r.agentOwnership??"user")===$)&&!0}).sort((e,t)=>Date.parse(t.timestamp)-Date.parse(e.timestamp))},[l,b,y,k,w,C,$]),L=(0,n.useMemo)(()=>{let e=new Map;for(let t of M)for(let r of t.failures||[])r.failure_type&&e.set(r.failure_type,(e.get(r.failure_type)||0)+1);return Array.from(e.entries()).sort((e,t)=>t[1]-e[1]).slice(0,6)},[M]),B=Math.max(1,Math.ceil(M.length/h)),W=(0,n.useMemo)(()=>M.slice((x-1)*h,x*h),[M,x,h]);return(0,n.useEffect)(()=>m(1),[h,b,y,k,w,C,$]),(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(z.AppTopBar,{title:(0,r.jsx)(ej.Term,{id:"fault-diagnosis",label:a("nav.fault")}),showDefaultActions:!1}),(0,r.jsx)("div",{style:{flex:1,overflowY:"auto",padding:"18px 20px"},children:p?(0,r.jsx)(eE,{execution:p,locale:o,user:s||"",onBack:()=>A(null)}):(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:12},children:(0,r.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"repeat(4, minmax(0, 1fr))",gap:9,flex:1},children:[(0,r.jsx)(eQ,{label:"zh"===o?"用例总数":"Total runs",value:String(M.length),sub:`${"zh"===o?"共":"of"} ${l.length}`}),(0,r.jsx)(eQ,{label:"zh"===o?"异常类型":"Anomaly types",value:String(L.length)}),(0,r.jsx)(eQ,{label:"zh"===o?"主要异常":"Top anomaly",value:L[0]?.[0]||"-",sub:L[0]?`${L[0][1]}`:"",truncate:!0}),(0,r.jsx)(eQ,{label:"zh"===o?"异常记录":"Anomalies",value:String(M.filter(e=>e.failures&&e.failures.length>0||(e.tool_call_error_count||0)>0).length),accent:"error"})]})}),(0,r.jsxs)("div",{style:{background:"var(--background-secondary)",border:"1px solid var(--border)",borderRadius:8,marginBottom:12,overflow:"hidden"},children:[(0,r.jsxs)("div",{style:{display:"flex",flexWrap:"wrap",alignItems:"center",gap:6,padding:"7px 10px"},children:[(0,r.jsxs)(eZ,{label:a("nav.filterAgentOwnership"),active:"all"!==$,value:$,onChange:e=>{m(1),R(e)},children:[(0,r.jsx)("option",{value:"all",children:a("nav.allOwnership")}),(0,r.jsx)("option",{value:"user",children:a("nav.userAgent")}),(0,r.jsx)("option",{value:"system",children:a("nav.systemAgent")})]}),T.length>0&&(0,r.jsxs)(eZ,{label:"Agent",active:"all"!==w&&""!==w,value:w,onChange:e=>{m(1),N(e)},children:[(0,r.jsx)("option",{value:"all",children:a("common.all")}),T.map(e=>(0,r.jsx)("option",{value:e,children:e},e))]}),_.length>0&&(0,r.jsxs)(eZ,{label:"Skill",active:"all"!==C,value:C,onChange:e=>{m(1),I(e)},children:[(0,r.jsx)("option",{value:"all",children:a("common.all")}),_.map(e=>(0,r.jsx)("option",{value:e,children:e},e))]}),(0,r.jsx)(e0,{}),(0,r.jsxs)(eZ,{label:"zh"===o?"执行异常":"Anomaly",active:"all"!==y,value:y,onChange:e=>j(e),children:[(0,r.jsx)("option",{value:"all",children:a("common.all")}),(0,r.jsx)("option",{value:"yes",children:"zh"===o?"是":"Yes"}),(0,r.jsx)("option",{value:"no",children:"zh"===o?"否":"No"})]}),(0,r.jsxs)(eZ,{label:"zh"===o?"时间":"Time",active:"all"!==b,value:b,onChange:e=>v(e),children:[(0,r.jsx)("option",{value:"all",children:a("common.allTime")}),(0,r.jsx)("option",{value:"7d",children:a("nav.last7Days")}),(0,r.jsx)("option",{value:"24h",children:a("topbar.last24h")}),(0,r.jsx)("option",{value:"1h",children:a("nav.last1Hour")})]}),E.length>1&&(0,r.jsxs)(eZ,{label:"zh"===o?"平台":"Platform",active:"all"!==k,value:k,onChange:e=>S(e),children:[(0,r.jsx)("option",{value:"all",children:a("common.all")}),E.map(e=>(0,r.jsx)("option",{value:e,children:e},e))]}),("all"!==$||"all"!==w||"all"!==C||"all"!==y||"all"!==b||"all"!==k)&&(0,r.jsxs)("button",{onClick:()=>{R("all"),N("all"),I("all"),j("all"),v("all"),S("all")},style:{marginLeft:6,display:"inline-flex",alignItems:"center",gap:4,padding:"3px 10px",fontSize:11,borderRadius:5,border:"1px solid var(--border)",background:"transparent",color:"var(--foreground-muted)",cursor:"pointer",lineHeight:1.4},children:[(0,r.jsx)("svg",{width:"9",height:"9",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",children:(0,r.jsx)("path",{d:"M2 2l6 6M8 2l-6 6"})}),"zh"===o?"重置":"Reset"]})]}),("all"!==$||"all"!==b||"all"!==y||"all"!==k||"all"!==w&&""!==w||"all"!==C)&&(0,r.jsxs)("div",{style:{display:"flex",flexWrap:"wrap",gap:5,alignItems:"center",padding:"5px 10px 7px",borderTop:"1px solid var(--border)"},children:[(0,r.jsx)("span",{style:{fontSize:10.5,color:"var(--foreground-muted)",flexShrink:0,marginRight:2},children:"zh"===o?"已筛选":"Active"}),"all"!==$&&(0,r.jsx)(e1,{label:`${a("nav.filterAgentOwnership")}: ${a("system"===$?"nav.systemAgent":"nav.userAgent")}`,onRemove:()=>R("all")}),"all"!==w&&""!==w&&(0,r.jsx)(e1,{label:`Agent: ${w}`,onRemove:()=>N("all")}),"all"!==C&&(0,r.jsx)(e1,{label:`Skill: ${C}`,onRemove:()=>I("all")}),"all"!==y&&(0,r.jsx)(e1,{label:`${"zh"===o?"执行异常":"Anomaly"}: ${"yes"===y?"zh"===o?"是":"Yes":"zh"===o?"否":"No"}`,onRemove:()=>j("all")}),"all"!==b&&(0,r.jsx)(e1,{label:`${"zh"===o?"时间":"Time"}: ${"1h"===b?"zh"===o?"1小时内":"Last 1h":"24h"===b?"zh"===o?"24小时内":"Last 24h":"7d"===b?"zh"===o?"近7天":"Last 7d":b}`,onRemove:()=>v("all")}),"all"!==k&&(0,r.jsx)(e1,{label:`${"zh"===o?"平台":"Platform"}: ${k}`,onRemove:()=>S("all")})]})]}),(0,r.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",marginBottom:9},children:[(0,r.jsxs)("span",{className:"ai-section-title",children:[(0,r.jsx)(ej.Term,{id:"fault-item",label:"zh"===o?"故障事件清单":"Fault events"}),(0,r.jsx)("span",{style:{marginLeft:8,color:"var(--foreground-muted)",fontWeight:400},children:M.length})]}),(0,r.jsx)("span",{className:"ai-section-hint",children:"yes"===y?"zh"===o?"当前仅展示执行异常的记录":"Only showing records with execution anomalies":"zh"===o?"展示所有匹配条件的记录":"Showing all matching records"})]}),(0,r.jsx)("div",{className:"ai-card",style:{overflowX:"auto"},children:c?(0,r.jsx)("div",{style:{padding:"40px 0",textAlign:"center",color:"var(--foreground-muted)",fontSize:12},children:"zh"===o?"加载中...":"Loading..."}):0===W.length?(0,r.jsx)("div",{style:{padding:"40px 18px",textAlign:"center",color:"var(--foreground-muted)",fontSize:12},children:"zh"===o?"暂无异常记录":"No anomaly runs"}):(0,r.jsxs)("table",{style:{width:"100%",borderCollapse:"collapse",fontSize:11.5,tableLayout:"fixed"},children:[(0,r.jsx)("thead",{children:(0,r.jsxs)("tr",{style:{background:"var(--background-secondary)",textAlign:"left"},children:[(0,r.jsx)(e2,{width:120,children:"Trace ID"}),(0,r.jsx)(e2,{width:120,children:"Agent"}),(0,r.jsx)(e2,{width:110,children:"zh"===o?"执行异常":"Anomaly"}),(0,r.jsx)(e2,{children:"zh"===o?"任务内容":"Task"}),(0,r.jsx)(e2,{width:160,children:"zh"===o?"故障摘要":"Summary"}),(0,r.jsx)(e2,{width:170,children:"zh"===o?"执行时间":"Time"})]})}),(0,r.jsx)("tbody",{children:W.map((e,t)=>(0,r.jsx)(e5,{execution:e,onClick:()=>A(e),locale:o},(e.task_id||e.upload_id||t)+""))})]})}),M.length>0&&(0,r.jsx)(e6,{page:x,totalPages:B,pageSize:h,total:M.length,onPage:m,onPageSize:f,locale:o})]})})]})}function eE({execution:e,locale:t,user:i,onBack:o}){let d=e.task_id||e.upload_id||"",[k,w]=(0,n.useState)(null),[N,z]=(0,n.useState)(!1),[C,I]=(0,n.useState)([]),[$,R]=(0,n.useState)(""),[A,T]=(0,n.useState)(null),[_,E]=(0,n.useState)(!1),[M,L]=(0,n.useState)(null),[B,W]=(0,n.useState)(new Map),[F,D]=(0,n.useState)(""),[H,P]=(0,n.useState)(!1),[U,q]=(0,n.useState)(new Set),[G,K]=(0,n.useState)(null),[Y,X]=(0,n.useState)(!1),[V,Q]=(0,n.useState)(""),[Z,ee]=(0,n.useState)(!1),[et,er]=(0,n.useState)(!1),[en,es]=(0,n.useState)([]),ei=(0,n.useRef)(null),ea=(0,n.useRef)(new Map),eo=(0,n.useRef)(null),[el,ed]=(0,n.useState)(null),ec=(0,n.useMemo)(()=>eL(e,t),[e,t]),eu=(0,n.useMemo)(()=>{var r,n,s,i;let a,o;return r=e,n=k?.interactions||[],s=t,i=ec,a=Date.parse(r.timestamp),0===(o=(function(e,t="zh"){let r=function(e){if(!Array.isArray(e))return[];let t=[];for(let r of e)if(r){if(Array.isArray(r.requestMessages)||r.responseMessage){for(let e of r.requestMessages||[])e&&t.push(e);r.responseMessage&&t.push(r.responseMessage);continue}t.push(r)}return t}(e),n=[],s=e=>{n.push({...e,stepIndex:n.length+1})},i=r.find(e=>e?.role==="user"&&String(e.content||"").trim());i&&s({id:"input:root",name:"zh"===t?"用户输入":"User input",meta:i.usage?.input?`req ${i.usage.input} tok`:ez(String(i.content||""),110),kind:"user",status:"ok",depth:0,interactionIndex:r.indexOf(i),startedAt:ew(i.timeInfo?.created)??ew(i.timestamp),completedAt:ew(i.timeInfo?.completed),rawText:String(i.content||""),rawInput:String(i.content||"")});let a=(0,ek.buildAgentCallTree)(r);return a&&(0,ek.walkTree)(a,e=>{let n=e.events.find(e=>"user"===e.kind),i=[...e.events].reverse().find(e=>"llm"===e.kind),a=n&&(n.summary||n.interaction?.content)||void 0,o=i&&(i.interaction?.content||i.summary)||void 0;s({id:`agent:${e.id}`,name:0===e.depth?"zh"===t?"控制器路由":"Controller routing":"zh"===t?"子任务执行":"Subtask execution",meta:eS(e,t),kind:"agent",status:"ok",depth:e.depth,startedAt:e.startedAt,completedAt:e.endedAt,rawText:[e.agentName,e.subagentType,eS(e,t)].filter(Boolean).join(" "),rawInput:a,rawOutput:o}),e.events.forEach((n,i)=>{let a,o,l=function(e,t){var r,n,s;let i="zh"===t;if("user"===e.kind)return{name:i?"用户输入":"User input",meta:e.usage?.input?`req ${e.usage.input} tok`:ez(e.summary||"",96)};if("llm"===e.kind){let t;return{name:i?"模型调用":"Model call",meta:[(t=[(r=e).name,r.interaction?.providerID,r.interaction?.modelID,r.summary].filter(Boolean).join(" ").toLowerCase()).includes("openai")||t.includes("gpt")||t.includes("chat.completions")?"OpenAI":t.includes("deepseek")?"DeepSeek":t.includes("anthropic")||t.includes("claude")?"Anthropic":"LLM Provider",e.usage?.input?`req ${e.usage.input} tok`:"",e.usage?.output?`out ${e.usage.output} tok`:""].filter(Boolean).join(" · ")||ez(e.summary||"assistant response",96)}}if("skill"===e.kind){let t=e.args?.name||e.args?.skill||e.name||"skill";return{name:i?"执行 Skill":"Run skill",meta:`skill ${t}`}}if("task"===e.kind){let t=e.args?.subagent_type||e.args?.subagentType||"subagent";return{name:i?"调度子任务":"Dispatch subtask",meta:`spawn ${t}`}}return{name:i?"工具调用":"Tool call",meta:(n=e.name||"tool",s=e.args,"bash"===n?`bash ${ez(s?.command||"",72)}`:"read"===n?`read ${s?.path||s?.file_path||""}`.trim():"write"===n?`write ${s?.path||s?.file_path||""}`.trim():"glob"===n?`glob ${s?.pattern||""}`.trim():"grep"===n?`grep ${s?.pattern||""}`.trim():`${n}${s?` ${ez(eN(s,90),90)}`:""}`)}}(n,t),d=n.completedAt||n.startedAt?"ok":"skipped";if("user"===n.kind)a=n.summary||n.interaction?.content||"";else if("llm"===n.kind){let s=n.interactionIndex??-1,i=new Set(e.interactionIndices.filter(e=>e<s)),l=[];for(let t of e.systemPrompts||[])t.text?.trim()&&l.push(`[System]
2
+ ${ez(t.text,1500)}`);for(let e of Array.from(i).sort((e,t)=>e-t)){let t=r[e];if(!t||"system"===t.role)continue;let n="string"==typeof t.content?t.content:eN(t.content,2e3);n.trim()&&("user"===t.role||"opencode"===t.role?l.push(`[User]
3
+ ${ez(n,2e3)}`):("assistant"===t.role||"subagent"===t.role)&&l.push(`[Assistant]
4
+ ${ez(n,2e3)}`))}a=l.length>0?l.join("\n\n---\n\n"):void 0;let d=function(e,t){if(!Array.isArray(e)||0===e.length)return"";let r=e.map(e=>e?.function?.name||e?.name||"tool").slice(0,3),n=e.length>r.length?", ...":"";return"zh"===t?`${e.length} 个工具调用: ${r.join(", ")}${n}`:`${e.length} tool call${e.length>1?"s":""}: ${r.join(", ")}${n}`}(n.interaction?.tool_calls,t);o=[n.interaction?.content,d].filter(Boolean).join("\n")||n.summary||""}else("tool"===n.kind||"skill"===n.kind||"task"===n.kind)&&(void 0!==n.args&&(a=eN(n.args,2e3)),("tool"===n.kind||"skill"===n.kind)&&void 0!==n.output&&null!==n.output&&(o=eN(n.output,2e3)));s({id:`event:${e.id}:${i}`,name:l.name,meta:l.meta,kind:n.kind,status:d,depth:e.depth+1,interactionIndex:n.interactionIndex,eventIndex:i,toolCallId:n._toolCallId,startedAt:n.startedAt,completedAt:n.completedAt,rawText:[l.name,l.meta,n.name,n.summary,eN(n.args,500),eN(n.output,500)].filter(Boolean).join(" "),rawInput:a||void 0,rawOutput:o||void 0})})}),0===n.length&&s({id:"system:missing-trace",name:"zh"===t?"链路详情缺失":"Trace unavailable",meta:"zh"===t?"未找到可还原的 interactions。":"No interactions were available.",kind:"system",status:"skipped",depth:0,rawText:""}),n})(n||[],s).map(e=>({id:e.id,name:e.name,meta:e.meta,time:e.startedAt&&Number.isFinite(a)?`+${(0,ek.formatDuration)(e.startedAt-a)}`:1===e.stepIndex?"+0ms":"—",status:e.status,step:e.stepIndex,kind:e.kind,depth:e.depth,rawText:e.rawText,rawInput:e.rawInput,rawOutput:e.rawOutput,startedAt:e.startedAt,completedAt:e.completedAt,durationMs:null!=e.startedAt&&null!=e.completedAt?e.completedAt-e.startedAt:void 0}))).length&&o.push({id:"system:missing-trace",name:"zh"===s?"链路详情缺失":"Trace unavailable",meta:"zh"===s?"未找到可还原的 interactions,使用评测结果兜底展示。":"No interactions were available; showing evaluation fallback.",status:"skipped",kind:"system",step:1}),function(e,t,r,n){let s=(n||eL(t,r)).filter(e=>"original"===e.diagnostic_kind);if(s.forEach((r,n)=>{var s,i;let a,o=eB(e,r);o&&(o.node.status="error",o.node.faultRefs=[...o.node.faultRefs||[],n+1],o.node.matchReason=o.reason,o.node.tag=(s=r,i=t,a=eW([s.failure_type,s.description,s.context].filter(Boolean).join(" ")),/401|authentication|unauthori[sz]ed|api[_\s-]?key|认证|鉴权/.test(a)?"CHAIN_ERROR · 401":/timeout|超时/.test(a)?"TIMEOUT":/permission|权限|denied/.test(a)?"PERMISSION":/tool|工具|exit code|stderr|非零/.test(a)||(i.tool_call_error_count||0)>0?"TOOL_ERROR":"CHAIN_ERROR"),o.node.detail=r.description||r.context||o.node.detail)}),0===s.length&&(t.tool_call_error_count||0)>0){let t=[...e].reverse().find(e=>"tool"===e.kind)||[...e].reverse().find(e=>"skipped"!==e.status);t&&(t.status="error",t.faultRefs=[1],t.matchReason="zh"===r?"根据工具错误计数定位到最近一次工具调用":"Matched to the latest tool call from tool error count",t.tag="TOOL_ERROR")}}(o,r,s,i),o},[e,k?.interactions,t,ec]),ep=(0,n.useMemo)(()=>{var e,t;return e=ec,t=eu,e.filter(e=>"original"===e.diagnostic_kind).map((e,r)=>{let n=eB(t,e)?.node,s=n?.id||e.trace_anchor?.step_id||e.anchor_step_id;return{id:s||`trace-explicit-error-${r+1}`,title:e.failure_type||"Trace error",description:e.description,context:e.context||e.attribution_reason||e.step,recovery:e.recovery,anchorId:s,traceStepIndex:n?.step??e.trace_anchor?.step_index,traceNodeLabel:[n?.name,n?.meta].filter(Boolean).join(" · ")||e.trace_anchor?.display_name,traceNodeKind:n?.kind||e.trace_anchor?.kind}})},[ec,eu]),eg=(0,n.useMemo)(()=>{var t,r;let n,s,i;return t=eu,r=e,s=(n=t.filter(e=>"error"===e.status).length)>0||(r.failures?.length||0)>0||(r.tool_call_error_count||0)>0,i=t.find(e=>"error"===e.status),{hasFault:s,faultNodeCount:n,executed:t.filter(e=>"skipped"!==e.status).length,statusLabel:s?i?`CHAIN_ERROR \xb7 L${i.step}`:"CHAIN_ERROR":"OK"}},[eu,e]),ex=(e.invoked_skills?.length??0)||(e.skills?.length??0)||+!!e.skill,{roots:em,nodeMap:eh}=(0,n.useMemo)(()=>(function(e){let t=[],r=new Map,n=[];for(let s of e){let e=s.depth??0,i={...s,children:[],parentId:void 0};if(r.set(s.id,i),n.length=e,0===e)t.push(i);else{let r=n[e-1];r?(r.children.push(i),i.parentId=r.id):t.push(i)}n[e]=i}return{roots:t,nodeMap:r}})(eu),[eu]),ef=(0,n.useMemo)(()=>{let e=0;for(let t of eu)null!=t.durationMs&&t.durationMs>e&&(e=t.durationMs);return e},[eu]),eb=(0,n.useMemo)(()=>{let e=V.toLowerCase();return eu.filter(t=>!e||t.name.toLowerCase().includes(e)||(t.kind||"").includes(e))},[eu,V]),ev=(0,n.useCallback)(e=>{W(t=>{let r=new Map(t);return r.set(e.id,e),r}),X(!1),eo.current?.focus()},[]),ey=(0,n.useCallback)(e=>{let t=eh.get(e);for(;t?.parentId;){let e=t.parentId;q(t=>{let r=new Set(t);return r.delete(e),r}),t=eh.get(e)}H&&P(!1),K(e),setTimeout(()=>{ea.current.get(e)?.scrollIntoView({behavior:"smooth",block:"center"}),setTimeout(()=>K(null),1800)},330)},[eh,H]),e$=(0,n.useCallback)(e=>{let t=eu.find(t=>t.faultRefs?.includes(e));t&&ey(t.id)},[eu,ey]);(0,n.useEffect)(()=>{I([]),R(""),T(null),w(null),W(new Map),D(""),q(new Set),L(null),d&&(z(!0),(0,O.apiFetch)(`/api/observe/data?executionId=${encodeURIComponent(d)}`).then(e=>e.ok?e.json():Promise.reject(Error(`HTTP ${e.status}`))).then(e=>{L(Array.isArray(e)&&e[0]?e[0].final_result??null:null)}).catch(()=>{}),(0,O.apiFetch)(`/api/observe/session?taskId=${encodeURIComponent(d)}`).then(e=>e.ok?e.json():Promise.reject(Error(`HTTP ${e.status}`))).then(e=>w(e)).catch(e=>w({error:e instanceof Error?e.message:String(e),interactions:[]})).finally(()=>z(!1)),(0,O.apiFetch)(`/api/fault/diagnosis/session?executionId=${encodeURIComponent(d)}`).then(e=>e.ok?e.json():Promise.reject(Error(`HTTP ${e.status}`))).then(e=>{e.session?.opencodeSessionId&&T(e.session.opencodeSessionId),e.messages?.length&&I(e.messages.map(e=>({id:e.id,role:e.role,content:e.content})))}).catch(()=>{}))},[d]),(0,n.useEffect)(()=>{ei.current?.scrollTo({top:ei.current.scrollHeight})},[C,_]),(0,n.useEffect)(()=>{if(d)try{let e=localStorage.getItem(`fault-convs-${d}`);e&&es(JSON.parse(e))}catch{}},[d]);let eR=(0,n.useCallback)(()=>{if(0===C.length||!d)return;let e=C.find(e=>"user"===e.role)?.content?.slice(0,60)||("zh"===t?"对话":"Conversation"),r={id:`conv-${Date.now()}`,title:e,messages:[...C],agentSessionId:A,createdAt:Date.now()};es(e=>{let t=[r,...e].slice(0,20);try{localStorage.setItem(`fault-convs-${d}`,JSON.stringify(t))}catch{}return t})},[C,A,d,t]),eA=(0,n.useCallback)(()=>{eR(),I([]),T(null),R(""),W(new Map),er(!1)},[eR]),eT=(0,n.useCallback)(e=>{eR(),I(e.messages),T(e.agentSessionId),er(!1)},[eR]);async function e_(r){r.preventDefault();let n=$.trim();if(!n&&0===B.size||_||!i)return;let s=Array.from(B.values()),a=s.map(e=>({id:e.id,label:e.name,kind:e.kind})),o=[...s.length>0?["用户引用的执行节点(回答中引用这些节点时请使用 @[id:label] 格式):",...s.map(e=>`- @[${e.id}:${e.name}] 类型:${e.kind||"unknown"} 状态:${e.status} 耗时:${e.time||"—"}`),""]:[],n].filter(Boolean).join("\n"),l={id:`u-${Date.now()}`,role:"user",content:n||"(节点引用)",nodeRefs:a},c=`a-${Date.now()}`;I(e=>[...e,l,{id:c,role:"assistant",content:"",pending:!0}]),R(""),W(new Map),E(!0);try{var u,p;let t,r=await (0,O.apiFetch)("/api/fault/diagnosis/stream",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({user:i,message:o,executionId:d,sessionId:A,executionBrief:{task_id:(u={...e,final_result:M??e.final_result??void 0}).task_id,upload_id:u.upload_id,framework:u.framework,agent:u.agentName||u.agent,query:u.query,final_result:(p=u.final_result||"",(t=String(p||"").trim()).length>4e3?`${t.slice(0,4e3)}...`:t),is_answer_correct:u.is_answer_correct,answer_score:u.answer_score,judgment_reason:u.judgment_reason,failures:u.failures||[],skill_issues:u.skill_issues||[],skills:u.invoked_skills||u.skills||u.skill,outcome_evaluation:u.outcome_evaluation,routing_evaluation:u.routing_evaluation,metrics:{latency:u.latency,tokens:u.tokens,tool_call_count:u.tool_call_count,tool_call_error_count:u.tool_call_error_count,llm_call_count:u.llm_call_count,input_tokens:u.input_tokens,output_tokens:u.output_tokens}}})});if(!r.ok||!r.body)throw Error(await r.text().catch(()=>"")||`HTTP ${r.status}`);await eY(r,{text:e=>{let t="string"==typeof e?.delta?e.delta:"";t&&I(e=>e.map(e=>e.id===c?{...e,content:e.content+t,pending:!1}:e))},done:e=>{"string"==typeof e?.sessionId&&T(e.sessionId),I(t=>t.map(t=>t.id===c?{...t,content:t.content||e?.output||"",pending:!1}:t))},error:e=>{throw Error(String(e?.message||"诊断 Agent 调用失败"))}})}catch(r){let e=r instanceof Error?r.message:String(r);I(r=>r.map(r=>r.id===c?{...r,content:`${"zh"===t?"诊断 Agent 调用失败:":"Agent failed: "}${e}`,pending:!1}:r))}finally{E(!1)}}let eE=F.toLowerCase();return(0,r.jsxs)("div",{style:{display:"flex",flexDirection:"column",height:"calc(100vh - 106px)",overflow:"hidden"},children:[el&&(0,r.jsx)(eq,{node:el,onClose:()=>ed(null),locale:t}),(0,r.jsxs)("div",{style:{padding:"10px 16px",borderBottom:"1px solid var(--border)",background:"var(--card-bg)",display:"flex",alignItems:"center",gap:12,flexShrink:0,flexWrap:"wrap"},children:[(0,r.jsxs)("button",{onClick:o,className:"ai-btn-s",style:{padding:"4px 9px",display:"flex",alignItems:"center",gap:5},children:[(0,r.jsx)(a.ArrowLeft,{size:12}),"zh"===t?"返回":"Back"]}),(0,r.jsx)("div",{style:{width:1,height:16,background:"var(--border)",flexShrink:0}}),(0,r.jsxs)("div",{style:{minWidth:0,flex:"1 1 360px"},children:[(0,r.jsx)("div",{style:{fontSize:9,color:"var(--foreground-muted)",letterSpacing:".12em",textTransform:"uppercase",marginBottom:2,fontWeight:700},children:"EXECUTION SESSION"}),(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap",minWidth:0},children:[(0,r.jsx)("span",{style:{fontSize:13,fontWeight:700,fontFamily:"var(--font-mono)",color:"var(--foreground)",overflowWrap:"anywhere"},children:d||"-"}),(e.agentName||e.agent)&&(0,r.jsxs)("span",{style:{fontSize:12,color:"var(--foreground-muted)",fontWeight:600},children:["· ",e.agentName||e.agent]})]})]}),(0,r.jsxs)("div",{style:{marginLeft:"auto",display:"flex",alignItems:"center",gap:0},children:[(0,r.jsx)(eO,{label:(0,r.jsx)(ej.Term,{id:"chain-status",label:"zh"===t?"链路状态":"Status"}),value:eg.statusLabel,valueColor:eg.hasFault?"var(--warning,#d97706)":"var(--success,#15a572)"}),(0,r.jsx)(eO,{label:"zh"===t?"执行节点":"Nodes",value:String(eg.executed)}),(0,r.jsx)(eO,{label:"LLM",value:String(e.llm_call_count??"—")}),(0,r.jsx)(eO,{label:"zh"===t?"故障节点":"Faults",value:String(eg.faultNodeCount),valueColor:eg.faultNodeCount>0?"var(--warning,#d97706)":void 0}),(0,r.jsx)(eO,{label:"Token",value:e.tokens?eF(e.tokens):"—"}),(0,r.jsx)(eO,{label:"zh"===t?"耗时":"Duration",value:(0,eC.formatLatencySeconds)(e.latency)})]}),(0,r.jsx)("div",{style:{display:"flex",gap:6,flexShrink:0},children:(0,r.jsxs)(s.default,{href:`${eI}/trace?taskId=${d}`,className:"ai-btn-s",style:{textDecoration:"none",display:"inline-flex",alignItems:"center",gap:5},children:[(0,r.jsx)(x.GitBranch,{size:12})," ","zh"===t?"链路":"Trace"]})})]}),(0,r.jsxs)("div",{style:{display:"grid",gridTemplateColumns:H?"44px 1fr":"320px 1fr",flex:1,overflow:"hidden",minHeight:0,transition:"grid-template-columns 0.3s cubic-bezier(0.4,0,0.2,1)"},children:[(0,r.jsx)("div",{style:{display:"flex",flexDirection:"column",borderRight:"1px solid var(--border)",background:"var(--card-bg)",overflow:"hidden",minWidth:0},children:H?(0,r.jsxs)("div",{style:{display:"flex",flexDirection:"column",alignItems:"center",padding:"10px 0",gap:6,height:"100%"},children:[(0,r.jsx)("button",{onClick:()=>P(!1),className:"ai-btn-s",style:{width:30,height:30,padding:0,display:"grid",placeItems:"center",borderRadius:7},title:"展开",children:(0,r.jsx)(u.ChevronRight,{size:14})}),(0,r.jsx)("div",{style:{width:20,height:1,background:"var(--border)",margin:"4px 0"}}),(0,r.jsxs)("div",{style:{marginTop:"auto",width:30,padding:"4px 0",borderRadius:6,background:"var(--background-secondary)",fontFamily:"var(--font-mono)",fontSize:9,textAlign:"center",fontWeight:600,color:"var(--foreground-muted)"},children:[(0,r.jsx)("div",{style:{color:"var(--foreground)",fontSize:11,fontWeight:700},children:eu.length}),"zh"===t?"节点":"nodes"]})]}):(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("div",{style:{padding:"10px 12px",borderBottom:"1px solid var(--border)",display:"flex",alignItems:"center",gap:8,flexShrink:0},children:[(0,r.jsx)("div",{style:{width:26,height:26,borderRadius:7,background:"rgba(99,86,230,0.08)",border:"1px solid rgba(99,86,230,0.25)",display:"grid",placeItems:"center",color:"var(--primary)",flexShrink:0},children:(0,r.jsx)(x.GitBranch,{size:13})}),(0,r.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,r.jsx)("div",{style:{fontSize:9.5,color:"var(--foreground-muted)",letterSpacing:".10em",textTransform:"uppercase",fontWeight:700},children:"EXECUTION TRACE"}),(0,r.jsx)("div",{style:{fontSize:12,fontWeight:600,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},children:"zh"===t?`执行链路 \xb7 ${eu.length} 节点`:`Trace \xb7 ${eu.length} nodes`})]}),(0,r.jsx)("button",{onClick:()=>P(!0),className:"ai-btn-s",style:{width:26,height:26,padding:0,display:"grid",placeItems:"center",flexShrink:0,borderRadius:6},title:"收起",children:(0,r.jsx)(b,{size:13})})]}),(0,r.jsx)("div",{style:{padding:"8px 12px",borderBottom:"1px solid var(--border)",flexShrink:0},children:(0,r.jsxs)("div",{style:{position:"relative"},children:[(0,r.jsx)("input",{value:F,onChange:e=>D(e.target.value),placeholder:"zh"===t?"搜索节点…":"Search nodes…",style:{width:"100%",height:30,background:"var(--background-secondary)",border:"1px solid var(--border)",borderRadius:7,padding:"0 10px 0 28px",fontSize:12,color:"var(--foreground)",outline:"none",fontFamily:"inherit"}}),(0,r.jsxs)("svg",{style:{position:"absolute",left:9,top:"50%",transform:"translateY(-50%)",pointerEvents:"none",color:"var(--foreground-muted)"},width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.2",strokeLinecap:"round",children:[(0,r.jsx)("circle",{cx:"11",cy:"11",r:"7"}),(0,r.jsx)("path",{d:"M21 21l-4.3-4.3"})]})]})}),(0,r.jsxs)("div",{style:{flex:1,overflowY:"auto",padding:"4px 4px 24px",minHeight:0},children:[N&&(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,color:"var(--foreground-muted)",fontSize:11.5,padding:"12px 8px"},children:[(0,r.jsx)(h.Loader2,{size:13,className:"animate-spin"}),"zh"===t?"加载链路中...":"Loading trace..."]}),em.map((e,n)=>(0,r.jsx)(eG,{node:e,ancestors:[],isLast:n===em.length-1,collapsedNodes:U,onToggleCollapse:e=>q(t=>{let r=new Set(t);return r.has(e)?r.delete(e):r.add(e),r}),onQuoteNode:ev,onFaultSelect:e$,onNodeClick:ed,highlightNodeId:G,traceNodeEls:ea,traceSearch:eE,locale:t,maxDurationMs:ef},e.id))]}),(0,r.jsxs)("div",{style:{padding:"8px 12px",borderTop:"1px solid var(--border)",background:"var(--background-secondary)",display:"flex",alignItems:"center",gap:8,flexShrink:0,fontSize:10.5},children:[(0,r.jsx)(p.Clock,{size:12,color:"var(--foreground-muted)"}),(0,r.jsx)("span",{style:{color:"var(--foreground-muted)"},children:new Date(e.timestamp).toLocaleString()}),eg.faultNodeCount>0&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("span",{style:{color:"var(--border)"},children:"·"}),(0,r.jsxs)("span",{style:{color:"var(--warning,#d97706)",fontWeight:600},children:["⚠ ",eg.faultNodeCount," ","zh"===t?"故障":"fault(s)"]})]})]}),(0,r.jsxs)("div",{style:{borderTop:"1px solid var(--border)",flexShrink:0},children:[(0,r.jsxs)("button",{onClick:()=>ee(e=>!e),style:{width:"100%",padding:"7px 12px",display:"flex",alignItems:"center",justifyContent:"space-between",background:"transparent",border:"none",cursor:"pointer",fontSize:11,fontWeight:600,color:"var(--foreground-muted)"},children:[(0,r.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:5},children:[(0,r.jsx)(g.ExternalLink,{size:11}),"zh"===t?"详情":"Details"]}),Z?(0,r.jsx)(c.ChevronDown,{size:11}):(0,r.jsx)(u.ChevronRight,{size:11})]}),Z&&(0,r.jsxs)("div",{style:{padding:"0 12px 12px"},children:[(e.agentName||e.agent)&&(0,r.jsx)("div",{style:{fontSize:10.5,color:"var(--foreground-muted)",marginBottom:4},children:e.agentName||e.agent}),e.query&&(0,r.jsxs)("div",{style:{fontSize:11,color:"var(--foreground)",lineHeight:1.5,wordBreak:"break-all"},children:[e.query.slice(0,120),e.query.length>120?"…":""]})]})]})]})}),(0,r.jsxs)("div",{style:{display:"flex",flexDirection:"column",overflow:"hidden",minWidth:0,background:"var(--background-secondary)",position:"relative"},children:[(0,r.jsxs)("div",{style:{padding:"12px 20px",borderBottom:"1px solid var(--border)",display:"flex",alignItems:"center",gap:12,background:"var(--card-bg)",flexShrink:0},children:[(0,r.jsx)("div",{style:{width:32,height:32,borderRadius:8,background:"var(--primary,#6356e6)",display:"grid",placeItems:"center",color:"white",flexShrink:0,boxShadow:"0 4px 12px rgba(99,86,230,0.3)"},children:(0,r.jsx)(j.Sparkles,{size:16})}),(0,r.jsxs)("div",{style:{flex:1},children:[(0,r.jsx)("div",{style:{fontSize:14,fontWeight:700,letterSpacing:"-0.01em",color:"var(--foreground)"},children:"zh"===t?"智能诊断":"Diagnosis"}),(0,r.jsx)("div",{style:{fontSize:10.5,color:"var(--foreground-muted)",letterSpacing:".06em",textTransform:"uppercase",marginTop:1},children:"FAULT-DIAGNOSIS-AGENT"})]}),(0,r.jsxs)("div",{style:{display:"flex",gap:6,alignItems:"center"},children:[ec.length>0&&(0,r.jsx)(eX,{active:!0,label:"zh"===t?"明确报错已载入":"Trace errors loaded",count:ec.length}),(0,r.jsx)(eX,{label:"zh"===t?`${ex} Skill`:`${ex} skills`}),(0,r.jsx)("div",{style:{width:1,height:16,background:"var(--border)",flexShrink:0}}),(0,r.jsxs)("button",{type:"button",onClick:eA,title:"zh"===t?"新增对话":"New conversation",className:"ai-btn-s",style:{padding:"4px 8px",display:"inline-flex",alignItems:"center",gap:4,fontSize:11},children:[(0,r.jsx)(v.Plus,{size:12}),"zh"===t?"新对话":"New"]}),(0,r.jsxs)("button",{type:"button",onClick:()=>er(e=>!e),title:"zh"===t?"对话历史":"Conversation history",className:"ai-btn-s",style:{padding:"4px 8px",display:"inline-flex",alignItems:"center",gap:4,fontSize:11,background:et?"var(--primary-subtle)":void 0,color:et?"var(--primary)":void 0,borderColor:et?"var(--primary-subtle-border)":void 0},children:[(0,r.jsx)(m.History,{size:12}),"zh"===t?"历史":"History",en.length>0&&(0,r.jsx)("span",{style:{fontSize:9,fontWeight:700,background:"var(--primary)",color:"white",borderRadius:999,padding:"1px 4px",lineHeight:1.3},children:en.length})]})]})]}),et&&(0,r.jsxs)("div",{style:{position:"absolute",top:0,right:0,width:320,bottom:0,background:"var(--card-bg)",borderLeft:"1px solid var(--border)",zIndex:20,display:"flex",flexDirection:"column",boxShadow:"-4px 0 16px rgba(0,0,0,0.08)"},children:[(0,r.jsxs)("div",{style:{padding:"12px 14px",borderBottom:"1px solid var(--border)",display:"flex",alignItems:"center",justifyContent:"space-between",flexShrink:0},children:[(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:7},children:[(0,r.jsx)(m.History,{size:14,color:"var(--primary)"}),(0,r.jsx)("span",{style:{fontSize:13,fontWeight:700},children:"zh"===t?"对话历史":"Conversation history"})]}),(0,r.jsx)("button",{onClick:()=>er(!1),style:{background:"none",border:"none",cursor:"pointer",color:"var(--foreground-muted)",display:"grid",placeItems:"center",width:24,height:24,borderRadius:5},children:(0,r.jsx)(S.X,{size:14})})]}),(0,r.jsxs)("div",{style:{flex:1,overflowY:"auto",padding:"8px 0"},children:[C.length>0&&(0,r.jsxs)("div",{children:[(0,r.jsx)("div",{style:{padding:"4px 14px 2px",fontSize:10,fontWeight:700,color:"var(--foreground-muted)",letterSpacing:"0.08em",textTransform:"uppercase"},children:"zh"===t?"当前对话":"Current"}),(0,r.jsxs)("button",{onClick:()=>er(!1),style:{width:"100%",padding:"8px 14px",background:"var(--primary-subtle)",border:"none",textAlign:"left",cursor:"pointer",borderBottom:"1px solid var(--border)"},children:[(0,r.jsx)("div",{style:{fontSize:12,fontWeight:600,color:"var(--primary)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:C.find(e=>"user"===e.role)?.content?.slice(0,50)||("zh"===t?"当前对话":"Current chat")}),(0,r.jsxs)("div",{style:{fontSize:10,color:"var(--foreground-muted)",marginTop:2},children:[C.length," ","zh"===t?"条消息":"messages"]})]})]}),en.length>0&&(0,r.jsxs)("div",{children:[(0,r.jsx)("div",{style:{padding:"8px 14px 2px",fontSize:10,fontWeight:700,color:"var(--foreground-muted)",letterSpacing:"0.08em",textTransform:"uppercase"},children:"zh"===t?"历史对话":"Past conversations"}),en.map(e=>(0,r.jsxs)("button",{onClick:()=>eT(e),style:{width:"100%",padding:"8px 14px",background:"transparent",border:"none",borderBottom:"1px solid var(--border)",textAlign:"left",cursor:"pointer"},onMouseEnter:e=>e.currentTarget.style.background="var(--background-secondary)",onMouseLeave:e=>e.currentTarget.style.background="transparent",children:[(0,r.jsx)("div",{style:{fontSize:12,fontWeight:500,color:"var(--foreground)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.title}),(0,r.jsxs)("div",{style:{fontSize:10,color:"var(--foreground-muted)",marginTop:2,display:"flex",gap:8},children:[(0,r.jsx)("span",{children:new Date(e.createdAt).toLocaleString()}),(0,r.jsxs)("span",{children:[e.messages.length," ","zh"===t?"条":"msgs"]})]})]},e.id))]}),0===en.length&&0===C.length&&(0,r.jsx)("div",{style:{padding:"32px 14px",textAlign:"center",color:"var(--foreground-muted)",fontSize:12},children:"zh"===t?"暂无历史对话":"No past conversations"})]}),(0,r.jsx)("div",{style:{padding:"10px 14px",borderTop:"1px solid var(--border)",flexShrink:0},children:(0,r.jsxs)("button",{onClick:eA,className:"ai-btn-s",style:{width:"100%",display:"flex",alignItems:"center",justifyContent:"center",gap:6,padding:"7px 12px",fontSize:12},children:[(0,r.jsx)(v.Plus,{size:13}),"zh"===t?"新增对话":"New conversation"]})})]}),(0,r.jsxs)("div",{ref:ei,style:{flex:1,overflowY:"auto",padding:"20px 24px 16px",minHeight:0},children:[(0,r.jsx)(J,{executionId:d,user:i||"",locale:t,traceExplicitErrors:ep,onNodeRefClick:ey}),C.map(e=>(0,r.jsx)(eM,{message:e,onNodeRefClick:ey,locale:t,nodeMap:eh},e.id)),0===C.length&&(0,r.jsx)("div",{style:{display:"flex",gap:8,flexWrap:"wrap",margin:"8px 0 0 40px"},children:["zh"===t?"从 Agent / Skill 执行链路角度分析,这次故障最可能的根因是什么?":"From the Agent / Skill execution-chain perspective, what is the most likely root cause of this failure?","zh"===t?"给我一个用于优化 Agent / Skill / 工具链路的修复方案。":"Give me a fix plan for optimizing the Agent / Skill / tool chain.","zh"===t?"定位耗时最长的节点":"Find the slowest node"].map(e=>(0,r.jsxs)("button",{type:"button",className:"ai-btn-s",style:{fontSize:11,display:"inline-flex",alignItems:"center",gap:5},onClick:()=>{R(e),eo.current?.focus()},children:[(0,r.jsx)(f.MessageSquare,{size:11})," ",e]},e))})]}),(0,r.jsxs)("div",{style:{padding:"10px 20px 18px",flexShrink:0,position:"relative"},children:[(0,r.jsxs)("div",{style:{background:"var(--card-bg)",border:"1px solid var(--border)",borderRadius:14,padding:"10px 12px 8px",boxShadow:"0 2px 8px rgba(0,0,0,0.06)"},children:[B.size>0&&(0,r.jsx)("div",{style:{display:"flex",flexWrap:"wrap",gap:5,marginBottom:8,paddingBottom:8,borderBottom:"1px dashed var(--border)"},children:Array.from(B.values()).map(e=>(0,r.jsx)(eH,{nodeId:e.id,label:e.name,kind:e.kind,onClick:()=>ey(e.id),onRemove:()=>W(t=>{let r=new Map(t);return r.delete(e.id),r})},e.id))}),(0,r.jsxs)("form",{onSubmit:e_,children:[(0,r.jsx)("textarea",{ref:eo,value:$,onChange:e=>{var t;let r;return R(t=e.target.value),void((r=t.match(/@(\S*)$/))?(X(!0),Q(r[1])):X(!1))},rows:2,placeholder:"zh"===t?"向诊断 Agent 追问,输入 @ 引用具体节点…":"Ask the agent, type @ to reference a node…",style:{width:"100%",resize:"none",border:"none",background:"transparent",color:"var(--foreground)",fontSize:13.5,lineHeight:1.6,outline:"none",minHeight:44,maxHeight:160,fontFamily:"inherit"},onKeyDown:e=>{"Escape"===e.key?X(!1):"Enter"!==e.key||e.shiftKey||e.nativeEvent.isComposing||(e.preventDefault(),e_(e))}}),(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:4,paddingTop:8,borderTop:"1px solid var(--border)",marginTop:4},children:[(0,r.jsx)("button",{type:"button",title:"引用节点 (@)",onClick:()=>{X(e=>!e),Q("")},style:{width:28,height:28,borderRadius:6,background:"transparent",border:"1px solid transparent",color:"var(--foreground-muted)",display:"grid",placeItems:"center",cursor:"pointer"},children:(0,r.jsx)(l,{size:14})}),(0,r.jsxs)("div",{style:{marginLeft:"auto",fontSize:10.5,color:"var(--foreground-muted)",fontFamily:"var(--font-mono)",display:"flex",alignItems:"center",gap:4},children:[(0,r.jsx)("kbd",{style:{background:"var(--background-secondary)",border:"1px solid var(--border)",borderRadius:4,padding:"1px 5px",fontSize:10},children:"@"}),"zh"===t?"引用节点":"Ref node",(0,r.jsx)("span",{style:{color:"var(--border)",margin:"0 3px"},children:"·"}),(0,r.jsx)("kbd",{style:{background:"var(--background-secondary)",border:"1px solid var(--border)",borderRadius:4,padding:"1px 5px",fontSize:10},children:"↵"}),"zh"===t?"发送":"Send"]}),(0,r.jsx)("button",{type:"submit",disabled:_||!$.trim()&&0===B.size,style:{width:32,height:32,borderRadius:8,background:"var(--primary,#6356e6)",border:"none",color:"white",display:"grid",placeItems:"center",cursor:_||!$.trim()&&0===B.size?"not-allowed":"pointer",opacity:_||!$.trim()&&0===B.size?.5:1,marginLeft:6,boxShadow:"0 2px 8px rgba(99,86,230,0.35)"},children:_?(0,r.jsx)(h.Loader2,{size:15,className:"animate-spin"}):(0,r.jsx)(y,{size:15})})]})]})]}),Y&&(0,r.jsxs)("div",{style:{position:"absolute",bottom:"100%",left:20,right:20,marginBottom:6,background:"var(--card-bg)",border:"1px solid var(--border)",borderRadius:10,boxShadow:"0 8px 24px rgba(0,0,0,0.10)",maxHeight:260,overflowY:"auto",zIndex:50},children:[(0,r.jsx)("div",{style:{padding:"8px 12px",borderBottom:"1px solid var(--border)",fontSize:10,color:"var(--foreground-muted)",letterSpacing:".08em",textTransform:"uppercase",fontWeight:700,background:"var(--background-secondary)",borderRadius:"10px 10px 0 0"},children:"zh"===t?"引用执行节点":"Reference trace node"}),0===eb.length?(0,r.jsx)("div",{style:{padding:14,textAlign:"center",fontSize:11.5,color:"var(--foreground-muted)"},children:"zh"===t?"没有匹配节点":"No matching nodes"}):eb.slice(0,12).map(e=>{let t=eD[e.kind||""];return(0,r.jsxs)("button",{onClick:()=>{ev(e),R(e=>e.replace(/@\S*$/,"").trimEnd())},style:{width:"100%",padding:"8px 12px",display:"flex",alignItems:"center",gap:8,cursor:"pointer",borderBottom:"1px solid var(--border)",background:"transparent",border:"none",textAlign:"left"},onMouseEnter:e=>e.currentTarget.style.background="rgba(99,86,230,0.06)",onMouseLeave:e=>e.currentTarget.style.background="transparent",children:[t&&(0,r.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:9,fontWeight:700,padding:"1px 4px",borderRadius:3,background:t.bg,color:t.color,flexShrink:0},children:t.label}),(0,r.jsx)("span",{style:{fontSize:12,color:"var(--foreground)",flex:1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontWeight:500},children:e.name}),(0,r.jsx)("span",{style:{fontSize:10,color:"var(--foreground-muted)",fontFamily:"var(--font-mono)",flexShrink:0},children:e.time||""})]},e.id)})]})]})]})]})]})}function eM({message:e,onNodeRefClick:t,locale:n,nodeMap:s}){let i,a="user"===e.role;return(0,r.jsxs)("div",{style:{display:"flex",gap:10,marginBottom:14,justifyContent:a?"flex-end":"flex-start"},children:[!a&&(0,r.jsx)(eJ,{role:"assistant"}),(0,r.jsxs)("div",{style:{maxWidth:820,minWidth:0},children:[a&&(0,r.jsx)(eV,{label:"zh"===n?"你":"You",align:"right"}),(0,r.jsx)("div",{style:{borderRadius:(i="user"===e.role)?"12px 4px 12px 12px":"4px 12px 12px 12px",border:`1px solid ${i?"var(--primary)":"var(--border)"}`,background:i?"var(--primary)":"var(--card-bg)",color:i?"var(--primary-foreground)":"var(--foreground)",padding:"11px 12px",fontSize:12.5,boxShadow:"0 8px 28px var(--shadow-color)"},children:e.pending&&!e.content?(0,r.jsxs)("div",{style:{display:"inline-flex",alignItems:"center",gap:8,color:"var(--foreground-muted)"},children:[(0,r.jsx)(h.Loader2,{size:14,className:"animate-spin"}),"zh"===n?"正在思考…":"Thinking…"]}):a?(0,r.jsxs)("div",{style:{whiteSpace:"pre-wrap",lineHeight:1.7},children:[e.nodeRefs&&e.nodeRefs.length>0&&(0,r.jsx)("div",{style:{display:"flex",flexWrap:"wrap",gap:6,marginBottom:8},children:e.nodeRefs.map(e=>(0,r.jsx)(eH,{nodeId:e.id,label:e.label,kind:e.kind,onClick:()=>t(e.id)},e.id))}),e.content]}):(0,r.jsx)("div",{style:{lineHeight:1.65},children:(0,r.jsx)(eK,{content:e.content,onNodeRefClick:t,nodeMap:s})})})]}),a&&(0,r.jsx)(eJ,{role:"user"})]})}function eL(e,t){let r=(e.failures||[]).map(e=>({...e,diagnostic_kind:"original",diagnostic_source:"analysis"})),n=e.tool_call_error_count||0;return n>0&&!r.some(e=>{let t=eW([e.failure_type,e.description,e.context,e.step,e.trace_anchor?.kind].filter(Boolean).join(" "));return e.trace_anchor?.kind==="tool"||/tool|工具|bash|command|exit code|stderr|非零/.test(t)})&&r.push({failure_type:"zh"===t?"工具调用错误":"Tool call error",description:"zh"===t?`上传/采集阶段检测到 ${n} 次工具调用失败,但未生成更细的结构化 failure 记录。`:`The uploaded trace reported ${n} tool call error(s), but no detailed structured failure was generated.`,context:`tool_call_error_count=${n}`,recovery:"zh"===t?"建议打开完整执行链路查看失败工具的入参、输出和错误信息。":"Open the full trace to inspect the failed tool call input, output, and error details.",diagnostic_kind:"original",diagnostic_source:"ingest",synthetic:!0}),r}function eB(e,t){let r=t.trace_anchor;if(r?.step_id){let t=e.find(e=>e.id===r.step_id);if(t)return{node:t,reason:r.evidence||`后端锚定:${r.match_method},置信度 ${Math.round(100*r.confidence)}%`}}if(t.anchor_step_id){let r=e.find(e=>e.id===t.anchor_step_id);if(r)return{node:r,reason:"来自后端分析的候选步骤 ID"}}if(r?.step_index){let t=e.find(e=>e.step===r.step_index);if(t)return{node:t,reason:r.evidence||"来自后端分析的步骤编号"}}let n=eW([t.failure_type,t.description,t.context,t.recovery,t.step].filter(Boolean).join(" ")),s=/推理判断|时间窗口匹配/i.test(t.step||"")?null:String(t.step||"").match(/第\s*(\d+)\s*步/i);if(s){let t=Number(s[1])-1;if(e[t])return{node:e[t],reason:"来自故障记录的步骤编号"}}let i=e.map(e=>{let t=0,r=eW(e.rawText||`${e.name} ${e.meta}`);for(let e of Array.from(new Set(n.split(/[^a-z0-9_\-.]+/i).map(e=>e.trim().toLowerCase()).filter(e=>e.length>=3))).slice(0,12))r.includes(e)&&(t+=e.length>4?2:1);return/401|authentication|unauthori[sz]ed|api[_\s-]?key|认证|鉴权|权限/.test(n)&&"llm"===e.kind&&(t+=8),/tool|工具|bash|command|exit code|stderr|非零/.test(n)&&"tool"===e.kind&&(t+=7),/skill|技能|SKILL\.md/i.test(n)&&"skill"===e.kind&&(t+=7),/timeout|超时|卡住/.test(n)&&(t+=3),{node:e,score:t}}).sort((e,t)=>t.score-e.score);if(i[0]?.score>0)return{node:i[0].node,reason:i[0].score>=7?"根据错误内容和节点类型匹配":"根据错误上下文文本匹配"};let a=[...e].reverse().find(e=>"llm"===e.kind||"tool"===e.kind||"skill"===e.kind)||[...e].reverse().find(e=>"skipped"!==e.status);return a?{node:a,reason:"未找到精确锚点,回退到最后一个已执行关键节点"}:null}function eW(e){return e.toLowerCase().replace(/\s+/g," ").trim()}function eF(e){return e>=1e6?`${(e/1e6).toFixed(2)}M`:e>=1e3?`${(e/1e3).toFixed(1)}K`:String(e)}let eD={llm:{label:"LLM",color:"#7c3aed",bg:"rgba(124,58,237,0.10)"},tool:{label:"TOOL",color:"#2563eb",bg:"rgba(37,99,235,0.10)"},skill:{label:"SKILL",color:"#15a572",bg:"rgba(21,165,114,0.10)"},agent:{label:"AGENT",color:"var(--primary,#6356e6)",bg:"rgba(99,86,230,0.10)"},task:{label:"TASK",color:"#0891b2",bg:"rgba(8,145,178,0.10)"},flow:{label:"FLOW",color:"#d97706",bg:"rgba(217,119,6,0.10)"},system:{label:"SYS",color:"var(--foreground-muted,#9da1ac)",bg:"var(--background-secondary)"}};function eO({label:e,value:t,valueColor:n}){return(0,r.jsxs)("div",{style:{padding:"0 14px",borderLeft:"1px solid var(--border)",textAlign:"center",flexShrink:0},children:[(0,r.jsx)("div",{style:{fontSize:9.5,color:"var(--foreground-muted)",fontWeight:700,letterSpacing:".10em",textTransform:"uppercase",marginBottom:3},children:e}),(0,r.jsx)("div",{style:{fontSize:15,fontWeight:700,fontFamily:"var(--font-mono)",letterSpacing:"-0.02em",color:n||"var(--foreground)",lineHeight:1},children:t})]})}function eH({nodeId:e,label:t,kind:n,onClick:s,onRemove:i}){let a=eD[n||""];return(0,r.jsxs)("span",{onClick:s,style:{display:"inline-flex",alignItems:"center",gap:5,background:"var(--card-bg,#fff)",border:"1px solid rgba(99,86,230,0.35)",padding:"2px 6px 2px 3px",borderRadius:6,fontSize:11.5,color:"var(--foreground)",fontWeight:500,cursor:s?"pointer":"default",verticalAlign:"middle",lineHeight:1.3,transition:"all 0.15s"},children:[(0,r.jsx)("span",{style:{width:16,height:16,borderRadius:4,background:"var(--primary,#6356e6)",color:"white",display:"grid",placeItems:"center",flexShrink:0},children:(0,r.jsx)(l,{size:9})}),a&&(0,r.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:9,fontWeight:700,color:a.color,paddingRight:5,borderRight:"1px solid rgba(99,86,230,0.2)",lineHeight:1},children:a.label}),(0,r.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:180},children:t}),i&&(0,r.jsx)("button",{onClick:e=>{e.stopPropagation(),i()},style:{background:"none",border:"none",cursor:"pointer",padding:0,lineHeight:1,color:"var(--foreground-muted)",display:"flex",alignItems:"center",marginLeft:1},children:(0,r.jsx)(S.X,{size:10})})]})}function eP(e){let t=e.match(/req\s+([\d,]+)\s*tok/i),r=e.match(/out\s+([\d,]+)\s*tok/i);return{req:t?parseInt(t[1].replace(/,/g,""),10):void 0,out:r?parseInt(r[1].replace(/,/g,""),10):void 0}}function eU(e){if(e<1e3)return`${e}ms`;if(e<6e4)return`${(e/1e3).toFixed(1)}s`;let t=Math.floor(e/6e4),r=Math.round(e%6e4/1e3);return r>0?`${t}m ${r}s`:`${t}m`}function eq({node:e,onClose:t,locale:n}){let s=eD[e.kind||""],i="error"===e.status?"var(--error,#dc2626)":"ok"===e.status?"var(--success,#15a572)":"running"===e.status?"var(--primary,#6356e6)":"var(--foreground-muted,#9da1ac)",a="error"===e.status?"zh"===n?"错误":"Error":"ok"===e.status?"zh"===n?"成功":"OK":"skipped"===e.status?"zh"===n?"未执行":"Skipped":"zh"===n?"运行中":"Running",o=eP(e.meta||""),l=(o.req||0)+(o.out||0);return(0,r.jsxs)("div",{style:{position:"fixed",inset:0,zIndex:900,display:"flex",alignItems:"center",justifyContent:"center"},onClick:t,children:[(0,r.jsx)("div",{style:{position:"absolute",inset:0,background:"rgba(0,0,0,0.32)",backdropFilter:"blur(2px)"}}),(0,r.jsxs)("div",{style:{position:"relative",zIndex:1,width:540,maxWidth:"calc(100vw - 40px)",maxHeight:"calc(100vh - 80px)",overflow:"auto",background:"var(--card-bg,#fff)",borderRadius:14,boxShadow:"0 20px 60px rgba(0,0,0,0.22)",border:"1px solid var(--border)",padding:"20px 22px"},onClick:e=>e.stopPropagation(),children:[(0,r.jsxs)("div",{style:{display:"flex",alignItems:"flex-start",gap:10,marginBottom:14},children:[(0,r.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap",marginBottom:6},children:[s&&(0,r.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:10,fontWeight:700,padding:"2px 6px",borderRadius:4,background:s.bg,color:s.color,letterSpacing:"0.04em"},children:s.label}),(0,r.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:5,fontSize:11,fontWeight:600,color:i,padding:"2px 7px",borderRadius:99,background:`color-mix(in srgb, ${i} 12%, transparent)`},children:[(0,r.jsx)("span",{style:{width:6,height:6,borderRadius:"50%",background:i,display:"inline-block"}}),a]}),e.faultRefs&&e.faultRefs.length>0&&(0,r.jsxs)("span",{style:{fontSize:10,fontWeight:700,padding:"2px 7px",borderRadius:99,background:"var(--error,#dc2626)",color:"#fff"},children:["⚠ #",e.faultRefs.join(", #")]})]}),(0,r.jsx)("div",{style:{fontSize:15,fontWeight:700,color:"var(--foreground)",lineHeight:1.3},children:e.name}),(0,r.jsx)("div",{style:{fontSize:11,color:"var(--foreground-muted)",marginTop:3,fontFamily:"var(--font-mono)"},children:e.id})]}),(0,r.jsx)("button",{onClick:t,style:{background:"var(--background-secondary)",border:"1px solid var(--border)",borderRadius:6,width:28,height:28,display:"grid",placeItems:"center",cursor:"pointer",color:"var(--foreground-muted)",flexShrink:0},children:(0,r.jsx)(S.X,{size:14})})]}),(0,r.jsxs)("div",{style:{display:"flex",gap:0,marginBottom:16,borderRadius:8,overflow:"hidden",border:"1px solid var(--border)",background:"var(--background-secondary)"},children:[null!=e.durationMs&&(0,r.jsxs)("div",{style:{flex:1,padding:"8px 12px",borderRight:"1px solid var(--border)"},children:[(0,r.jsx)("div",{style:{fontSize:10,color:"var(--foreground-muted)",marginBottom:2,fontWeight:600,letterSpacing:"0.05em"},children:"zh"===n?"耗时":"DURATION"}),(0,r.jsx)("div",{style:{fontSize:14,fontWeight:700,color:"var(--foreground)",fontFamily:"var(--font-mono)"},children:eU(e.durationMs)})]}),l>0&&(0,r.jsxs)("div",{style:{flex:1,padding:"8px 12px",borderRight:e.time?"1px solid var(--border)":void 0},children:[(0,r.jsx)("div",{style:{fontSize:10,color:"var(--foreground-muted)",marginBottom:2,fontWeight:600,letterSpacing:"0.05em"},children:"TOKENS"}),(0,r.jsx)("div",{style:{fontSize:14,fontWeight:700,color:"var(--foreground)",fontFamily:"var(--font-mono)"},children:eF(l)})]}),null!=o.req&&o.req>0&&(0,r.jsxs)("div",{style:{flex:1,padding:"8px 12px",borderRight:o.out?"1px solid var(--border)":void 0},children:[(0,r.jsx)("div",{style:{fontSize:10,color:"var(--foreground-muted)",marginBottom:2,fontWeight:600,letterSpacing:"0.05em"},children:"IN"}),(0,r.jsx)("div",{style:{fontSize:14,fontWeight:700,color:"var(--foreground)",fontFamily:"var(--font-mono)"},children:eF(o.req)})]}),null!=o.out&&o.out>0&&(0,r.jsxs)("div",{style:{flex:1,padding:"8px 12px"},children:[(0,r.jsx)("div",{style:{fontSize:10,color:"var(--foreground-muted)",marginBottom:2,fontWeight:600,letterSpacing:"0.05em"},children:"OUT"}),(0,r.jsx)("div",{style:{fontSize:14,fontWeight:700,color:"var(--foreground)",fontFamily:"var(--font-mono)"},children:eF(o.out)})]}),e.time&&null==e.durationMs&&(0,r.jsxs)("div",{style:{flex:1,padding:"8px 12px"},children:[(0,r.jsx)("div",{style:{fontSize:10,color:"var(--foreground-muted)",marginBottom:2,fontWeight:600,letterSpacing:"0.05em"},children:"zh"===n?"时间偏移":"OFFSET"}),(0,r.jsx)("div",{style:{fontSize:14,fontWeight:700,color:"var(--foreground)",fontFamily:"var(--font-mono)"},children:e.time})]})]}),"error"===e.status&&e.detail&&(0,r.jsxs)("div",{style:{marginBottom:14,padding:"10px 12px",borderRadius:8,background:"var(--error-subtle,rgba(220,38,38,0.06))",border:"1px solid var(--error-subtle-border,rgba(220,38,38,0.2))"},children:[(0,r.jsx)("div",{style:{fontSize:10,fontWeight:700,color:"var(--error)",marginBottom:5,letterSpacing:"0.05em"},children:"zh"===n?"故障详情":"FAULT DETAIL"}),(0,r.jsx)("div",{style:{fontSize:12,color:"var(--error)",lineHeight:1.6,whiteSpace:"pre-wrap"},children:e.detail})]}),e.matchReason&&(0,r.jsxs)("div",{style:{marginBottom:14,padding:"8px 12px",borderRadius:8,background:"rgba(217,119,6,0.06)",border:"1px solid rgba(217,119,6,0.2)"},children:[(0,r.jsx)("div",{style:{fontSize:10,fontWeight:700,color:"#d97706",marginBottom:4,letterSpacing:"0.05em"},children:"zh"===n?"定位依据":"MATCH REASON"}),(0,r.jsx)("div",{style:{fontSize:12,color:"var(--foreground)",lineHeight:1.5},children:e.matchReason})]}),e.meta&&(0,r.jsxs)("div",{style:{marginBottom:14},children:[(0,r.jsx)("div",{style:{fontSize:10,fontWeight:700,color:"var(--foreground-muted)",marginBottom:6,letterSpacing:"0.05em"},children:"zh"===n?"节点元数据":"METADATA"}),(0,r.jsx)("div",{style:{fontSize:12,color:"var(--foreground-secondary,#4b5563)",lineHeight:1.6,padding:"8px 10px",background:"var(--background-secondary)",borderRadius:6,fontFamily:"var(--font-mono)",whiteSpace:"pre-wrap",wordBreak:"break-all"},children:e.meta})]}),e.rawInput&&e.rawInput.length>0&&(0,r.jsxs)("div",{style:{marginBottom:14},children:[(0,r.jsx)("div",{style:{fontSize:10,fontWeight:700,color:"var(--foreground-muted)",marginBottom:6,letterSpacing:"0.05em"},children:"INPUT"}),(0,r.jsx)("div",{style:{fontSize:11.5,color:"var(--foreground-secondary)",lineHeight:1.6,padding:"8px 10px",background:"var(--background-secondary)",borderRadius:6,maxHeight:240,overflow:"auto",whiteSpace:"pre-wrap",wordBreak:"break-all"},children:e.rawInput})]}),e.rawOutput&&e.rawOutput.length>0&&(0,r.jsxs)("div",{children:[(0,r.jsx)("div",{style:{fontSize:10,fontWeight:700,color:"var(--foreground-muted)",marginBottom:6,letterSpacing:"0.05em"},children:"OUTPUT"}),(0,r.jsx)("div",{style:{fontSize:11.5,color:"var(--foreground-secondary)",lineHeight:1.6,padding:"8px 10px",background:"var(--background-secondary)",borderRadius:6,maxHeight:240,overflow:"auto",whiteSpace:"pre-wrap",wordBreak:"break-all"},children:e.rawOutput})]})]})]})}function eG({node:e,ancestors:t,isLast:s,collapsedNodes:i,onToggleCollapse:a,onQuoteNode:o,onFaultSelect:d,onNodeClick:p,highlightNodeId:g,traceNodeEls:x,traceSearch:m,locale:h,maxDurationMs:f}){let b,[v,y]=(0,n.useState)(!1),j=i.has(e.id),k=e.children.length>0,S=e.id===g,w=e.depth??0,N=!m||e.name.toLowerCase().includes(m)||(e.meta||"").toLowerCase().includes(m),z=e=>e.children.some(e=>e.name.toLowerCase().includes(m)||(e.meta||"").toLowerCase().includes(m)||z(e));if(m&&!N&&!z(e))return null;let C="error"===e.status?"var(--error,#dc2626)":"ok"===e.status?"var(--success,#15a572)":"running"===e.status?"var(--primary,#6356e6)":"var(--foreground-muted,#9da1ac)",I="error"===e.status?"rgba(220,38,38,0.18)":"ok"===e.status?"rgba(21,165,114,0.18)":"running"===e.status?"rgba(99,86,230,0.18)":"transparent",$=eD[e.kind||""],R=eP(e.meta||""),A=(R.req||0)+(R.out||0),T=null!=$&&["模型调用","Model call","工具调用","Tool call","调度子任务","Subtask execution","子任务执行","执行 Skill","Run skill","控制器路由","Controller routing","用户输入","User input"].some(t=>e.name===t),_=(e.meta||"").split(/\s*·\s*/),E=_[0]?.trim()??"",M=E&&!/^(req|out)\s|\d{4,}/.test(E)?E.length>32?`${E.slice(0,32)}…`:E:"",L=T&&M?M:e.name,B=(b=(T&&M?_.slice(1):_).join(" · ").replace(/\breq\s+[\d,]+\s*tok\b/gi,"").replace(/\bout\s+[\d,]+\s*tok\b/gi,"").replace(/\s*·\s*·\s*/g," · ").replace(/^\s*·\s*|\s*·\s*$/g,"").trim()).length>40?`${b.slice(0,40)}…`:b;return(0,r.jsxs)("div",{children:[(0,r.jsxs)("div",{ref:t=>{t?x.current.set(e.id,t):x.current.delete(e.id)},style:{position:"relative"},onMouseEnter:()=>y(!0),onMouseLeave:()=>y(!1),children:[t.map((e,t)=>e?(0,r.jsx)("div",{style:{position:"absolute",left:14*t+4+4,top:0,bottom:0,width:1,background:"var(--border)",pointerEvents:"none"}},t):null),w>0&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{style:{position:"absolute",left:(w-1)*14+4+4,top:0,height:s?"50%":"100%",width:1,background:"var(--border)",pointerEvents:"none"}}),(0,r.jsx)("div",{style:{position:"absolute",left:(w-1)*14+4+4,top:"50%",width:8,height:1,background:"var(--border)",pointerEvents:"none",marginTop:-.5}})]}),(0,r.jsx)("div",{style:{margin:"1px 4px",borderRadius:6,background:S?"rgba(99,86,230,0.08)":v?"var(--background-secondary)":"transparent",border:`1px solid ${S?"rgba(99,86,230,0.28)":"error"===e.status?"rgba(220,38,38,0.18)":"transparent"}`,transition:"background 0.12s, border-color 0.12s",cursor:"pointer",overflow:"hidden"},onClick:()=>{p(e)},children:(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:5,paddingLeft:14*w+4,paddingRight:8,paddingTop:4,paddingBottom:4},children:[(0,r.jsx)("div",{style:{width:14,height:14,display:"flex",alignItems:"center",justifyContent:"center",color:"var(--foreground-muted)",flexShrink:0},onClick:t=>{t.stopPropagation(),k&&a(e.id)},children:k?j?(0,r.jsx)(u.ChevronRight,{size:10}):(0,r.jsx)(c.ChevronDown,{size:10}):null}),(0,r.jsx)("div",{style:{width:7,height:7,borderRadius:"50%",background:C,boxShadow:`0 0 0 2px ${I}`,flexShrink:0}}),(0,r.jsxs)("span",{title:"zh"===h?`左侧节点 #${e.step}`:`Trace node #${e.step}`,style:{width:34,flexShrink:0,textAlign:"right",fontFamily:"var(--font-mono)",fontSize:9.5,fontWeight:700,fontVariantNumeric:"tabular-nums",color:S?"var(--primary)":"var(--foreground-muted)"},children:["#",e.step]}),$&&(0,r.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:9,fontWeight:700,padding:"1px 4px",borderRadius:3,background:$.bg,color:$.color,flexShrink:0,letterSpacing:"0.02em"},children:$.label}),(0,r.jsxs)("div",{style:{flex:1,minWidth:0,overflow:"hidden",whiteSpace:"nowrap",textOverflow:"ellipsis"},children:[(0,r.jsx)("span",{style:{fontSize:11.5,fontWeight:S?600:500,color:"error"===e.status?"var(--error)":"var(--foreground)"},children:L}),B&&(0,r.jsx)("span",{style:{fontSize:10,color:"var(--foreground-muted)",fontFamily:"var(--font-mono)",marginLeft:5},children:B})]}),e.faultRefs&&e.faultRefs.length>0&&(0,r.jsx)("span",{style:{fontSize:11,color:"var(--warning,#d97706)",flexShrink:0},title:e.tag||"",children:"⚠"}),A>0&&(0,r.jsx)("span",{style:{fontSize:9.5,color:"var(--foreground-muted)",fontFamily:"var(--font-mono)",flexShrink:0},children:eF(A)}),null!=e.durationMs?(0,r.jsx)("span",{style:{fontSize:9.5,color:"var(--foreground-muted)",fontFamily:"var(--font-mono)",flexShrink:0},children:eU(e.durationMs)}):e.time?(0,r.jsx)("span",{style:{fontSize:9.5,color:"var(--foreground-muted)",fontFamily:"var(--font-mono)",flexShrink:0},children:e.time}):null,(0,r.jsx)("button",{onClick:t=>{t.stopPropagation(),o(e)},title:"zh"===h?"引用此节点":"Quote node",style:{width:18,height:18,borderRadius:4,flexShrink:0,background:v?"var(--card-bg,#fff)":"transparent",border:`1px solid ${v?"var(--border)":"transparent"}`,color:"var(--foreground-muted)",display:"grid",placeItems:"center",cursor:"pointer",opacity:+!!v,transition:"opacity 0.15s"},children:(0,r.jsx)(l,{size:9})})]})})]}),!j&&k&&e.children.map((n,l)=>(0,r.jsx)(eG,{node:n,ancestors:[...t,!s],isLast:l===e.children.length-1,collapsedNodes:i,onToggleCollapse:a,onQuoteNode:o,onFaultSelect:d,onNodeClick:p,highlightNodeId:g,traceNodeEls:x,traceSearch:m,locale:h,maxDurationMs:f},n.id))]})}function eK({content:e,onNodeRefClick:t,nodeMap:n}){let s=e.replace(/@\[([^\]]+)\]/g,(e,t)=>{let r=t.lastIndexOf(":");if(-1===r)return e;let n=t.slice(0,r),s=t.slice(r+1);return n&&s?`[${s}](NODEREF:${encodeURIComponent(n)})`:e});return(0,r.jsx)(w.default,{remarkPlugins:[N.default],components:{p:({children:e})=>(0,r.jsx)("p",{style:{margin:"0 0 0.55em",lineHeight:1.7},children:e}),h1:({children:e})=>(0,r.jsx)("h1",{style:{fontSize:"1.15em",fontWeight:700,margin:"0.9em 0 0.3em",lineHeight:1.35},children:e}),h2:({children:e})=>(0,r.jsx)("h2",{style:{fontSize:"1.05em",fontWeight:700,margin:"0.75em 0 0.3em",lineHeight:1.35},children:e}),h3:({children:e})=>(0,r.jsx)("h3",{style:{fontSize:"1em",fontWeight:700,margin:"0.65em 0 0.25em",lineHeight:1.35},children:e}),ul:({children:e})=>(0,r.jsx)("ul",{style:{margin:"0.25em 0 0.5em 1.35em",padding:0,lineHeight:1.65},children:e}),ol:({children:e})=>(0,r.jsx)("ol",{style:{margin:"0.25em 0 0.5em 1.35em",padding:0,lineHeight:1.65},children:e}),li:({children:e})=>(0,r.jsx)("li",{style:{marginBottom:"0.1em"},children:e}),strong:({children:e})=>(0,r.jsx)("strong",{style:{fontWeight:600},children:e}),em:({children:e})=>(0,r.jsx)("em",{style:{fontStyle:"italic"},children:e}),blockquote:({children:e})=>(0,r.jsx)("blockquote",{style:{margin:"0.35em 0",padding:"3px 10px",borderLeft:"3px solid var(--border)",color:"var(--foreground-secondary)",fontStyle:"italic"},children:e}),hr:()=>(0,r.jsx)("hr",{style:{border:"none",borderTop:"1px solid var(--border)",margin:"0.6em 0"}}),a({href:e,children:s}){if(e?.startsWith("NODEREF:")){let i=decodeURIComponent(e.slice(8)),a=n?.get(i),o=a?.name||String(s),l=a?.kind;return(0,r.jsx)(eH,{nodeId:i,label:o,kind:l,onClick:()=>t(i)})}return(0,r.jsx)("a",{href:e,target:"_blank",rel:"noopener noreferrer",style:{color:"var(--primary)",textDecoration:"underline"},children:s})},table:({children:e})=>(0,r.jsx)("table",{style:{borderCollapse:"collapse",width:"100%",margin:"0.35em 0",fontSize:"12px"},children:e}),th:({children:e})=>(0,r.jsx)("th",{style:{border:"1px solid var(--border)",padding:"4px 8px",background:"var(--background-secondary)",fontWeight:600,textAlign:"left"},children:e}),td:({children:e})=>(0,r.jsx)("td",{style:{border:"1px solid var(--border)",padding:"4px 8px"},children:e}),code({children:e,className:t}){let n=/language-(\w+)/.exec(t||""),s=String(e).replace(/\n$/,"");return s.includes("\n")||n?(0,r.jsx)("pre",{style:{background:"var(--background-secondary)",border:"1px solid var(--border)",borderRadius:6,padding:"8px 12px",overflow:"auto",margin:"0.4em 0",fontFamily:"var(--font-mono,monospace)",fontSize:"11.5px",lineHeight:1.55,whiteSpace:"pre-wrap",wordBreak:"break-word"},children:(0,r.jsx)("code",{style:{fontFamily:"inherit",fontSize:"inherit"},children:s})}):(0,r.jsx)("code",{style:{background:"rgba(175,184,193,0.18)",padding:"0.15em 0.38em",borderRadius:3,fontFamily:"var(--font-mono,monospace)",fontSize:"0.88em"},children:e})}},children:s})}async function eY(e,t){let r=e.body.getReader(),n=new TextDecoder,s="";for(;;){let{value:e,done:i}=await r.read();if(i)break;let a=(s+=n.decode(e,{stream:!0})).split("\n\n");for(let e of(s=a.pop()||"",a)){let r=e.split("\n").find(e=>e.startsWith("event:")),n=e.split("\n").find(e=>e.startsWith("data:"));if(!r||!n)continue;let s=r.replace(/^event:\s*/,"").trim(),i=null;try{i=JSON.parse(n.replace(/^data:\s*/,""))}catch{i={}}"text"===s&&t.text?.(i),"done"===s&&t.done?.(i),"error"===s&&t.error?.(i)}}}function eX({label:e,count:t,active:n}){return(0,r.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:6,padding:"4px 9px",borderRadius:999,fontSize:11,background:n?"var(--primary-subtle)":"var(--background-secondary)",color:n?"var(--primary)":"var(--foreground-secondary)",border:`1px solid ${n?"var(--primary-subtle-border)":"var(--border)"}`},children:[e,"number"==typeof t&&(0,r.jsx)("b",{style:{fontWeight:700},children:t})]})}function eJ({role:e}){let t="user"===e;return(0,r.jsx)("div",{style:{width:26,height:26,borderRadius:8,flexShrink:0,display:"flex",alignItems:"center",justifyContent:"center",background:t?"var(--foreground)":"var(--primary)",color:"white",marginTop:18},children:t?(0,r.jsx)(k,{size:14}):(0,r.jsx)(d,{size:14})})}function eV({label:e,align:t="left"}){return(0,r.jsx)("div",{style:{marginBottom:5,fontSize:10.5,color:"var(--foreground-muted)",textAlign:t},children:e})}function eQ({label:e,value:t,sub:n,accent:s,truncate:i}){return(0,r.jsxs)("div",{className:"ai-stat",children:[(0,r.jsx)("div",{className:"ai-stat-lbl",children:e}),(0,r.jsx)("div",{className:"ai-stat-val",style:{color:"error"===s?"var(--error)":"warning"===s?"var(--warning)":"var(--foreground)",overflow:i?"hidden":void 0,textOverflow:i?"ellipsis":void 0,whiteSpace:i?"nowrap":void 0},children:t}),n&&(0,r.jsx)("div",{className:"ai-stat-d",style:{color:"var(--foreground-muted)"},children:n})]})}function eZ({label:e,active:t,value:n,onChange:s,children:i}){return(0,r.jsxs)("div",{style:{display:"inline-flex",alignItems:"center",borderRadius:6,border:`1px solid ${t?"var(--primary-subtle-border, rgba(59,130,246,0.35))":"var(--border)"}`,background:t?"var(--primary-subtle, rgba(59,130,246,0.06))":"var(--card-bg)",overflow:"hidden",height:28,transition:"border-color .15s, background .15s"},children:[(0,r.jsx)("span",{style:{padding:"0 7px 0 9px",fontSize:10.5,fontWeight:600,color:t?"var(--primary, #3b82f6)":"var(--foreground-muted)",whiteSpace:"nowrap",userSelect:"none",borderRight:`1px solid ${t?"var(--primary-subtle-border, rgba(59,130,246,0.25))":"var(--border)"}`,lineHeight:"26px"},children:e}),(0,r.jsx)("select",{value:n,onChange:e=>s(e.target.value),style:{height:"100%",border:"none",outline:"none",background:"transparent",fontSize:11,color:t?"var(--primary, #3b82f6)":"var(--foreground)",fontWeight:t?600:400,padding:"0 20px 0 7px",cursor:"pointer",appearance:"none",WebkitAppearance:"none",backgroundImage:"url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10'%3E%3Cpath d='M2 3.5l3 3 3-3' stroke='%23999' stroke-width='1.4' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E\")",backgroundRepeat:"no-repeat",backgroundPosition:"right 5px center",minWidth:52},children:i})]})}function e0(){return(0,r.jsx)("div",{style:{width:1,height:18,background:"var(--border)",margin:"0 6px",flexShrink:0}})}function e1({label:e,onRemove:t}){return(0,r.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:4,padding:"2px 8px",fontSize:11,borderRadius:4,background:"var(--primary-subtle, rgba(59,130,246,0.08))",border:"1px solid var(--primary-subtle-border, rgba(59,130,246,0.2))",color:"var(--primary, #3b82f6)",fontWeight:500,whiteSpace:"nowrap"},children:[e,(0,r.jsx)("button",{onClick:t,style:{background:"none",border:"none",cursor:"pointer",padding:0,lineHeight:1,color:"inherit",opacity:.7,fontSize:12,display:"flex",alignItems:"center"},"aria-label":"remove filter",children:"×"})]})}function e2({children:e,width:t,align:n}){return(0,r.jsx)("th",{style:{padding:"7px 12px",fontSize:10.5,fontWeight:500,color:"var(--foreground-muted)",borderBottom:"1px solid var(--border)",textAlign:n||"left",whiteSpace:"nowrap",width:t},children:e})}function e5({execution:e,onClick:t,locale:n}){let s=e.task_id||e.upload_id||"",i=(e.failures||[]).map(e=>e.failure_type).filter(Boolean);e.invoked_skills?.length||e.skills?.length||e.skill,(e.invoked_skills?.length??0)>1||e.skills?.length;let a=e.failures&&e.failures.length>0||(e.tool_call_error_count||0)>0;return(0,r.jsxs)("tr",{onClick:t,style:{cursor:"pointer",borderBottom:"1px solid var(--table-row-border)",transition:"background .1s"},onMouseEnter:e=>e.currentTarget.style.background="var(--background-secondary)",onMouseLeave:e=>e.currentTarget.style.background="transparent",children:[(0,r.jsx)(e3,{children:(0,r.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:10.5,color:"var(--foreground-muted)"},children:s.slice(0,14)||"-"})}),(0,r.jsx)(e3,{truncate:!0,children:(0,r.jsx)("span",{title:e.agent||e.agentName||e.framework||"-",style:{fontSize:11,color:"var(--foreground)"},children:e.agent||e.agentName||e.framework||"-"})}),(0,r.jsx)(e3,{children:(0,r.jsx)(L.StatusBadge,{status:a?"error":"success",label:a?"zh"===n?"是":"Yes":"zh"===n?"否":"No"})}),(0,r.jsx)(e3,{truncate:!0,children:(0,r.jsx)("span",{title:e.query,style:{color:"var(--foreground)"},children:e.query||("zh"===n?"(无问题)":"(no query)")})}),(0,r.jsx)(e3,{children:(0,r.jsxs)("div",{style:{display:"flex",gap:4,flexWrap:"wrap"},children:[i.slice(0,2).map((e,t)=>(0,r.jsx)("span",{className:"ai-badge ai-badge-r",style:{fontSize:9},children:e},t)),i.length>2&&(0,r.jsxs)("span",{style:{fontSize:9,color:"var(--foreground-muted)"},children:["+",i.length-2]})]})}),(0,r.jsx)(e3,{children:(0,r.jsx)("span",{style:{fontSize:10,color:"var(--foreground-secondary)",fontFamily:"var(--font-mono)"},children:new Date(e.timestamp).toLocaleString()})})]})}function e3({children:e,align:t,truncate:n}){return(0,r.jsx)("td",{style:{padding:"7px 12px",fontSize:11.5,textAlign:t||"left",color:"var(--foreground)",...n?{maxWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}:{}},children:e})}function e6({page:e,totalPages:t,pageSize:n,total:s,onPage:i,onPageSize:a,locale:o}){var l,d;let c=(e-1)*n+1,u=Math.min(e*n,s),p=(l=e,(d=t)<=7?Array.from({length:d},(e,t)=>t+1):l<=3?[1,2,3,4,"...",d]:l>=d-2?[1,"...",d-3,d-2,d-1,d]:[1,"...",l-1,l,l+1,"...",d]);return(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginTop:12,padding:"0 4px"},children:[(0,r.jsx)("div",{style:{fontSize:11,color:"var(--foreground-muted)"},children:"zh"===o?`显示 ${c} 到 ${u},共 ${s} 条`:`Showing ${c}-${u} of ${s}`}),(0,r.jsxs)("div",{style:{display:"flex",gap:6,alignItems:"center"},children:[(0,r.jsx)("button",{className:"ai-btn-s",style:{padding:"2px 8px",fontSize:11,minWidth:30},disabled:e<=1,onClick:()=>i(e-1),children:"‹"}),p.map((t,n)=>"..."===t?(0,r.jsx)("span",{style:{color:"var(--foreground-muted)",alignSelf:"center",padding:"0 2px"},children:"..."},`ell-${n}`):(0,r.jsx)("button",{className:"ai-btn-s",onClick:()=>i(t),style:{padding:"2px 8px",fontSize:11,minWidth:30,background:t===e?"var(--primary-subtle)":"var(--card-bg)",color:t===e?"var(--primary)":"var(--foreground-secondary)",borderColor:t===e?"var(--primary-subtle-border)":"var(--border)"},children:t},`p-${t}`)),(0,r.jsx)("button",{className:"ai-btn-s",style:{padding:"2px 8px",fontSize:11,minWidth:30},disabled:e>=t,onClick:()=>i(e+1),children:"›"}),(0,r.jsx)("select",{value:n,onChange:e=>a(Number(e.target.value)),className:"ai-chip",style:{height:24,padding:"2px 22px 2px 6px",fontSize:11,marginLeft:8},children:e$.map(e=>(0,r.jsxs)("option",{value:e,children:[e," ","zh"===o?"条/页":"/page"]},e))})]})]})}e.s(["default",()=>eT],75948)}]);
@@ -0,0 +1 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,256225,e=>{"use strict";var t=e.i(167225),a=e.i(843476),n=e.i(522016),r=e.i(618566),s=e.i(271645),o=e.i(711241),i=e.i(762368),l=e.i(741120),c=e.i(263676),u=e.i(583967),d=e.i(747925),m=e.i(882303),h=e.i(456420);let p=(0,h.default)("layers",[["path",{d:"M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z",key:"zw3jo"}],["path",{d:"M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12",key:"1wduqc"}],["path",{d:"M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17",key:"kqbvx6"}]]);var g=e.i(604139),f=e.i(395925),x=e.i(112092);let b=(0,h.default)("columns-3",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}],["path",{d:"M15 3v18",key:"14nvp0"}]]);var y=e.i(77071),v=e.i(689664),j=e.i(438847),w=e.i(846696),k=e.i(540568),N=e.i(708511),S=e.i(284148),C=e.i(24071),P=e.i(566595),T=e.i(793479),M=e.i(519455),z=e.i(225913),A=e.i(975157);let D=(0,z.cva)("inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground hover:bg-primary/80",secondary:"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",destructive:"border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80",outline:"text-foreground"}},defaultVariants:{variant:"default"}});function R({className:e,variant:t,...n}){return(0,a.jsx)("div",{className:(0,A.cn)(D({variant:t}),e),...n})}var O=e.i(183752);let I=[{column:"query",type:"string",label:"查询内容",description:"用户输入 / 问题",syncMode:"textSearch",nullable:!0},{column:"finalResult",type:"string",label:"输出内容",description:"trace 最终输出",syncMode:"textSearch",nullable:!0},{column:"agentName",type:"string",label:"Agent 名",description:"主 Agent 名称",syncMode:"textSearch",nullable:!0},{column:"subagentName",type:"string",label:"子 Agent 名",description:"子 Agent 显示名",syncMode:"textSearch",nullable:!0},{column:"model",type:"string",label:"模型",description:"LLM 模型名",syncMode:"textSearch",nullable:!0},{column:"label",type:"string",label:"标注",description:"人工标注",syncMode:"textSearch",nullable:!0},{column:"framework",type:"stringOptions",label:"框架",description:"采集框架 / 平台",syncMode:"exactOption",nullable:!0},{column:"subagentType",type:"stringOptions",label:"子 Agent 类型",description:"kuafu / general …",syncMode:"exactOption",nullable:!0},{column:"latency",type:"number",label:"耗时",description:"执行时长(秒)",unit:"s",nullable:!0},{column:"tokens",type:"number",label:"Tokens",description:"总 token 数",nullable:!0},{column:"inputTokens",type:"number",label:"输入 Tokens",description:"输入 token 数",nullable:!0},{column:"outputTokens",type:"number",label:"输出 Tokens",description:"输出 token 数",nullable:!0},{column:"cost",type:"number",label:"成本",description:"估算成本($)",unit:"$",nullable:!0},{column:"toolCallCount",type:"number",label:"工具调用数",description:"工具调用次数",nullable:!0},{column:"toolCallErrorCount",type:"number",label:"工具错误数",description:"工具调用失败次数",nullable:!0},{column:"answerScore",type:"number",label:"答案分",description:"答案得分(0–1)",nullable:!0},{column:"skillScore",type:"number",label:"Skill 分",description:"Skill 得分(0–1)",nullable:!0},{column:"skillTriggerRate",type:"number",label:"Skill 触发率",description:"触发率(0–1)",nullable:!0},{column:"timestamp",type:"datetime",label:"时间",description:"trace 起始时间"},{column:"isAnswerCorrect",type:"boolean",label:"答案正确",description:"评测:答案是否正确",nullable:!0},{column:"isSubagent",type:"boolean",label:"是子 Agent",description:"是否子 Agent 执行"},{column:"agents",type:"arrayOptions",label:"Agent(多选)",description:"trace 涉及的 agent",field:"observedAgents",source:"observedAgents",syncMode:"arrayOption",nullable:!0},{column:"skill",type:"arrayOptions",label:"Skill",description:"调用的 skill",source:"executionSkill",syncMode:"arrayOption"},{column:"status",type:"stringOptions",label:"状态",description:"running / success / failed",source:"computed",syncMode:"exactOption"},{column:"ownership",type:"stringOptions",label:"归属",description:"user / system",source:"computed",syncMode:"exactOption"}],E=new Map(I.map(e=>[e.column,e])),W={string:["=","contains","does not contain","starts with","ends with"],number:["=",">","<",">=","<="],datetime:[">","<",">=","<="],stringOptions:["any of","none of"],arrayOptions:["any of","none of","all of"],boolean:["="]},F=["is null","is not null"],$=I.filter(e=>"computed"!==e.source&&"executionSkill"!==e.source&&"query"!==e.column&&"finalResult"!==e.column),L=new Set(["framework","agentName","model","subagentType"]);function _(e){return({"=":"=",contains:"包含","does not contain":"不包含","starts with":"前缀","ends with":"后缀",">":">","<":"<",">=":"≥","<=":"≤","any of":"任一","none of":"非","all of":"全部","is null":"为空","is not null":"非空"})[e]??e}function B({clauses:e,onChange:t,search:n,onSearchChange:r,user:o}){let i,l=(0,s.useRef)(null),u=(0,s.useRef)(null),[d,m]=(0,s.useState)(!1),[h,p]=(0,s.useState)("field"),[g,f]=(0,s.useState)(null),[x,b]=(0,s.useState)("contains"),[y,v]=(0,s.useState)(""),[j,w]=(0,s.useState)(new Set),[k,N]=(0,s.useState)([]),[S,z]=(0,s.useState)(n),[D,I]=(0,s.useState)(n);n!==D&&(I(n),n!==S.trim()&&z(n));let B=(0,s.useRef)(r);(0,s.useEffect)(()=>{B.current=r}),(0,s.useEffect)(()=>{let e=setTimeout(()=>B.current(S.trim()),300);return()=>clearTimeout(e)},[S]);let K=(0,s.useCallback)(()=>{p("field"),f(null),v(""),w(new Set),N([])},[]),J=(0,s.useCallback)(()=>{m(!1),K()},[K]);(0,s.useEffect)(()=>{if(!d)return;let e=e=>{l.current&&!l.current.contains(e.target)&&J()};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[d,J]);let q=(0,s.useMemo)(()=>{let e=S.trim().toLowerCase();return $.filter(t=>!e||t.label.toLowerCase().includes(e)||t.column.toLowerCase().includes(e))},[S]);(0,s.useEffect)(()=>{if("value"!==h||!g||!L.has(g.column))return;let e=!0;return(0,O.apiFetch)(`/api/observe/data?user=${encodeURIComponent(o)}&facet=values&column=${encodeURIComponent(g.column)}`).then(e=>e.json()).then(t=>{e&&N(Array.isArray(t)?t:[])}).catch(()=>e&&N([])),()=>{e=!1}},[h,g,o]);let[H,Q]=(0,s.useState)([]);(0,s.useEffect)(()=>{let e=$.filter(e=>"stringOptions"===e.type&&L.has(e.column)).slice(0,4),t=!0;return Promise.all(e.map(e=>(0,O.apiFetch)(`/api/observe/data?user=${encodeURIComponent(o)}&facet=values&column=${encodeURIComponent(e.column)}`).then(e=>e.json()).then(t=>Array.isArray(t)&&t[0]?{column:e.column,value:t[0].value,count:t[0].count}:null).catch(()=>null))).then(e=>{t&&Q(e.filter(e=>null!=e))}),()=>{t=!1}},[o]);let Y=a=>{t([...e,a]),K(),u.current?.focus()},V=()=>{if(!g)return;if("is null"===x||"is not null"===x)return void Y({column:g.column,operator:x});if("boolean"===g.type)return;if("stringOptions"===g.type){if(0===j.size)return;Y({column:g.column,operator:x,value:Array.from(j)});return}let e=y.trim();if(!e)return;let t=e;if("datetime"===g.type){let a=new Date(e);if(Number.isNaN(a.getTime()))return;t=a.toISOString()}Y({column:g.column,operator:x,value:t})};return(0,a.jsxs)("div",{ref:l,className:"relative",children:[(0,a.jsxs)("div",{className:(0,A.cn)("flex flex-wrap items-center gap-1.5 rounded-md border border-input bg-transparent px-2.5 py-1.5 min-h-9 cursor-text","focus-within:ring-1 focus-within:ring-ring"),onMouseDown:e=>{e.target===e.currentTarget&&(e.preventDefault(),u.current?.focus(),m(!0))},children:[(0,a.jsx)(P.Search,{className:"size-4 text-foreground-muted shrink-0"}),e.map((n,r)=>(0,a.jsxs)(R,{variant:"secondary",className:"gap-1 pl-2 pr-1 py-0.5 text-xs font-normal",children:[function(e){var t;let a=(t=e.column,E.get(t)),n=a?.label??e.column;if("is null"===e.operator||"is not null"===e.operator)return`${n} ${_(e.operator)}`;let r=Array.isArray(e.value)?e.value.join(" / "):String(e.value??"");return`${n} ${_(e.operator)} ${r}`}(n),(0,a.jsx)("button",{type:"button",onClick:()=>t(e.filter((e,t)=>t!==r)),className:"rounded-sm hover:bg-background-secondary p-0.5","aria-label":"移除过滤",children:(0,a.jsx)(c.X,{className:"size-3"})})]},r)),(0,a.jsx)("input",{ref:u,value:S,onChange:e=>z(e.target.value),onFocus:()=>m(!0),onKeyDown:e=>{"Escape"===e.key&&(J(),u.current?.blur())},placeholder:e.length?"继续搜索 / 过滤…":"搜索输入/输出内容或 Trace ID,或点选字段过滤…","aria-label":"搜索或过滤 trace",className:"flex-1 min-w-[10rem] bg-transparent outline-none text-sm h-6 placeholder:text-muted-foreground"})]}),d&&(0,a.jsx)("div",{className:"absolute left-0 top-full mt-1 z-50 w-full max-w-md rounded-md border border-card-border bg-card text-card-foreground shadow-sm",children:"field"===h?(0,a.jsxs)("div",{className:"py-1",children:[S.trim()&&(0,a.jsxs)("button",{type:"button",onMouseDown:e=>e.preventDefault(),onClick:()=>{m(!1),u.current?.blur()},className:"flex w-full items-center gap-2 border-b border-card-border px-3 py-2 text-left text-xs text-foreground-muted hover:bg-background-secondary",children:[(0,a.jsx)(P.Search,{className:"size-3.5 shrink-0"}),(0,a.jsxs)("span",{className:"truncate",children:["模糊搜索输入/输出含 ",(0,a.jsx)("span",{className:"font-medium text-foreground",children:S.trim()})]})]}),!S.trim()&&H.length>0&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("div",{className:"px-3 pb-1 pt-1.5 text-[11px] font-medium uppercase tracking-wide text-foreground-muted",children:"建议"}),(0,a.jsx)("ul",{className:"pb-1",children:H.map(e=>(0,a.jsx)("li",{children:(0,a.jsxs)("button",{type:"button",onClick:()=>Y({column:e.column,operator:"any of",value:[e.value]}),className:"flex w-full items-center justify-between gap-3 px-3 py-1.5 text-left text-sm hover:bg-background-secondary",children:[(0,a.jsxs)("span",{className:"truncate font-mono text-xs",children:[(0,a.jsxs)("span",{className:"text-foreground-muted",children:[e.column,":"]}),e.value]}),(0,a.jsx)("span",{className:"shrink-0 text-xs tabular-nums text-foreground-muted",children:e.count})]})},e.column))})]}),(0,a.jsx)("div",{className:"px-3 pb-1 pt-1.5 text-[11px] font-medium uppercase tracking-wide text-foreground-muted",children:"字段"}),(0,a.jsxs)("ul",{className:"max-h-64 overflow-auto pb-1",children:[q.map(e=>(0,a.jsx)("li",{children:(0,a.jsxs)("button",{type:"button",onClick:()=>{f(e),b(function(e){switch(e.type){case"string":return"contains";case"number":return">";case"datetime":return">=";case"stringOptions":case"arrayOptions":return"any of";case"boolean":return"="}}(e)),v(""),w(new Set),z(""),p("value")},className:"flex w-full items-center gap-3 px-3 py-1.5 text-left text-sm hover:bg-background-secondary",children:[(0,a.jsx)(P.Search,{className:"size-4 shrink-0 text-foreground-muted"}),(0,a.jsx)("span",{className:"font-medium",children:e.label}),(0,a.jsx)("span",{className:"font-mono text-xs text-foreground-muted",children:e.column}),e.description&&(0,a.jsx)("span",{className:"ml-auto truncate text-xs text-foreground-muted",children:e.description})]})},e.column)),0===q.length&&(0,a.jsx)("li",{className:"px-3 py-2 text-xs text-foreground-muted",children:"无匹配字段"})]})]}):g&&(0,a.jsxs)("div",{children:[(0,a.jsxs)("div",{className:"flex items-center gap-1 p-2 border-b border-border",children:[(0,a.jsx)("button",{type:"button",onClick:K,className:"rounded-sm hover:bg-background-secondary p-1","aria-label":"返回字段",children:(0,a.jsx)(C.ChevronLeft,{className:"size-4"})}),(0,a.jsx)("span",{className:"text-sm font-medium",children:g.label}),(0,a.jsx)("select",{value:x,onChange:e=>b(e.target.value),className:"ml-auto h-7 rounded-md border border-border bg-background text-xs px-1",children:(i=W[g.type],g.nullable?[...i,...F]:i).map(e=>(0,a.jsx)("option",{value:e,children:_(e)},e))})]}),(0,a.jsx)("div",{className:"p-2",children:"is null"===x||"is not null"===x?(0,a.jsx)(M.Button,{size:"sm",className:"w-full h-8 text-xs",onClick:V,children:"添加"}):"boolean"===g.type?(0,a.jsxs)("div",{className:"flex gap-2",children:[(0,a.jsx)(M.Button,{size:"sm",variant:"outline",className:"flex-1 h-8 text-xs",onClick:()=>Y({column:g.column,operator:"=",value:!0}),children:"是 / true"}),(0,a.jsx)(M.Button,{size:"sm",variant:"outline",className:"flex-1 h-8 text-xs",onClick:()=>Y({column:g.column,operator:"=",value:!1}),children:"否 / false"})]}):"stringOptions"===g.type?(0,a.jsx)(X,{facet:k,picked:j,onToggle:e=>w(t=>{let a=new Set(t);return a.has(e)?a.delete(e):a.add(e),a}),onConfirm:V}):(0,a.jsxs)("div",{children:[(0,a.jsxs)("div",{className:"flex gap-2",children:[(0,a.jsx)(T.Input,{autoFocus:!0,type:"number"===g.type?"number":"datetime"===g.type?"datetime-local":"text",value:y,onChange:e=>v(e.target.value),onKeyDown:e=>"Enter"===e.key&&V(),placeholder:g.unit?`值(${g.unit})`:"值…",className:"h-8 text-sm"}),(0,a.jsx)(M.Button,{size:"sm",className:"h-8 text-xs shrink-0",onClick:V,children:"添加"})]}),(0,a.jsx)(U,{facet:k,query:y,onPick:e=>Y({column:g.column,operator:x,value:e})})]})})]})})]})}function U({facet:e,query:t,onPick:n}){let r=t.trim().toLowerCase(),o=(0,s.useMemo)(()=>e.filter(e=>!r||e.value.toLowerCase().includes(r)).slice(0,8),[e,r]);return 0===o.length?null:(0,a.jsxs)("div",{className:"mt-2",children:[(0,a.jsx)("div",{className:"px-1 pb-1 text-[11px] font-medium uppercase tracking-wide text-foreground-muted",children:"建议"}),(0,a.jsx)("ul",{className:"max-h-48 overflow-auto",children:o.map(e=>(0,a.jsx)("li",{children:(0,a.jsxs)("button",{type:"button",onClick:()=>n(e.value),className:"flex w-full items-center justify-between gap-3 rounded px-2 py-1.5 text-left text-sm hover:bg-background-secondary",children:[(0,a.jsx)("span",{className:"truncate",children:e.value}),(0,a.jsx)("span",{className:"shrink-0 text-xs tabular-nums text-foreground-muted",children:e.count})]})},e.value))})]})}function X({facet:e,picked:t,onToggle:n,onConfirm:r}){return(0,a.jsxs)("div",{children:[(0,a.jsxs)("ul",{className:"max-h-56 overflow-auto -mx-2",children:[e.map(e=>(0,a.jsx)("li",{children:(0,a.jsxs)("button",{type:"button",onClick:()=>n(e.value),className:"flex w-full items-center justify-between px-3 py-1.5 text-sm hover:bg-background-secondary text-left",children:[(0,a.jsxs)("span",{className:"flex items-center gap-2",children:[(0,a.jsx)("input",{type:"checkbox",readOnly:!0,checked:t.has(e.value),className:"pointer-events-none"}),e.value]}),(0,a.jsx)("span",{className:"text-xs text-foreground-muted tabular-nums",children:e.count})]})},e.value)),0===e.length&&(0,a.jsx)("li",{className:"px-3 py-2 text-xs text-foreground-muted",children:"无可选值"})]}),(0,a.jsxs)(M.Button,{size:"sm",className:"w-full h-8 text-xs mt-2",disabled:0===t.size,onClick:r,children:["添加(",t.size,")"]})]})}var K=e.i(716327),J=e.i(867927);let q=[{column:"skill",kind:"select",defaultOpen:!0},{column:"subagentType",kind:"select"},{column:"model",kind:"contains",defaultOpen:!0},{column:"latency",kind:"range",defaultOpen:!0},{column:"tokens",kind:"range"},{column:"cost",kind:"range"},{column:"answerScore",kind:"range"},{column:"isAnswerCorrect",kind:"boolean"}];function H({clauses:e,onChange:t,user:n}){return(0,a.jsx)("div",{className:"divide-y divide-card-border",children:q.map(r=>{var s;let o,i=(s=r.column,E.get(s));return i?(0,a.jsx)(Q,{col:i,kind:r.kind,defaultOpen:r.defaultOpen,user:n,current:(o=r.column,e.filter(e=>e.column===o)),onSet:a=>{let n;return n=r.column,t([...e.filter(e=>e.column!==n),...a])}},r.column):null})})}function Q({col:e,kind:t,defaultOpen:n,user:r,current:o,onSet:i}){let[l,c]=(0,s.useState)(!!n),u=o.length>0;return(0,a.jsxs)("div",{className:"py-2",children:[(0,a.jsxs)("button",{type:"button",onClick:()=>c(e=>!e),className:"flex w-full items-center gap-1.5 px-1 text-left",children:[l?(0,a.jsx)(K.ChevronDown,{className:"size-3.5 text-foreground-muted"}):(0,a.jsx)(J.ChevronRight,{className:"size-3.5 text-foreground-muted"}),(0,a.jsx)("span",{className:"text-sm font-medium",children:e.label}),(0,a.jsx)("span",{className:"font-mono text-[11px] text-foreground-muted",children:e.column}),u&&(0,a.jsx)("span",{className:"ml-auto size-1.5 rounded-full bg-primary","aria-label":"已启用"})]}),l&&(0,a.jsxs)("div",{className:"mt-1.5 px-1",children:["select"===t&&(0,a.jsx)(Y,{col:e,user:r,current:o,onSet:i}),"contains"===t&&(0,a.jsx)(V,{col:e,current:o,onSet:i}),"range"===t&&(0,a.jsx)(G,{col:e,current:o,onSet:i}),"boolean"===t&&(0,a.jsx)(Z,{col:e,current:o,onSet:i})]})]})}function Y({col:e,user:t,current:n,onSet:r}){let[o,i]=(0,s.useState)([]),[l,c]=(0,s.useState)(!1);(0,s.useEffect)(()=>{let a=!0;return(0,O.apiFetch)(`/api/observe/data?user=${encodeURIComponent(t)}&facet=values&column=${encodeURIComponent(e.column)}`).then(e=>e.json()).then(e=>a&&i(Array.isArray(e)?e:[])).catch(()=>a&&i([])).finally(()=>a&&c(!0)),()=>{a=!1}},[e.column,t]);let u=new Set(n.find(e=>"any of"===e.operator)?.value??[]);return l?0===o.length?(0,a.jsx)("p",{className:"text-xs text-foreground-muted",children:"无可选值"}):(0,a.jsx)("ul",{className:"max-h-48 overflow-auto",children:o.map(t=>(0,a.jsx)("li",{children:(0,a.jsxs)("button",{type:"button",onClick:()=>{var a;let n,s;return a=t.value,(n=new Set(u)).has(a)?n.delete(a):n.add(a),void r((s=Array.from(n)).length?[{column:e.column,operator:"any of",value:s}]:[])},className:"flex w-full items-center justify-between gap-2 rounded px-1 py-1 text-left text-sm hover:bg-background-secondary",children:[(0,a.jsxs)("span",{className:"flex min-w-0 items-center gap-2",children:[(0,a.jsx)("input",{type:"checkbox",readOnly:!0,checked:u.has(t.value),className:"pointer-events-none"}),(0,a.jsx)("span",{className:"truncate",children:t.value})]}),(0,a.jsx)("span",{className:"shrink-0 text-xs tabular-nums text-foreground-muted",children:t.count})]})},t.value))}):(0,a.jsx)("p",{className:"text-xs text-foreground-muted",children:"加载中…"})}function V({col:e,current:t,onSet:n}){let r=t.find(e=>"contains"===e.operator)?.value??"",[o,i]=(0,s.useState)(r),[l,c]=(0,s.useState)(r);r!==l&&(c(r),r!==o&&i(r));let u=()=>{let t=o.trim();n(t?[{column:e.column,operator:"contains",value:t}]:[])};return(0,a.jsx)("input",{value:o,onChange:e=>i(e.target.value),onBlur:u,onKeyDown:e=>"Enter"===e.key&&u(),placeholder:"包含…",className:"h-7 w-full rounded border border-input bg-transparent px-2 text-sm outline-none focus:ring-1 focus:ring-ring"})}function G({col:e,current:t,onSet:n}){let r=t.find(e=>">="===e.operator),o=t.find(e=>"<="===e.operator),[i,l]=(0,s.useState)(r?String(r.value):""),[c,u]=(0,s.useState)(o?String(o.value):""),d=`${r?.value??""}|${o?.value??""}`,[m,h]=(0,s.useState)(d);d!==m&&(h(d),l(r?String(r.value):""),u(o?String(o.value):""));let p=()=>{let t=[];""!==i.trim()&&Number.isFinite(Number(i))&&t.push({column:e.column,operator:">=",value:Number(i)}),""!==c.trim()&&Number.isFinite(Number(c))&&t.push({column:e.column,operator:"<=",value:Number(c)}),n(t)},g="h-7 w-full rounded border border-input bg-transparent px-2 text-sm outline-none focus:ring-1 focus:ring-ring";return(0,a.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,a.jsx)("input",{type:"number",value:i,onChange:e=>l(e.target.value),onBlur:p,onKeyDown:e=>"Enter"===e.key&&p(),placeholder:e.unit?`最小(${e.unit})`:"最小",className:g}),(0,a.jsx)("span",{className:"text-xs text-foreground-muted",children:"–"}),(0,a.jsx)("input",{type:"number",value:c,onChange:e=>u(e.target.value),onBlur:p,onKeyDown:e=>"Enter"===e.key&&p(),placeholder:e.unit?`最大(${e.unit})`:"最大",className:g})]})}function Z({col:e,current:t,onSet:n}){let r=t.find(e=>"="===e.operator),s=r?r.value:void 0,o=(t,r)=>(0,a.jsx)("button",{type:"button",onClick:()=>n(void 0===r?[]:[{column:e.column,operator:"=",value:r}]),className:"flex-1 rounded px-2 py-1 text-xs "+(s===r?"bg-primary text-primary-foreground":"hover:bg-background-secondary text-foreground-muted"),children:t});return(0,a.jsxs)("div",{className:"flex gap-1 rounded border border-input p-0.5",children:[o("全部",void 0),o("是",!0),o("否",!1)]})}var ee=e.i(927643),et=e.i(726526),ea=e.i(642726),en=e.i(248425),er="horizontal",es=["horizontal","vertical"],eo=s.forwardRef((e,t)=>{var n;let{decorative:r,orientation:s=er,...o}=e,i=(n=s,es.includes(n))?s:er;return(0,a.jsx)(en.Primitive.div,{"data-orientation":i,...r?{role:"none"}:{"aria-orientation":"vertical"===i?i:void 0,role:"separator"},...o,ref:t})});function ei({className:e,orientation:t="horizontal",decorative:n=!0,...r}){return(0,a.jsx)(eo,{"data-slot":"separator-root",decorative:n,orientation:t,className:(0,A.cn)("bg-border shrink-0 data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px",e),...r})}function el({className:e,...t}){return(0,a.jsx)("div",{"data-slot":"skeleton",className:(0,A.cn)("bg-primary/10 animate-pulse rounded-md",e),...t})}eo.displayName="Separator";var ec=e.i(746798),eu=e.i(967489),ed=e.i(658512),em=e.i(981140),eh=e.i(820783),ep=e.i(30030),eg=e.i(726330),ef=e.i(303536),ex=e.i(765491),eb=e.i(610772),ey=e.i(853660),ev=e.i(774606),ej=e.i(296626),ew=e.i(991918),ek=e.i(369340),eN=e.i(186312),eS=e.i(985369),eC="Popover",[eP,eT]=(0,ep.createContextScope)(eC,[ey.createPopperScope]),eM=(0,ey.createPopperScope)(),[ez,eA]=eP(eC),eD=e=>{let{__scopePopover:t,children:n,open:r,defaultOpen:o,onOpenChange:i,modal:l=!1}=e,c=eM(t),u=s.useRef(null),[d,m]=s.useState(!1),[h,p]=(0,ek.useControllableState)({prop:r,defaultProp:o??!1,onChange:i,caller:eC});return(0,a.jsx)(ey.Root,{...c,children:(0,a.jsx)(ez,{scope:t,contentId:(0,eb.useId)(),triggerRef:u,open:h,onOpenChange:p,onOpenToggle:s.useCallback(()=>p(e=>!e),[p]),hasCustomAnchor:d,onCustomAnchorAdd:s.useCallback(()=>m(!0),[]),onCustomAnchorRemove:s.useCallback(()=>m(!1),[]),modal:l,children:n})})};eD.displayName=eC;var eR="PopoverAnchor";s.forwardRef((e,t)=>{let{__scopePopover:n,...r}=e,o=eA(eR,n),i=eM(n),{onCustomAnchorAdd:l,onCustomAnchorRemove:c}=o;return s.useEffect(()=>(l(),()=>c()),[l,c]),(0,a.jsx)(ey.Anchor,{...i,...r,ref:t})}).displayName=eR;var eO="PopoverTrigger",eI=s.forwardRef((e,t)=>{let{__scopePopover:n,...r}=e,s=eA(eO,n),o=eM(n),i=(0,eh.useComposedRefs)(t,s.triggerRef),l=(0,a.jsx)(en.Primitive.button,{type:"button","aria-haspopup":"dialog","aria-expanded":s.open,"aria-controls":s.open?s.contentId:void 0,"data-state":eq(s.open),...r,ref:i,onClick:(0,em.composeEventHandlers)(e.onClick,s.onOpenToggle)});return s.hasCustomAnchor?l:(0,a.jsx)(ey.Anchor,{asChild:!0,...o,children:l})});eI.displayName=eO;var eE="PopoverPortal",[eW,eF]=eP(eE,{forceMount:void 0}),e$=e=>{let{__scopePopover:t,forceMount:n,children:r,container:s}=e,o=eA(eE,t);return(0,a.jsx)(eW,{scope:t,forceMount:n,children:(0,a.jsx)(ej.Presence,{present:n||o.open,children:(0,a.jsx)(ev.Portal,{asChild:!0,container:s,children:r})})})};e$.displayName=eE;var eL="PopoverContent",e_=s.forwardRef((e,t)=>{let n=eF(eL,e.__scopePopover),{forceMount:r=n.forceMount,...s}=e,o=eA(eL,e.__scopePopover);return(0,a.jsx)(ej.Presence,{present:r||o.open,children:o.modal?(0,a.jsx)(eU,{...s,ref:t}):(0,a.jsx)(eX,{...s,ref:t})})});e_.displayName=eL;var eB=(0,ew.createSlot)("PopoverContent.RemoveScroll"),eU=s.forwardRef((e,t)=>{let n=eA(eL,e.__scopePopover),r=s.useRef(null),o=(0,eh.useComposedRefs)(t,r),i=s.useRef(!1);return s.useEffect(()=>{let e=r.current;if(e)return(0,eN.hideOthers)(e)},[]),(0,a.jsx)(eS.RemoveScroll,{as:eB,allowPinchZoom:!0,children:(0,a.jsx)(eK,{...e,ref:o,trapFocus:n.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:(0,em.composeEventHandlers)(e.onCloseAutoFocus,e=>{e.preventDefault(),i.current||n.triggerRef.current?.focus()}),onPointerDownOutside:(0,em.composeEventHandlers)(e.onPointerDownOutside,e=>{let t=e.detail.originalEvent,a=0===t.button&&!0===t.ctrlKey;i.current=2===t.button||a},{checkForDefaultPrevented:!1}),onFocusOutside:(0,em.composeEventHandlers)(e.onFocusOutside,e=>e.preventDefault(),{checkForDefaultPrevented:!1})})})}),eX=s.forwardRef((e,t)=>{let n=eA(eL,e.__scopePopover),r=s.useRef(!1),o=s.useRef(!1);return(0,a.jsx)(eK,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:t=>{e.onCloseAutoFocus?.(t),t.defaultPrevented||(r.current||n.triggerRef.current?.focus(),t.preventDefault()),r.current=!1,o.current=!1},onInteractOutside:t=>{e.onInteractOutside?.(t),t.defaultPrevented||(r.current=!0,"pointerdown"===t.detail.originalEvent.type&&(o.current=!0));let a=t.target;n.triggerRef.current?.contains(a)&&t.preventDefault(),"focusin"===t.detail.originalEvent.type&&o.current&&t.preventDefault()}})}),eK=s.forwardRef((e,t)=>{let{__scopePopover:n,trapFocus:r,onOpenAutoFocus:s,onCloseAutoFocus:o,disableOutsidePointerEvents:i,onEscapeKeyDown:l,onPointerDownOutside:c,onFocusOutside:u,onInteractOutside:d,...m}=e,h=eA(eL,n),p=eM(n);return(0,ef.useFocusGuards)(),(0,a.jsx)(ex.FocusScope,{asChild:!0,loop:!0,trapped:r,onMountAutoFocus:s,onUnmountAutoFocus:o,children:(0,a.jsx)(eg.DismissableLayer,{asChild:!0,disableOutsidePointerEvents:i,onInteractOutside:d,onEscapeKeyDown:l,onPointerDownOutside:c,onFocusOutside:u,onDismiss:()=>h.onOpenChange(!1),deferPointerDownOutside:!0,children:(0,a.jsx)(ey.Content,{"data-state":eq(h.open),role:"dialog",id:h.contentId,...p,...m,ref:t,style:{...m.style,"--radix-popover-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-popover-content-available-width":"var(--radix-popper-available-width)","--radix-popover-content-available-height":"var(--radix-popper-available-height)","--radix-popover-trigger-width":"var(--radix-popper-anchor-width)","--radix-popover-trigger-height":"var(--radix-popper-anchor-height)"}})})})}),eJ="PopoverClose";function eq(e){return e?"open":"closed"}function eH({...e}){return(0,a.jsx)(eD,{"data-slot":"popover",...e})}function eQ({...e}){return(0,a.jsx)(eI,{"data-slot":"popover-trigger",...e})}function eY({className:e,align:t="center",sideOffset:n=6,children:r,...s}){return(0,a.jsx)(e$,{children:(0,a.jsx)(e_,{"data-slot":"popover-content",align:t,sideOffset:n,className:(0,A.cn)("z-50 w-72 rounded-md border border-card-border bg-card p-4 text-card-foreground shadow-sm outline-none","data-[state=open]:animate-in data-[state=closed]:animate-out","data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0","data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95","data-[side=bottom]:slide-in-from-top-2 data-[side=top]:slide-in-from-bottom-2","data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2",e),...s,children:r})})}s.forwardRef((e,t)=>{let{__scopePopover:n,...r}=e,s=eA(eJ,n);return(0,a.jsx)(en.Primitive.button,{type:"button",...r,ref:t,onClick:(0,em.composeEventHandlers)(e.onClick,()=>s.onOpenChange(!1))})}).displayName=eJ,s.forwardRef((e,t)=>{let{__scopePopover:n,...r}=e,s=eM(n);return(0,a.jsx)(ey.Arrow,{...s,...r,ref:t})}).displayName="PopoverArrow";var eV=e.i(755146),eG=e.i(51907),eZ=e.i(570059),e0=e.i(508734);function e1({value:e,head:t=6,tail:n=4,copy:r=!0,className:o,onClick:i}){let[l,c]=s.useState(!1);if(!e)return(0,a.jsx)("span",{className:"text-foreground-muted",children:"—"});let u=e.length>t+n+1?`${e.slice(0,t)}…${e.slice(-n)}`:e,d=async t=>{t.stopPropagation();try{await navigator.clipboard.writeText(e),c(!0),w.toast.success("Copied"),setTimeout(()=>c(!1),1500)}catch{w.toast.error("Copy failed")}};return(0,a.jsx)(ec.TooltipProvider,{delayDuration:150,children:(0,a.jsxs)(ec.Tooltip,{children:[(0,a.jsx)(ec.TooltipTrigger,{asChild:!0,children:(0,a.jsxs)("span",{onClick:i,className:(0,A.cn)("inline-flex items-center gap-1 font-mono text-xs text-foreground tabular-nums",i&&"cursor-pointer hover:text-primary",o),children:[(0,a.jsx)("span",{children:u}),r&&(0,a.jsx)("button",{type:"button",onClick:d,"aria-label":"Copy ID",className:"text-foreground-muted hover:text-foreground p-0.5 rounded-sm focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",children:l?(0,a.jsx)(v.Check,{className:"size-3"}):(0,a.jsx)(e0.Copy,{className:"size-3"})})]})}),(0,a.jsx)(ec.TooltipContent,{side:"top",children:(0,a.jsx)("code",{className:"text-xs",children:e})})]})})}function e2({children:e,className:t,tooltipMax:n=200,empty:r=(0,a.jsx)("span",{className:"text-foreground-muted",children:"—"})}){let s=(e??"").toString();return s?(0,a.jsx)(ec.TooltipProvider,{delayDuration:250,children:(0,a.jsxs)(ec.Tooltip,{children:[(0,a.jsx)(ec.TooltipTrigger,{asChild:!0,children:(0,a.jsx)("span",{className:(0,A.cn)("block truncate",t),children:s})}),(0,a.jsx)(ec.TooltipContent,{side:"top",className:"max-w-sm whitespace-pre-wrap text-xs",children:s.length>n?`${s.slice(0,n)}…`:s})]})}):(0,a.jsx)(a.Fragment,{children:r})}let e3=Symbol.for("constructDateFrom");function e5(e,t){return"function"==typeof e?e(t):e&&"object"==typeof e&&e3 in e?e[e3](t):e instanceof Date?new e.constructor(t):new Date(t)}let e6={lessThanXSeconds:{one:"less than a second",other:"less than {{count}} seconds"},xSeconds:{one:"1 second",other:"{{count}} seconds"},halfAMinute:"half a minute",lessThanXMinutes:{one:"less than a minute",other:"less than {{count}} minutes"},xMinutes:{one:"1 minute",other:"{{count}} minutes"},aboutXHours:{one:"about 1 hour",other:"about {{count}} hours"},xHours:{one:"1 hour",other:"{{count}} hours"},xDays:{one:"1 day",other:"{{count}} days"},aboutXWeeks:{one:"about 1 week",other:"about {{count}} weeks"},xWeeks:{one:"1 week",other:"{{count}} weeks"},aboutXMonths:{one:"about 1 month",other:"about {{count}} months"},xMonths:{one:"1 month",other:"{{count}} months"},aboutXYears:{one:"about 1 year",other:"about {{count}} years"},xYears:{one:"1 year",other:"{{count}} years"},overXYears:{one:"over 1 year",other:"over {{count}} years"},almostXYears:{one:"almost 1 year",other:"almost {{count}} years"}};function e4(e){return (t={})=>{let a=t.width?String(t.width):e.defaultWidth;return e.formats[a]||e.formats[e.defaultWidth]}}let e8={date:e4({formats:{full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},defaultWidth:"full"}),time:e4({formats:{full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},defaultWidth:"full"}),dateTime:e4({formats:{full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},defaultWidth:"full"})},e7={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"};function e9(e){return(t,a)=>{let n;if("formatting"===(a?.context?String(a.context):"standalone")&&e.formattingValues){let t=e.defaultFormattingWidth||e.defaultWidth,r=a?.width?String(a.width):t;n=e.formattingValues[r]||e.formattingValues[t]}else{let t=e.defaultWidth,r=a?.width?String(a.width):e.defaultWidth;n=e.values[r]||e.values[t]}return n[e.argumentCallback?e.argumentCallback(t):t]}}function te(e){return(t,a={})=>{let n,r=a.width,s=r&&e.matchPatterns[r]||e.matchPatterns[e.defaultMatchWidth],o=t.match(s);if(!o)return null;let i=o[0],l=r&&e.parsePatterns[r]||e.parsePatterns[e.defaultParseWidth],c=Array.isArray(l)?function(e,t){for(let a=0;a<e.length;a++)if(t(e[a]))return a}(l,e=>e.test(i)):function(e,t){for(let a in e)if(Object.prototype.hasOwnProperty.call(e,a)&&t(e[a]))return a}(l,e=>e.test(i));return n=e.valueCallback?e.valueCallback(c):c,{value:n=a.valueCallback?a.valueCallback(n):n,rest:t.slice(i.length)}}}function tt(e){return(t,a={})=>{let n=t.match(e.matchPattern);if(!n)return null;let r=n[0],s=t.match(e.parsePattern);if(!s)return null;let o=e.valueCallback?e.valueCallback(s[0]):s[0];return{value:o=a.valueCallback?a.valueCallback(o):o,rest:t.slice(r.length)}}}let ta={code:"en-US",formatDistance:(e,t,a)=>{let n,r=e6[e];if(n="string"==typeof r?r:1===t?r.one:r.other.replace("{{count}}",t.toString()),a?.addSuffix)if(a.comparison&&a.comparison>0)return"in "+n;else return n+" ago";return n},formatLong:e8,formatRelative:(e,t,a,n)=>e7[e],localize:{ordinalNumber:(e,t)=>{let a=Number(e),n=a%100;if(n>20||n<10)switch(n%10){case 1:return a+"st";case 2:return a+"nd";case 3:return a+"rd"}return a+"th"},era:e9({values:{narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},defaultWidth:"wide"}),quarter:e9({values:{narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},defaultWidth:"wide",argumentCallback:e=>e-1}),month:e9({values:{narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},defaultWidth:"wide"}),day:e9({values:{narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},defaultWidth:"wide"}),dayPeriod:e9({values:{narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},defaultWidth:"wide",formattingValues:{narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},defaultFormattingWidth:"wide"})},match:{ordinalNumber:tt({matchPattern:/^(\d+)(th|st|nd|rd)?/i,parsePattern:/\d+/i,valueCallback:e=>parseInt(e,10)}),era:te({matchPatterns:{narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},defaultMatchWidth:"wide",parsePatterns:{any:[/^b/i,/^(a|c)/i]},defaultParseWidth:"any"}),quarter:te({matchPatterns:{narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},defaultMatchWidth:"wide",parsePatterns:{any:[/1/i,/2/i,/3/i,/4/i]},defaultParseWidth:"any",valueCallback:e=>e+1}),month:te({matchPatterns:{narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},defaultParseWidth:"any"}),day:te({matchPatterns:{narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},defaultParseWidth:"any"}),dayPeriod:te({matchPatterns:{narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},defaultMatchWidth:"any",parsePatterns:{any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},defaultParseWidth:"any"})},options:{weekStartsOn:0,firstWeekContainsDate:1}},tn={};function tr(e,t){return e5(t||e,e)}function ts(e){let t=tr(e),a=new Date(Date.UTC(t.getFullYear(),t.getMonth(),t.getDate(),t.getHours(),t.getMinutes(),t.getSeconds(),t.getMilliseconds()));return a.setUTCFullYear(t.getFullYear()),e-a}function to(e,...t){let a=e5.bind(null,e||t.find(e=>"object"==typeof e));return t.map(a)}function ti(e,t){let a=tr(e)-tr(t);return a<0?-1:a>0?1:a}let tl={lessThanXSeconds:{one:"不到 1 秒",other:"不到 {{count}} 秒"},xSeconds:{one:"1 秒",other:"{{count}} 秒"},halfAMinute:"半分钟",lessThanXMinutes:{one:"不到 1 分钟",other:"不到 {{count}} 分钟"},xMinutes:{one:"1 分钟",other:"{{count}} 分钟"},xHours:{one:"1 小时",other:"{{count}} 小时"},aboutXHours:{one:"大约 1 小时",other:"大约 {{count}} 小时"},xDays:{one:"1 天",other:"{{count}} 天"},aboutXWeeks:{one:"大约 1 个星期",other:"大约 {{count}} 个星期"},xWeeks:{one:"1 个星期",other:"{{count}} 个星期"},aboutXMonths:{one:"大约 1 个月",other:"大约 {{count}} 个月"},xMonths:{one:"1 个月",other:"{{count}} 个月"},aboutXYears:{one:"大约 1 年",other:"大约 {{count}} 年"},xYears:{one:"1 年",other:"{{count}} 年"},overXYears:{one:"超过 1 年",other:"超过 {{count}} 年"},almostXYears:{one:"将近 1 年",other:"将近 {{count}} 年"}},tc={date:e4({formats:{full:"y'年'M'月'd'日' EEEE",long:"y'年'M'月'd'日'",medium:"yyyy-MM-dd",short:"yy-MM-dd"},defaultWidth:"full"}),time:e4({formats:{full:"zzzz a h:mm:ss",long:"z a h:mm:ss",medium:"a h:mm:ss",short:"a h:mm"},defaultWidth:"full"}),dateTime:e4({formats:{full:"{{date}} {{time}}",long:"{{date}} {{time}}",medium:"{{date}} {{time}}",short:"{{date}} {{time}}"},defaultWidth:"full"})};function tu(e,t){let a=t?.weekStartsOn??t?.locale?.options?.weekStartsOn??tn.weekStartsOn??tn.locale?.options?.weekStartsOn??0,n=tr(e,t?.in),r=n.getDay();return n.setDate(n.getDate()-(7*(r<a)+r-a)),n.setHours(0,0,0,0),n}function td(e,t,a){let n="eeee p";return!function(e,t,a){let[n,r]=to(a?.in,e,t);return+tu(n,a)==+tu(r,a)}(e,t,a)?e.getTime()>t.getTime()?"'下个'"+n:"'上个'"+n:n}let tm={lastWeek:td,yesterday:"'昨天' p",today:"'今天' p",tomorrow:"'明天' p",nextWeek:td,other:"PP p"},th={code:"zh-CN",formatDistance:(e,t,a)=>{let n,r=tl[e];if(n="string"==typeof r?r:1===t?r.one:r.other.replace("{{count}}",String(t)),a?.addSuffix)if(a.comparison&&a.comparison>0)return n+"内";else return n+"前";return n},formatLong:tc,formatRelative:(e,t,a,n)=>{let r=tm[e];return"function"==typeof r?r(t,a,n):r},localize:{ordinalNumber:(e,t)=>{let a=Number(e);switch(t?.unit){case"date":return a.toString()+"日";case"hour":return a.toString()+"时";case"minute":return a.toString()+"分";case"second":return a.toString()+"秒";default:return"第 "+a.toString()}},era:e9({values:{narrow:["前","公元"],abbreviated:["前","公元"],wide:["公元前","公元"]},defaultWidth:"wide"}),quarter:e9({values:{narrow:["1","2","3","4"],abbreviated:["第一季","第二季","第三季","第四季"],wide:["第一季度","第二季度","第三季度","第四季度"]},defaultWidth:"wide",argumentCallback:e=>e-1}),month:e9({values:{narrow:["一","二","三","四","五","六","七","八","九","十","十一","十二"],abbreviated:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],wide:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"]},defaultWidth:"wide"}),day:e9({values:{narrow:["日","一","二","三","四","五","六"],short:["日","一","二","三","四","五","六"],abbreviated:["周日","周一","周二","周三","周四","周五","周六"],wide:["星期日","星期一","星期二","星期三","星期四","星期五","星期六"]},defaultWidth:"wide"}),dayPeriod:e9({values:{narrow:{am:"上",pm:"下",midnight:"凌晨",noon:"午",morning:"早",afternoon:"下午",evening:"晚",night:"夜"},abbreviated:{am:"上午",pm:"下午",midnight:"凌晨",noon:"中午",morning:"早晨",afternoon:"中午",evening:"晚上",night:"夜间"},wide:{am:"上午",pm:"下午",midnight:"凌晨",noon:"中午",morning:"早晨",afternoon:"中午",evening:"晚上",night:"夜间"}},defaultWidth:"wide",formattingValues:{narrow:{am:"上",pm:"下",midnight:"凌晨",noon:"午",morning:"早",afternoon:"下午",evening:"晚",night:"夜"},abbreviated:{am:"上午",pm:"下午",midnight:"凌晨",noon:"中午",morning:"早晨",afternoon:"中午",evening:"晚上",night:"夜间"},wide:{am:"上午",pm:"下午",midnight:"凌晨",noon:"中午",morning:"早晨",afternoon:"中午",evening:"晚上",night:"夜间"}},defaultFormattingWidth:"wide"})},match:{ordinalNumber:tt({matchPattern:/^(第\s*)?\d+(日|时|分|秒)?/i,parsePattern:/\d+/i,valueCallback:e=>parseInt(e,10)}),era:te({matchPatterns:{narrow:/^(前)/i,abbreviated:/^(前)/i,wide:/^(公元前|公元)/i},defaultMatchWidth:"wide",parsePatterns:{any:[/^(前)/i,/^(公元)/i]},defaultParseWidth:"any"}),quarter:te({matchPatterns:{narrow:/^[1234]/i,abbreviated:/^第[一二三四]刻/i,wide:/^第[一二三四]刻钟/i},defaultMatchWidth:"wide",parsePatterns:{any:[/(1|一)/i,/(2|二)/i,/(3|三)/i,/(4|四)/i]},defaultParseWidth:"any",valueCallback:e=>e+1}),month:te({matchPatterns:{narrow:/^(一|二|三|四|五|六|七|八|九|十[二一]?)/i,abbreviated:/^(一|二|三|四|五|六|七|八|九|十[二一]?|\d|1[0-2])月/i,wide:/^(一|二|三|四|五|六|七|八|九|十[二一]?)月/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^一/i,/^二/i,/^三/i,/^四/i,/^五/i,/^六/i,/^七/i,/^八/i,/^九/i,/^十(?!(一|二))/i,/^十一/i,/^十二/i],any:[/^(一|1(?!\d))/i,/^(二|2)/i,/^(三|3)/i,/^(四|4)/i,/^(五|5)/i,/^(六|6)/i,/^(七|7)/i,/^(八|8)/i,/^(九|9)/i,/^(十(?!(一|二))|10)/i,/^(十一|11)/i,/^(十二|12)/i]},defaultParseWidth:"any"}),day:te({matchPatterns:{narrow:/^[一二三四五六日]/i,short:/^[一二三四五六日]/i,abbreviated:/^周[一二三四五六日]/i,wide:/^星期[一二三四五六日]/i},defaultMatchWidth:"wide",parsePatterns:{any:[/日/i,/一/i,/二/i,/三/i,/四/i,/五/i,/六/i]},defaultParseWidth:"any"}),dayPeriod:te({matchPatterns:{any:/^(上午?|下午?|午夜|[中正]午|早上?|下午|晚上?|凌晨|)/i},defaultMatchWidth:"any",parsePatterns:{any:{am:/^上午?/i,pm:/^下午?/i,midnight:/^午夜/i,noon:/^[中正]午/i,morning:/^早上/i,afternoon:/^下午/i,evening:/^晚上?/i,night:/^凌晨/i}},defaultParseWidth:"any"})},options:{weekStartsOn:1,firstWeekContainsDate:4}};function tp({value:e,className:t}){var n,r;let{locale:s}=(0,et.useLocale)();if(null==e||""===e)return(0,a.jsx)("span",{className:"text-foreground-muted",children:"—"});let o=e instanceof Date?e:new Date(e);if(Number.isNaN(o.getTime()))return(0,a.jsx)("span",{className:"text-foreground-muted",children:"—"});let i=(n=o,r={addSuffix:!0,locale:"zh"===s?th:ta},function(e,t,a){var n;let r,s=a?.locale??tn.locale??ta,o=ti(e,t);if(isNaN(o))throw RangeError("Invalid time value");let i=Object.assign({},a,{addSuffix:a?.addSuffix,comparison:o}),[l,c]=to(a?.in,...o>0?[t,e]:[e,t]),u=(n=void 0,e=>{let t=(n?Math[n]:Math.trunc)(e);return 0===t?0:t})((tr(c)-tr(l))/1e3),d=Math.round((u-(ts(c)-ts(l))/1e3)/60);if(d<2)if(a?.includeSeconds)if(u<5)return s.formatDistance("lessThanXSeconds",5,i);else if(u<10)return s.formatDistance("lessThanXSeconds",10,i);else if(u<20)return s.formatDistance("lessThanXSeconds",20,i);else if(u<40)return s.formatDistance("halfAMinute",0,i);else if(u<60)return s.formatDistance("lessThanXMinutes",1,i);else return s.formatDistance("xMinutes",1,i);else if(0===d)return s.formatDistance("lessThanXMinutes",1,i);else return s.formatDistance("xMinutes",d,i);if(d<45)return s.formatDistance("xMinutes",d,i);if(d<90)return s.formatDistance("aboutXHours",1,i);if(d<1440){let e=Math.round(d/60);return s.formatDistance("aboutXHours",e,i)}if(d<2520)return s.formatDistance("xDays",1,i);else if(d<43200){let e=Math.round(d/1440);return s.formatDistance("xDays",e,i)}else if(d<86400)return r=Math.round(d/43200),s.formatDistance("aboutXMonths",r,i);if((r=function(e,t,a){var n,r;let s,o,i,l,[c,u,d]=to(void 0,e,e,t),m=ti(u,d),h=Math.abs(function(e,t,a){let[n,r]=to(void 0,e,t);return 12*(n.getFullYear()-r.getFullYear())+(n.getMonth()-r.getMonth())}(u,d));if(h<1)return 0;1===u.getMonth()&&u.getDate()>27&&u.setDate(30),u.setMonth(u.getMonth()-m*h);let p=ti(u,d)===-m;+(s=tr(c,void 0),n=void 0,(o=tr(s,n?.in)).setHours(23,59,59,999),o)==+(r=void 0,l=(i=tr(s,r?.in)).getMonth(),i.setFullYear(i.getFullYear(),l+1,0),i.setHours(23,59,59,999),i)&&1===h&&1===ti(c,d)&&(p=!1);let g=m*(h-p);return 0===g?0:g}(c,l))<12){let e=Math.round(d/43200);return s.formatDistance("xMonths",e,i)}{let e=r%12,t=Math.trunc(r/12);return e<3?s.formatDistance("aboutXYears",t,i):e<9?s.formatDistance("overXYears",t,i):s.formatDistance("almostXYears",t+1,i)}}(n,e5(n,Date.now()),r)),l=o.toLocaleString();return(0,a.jsx)(ec.TooltipProvider,{delayDuration:250,children:(0,a.jsxs)(ec.Tooltip,{children:[(0,a.jsx)(ec.TooltipTrigger,{asChild:!0,children:(0,a.jsx)("span",{className:t,children:i})}),(0,a.jsx)(ec.TooltipContent,{side:"top",className:"font-mono text-xs",children:l})]})})}var tg=e.i(460435),tf=e.i(601461);let tx=t.default.env.NEXT_PUBLIC_URL_PREFIX||"",tb={"30m":18e5,"1h":36e5,"3h":108e5,"24h":864e5,"7d":6048e5,"30d":2592e6,all:1/0},ty=[20,50,100],tv=[5,10,30,60],tj=["traceId","agent","status","userTags","systemTags","task","tokens","time","actions"],tw={traceId:130,agent:170,status:110,userTags:220,systemTags:220,tokens:110,time:120,actions:220},tk={traceId:90,agent:100,status:80,userTags:150,systemTags:140,tokens:70,time:80,actions:160},tN={traceId:!0,agent:!0,status:!0,userTags:!0,systemTags:!1,task:!0,tokens:!0,time:!0,actions:!0},tS="trace.columnWidths.v1",tC="trace.columnVisibility.v1";function tP(e){return e.agentName?.trim()||(0,ea.getPrimaryExecutionAgentName)(e)}function tT(e){let t=String(e.trace_status??e.traceStatus??"").trim().toLowerCase();return"running"===t||"success"===t||"failed"===t?t:e.trace_completed_at||e.traceCompletedAt?"success":"running"}function tM(e){let t=String(e||"").trim();switch(t.toLowerCase()){case"langfuse-langgraph":return"Langfuse-Langgraph";case"opencode":return"OpenCode";case"claude":case"claudecode":return"Claude Code";case"hermes":return"Hermes";default:return t}}function tz(e){if(!e&&0!==e)return"-";let t=new Date(e);return t.getFullYear()+"/"+String(t.getMonth()+1).padStart(2,"0")+"/"+String(t.getDate()).padStart(2,"0")+" "+String(t.getHours()).padStart(2,"0")+":"+String(t.getMinutes()).padStart(2,"0")+":"+String(t.getSeconds()).padStart(2,"0")+"."+String(t.getMilliseconds()).padStart(3,"0")}function tA(e,t){return Math.min(640,Math.max(tk[e],Math.round(t)))}function tD({colKey:e,currentWidth:t,onResize:n}){return(0,a.jsx)("span",{onMouseDown:a=>{a.preventDefault(),a.stopPropagation();let r=a.clientX,s=a=>{n(e,t+(a.clientX-r))},o=()=>{window.removeEventListener("mousemove",s),window.removeEventListener("mouseup",o),document.body.style.cursor="",document.body.style.userSelect=""};document.body.style.cursor="col-resize",document.body.style.userSelect="none",window.addEventListener("mousemove",s),window.addEventListener("mouseup",o)},onClick:e=>e.stopPropagation(),onKeyDown:e=>e.stopPropagation(),role:"separator","aria-orientation":"vertical","aria-label":`Resize column ${e}`,className:"absolute right-0 top-0 z-10 flex h-full w-2 -mr-1 items-center justify-center cursor-col-resize group/handle",children:(0,a.jsx)("span",{className:"h-4 w-px bg-border group-hover/handle:bg-primary group-hover/handle:w-0.5 transition-colors","aria-hidden":!0})})}function tR(){return(0,a.jsx)(s.Suspense,{fallback:(0,a.jsxs)("div",{className:"flex flex-col gap-3 px-6 py-6",children:[(0,a.jsx)(el,{className:"h-9 w-48"}),(0,a.jsx)(el,{className:"h-24 w-full"}),(0,a.jsx)(el,{className:"h-96 w-full"})]}),children:(0,a.jsx)(tO,{})})}function tO(){let{user:e}=(0,ee.useAuth)(),{t,locale:n}=(0,et.useLocale)(),[r,o]=(0,s.useState)([]),[i,l]=(0,s.useState)(!0),[u,d]=(0,s.useState)(null),[m,h]=(0,s.useState)([]),[p,g]=(0,j.useQueryState)("time",j.parseAsString.withDefault("all")),[y,v]=(0,j.useQueryState)("status",j.parseAsString.withDefault("all")),[w,S]=(0,j.useQueryState)("framework",j.parseAsString.withDefault("all")),[C,P]=(0,j.useQueryState)("agent",j.parseAsString.withDefault("all")),[T,z]=(0,j.useQueryState)("skill",j.parseAsString.withDefault("all")),[A,D]=(0,j.useQueryState)("bizTag",j.parseAsString.withDefault("all")),[R,I]=(0,j.useQueryState)("ownership",j.parseAsString.withDefault("user")),[E,W]=(0,j.useQueryState)("scope",j.parseAsString.withDefault("root")),[F,$]=(0,j.useQueryState)("sort",j.parseAsString.withDefault("timestamp")),[L,_]=(0,j.useQueryState)("dir",j.parseAsString.withDefault("desc")),[U,X]=(0,j.useQueryState)("page",j.parseAsInteger.withDefault(1)),[K,J]=(0,j.useQueryState)("size",j.parseAsInteger.withDefault(20)),[q,Q]=(0,j.useQueryState)("taskId",j.parseAsString),[Y,V]=(0,j.useQueryState)("q",j.parseAsString.withDefault("")),[G,Z]=(0,s.useState)(!1),[ea,en]=(0,j.useQueryState)("f",j.parseAsString.withDefault("")),er=(0,s.useMemo)(()=>{if(!ea)return[];try{let e=JSON.parse(ea);return Array.isArray(e)?e:[]}catch{return[]}},[ea]),es=(0,s.useCallback)(e=>en(e.length?JSON.stringify(e):null),[en]),eo=(0,s.useCallback)(e=>V(e||null),[V]),ei=(0,s.useCallback)(()=>{e?(0,O.apiFetch)(`/api/tags?user=${encodeURIComponent(e)}`).then(e=>e.ok?e.json():[]).then(e=>h(Array.isArray(e)?e:[])).catch(()=>h([])):h([])},[e]);(0,s.useEffect)(()=>{ei()},[ei]);let ec=(0,s.useCallback)((e,t)=>{o(a=>a.map(a=>a.upload_id===e||a.task_id===e?{...a,userTags:t}:a)),d(a=>a&&(a.upload_id===e||a.task_id===e)?{...a,userTags:t}:a)},[]),em=(0,s.useCallback)(e=>{h(t=>(t.some(t=>t.id===e.id)?t.map(t=>t.id===e.id?e:t):[...t,e]).slice().sort((e,t)=>e.kind===t.kind?e.name.localeCompare(t.name):e.kind.localeCompare(t.kind)))},[]),eh=(0,s.useMemo)(()=>[{value:"all",label:"zh"===n?"全部业务标签":"All business tags"},...m.filter(e=>"business"===e.kind).map(e=>({value:e.id,label:e.usageCount?`${e.name} (${e.usageCount})`:e.name}))],[m,n]),ep=(0,s.useMemo)(()=>({traceId:t("tracePage.columnTraceId"),agent:t("tracePage.columnAgent"),status:t("tracePage.columnStatus"),userTags:t("tracePage.columnUserTags"),systemTags:t("tracePage.columnSystemTags"),task:t("tracePage.columnTask"),tokens:t("tracePage.columnTokens"),time:t("tracePage.columnTime"),actions:t("tracePage.columnActions")}),[t]),{widths:eg,setColumnWidth:ef,resetColumnWidths:ex,isCustomized:eb}=function(){let[e,t]=(0,s.useState)(tw);(0,s.useEffect)(()=>{try{let e=window.localStorage.getItem(tS);if(!e)return;let a=JSON.parse(e);t(e=>{let t={...e};return Object.keys(e).forEach(e=>{let n=a[e];"number"==typeof n&&Number.isFinite(n)&&(t[e]=tA(e,n))}),"number"==typeof a.tags&&Number.isFinite(a.tags)&&(t.systemTags=tA("systemTags",a.tags)),t})}catch{}},[]);let a=(0,s.useCallback)((e,a)=>{t(t=>{let n={...t,[e]:tA(e,a)};try{window.localStorage.setItem(tS,JSON.stringify(n))}catch{}return n})},[]),n=(0,s.useCallback)(()=>{t(tw);try{window.localStorage.removeItem(tS)}catch{}},[]),r=(0,s.useMemo)(()=>Object.keys(tw).some(t=>e[t]!==tw[t]),[e]);return{widths:e,setColumnWidth:a,resetColumnWidths:n,isCustomized:r}}(),{columnVisibility:ey,setColumnVisible:ev,resetColumnVisibility:ej,isVisibilityCustomized:ew}=function(){let[e,t]=(0,s.useState)(tN);(0,s.useEffect)(()=>{try{let e=window.localStorage.getItem(tC);if(!e)return;let a=JSON.parse(e);t(e=>{let t={...e};return tj.forEach(e=>{"boolean"==typeof a[e]&&(t[e]=a[e])}),t})}catch{}},[]);let a=(0,s.useCallback)((e,a)=>{t(t=>{let n={...t,[e]:a};try{window.localStorage.setItem(tC,JSON.stringify(n))}catch{}return n})},[]),n=(0,s.useCallback)(()=>{t(tN);try{window.localStorage.removeItem(tC)}catch{}},[]),r=(0,s.useMemo)(()=>tj.some(t=>e[t]!==tN[t]),[e]);return{columnVisibility:e,setColumnVisible:a,resetColumnVisibility:n,isVisibilityCustomized:r}}(),ek=(0,s.useMemo)(()=>Object.keys(tw).filter(e=>ey[e]).reduce((e,t)=>e+eg[t],0)+280*!!ey.task,[eg,ey]),eN=(0,s.useCallback)(e=>{d(e),Q(e&&(e.task_id||e.upload_id)||null)},[Q]),eS=(0,s.useRef)(null);(0,s.useEffect)(()=>{if(!q){u&&d(null),eS.current=null;return}let e=r.find(e=>e.task_id===q||e.upload_id===q);if(e){u!==e&&d(e);return}eS.current!==q&&(eS.current=q,(0,O.apiFetch)(`/api/observe/data?taskId=${encodeURIComponent(q)}&includeEvaluations=0&skipAutoEvalReady=1`).then(e=>e.json()).then(e=>{Array.isArray(e)&&e.length>0&&d(e[0])}).catch(()=>{eS.current===q&&(eS.current=null)}))},[q,r]),(0,s.useEffect)(()=>{if(!e)return;l(!0);let t="subagent"===E?"&onlySubagents=1":"all"===E?"&includeSubagents=1":"",a="all"!==T?`&skill=${encodeURIComponent(T)}`:"",n=Y?`&query=${encodeURIComponent(Y)}`:"",r=er.length?`&filters=${encodeURIComponent(JSON.stringify(er))}`:"",s="all"!==A?`&bizTag=${encodeURIComponent(A)}`:"";(0,O.apiFetch)(`/api/observe/data?user=${encodeURIComponent(e)}&includeEvaluations=0&fields=light&includeTags=1&skipAutoEvalReady=1${t}${a}${n}${r}${s}`).then(e=>e.json()).then(e=>o(Array.isArray(e)?e:[])).catch(()=>o([])).finally(()=>l(!1))},[e,E,T,A,Y,ea]);let eC=(0,s.useMemo)(()=>{let e=Date.now(),t=tb[p]??1/0;return r.filter(a=>!("all"!==C&&""!==C&&tP(a)!==C||t!==1/0&&e-("string"==typeof a.timestamp?Date.parse(a.timestamp):Number(a.timestamp))>t)&&("all"===w||a.framework===w)&&("all"===y||y===tT(a))&&("all"===R||(a.agentOwnership??"user")===R)&&!0).sort((e,t)=>{let a=0;switch(F){case"timestamp":a=("string"==typeof e.timestamp?Date.parse(e.timestamp):Number(e.timestamp))-("string"==typeof t.timestamp?Date.parse(t.timestamp):Number(t.timestamp));break;case"agent":a=(e.agent||"").localeCompare(t.agent||"");break;case"status":{let n={running:0,failed:1,success:2};a=n[tT(e)]-n[tT(t)];break}case"latency":a=((0,tf.latencySecondsToMs)(e.latency)??0)-((0,tf.latencySecondsToMs)(t.latency)??0);break;case"tokens":a=(e.tokens||0)-(t.tokens||0);break;case"cost":a=(e.cost||0)-(t.cost||0)}return"asc"===L?a:-a})},[r,p,w,y,C,R,F,L]);(0,s.useEffect)(()=>{1!==U&&X(1)},[p,w,y,C,T,A,R,Y,ea,F,L,K]);let eP=e=>{e===F?_("asc"===L?"desc":"asc"):($(e),_("timestamp"===e||"tokens"===e?"desc":"asc"))},eT=(0,s.useMemo)(()=>{let e=eC.length,t=eC.filter(e=>"failed"===tT(e)).length,a=e?eC.reduce((e,t)=>e+((0,tf.latencySecondsToMs)(t.latency)??0),0)/e:0,n=eC.reduce((e,t)=>e+(t.tool_call_error_count||0),0),r=eC.reduce((e,t)=>e+(t.tool_call_count||0),0);return{total:e,failedCount:t,avgLatency:a,errRate:r?Math.round(n/r*1e3)/10:0}},[eC]);eC.length;let eM=(0,s.useMemo)(()=>eC.slice((U-1)*K,U*K),[eC,U,K]),ez="all"!==R||"all"!==C||"all"!==T||"all"!==A||"all"!==y||"all"!==p||"all"!==w||"root"!==E||""!==Y||er.length>0,eA=()=>{I("all"),P("all"),z("all"),D("all"),v("all"),g("all"),S("all"),W("root"),V(null),es([])},eD=(0,s.useMemo)(()=>{let e=new Set;return r.forEach(t=>t.framework&&e.add(t.framework)),Array.from(e).sort()},[r]),eR=(0,s.useMemo)(()=>{let e=new Set;return r.forEach(t=>{let a=tP(t);a&&e.add(a)}),Array.from(e).sort((e,t)=>e.localeCompare(t))},[r]),eO=[{value:"all",label:t("nav.allOwnership")},{value:"user",label:t("nav.userAgent")},{value:"system",label:t("nav.systemAgent")}],eI=[{value:"all",label:t("common.all")},{value:"running",label:t("tracePage.statusRunning")},{value:"success",label:t("tracePage.statusSuccess")},{value:"failed",label:t("tracePage.statusFailed")}],eE=[{value:"all",label:t("common.allTime")},{value:"7d",label:t("nav.last7Days")},{value:"24h",label:t("topbar.last24h")},{value:"1h",label:t("nav.last1Hour")},{value:"30m",label:t("nav.last30Min")}],eW=[{value:"all",label:t("common.all")},...eD.map(e=>({value:e,label:e}))],eF=[{value:"all",label:t("tracePage.filterMainAgentAll")},...eR.map(e=>({value:e,label:e}))];return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(k.AppTopBar,{title:(0,a.jsx)(tg.Term,{id:"trace",label:t("nav.trace")}),actions:void 0,showDefaultActions:!1}),(0,a.jsx)(N.PageContainer,{children:u?(0,a.jsx)(tI,{execution:u,onBack:()=>eN(null)}):(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("div",{className:"grid grid-cols-2 md:grid-cols-4 gap-3 mb-4",children:[(0,a.jsx)(tF,{label:(0,a.jsx)(tg.Term,{id:"trace",label:t("tracePage.statTotal")}),value:eT.total.toLocaleString()}),(0,a.jsx)(tF,{label:(0,a.jsx)(tg.Term,{id:"fault-item",label:t("tracePage.statFailed")}),value:String(eT.failedCount),accent:eT.failedCount>0?"error":void 0}),(0,a.jsx)(tF,{label:t("tracePage.statAvgLatency"),value:(0,tf.formatDurationMs)(eT.avgLatency)}),(0,a.jsx)(tF,{label:(0,a.jsx)(tg.Term,{id:"tool-error-rate",label:t("tracePage.statToolErrorRate"),align:"end"}),value:`${eT.errRate}%`})]}),e&&(0,a.jsx)("div",{className:"mb-3",children:(0,a.jsx)(B,{clauses:er,onChange:es,search:Y,onSearchChange:eo,user:e})}),(0,a.jsxs)("div",{className:"mb-2 flex flex-wrap items-center gap-2",children:[(0,a.jsxs)(M.Button,{variant:"outline",size:"sm",className:"h-7 gap-1.5 text-xs",onClick:()=>Z(e=>!e),children:[(0,a.jsx)(x.SlidersHorizontal,{className:"size-3.5"}),G?"zh"===n?"隐藏过滤":"Hide filters":"zh"===n?"过滤":"Show filters"]}),(0,a.jsx)("span",{"aria-hidden":!0,className:"h-5 w-px shrink-0 self-center bg-border"}),(0,a.jsx)(eu.Select,{label:t("nav.filterAgentOwnership"),value:R,onChange:I,options:eO,active:"all"!==R}),(0,a.jsx)(eu.Select,{label:t("tracePage.filterStatus"),value:y,onChange:v,options:eI,active:"all"!==y}),(0,a.jsx)(eu.Select,{label:t("tracePage.filterTime"),value:p,onChange:g,options:eE,active:"all"!==p}),(0,a.jsx)(eu.Select,{label:t("tracePage.filterFramework"),value:w,onChange:S,options:eW,active:"all"!==w}),(0,a.jsx)(eu.Select,{label:t("tracePage.filterBusinessTag"),value:A,onChange:D,options:eh,active:"all"!==A}),(0,a.jsx)(eu.Select,{label:t("tracePage.filterMainAgent"),value:C,onChange:P,options:eF,active:"all"!==C}),(0,a.jsx)(eu.Select,{label:"zh"===n?"范围":"Scope",value:E,onChange:W,options:[{value:"root",label:"zh"===n?"仅主 Agent":"Root only"},{value:"subagent",label:"zh"===n?"仅子 Agent":"Sub-agents only"},{value:"all",label:"zh"===n?"主 + 子 Agent":"Root + sub-agents"}],active:"root"!==E}),ez&&(0,a.jsxs)(M.Button,{variant:"ghost",size:"sm",onClick:eA,className:"ml-auto h-7 gap-1 text-xs text-foreground-muted",children:[(0,a.jsx)(c.X,{className:"size-3"}),t("tracePage.resetFilters")]})]}),(0,a.jsxs)("div",{className:"flex-1 min-h-0 flex gap-3",children:[G&&(0,a.jsxs)("aside",{className:"w-60 shrink-0 overflow-auto rounded-md border border-card-border bg-card",children:[(0,a.jsx)("div",{className:"px-3 py-2 border-b border-card-border",children:(0,a.jsx)("span",{className:"text-sm font-semibold",children:"zh"===n?"过滤器":"Filters"})}),e&&(0,a.jsx)("div",{className:"p-3",children:(0,a.jsx)(H,{clauses:er,onChange:es,user:e})})]}),(0,a.jsxs)("div",{className:"flex-1 min-w-0 flex flex-col",children:[(0,a.jsxs)("div",{className:"flex items-center justify-between mb-2",children:[(0,a.jsxs)("h2",{className:"text-sm font-semibold text-foreground",children:[t("tracePage.listTitle"),(0,a.jsx)("span",{className:"ml-2 text-foreground-muted font-normal tabular-nums",children:eC.length})]}),(0,a.jsxs)("div",{className:"flex items-center gap-3",children:[(eb||ew)&&(0,a.jsxs)(M.Button,{variant:"ghost",size:"sm",onClick:()=>{ex(),ej()},className:"h-7 px-2 text-xs text-foreground-muted gap-1",children:[(0,a.jsx)(f.RotateCcw,{className:"size-3","aria-hidden":!0}),t("tracePage.resetColumns")]}),(0,a.jsxs)(eV.DropdownMenu,{children:[(0,a.jsx)(eV.DropdownMenuTrigger,{asChild:!0,children:(0,a.jsxs)(M.Button,{variant:"outline",size:"sm",className:"h-7 px-2 text-xs gap-1.5",children:[(0,a.jsx)(b,{className:"size-3.5","aria-hidden":!0}),t("tracePage.columnSettings")]})}),(0,a.jsxs)(eV.DropdownMenuContent,{align:"end",className:"w-44",children:[(0,a.jsx)(eV.DropdownMenuLabel,{children:t("tracePage.columnSettings")}),tj.map(e=>(0,a.jsx)(eV.DropdownMenuCheckboxItem,{checked:ey[e],onCheckedChange:t=>ev(e,!0===t),onSelect:e=>e.preventDefault(),children:ep[e]},e)),(0,a.jsx)(eV.DropdownMenuSeparator,{}),(0,a.jsxs)(eV.DropdownMenuItem,{onSelect:()=>{ex(),ej()},children:[(0,a.jsx)(f.RotateCcw,{className:"size-3.5","aria-hidden":!0}),t("tracePage.resetColumns")]})]})]}),(0,a.jsx)("span",{className:"text-xs text-foreground-muted",children:t("tracePage.listHint")})]})]}),(0,a.jsx)(N.PageContent,{className:"flex flex-col",children:(0,a.jsx)("div",{className:"flex-1 min-h-0 rounded-md border border-card-border bg-card overflow-auto",children:i?(0,a.jsx)("div",{className:"p-4 space-y-2",children:[0,1,2,3,4].map(e=>(0,a.jsx)(el,{className:"h-8 w-full"},e))}):0===eM.length?(0,a.jsx)(eZ.EmptyState,{title:t("tracePage.emptyTitle"),description:ez?t("tracePage.emptyDescription"):void 0,action:ez?(0,a.jsx)(M.Button,{variant:"outline",size:"sm",onClick:eA,children:t("tracePage.resetFilters")}):void 0}):(0,a.jsxs)("table",{className:"w-full table-fixed text-sm",style:{minWidth:ek},children:[(0,a.jsxs)("colgroup",{children:[ey.traceId&&(0,a.jsx)("col",{style:{width:eg.traceId}}),ey.agent&&(0,a.jsx)("col",{style:{width:eg.agent}}),ey.status&&(0,a.jsx)("col",{style:{width:eg.status}}),ey.userTags&&(0,a.jsx)("col",{style:{width:eg.userTags}}),ey.systemTags&&(0,a.jsx)("col",{style:{width:eg.systemTags}}),ey.task&&(0,a.jsx)("col",{}),ey.tokens&&(0,a.jsx)("col",{style:{width:eg.tokens}}),ey.time&&(0,a.jsx)("col",{style:{width:eg.time}}),ey.actions&&(0,a.jsx)("col",{style:{width:eg.actions}})]}),(0,a.jsx)("thead",{className:"sticky top-0 z-10",children:(0,a.jsxs)("tr",{className:"bg-background-secondary text-left",children:[ey.traceId&&(0,a.jsx)(t$,{colKey:"traceId",currentWidth:eg.traceId,onResize:ef,children:(0,a.jsx)(tg.Term,{id:"trace",label:t("tracePage.columnTraceId")})}),ey.agent&&(0,a.jsx)(tL,{sortKey:"agent",currentKey:F,dir:L,onSort:eP,colKey:"agent",currentWidth:eg.agent,onResize:ef,children:(0,a.jsx)(tg.Term,{id:"agent",label:t("tracePage.columnAgent")})}),ey.status&&(0,a.jsx)(tL,{sortKey:"status",currentKey:F,dir:L,onSort:eP,colKey:"status",currentWidth:eg.status,onResize:ef,children:(0,a.jsx)(tg.Term,{id:"chain-status",label:t("tracePage.columnStatus")})}),ey.userTags&&(0,a.jsx)(t$,{colKey:"userTags",currentWidth:eg.userTags,onResize:ef,children:t("tracePage.columnUserTags")}),ey.systemTags&&(0,a.jsx)(t$,{colKey:"systemTags",currentWidth:eg.systemTags,onResize:ef,children:t("tracePage.columnSystemTags")}),ey.task&&(0,a.jsx)(t$,{children:t("tracePage.columnTask")}),ey.tokens&&(0,a.jsx)(tL,{sortKey:"tokens",currentKey:F,dir:L,onSort:eP,colKey:"tokens",currentWidth:eg.tokens,onResize:ef,children:(0,a.jsx)(tg.Term,{id:"tokens",label:t("tracePage.columnTokens")})}),ey.time&&(0,a.jsx)(tL,{sortKey:"timestamp",currentKey:F,dir:L,onSort:eP,colKey:"time",currentWidth:eg.time,onResize:ef,children:t("tracePage.columnTime")}),ey.actions&&(0,a.jsx)(t$,{align:"right",colKey:"actions",currentWidth:eg.actions,onResize:ef,children:t("tracePage.columnActions")})]})}),(0,a.jsx)("tbody",{children:eM.map((e,t)=>(0,a.jsx)(t_,{execution:e,columnVisibility:ey,availableTags:m,onTagsChanged:ec,onTagCreated:em,onClick:()=>eN(e)},(e.task_id||e.upload_id||t)+""))})]})})}),eC.length>0&&(0,a.jsx)(N.PageFooter,{className:"border-0 mt-3 pt-0 shrink-0",children:(0,a.jsx)(ed.Pagination,{className:"w-full",page:U,pageSize:K,total:eC.length,onPageChange:X,onPageSizeChange:J,pageSizes:ty,pageSizeLabel:e=>t("tracePage.pageSize",{n:String(e)}),summary:(e,a,n)=>t("tracePage.pageSummary",{start:String(e),end:String(a),total:String(n)})})})]})]})]})})]})}function tI({execution:e,onBack:t}){let{t:c,locale:u}=(0,et.useLocale)(),d=(0,r.useRouter)(),m=(0,r.useSearchParams)(),[h,p]=(0,s.useState)(null),[f,x]=(0,s.useState)(!1),b=e.task_id||e.upload_id||"",y=!!e.is_subagent,v=e.parent_execution_id||null,j=e.subagent_type||null,k=e.subagent_name||null,N=(0,s.useCallback)(e=>{if(!e)return;let t=new URLSearchParams(m?.toString()??"");t.set("taskId",e),d.push(`${window.location.pathname}?${t.toString()}`,{scroll:!1})},[d,m]),C=(0,s.useCallback)(async()=>{if(v)try{let e=await (0,O.apiFetch)(`/api/observe/data?executionId=${encodeURIComponent(v)}&includeEvaluations=0`);if(!e.ok)return;let t=await e.json(),a=Array.isArray(t)?t[0]:t?.data?.[0]||t,n=a?.task_id||a?.upload_id;n&&N(n)}catch{}},[v,N]),P=tT(e),[T,z]=(0,s.useState)("running"===P),[D,R]=(0,s.useState)(5),[I,E]=(0,s.useState)(0),W=(0,s.useRef)(null);(0,s.useEffect)(()=>{W.current=h},[h]);let F=(0,s.useCallback)((e=!1)=>{if(!b)return;let t=!W.current;!e&&t&&x(!0),(0,O.apiFetch)(`/api/observe/session?taskId=${encodeURIComponent(b)}`).then(e=>e.ok?e.json():{error:"Fetch failed"}).then(e=>{p(e),E(0)}).catch(()=>{!e&&t&&p({error:"Network error"})}).finally(()=>{!e&&t&&x(!1)})},[b]);(0,s.useEffect)(()=>{F(!1)},[F]),(0,s.useEffect)(()=>{if(!T||"running"!==P)return;let e=setInterval(()=>F(!0),1e3*D);return()=>clearInterval(e)},[T,D,F,P]),(0,s.useEffect)(()=>{let e=setInterval(()=>E(e=>e+1),1e3);return()=>clearInterval(e)},[]);let{framework:$,latency:L,tokens:_,cost:B}=e,U="running"===P,X=!f&&!!h&&!h.error;return(0,a.jsxs)("div",{className:"flex flex-col h-full min-h-0",children:[(0,a.jsxs)("div",{className:"rounded-md border border-border bg-card p-3 mb-3 flex flex-wrap items-center gap-2",children:[(0,a.jsxs)(M.Button,{variant:"ghost",size:"sm",onClick:t,className:"text-foreground-muted h-7 px-2",children:[(0,a.jsx)(o.ArrowLeft,{className:"size-3.5","aria-hidden":!0}),c("tracePage.backToList")]}),y&&v&&(0,a.jsxs)(M.Button,{variant:"ghost",size:"sm",onClick:C,className:"text-foreground-muted h-7 px-2",title:"zh"===u?"返回父 Agent 执行":"Back to parent agent execution",children:[(0,a.jsx)(o.ArrowLeft,{className:"size-3.5","aria-hidden":!0}),"zh"===u?"父执行":"Parent"]}),(0,a.jsx)(ei,{orientation:"vertical",className:"h-5"}),y&&(0,a.jsxs)("span",{title:k||"",className:"text-[10px] font-bold tracking-wider px-1.5 py-0.5 rounded-sm bg-primary/10 text-primary border border-primary/30 shrink-0",children:["SUB-AGENT",j?` \xb7 ${j}`:""]}),(0,a.jsx)(e1,{value:b,head:8,tail:6}),(0,a.jsx)(eG.StatusBadge,{status:"running"===P?"running":"failed"===P?"error":"success",label:c("running"===P?"tracePage.statusRunning":"failed"===P?"tracePage.statusFailed":"tracePage.statusNormal")}),$&&(0,a.jsx)(tH,{variant:"framework",icon:g.Terminal,children:tM($)}),"number"==typeof _&&_>0||"number"==typeof L&&L>0||"number"==typeof B&&B>0?(0,a.jsx)(ei,{orientation:"vertical",className:"h-5"}):null,"number"==typeof _&&_>0&&(0,a.jsx)(tW,{label:(0,a.jsx)(tg.Term,{id:"tokens",label:c("tracePage.metricTokens")}),value:_.toLocaleString()}),"number"==typeof L&&L>0&&(0,a.jsx)(tW,{label:c("tracePage.metricDuration"),value:(0,tf.formatLatencySeconds)(L)}),"number"==typeof B&&B>0&&(0,a.jsx)(tW,{label:c("tracePage.metricCost"),value:`$${B.toFixed(4)}`}),(0,a.jsxs)("div",{className:"ml-auto flex flex-wrap items-center gap-2",children:[(0,a.jsx)(ec.TooltipProvider,{delayDuration:250,children:(0,a.jsxs)(ec.Tooltip,{children:[(0,a.jsx)(ec.TooltipTrigger,{asChild:!0,children:(0,a.jsxs)(M.Button,{variant:T&&U?"default":"outline",size:"sm",disabled:!U,onClick:()=>U&&z(e=>!e),"aria-pressed":T&&U,className:"h-7 px-2.5 text-xs",children:[(0,a.jsx)(l.RefreshCw,{className:(0,A.cn)("size-3.5",T&&U&&"animate-spin")}),c(T&&U?"tracePage.autoRefresh":"tracePage.paused")]})}),(0,a.jsx)(ec.TooltipContent,{side:"bottom",className:"text-xs",children:c(U?"tracePage.autoRefresh":"tracePage.autoRefreshUnavailable")})]})}),T&&U&&(0,a.jsx)(eu.Select,{value:String(D),onChange:e=>R(Number(e)),options:tv.map(e=>({value:String(e),label:`${e}s`})),"aria-label":c("tracePage.refreshInterval")}),(0,a.jsx)("span",{className:"text-xs text-foreground-muted whitespace-nowrap tabular-nums min-w-[36px]",children:0===I?c("tracePage.justNow"):c("tracePage.secondsAgo",{s:String(I)})}),(0,a.jsx)(M.Button,{variant:"outline",size:"icon",onClick:()=>F(!0),"aria-label":c("tracePage.refreshNow"),className:"size-7",children:(0,a.jsx)(l.RefreshCw,{className:"size-3.5"})}),(0,a.jsx)(ei,{orientation:"vertical",className:"h-5"}),(0,a.jsx)(M.Button,{variant:"default",size:"sm",asChild:!0,className:"h-7 text-xs",children:(0,a.jsx)(n.default,{href:`${tx}/fault?taskId=${b}`,children:c("tracePage.diagnosis")})}),(0,a.jsxs)(M.Button,{variant:"outline",size:"sm",onClick:()=>{if(h&&!h.error)try{let e=function(e){if(!e)return e;let t=JSON.parse(JSON.stringify(e));return t.startTime&&(t.startTime=tz(t.startTime)),Array.isArray(t.interactions)&&(t.interactions=t.interactions.map(e=>{let t={...e};return t.timestamp&&(t.timestamp=tz(t.timestamp)),t.message?.timestamp&&(t.message.timestamp=tz(t.message.timestamp)),t.timeInfo?.created&&(t.timeInfo.created=tz(t.timeInfo.created)),t})),t}(h),t=new Blob([JSON.stringify(e,null,2)],{type:"application/json;charset=utf-8"}),a=URL.createObjectURL(t),n=document.createElement("a");n.href=a,n.download=`trace-${b.replace(/[\\/:*?"<>|]+/g,"_").replace(/\s+/g,"_").slice(0,120)||"trace"}-session.json`,document.body.appendChild(n),n.click(),n.remove(),URL.revokeObjectURL(a),w.toast.success("zh"===u?"JSON 已开始下载":"JSON download started")}catch(e){console.error("[trace] download session json failed:",e),w.toast.error("zh"===u?"下载 JSON 失败":"Failed to download JSON")}},disabled:!X,title:X?"zh"===u?"下载会话数据(原始 JSON)":"Download session data raw JSON":"zh"===u?"会话数据加载后可下载":"Download available after session data loads",className:"h-7 text-xs",children:[(0,a.jsx)(i.Download,{className:"size-3.5","aria-hidden":!0}),"zh"===u?"保存trace":"Save trace"]})]})]}),"failed"===P&&e.failures&&e.failures.length>0&&(0,a.jsx)(tE,{failures:e.failures}),(0,a.jsx)("h2",{className:"text-sm font-semibold text-foreground mb-2",children:c("tracePage.executionTrace")}),(0,a.jsx)("div",{className:"min-h-[200px] flex-1 min-h-0",children:f?(0,a.jsxs)("div",{className:"rounded-md border border-card-border bg-card p-4 space-y-2",children:[(0,a.jsx)(el,{className:"h-6 w-1/2"}),(0,a.jsx)(el,{className:"h-6 w-3/4"}),(0,a.jsx)(el,{className:"h-6 w-2/3"}),(0,a.jsx)(el,{className:"h-6 w-1/2"})]}):h?.error?(0,a.jsx)("div",{className:"rounded-md border border-error-border bg-error-subtle text-error p-4 text-sm",role:"alert",children:h.error}):h?.interactions?.length>0?(0,a.jsx)(S.default,{interactions:h.interactions,onSubagentNavigate:N,rootExecutionId:e.upload_id||e.task_id}):(0,a.jsx)("div",{className:"rounded-md border border-card-border bg-card",children:(0,a.jsx)(eZ.EmptyState,{title:c("tracePage.noTrace")})})})]})}function tE({failures:e}){let{t}=(0,et.useLocale)();return(0,a.jsxs)("div",{className:"mb-3",children:[(0,a.jsx)("h3",{className:"text-sm font-semibold text-foreground mb-2",children:t("tracePage.failureDetails")}),(0,a.jsx)("div",{className:"rounded-md border-l-4 border-l-error border border-card-border bg-error-subtle/30 overflow-hidden",children:e.map((n,r)=>(0,a.jsxs)("div",{className:(0,A.cn)("p-3 grid gap-1.5",r<e.length-1&&"border-b border-card-border"),children:[(0,a.jsxs)("div",{className:"flex items-center gap-2 flex-wrap",children:[(0,a.jsxs)("span",{className:"text-xs font-semibold text-error inline-flex items-center gap-1",children:[(0,a.jsx)(u.XCircle,{className:"size-3.5","aria-hidden":!0}),n.failure_type||t("tracePage.unknownError")]}),n.attribution&&(0,a.jsx)("span",{className:"inline-flex items-center rounded-sm border border-border bg-background-secondary text-foreground-muted px-1.5 py-0 text-xs font-medium uppercase tracking-wide",children:n.attribution})]}),n.description&&(0,a.jsx)("p",{className:"text-sm text-foreground",children:n.description}),n.context&&(0,a.jsxs)("p",{className:"text-xs text-foreground-muted",children:[(0,a.jsx)("span",{className:"font-medium",children:t("tracePage.contextLabel")}),n.context]}),n.recovery&&(0,a.jsxs)("p",{className:"text-xs text-success",children:[(0,a.jsx)("span",{className:"font-medium",children:t("tracePage.recoveryLabel")}),n.recovery]})]},r))})]})}function tW({label:e,value:t}){return(0,a.jsxs)("span",{className:"inline-flex items-baseline gap-1 text-xs",children:[(0,a.jsx)("span",{className:"text-foreground-muted",children:e}),(0,a.jsx)("span",{className:"font-semibold text-foreground tabular-nums",children:t})]})}function tF({label:e,value:t,accent:n}){return(0,a.jsxs)("div",{className:"rounded-md border border-card-border bg-card p-3",children:[(0,a.jsx)("div",{className:"text-xs text-foreground-muted",children:e}),(0,a.jsx)("div",{className:(0,A.cn)("mt-1 text-xl font-semibold tabular-nums","error"===n?"text-error":"text-foreground"),children:t})]})}function t$({children:e,align:t,className:n,colKey:r,currentWidth:s,onResize:o}){let i=!!(r&&o&&null!=s);return(0,a.jsxs)("th",{className:(0,A.cn)("relative px-3 py-2 text-xs font-medium text-foreground-muted border-b border-border whitespace-nowrap","right"===t&&"text-right","center"===t&&"text-center",n),children:[e,i&&(0,a.jsx)(tD,{colKey:r,currentWidth:s,onResize:o})]})}function tL({children:e,sortKey:t,currentKey:n,dir:r,onSort:s,colKey:o,currentWidth:i,onResize:l}){let c=t===n,u=!!(o&&l&&null!=i);return(0,a.jsxs)("th",{scope:"col",tabIndex:0,role:"columnheader","aria-sort":c?"asc"===r?"ascending":"descending":"none",onClick:()=>s(t),onKeyDown:e=>{("Enter"===e.key||" "===e.key)&&(e.preventDefault(),s(t))},className:(0,A.cn)("relative px-3 py-2 text-xs font-medium border-b border-border whitespace-nowrap cursor-pointer select-none","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",c?"text-primary":"text-foreground-muted"),children:[(0,a.jsxs)("span",{className:"inline-flex items-center gap-1",children:[e,(0,a.jsx)("span",{className:(0,A.cn)("text-[10px]",c?"opacity-100":"opacity-40"),children:c?"asc"===r?"↑":"↓":"↕"})]}),u&&(0,a.jsx)(tD,{colKey:o,currentWidth:i,onResize:l})]})}function t_({execution:e,columnVisibility:t,availableTags:r,onTagsChanged:s,onTagCreated:o,onClick:i}){let l,c,{t:u}=(0,et.useLocale)(),h=e.task_id||e.upload_id||"",f=tT(e),x=(l=Array.isArray(e.invoked_skills)?e.invoked_skills:Array.isArray(e.invokedSkills)?e.invokedSkills:[],c=new Set,l.forEach(e=>{let t=e?.name?.trim();t&&c.add(t)}),Array.from(c)).length,b=new Set((e.agents??[]).filter(Boolean)).size,y=u("running"===f?"tracePage.statusRunning":"failed"===f?"tracePage.statusFailed":"tracePage.statusSuccess");return(0,a.jsxs)("tr",{onClick:i,onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),i())},tabIndex:0,role:"button","aria-label":`${u("tracePage.columnTraceId")} ${h}`,className:"border-b border-border hover:bg-background-secondary focus-visible:outline-none focus-visible:bg-background-secondary focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-inset cursor-pointer transition-colors",children:[t.traceId&&(0,a.jsx)(tQ,{children:(0,a.jsx)(e1,{value:h,head:6,tail:4})}),t.agent&&(0,a.jsx)(tQ,{children:(0,a.jsx)(e2,{className:"text-foreground text-sm",children:e.agent||(e.agents&&e.agents.length>0?e.agents[0]:null)||e.framework||"-"})}),t.status&&(0,a.jsx)(tQ,{children:(0,a.jsx)(eG.StatusBadge,{status:"running"===f?"running":"failed"===f?"error":"success",label:y})}),t.userTags&&(0,a.jsx)(tQ,{children:(0,a.jsx)(tK,{execution:e,availableTags:r,onTagsChanged:s,onTagCreated:o})}),t.systemTags&&(0,a.jsx)(tQ,{children:(0,a.jsxs)("div",{className:"flex gap-1 flex-wrap",children:[e.is_subagent?(0,a.jsx)("span",{title:e.subagent_name||e.subagent_type||"",className:"text-[9px] font-bold tracking-wider px-1.5 py-0.5 rounded-sm bg-primary/10 text-primary border border-primary/30",children:"SUB"}):b>1&&(0,a.jsx)(tH,{variant:"agent",icon:m.Users,children:"Multi-Agent"}),x>0&&(0,a.jsx)(tH,{variant:"skill",icon:p,children:"Skills"}),e.framework&&(0,a.jsx)(tH,{variant:"framework",icon:g.Terminal,children:tM(e.framework)})]})}),t.task&&(0,a.jsx)(tQ,{children:(0,a.jsx)(e2,{className:"text-foreground text-sm",children:e.query||u("tracePage.noQuery")})}),t.tokens&&(0,a.jsx)(tQ,{children:(0,a.jsx)("span",{className:"text-xs text-foreground-secondary font-mono tabular-nums whitespace-nowrap",children:null!=e.tokens?e.tokens.toLocaleString():"-"})}),t.time&&(0,a.jsx)(tQ,{children:(0,a.jsx)(tp,{value:e.timestamp,className:"text-xs text-foreground-secondary font-mono whitespace-nowrap"})}),t.actions&&(0,a.jsx)(tQ,{align:"right",children:(0,a.jsxs)("div",{className:"inline-flex gap-1 group",onClick:e=>e.stopPropagation(),children:[(0,a.jsx)(M.Button,{variant:"ghost",size:"sm",onClick:i,className:"h-7 px-2 text-xs",children:u("tracePage.rowDetail")}),(0,a.jsx)(M.Button,{variant:"ghost",size:"sm",asChild:!0,className:"h-7 px-2 text-xs",children:(0,a.jsx)(n.default,{href:`${tx}/fault?taskId=${h}`,children:u("tracePage.rowAnalysis")})}),(0,a.jsx)(M.Button,{variant:"ghost",size:"sm",asChild:!0,className:"h-7 px-2 text-xs",children:(0,a.jsxs)(n.default,{href:`${tx}/eval/trajectory/${h}`,children:[(0,a.jsx)(d.Wrench,{className:"size-3"}),u("tracePage.rowEval")]})})]})})]})}async function tB(e){try{let t=await e.json();return String(t?.error||e.statusText||"Request failed")}catch{return e.statusText||"Request failed"}}function tU(e,t){return"version"===e?"zh"===t?"版本":"Version":"zh"===t?"业务":"Business"}function tX({tag:e,removable:t}){return(0,a.jsxs)("span",{className:"inline-flex max-w-full items-center gap-1 rounded-sm border border-border bg-background px-1.5 py-0.5 text-xs text-foreground-secondary leading-none",children:[(0,a.jsx)("span",{className:"size-2 rounded-full shrink-0",style:{backgroundColor:e.color},"aria-hidden":!0}),(0,a.jsx)("span",{className:"truncate",children:e.name}),t&&(0,a.jsx)(c.X,{className:"size-3 shrink-0 text-foreground-muted","aria-hidden":!0})]})}function tK({execution:e,availableTags:t,onTagsChanged:n,onTagCreated:r,mode:o="cell"}){let{user:i}=(0,ee.useAuth)(),{t:l,locale:u}=(0,et.useLocale)(),d=e.upload_id||e.task_id||"",m=e.userTags??[],h=new Set(m.map(e=>e.id)),[p,g]=(0,s.useState)(!1),[f,x]=(0,s.useState)(null),[b,v]=(0,s.useState)(!1),[j,k]=(0,s.useState)(""),[N,S]=(0,s.useState)("business"),[C,P]=(0,s.useState)("#6366f1"),z=(0,s.useCallback)(async e=>{if(!e.ok)throw Error(await tB(e));let t=await e.json(),a=Array.isArray(t?.tags)?t.tags:[];return n(d,a),a},[d,n]),A=(0,s.useCallback)(async e=>{if(i&&d){x(e.id);try{let t=h.has(e.id)?await (0,O.apiFetch)(`/api/observe/executions/${encodeURIComponent(d)}/tags?user=${encodeURIComponent(i)}&tagId=${encodeURIComponent(e.id)}`,{method:"DELETE"}):await (0,O.apiFetch)(`/api/observe/executions/${encodeURIComponent(d)}/tags`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({user:i,tagIds:[e.id]})});await z(t)}catch(e){w.toast.error(e instanceof Error?e.message:l("tracePage.tagSaveFailed"))}finally{x(null)}}},[z,d,h,l,i]),D=(0,s.useCallback)(async()=>{if(i&&d&&j.trim()){v(!0);try{let e=await (0,O.apiFetch)("/api/tags",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({user:i,name:j.trim(),kind:N,color:C})});if(!e.ok)throw Error(await tB(e));let t=await e.json();r(t);let a=await (0,O.apiFetch)(`/api/observe/executions/${encodeURIComponent(d)}/tags`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({user:i,tagIds:[t.id]})});await z(a),k(""),S("business"),P("#6366f1")}catch(e){w.toast.error(e instanceof Error?e.message:l("tracePage.tagCreateFailed"))}finally{v(!1)}}},[z,d,C,N,j,r,l,i]),R=t.filter(e=>"version"===e.kind),I=t.filter(e=>"business"===e.kind),E="button"===o?(0,a.jsxs)(M.Button,{type:"button",variant:"outline",size:"sm",className:"h-7 gap-1.5 px-2 text-xs",title:l("tracePage.editTags"),onClick:e=>e.stopPropagation(),children:[(0,a.jsx)(y.Plus,{className:"size-3.5","aria-hidden":!0}),l("tracePage.editTags")]}):(0,a.jsxs)("button",{type:"button",className:"flex min-h-7 w-full min-w-0 items-center gap-1.5 rounded-sm px-1 py-0.5 text-left hover:bg-background-secondary focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",title:l("tracePage.editTags"),onClick:e=>e.stopPropagation(),children:[(0,a.jsx)("span",{className:"flex min-w-0 flex-1 flex-wrap gap-1",children:m.map(e=>(0,a.jsx)(tX,{tag:e},e.id))}),(0,a.jsx)("span",{className:"inline-flex size-6 shrink-0 items-center justify-center rounded-sm text-foreground-muted",children:(0,a.jsx)(y.Plus,{className:"size-3.5","aria-hidden":!0})})]});return(0,a.jsxs)(eH,{open:p,onOpenChange:g,children:[(0,a.jsx)(eQ,{asChild:!0,children:E}),(0,a.jsx)(eY,{align:"start",className:"w-80 p-3",onClick:e=>e.stopPropagation(),children:(0,a.jsxs)("div",{className:"space-y-3",children:[(0,a.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,a.jsx)("span",{className:"text-sm font-semibold text-foreground",children:l("tracePage.editTags")}),(0,a.jsxs)("div",{className:"flex items-center gap-1",children:[(0,a.jsx)("span",{className:"text-xs text-foreground-muted tabular-nums",children:m.length}),(0,a.jsx)(M.Button,{type:"button",variant:"ghost",size:"icon",className:"size-7","aria-label":"zh"===u?"关闭":"Close",onClick:()=>g(!1),children:(0,a.jsx)(c.X,{className:"size-3.5","aria-hidden":!0})})]})]}),(0,a.jsx)(tJ,{title:tU("version",u),tags:R,selectedIds:h,savingId:f,onToggle:A}),(0,a.jsx)(tJ,{title:tU("business",u),tags:I,selectedIds:h,savingId:f,onToggle:A}),(0,a.jsxs)("div",{className:"border-t border-border pt-3 space-y-2",children:[(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsxs)("select",{value:N,onChange:e=>S(e.target.value),className:"h-8 rounded-md border border-input bg-background px-2 text-xs outline-none focus:ring-1 focus:ring-ring",children:[(0,a.jsx)("option",{value:"business",children:tU("business",u)}),(0,a.jsx)("option",{value:"version",children:tU("version",u)})]}),(0,a.jsx)("input",{type:"color",value:C,onChange:e=>P(e.target.value),className:"size-8 rounded border border-input bg-background p-0.5","aria-label":l("tracePage.tagColor")})]}),(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)(T.Input,{value:j,onChange:e=>k(e.target.value),onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),D())},placeholder:l("tracePage.newTagPlaceholder"),className:"h-8 text-sm"}),(0,a.jsxs)(M.Button,{type:"button",size:"sm",className:"h-8 px-2",disabled:b||!j.trim(),onClick:()=>void D(),children:[(0,a.jsx)(y.Plus,{className:"size-3.5","aria-hidden":!0}),l("tracePage.createTag")]})]})]})]})})]})}function tJ({title:e,tags:t,selectedIds:n,savingId:r,onToggle:s}){let{t:o}=(0,et.useLocale)();return(0,a.jsxs)("div",{className:"space-y-1.5",children:[(0,a.jsx)("div",{className:"text-xs font-medium text-foreground-muted",children:e}),0===t.length?(0,a.jsx)("p",{className:"text-xs text-foreground-muted",children:o("tracePage.noTagsAvailable")}):(0,a.jsx)("div",{className:"max-h-36 overflow-auto space-y-1 pr-1",children:t.map(e=>{let t=n.has(e.id);return(0,a.jsxs)("button",{type:"button",disabled:r===e.id,onClick:()=>s(e),className:(0,A.cn)("flex h-8 w-full items-center gap-2 rounded-sm px-2 text-left text-sm hover:bg-background-secondary disabled:opacity-60",t&&"bg-primary-subtle text-primary"),children:[(0,a.jsx)("span",{className:"size-2 rounded-full shrink-0",style:{backgroundColor:e.color},"aria-hidden":!0}),(0,a.jsx)("span",{className:"min-w-0 flex-1 truncate",children:e.name}),t&&(0,a.jsx)(v.Check,{className:"size-3.5 shrink-0","aria-hidden":!0})]},e.id)})})]})}let tq={agent:"bg-primary-subtle text-primary border-primary-border",skill:"bg-primary-subtle text-primary border-primary-border",framework:"bg-background-secondary text-foreground-secondary border-border"};function tH({children:e,variant:t="framework",icon:n}){return(0,a.jsxs)("span",{className:(0,A.cn)("inline-flex items-center gap-1 rounded-sm border px-1.5 py-0.5 text-xs font-medium whitespace-nowrap leading-none",tq[t]),children:[n&&(0,a.jsx)(n,{className:"size-3 shrink-0","aria-hidden":!0}),e]})}function tQ({children:e,align:t,className:n}){return(0,a.jsx)("td",{className:(0,A.cn)("px-3 py-2 text-sm text-foreground","right"===t&&"text-right","center"===t&&"text-center",n),children:e})}e.s(["default",()=>tR],256225)}]);