agent-insight 0.5.2 → 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 (852) hide show
  1. package/.env.example +6 -0
  2. package/.next/standalone/.next/BUILD_ID +1 -1
  3. package/.next/standalone/.next/app-path-routes-manifest.json +9 -0
  4. package/.next/standalone/.next/build-manifest.json +2 -2
  5. package/.next/standalone/.next/prerender-manifest.json +51 -3
  6. package/.next/standalone/.next/routes-manifest.json +60 -0
  7. package/.next/standalone/.next/server/app/(main)/accessconfig/channels/page_client-reference-manifest.js +1 -1
  8. package/.next/standalone/.next/server/app/(main)/accessconfig/health/page_client-reference-manifest.js +1 -1
  9. package/.next/standalone/.next/server/app/(main)/accessconfig/install/page.js.nft.json +1 -1
  10. package/.next/standalone/.next/server/app/(main)/accessconfig/install/page_client-reference-manifest.js +1 -1
  11. package/.next/standalone/.next/server/app/(main)/accessconfig/page_client-reference-manifest.js +1 -1
  12. package/.next/standalone/.next/server/app/(main)/accessconfig/webhooks/page_client-reference-manifest.js +1 -1
  13. package/.next/standalone/.next/server/app/(main)/agents/page.js.nft.json +1 -1
  14. package/.next/standalone/.next/server/app/(main)/agents/page_client-reference-manifest.js +1 -1
  15. package/.next/standalone/.next/server/app/(main)/dashboard/page.js.nft.json +1 -1
  16. package/.next/standalone/.next/server/app/(main)/dashboard/page_client-reference-manifest.js +1 -1
  17. package/.next/standalone/.next/server/app/(main)/dataset/[id]/page_client-reference-manifest.js +1 -1
  18. package/.next/standalone/.next/server/app/(main)/dataset/page_client-reference-manifest.js +1 -1
  19. package/.next/standalone/.next/server/app/(main)/eval/page.js.nft.json +1 -1
  20. package/.next/standalone/.next/server/app/(main)/eval/page_client-reference-manifest.js +1 -1
  21. package/.next/standalone/.next/server/app/(main)/eval/run/[runId]/page_client-reference-manifest.js +1 -1
  22. package/.next/standalone/.next/server/app/(main)/eval/trajectory/[taskId]/page_client-reference-manifest.js +1 -1
  23. package/.next/standalone/.next/server/app/(main)/eval/trajectory/[taskId]/trace/page.js.nft.json +1 -1
  24. package/.next/standalone/.next/server/app/(main)/eval/trajectory/[taskId]/trace/page_client-reference-manifest.js +1 -1
  25. package/.next/standalone/.next/server/app/(main)/eval/trajectory/page_client-reference-manifest.js +1 -1
  26. package/.next/standalone/.next/server/app/(main)/evaluation/[id]/page_client-reference-manifest.js +1 -1
  27. package/.next/standalone/.next/server/app/(main)/fault/page.js.nft.json +1 -1
  28. package/.next/standalone/.next/server/app/(main)/fault/page_client-reference-manifest.js +1 -1
  29. package/.next/standalone/.next/server/app/(main)/infra/page_client-reference-manifest.js +1 -1
  30. package/.next/standalone/.next/server/app/(main)/infra/source/[id]/page_client-reference-manifest.js +1 -1
  31. package/.next/standalone/.next/server/app/(main)/infra/sources/page_client-reference-manifest.js +1 -1
  32. package/.next/standalone/.next/server/app/(main)/memory/page_client-reference-manifest.js +1 -1
  33. package/.next/standalone/.next/server/app/(main)/metrics/evaluators/[id]/page_client-reference-manifest.js +1 -1
  34. package/.next/standalone/.next/server/app/(main)/metrics/page.js.nft.json +1 -1
  35. package/.next/standalone/.next/server/app/(main)/metrics/page_client-reference-manifest.js +1 -1
  36. package/.next/standalone/.next/server/app/(main)/modelconfig/page_client-reference-manifest.js +1 -1
  37. package/.next/standalone/.next/server/app/(main)/modelconfig/registry/page.js.nft.json +1 -1
  38. package/.next/standalone/.next/server/app/(main)/modelconfig/registry/page_client-reference-manifest.js +1 -1
  39. package/.next/standalone/.next/server/app/(main)/modelconfig/web-search/page.js.nft.json +1 -1
  40. package/.next/standalone/.next/server/app/(main)/modelconfig/web-search/page_client-reference-manifest.js +1 -1
  41. package/.next/standalone/.next/server/app/(main)/optapi/page_client-reference-manifest.js +1 -1
  42. package/.next/standalone/.next/server/app/(main)/quality/page.js.nft.json +1 -1
  43. package/.next/standalone/.next/server/app/(main)/quality/page_client-reference-manifest.js +1 -1
  44. package/.next/standalone/.next/server/app/(main)/security/page_client-reference-manifest.js +1 -1
  45. package/.next/standalone/.next/server/app/(main)/skill-eval/grayscale/page.js.nft.json +1 -1
  46. package/.next/standalone/.next/server/app/(main)/skill-eval/grayscale/page_client-reference-manifest.js +1 -1
  47. package/.next/standalone/.next/server/app/(main)/skill-eval/page.js.nft.json +1 -1
  48. package/.next/standalone/.next/server/app/(main)/skill-eval/page_client-reference-manifest.js +1 -1
  49. package/.next/standalone/.next/server/app/(main)/skill-eval/trigger/[skillName]/page_client-reference-manifest.js +1 -1
  50. package/.next/standalone/.next/server/app/(main)/skill-generator/page_client-reference-manifest.js +1 -1
  51. package/.next/standalone/.next/server/app/(main)/skill-history/page.js.nft.json +1 -1
  52. package/.next/standalone/.next/server/app/(main)/skill-history/page_client-reference-manifest.js +1 -1
  53. package/.next/standalone/.next/server/app/(main)/skill-opt/[name]/[version]/page_client-reference-manifest.js +1 -1
  54. package/.next/standalone/.next/server/app/(main)/skill-opt/page_client-reference-manifest.js +1 -1
  55. package/.next/standalone/.next/server/app/(main)/skill-release/page_client-reference-manifest.js +1 -1
  56. package/.next/standalone/.next/server/app/(main)/skills/page.js.nft.json +1 -1
  57. package/.next/standalone/.next/server/app/(main)/skills/page_client-reference-manifest.js +1 -1
  58. package/.next/standalone/.next/server/app/(main)/trace/page.js.nft.json +1 -1
  59. package/.next/standalone/.next/server/app/(main)/trace/page_client-reference-manifest.js +1 -1
  60. package/.next/standalone/.next/server/app/(main)/version-analysis/page/app-paths-manifest.json +3 -0
  61. package/.next/standalone/.next/server/app/(main)/version-analysis/page/build-manifest.json +17 -0
  62. package/.next/standalone/.next/server/app/(main)/version-analysis/page/next-font-manifest.json +6 -0
  63. package/.next/standalone/.next/server/app/(main)/version-analysis/page/react-loadable-manifest.json +1 -0
  64. package/.next/standalone/.next/server/app/(main)/version-analysis/page/server-reference-manifest.json +4 -0
  65. package/.next/standalone/.next/server/app/(main)/version-analysis/page.js +17 -0
  66. package/.next/standalone/.next/server/app/(main)/version-analysis/page.js.map +5 -0
  67. package/.next/standalone/.next/server/app/(main)/version-analysis/page.js.nft.json +1 -0
  68. package/.next/standalone/.next/server/app/(main)/version-analysis/page_client-reference-manifest.js +2 -0
  69. package/.next/standalone/.next/server/app/(main)/version-management/page/app-paths-manifest.json +3 -0
  70. package/.next/standalone/.next/server/app/(main)/version-management/page/build-manifest.json +17 -0
  71. package/.next/standalone/.next/server/app/(main)/version-management/page/next-font-manifest.json +6 -0
  72. package/.next/standalone/.next/server/app/(main)/version-management/page/react-loadable-manifest.json +1 -0
  73. package/.next/standalone/.next/server/app/(main)/version-management/page/server-reference-manifest.json +4 -0
  74. package/.next/standalone/.next/server/app/(main)/version-management/page.js +17 -0
  75. package/.next/standalone/.next/server/app/(main)/version-management/page.js.map +5 -0
  76. package/.next/standalone/.next/server/app/(main)/version-management/page.js.nft.json +1 -0
  77. package/.next/standalone/.next/server/app/(main)/version-management/page_client-reference-manifest.js +2 -0
  78. package/.next/standalone/.next/server/app/_global-error.html +2 -2
  79. package/.next/standalone/.next/server/app/_global-error.rsc +1 -1
  80. package/.next/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  81. package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  82. package/.next/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  83. package/.next/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  84. package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  85. package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  86. package/.next/standalone/.next/server/app/_not-found.html +1 -1
  87. package/.next/standalone/.next/server/app/_not-found.rsc +3 -3
  88. package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +3 -3
  89. package/.next/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  90. package/.next/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +3 -3
  91. package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  92. package/.next/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  93. package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  94. package/.next/standalone/.next/server/app/accessconfig/channels.html +1 -1
  95. package/.next/standalone/.next/server/app/accessconfig/channels.rsc +5 -5
  96. package/.next/standalone/.next/server/app/accessconfig/channels.segments/!KG1haW4p/accessconfig/channels/__PAGE__.segment.rsc +2 -2
  97. package/.next/standalone/.next/server/app/accessconfig/channels.segments/!KG1haW4p/accessconfig/channels.segment.rsc +1 -1
  98. package/.next/standalone/.next/server/app/accessconfig/channels.segments/!KG1haW4p/accessconfig.segment.rsc +1 -1
  99. package/.next/standalone/.next/server/app/accessconfig/channels.segments/!KG1haW4p.segment.rsc +2 -2
  100. package/.next/standalone/.next/server/app/accessconfig/channels.segments/_full.segment.rsc +5 -5
  101. package/.next/standalone/.next/server/app/accessconfig/channels.segments/_head.segment.rsc +1 -1
  102. package/.next/standalone/.next/server/app/accessconfig/channels.segments/_index.segment.rsc +3 -3
  103. package/.next/standalone/.next/server/app/accessconfig/channels.segments/_tree.segment.rsc +2 -2
  104. package/.next/standalone/.next/server/app/accessconfig/health.html +1 -1
  105. package/.next/standalone/.next/server/app/accessconfig/health.rsc +5 -5
  106. package/.next/standalone/.next/server/app/accessconfig/health.segments/!KG1haW4p/accessconfig/health/__PAGE__.segment.rsc +2 -2
  107. package/.next/standalone/.next/server/app/accessconfig/health.segments/!KG1haW4p/accessconfig/health.segment.rsc +1 -1
  108. package/.next/standalone/.next/server/app/accessconfig/health.segments/!KG1haW4p/accessconfig.segment.rsc +1 -1
  109. package/.next/standalone/.next/server/app/accessconfig/health.segments/!KG1haW4p.segment.rsc +2 -2
  110. package/.next/standalone/.next/server/app/accessconfig/health.segments/_full.segment.rsc +5 -5
  111. package/.next/standalone/.next/server/app/accessconfig/health.segments/_head.segment.rsc +1 -1
  112. package/.next/standalone/.next/server/app/accessconfig/health.segments/_index.segment.rsc +3 -3
  113. package/.next/standalone/.next/server/app/accessconfig/health.segments/_tree.segment.rsc +2 -2
  114. package/.next/standalone/.next/server/app/accessconfig/install.html +2 -2
  115. package/.next/standalone/.next/server/app/accessconfig/install.rsc +5 -5
  116. package/.next/standalone/.next/server/app/accessconfig/install.segments/!KG1haW4p/accessconfig/install/__PAGE__.segment.rsc +2 -2
  117. package/.next/standalone/.next/server/app/accessconfig/install.segments/!KG1haW4p/accessconfig/install.segment.rsc +1 -1
  118. package/.next/standalone/.next/server/app/accessconfig/install.segments/!KG1haW4p/accessconfig.segment.rsc +1 -1
  119. package/.next/standalone/.next/server/app/accessconfig/install.segments/!KG1haW4p.segment.rsc +2 -2
  120. package/.next/standalone/.next/server/app/accessconfig/install.segments/_full.segment.rsc +5 -5
  121. package/.next/standalone/.next/server/app/accessconfig/install.segments/_head.segment.rsc +1 -1
  122. package/.next/standalone/.next/server/app/accessconfig/install.segments/_index.segment.rsc +3 -3
  123. package/.next/standalone/.next/server/app/accessconfig/install.segments/_tree.segment.rsc +2 -2
  124. package/.next/standalone/.next/server/app/accessconfig/webhooks.html +1 -1
  125. package/.next/standalone/.next/server/app/accessconfig/webhooks.rsc +5 -5
  126. package/.next/standalone/.next/server/app/accessconfig/webhooks.segments/!KG1haW4p/accessconfig/webhooks/__PAGE__.segment.rsc +2 -2
  127. package/.next/standalone/.next/server/app/accessconfig/webhooks.segments/!KG1haW4p/accessconfig/webhooks.segment.rsc +1 -1
  128. package/.next/standalone/.next/server/app/accessconfig/webhooks.segments/!KG1haW4p/accessconfig.segment.rsc +1 -1
  129. package/.next/standalone/.next/server/app/accessconfig/webhooks.segments/!KG1haW4p.segment.rsc +2 -2
  130. package/.next/standalone/.next/server/app/accessconfig/webhooks.segments/_full.segment.rsc +5 -5
  131. package/.next/standalone/.next/server/app/accessconfig/webhooks.segments/_head.segment.rsc +1 -1
  132. package/.next/standalone/.next/server/app/accessconfig/webhooks.segments/_index.segment.rsc +3 -3
  133. package/.next/standalone/.next/server/app/accessconfig/webhooks.segments/_tree.segment.rsc +2 -2
  134. package/.next/standalone/.next/server/app/accessconfig.html +1 -1
  135. package/.next/standalone/.next/server/app/accessconfig.rsc +4 -4
  136. package/.next/standalone/.next/server/app/accessconfig.segments/!KG1haW4p/accessconfig/__PAGE__.segment.rsc +1 -1
  137. package/.next/standalone/.next/server/app/accessconfig.segments/!KG1haW4p/accessconfig.segment.rsc +1 -1
  138. package/.next/standalone/.next/server/app/accessconfig.segments/!KG1haW4p.segment.rsc +2 -2
  139. package/.next/standalone/.next/server/app/accessconfig.segments/_full.segment.rsc +4 -4
  140. package/.next/standalone/.next/server/app/accessconfig.segments/_head.segment.rsc +1 -1
  141. package/.next/standalone/.next/server/app/accessconfig.segments/_index.segment.rsc +3 -3
  142. package/.next/standalone/.next/server/app/accessconfig.segments/_tree.segment.rsc +2 -2
  143. package/.next/standalone/.next/server/app/agents.html +1 -1
  144. package/.next/standalone/.next/server/app/agents.rsc +5 -5
  145. package/.next/standalone/.next/server/app/agents.segments/!KG1haW4p/agents/__PAGE__.segment.rsc +2 -2
  146. package/.next/standalone/.next/server/app/agents.segments/!KG1haW4p/agents.segment.rsc +1 -1
  147. package/.next/standalone/.next/server/app/agents.segments/!KG1haW4p.segment.rsc +2 -2
  148. package/.next/standalone/.next/server/app/agents.segments/_full.segment.rsc +5 -5
  149. package/.next/standalone/.next/server/app/agents.segments/_head.segment.rsc +1 -1
  150. package/.next/standalone/.next/server/app/agents.segments/_index.segment.rsc +3 -3
  151. package/.next/standalone/.next/server/app/agents.segments/_tree.segment.rsc +2 -2
  152. package/.next/standalone/.next/server/app/api/agent/run/route.js.nft.json +1 -1
  153. package/.next/standalone/.next/server/app/api/agent/stream/route.js.nft.json +1 -1
  154. package/.next/standalone/.next/server/app/api/agent-datasets/[id]/route.js.nft.json +1 -1
  155. package/.next/standalone/.next/server/app/api/agent-datasets/route.js.nft.json +1 -1
  156. package/.next/standalone/.next/server/app/api/agents/[id]/route.js.nft.json +1 -1
  157. package/.next/standalone/.next/server/app/api/agents/route.js.nft.json +1 -1
  158. package/.next/standalone/.next/server/app/api/auth/apikey/route.js.nft.json +1 -1
  159. package/.next/standalone/.next/server/app/api/auth/organization/route.js.nft.json +1 -1
  160. package/.next/standalone/.next/server/app/api/dashboard/stats/route.js.nft.json +1 -1
  161. package/.next/standalone/.next/server/app/api/debug/batch-tasks/[taskId]/route.js.nft.json +1 -1
  162. package/.next/standalone/.next/server/app/api/debug/batch-tasks/route.js.nft.json +1 -1
  163. package/.next/standalone/.next/server/app/api/debug/execute/[jobId]/route.js.nft.json +1 -1
  164. package/.next/standalone/.next/server/app/api/debug/execute/route.js.nft.json +1 -1
  165. package/.next/standalone/.next/server/app/api/debug/grayscale-tasks/[taskId]/route.js +10 -10
  166. package/.next/standalone/.next/server/app/api/debug/grayscale-tasks/[taskId]/route.js.nft.json +1 -1
  167. package/.next/standalone/.next/server/app/api/debug/grayscale-tasks/route.js.nft.json +1 -1
  168. package/.next/standalone/.next/server/app/api/debug/history/[id]/route.js.nft.json +1 -1
  169. package/.next/standalone/.next/server/app/api/debug/history/route.js.nft.json +1 -1
  170. package/.next/standalone/.next/server/app/api/eval/config/backfill-routing/route.js +6 -6
  171. package/.next/standalone/.next/server/app/api/eval/config/backfill-routing/route.js.nft.json +1 -1
  172. package/.next/standalone/.next/server/app/api/eval/config/create/route.js.nft.json +1 -1
  173. package/.next/standalone/.next/server/app/api/eval/config/reparse/route.js.nft.json +1 -1
  174. package/.next/standalone/.next/server/app/api/eval/config/route.js +6 -6
  175. package/.next/standalone/.next/server/app/api/eval/config/route.js.nft.json +1 -1
  176. package/.next/standalone/.next/server/app/api/eval/config/status/route.js.nft.json +1 -1
  177. package/.next/standalone/.next/server/app/api/eval/evaluation/route.js.nft.json +1 -1
  178. package/.next/standalone/.next/server/app/api/eval/rejudge/route.js +6 -6
  179. package/.next/standalone/.next/server/app/api/eval/rejudge/route.js.nft.json +1 -1
  180. package/.next/standalone/.next/server/app/api/eval/settings/route.js.nft.json +1 -1
  181. package/.next/standalone/.next/server/app/api/eval/settings/test/route.js.nft.json +1 -1
  182. package/.next/standalone/.next/server/app/api/eval/terminate-all/route.js.nft.json +1 -1
  183. package/.next/standalone/.next/server/app/api/eval/trajectory/results/[id]/route.js.nft.json +1 -1
  184. package/.next/standalone/.next/server/app/api/eval/trajectory/results/route.js +5 -5
  185. package/.next/standalone/.next/server/app/api/eval/trajectory/results/route.js.nft.json +1 -1
  186. package/.next/standalone/.next/server/app/api/eval/trajectory/run/route.js +13 -13
  187. package/.next/standalone/.next/server/app/api/eval/trajectory/run/route.js.nft.json +1 -1
  188. package/.next/standalone/.next/server/app/api/eval/trajectory/runs/route.js.nft.json +1 -1
  189. package/.next/standalone/.next/server/app/api/evaluation/[id]/route.js.nft.json +1 -1
  190. package/.next/standalone/.next/server/app/api/evaluation/cancel/route.js.nft.json +1 -1
  191. package/.next/standalone/.next/server/app/api/fault/diagnosis/session/route.js.nft.json +1 -1
  192. package/.next/standalone/.next/server/app/api/fault/diagnosis/stream/route.js.nft.json +1 -1
  193. package/.next/standalone/.next/server/app/api/fleet/agent/route/app-paths-manifest.json +3 -0
  194. package/.next/standalone/.next/server/app/api/fleet/agent/route/build-manifest.json +11 -0
  195. package/.next/standalone/.next/server/app/api/fleet/agent/route/server-reference-manifest.json +4 -0
  196. package/.next/standalone/.next/server/app/api/fleet/agent/route.js +8 -0
  197. package/.next/standalone/.next/server/app/api/fleet/agent/route.js.map +5 -0
  198. package/.next/standalone/.next/server/app/api/fleet/agent/route.js.nft.json +1 -0
  199. package/.next/standalone/.next/server/app/api/fleet/agent/route_client-reference-manifest.js +2 -0
  200. package/.next/standalone/.next/server/app/api/fleet/breakdowns/route.js +1 -1
  201. package/.next/standalone/.next/server/app/api/fleet/breakdowns/route.js.nft.json +1 -1
  202. package/.next/standalone/.next/server/app/api/fleet/trends/route.js +2 -2
  203. package/.next/standalone/.next/server/app/api/fleet/trends/route.js.nft.json +1 -1
  204. package/.next/standalone/.next/server/app/api/guide/route.js.nft.json +1 -1
  205. package/.next/standalone/.next/server/app/api/ingest/opencode/session-complete/route.js +3 -3
  206. package/.next/standalone/.next/server/app/api/ingest/opencode/session-complete/route.js.nft.json +1 -1
  207. package/.next/standalone/.next/server/app/api/ingest/otel/v1/logs/route.js.nft.json +1 -1
  208. package/.next/standalone/.next/server/app/api/ingest/otel/v1/metrics/route.js.nft.json +1 -1
  209. package/.next/standalone/.next/server/app/api/ingest/otel/v1/traces/route.js +5 -5
  210. package/.next/standalone/.next/server/app/api/ingest/otel/v1/traces/route.js.nft.json +1 -1
  211. package/.next/standalone/.next/server/app/api/ingest/proxy/[taskId]/[...path]/route.js.nft.json +1 -1
  212. package/.next/standalone/.next/server/app/api/ingest/proxy/[taskId]/end/route.js +9 -9
  213. package/.next/standalone/.next/server/app/api/ingest/proxy/[taskId]/end/route.js.nft.json +1 -1
  214. package/.next/standalone/.next/server/app/api/ingest/proxy/[taskId]/start/route.js.nft.json +1 -1
  215. package/.next/standalone/.next/server/app/api/ingest/sync/manifest/route.js.nft.json +1 -1
  216. package/.next/standalone/.next/server/app/api/ingest/sync/opencode/route.js.nft.json +1 -1
  217. package/.next/standalone/.next/server/app/api/ingest/upload/route.js +8 -8
  218. package/.next/standalone/.next/server/app/api/ingest/upload/route.js.nft.json +1 -1
  219. package/.next/standalone/.next/server/app/api/modelconfig/pricing/route/app-paths-manifest.json +3 -0
  220. package/.next/standalone/.next/server/app/api/modelconfig/pricing/route/build-manifest.json +11 -0
  221. package/.next/standalone/.next/server/app/api/modelconfig/pricing/route/server-reference-manifest.json +4 -0
  222. package/.next/standalone/.next/server/app/api/modelconfig/pricing/route.js +8 -0
  223. package/.next/standalone/.next/server/app/api/modelconfig/pricing/route.js.map +5 -0
  224. package/.next/standalone/.next/server/app/api/modelconfig/pricing/route.js.nft.json +1 -0
  225. package/.next/standalone/.next/server/app/api/modelconfig/pricing/route_client-reference-manifest.js +2 -0
  226. package/.next/standalone/.next/server/app/api/observe/data/route.js +3 -3
  227. package/.next/standalone/.next/server/app/api/observe/data/route.js.nft.json +1 -1
  228. package/.next/standalone/.next/server/app/api/observe/executions/[executionId]/agent-debug/route.js.nft.json +1 -1
  229. package/.next/standalone/.next/server/app/api/observe/executions/[executionId]/agent-debug/skills-analysis/route.js +13 -13
  230. package/.next/standalone/.next/server/app/api/observe/executions/[executionId]/agent-debug/skills-analysis/route.js.nft.json +1 -1
  231. package/.next/standalone/.next/server/app/api/observe/executions/[executionId]/analyze-match/route.js.nft.json +1 -1
  232. package/.next/standalone/.next/server/app/api/observe/executions/[executionId]/infra/route.js.nft.json +1 -1
  233. package/.next/standalone/.next/server/app/api/observe/executions/[executionId]/tags/route/app-paths-manifest.json +3 -0
  234. package/.next/standalone/.next/server/app/api/observe/executions/[executionId]/tags/route/build-manifest.json +11 -0
  235. package/.next/standalone/.next/server/app/api/observe/executions/[executionId]/tags/route/server-reference-manifest.json +4 -0
  236. package/.next/standalone/.next/server/app/api/observe/executions/[executionId]/tags/route.js +8 -0
  237. package/.next/standalone/.next/server/app/api/observe/executions/[executionId]/tags/route.js.map +5 -0
  238. package/.next/standalone/.next/server/app/api/observe/executions/[executionId]/tags/route.js.nft.json +1 -0
  239. package/.next/standalone/.next/server/app/api/observe/executions/[executionId]/tags/route_client-reference-manifest.js +2 -0
  240. package/.next/standalone/.next/server/app/api/observe/infra/history/route.js.nft.json +1 -1
  241. package/.next/standalone/.next/server/app/api/observe/infra/poll/route.js.nft.json +1 -1
  242. package/.next/standalone/.next/server/app/api/observe/infra/sources/derive/route.js.nft.json +1 -1
  243. package/.next/standalone/.next/server/app/api/observe/infra/sources/overview/route.js.nft.json +1 -1
  244. package/.next/standalone/.next/server/app/api/observe/infra/sources/route.js.nft.json +1 -1
  245. package/.next/standalone/.next/server/app/api/observe/infra/sources/sessions/route.js.nft.json +1 -1
  246. package/.next/standalone/.next/server/app/api/observe/infra/sources/test/route.js.nft.json +1 -1
  247. package/.next/standalone/.next/server/app/api/observe/session/route.js.nft.json +1 -1
  248. package/.next/standalone/.next/server/app/api/observe/task-stats/route.js +3 -3
  249. package/.next/standalone/.next/server/app/api/observe/task-stats/route.js.nft.json +1 -1
  250. package/.next/standalone/.next/server/app/api/observe/version-analysis/compare/route/app-paths-manifest.json +3 -0
  251. package/.next/standalone/.next/server/app/api/observe/version-analysis/compare/route/build-manifest.json +11 -0
  252. package/.next/standalone/.next/server/app/api/observe/version-analysis/compare/route/server-reference-manifest.json +4 -0
  253. package/.next/standalone/.next/server/app/api/observe/version-analysis/compare/route.js +8 -0
  254. package/.next/standalone/.next/server/app/api/observe/version-analysis/compare/route.js.map +5 -0
  255. package/.next/standalone/.next/server/app/api/observe/version-analysis/compare/route.js.nft.json +1 -0
  256. package/.next/standalone/.next/server/app/api/observe/version-analysis/compare/route_client-reference-manifest.js +2 -0
  257. package/.next/standalone/.next/server/app/api/observe/version-analysis/tags/[tagId]/traces/route/app-paths-manifest.json +3 -0
  258. package/.next/standalone/.next/server/app/api/observe/version-analysis/tags/[tagId]/traces/route/build-manifest.json +11 -0
  259. package/.next/standalone/.next/server/app/api/observe/version-analysis/tags/[tagId]/traces/route/server-reference-manifest.json +4 -0
  260. package/.next/standalone/.next/server/app/api/observe/version-analysis/tags/[tagId]/traces/route.js +8 -0
  261. package/.next/standalone/.next/server/app/api/observe/version-analysis/tags/[tagId]/traces/route.js.map +5 -0
  262. package/.next/standalone/.next/server/app/api/observe/version-analysis/tags/[tagId]/traces/route.js.nft.json +1 -0
  263. package/.next/standalone/.next/server/app/api/observe/version-analysis/tags/[tagId]/traces/route_client-reference-manifest.js +2 -0
  264. package/.next/standalone/.next/server/app/api/public/otel/v1/traces/route.js +5 -5
  265. package/.next/standalone/.next/server/app/api/public/otel/v1/traces/route.js.nft.json +1 -1
  266. package/.next/standalone/.next/server/app/api/quality/agents/route.js +7 -7
  267. package/.next/standalone/.next/server/app/api/quality/agents/route.js.nft.json +1 -1
  268. package/.next/standalone/.next/server/app/api/quality/backfill/route.js.nft.json +1 -1
  269. package/.next/standalone/.next/server/app/api/quality/executions/route.js +7 -7
  270. package/.next/standalone/.next/server/app/api/quality/executions/route.js.nft.json +1 -1
  271. package/.next/standalone/.next/server/app/api/quality/report/route.js.nft.json +1 -1
  272. package/.next/standalone/.next/server/app/api/skill-eval/trigger/[skillName]/draft/route.js.nft.json +1 -1
  273. package/.next/standalone/.next/server/app/api/skill-eval/trigger/[skillName]/route.js.nft.json +1 -1
  274. package/.next/standalone/.next/server/app/api/skill-eval/trigger/[skillName]/run/[runId]/cancel/route.js.nft.json +1 -1
  275. package/.next/standalone/.next/server/app/api/skill-eval/trigger/[skillName]/run/route.js.nft.json +1 -1
  276. package/.next/standalone/.next/server/app/api/skill-eval/trigger/[skillName]/runs/route.js.nft.json +1 -1
  277. package/.next/standalone/.next/server/app/api/skill-eval/trigger/[skillName]/upload/route.js.nft.json +1 -1
  278. package/.next/standalone/.next/server/app/api/skill-generator/attachments/route.js.nft.json +1 -1
  279. package/.next/standalone/.next/server/app/api/skill-generator/chat/route.js.nft.json +1 -1
  280. package/.next/standalone/.next/server/app/api/skill-generator/download/[sessionId]/route.js.nft.json +1 -1
  281. package/.next/standalone/.next/server/app/api/skill-generator/files/content/route.js.nft.json +1 -1
  282. package/.next/standalone/.next/server/app/api/skill-generator/files/download/route.js.nft.json +1 -1
  283. package/.next/standalone/.next/server/app/api/skill-generator/files/info/route.js.nft.json +1 -1
  284. package/.next/standalone/.next/server/app/api/skill-generator/files/list/route.js.nft.json +1 -1
  285. package/.next/standalone/.next/server/app/api/skill-generator/sessions/[id]/route.js.nft.json +1 -1
  286. package/.next/standalone/.next/server/app/api/skill-generator/sessions/route.js.nft.json +1 -1
  287. package/.next/standalone/.next/server/app/api/skill-opt/chat/route.js.nft.json +1 -1
  288. package/.next/standalone/.next/server/app/api/skill-opt/plan/items/[id]/route.js.nft.json +1 -1
  289. package/.next/standalone/.next/server/app/api/skill-opt/plan/route.js.nft.json +1 -1
  290. package/.next/standalone/.next/server/app/api/skill-opt/sessions/[id]/iterations/[draftNumber]/apply/route.js.nft.json +1 -1
  291. package/.next/standalone/.next/server/app/api/skill-opt/sessions/[id]/iterations/route.js.nft.json +1 -1
  292. package/.next/standalone/.next/server/app/api/skill-opt/sessions/[id]/route.js.nft.json +1 -1
  293. package/.next/standalone/.next/server/app/api/skill-opt/sessions/route.js.nft.json +1 -1
  294. package/.next/standalone/.next/server/app/api/skills/[id]/activate/route.js.nft.json +1 -1
  295. package/.next/standalone/.next/server/app/api/skills/[id]/benchmark-generate/route.js +7 -7
  296. package/.next/standalone/.next/server/app/api/skills/[id]/benchmark-generate/route.js.nft.json +1 -1
  297. package/.next/standalone/.next/server/app/api/skills/[id]/runs/route.js +2 -2
  298. package/.next/standalone/.next/server/app/api/skills/[id]/runs/route.js.nft.json +1 -1
  299. package/.next/standalone/.next/server/app/api/skills/[id]/toggle/route.js.nft.json +1 -1
  300. package/.next/standalone/.next/server/app/api/skills/[id]/versions/[version]/download/route.js.nft.json +1 -1
  301. package/.next/standalone/.next/server/app/api/skills/[id]/versions/[version]/evaluate/route.js.nft.json +1 -1
  302. package/.next/standalone/.next/server/app/api/skills/[id]/versions/[version]/evaluation-summary/route.js.nft.json +1 -1
  303. package/.next/standalone/.next/server/app/api/skills/[id]/versions/[version]/files/[...path]/route.js.nft.json +1 -1
  304. package/.next/standalone/.next/server/app/api/skills/[id]/versions/[version]/parse-flow/route.js.nft.json +1 -1
  305. package/.next/standalone/.next/server/app/api/skills/[id]/versions/[version]/route.js.nft.json +1 -1
  306. package/.next/standalone/.next/server/app/api/skills/[id]/versions/route.js.nft.json +1 -1
  307. package/.next/standalone/.next/server/app/api/skills/automation/import/route.js.nft.json +1 -1
  308. package/.next/standalone/.next/server/app/api/skills/automation/push/route.js.nft.json +1 -1
  309. package/.next/standalone/.next/server/app/api/skills/by-name/[name]/analysis-diagnosis/route.js.nft.json +1 -1
  310. package/.next/standalone/.next/server/app/api/skills/by-name/[name]/optimization-points/resolve/route.js.nft.json +1 -1
  311. package/.next/standalone/.next/server/app/api/skills/by-name/[name]/optimization-points/route.js.nft.json +1 -1
  312. package/.next/standalone/.next/server/app/api/skills/by-name/route.js.nft.json +1 -1
  313. package/.next/standalone/.next/server/app/api/skills/logs/route.js +6 -6
  314. package/.next/standalone/.next/server/app/api/skills/logs/route.js.nft.json +1 -1
  315. package/.next/standalone/.next/server/app/api/skills/publish/route.js.nft.json +1 -1
  316. package/.next/standalone/.next/server/app/api/skills/route.js.nft.json +1 -1
  317. package/.next/standalone/.next/server/app/api/skills/sync-enterprise/route.js.nft.json +1 -1
  318. package/.next/standalone/.next/server/app/api/skills/upload/route.js.nft.json +1 -1
  319. package/.next/standalone/.next/server/app/api/tags/[id]/route/app-paths-manifest.json +3 -0
  320. package/.next/standalone/.next/server/app/api/tags/[id]/route/build-manifest.json +11 -0
  321. package/.next/standalone/.next/server/app/api/tags/[id]/route/server-reference-manifest.json +4 -0
  322. package/.next/standalone/.next/server/app/api/tags/[id]/route.js +8 -0
  323. package/.next/standalone/.next/server/app/api/tags/[id]/route.js.map +5 -0
  324. package/.next/standalone/.next/server/app/api/tags/[id]/route.js.nft.json +1 -0
  325. package/.next/standalone/.next/server/app/api/tags/[id]/route_client-reference-manifest.js +2 -0
  326. package/.next/standalone/.next/server/app/api/tags/route/app-paths-manifest.json +3 -0
  327. package/.next/standalone/.next/server/app/api/tags/route/build-manifest.json +11 -0
  328. package/.next/standalone/.next/server/app/api/tags/route/server-reference-manifest.json +4 -0
  329. package/.next/standalone/.next/server/app/api/tags/route.js +8 -0
  330. package/.next/standalone/.next/server/app/api/tags/route.js.map +5 -0
  331. package/.next/standalone/.next/server/app/api/tags/route.js.nft.json +1 -0
  332. package/.next/standalone/.next/server/app/api/tags/route_client-reference-manifest.js +2 -0
  333. package/.next/standalone/.next/server/app/api/user-evaluators/route.js.nft.json +1 -1
  334. package/.next/standalone/.next/server/app/dashboard.html +1 -1
  335. package/.next/standalone/.next/server/app/dashboard.rsc +5 -5
  336. package/.next/standalone/.next/server/app/dashboard.segments/!KG1haW4p/dashboard/__PAGE__.segment.rsc +2 -2
  337. package/.next/standalone/.next/server/app/dashboard.segments/!KG1haW4p/dashboard.segment.rsc +1 -1
  338. package/.next/standalone/.next/server/app/dashboard.segments/!KG1haW4p.segment.rsc +2 -2
  339. package/.next/standalone/.next/server/app/dashboard.segments/_full.segment.rsc +5 -5
  340. package/.next/standalone/.next/server/app/dashboard.segments/_head.segment.rsc +1 -1
  341. package/.next/standalone/.next/server/app/dashboard.segments/_index.segment.rsc +3 -3
  342. package/.next/standalone/.next/server/app/dashboard.segments/_tree.segment.rsc +2 -2
  343. package/.next/standalone/.next/server/app/dataset.html +1 -1
  344. package/.next/standalone/.next/server/app/dataset.rsc +5 -5
  345. package/.next/standalone/.next/server/app/dataset.segments/!KG1haW4p/dataset/__PAGE__.segment.rsc +2 -2
  346. package/.next/standalone/.next/server/app/dataset.segments/!KG1haW4p/dataset.segment.rsc +1 -1
  347. package/.next/standalone/.next/server/app/dataset.segments/!KG1haW4p.segment.rsc +2 -2
  348. package/.next/standalone/.next/server/app/dataset.segments/_full.segment.rsc +5 -5
  349. package/.next/standalone/.next/server/app/dataset.segments/_head.segment.rsc +1 -1
  350. package/.next/standalone/.next/server/app/dataset.segments/_index.segment.rsc +3 -3
  351. package/.next/standalone/.next/server/app/dataset.segments/_tree.segment.rsc +2 -2
  352. package/.next/standalone/.next/server/app/eval/trajectory.html +1 -1
  353. package/.next/standalone/.next/server/app/eval/trajectory.rsc +5 -5
  354. package/.next/standalone/.next/server/app/eval/trajectory.segments/!KG1haW4p/eval/trajectory/__PAGE__.segment.rsc +2 -2
  355. package/.next/standalone/.next/server/app/eval/trajectory.segments/!KG1haW4p/eval/trajectory.segment.rsc +1 -1
  356. package/.next/standalone/.next/server/app/eval/trajectory.segments/!KG1haW4p/eval.segment.rsc +1 -1
  357. package/.next/standalone/.next/server/app/eval/trajectory.segments/!KG1haW4p.segment.rsc +2 -2
  358. package/.next/standalone/.next/server/app/eval/trajectory.segments/_full.segment.rsc +5 -5
  359. package/.next/standalone/.next/server/app/eval/trajectory.segments/_head.segment.rsc +1 -1
  360. package/.next/standalone/.next/server/app/eval/trajectory.segments/_index.segment.rsc +3 -3
  361. package/.next/standalone/.next/server/app/eval/trajectory.segments/_tree.segment.rsc +2 -2
  362. package/.next/standalone/.next/server/app/eval.html +1 -1
  363. package/.next/standalone/.next/server/app/eval.rsc +5 -5
  364. package/.next/standalone/.next/server/app/eval.segments/!KG1haW4p/eval/__PAGE__.segment.rsc +2 -2
  365. package/.next/standalone/.next/server/app/eval.segments/!KG1haW4p/eval.segment.rsc +1 -1
  366. package/.next/standalone/.next/server/app/eval.segments/!KG1haW4p.segment.rsc +2 -2
  367. package/.next/standalone/.next/server/app/eval.segments/_full.segment.rsc +5 -5
  368. package/.next/standalone/.next/server/app/eval.segments/_head.segment.rsc +1 -1
  369. package/.next/standalone/.next/server/app/eval.segments/_index.segment.rsc +3 -3
  370. package/.next/standalone/.next/server/app/eval.segments/_tree.segment.rsc +2 -2
  371. package/.next/standalone/.next/server/app/fault.html +1 -1
  372. package/.next/standalone/.next/server/app/fault.rsc +5 -5
  373. package/.next/standalone/.next/server/app/fault.segments/!KG1haW4p/fault/__PAGE__.segment.rsc +2 -2
  374. package/.next/standalone/.next/server/app/fault.segments/!KG1haW4p/fault.segment.rsc +1 -1
  375. package/.next/standalone/.next/server/app/fault.segments/!KG1haW4p.segment.rsc +2 -2
  376. package/.next/standalone/.next/server/app/fault.segments/_full.segment.rsc +5 -5
  377. package/.next/standalone/.next/server/app/fault.segments/_head.segment.rsc +1 -1
  378. package/.next/standalone/.next/server/app/fault.segments/_index.segment.rsc +3 -3
  379. package/.next/standalone/.next/server/app/fault.segments/_tree.segment.rsc +2 -2
  380. package/.next/standalone/.next/server/app/index.html +1 -1
  381. package/.next/standalone/.next/server/app/index.rsc +3 -3
  382. package/.next/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  383. package/.next/standalone/.next/server/app/index.segments/_full.segment.rsc +3 -3
  384. package/.next/standalone/.next/server/app/index.segments/_head.segment.rsc +1 -1
  385. package/.next/standalone/.next/server/app/index.segments/_index.segment.rsc +3 -3
  386. package/.next/standalone/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  387. package/.next/standalone/.next/server/app/infra/sources.html +1 -1
  388. package/.next/standalone/.next/server/app/infra/sources.rsc +5 -5
  389. package/.next/standalone/.next/server/app/infra/sources.segments/!KG1haW4p/infra/sources/__PAGE__.segment.rsc +2 -2
  390. package/.next/standalone/.next/server/app/infra/sources.segments/!KG1haW4p/infra/sources.segment.rsc +1 -1
  391. package/.next/standalone/.next/server/app/infra/sources.segments/!KG1haW4p/infra.segment.rsc +1 -1
  392. package/.next/standalone/.next/server/app/infra/sources.segments/!KG1haW4p.segment.rsc +2 -2
  393. package/.next/standalone/.next/server/app/infra/sources.segments/_full.segment.rsc +5 -5
  394. package/.next/standalone/.next/server/app/infra/sources.segments/_head.segment.rsc +1 -1
  395. package/.next/standalone/.next/server/app/infra/sources.segments/_index.segment.rsc +3 -3
  396. package/.next/standalone/.next/server/app/infra/sources.segments/_tree.segment.rsc +2 -2
  397. package/.next/standalone/.next/server/app/infra.html +1 -1
  398. package/.next/standalone/.next/server/app/infra.rsc +5 -5
  399. package/.next/standalone/.next/server/app/infra.segments/!KG1haW4p/infra/__PAGE__.segment.rsc +2 -2
  400. package/.next/standalone/.next/server/app/infra.segments/!KG1haW4p/infra.segment.rsc +1 -1
  401. package/.next/standalone/.next/server/app/infra.segments/!KG1haW4p.segment.rsc +2 -2
  402. package/.next/standalone/.next/server/app/infra.segments/_full.segment.rsc +5 -5
  403. package/.next/standalone/.next/server/app/infra.segments/_head.segment.rsc +1 -1
  404. package/.next/standalone/.next/server/app/infra.segments/_index.segment.rsc +3 -3
  405. package/.next/standalone/.next/server/app/infra.segments/_tree.segment.rsc +2 -2
  406. package/.next/standalone/.next/server/app/login/page_client-reference-manifest.js +1 -1
  407. package/.next/standalone/.next/server/app/login.html +1 -1
  408. package/.next/standalone/.next/server/app/login.rsc +4 -4
  409. package/.next/standalone/.next/server/app/login.segments/_full.segment.rsc +4 -4
  410. package/.next/standalone/.next/server/app/login.segments/_head.segment.rsc +1 -1
  411. package/.next/standalone/.next/server/app/login.segments/_index.segment.rsc +3 -3
  412. package/.next/standalone/.next/server/app/login.segments/_tree.segment.rsc +2 -2
  413. package/.next/standalone/.next/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
  414. package/.next/standalone/.next/server/app/login.segments/login.segment.rsc +1 -1
  415. package/.next/standalone/.next/server/app/memory.html +1 -1
  416. package/.next/standalone/.next/server/app/memory.rsc +5 -5
  417. package/.next/standalone/.next/server/app/memory.segments/!KG1haW4p/memory/__PAGE__.segment.rsc +2 -2
  418. package/.next/standalone/.next/server/app/memory.segments/!KG1haW4p/memory.segment.rsc +1 -1
  419. package/.next/standalone/.next/server/app/memory.segments/!KG1haW4p.segment.rsc +2 -2
  420. package/.next/standalone/.next/server/app/memory.segments/_full.segment.rsc +5 -5
  421. package/.next/standalone/.next/server/app/memory.segments/_head.segment.rsc +1 -1
  422. package/.next/standalone/.next/server/app/memory.segments/_index.segment.rsc +3 -3
  423. package/.next/standalone/.next/server/app/memory.segments/_tree.segment.rsc +2 -2
  424. package/.next/standalone/.next/server/app/metrics.html +1 -1
  425. package/.next/standalone/.next/server/app/metrics.rsc +5 -5
  426. package/.next/standalone/.next/server/app/metrics.segments/!KG1haW4p/metrics/__PAGE__.segment.rsc +2 -2
  427. package/.next/standalone/.next/server/app/metrics.segments/!KG1haW4p/metrics.segment.rsc +1 -1
  428. package/.next/standalone/.next/server/app/metrics.segments/!KG1haW4p.segment.rsc +2 -2
  429. package/.next/standalone/.next/server/app/metrics.segments/_full.segment.rsc +5 -5
  430. package/.next/standalone/.next/server/app/metrics.segments/_head.segment.rsc +1 -1
  431. package/.next/standalone/.next/server/app/metrics.segments/_index.segment.rsc +3 -3
  432. package/.next/standalone/.next/server/app/metrics.segments/_tree.segment.rsc +2 -2
  433. package/.next/standalone/.next/server/app/modelconfig/registry.html +1 -1
  434. package/.next/standalone/.next/server/app/modelconfig/registry.rsc +5 -5
  435. package/.next/standalone/.next/server/app/modelconfig/registry.segments/!KG1haW4p/modelconfig/registry/__PAGE__.segment.rsc +2 -2
  436. package/.next/standalone/.next/server/app/modelconfig/registry.segments/!KG1haW4p/modelconfig/registry.segment.rsc +1 -1
  437. package/.next/standalone/.next/server/app/modelconfig/registry.segments/!KG1haW4p/modelconfig.segment.rsc +1 -1
  438. package/.next/standalone/.next/server/app/modelconfig/registry.segments/!KG1haW4p.segment.rsc +2 -2
  439. package/.next/standalone/.next/server/app/modelconfig/registry.segments/_full.segment.rsc +5 -5
  440. package/.next/standalone/.next/server/app/modelconfig/registry.segments/_head.segment.rsc +1 -1
  441. package/.next/standalone/.next/server/app/modelconfig/registry.segments/_index.segment.rsc +3 -3
  442. package/.next/standalone/.next/server/app/modelconfig/registry.segments/_tree.segment.rsc +2 -2
  443. package/.next/standalone/.next/server/app/modelconfig/web-search.html +1 -1
  444. package/.next/standalone/.next/server/app/modelconfig/web-search.rsc +5 -5
  445. package/.next/standalone/.next/server/app/modelconfig/web-search.segments/!KG1haW4p/modelconfig/web-search/__PAGE__.segment.rsc +2 -2
  446. package/.next/standalone/.next/server/app/modelconfig/web-search.segments/!KG1haW4p/modelconfig/web-search.segment.rsc +1 -1
  447. package/.next/standalone/.next/server/app/modelconfig/web-search.segments/!KG1haW4p/modelconfig.segment.rsc +1 -1
  448. package/.next/standalone/.next/server/app/modelconfig/web-search.segments/!KG1haW4p.segment.rsc +2 -2
  449. package/.next/standalone/.next/server/app/modelconfig/web-search.segments/_full.segment.rsc +5 -5
  450. package/.next/standalone/.next/server/app/modelconfig/web-search.segments/_head.segment.rsc +1 -1
  451. package/.next/standalone/.next/server/app/modelconfig/web-search.segments/_index.segment.rsc +3 -3
  452. package/.next/standalone/.next/server/app/modelconfig/web-search.segments/_tree.segment.rsc +2 -2
  453. package/.next/standalone/.next/server/app/modelconfig.html +1 -1
  454. package/.next/standalone/.next/server/app/modelconfig.rsc +4 -4
  455. package/.next/standalone/.next/server/app/modelconfig.segments/!KG1haW4p/modelconfig/__PAGE__.segment.rsc +1 -1
  456. package/.next/standalone/.next/server/app/modelconfig.segments/!KG1haW4p/modelconfig.segment.rsc +1 -1
  457. package/.next/standalone/.next/server/app/modelconfig.segments/!KG1haW4p.segment.rsc +2 -2
  458. package/.next/standalone/.next/server/app/modelconfig.segments/_full.segment.rsc +4 -4
  459. package/.next/standalone/.next/server/app/modelconfig.segments/_head.segment.rsc +1 -1
  460. package/.next/standalone/.next/server/app/modelconfig.segments/_index.segment.rsc +3 -3
  461. package/.next/standalone/.next/server/app/modelconfig.segments/_tree.segment.rsc +2 -2
  462. package/.next/standalone/.next/server/app/optapi.html +1 -1
  463. package/.next/standalone/.next/server/app/optapi.rsc +5 -5
  464. package/.next/standalone/.next/server/app/optapi.segments/!KG1haW4p/optapi/__PAGE__.segment.rsc +2 -2
  465. package/.next/standalone/.next/server/app/optapi.segments/!KG1haW4p/optapi.segment.rsc +1 -1
  466. package/.next/standalone/.next/server/app/optapi.segments/!KG1haW4p.segment.rsc +2 -2
  467. package/.next/standalone/.next/server/app/optapi.segments/_full.segment.rsc +5 -5
  468. package/.next/standalone/.next/server/app/optapi.segments/_head.segment.rsc +1 -1
  469. package/.next/standalone/.next/server/app/optapi.segments/_index.segment.rsc +3 -3
  470. package/.next/standalone/.next/server/app/optapi.segments/_tree.segment.rsc +2 -2
  471. package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  472. package/.next/standalone/.next/server/app/quality.html +1 -1
  473. package/.next/standalone/.next/server/app/quality.rsc +5 -5
  474. package/.next/standalone/.next/server/app/quality.segments/!KG1haW4p/quality/__PAGE__.segment.rsc +2 -2
  475. package/.next/standalone/.next/server/app/quality.segments/!KG1haW4p/quality.segment.rsc +1 -1
  476. package/.next/standalone/.next/server/app/quality.segments/!KG1haW4p.segment.rsc +2 -2
  477. package/.next/standalone/.next/server/app/quality.segments/_full.segment.rsc +5 -5
  478. package/.next/standalone/.next/server/app/quality.segments/_head.segment.rsc +1 -1
  479. package/.next/standalone/.next/server/app/quality.segments/_index.segment.rsc +3 -3
  480. package/.next/standalone/.next/server/app/quality.segments/_tree.segment.rsc +2 -2
  481. package/.next/standalone/.next/server/app/security.html +1 -1
  482. package/.next/standalone/.next/server/app/security.rsc +5 -5
  483. package/.next/standalone/.next/server/app/security.segments/!KG1haW4p/security/__PAGE__.segment.rsc +2 -2
  484. package/.next/standalone/.next/server/app/security.segments/!KG1haW4p/security.segment.rsc +1 -1
  485. package/.next/standalone/.next/server/app/security.segments/!KG1haW4p.segment.rsc +2 -2
  486. package/.next/standalone/.next/server/app/security.segments/_full.segment.rsc +5 -5
  487. package/.next/standalone/.next/server/app/security.segments/_head.segment.rsc +1 -1
  488. package/.next/standalone/.next/server/app/security.segments/_index.segment.rsc +3 -3
  489. package/.next/standalone/.next/server/app/security.segments/_tree.segment.rsc +2 -2
  490. package/.next/standalone/.next/server/app/skill-detail/page_client-reference-manifest.js +1 -1
  491. package/.next/standalone/.next/server/app/skill-detail.html +1 -1
  492. package/.next/standalone/.next/server/app/skill-detail.rsc +4 -4
  493. package/.next/standalone/.next/server/app/skill-detail.segments/_full.segment.rsc +4 -4
  494. package/.next/standalone/.next/server/app/skill-detail.segments/_head.segment.rsc +1 -1
  495. package/.next/standalone/.next/server/app/skill-detail.segments/_index.segment.rsc +3 -3
  496. package/.next/standalone/.next/server/app/skill-detail.segments/_tree.segment.rsc +2 -2
  497. package/.next/standalone/.next/server/app/skill-detail.segments/skill-detail/__PAGE__.segment.rsc +2 -2
  498. package/.next/standalone/.next/server/app/skill-detail.segments/skill-detail.segment.rsc +1 -1
  499. package/.next/standalone/.next/server/app/skill-eval/grayscale.html +2 -2
  500. package/.next/standalone/.next/server/app/skill-eval/grayscale.rsc +6 -6
  501. package/.next/standalone/.next/server/app/skill-eval/grayscale.segments/!KG1haW4p/skill-eval/grayscale/__PAGE__.segment.rsc +2 -2
  502. package/.next/standalone/.next/server/app/skill-eval/grayscale.segments/!KG1haW4p/skill-eval/grayscale.segment.rsc +1 -1
  503. package/.next/standalone/.next/server/app/skill-eval/grayscale.segments/!KG1haW4p/skill-eval.segment.rsc +1 -1
  504. package/.next/standalone/.next/server/app/skill-eval/grayscale.segments/!KG1haW4p.segment.rsc +2 -2
  505. package/.next/standalone/.next/server/app/skill-eval/grayscale.segments/_full.segment.rsc +6 -6
  506. package/.next/standalone/.next/server/app/skill-eval/grayscale.segments/_head.segment.rsc +1 -1
  507. package/.next/standalone/.next/server/app/skill-eval/grayscale.segments/_index.segment.rsc +3 -3
  508. package/.next/standalone/.next/server/app/skill-eval/grayscale.segments/_tree.segment.rsc +2 -2
  509. package/.next/standalone/.next/server/app/skill-eval.html +1 -1
  510. package/.next/standalone/.next/server/app/skill-eval.rsc +6 -6
  511. package/.next/standalone/.next/server/app/skill-eval.segments/!KG1haW4p/skill-eval/__PAGE__.segment.rsc +2 -2
  512. package/.next/standalone/.next/server/app/skill-eval.segments/!KG1haW4p/skill-eval.segment.rsc +1 -1
  513. package/.next/standalone/.next/server/app/skill-eval.segments/!KG1haW4p.segment.rsc +2 -2
  514. package/.next/standalone/.next/server/app/skill-eval.segments/_full.segment.rsc +6 -6
  515. package/.next/standalone/.next/server/app/skill-eval.segments/_head.segment.rsc +1 -1
  516. package/.next/standalone/.next/server/app/skill-eval.segments/_index.segment.rsc +3 -3
  517. package/.next/standalone/.next/server/app/skill-eval.segments/_tree.segment.rsc +2 -2
  518. package/.next/standalone/.next/server/app/skill-generator.html +1 -1
  519. package/.next/standalone/.next/server/app/skill-generator.rsc +5 -5
  520. package/.next/standalone/.next/server/app/skill-generator.segments/!KG1haW4p/skill-generator/__PAGE__.segment.rsc +2 -2
  521. package/.next/standalone/.next/server/app/skill-generator.segments/!KG1haW4p/skill-generator.segment.rsc +1 -1
  522. package/.next/standalone/.next/server/app/skill-generator.segments/!KG1haW4p.segment.rsc +2 -2
  523. package/.next/standalone/.next/server/app/skill-generator.segments/_full.segment.rsc +5 -5
  524. package/.next/standalone/.next/server/app/skill-generator.segments/_head.segment.rsc +1 -1
  525. package/.next/standalone/.next/server/app/skill-generator.segments/_index.segment.rsc +3 -3
  526. package/.next/standalone/.next/server/app/skill-generator.segments/_tree.segment.rsc +2 -2
  527. package/.next/standalone/.next/server/app/skill-history.html +1 -1
  528. package/.next/standalone/.next/server/app/skill-history.rsc +6 -6
  529. package/.next/standalone/.next/server/app/skill-history.segments/!KG1haW4p/skill-history/__PAGE__.segment.rsc +2 -2
  530. package/.next/standalone/.next/server/app/skill-history.segments/!KG1haW4p/skill-history.segment.rsc +1 -1
  531. package/.next/standalone/.next/server/app/skill-history.segments/!KG1haW4p.segment.rsc +2 -2
  532. package/.next/standalone/.next/server/app/skill-history.segments/_full.segment.rsc +6 -6
  533. package/.next/standalone/.next/server/app/skill-history.segments/_head.segment.rsc +1 -1
  534. package/.next/standalone/.next/server/app/skill-history.segments/_index.segment.rsc +3 -3
  535. package/.next/standalone/.next/server/app/skill-history.segments/_tree.segment.rsc +2 -2
  536. package/.next/standalone/.next/server/app/skill-opt.html +1 -1
  537. package/.next/standalone/.next/server/app/skill-opt.rsc +5 -5
  538. package/.next/standalone/.next/server/app/skill-opt.segments/!KG1haW4p/skill-opt/__PAGE__.segment.rsc +2 -2
  539. package/.next/standalone/.next/server/app/skill-opt.segments/!KG1haW4p/skill-opt.segment.rsc +1 -1
  540. package/.next/standalone/.next/server/app/skill-opt.segments/!KG1haW4p.segment.rsc +2 -2
  541. package/.next/standalone/.next/server/app/skill-opt.segments/_full.segment.rsc +5 -5
  542. package/.next/standalone/.next/server/app/skill-opt.segments/_head.segment.rsc +1 -1
  543. package/.next/standalone/.next/server/app/skill-opt.segments/_index.segment.rsc +3 -3
  544. package/.next/standalone/.next/server/app/skill-opt.segments/_tree.segment.rsc +2 -2
  545. package/.next/standalone/.next/server/app/skill-release.html +1 -1
  546. package/.next/standalone/.next/server/app/skill-release.rsc +5 -5
  547. package/.next/standalone/.next/server/app/skill-release.segments/!KG1haW4p/skill-release/__PAGE__.segment.rsc +2 -2
  548. package/.next/standalone/.next/server/app/skill-release.segments/!KG1haW4p/skill-release.segment.rsc +1 -1
  549. package/.next/standalone/.next/server/app/skill-release.segments/!KG1haW4p.segment.rsc +2 -2
  550. package/.next/standalone/.next/server/app/skill-release.segments/_full.segment.rsc +5 -5
  551. package/.next/standalone/.next/server/app/skill-release.segments/_head.segment.rsc +1 -1
  552. package/.next/standalone/.next/server/app/skill-release.segments/_index.segment.rsc +3 -3
  553. package/.next/standalone/.next/server/app/skill-release.segments/_tree.segment.rsc +2 -2
  554. package/.next/standalone/.next/server/app/skills.html +1 -1
  555. package/.next/standalone/.next/server/app/skills.rsc +5 -5
  556. package/.next/standalone/.next/server/app/skills.segments/!KG1haW4p/skills/__PAGE__.segment.rsc +2 -2
  557. package/.next/standalone/.next/server/app/skills.segments/!KG1haW4p/skills.segment.rsc +1 -1
  558. package/.next/standalone/.next/server/app/skills.segments/!KG1haW4p.segment.rsc +2 -2
  559. package/.next/standalone/.next/server/app/skills.segments/_full.segment.rsc +5 -5
  560. package/.next/standalone/.next/server/app/skills.segments/_head.segment.rsc +1 -1
  561. package/.next/standalone/.next/server/app/skills.segments/_index.segment.rsc +3 -3
  562. package/.next/standalone/.next/server/app/skills.segments/_tree.segment.rsc +2 -2
  563. package/.next/standalone/.next/server/app/trace.html +1 -1
  564. package/.next/standalone/.next/server/app/trace.rsc +8 -8
  565. package/.next/standalone/.next/server/app/trace.segments/!KG1haW4p/trace/__PAGE__.segment.rsc +2 -2
  566. package/.next/standalone/.next/server/app/trace.segments/!KG1haW4p/trace.segment.rsc +1 -1
  567. package/.next/standalone/.next/server/app/trace.segments/!KG1haW4p.segment.rsc +2 -2
  568. package/.next/standalone/.next/server/app/trace.segments/_full.segment.rsc +8 -8
  569. package/.next/standalone/.next/server/app/trace.segments/_head.segment.rsc +1 -1
  570. package/.next/standalone/.next/server/app/trace.segments/_index.segment.rsc +3 -3
  571. package/.next/standalone/.next/server/app/trace.segments/_tree.segment.rsc +2 -2
  572. package/.next/standalone/.next/server/app/version-analysis.html +1 -0
  573. package/.next/standalone/.next/server/app/version-analysis.meta +16 -0
  574. package/.next/standalone/.next/server/app/version-analysis.rsc +23 -0
  575. package/.next/standalone/.next/server/app/version-analysis.segments/!KG1haW4p/version-analysis/__PAGE__.segment.rsc +9 -0
  576. package/.next/standalone/.next/server/app/version-analysis.segments/!KG1haW4p/version-analysis.segment.rsc +4 -0
  577. package/.next/standalone/.next/server/app/version-analysis.segments/!KG1haW4p.segment.rsc +7 -0
  578. package/.next/standalone/.next/server/app/version-analysis.segments/_full.segment.rsc +23 -0
  579. package/.next/standalone/.next/server/app/version-analysis.segments/_head.segment.rsc +6 -0
  580. package/.next/standalone/.next/server/app/version-analysis.segments/_index.segment.rsc +6 -0
  581. package/.next/standalone/.next/server/app/version-analysis.segments/_tree.segment.rsc +2 -0
  582. package/.next/standalone/.next/server/app/version-management.html +1 -0
  583. package/.next/standalone/.next/server/app/version-management.meta +16 -0
  584. package/.next/standalone/.next/server/app/version-management.rsc +22 -0
  585. package/.next/standalone/.next/server/app/version-management.segments/!KG1haW4p/version-management/__PAGE__.segment.rsc +9 -0
  586. package/.next/standalone/.next/server/app/version-management.segments/!KG1haW4p/version-management.segment.rsc +4 -0
  587. package/.next/standalone/.next/server/app/version-management.segments/!KG1haW4p.segment.rsc +7 -0
  588. package/.next/standalone/.next/server/app/version-management.segments/_full.segment.rsc +22 -0
  589. package/.next/standalone/.next/server/app/version-management.segments/_head.segment.rsc +6 -0
  590. package/.next/standalone/.next/server/app/version-management.segments/_index.segment.rsc +6 -0
  591. package/.next/standalone/.next/server/app/version-management.segments/_tree.segment.rsc +2 -0
  592. package/.next/standalone/.next/server/app-paths-manifest.json +9 -0
  593. package/.next/standalone/.next/server/chunks/[root-of-the-server]__096d00c3._.js +3 -0
  594. package/.next/standalone/.next/server/chunks/[root-of-the-server]__28078c4e._.js +1 -1
  595. package/.next/standalone/.next/server/chunks/[root-of-the-server]__4509f30c._.js +1 -1
  596. package/.next/standalone/.next/server/chunks/[root-of-the-server]__5386e9b4._.js +22 -0
  597. package/.next/standalone/.next/server/chunks/[root-of-the-server]__5cb21a03._.js +3 -0
  598. package/.next/standalone/.next/server/chunks/[root-of-the-server]__6fe0c73e._.js +1 -1
  599. package/.next/standalone/.next/server/chunks/[root-of-the-server]__88e070f0._.js +1 -1
  600. package/.next/standalone/.next/server/chunks/[root-of-the-server]__98ce63c7._.js +1 -1
  601. package/.next/standalone/.next/server/chunks/[root-of-the-server]__9f6a4627._.js +1 -1
  602. package/.next/standalone/.next/server/chunks/[root-of-the-server]__b0d1e6e5._.js +22 -0
  603. package/.next/standalone/.next/server/chunks/[root-of-the-server]__c60fa3da._.js +22 -0
  604. package/.next/standalone/.next/server/chunks/[root-of-the-server]__c875b500._.js +3 -0
  605. package/.next/standalone/.next/server/chunks/[root-of-the-server]__c8b9af98._.js +1 -1
  606. package/.next/standalone/.next/server/chunks/[root-of-the-server]__cfcf074d._.js +3 -0
  607. package/.next/standalone/.next/server/chunks/[root-of-the-server]__d754b2c2._.js +3 -0
  608. package/.next/standalone/.next/server/chunks/[root-of-the-server]__e60b9568._.js +22 -0
  609. package/.next/standalone/.next/server/chunks/[root-of-the-server]__e8b9c639._.js +22 -0
  610. package/.next/standalone/.next/server/chunks/[root-of-the-server]__f30eea21._.js +3 -0
  611. package/.next/standalone/.next/server/chunks/_05c80664._.js +1 -1
  612. package/.next/standalone/.next/server/chunks/_0ce5f29d._.js +1 -1
  613. package/.next/standalone/.next/server/chunks/_0e34c123._.js +3 -3
  614. package/.next/standalone/.next/server/chunks/_1c2f3589._.js +1 -1
  615. package/.next/standalone/.next/server/chunks/{_1a32fa23._.js → _5090183e._.js} +2 -2
  616. package/.next/standalone/.next/server/chunks/{_e84c3e5f._.js → _6a203624._.js} +1 -1
  617. package/.next/standalone/.next/server/chunks/{_a0074544._.js → _70b9b972._.js} +1 -1
  618. package/.next/standalone/.next/server/chunks/_78c6471e._.js +1 -1
  619. package/.next/standalone/.next/server/chunks/_adf9e9c5._.js +1 -1
  620. package/.next/standalone/.next/server/chunks/_b172b746._.js +3 -3
  621. package/.next/standalone/.next/server/chunks/_cfa898f4._.js +1 -1
  622. package/.next/standalone/.next/server/chunks/{_547fcde4._.js → _d02fac80._.js} +2 -2
  623. package/.next/standalone/.next/server/chunks/_d043f698._.js +1 -1
  624. package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_fleet_agent_route_actions_b98e2c99.js +3 -0
  625. package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_modelconfig_pricing_route_actions_bca6856d.js +3 -0
  626. package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_tags_[id]_route_actions_a6f8b324.js +3 -0
  627. package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_tags_route_actions_caf13f5f.js +3 -0
  628. package/.next/standalone/.next/server/chunks/bec2d_app_api_observe_version-analysis_tags_[tagId]_traces_route_actions_ff37f2d3.js +3 -0
  629. package/.next/standalone/.next/server/chunks/ce889_server_app_api_observe_executions_[executionId]_tags_route_actions_08aa41a4.js +3 -0
  630. package/.next/standalone/.next/server/chunks/ce889_server_app_api_observe_version-analysis_compare_route_actions_b48ab573.js +3 -0
  631. package/.next/standalone/.next/server/chunks/src_lib_266d6cf4._.js +51 -0
  632. package/.next/standalone/.next/server/chunks/src_lib_5d95b500._.js +3 -0
  633. package/.next/standalone/.next/server/chunks/src_lib_67530201._.js +51 -0
  634. package/.next/standalone/.next/server/chunks/src_lib_9513f84d._.js +48 -0
  635. package/.next/standalone/.next/server/chunks/src_lib_9d09752c._.js +1 -1
  636. package/.next/standalone/.next/server/chunks/src_lib_a03a423b._.js +48 -0
  637. package/.next/standalone/.next/server/chunks/src_lib_a2a34aa6._.js +1 -1
  638. package/.next/standalone/.next/server/chunks/{src_lib_4751db31._.js → src_lib_dc72b90b._.js} +1 -1
  639. package/.next/standalone/.next/server/chunks/src_lib_ea85a447._.js +1 -1
  640. package/.next/standalone/.next/server/chunks/src_lib_engine_general-agent_970b1dfe._.js +2 -2
  641. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0eb5d21d._.js +3 -0
  642. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__83687057._.js +3 -0
  643. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__85e7edfe._.js +3 -0
  644. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__b8d3d1c3._.js +8 -0
  645. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__c69baa4a._.js +3 -0
  646. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__f82e551e._.js +3 -0
  647. package/.next/standalone/.next/server/chunks/ssr/_051b1443._.js +3 -0
  648. package/.next/standalone/.next/server/chunks/ssr/_0ae78458._.js +3 -0
  649. package/.next/standalone/.next/server/chunks/ssr/{_400d0da3._.js → _1278164d._.js} +2 -2
  650. package/.next/standalone/.next/server/chunks/ssr/_15e714f2._.js +3 -0
  651. package/.next/standalone/.next/server/chunks/ssr/_2f20fbfc._.js +3 -0
  652. package/.next/standalone/.next/server/chunks/ssr/_4e720925._.js +3 -0
  653. package/.next/standalone/.next/server/chunks/ssr/_5aa55aa6._.js +3 -0
  654. package/.next/standalone/.next/server/chunks/ssr/_8b68f69f._.js +3 -0
  655. package/.next/standalone/.next/server/chunks/ssr/_8d4b753e._.js +3 -0
  656. package/.next/standalone/.next/server/chunks/ssr/_976dfbab._.js +4 -0
  657. package/.next/standalone/.next/server/chunks/ssr/_aab048d0._.js +1 -1
  658. package/.next/standalone/.next/server/chunks/ssr/_be1ffbbf._.js +12 -0
  659. package/.next/standalone/.next/server/chunks/ssr/_c815e0e7._.js +4 -0
  660. package/.next/standalone/.next/server/chunks/ssr/_e4c81263._.js +3 -0
  661. package/.next/standalone/.next/server/chunks/ssr/{_a3d5f9bc._.js → _e5ee8977._.js} +2 -2
  662. package/.next/standalone/.next/server/chunks/ssr/_f634ea15._.js +12 -0
  663. package/.next/standalone/.next/server/chunks/ssr/_next-internal_server_app_(main)_version-analysis_page_actions_479d49a7.js +3 -0
  664. package/.next/standalone/.next/server/chunks/ssr/_next-internal_server_app_(main)_version-management_page_actions_aea5ae93.js +3 -0
  665. package/.next/standalone/.next/server/chunks/ssr/node_modules_11388c48._.js +3 -0
  666. package/.next/standalone/.next/server/chunks/ssr/node_modules_32596a86._.js +3 -0
  667. package/.next/standalone/.next/server/chunks/ssr/{node_modules_a443e166._.js → node_modules_3b1fd8eb._.js} +2 -2
  668. package/.next/standalone/.next/server/chunks/ssr/node_modules_7680a21d._.js +3 -0
  669. package/.next/standalone/.next/server/chunks/ssr/node_modules_bfffaa78._.js +3 -0
  670. package/.next/standalone/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_icons_2e7afafc._.js +3 -0
  671. package/.next/standalone/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_icons_cd0b182b._.js +3 -0
  672. package/.next/standalone/.next/server/chunks/ssr/src_app_(main)_accessconfig_install_page_tsx_6f4ef3fc._.js +3 -3
  673. package/.next/standalone/.next/server/chunks/ssr/src_app_(main)_dashboard_page_tsx_7eac7774._.js +1 -1
  674. package/.next/standalone/.next/server/chunks/ssr/src_app_(main)_fault_page_tsx_96431a5d._.js +2 -2
  675. package/.next/standalone/.next/server/chunks/ssr/src_app_(main)_metrics_page_tsx_f1599761._.js +1 -1
  676. package/.next/standalone/.next/server/chunks/ssr/src_app_(main)_modelconfig_registry_page_tsx_1ead2fd4._.js +1 -1
  677. package/.next/standalone/.next/server/chunks/ssr/src_app_(main)_quality_page_tsx_26bb8e80._.js +1 -1
  678. package/.next/standalone/.next/server/chunks/ssr/src_app_(main)_trace_page_tsx_41e7865d._.js +1 -1
  679. package/.next/standalone/.next/server/chunks/ssr/src_app_(main)_version-analysis_page_tsx_63ae8791._.js +3 -0
  680. package/.next/standalone/.next/server/chunks/ssr/src_app_(main)_version-management_page_tsx_87fe0372._.js +3 -0
  681. package/.next/standalone/.next/server/chunks/ssr/src_components_ui_select_tsx_4c0f64d8._.js +1 -1
  682. package/.next/standalone/.next/server/chunks/ssr/{src_lib_evaluators_7597c2fd._.js → src_lib_070bb60a._.js} +2 -2
  683. package/.next/standalone/.next/server/chunks/ssr/src_lib_client_locale-context_tsx_7184d9aa._.js +1 -1
  684. package/.next/standalone/.next/server/pages/404.html +1 -1
  685. package/.next/standalone/.next/server/pages/500.html +2 -2
  686. package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
  687. package/.next/standalone/.next/server/server-reference-manifest.json +1 -1
  688. package/.next/standalone/.next/static/chunks/0257c68e82e9f2b0.js +1 -0
  689. package/.next/standalone/.next/static/chunks/{8754e0cf40813330.js → 06ac4297aa02f40a.js} +1 -1
  690. package/.next/standalone/.next/static/chunks/151b95e65092aa16.js +1 -0
  691. package/.next/standalone/.next/static/chunks/1624a1adcb73d784.js +1 -0
  692. package/.next/standalone/.next/static/chunks/1f173de64ad85757.js +10 -0
  693. package/.next/standalone/.next/static/chunks/{4dcd21eef469e66b.js → 2064add303799ffc.js} +1 -1
  694. package/.next/standalone/.next/static/chunks/2fb55cc737806639.js +1 -0
  695. package/.next/standalone/.next/static/chunks/3184105f3d2b47a1.js +10 -0
  696. package/.next/standalone/.next/static/chunks/379315313d164a57.js +1 -0
  697. package/.next/standalone/.next/static/chunks/39157b51ed6489eb.js +1 -0
  698. package/.next/standalone/.next/static/chunks/{dc22f906bd43e9a3.js → 46308ae9f83ac112.js} +3 -3
  699. package/.next/standalone/.next/static/chunks/4d2c017f2f4c9160.css +1 -0
  700. package/.next/standalone/.next/static/chunks/54538e1a80e53392.js +1 -0
  701. package/.next/standalone/.next/static/chunks/599fdc4cf6eb9e95.js +1 -0
  702. package/.next/standalone/.next/static/chunks/5be4d965983c6b40.js +6 -0
  703. package/.next/standalone/.next/static/chunks/63220d0acc5073cc.js +1 -0
  704. package/.next/standalone/.next/static/chunks/6da1d3424f804755.js +1 -0
  705. package/.next/standalone/.next/static/chunks/{04bc84975996b76d.js → 7884153c8f8649dd.js} +1 -1
  706. package/.next/{static/chunks/6b2552d3da7451ee.js → standalone/.next/static/chunks/85ce12a5c9536a2d.js} +1 -1
  707. package/.next/standalone/.next/static/chunks/8668d6f4c34d1e67.js +3 -0
  708. package/.next/standalone/.next/static/chunks/913c61f4f0a12da4.js +1 -0
  709. package/.next/standalone/.next/static/chunks/97822ca2c186f93d.js +1 -0
  710. package/.next/{static/chunks/96c7e2e47438553a.js → standalone/.next/static/chunks/98588c35b1e00bea.js} +1 -1
  711. package/.next/standalone/.next/static/chunks/a99fb4f44f9a41f3.js +1 -0
  712. package/.next/standalone/.next/static/chunks/b11e37b43e38eb95.js +1 -0
  713. package/.next/standalone/.next/static/chunks/b223106f6c610a67.js +1 -0
  714. package/.next/standalone/.next/static/chunks/cc9a7b6a8edabe81.js +1 -0
  715. package/.next/standalone/.next/static/chunks/cf0b4e5d7b804bf5.js +1 -0
  716. package/.next/standalone/.next/static/chunks/cfb3924a60d22c64.js +1 -0
  717. package/.next/standalone/.next/static/chunks/d15d7f6146b85000.js +1 -0
  718. package/.next/standalone/.next/static/chunks/dee90c3e29cd39bb.js +1 -0
  719. package/.next/standalone/.next/static/chunks/df6f2eedbe05162e.js +1 -0
  720. package/.next/standalone/.next/static/chunks/e0af9e5baf811284.js +4 -0
  721. package/.next/standalone/.next/static/chunks/f61ffd647f90b66c.js +1 -0
  722. package/.next/standalone/.next/static/chunks/{bf909bd0ff1898e4.js → f6954ae67d81050e.js} +1 -1
  723. package/.next/standalone/.next/static/chunks/fc7f5db841a7032a.js +1 -0
  724. package/.next/standalone/docker-compose.amd64.yml +2 -1
  725. package/.next/standalone/docker-compose.arm64.yml +11 -0
  726. package/.next/standalone/node_modules/.prisma/client/edge.js +26 -3
  727. package/.next/standalone/node_modules/.prisma/client/index-browser.js +23 -0
  728. package/.next/standalone/node_modules/.prisma/client/index.js +26 -3
  729. package/.next/standalone/node_modules/.prisma/client/package.json +1 -1
  730. package/.next/standalone/node_modules/.prisma/client/schema.prisma +39 -0
  731. package/.next/standalone/node_modules/.prisma/client/wasm.js +23 -0
  732. package/.next/standalone/package.json +1 -1
  733. package/.next/standalone/prisma/schema.prisma +38 -0
  734. package/.next/static/chunks/0257c68e82e9f2b0.js +1 -0
  735. package/.next/static/chunks/{8754e0cf40813330.js → 06ac4297aa02f40a.js} +1 -1
  736. package/.next/static/chunks/151b95e65092aa16.js +1 -0
  737. package/.next/static/chunks/1624a1adcb73d784.js +1 -0
  738. package/.next/static/chunks/1f173de64ad85757.js +10 -0
  739. package/.next/static/chunks/{4dcd21eef469e66b.js → 2064add303799ffc.js} +1 -1
  740. package/.next/static/chunks/2fb55cc737806639.js +1 -0
  741. package/.next/static/chunks/3184105f3d2b47a1.js +10 -0
  742. package/.next/static/chunks/379315313d164a57.js +1 -0
  743. package/.next/static/chunks/39157b51ed6489eb.js +1 -0
  744. package/.next/static/chunks/{dc22f906bd43e9a3.js → 46308ae9f83ac112.js} +3 -3
  745. package/.next/static/chunks/4d2c017f2f4c9160.css +1 -0
  746. package/.next/static/chunks/54538e1a80e53392.js +1 -0
  747. package/.next/static/chunks/599fdc4cf6eb9e95.js +1 -0
  748. package/.next/static/chunks/5be4d965983c6b40.js +6 -0
  749. package/.next/static/chunks/63220d0acc5073cc.js +1 -0
  750. package/.next/static/chunks/6da1d3424f804755.js +1 -0
  751. package/.next/static/chunks/{04bc84975996b76d.js → 7884153c8f8649dd.js} +1 -1
  752. package/.next/{standalone/.next/static/chunks/6b2552d3da7451ee.js → static/chunks/85ce12a5c9536a2d.js} +1 -1
  753. package/.next/static/chunks/8668d6f4c34d1e67.js +3 -0
  754. package/.next/static/chunks/913c61f4f0a12da4.js +1 -0
  755. package/.next/static/chunks/97822ca2c186f93d.js +1 -0
  756. package/.next/{standalone/.next/static/chunks/96c7e2e47438553a.js → static/chunks/98588c35b1e00bea.js} +1 -1
  757. package/.next/static/chunks/a99fb4f44f9a41f3.js +1 -0
  758. package/.next/static/chunks/b11e37b43e38eb95.js +1 -0
  759. package/.next/static/chunks/b223106f6c610a67.js +1 -0
  760. package/.next/static/chunks/cc9a7b6a8edabe81.js +1 -0
  761. package/.next/static/chunks/cf0b4e5d7b804bf5.js +1 -0
  762. package/.next/static/chunks/cfb3924a60d22c64.js +1 -0
  763. package/.next/static/chunks/d15d7f6146b85000.js +1 -0
  764. package/.next/static/chunks/dee90c3e29cd39bb.js +1 -0
  765. package/.next/static/chunks/df6f2eedbe05162e.js +1 -0
  766. package/.next/static/chunks/e0af9e5baf811284.js +4 -0
  767. package/.next/static/chunks/f61ffd647f90b66c.js +1 -0
  768. package/.next/static/chunks/{bf909bd0ff1898e4.js → f6954ae67d81050e.js} +1 -1
  769. package/.next/static/chunks/fc7f5db841a7032a.js +1 -0
  770. package/package.json +1 -1
  771. package/prisma/schema.prisma +38 -0
  772. package/.next/standalone/.next/server/chunks/[root-of-the-server]__2574e6ed._.js +0 -3
  773. package/.next/standalone/.next/server/chunks/[root-of-the-server]__2710fb53._.js +0 -3
  774. package/.next/standalone/.next/server/chunks/[root-of-the-server]__8cc92af1._.js +0 -3
  775. package/.next/standalone/.next/server/chunks/[root-of-the-server]__9d2e5f60._.js +0 -3
  776. package/.next/standalone/.next/server/chunks/[root-of-the-server]__bd3dc3ab._.js +0 -3
  777. package/.next/standalone/.next/server/chunks/src_lib_6cb48964._.js +0 -32
  778. package/.next/standalone/.next/server/chunks/src_lib_a3155704._.js +0 -3
  779. package/.next/standalone/.next/server/chunks/src_lib_baaf83ef._.js +0 -29
  780. package/.next/standalone/.next/server/chunks/src_lib_bf0ee699._.js +0 -32
  781. package/.next/standalone/.next/server/chunks/src_lib_dbf3c792._.js +0 -29
  782. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__2ec2bb09._.js +0 -3
  783. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__3cb83dc3._.js +0 -3
  784. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__c9cf8076._.js +0 -8
  785. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__fc94ba06._.js +0 -3
  786. package/.next/standalone/.next/server/chunks/ssr/_0141e5c7._.js +0 -3
  787. package/.next/standalone/.next/server/chunks/ssr/_0acdaaae._.js +0 -3
  788. package/.next/standalone/.next/server/chunks/ssr/_231821bd._.js +0 -3
  789. package/.next/standalone/.next/server/chunks/ssr/_5d1f8671._.js +0 -12
  790. package/.next/standalone/.next/server/chunks/ssr/_8bba8b8d._.js +0 -3
  791. package/.next/standalone/.next/server/chunks/ssr/_96725836._.js +0 -12
  792. package/.next/standalone/.next/server/chunks/ssr/_b08dc931._.js +0 -3
  793. package/.next/standalone/.next/server/chunks/ssr/_c4db9cec._.js +0 -3
  794. package/.next/standalone/.next/server/chunks/ssr/node_modules_8bfa35b3._.js +0 -3
  795. package/.next/standalone/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_icons_30858f09._.js +0 -3
  796. package/.next/standalone/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_icons_f1e06ad8._.js +0 -3
  797. package/.next/standalone/.next/static/chunks/0b6bd84bf10579a4.js +0 -10
  798. package/.next/standalone/.next/static/chunks/0bca64d67dceae3f.js +0 -1
  799. package/.next/standalone/.next/static/chunks/16047b19dda5c90d.js +0 -10
  800. package/.next/standalone/.next/static/chunks/3a0f454536f3ebc8.js +0 -1
  801. package/.next/standalone/.next/static/chunks/3d19f62114122bd3.js +0 -1
  802. package/.next/standalone/.next/static/chunks/3d6127f72467176d.js +0 -1
  803. package/.next/standalone/.next/static/chunks/44545e70bb7a33b8.js +0 -1
  804. package/.next/standalone/.next/static/chunks/4e52a5c5e332595a.js +0 -1
  805. package/.next/standalone/.next/static/chunks/6238734a2f04b1f9.js +0 -1
  806. package/.next/standalone/.next/static/chunks/66b23011cd8544ad.js +0 -1
  807. package/.next/standalone/.next/static/chunks/7a758615e3d35d6d.js +0 -1
  808. package/.next/standalone/.next/static/chunks/7a7dc24eed0484dc.js +0 -1
  809. package/.next/standalone/.next/static/chunks/7d4fa817c5229801.js +0 -1
  810. package/.next/standalone/.next/static/chunks/8f18a711543d804a.js +0 -1
  811. package/.next/standalone/.next/static/chunks/9155a6c07dc0502d.js +0 -6
  812. package/.next/standalone/.next/static/chunks/94fdb955b1dc512a.js +0 -1
  813. package/.next/standalone/.next/static/chunks/97b8d7ea5d04e2a2.js +0 -1
  814. package/.next/standalone/.next/static/chunks/a31bf4e176b5e90c.js +0 -3
  815. package/.next/standalone/.next/static/chunks/b9597989b5b0abd3.js +0 -1
  816. package/.next/standalone/.next/static/chunks/d170174df1128338.js +0 -1
  817. package/.next/standalone/.next/static/chunks/d91c2c0bbe0b59ab.js +0 -1
  818. package/.next/standalone/.next/static/chunks/e159d293fc72e91b.css +0 -1
  819. package/.next/standalone/.next/static/chunks/e45a4e085c7ce03c.js +0 -1
  820. package/.next/standalone/.next/static/chunks/efe225251ea151f0.js +0 -4
  821. package/.next/standalone/.next/static/chunks/ffd21617593aaafd.js +0 -1
  822. package/.next/static/chunks/0b6bd84bf10579a4.js +0 -10
  823. package/.next/static/chunks/0bca64d67dceae3f.js +0 -1
  824. package/.next/static/chunks/16047b19dda5c90d.js +0 -10
  825. package/.next/static/chunks/3a0f454536f3ebc8.js +0 -1
  826. package/.next/static/chunks/3d19f62114122bd3.js +0 -1
  827. package/.next/static/chunks/3d6127f72467176d.js +0 -1
  828. package/.next/static/chunks/44545e70bb7a33b8.js +0 -1
  829. package/.next/static/chunks/4e52a5c5e332595a.js +0 -1
  830. package/.next/static/chunks/6238734a2f04b1f9.js +0 -1
  831. package/.next/static/chunks/66b23011cd8544ad.js +0 -1
  832. package/.next/static/chunks/7a758615e3d35d6d.js +0 -1
  833. package/.next/static/chunks/7a7dc24eed0484dc.js +0 -1
  834. package/.next/static/chunks/7d4fa817c5229801.js +0 -1
  835. package/.next/static/chunks/8f18a711543d804a.js +0 -1
  836. package/.next/static/chunks/9155a6c07dc0502d.js +0 -6
  837. package/.next/static/chunks/94fdb955b1dc512a.js +0 -1
  838. package/.next/static/chunks/97b8d7ea5d04e2a2.js +0 -1
  839. package/.next/static/chunks/a31bf4e176b5e90c.js +0 -3
  840. package/.next/static/chunks/b9597989b5b0abd3.js +0 -1
  841. package/.next/static/chunks/d170174df1128338.js +0 -1
  842. package/.next/static/chunks/d91c2c0bbe0b59ab.js +0 -1
  843. package/.next/static/chunks/e159d293fc72e91b.css +0 -1
  844. package/.next/static/chunks/e45a4e085c7ce03c.js +0 -1
  845. package/.next/static/chunks/efe225251ea151f0.js +0 -4
  846. package/.next/static/chunks/ffd21617593aaafd.js +0 -1
  847. /package/.next/standalone/.next/static/{iE8084jR9Kgb7Bhs3Xokh → pzAy0mrZCL0PmE4h3HDut}/_buildManifest.js +0 -0
  848. /package/.next/standalone/.next/static/{iE8084jR9Kgb7Bhs3Xokh → pzAy0mrZCL0PmE4h3HDut}/_clientMiddlewareManifest.json +0 -0
  849. /package/.next/standalone/.next/static/{iE8084jR9Kgb7Bhs3Xokh → pzAy0mrZCL0PmE4h3HDut}/_ssgManifest.js +0 -0
  850. /package/.next/static/{iE8084jR9Kgb7Bhs3Xokh → pzAy0mrZCL0PmE4h3HDut}/_buildManifest.js +0 -0
  851. /package/.next/static/{iE8084jR9Kgb7Bhs3Xokh → pzAy0mrZCL0PmE4h3HDut}/_clientMiddlewareManifest.json +0 -0
  852. /package/.next/static/{iE8084jR9Kgb7Bhs3Xokh → pzAy0mrZCL0PmE4h3HDut}/_ssgManifest.js +0 -0
@@ -1,3 +1,3 @@
1
- module.exports=[536942,a=>{"use strict";var b=a.i(187924),c=a.i(238246),d=a.i(50944),e=a.i(572131),f=a.i(219107),g=a.i(164831);let h=(0,g.default)("download",[["path",{d:"M12 15V3",key:"m9g1x1"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["path",{d:"m7 10 5 5 5-5",key:"brsn70"}]]);var i=a.i(519783),j=a.i(474215),k=a.i(211134),l=a.i(924613),m=a.i(285888);let n=(0,g.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 o=a.i(357307),p=a.i(533838),q=a.i(911715),r=a.i(417949),s=a.i(823292),t=a.i(729936),u=a.i(368114);let v={default:"w-full px-6 py-6",wide:"w-full px-8 py-6",canvas:"w-full p-0"};function w({variant:a="default",className:c,children:d}){return(0,b.jsx)("div",{className:(0,u.cn)("flex-1 flex flex-col min-h-0 overflow-y-auto",v[a],c),children:d})}function x({className:a,children:c}){return(0,b.jsx)("div",{className:(0,u.cn)("flex-1 min-h-0",a),children:c})}function y({className:a,children:c}){return(0,b.jsx)("div",{className:(0,u.cn)("flex items-center justify-between gap-3 mt-4 pt-3 border-t border-border",a),children:c})}var z=a.i(857195),A=a.i(707963),B=a.i(233540);function C({className:a,type:c,...d}){return(0,b.jsx)("input",{type:c,"data-slot":"input",className:(0,u.cn)("border-input file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground flex h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm","aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",a),...d})}var D=a.i(699570);let E=(0,a.i(400187).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 F({className:a,variant:c,...d}){return(0,b.jsx)("div",{className:(0,u.cn)(E({variant:c}),a),...d})}var G=a.i(575110);let H=[{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"}],I=new Map(H.map(a=>[a.column,a])),J={string:["=","contains","does not contain","starts with","ends with"],number:["=",">","<",">=","<="],datetime:[">","<",">=","<="],stringOptions:["any of","none of"],arrayOptions:["any of","none of","all of"],boolean:["="]},K=["is null","is not null"],L=H.filter(a=>"computed"!==a.source&&"executionSkill"!==a.source&&"query"!==a.column&&"finalResult"!==a.column),M=new Set(["framework","agentName","model","subagentType"]);function N(a){return({"=":"=",contains:"包含","does not contain":"不包含","starts with":"前缀","ends with":"后缀",">":">","<":"<",">=":"≥","<=":"≤","any of":"任一","none of":"非","all of":"全部","is null":"为空","is not null":"非空"})[a]??a}function O({clauses:a,onChange:c,search:d,onSearchChange:f,user:g}){let h,i=(0,e.useRef)(null),k=(0,e.useRef)(null),[l,m]=(0,e.useState)(!1),[n,o]=(0,e.useState)("field"),[p,q]=(0,e.useState)(null),[r,s]=(0,e.useState)("contains"),[t,v]=(0,e.useState)(""),[w,x]=(0,e.useState)(new Set),[y,z]=(0,e.useState)([]),[E,H]=(0,e.useState)(d),[O,Q]=(0,e.useState)(d);d!==O&&(Q(d),d!==E.trim()&&H(d));let R=(0,e.useRef)(f);(0,e.useEffect)(()=>{R.current=f}),(0,e.useEffect)(()=>{let a=setTimeout(()=>R.current(E.trim()),300);return()=>clearTimeout(a)},[E]);let S=(0,e.useCallback)(()=>{o("field"),q(null),v(""),x(new Set),z([])},[]),T=(0,e.useCallback)(()=>{m(!1),S()},[S]);(0,e.useEffect)(()=>{if(!l)return;let a=a=>{i.current&&!i.current.contains(a.target)&&T()};return document.addEventListener("mousedown",a),()=>document.removeEventListener("mousedown",a)},[l,T]);let U=(0,e.useMemo)(()=>{let a=E.trim().toLowerCase();return L.filter(b=>!a||b.label.toLowerCase().includes(a)||b.column.toLowerCase().includes(a))},[E]);(0,e.useEffect)(()=>{if("value"!==n||!p||!M.has(p.column))return;let a=!0;return(0,G.apiFetch)(`/api/observe/data?user=${encodeURIComponent(g)}&facet=values&column=${encodeURIComponent(p.column)}`).then(a=>a.json()).then(b=>{a&&z(Array.isArray(b)?b:[])}).catch(()=>a&&z([])),()=>{a=!1}},[n,p,g]);let[V,W]=(0,e.useState)([]);(0,e.useEffect)(()=>{let a=L.filter(a=>"stringOptions"===a.type&&M.has(a.column)).slice(0,4),b=!0;return Promise.all(a.map(a=>(0,G.apiFetch)(`/api/observe/data?user=${encodeURIComponent(g)}&facet=values&column=${encodeURIComponent(a.column)}`).then(a=>a.json()).then(b=>Array.isArray(b)&&b[0]?{column:a.column,value:b[0].value,count:b[0].count}:null).catch(()=>null))).then(a=>{b&&W(a.filter(a=>null!=a))}),()=>{b=!1}},[g]);let X=b=>{c([...a,b]),S(),k.current?.focus()},Y=()=>{if(!p)return;if("is null"===r||"is not null"===r)return void X({column:p.column,operator:r});if("boolean"===p.type)return;if("stringOptions"===p.type){if(0===w.size)return;X({column:p.column,operator:r,value:Array.from(w)});return}let a=t.trim();if(!a)return;let b=a;if("datetime"===p.type){let c=new Date(a);if(Number.isNaN(c.getTime()))return;b=c.toISOString()}X({column:p.column,operator:r,value:b})};return(0,b.jsxs)("div",{ref:i,className:"relative",children:[(0,b.jsxs)("div",{className:(0,u.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:a=>{a.target===a.currentTarget&&(a.preventDefault(),k.current?.focus(),m(!0))},children:[(0,b.jsx)(B.Search,{className:"size-4 text-foreground-muted shrink-0"}),a.map((d,e)=>(0,b.jsxs)(F,{variant:"secondary",className:"gap-1 pl-2 pr-1 py-0.5 text-xs font-normal",children:[function(a){var b;let c=(b=a.column,I.get(b)),d=c?.label??a.column;if("is null"===a.operator||"is not null"===a.operator)return`${d} ${N(a.operator)}`;let e=Array.isArray(a.value)?a.value.join(" / "):String(a.value??"");return`${d} ${N(a.operator)} ${e}`}(d),(0,b.jsx)("button",{type:"button",onClick:()=>c(a.filter((a,b)=>b!==e)),className:"rounded-sm hover:bg-background-secondary p-0.5","aria-label":"移除过滤",children:(0,b.jsx)(j.X,{className:"size-3"})})]},e)),(0,b.jsx)("input",{ref:k,value:E,onChange:a=>H(a.target.value),onFocus:()=>m(!0),onKeyDown:a=>{"Escape"===a.key&&(T(),k.current?.blur())},placeholder:a.length?"继续搜索 / 过滤…":"搜索输入/输出内容或 Trace ID,或点选字段过滤…","aria-label":"搜索或过滤 trace",className:"flex-1 min-w-[10rem] bg-transparent outline-none text-sm h-6 placeholder:text-muted-foreground"})]}),l&&(0,b.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"===n?(0,b.jsxs)("div",{className:"py-1",children:[E.trim()&&(0,b.jsxs)("button",{type:"button",onMouseDown:a=>a.preventDefault(),onClick:()=>{m(!1),k.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,b.jsx)(B.Search,{className:"size-3.5 shrink-0"}),(0,b.jsxs)("span",{className:"truncate",children:["模糊搜索输入/输出含 ",(0,b.jsx)("span",{className:"font-medium text-foreground",children:E.trim()})]})]}),!E.trim()&&V.length>0&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("div",{className:"px-3 pb-1 pt-1.5 text-[11px] font-medium uppercase tracking-wide text-foreground-muted",children:"建议"}),(0,b.jsx)("ul",{className:"pb-1",children:V.map(a=>(0,b.jsx)("li",{children:(0,b.jsxs)("button",{type:"button",onClick:()=>X({column:a.column,operator:"any of",value:[a.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,b.jsxs)("span",{className:"truncate font-mono text-xs",children:[(0,b.jsxs)("span",{className:"text-foreground-muted",children:[a.column,":"]}),a.value]}),(0,b.jsx)("span",{className:"shrink-0 text-xs tabular-nums text-foreground-muted",children:a.count})]})},a.column))})]}),(0,b.jsx)("div",{className:"px-3 pb-1 pt-1.5 text-[11px] font-medium uppercase tracking-wide text-foreground-muted",children:"字段"}),(0,b.jsxs)("ul",{className:"max-h-64 overflow-auto pb-1",children:[U.map(a=>(0,b.jsx)("li",{children:(0,b.jsxs)("button",{type:"button",onClick:()=>{q(a),s(function(a){switch(a.type){case"string":return"contains";case"number":return">";case"datetime":return">=";case"stringOptions":case"arrayOptions":return"any of";case"boolean":return"="}}(a)),v(""),x(new Set),H(""),o("value")},className:"flex w-full items-center gap-3 px-3 py-1.5 text-left text-sm hover:bg-background-secondary",children:[(0,b.jsx)(B.Search,{className:"size-4 shrink-0 text-foreground-muted"}),(0,b.jsx)("span",{className:"font-medium",children:a.label}),(0,b.jsx)("span",{className:"font-mono text-xs text-foreground-muted",children:a.column}),a.description&&(0,b.jsx)("span",{className:"ml-auto truncate text-xs text-foreground-muted",children:a.description})]})},a.column)),0===U.length&&(0,b.jsx)("li",{className:"px-3 py-2 text-xs text-foreground-muted",children:"无匹配字段"})]})]}):p&&(0,b.jsxs)("div",{children:[(0,b.jsxs)("div",{className:"flex items-center gap-1 p-2 border-b border-border",children:[(0,b.jsx)("button",{type:"button",onClick:S,className:"rounded-sm hover:bg-background-secondary p-1","aria-label":"返回字段",children:(0,b.jsx)(A.ChevronLeft,{className:"size-4"})}),(0,b.jsx)("span",{className:"text-sm font-medium",children:p.label}),(0,b.jsx)("select",{value:r,onChange:a=>s(a.target.value),className:"ml-auto h-7 rounded-md border border-border bg-background text-xs px-1",children:(h=J[p.type],p.nullable?[...h,...K]:h).map(a=>(0,b.jsx)("option",{value:a,children:N(a)},a))})]}),(0,b.jsx)("div",{className:"p-2",children:"is null"===r||"is not null"===r?(0,b.jsx)(D.Button,{size:"sm",className:"w-full h-8 text-xs",onClick:Y,children:"添加"}):"boolean"===p.type?(0,b.jsxs)("div",{className:"flex gap-2",children:[(0,b.jsx)(D.Button,{size:"sm",variant:"outline",className:"flex-1 h-8 text-xs",onClick:()=>X({column:p.column,operator:"=",value:!0}),children:"是 / true"}),(0,b.jsx)(D.Button,{size:"sm",variant:"outline",className:"flex-1 h-8 text-xs",onClick:()=>X({column:p.column,operator:"=",value:!1}),children:"否 / false"})]}):"stringOptions"===p.type?(0,b.jsx)(P,{facet:y,picked:w,onToggle:a=>x(b=>{let c=new Set(b);return c.has(a)?c.delete(a):c.add(a),c}),onConfirm:Y}):(0,b.jsxs)("div",{className:"flex gap-2",children:[(0,b.jsx)(C,{autoFocus:!0,type:"number"===p.type?"number":"datetime"===p.type?"datetime-local":"text",value:t,onChange:a=>v(a.target.value),onKeyDown:a=>"Enter"===a.key&&Y(),placeholder:p.unit?`值(${p.unit})`:"值…",className:"h-8 text-sm"}),(0,b.jsx)(D.Button,{size:"sm",className:"h-8 text-xs shrink-0",onClick:Y,children:"添加"})]})})]})})]})}function P({facet:a,picked:c,onToggle:d,onConfirm:e}){return(0,b.jsxs)("div",{children:[(0,b.jsxs)("ul",{className:"max-h-56 overflow-auto -mx-2",children:[a.map(a=>(0,b.jsx)("li",{children:(0,b.jsxs)("button",{type:"button",onClick:()=>d(a.value),className:"flex w-full items-center justify-between px-3 py-1.5 text-sm hover:bg-background-secondary text-left",children:[(0,b.jsxs)("span",{className:"flex items-center gap-2",children:[(0,b.jsx)("input",{type:"checkbox",readOnly:!0,checked:c.has(a.value),className:"pointer-events-none"}),a.value]}),(0,b.jsx)("span",{className:"text-xs text-foreground-muted tabular-nums",children:a.count})]})},a.value)),0===a.length&&(0,b.jsx)("li",{className:"px-3 py-2 text-xs text-foreground-muted",children:"无可选值"})]}),(0,b.jsxs)(D.Button,{size:"sm",className:"w-full h-8 text-xs mt-2",disabled:0===c.size,onClick:e,children:["添加(",c.size,")"]})]})}var Q=a.i(589027),R=a.i(141146);let S=[{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 T({clauses:a,onChange:c,user:d}){return(0,b.jsx)("div",{className:"divide-y divide-card-border",children:S.map(e=>{var f;let g,h=(f=e.column,I.get(f));return h?(0,b.jsx)(U,{col:h,kind:e.kind,defaultOpen:e.defaultOpen,user:d,current:(g=e.column,a.filter(a=>a.column===g)),onSet:b=>{let d;return d=e.column,c([...a.filter(a=>a.column!==d),...b])}},e.column):null})})}function U({col:a,kind:c,defaultOpen:d,user:f,current:g,onSet:h}){let[i,j]=(0,e.useState)(!!d),k=g.length>0;return(0,b.jsxs)("div",{className:"py-2",children:[(0,b.jsxs)("button",{type:"button",onClick:()=>j(a=>!a),className:"flex w-full items-center gap-1.5 px-1 text-left",children:[i?(0,b.jsx)(Q.ChevronDown,{className:"size-3.5 text-foreground-muted"}):(0,b.jsx)(R.ChevronRight,{className:"size-3.5 text-foreground-muted"}),(0,b.jsx)("span",{className:"text-sm font-medium",children:a.label}),(0,b.jsx)("span",{className:"font-mono text-[11px] text-foreground-muted",children:a.column}),k&&(0,b.jsx)("span",{className:"ml-auto size-1.5 rounded-full bg-primary","aria-label":"已启用"})]}),i&&(0,b.jsxs)("div",{className:"mt-1.5 px-1",children:["select"===c&&(0,b.jsx)(V,{col:a,user:f,current:g,onSet:h}),"contains"===c&&(0,b.jsx)(W,{col:a,current:g,onSet:h}),"range"===c&&(0,b.jsx)(X,{col:a,current:g,onSet:h}),"boolean"===c&&(0,b.jsx)(Y,{col:a,current:g,onSet:h})]})]})}function V({col:a,user:c,current:d,onSet:f}){let[g,h]=(0,e.useState)([]),[i,j]=(0,e.useState)(!1);(0,e.useEffect)(()=>{let b=!0;return(0,G.apiFetch)(`/api/observe/data?user=${encodeURIComponent(c)}&facet=values&column=${encodeURIComponent(a.column)}`).then(a=>a.json()).then(a=>b&&h(Array.isArray(a)?a:[])).catch(()=>b&&h([])).finally(()=>b&&j(!0)),()=>{b=!1}},[a.column,c]);let k=new Set(d.find(a=>"any of"===a.operator)?.value??[]);return i?0===g.length?(0,b.jsx)("p",{className:"text-xs text-foreground-muted",children:"无可选值"}):(0,b.jsx)("ul",{className:"max-h-48 overflow-auto",children:g.map(c=>(0,b.jsx)("li",{children:(0,b.jsxs)("button",{type:"button",onClick:()=>{var b;let d,e;return b=c.value,(d=new Set(k)).has(b)?d.delete(b):d.add(b),void f((e=Array.from(d)).length?[{column:a.column,operator:"any of",value:e}]:[])},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,b.jsxs)("span",{className:"flex min-w-0 items-center gap-2",children:[(0,b.jsx)("input",{type:"checkbox",readOnly:!0,checked:k.has(c.value),className:"pointer-events-none"}),(0,b.jsx)("span",{className:"truncate",children:c.value})]}),(0,b.jsx)("span",{className:"shrink-0 text-xs tabular-nums text-foreground-muted",children:c.count})]})},c.value))}):(0,b.jsx)("p",{className:"text-xs text-foreground-muted",children:"加载中…"})}function W({col:a,current:c,onSet:d}){let f=c.find(a=>"contains"===a.operator)?.value??"",[g,h]=(0,e.useState)(f),[i,j]=(0,e.useState)(f);f!==i&&(j(f),f!==g&&h(f));let k=()=>{let b=g.trim();d(b?[{column:a.column,operator:"contains",value:b}]:[])};return(0,b.jsx)("input",{value:g,onChange:a=>h(a.target.value),onBlur:k,onKeyDown:a=>"Enter"===a.key&&k(),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 X({col:a,current:c,onSet:d}){let f=c.find(a=>">="===a.operator),g=c.find(a=>"<="===a.operator),[h,i]=(0,e.useState)(f?String(f.value):""),[j,k]=(0,e.useState)(g?String(g.value):""),l=`${f?.value??""}|${g?.value??""}`,[m,n]=(0,e.useState)(l);l!==m&&(n(l),i(f?String(f.value):""),k(g?String(g.value):""));let o=()=>{let b=[];""!==h.trim()&&Number.isFinite(Number(h))&&b.push({column:a.column,operator:">=",value:Number(h)}),""!==j.trim()&&Number.isFinite(Number(j))&&b.push({column:a.column,operator:"<=",value:Number(j)}),d(b)},p="h-7 w-full rounded border border-input bg-transparent px-2 text-sm outline-none focus:ring-1 focus:ring-ring";return(0,b.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,b.jsx)("input",{type:"number",value:h,onChange:a=>i(a.target.value),onBlur:o,onKeyDown:a=>"Enter"===a.key&&o(),placeholder:a.unit?`最小(${a.unit})`:"最小",className:p}),(0,b.jsx)("span",{className:"text-xs text-foreground-muted",children:"–"}),(0,b.jsx)("input",{type:"number",value:j,onChange:a=>k(a.target.value),onBlur:o,onKeyDown:a=>"Enter"===a.key&&o(),placeholder:a.unit?`最大(${a.unit})`:"最大",className:p})]})}function Y({col:a,current:c,onSet:d}){let e=c.find(a=>"="===a.operator),f=e?e.value:void 0,g=(c,e)=>(0,b.jsx)("button",{type:"button",onClick:()=>d(void 0===e?[]:[{column:a.column,operator:"=",value:e}]),className:"flex-1 rounded px-2 py-1 text-xs "+(f===e?"bg-primary text-primary-foreground":"hover:bg-background-secondary text-foreground-muted"),children:c});return(0,b.jsxs)("div",{className:"flex gap-1 rounded border border-input p-0.5",children:[g("全部",void 0),g("是",!0),g("否",!1)]})}var Z=a.i(943408),$=a.i(106927),_=a.i(434465),aa=a.i(30553),ab="horizontal",ac=["horizontal","vertical"],ad=e.forwardRef((a,c)=>{var d;let{decorative:e,orientation:f=ab,...g}=a,h=(d=f,ac.includes(d))?f:ab;return(0,b.jsx)(aa.Primitive.div,{"data-orientation":h,...e?{role:"none"}:{"aria-orientation":"vertical"===h?h:void 0,role:"separator"},...g,ref:c})});function ae({className:a,orientation:c="horizontal",decorative:d=!0,...e}){return(0,b.jsx)(ad,{"data-slot":"separator-root",decorative:d,orientation:c,className:(0,u.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",a),...e})}function af({className:a,...c}){return(0,b.jsx)("div",{"data-slot":"skeleton",className:(0,u.cn)("bg-primary/10 animate-pulse rounded-md",a),...c})}ad.displayName="Separator";var ag=a.i(785259),ah=a.i(580701),ai=a.i(882524),aj=a.i(100842);let ak=(0,g.default)("inbox",[["polyline",{points:"22 12 16 12 14 15 10 15 8 12 2 12",key:"o97t9d"}],["path",{d:"M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z",key:"oot6mr"}]]);function al({icon:a=ak,title:c,description:d,action:e,className:f}){return(0,b.jsxs)("div",{className:(0,u.cn)("flex flex-col items-center justify-center gap-3 text-center py-12 px-6","text-foreground-muted",f),children:[(0,b.jsx)("div",{className:"size-10 rounded-full bg-background-secondary text-foreground-muted flex items-center justify-center",children:(0,b.jsx)(a,{className:"size-5","aria-hidden":!0})}),(0,b.jsxs)("div",{className:"space-y-1",children:[(0,b.jsx)("p",{className:"text-base font-semibold text-foreground",children:c}),d&&(0,b.jsx)("p",{className:"text-sm text-foreground-muted max-w-md",children:d})]}),e&&(0,b.jsx)("div",{className:"pt-1",children:e})]})}var am=a.i(752562),an=a.i(585650);function ao({value:a,head:c=6,tail:d=4,copy:f=!0,className:g,onClick:h}){let[i,j]=e.useState(!1);if(!a)return(0,b.jsx)("span",{className:"text-foreground-muted",children:"—"});let k=a.length>c+d+1?`${a.slice(0,c)}…${a.slice(-d)}`:a,l=async b=>{b.stopPropagation();try{await navigator.clipboard.writeText(a),j(!0),s.toast.success("Copied"),setTimeout(()=>j(!1),1500)}catch{s.toast.error("Copy failed")}};return(0,b.jsx)(ag.TooltipProvider,{delayDuration:150,children:(0,b.jsxs)(ag.Tooltip,{children:[(0,b.jsx)(ag.TooltipTrigger,{asChild:!0,children:(0,b.jsxs)("span",{onClick:h,className:(0,u.cn)("inline-flex items-center gap-1 font-mono text-xs text-foreground tabular-nums",h&&"cursor-pointer hover:text-primary",g),children:[(0,b.jsx)("span",{children:k}),f&&(0,b.jsx)("button",{type:"button",onClick:l,"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:i?(0,b.jsx)(am.Check,{className:"size-3"}):(0,b.jsx)(an.Copy,{className:"size-3"})})]})}),(0,b.jsx)(ag.TooltipContent,{side:"top",children:(0,b.jsx)("code",{className:"text-xs",children:a})})]})})}function ap({children:a,className:c,tooltipMax:d=200,empty:e=(0,b.jsx)("span",{className:"text-foreground-muted",children:"—"})}){let f=(a??"").toString();return f?(0,b.jsx)(ag.TooltipProvider,{delayDuration:250,children:(0,b.jsxs)(ag.Tooltip,{children:[(0,b.jsx)(ag.TooltipTrigger,{asChild:!0,children:(0,b.jsx)("span",{className:(0,u.cn)("block truncate",c),children:f})}),(0,b.jsx)(ag.TooltipContent,{side:"top",className:"max-w-sm whitespace-pre-wrap text-xs",children:f.length>d?`${f.slice(0,d)}…`:f})]})}):(0,b.jsx)(b.Fragment,{children:e})}let aq=Symbol.for("constructDateFrom");function ar(a,b){return"function"==typeof a?a(b):a&&"object"==typeof a&&aq in a?a[aq](b):a instanceof Date?new a.constructor(b):new Date(b)}let as={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 at(a){return (b={})=>{let c=b.width?String(b.width):a.defaultWidth;return a.formats[c]||a.formats[a.defaultWidth]}}let au={date:at({formats:{full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},defaultWidth:"full"}),time:at({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:at({formats:{full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},defaultWidth:"full"})},av={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"};function aw(a){return(b,c)=>{let d;if("formatting"===(c?.context?String(c.context):"standalone")&&a.formattingValues){let b=a.defaultFormattingWidth||a.defaultWidth,e=c?.width?String(c.width):b;d=a.formattingValues[e]||a.formattingValues[b]}else{let b=a.defaultWidth,e=c?.width?String(c.width):a.defaultWidth;d=a.values[e]||a.values[b]}return d[a.argumentCallback?a.argumentCallback(b):b]}}function ax(a){return(b,c={})=>{let d,e=c.width,f=e&&a.matchPatterns[e]||a.matchPatterns[a.defaultMatchWidth],g=b.match(f);if(!g)return null;let h=g[0],i=e&&a.parsePatterns[e]||a.parsePatterns[a.defaultParseWidth],j=Array.isArray(i)?function(a,b){for(let c=0;c<a.length;c++)if(b(a[c]))return c}(i,a=>a.test(h)):function(a,b){for(let c in a)if(Object.prototype.hasOwnProperty.call(a,c)&&b(a[c]))return c}(i,a=>a.test(h));return d=a.valueCallback?a.valueCallback(j):j,{value:d=c.valueCallback?c.valueCallback(d):d,rest:b.slice(h.length)}}}function ay(a){return(b,c={})=>{let d=b.match(a.matchPattern);if(!d)return null;let e=d[0],f=b.match(a.parsePattern);if(!f)return null;let g=a.valueCallback?a.valueCallback(f[0]):f[0];return{value:g=c.valueCallback?c.valueCallback(g):g,rest:b.slice(e.length)}}}let az={code:"en-US",formatDistance:(a,b,c)=>{let d,e=as[a];if(d="string"==typeof e?e:1===b?e.one:e.other.replace("{{count}}",b.toString()),c?.addSuffix)if(c.comparison&&c.comparison>0)return"in "+d;else return d+" ago";return d},formatLong:au,formatRelative:(a,b,c,d)=>av[a],localize:{ordinalNumber:(a,b)=>{let c=Number(a),d=c%100;if(d>20||d<10)switch(d%10){case 1:return c+"st";case 2:return c+"nd";case 3:return c+"rd"}return c+"th"},era:aw({values:{narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},defaultWidth:"wide"}),quarter:aw({values:{narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},defaultWidth:"wide",argumentCallback:a=>a-1}),month:aw({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:aw({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:aw({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:ay({matchPattern:/^(\d+)(th|st|nd|rd)?/i,parsePattern:/\d+/i,valueCallback:a=>parseInt(a,10)}),era:ax({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:ax({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:a=>a+1}),month:ax({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:ax({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:ax({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}},aA={};function aB(a,b){return ar(b||a,a)}function aC(a){let b=aB(a),c=new Date(Date.UTC(b.getFullYear(),b.getMonth(),b.getDate(),b.getHours(),b.getMinutes(),b.getSeconds(),b.getMilliseconds()));return c.setUTCFullYear(b.getFullYear()),a-c}function aD(a,...b){let c=ar.bind(null,a||b.find(a=>"object"==typeof a));return b.map(c)}function aE(a,b){let c=aB(a)-aB(b);return c<0?-1:c>0?1:c}let aF={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}} 年"}},aG={date:at({formats:{full:"y'年'M'月'd'日' EEEE",long:"y'年'M'月'd'日'",medium:"yyyy-MM-dd",short:"yy-MM-dd"},defaultWidth:"full"}),time:at({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:at({formats:{full:"{{date}} {{time}}",long:"{{date}} {{time}}",medium:"{{date}} {{time}}",short:"{{date}} {{time}}"},defaultWidth:"full"})};function aH(a,b){let c=b?.weekStartsOn??b?.locale?.options?.weekStartsOn??aA.weekStartsOn??aA.locale?.options?.weekStartsOn??0,d=aB(a,b?.in),e=d.getDay();return d.setDate(d.getDate()-(7*(e<c)+e-c)),d.setHours(0,0,0,0),d}function aI(a,b,c){let d="eeee p";return!function(a,b,c){let[d,e]=aD(c?.in,a,b);return+aH(d,c)==+aH(e,c)}(a,b,c)?a.getTime()>b.getTime()?"'下个'"+d:"'上个'"+d:d}let aJ={lastWeek:aI,yesterday:"'昨天' p",today:"'今天' p",tomorrow:"'明天' p",nextWeek:aI,other:"PP p"},aK={code:"zh-CN",formatDistance:(a,b,c)=>{let d,e=aF[a];if(d="string"==typeof e?e:1===b?e.one:e.other.replace("{{count}}",String(b)),c?.addSuffix)if(c.comparison&&c.comparison>0)return d+"内";else return d+"前";return d},formatLong:aG,formatRelative:(a,b,c,d)=>{let e=aJ[a];return"function"==typeof e?e(b,c,d):e},localize:{ordinalNumber:(a,b)=>{let c=Number(a);switch(b?.unit){case"date":return c.toString()+"日";case"hour":return c.toString()+"时";case"minute":return c.toString()+"分";case"second":return c.toString()+"秒";default:return"第 "+c.toString()}},era:aw({values:{narrow:["前","公元"],abbreviated:["前","公元"],wide:["公元前","公元"]},defaultWidth:"wide"}),quarter:aw({values:{narrow:["1","2","3","4"],abbreviated:["第一季","第二季","第三季","第四季"],wide:["第一季度","第二季度","第三季度","第四季度"]},defaultWidth:"wide",argumentCallback:a=>a-1}),month:aw({values:{narrow:["一","二","三","四","五","六","七","八","九","十","十一","十二"],abbreviated:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],wide:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"]},defaultWidth:"wide"}),day:aw({values:{narrow:["日","一","二","三","四","五","六"],short:["日","一","二","三","四","五","六"],abbreviated:["周日","周一","周二","周三","周四","周五","周六"],wide:["星期日","星期一","星期二","星期三","星期四","星期五","星期六"]},defaultWidth:"wide"}),dayPeriod:aw({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:ay({matchPattern:/^(第\s*)?\d+(日|时|分|秒)?/i,parsePattern:/\d+/i,valueCallback:a=>parseInt(a,10)}),era:ax({matchPatterns:{narrow:/^(前)/i,abbreviated:/^(前)/i,wide:/^(公元前|公元)/i},defaultMatchWidth:"wide",parsePatterns:{any:[/^(前)/i,/^(公元)/i]},defaultParseWidth:"any"}),quarter:ax({matchPatterns:{narrow:/^[1234]/i,abbreviated:/^第[一二三四]刻/i,wide:/^第[一二三四]刻钟/i},defaultMatchWidth:"wide",parsePatterns:{any:[/(1|一)/i,/(2|二)/i,/(3|三)/i,/(4|四)/i]},defaultParseWidth:"any",valueCallback:a=>a+1}),month:ax({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:ax({matchPatterns:{narrow:/^[一二三四五六日]/i,short:/^[一二三四五六日]/i,abbreviated:/^周[一二三四五六日]/i,wide:/^星期[一二三四五六日]/i},defaultMatchWidth:"wide",parsePatterns:{any:[/日/i,/一/i,/二/i,/三/i,/四/i,/五/i,/六/i]},defaultParseWidth:"any"}),dayPeriod:ax({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 aL({value:a,className:c}){var d,e;let{locale:f}=(0,$.useLocale)();if(null==a||""===a)return(0,b.jsx)("span",{className:"text-foreground-muted",children:"—"});let g=a instanceof Date?a:new Date(a);if(Number.isNaN(g.getTime()))return(0,b.jsx)("span",{className:"text-foreground-muted",children:"—"});let h=(d=g,e={addSuffix:!0,locale:"zh"===f?aK:az},function(a,b,c){var d;let e,f=c?.locale??aA.locale??az,g=aE(a,b);if(isNaN(g))throw RangeError("Invalid time value");let h=Object.assign({},c,{addSuffix:c?.addSuffix,comparison:g}),[i,j]=aD(c?.in,...g>0?[b,a]:[a,b]),k=(d=void 0,a=>{let b=(d?Math[d]:Math.trunc)(a);return 0===b?0:b})((aB(j)-aB(i))/1e3),l=Math.round((k-(aC(j)-aC(i))/1e3)/60);if(l<2)if(c?.includeSeconds)if(k<5)return f.formatDistance("lessThanXSeconds",5,h);else if(k<10)return f.formatDistance("lessThanXSeconds",10,h);else if(k<20)return f.formatDistance("lessThanXSeconds",20,h);else if(k<40)return f.formatDistance("halfAMinute",0,h);else if(k<60)return f.formatDistance("lessThanXMinutes",1,h);else return f.formatDistance("xMinutes",1,h);else if(0===l)return f.formatDistance("lessThanXMinutes",1,h);else return f.formatDistance("xMinutes",l,h);if(l<45)return f.formatDistance("xMinutes",l,h);if(l<90)return f.formatDistance("aboutXHours",1,h);if(l<1440){let a=Math.round(l/60);return f.formatDistance("aboutXHours",a,h)}if(l<2520)return f.formatDistance("xDays",1,h);else if(l<43200){let a=Math.round(l/1440);return f.formatDistance("xDays",a,h)}else if(l<86400)return e=Math.round(l/43200),f.formatDistance("aboutXMonths",e,h);if((e=function(a,b,c){var d,e;let f,g,h,i,[j,k,l]=aD(void 0,a,a,b),m=aE(k,l),n=Math.abs(function(a,b,c){let[d,e]=aD(void 0,a,b);return 12*(d.getFullYear()-e.getFullYear())+(d.getMonth()-e.getMonth())}(k,l));if(n<1)return 0;1===k.getMonth()&&k.getDate()>27&&k.setDate(30),k.setMonth(k.getMonth()-m*n);let o=aE(k,l)===-m;+(f=aB(j,void 0),d=void 0,(g=aB(f,d?.in)).setHours(23,59,59,999),g)==+(e=void 0,i=(h=aB(f,e?.in)).getMonth(),h.setFullYear(h.getFullYear(),i+1,0),h.setHours(23,59,59,999),h)&&1===n&&1===aE(j,l)&&(o=!1);let p=m*(n-o);return 0===p?0:p}(j,i))<12){let a=Math.round(l/43200);return f.formatDistance("xMonths",a,h)}{let a=e%12,b=Math.trunc(e/12);return a<3?f.formatDistance("aboutXYears",b,h):a<9?f.formatDistance("overXYears",b,h):f.formatDistance("almostXYears",b+1,h)}}(d,ar(d,Date.now()),e)),i=g.toLocaleString();return(0,b.jsx)(ag.TooltipProvider,{delayDuration:250,children:(0,b.jsxs)(ag.Tooltip,{children:[(0,b.jsx)(ag.TooltipTrigger,{asChild:!0,children:(0,b.jsx)("span",{className:c,children:h})}),(0,b.jsx)(ag.TooltipContent,{side:"top",className:"font-mono text-xs",children:i})]})})}var aM=a.i(960798);let aN=process.env.NEXT_PUBLIC_URL_PREFIX||"",aO={"30m":18e5,"1h":36e5,"3h":108e5,"24h":864e5,"7d":6048e5,"30d":2592e6,all:1/0},aP=[20,50,100],aQ=[5,10,30,60],aR={traceId:130,agent:170,status:110,tags:240,tokens:110,time:120,actions:220},aS={traceId:90,agent:100,status:80,tags:120,tokens:70,time:80,actions:160},aT="trace.columnWidths.v1";function aU(a){let b=String(a.trace_status??a.traceStatus??"").trim().toLowerCase();return"running"===b||"success"===b||"failed"===b?b:a.trace_completed_at||a.traceCompletedAt?"success":"running"}function aV(a){let b=String(a||"").trim();switch(b.toLowerCase()){case"langfuse-langgraph":return"Langfuse-Langgraph";case"opencode":return"OpenCode";case"claude":case"claudecode":return"Claude Code";case"hermes":return"Hermes";default:return b}}function aW(a){return a&&Number.isFinite(a)?a<1e3?`${Math.round(a)}ms`:a<6e4?`${(a/1e3).toFixed(2)}s`:`${(a/6e4).toFixed(1)}m`:"-"}function aX(a,b){let c=(b||"").toLowerCase();return("opencode"===c||"openhands"===c||"claude"===c||"claudecode"===c)&&a>0&&a<1e3?1e3*a:a}function aY(a){if(!a&&0!==a)return"-";let b=new Date(a);return b.getFullYear()+"/"+String(b.getMonth()+1).padStart(2,"0")+"/"+String(b.getDate()).padStart(2,"0")+" "+String(b.getHours()).padStart(2,"0")+":"+String(b.getMinutes()).padStart(2,"0")+":"+String(b.getSeconds()).padStart(2,"0")+"."+String(b.getMilliseconds()).padStart(3,"0")}function aZ(a,b){return Math.min(640,Math.max(aS[a],Math.round(b)))}function a$({colKey:a,currentWidth:c,onResize:d}){return(0,b.jsx)("span",{onMouseDown:b=>{b.preventDefault(),b.stopPropagation();let e=b.clientX,f=b=>{d(a,c+(b.clientX-e))},g=()=>{window.removeEventListener("mousemove",f),window.removeEventListener("mouseup",g),document.body.style.cursor="",document.body.style.userSelect=""};document.body.style.cursor="col-resize",document.body.style.userSelect="none",window.addEventListener("mousemove",f),window.addEventListener("mouseup",g)},onClick:a=>a.stopPropagation(),onKeyDown:a=>a.stopPropagation(),role:"separator","aria-orientation":"vertical","aria-label":`Resize column ${a}`,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,b.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 a_(){return(0,b.jsx)(e.Suspense,{fallback:(0,b.jsxs)("div",{className:"flex flex-col gap-3 px-6 py-6",children:[(0,b.jsx)(af,{className:"h-9 w-48"}),(0,b.jsx)(af,{className:"h-24 w-full"}),(0,b.jsx)(af,{className:"h-96 w-full"})]}),children:(0,b.jsx)(a0,{})})}function a0(){let{user:a}=(0,Z.useAuth)(),{t:c,locale:d}=(0,$.useLocale)(),[f,g]=(0,e.useState)([]),[h,i]=(0,e.useState)(!0),[k,l]=(0,e.useState)(null),[m,n]=(0,r.useQueryState)("time",r.parseAsString.withDefault("all")),[o,s]=(0,r.useQueryState)("status",r.parseAsString.withDefault("all")),[u,v]=(0,r.useQueryState)("framework",r.parseAsString.withDefault("all")),[z,A]=(0,r.useQueryState)("agent",r.parseAsString.withDefault("all")),[B,C]=(0,r.useQueryState)("skill",r.parseAsString.withDefault("all")),[E,F]=(0,r.useQueryState)("ownership",r.parseAsString.withDefault("user")),[H,I]=(0,r.useQueryState)("scope",r.parseAsString.withDefault("root")),[J,K]=(0,r.useQueryState)("sort",r.parseAsString.withDefault("timestamp")),[L,M]=(0,r.useQueryState)("dir",r.parseAsString.withDefault("desc")),[N,P]=(0,r.useQueryState)("page",r.parseAsInteger.withDefault(1)),[Q,R]=(0,r.useQueryState)("size",r.parseAsInteger.withDefault(20)),[S,U]=(0,r.useQueryState)("taskId",r.parseAsString),[V,W]=(0,r.useQueryState)("q",r.parseAsString.withDefault("")),[X,Y]=(0,e.useState)(!1),[aa,ab]=(0,r.useQueryState)("f",r.parseAsString.withDefault("")),ac=(0,e.useMemo)(()=>{if(!aa)return[];try{let a=JSON.parse(aa);return Array.isArray(a)?a:[]}catch{return[]}},[aa]),ad=(0,e.useCallback)(a=>ab(a.length?JSON.stringify(a):null),[ab]),ag=(0,e.useCallback)(a=>W(a||null),[W]),{widths:aj,setColumnWidth:ak,resetColumnWidths:am,isCustomized:an}=function(){let[a,b]=(0,e.useState)(aR);(0,e.useEffect)(()=>{try{let a=window.localStorage.getItem(aT);if(!a)return;let c=JSON.parse(a);b(a=>{let b={...a};return Object.keys(a).forEach(a=>{let d=c[a];"number"==typeof d&&Number.isFinite(d)&&(b[a]=aZ(a,d))}),b})}catch{}},[]);let c=(0,e.useCallback)((a,c)=>{b(b=>{let d={...b,[a]:aZ(a,c)};try{window.localStorage.setItem(aT,JSON.stringify(d))}catch{}return d})},[]),d=(0,e.useCallback)(()=>{b(aR);try{window.localStorage.removeItem(aT)}catch{}},[]),f=(0,e.useMemo)(()=>Object.keys(aR).some(b=>a[b]!==aR[b]),[a]);return{widths:a,setColumnWidth:c,resetColumnWidths:d,isCustomized:f}}(),ao=(0,e.useMemo)(()=>aj.traceId+aj.agent+aj.status+aj.tags+aj.tokens+aj.time+aj.actions+280,[aj]),ap=(0,e.useCallback)(a=>{l(a),U(a&&(a.task_id||a.upload_id)||null)},[U]),aq=(0,e.useRef)(null);(0,e.useEffect)(()=>{if(!S){k&&l(null),aq.current=null;return}let a=f.find(a=>a.task_id===S||a.upload_id===S);if(a){k!==a&&l(a);return}aq.current!==S&&(aq.current=S,(0,G.apiFetch)(`/api/observe/data?taskId=${encodeURIComponent(S)}&includeEvaluations=0&skipAutoEvalReady=1`).then(a=>a.json()).then(a=>{Array.isArray(a)&&a.length>0&&l(a[0])}).catch(()=>{aq.current===S&&(aq.current=null)}))},[S,f]),(0,e.useEffect)(()=>{if(!a)return;i(!0);let b="subagent"===H?"&onlySubagents=1":"all"===H?"&includeSubagents=1":"",c="all"!==B?`&skill=${encodeURIComponent(B)}`:"",d=V?`&query=${encodeURIComponent(V)}`:"",e=ac.length?`&filters=${encodeURIComponent(JSON.stringify(ac))}`:"";(0,G.apiFetch)(`/api/observe/data?user=${encodeURIComponent(a)}&includeEvaluations=0&fields=light&skipAutoEvalReady=1${b}${c}${d}${e}`).then(a=>a.json()).then(a=>g(Array.isArray(a)?a:[])).catch(()=>g([])).finally(()=>i(!1))},[a,H,B,V,aa]);let ar=(0,e.useMemo)(()=>{let a=Date.now(),b=aO[m]??1/0;return f.filter(c=>{let d,e;return!("all"!==z&&""!==z&&!(d=new Set,(e=c.agentName?.trim()||(0,_.getPrimaryExecutionAgentName)(c))&&d.add(e),Array.isArray(c.agents)&&c.agents.forEach(a=>{let b=a?.trim();b&&d.add(b)}),Array.from(d)).includes(z)||b!==1/0&&a-("string"==typeof c.timestamp?Date.parse(c.timestamp):Number(c.timestamp))>b)&&("all"===u||c.framework===u)&&("all"===o||o===aU(c))&&("all"===E||(c.agentOwnership??"user")===E)&&!0}).sort((a,b)=>{let c=0;switch(J){case"timestamp":c=("string"==typeof a.timestamp?Date.parse(a.timestamp):Number(a.timestamp))-("string"==typeof b.timestamp?Date.parse(b.timestamp):Number(b.timestamp));break;case"agent":c=(a.agent||"").localeCompare(b.agent||"");break;case"status":{let d={running:0,failed:1,success:2};c=d[aU(a)]-d[aU(b)];break}case"latency":c=aX(a.latency||0,a.framework)-aX(b.latency||0,b.framework);break;case"tokens":c=(a.tokens||0)-(b.tokens||0);break;case"cost":c=(a.cost||0)-(b.cost||0)}return"asc"===L?c:-c})},[f,m,u,o,z,E,J,L]);(0,e.useEffect)(()=>{1!==N&&P(1)},[m,u,o,z,B,E,V,aa,J,L,Q]);let as=a=>{a===J?M("asc"===L?"desc":"asc"):(K(a),M("timestamp"===a||"tokens"===a?"desc":"asc"))},at=(0,e.useMemo)(()=>{let a=ar.length,b=ar.filter(a=>"failed"===aU(a)).length,c=a?ar.reduce((a,b)=>a+aX(b.latency||0,b.framework),0)/a:0,d=ar.reduce((a,b)=>a+(b.tool_call_error_count||0),0),e=ar.reduce((a,b)=>a+(b.tool_call_count||0),0);return{total:a,failedCount:b,avgLatency:c,errRate:e?Math.round(d/e*1e3)/10:0}},[ar]);ar.length;let au=(0,e.useMemo)(()=>ar.slice((N-1)*Q,N*Q),[ar,N,Q]),av="all"!==E||"all"!==z||"all"!==B||"all"!==o||"all"!==m||"all"!==u||"root"!==H||""!==V||ac.length>0,aw=()=>{F("all"),A("all"),C("all"),s("all"),n("all"),v("all"),I("root"),W(null),ad([])},ax=(0,e.useMemo)(()=>{let a=new Set;return f.forEach(b=>b.framework&&a.add(b.framework)),Array.from(a).sort()},[f]),ay=[{value:"all",label:c("nav.allOwnership")},{value:"user",label:c("nav.userAgent")},{value:"system",label:c("nav.systemAgent")}],az=[{value:"all",label:c("common.all")},{value:"running",label:c("tracePage.statusRunning")},{value:"success",label:c("tracePage.statusSuccess")},{value:"failed",label:c("tracePage.statusFailed")}],aA=[{value:"all",label:c("common.allTime")},{value:"7d",label:c("nav.last7Days")},{value:"24h",label:c("topbar.last24h")},{value:"1h",label:c("nav.last1Hour")},{value:"30m",label:c("nav.last30Min")}],aB=[{value:"all",label:c("common.all")},...ax.map(a=>({value:a,label:a}))];return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(t.AppTopBar,{title:(0,b.jsx)(aM.Term,{id:"trace",label:c("nav.trace")}),actions:void 0,showDefaultActions:!1}),(0,b.jsx)(w,{children:k?(0,b.jsx)(a1,{execution:k,onBack:()=>ap(null)}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{className:"grid grid-cols-2 md:grid-cols-4 gap-3 mb-4",children:[(0,b.jsx)(a4,{label:(0,b.jsx)(aM.Term,{id:"trace",label:c("tracePage.statTotal")}),value:at.total.toLocaleString()}),(0,b.jsx)(a4,{label:(0,b.jsx)(aM.Term,{id:"fault-item",label:c("tracePage.statFailed")}),value:String(at.failedCount),accent:at.failedCount>0?"error":void 0}),(0,b.jsx)(a4,{label:c("tracePage.statAvgLatency"),value:aW(at.avgLatency)}),(0,b.jsx)(a4,{label:(0,b.jsx)(aM.Term,{id:"tool-error-rate",label:c("tracePage.statToolErrorRate"),align:"end"}),value:`${at.errRate}%`})]}),a&&(0,b.jsx)("div",{className:"mb-3",children:(0,b.jsx)(O,{clauses:ac,onChange:ad,search:V,onSearchChange:ag,user:a})}),(0,b.jsxs)("div",{className:"mb-2 flex flex-wrap items-center gap-2",children:[(0,b.jsxs)(D.Button,{variant:"outline",size:"sm",className:"h-7 gap-1.5 text-xs",onClick:()=>Y(a=>!a),children:[(0,b.jsx)(q.SlidersHorizontal,{className:"size-3.5"}),X?"zh"===d?"隐藏过滤":"Hide filters":"zh"===d?"过滤":"Show filters"]}),(0,b.jsx)(ae,{orientation:"vertical",className:"h-5"}),(0,b.jsx)(ah.Select,{label:c("nav.filterAgentOwnership"),value:E,onChange:F,options:ay,active:"all"!==E}),(0,b.jsx)(ah.Select,{label:c("tracePage.filterStatus"),value:o,onChange:s,options:az,active:"all"!==o}),(0,b.jsx)(ah.Select,{label:c("tracePage.filterTime"),value:m,onChange:n,options:aA,active:"all"!==m}),(0,b.jsx)(ah.Select,{label:c("tracePage.filterFramework"),value:u,onChange:v,options:aB,active:"all"!==u}),(0,b.jsx)(ah.Select,{label:"zh"===d?"范围":"Scope",value:H,onChange:I,options:[{value:"root",label:"zh"===d?"仅主 Agent":"Root only"},{value:"subagent",label:"zh"===d?"仅子 Agent":"Sub-agents only"},{value:"all",label:"zh"===d?"主 + 子 Agent":"Root + sub-agents"}],active:"root"!==H}),av&&(0,b.jsxs)(D.Button,{variant:"ghost",size:"sm",onClick:aw,className:"ml-auto h-7 gap-1 text-xs text-foreground-muted",children:[(0,b.jsx)(j.X,{className:"size-3"}),c("tracePage.resetFilters")]})]}),(0,b.jsxs)("div",{className:"flex-1 min-h-0 flex gap-3",children:[X&&(0,b.jsxs)("aside",{className:"w-60 shrink-0 overflow-auto rounded-md border border-card-border bg-card",children:[(0,b.jsx)("div",{className:"px-3 py-2 border-b border-card-border",children:(0,b.jsx)("span",{className:"text-sm font-semibold",children:"zh"===d?"过滤器":"Filters"})}),a&&(0,b.jsx)("div",{className:"p-3",children:(0,b.jsx)(T,{clauses:ac,onChange:ad,user:a})})]}),(0,b.jsxs)("div",{className:"flex-1 min-w-0 flex flex-col",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between mb-2",children:[(0,b.jsxs)("h2",{className:"text-sm font-semibold text-foreground",children:[c("tracePage.listTitle"),(0,b.jsx)("span",{className:"ml-2 text-foreground-muted font-normal tabular-nums",children:ar.length})]}),(0,b.jsxs)("div",{className:"flex items-center gap-3",children:[an&&(0,b.jsxs)(D.Button,{variant:"ghost",size:"sm",onClick:am,className:"h-7 px-2 text-xs text-foreground-muted gap-1",children:[(0,b.jsx)(p.RotateCcw,{className:"size-3","aria-hidden":!0}),c("tracePage.resetColumnWidths")]}),(0,b.jsx)("span",{className:"text-xs text-foreground-muted",children:c("tracePage.listHint")})]})]}),(0,b.jsx)(x,{className:"flex flex-col",children:(0,b.jsx)("div",{className:"flex-1 min-h-0 rounded-md border border-card-border bg-card overflow-auto",children:h?(0,b.jsx)("div",{className:"p-4 space-y-2",children:[0,1,2,3,4].map(a=>(0,b.jsx)(af,{className:"h-8 w-full"},a))}):0===au.length?(0,b.jsx)(al,{title:c("tracePage.emptyTitle"),description:av?c("tracePage.emptyDescription"):void 0,action:av?(0,b.jsx)(D.Button,{variant:"outline",size:"sm",onClick:aw,children:c("tracePage.resetFilters")}):void 0}):(0,b.jsxs)("table",{className:"w-full table-fixed text-sm",style:{minWidth:ao},children:[(0,b.jsxs)("colgroup",{children:[(0,b.jsx)("col",{style:{width:aj.traceId}}),(0,b.jsx)("col",{style:{width:aj.agent}}),(0,b.jsx)("col",{style:{width:aj.status}}),(0,b.jsx)("col",{style:{width:aj.tags}}),(0,b.jsx)("col",{}),(0,b.jsx)("col",{style:{width:aj.tokens}}),(0,b.jsx)("col",{style:{width:aj.time}}),(0,b.jsx)("col",{style:{width:aj.actions}})]}),(0,b.jsx)("thead",{className:"sticky top-0 z-10",children:(0,b.jsxs)("tr",{className:"bg-background-secondary text-left",children:[(0,b.jsx)(a5,{colKey:"traceId",currentWidth:aj.traceId,onResize:ak,children:(0,b.jsx)(aM.Term,{id:"trace",label:c("tracePage.columnTraceId")})}),(0,b.jsx)(a6,{sortKey:"agent",currentKey:J,dir:L,onSort:as,colKey:"agent",currentWidth:aj.agent,onResize:ak,children:(0,b.jsx)(aM.Term,{id:"agent",label:c("tracePage.columnAgent")})}),(0,b.jsx)(a6,{sortKey:"status",currentKey:J,dir:L,onSort:as,colKey:"status",currentWidth:aj.status,onResize:ak,children:(0,b.jsx)(aM.Term,{id:"chain-status",label:c("tracePage.columnStatus")})}),(0,b.jsx)(a5,{colKey:"tags",currentWidth:aj.tags,onResize:ak,children:c("tracePage.columnTags")}),(0,b.jsx)(a5,{children:c("tracePage.columnTask")}),(0,b.jsx)(a6,{sortKey:"tokens",currentKey:J,dir:L,onSort:as,colKey:"tokens",currentWidth:aj.tokens,onResize:ak,children:(0,b.jsx)(aM.Term,{id:"tokens",label:c("tracePage.columnTokens")})}),(0,b.jsx)(a6,{sortKey:"timestamp",currentKey:J,dir:L,onSort:as,colKey:"time",currentWidth:aj.time,onResize:ak,children:c("tracePage.columnTime")}),(0,b.jsx)(a5,{align:"right",colKey:"actions",currentWidth:aj.actions,onResize:ak,children:c("tracePage.columnActions")})]})}),(0,b.jsx)("tbody",{children:au.map((a,c)=>(0,b.jsx)(a7,{execution:a,onClick:()=>ap(a)},(a.task_id||a.upload_id||c)+""))})]})})}),ar.length>0&&(0,b.jsx)(y,{className:"border-0 mt-3 pt-0 shrink-0",children:(0,b.jsx)(ai.Pagination,{className:"w-full",page:N,pageSize:Q,total:ar.length,onPageChange:P,onPageSizeChange:R,pageSizes:aP,pageSizeLabel:a=>c("tracePage.pageSize",{n:String(a)}),summary:(a,b,d)=>c("tracePage.pageSummary",{start:String(a),end:String(b),total:String(d)})})})]})]})]})})]})}function a1({execution:a,onBack:g}){let{t:j,locale:k}=(0,$.useLocale)(),l=(0,d.useRouter)(),m=(0,d.useSearchParams)(),[n,p]=(0,e.useState)(null),[q,r]=(0,e.useState)(!1),t=a.task_id||a.upload_id||"",v=!!a.is_subagent,w=a.parent_execution_id||null,x=a.subagent_type||null,y=a.subagent_name||null,A=(0,e.useCallback)(a=>{if(!a)return;let b=new URLSearchParams(m?.toString()??"");b.set("taskId",a),l.push(`${window.location.pathname}?${b.toString()}`,{scroll:!1})},[l,m]),B=(0,e.useCallback)(async()=>{if(w)try{let a=await (0,G.apiFetch)(`/api/observe/data?executionId=${encodeURIComponent(w)}&includeEvaluations=0`);if(!a.ok)return;let b=await a.json(),c=Array.isArray(b)?b[0]:b?.data?.[0]||b,d=c?.task_id||c?.upload_id;d&&A(d)}catch{}},[w,A]),C=aU(a),[E,F]=(0,e.useState)("running"===C),[H,I]=(0,e.useState)(5),[J,K]=(0,e.useState)(0),L=(0,e.useRef)(null);(0,e.useEffect)(()=>{L.current=n},[n]);let M=(0,e.useCallback)((a=!1)=>{if(!t)return;let b=!L.current;!a&&b&&r(!0),(0,G.apiFetch)(`/api/observe/session?taskId=${encodeURIComponent(t)}`).then(a=>a.ok?a.json():{error:"Fetch failed"}).then(a=>{p(a),K(0)}).catch(()=>{!a&&b&&p({error:"Network error"})}).finally(()=>{!a&&b&&r(!1)})},[t]);(0,e.useEffect)(()=>{M(!1)},[M]),(0,e.useEffect)(()=>{if(!E||"running"!==C)return;let a=setInterval(()=>M(!0),1e3*H);return()=>clearInterval(a)},[E,H,M,C]),(0,e.useEffect)(()=>{let a=setInterval(()=>K(a=>a+1),1e3);return()=>clearInterval(a)},[]);let{framework:N,latency:O,tokens:P,cost:Q}=a,R="running"===C,S=!q&&!!n&&!n.error;return(0,b.jsxs)("div",{className:"flex flex-col h-full min-h-0",children:[(0,b.jsxs)("div",{className:"rounded-md border border-border bg-card p-3 mb-3 flex flex-wrap items-center gap-2",children:[(0,b.jsxs)(D.Button,{variant:"ghost",size:"sm",onClick:g,className:"text-foreground-muted h-7 px-2",children:[(0,b.jsx)(f.ArrowLeft,{className:"size-3.5","aria-hidden":!0}),j("tracePage.backToList")]}),v&&w&&(0,b.jsxs)(D.Button,{variant:"ghost",size:"sm",onClick:B,className:"text-foreground-muted h-7 px-2",title:"zh"===k?"返回父 Agent 执行":"Back to parent agent execution",children:[(0,b.jsx)(f.ArrowLeft,{className:"size-3.5","aria-hidden":!0}),"zh"===k?"父执行":"Parent"]}),(0,b.jsx)(ae,{orientation:"vertical",className:"h-5"}),v&&(0,b.jsxs)("span",{title:y||"",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",x?` \xb7 ${x}`:""]}),(0,b.jsx)(ao,{value:t,head:8,tail:6}),(0,b.jsx)(aj.StatusBadge,{status:"running"===C?"running":"failed"===C?"error":"success",label:j("running"===C?"tracePage.statusRunning":"failed"===C?"tracePage.statusFailed":"tracePage.statusNormal")}),N&&(0,b.jsx)(a9,{variant:"framework",icon:o.Terminal,children:aV(N)}),"number"==typeof P&&P>0||"number"==typeof O&&O>0||"number"==typeof Q&&Q>0?(0,b.jsx)(ae,{orientation:"vertical",className:"h-5"}):null,"number"==typeof P&&P>0&&(0,b.jsx)(a3,{label:(0,b.jsx)(aM.Term,{id:"tokens",label:j("tracePage.metricTokens")}),value:P.toLocaleString()}),"number"==typeof O&&O>0&&(0,b.jsx)(a3,{label:j("tracePage.metricDuration"),value:aW(aX(O,N))}),"number"==typeof Q&&Q>0&&(0,b.jsx)(a3,{label:j("tracePage.metricCost"),value:`$${Q.toFixed(4)}`}),(0,b.jsxs)("div",{className:"ml-auto flex flex-wrap items-center gap-2",children:[(0,b.jsx)(ag.TooltipProvider,{delayDuration:250,children:(0,b.jsxs)(ag.Tooltip,{children:[(0,b.jsx)(ag.TooltipTrigger,{asChild:!0,children:(0,b.jsxs)(D.Button,{variant:E&&R?"default":"outline",size:"sm",disabled:!R,onClick:()=>R&&F(a=>!a),"aria-pressed":E&&R,className:"h-7 px-2.5 text-xs",children:[(0,b.jsx)(i.RefreshCw,{className:(0,u.cn)("size-3.5",E&&R&&"animate-spin")}),j(E&&R?"tracePage.autoRefresh":"tracePage.paused")]})}),(0,b.jsx)(ag.TooltipContent,{side:"bottom",className:"text-xs",children:j(R?"tracePage.autoRefresh":"tracePage.autoRefreshUnavailable")})]})}),E&&R&&(0,b.jsx)(ah.Select,{value:String(H),onChange:a=>I(Number(a)),options:aQ.map(a=>({value:String(a),label:`${a}s`})),"aria-label":j("tracePage.refreshInterval")}),(0,b.jsx)("span",{className:"text-xs text-foreground-muted whitespace-nowrap tabular-nums min-w-[36px]",children:0===J?j("tracePage.justNow"):j("tracePage.secondsAgo",{s:String(J)})}),(0,b.jsx)(D.Button,{variant:"outline",size:"icon",onClick:()=>M(!0),"aria-label":j("tracePage.refreshNow"),className:"size-7",children:(0,b.jsx)(i.RefreshCw,{className:"size-3.5"})}),(0,b.jsx)(ae,{orientation:"vertical",className:"h-5"}),(0,b.jsx)(D.Button,{variant:"default",size:"sm",asChild:!0,className:"h-7 text-xs",children:(0,b.jsx)(c.default,{href:`${aN}/fault?taskId=${t}`,children:j("tracePage.diagnosis")})}),(0,b.jsxs)(D.Button,{variant:"outline",size:"sm",onClick:()=>{if(n&&!n.error)try{let a=function(a){if(!a)return a;let b=JSON.parse(JSON.stringify(a));return b.startTime&&(b.startTime=aY(b.startTime)),Array.isArray(b.interactions)&&(b.interactions=b.interactions.map(a=>{let b={...a};return b.timestamp&&(b.timestamp=aY(b.timestamp)),b.message?.timestamp&&(b.message.timestamp=aY(b.message.timestamp)),b.timeInfo?.created&&(b.timeInfo.created=aY(b.timeInfo.created)),b})),b}(n),b=new Blob([JSON.stringify(a,null,2)],{type:"application/json;charset=utf-8"}),c=URL.createObjectURL(b),d=document.createElement("a");d.href=c,d.download=`trace-${t.replace(/[\\/:*?"<>|]+/g,"_").replace(/\s+/g,"_").slice(0,120)||"trace"}-session.json`,document.body.appendChild(d),d.click(),d.remove(),URL.revokeObjectURL(c),s.toast.success("zh"===k?"JSON 已开始下载":"JSON download started")}catch(a){console.error("[trace] download session json failed:",a),s.toast.error("zh"===k?"下载 JSON 失败":"Failed to download JSON")}},disabled:!S,title:S?"zh"===k?"下载会话数据(原始JSON)":"Download session data raw JSON":"zh"===k?"会话数据加载后可下载":"Download available after session data loads",className:"h-7 text-xs",children:[(0,b.jsx)(h,{className:"size-3.5","aria-hidden":!0}),"zh"===k?"保存trace":"Save trace"]})]})]}),"failed"===C&&a.failures&&a.failures.length>0&&(0,b.jsx)(a2,{failures:a.failures}),(0,b.jsx)("h2",{className:"text-sm font-semibold text-foreground mb-2",children:j("tracePage.executionTrace")}),(0,b.jsx)("div",{className:"min-h-[200px] flex-1 min-h-0",children:q?(0,b.jsxs)("div",{className:"rounded-md border border-card-border bg-card p-4 space-y-2",children:[(0,b.jsx)(af,{className:"h-6 w-1/2"}),(0,b.jsx)(af,{className:"h-6 w-3/4"}),(0,b.jsx)(af,{className:"h-6 w-2/3"}),(0,b.jsx)(af,{className:"h-6 w-1/2"})]}):n?.error?(0,b.jsx)("div",{className:"rounded-md border border-error-border bg-error-subtle text-error p-4 text-sm",role:"alert",children:n.error}):n?.interactions?.length>0?(0,b.jsx)(z.default,{interactions:n.interactions,onSubagentNavigate:A,rootExecutionId:a.upload_id||a.task_id}):(0,b.jsx)("div",{className:"rounded-md border border-card-border bg-card",children:(0,b.jsx)(al,{title:j("tracePage.noTrace")})})})]})}function a2({failures:a}){let{t:c}=(0,$.useLocale)();return(0,b.jsxs)("div",{className:"mb-3",children:[(0,b.jsx)("h3",{className:"text-sm font-semibold text-foreground mb-2",children:c("tracePage.failureDetails")}),(0,b.jsx)("div",{className:"rounded-md border-l-4 border-l-error border border-card-border bg-error-subtle/30 overflow-hidden",children:a.map((d,e)=>(0,b.jsxs)("div",{className:(0,u.cn)("p-3 grid gap-1.5",e<a.length-1&&"border-b border-card-border"),children:[(0,b.jsxs)("div",{className:"flex items-center gap-2 flex-wrap",children:[(0,b.jsxs)("span",{className:"text-xs font-semibold text-error inline-flex items-center gap-1",children:[(0,b.jsx)(k.XCircle,{className:"size-3.5","aria-hidden":!0}),d.failure_type||c("tracePage.unknownError")]}),d.attribution&&(0,b.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:d.attribution})]}),d.description&&(0,b.jsx)("p",{className:"text-sm text-foreground",children:d.description}),d.context&&(0,b.jsxs)("p",{className:"text-xs text-foreground-muted",children:[(0,b.jsx)("span",{className:"font-medium",children:c("tracePage.contextLabel")}),d.context]}),d.recovery&&(0,b.jsxs)("p",{className:"text-xs text-success",children:[(0,b.jsx)("span",{className:"font-medium",children:c("tracePage.recoveryLabel")}),d.recovery]})]},e))})]})}function a3({label:a,value:c}){return(0,b.jsxs)("span",{className:"inline-flex items-baseline gap-1 text-xs",children:[(0,b.jsx)("span",{className:"text-foreground-muted",children:a}),(0,b.jsx)("span",{className:"font-semibold text-foreground tabular-nums",children:c})]})}function a4({label:a,value:c,accent:d}){return(0,b.jsxs)("div",{className:"rounded-md border border-card-border bg-card p-3",children:[(0,b.jsx)("div",{className:"text-xs text-foreground-muted",children:a}),(0,b.jsx)("div",{className:(0,u.cn)("mt-1 text-xl font-semibold tabular-nums","error"===d?"text-error":"text-foreground"),children:c})]})}function a5({children:a,align:c,className:d,colKey:e,currentWidth:f,onResize:g}){let h=!!(e&&g&&null!=f);return(0,b.jsxs)("th",{className:(0,u.cn)("relative px-3 py-2 text-xs font-medium text-foreground-muted border-b border-border whitespace-nowrap","right"===c&&"text-right","center"===c&&"text-center",d),children:[a,h&&(0,b.jsx)(a$,{colKey:e,currentWidth:f,onResize:g})]})}function a6({children:a,sortKey:c,currentKey:d,dir:e,onSort:f,colKey:g,currentWidth:h,onResize:i}){let j=c===d,k=!!(g&&i&&null!=h);return(0,b.jsxs)("th",{scope:"col",tabIndex:0,role:"columnheader","aria-sort":j?"asc"===e?"ascending":"descending":"none",onClick:()=>f(c),onKeyDown:a=>{("Enter"===a.key||" "===a.key)&&(a.preventDefault(),f(c))},className:(0,u.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",j?"text-primary":"text-foreground-muted"),children:[(0,b.jsxs)("span",{className:"inline-flex items-center gap-1",children:[a,(0,b.jsx)("span",{className:(0,u.cn)("text-[10px]",j?"opacity-100":"opacity-40"),children:j?"asc"===e?"▲":"▼":"⇅"})]}),k&&(0,b.jsx)(a$,{colKey:g,currentWidth:h,onResize:i})]})}function a7({execution:a,onClick:d}){let e,f,{t:g}=(0,$.useLocale)(),h=a.task_id||a.upload_id||"",i=aU(a),j=(e=Array.isArray(a.invoked_skills)?a.invoked_skills:Array.isArray(a.invokedSkills)?a.invokedSkills:[],f=new Set,e.forEach(a=>{let b=a?.name?.trim();b&&f.add(b)}),Array.from(f)).length,k=new Set((a.agents??[]).filter(Boolean)).size,p=g("running"===i?"tracePage.statusRunning":"failed"===i?"tracePage.statusFailed":"tracePage.statusSuccess");return(0,b.jsxs)("tr",{onClick:d,onKeyDown:a=>{"Enter"===a.key&&(a.preventDefault(),d())},tabIndex:0,role:"button","aria-label":`${g("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:[(0,b.jsx)(ba,{children:(0,b.jsx)(ao,{value:h,head:6,tail:4})}),(0,b.jsx)(ba,{children:(0,b.jsx)(ap,{className:"text-foreground text-sm",children:a.agent||(a.agents&&a.agents.length>0?a.agents[0]:null)||a.framework||"-"})}),(0,b.jsx)(ba,{children:(0,b.jsx)(aj.StatusBadge,{status:"running"===i?"running":"failed"===i?"error":"success",label:p})}),(0,b.jsx)(ba,{children:(0,b.jsxs)("div",{className:"flex gap-1 flex-wrap",children:[a.is_subagent?(0,b.jsx)("span",{title:a.subagent_name||a.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"}):k>1&&(0,b.jsx)(a9,{variant:"agent",icon:m.Users,children:"Multi-Agent"}),j>0&&(0,b.jsx)(a9,{variant:"skill",icon:n,children:"Skills"}),a.framework&&(0,b.jsx)(a9,{variant:"framework",icon:o.Terminal,children:aV(a.framework)})]})}),(0,b.jsx)(ba,{children:(0,b.jsx)(ap,{className:"text-foreground text-sm",children:a.query||g("tracePage.noQuery")})}),(0,b.jsx)(ba,{children:(0,b.jsx)("span",{className:"text-xs text-foreground-secondary font-mono tabular-nums whitespace-nowrap",children:null!=a.tokens?a.tokens.toLocaleString():"-"})}),(0,b.jsx)(ba,{children:(0,b.jsx)(aL,{value:a.timestamp,className:"text-xs text-foreground-secondary font-mono whitespace-nowrap"})}),(0,b.jsx)(ba,{align:"right",children:(0,b.jsxs)("div",{className:"inline-flex gap-1 group",onClick:a=>a.stopPropagation(),children:[(0,b.jsx)(D.Button,{variant:"ghost",size:"sm",onClick:d,className:"h-7 px-2 text-xs",children:g("tracePage.rowDetail")}),(0,b.jsx)(D.Button,{variant:"ghost",size:"sm",asChild:!0,className:"h-7 px-2 text-xs",children:(0,b.jsx)(c.default,{href:`${aN}/fault?taskId=${h}`,children:g("tracePage.rowAnalysis")})}),(0,b.jsx)(D.Button,{variant:"ghost",size:"sm",asChild:!0,className:"h-7 px-2 text-xs",children:(0,b.jsxs)(c.default,{href:`${aN}/eval/trajectory/${h}`,children:[(0,b.jsx)(l.Wrench,{className:"size-3"}),g("tracePage.rowEval")]})})]})})]})}let a8={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 a9({children:a,variant:c="framework",icon:d}){return(0,b.jsxs)("span",{className:(0,u.cn)("inline-flex items-center gap-1 rounded-sm border px-1.5 py-0.5 text-xs font-medium whitespace-nowrap leading-none",a8[c]),children:[d&&(0,b.jsx)(d,{className:"size-3 shrink-0","aria-hidden":!0}),a]})}function ba({children:a,align:c,className:d}){return(0,b.jsx)("td",{className:(0,u.cn)("px-3 py-2 text-sm text-foreground","right"===c&&"text-right","center"===c&&"text-center",d),children:a})}a.s(["default",()=>a_],536942)}];
1
+ module.exports=[536942,a=>{"use strict";var b=a.i(187924),c=a.i(238246),d=a.i(50944),e=a.i(572131),f=a.i(219107),g=a.i(536670),h=a.i(519783),i=a.i(474215),j=a.i(211134),k=a.i(924613),l=a.i(285888),m=a.i(164831);let n=(0,m.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 o=a.i(357307),p=a.i(533838),q=a.i(911715);let r=(0,m.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 s=a.i(403512),t=a.i(752562),u=a.i(417949),v=a.i(823292),w=a.i(729936),x=a.i(232455),y=a.i(857195),z=a.i(707963),A=a.i(233540),B=a.i(866718),C=a.i(699570),D=a.i(400187),E=a.i(368114);let F=(0,D.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 G({className:a,variant:c,...d}){return(0,b.jsx)("div",{className:(0,E.cn)(F({variant:c}),a),...d})}var H=a.i(575110);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"}],J=new Map(I.map(a=>[a.column,a])),K={string:["=","contains","does not contain","starts with","ends with"],number:["=",">","<",">=","<="],datetime:[">","<",">=","<="],stringOptions:["any of","none of"],arrayOptions:["any of","none of","all of"],boolean:["="]},L=["is null","is not null"],M=I.filter(a=>"computed"!==a.source&&"executionSkill"!==a.source&&"query"!==a.column&&"finalResult"!==a.column),N=new Set(["framework","agentName","model","subagentType"]);function O(a){return({"=":"=",contains:"包含","does not contain":"不包含","starts with":"前缀","ends with":"后缀",">":">","<":"<",">=":"≥","<=":"≤","any of":"任一","none of":"非","all of":"全部","is null":"为空","is not null":"非空"})[a]??a}function P({clauses:a,onChange:c,search:d,onSearchChange:f,user:g}){let h,j=(0,e.useRef)(null),k=(0,e.useRef)(null),[l,m]=(0,e.useState)(!1),[n,o]=(0,e.useState)("field"),[p,q]=(0,e.useState)(null),[r,s]=(0,e.useState)("contains"),[t,u]=(0,e.useState)(""),[v,w]=(0,e.useState)(new Set),[x,y]=(0,e.useState)([]),[D,F]=(0,e.useState)(d),[I,P]=(0,e.useState)(d);d!==I&&(P(d),d!==D.trim()&&F(d));let S=(0,e.useRef)(f);(0,e.useEffect)(()=>{S.current=f}),(0,e.useEffect)(()=>{let a=setTimeout(()=>S.current(D.trim()),300);return()=>clearTimeout(a)},[D]);let T=(0,e.useCallback)(()=>{o("field"),q(null),u(""),w(new Set),y([])},[]),U=(0,e.useCallback)(()=>{m(!1),T()},[T]);(0,e.useEffect)(()=>{if(!l)return;let a=a=>{j.current&&!j.current.contains(a.target)&&U()};return document.addEventListener("mousedown",a),()=>document.removeEventListener("mousedown",a)},[l,U]);let V=(0,e.useMemo)(()=>{let a=D.trim().toLowerCase();return M.filter(b=>!a||b.label.toLowerCase().includes(a)||b.column.toLowerCase().includes(a))},[D]);(0,e.useEffect)(()=>{if("value"!==n||!p||!N.has(p.column))return;let a=!0;return(0,H.apiFetch)(`/api/observe/data?user=${encodeURIComponent(g)}&facet=values&column=${encodeURIComponent(p.column)}`).then(a=>a.json()).then(b=>{a&&y(Array.isArray(b)?b:[])}).catch(()=>a&&y([])),()=>{a=!1}},[n,p,g]);let[W,X]=(0,e.useState)([]);(0,e.useEffect)(()=>{let a=M.filter(a=>"stringOptions"===a.type&&N.has(a.column)).slice(0,4),b=!0;return Promise.all(a.map(a=>(0,H.apiFetch)(`/api/observe/data?user=${encodeURIComponent(g)}&facet=values&column=${encodeURIComponent(a.column)}`).then(a=>a.json()).then(b=>Array.isArray(b)&&b[0]?{column:a.column,value:b[0].value,count:b[0].count}:null).catch(()=>null))).then(a=>{b&&X(a.filter(a=>null!=a))}),()=>{b=!1}},[g]);let Y=b=>{c([...a,b]),T(),k.current?.focus()},Z=()=>{if(!p)return;if("is null"===r||"is not null"===r)return void Y({column:p.column,operator:r});if("boolean"===p.type)return;if("stringOptions"===p.type){if(0===v.size)return;Y({column:p.column,operator:r,value:Array.from(v)});return}let a=t.trim();if(!a)return;let b=a;if("datetime"===p.type){let c=new Date(a);if(Number.isNaN(c.getTime()))return;b=c.toISOString()}Y({column:p.column,operator:r,value:b})};return(0,b.jsxs)("div",{ref:j,className:"relative",children:[(0,b.jsxs)("div",{className:(0,E.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:a=>{a.target===a.currentTarget&&(a.preventDefault(),k.current?.focus(),m(!0))},children:[(0,b.jsx)(A.Search,{className:"size-4 text-foreground-muted shrink-0"}),a.map((d,e)=>(0,b.jsxs)(G,{variant:"secondary",className:"gap-1 pl-2 pr-1 py-0.5 text-xs font-normal",children:[function(a){var b;let c=(b=a.column,J.get(b)),d=c?.label??a.column;if("is null"===a.operator||"is not null"===a.operator)return`${d} ${O(a.operator)}`;let e=Array.isArray(a.value)?a.value.join(" / "):String(a.value??"");return`${d} ${O(a.operator)} ${e}`}(d),(0,b.jsx)("button",{type:"button",onClick:()=>c(a.filter((a,b)=>b!==e)),className:"rounded-sm hover:bg-background-secondary p-0.5","aria-label":"移除过滤",children:(0,b.jsx)(i.X,{className:"size-3"})})]},e)),(0,b.jsx)("input",{ref:k,value:D,onChange:a=>F(a.target.value),onFocus:()=>m(!0),onKeyDown:a=>{"Escape"===a.key&&(U(),k.current?.blur())},placeholder:a.length?"继续搜索 / 过滤…":"搜索输入/输出内容或 Trace ID,或点选字段过滤…","aria-label":"搜索或过滤 trace",className:"flex-1 min-w-[10rem] bg-transparent outline-none text-sm h-6 placeholder:text-muted-foreground"})]}),l&&(0,b.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"===n?(0,b.jsxs)("div",{className:"py-1",children:[D.trim()&&(0,b.jsxs)("button",{type:"button",onMouseDown:a=>a.preventDefault(),onClick:()=>{m(!1),k.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,b.jsx)(A.Search,{className:"size-3.5 shrink-0"}),(0,b.jsxs)("span",{className:"truncate",children:["模糊搜索输入/输出含 ",(0,b.jsx)("span",{className:"font-medium text-foreground",children:D.trim()})]})]}),!D.trim()&&W.length>0&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("div",{className:"px-3 pb-1 pt-1.5 text-[11px] font-medium uppercase tracking-wide text-foreground-muted",children:"建议"}),(0,b.jsx)("ul",{className:"pb-1",children:W.map(a=>(0,b.jsx)("li",{children:(0,b.jsxs)("button",{type:"button",onClick:()=>Y({column:a.column,operator:"any of",value:[a.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,b.jsxs)("span",{className:"truncate font-mono text-xs",children:[(0,b.jsxs)("span",{className:"text-foreground-muted",children:[a.column,":"]}),a.value]}),(0,b.jsx)("span",{className:"shrink-0 text-xs tabular-nums text-foreground-muted",children:a.count})]})},a.column))})]}),(0,b.jsx)("div",{className:"px-3 pb-1 pt-1.5 text-[11px] font-medium uppercase tracking-wide text-foreground-muted",children:"字段"}),(0,b.jsxs)("ul",{className:"max-h-64 overflow-auto pb-1",children:[V.map(a=>(0,b.jsx)("li",{children:(0,b.jsxs)("button",{type:"button",onClick:()=>{q(a),s(function(a){switch(a.type){case"string":return"contains";case"number":return">";case"datetime":return">=";case"stringOptions":case"arrayOptions":return"any of";case"boolean":return"="}}(a)),u(""),w(new Set),F(""),o("value")},className:"flex w-full items-center gap-3 px-3 py-1.5 text-left text-sm hover:bg-background-secondary",children:[(0,b.jsx)(A.Search,{className:"size-4 shrink-0 text-foreground-muted"}),(0,b.jsx)("span",{className:"font-medium",children:a.label}),(0,b.jsx)("span",{className:"font-mono text-xs text-foreground-muted",children:a.column}),a.description&&(0,b.jsx)("span",{className:"ml-auto truncate text-xs text-foreground-muted",children:a.description})]})},a.column)),0===V.length&&(0,b.jsx)("li",{className:"px-3 py-2 text-xs text-foreground-muted",children:"无匹配字段"})]})]}):p&&(0,b.jsxs)("div",{children:[(0,b.jsxs)("div",{className:"flex items-center gap-1 p-2 border-b border-border",children:[(0,b.jsx)("button",{type:"button",onClick:T,className:"rounded-sm hover:bg-background-secondary p-1","aria-label":"返回字段",children:(0,b.jsx)(z.ChevronLeft,{className:"size-4"})}),(0,b.jsx)("span",{className:"text-sm font-medium",children:p.label}),(0,b.jsx)("select",{value:r,onChange:a=>s(a.target.value),className:"ml-auto h-7 rounded-md border border-border bg-background text-xs px-1",children:(h=K[p.type],p.nullable?[...h,...L]:h).map(a=>(0,b.jsx)("option",{value:a,children:O(a)},a))})]}),(0,b.jsx)("div",{className:"p-2",children:"is null"===r||"is not null"===r?(0,b.jsx)(C.Button,{size:"sm",className:"w-full h-8 text-xs",onClick:Z,children:"添加"}):"boolean"===p.type?(0,b.jsxs)("div",{className:"flex gap-2",children:[(0,b.jsx)(C.Button,{size:"sm",variant:"outline",className:"flex-1 h-8 text-xs",onClick:()=>Y({column:p.column,operator:"=",value:!0}),children:"是 / true"}),(0,b.jsx)(C.Button,{size:"sm",variant:"outline",className:"flex-1 h-8 text-xs",onClick:()=>Y({column:p.column,operator:"=",value:!1}),children:"否 / false"})]}):"stringOptions"===p.type?(0,b.jsx)(R,{facet:x,picked:v,onToggle:a=>w(b=>{let c=new Set(b);return c.has(a)?c.delete(a):c.add(a),c}),onConfirm:Z}):(0,b.jsxs)("div",{children:[(0,b.jsxs)("div",{className:"flex gap-2",children:[(0,b.jsx)(B.Input,{autoFocus:!0,type:"number"===p.type?"number":"datetime"===p.type?"datetime-local":"text",value:t,onChange:a=>u(a.target.value),onKeyDown:a=>"Enter"===a.key&&Z(),placeholder:p.unit?`值(${p.unit})`:"值…",className:"h-8 text-sm"}),(0,b.jsx)(C.Button,{size:"sm",className:"h-8 text-xs shrink-0",onClick:Z,children:"添加"})]}),(0,b.jsx)(Q,{facet:x,query:t,onPick:a=>Y({column:p.column,operator:r,value:a})})]})})]})})]})}function Q({facet:a,query:c,onPick:d}){let f=c.trim().toLowerCase(),g=(0,e.useMemo)(()=>a.filter(a=>!f||a.value.toLowerCase().includes(f)).slice(0,8),[a,f]);return 0===g.length?null:(0,b.jsxs)("div",{className:"mt-2",children:[(0,b.jsx)("div",{className:"px-1 pb-1 text-[11px] font-medium uppercase tracking-wide text-foreground-muted",children:"建议"}),(0,b.jsx)("ul",{className:"max-h-48 overflow-auto",children:g.map(a=>(0,b.jsx)("li",{children:(0,b.jsxs)("button",{type:"button",onClick:()=>d(a.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,b.jsx)("span",{className:"truncate",children:a.value}),(0,b.jsx)("span",{className:"shrink-0 text-xs tabular-nums text-foreground-muted",children:a.count})]})},a.value))})]})}function R({facet:a,picked:c,onToggle:d,onConfirm:e}){return(0,b.jsxs)("div",{children:[(0,b.jsxs)("ul",{className:"max-h-56 overflow-auto -mx-2",children:[a.map(a=>(0,b.jsx)("li",{children:(0,b.jsxs)("button",{type:"button",onClick:()=>d(a.value),className:"flex w-full items-center justify-between px-3 py-1.5 text-sm hover:bg-background-secondary text-left",children:[(0,b.jsxs)("span",{className:"flex items-center gap-2",children:[(0,b.jsx)("input",{type:"checkbox",readOnly:!0,checked:c.has(a.value),className:"pointer-events-none"}),a.value]}),(0,b.jsx)("span",{className:"text-xs text-foreground-muted tabular-nums",children:a.count})]})},a.value)),0===a.length&&(0,b.jsx)("li",{className:"px-3 py-2 text-xs text-foreground-muted",children:"无可选值"})]}),(0,b.jsxs)(C.Button,{size:"sm",className:"w-full h-8 text-xs mt-2",disabled:0===c.size,onClick:e,children:["添加(",c.size,")"]})]})}var S=a.i(589027),T=a.i(141146);let U=[{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 V({clauses:a,onChange:c,user:d}){return(0,b.jsx)("div",{className:"divide-y divide-card-border",children:U.map(e=>{var f;let g,h=(f=e.column,J.get(f));return h?(0,b.jsx)(W,{col:h,kind:e.kind,defaultOpen:e.defaultOpen,user:d,current:(g=e.column,a.filter(a=>a.column===g)),onSet:b=>{let d;return d=e.column,c([...a.filter(a=>a.column!==d),...b])}},e.column):null})})}function W({col:a,kind:c,defaultOpen:d,user:f,current:g,onSet:h}){let[i,j]=(0,e.useState)(!!d),k=g.length>0;return(0,b.jsxs)("div",{className:"py-2",children:[(0,b.jsxs)("button",{type:"button",onClick:()=>j(a=>!a),className:"flex w-full items-center gap-1.5 px-1 text-left",children:[i?(0,b.jsx)(S.ChevronDown,{className:"size-3.5 text-foreground-muted"}):(0,b.jsx)(T.ChevronRight,{className:"size-3.5 text-foreground-muted"}),(0,b.jsx)("span",{className:"text-sm font-medium",children:a.label}),(0,b.jsx)("span",{className:"font-mono text-[11px] text-foreground-muted",children:a.column}),k&&(0,b.jsx)("span",{className:"ml-auto size-1.5 rounded-full bg-primary","aria-label":"已启用"})]}),i&&(0,b.jsxs)("div",{className:"mt-1.5 px-1",children:["select"===c&&(0,b.jsx)(X,{col:a,user:f,current:g,onSet:h}),"contains"===c&&(0,b.jsx)(Y,{col:a,current:g,onSet:h}),"range"===c&&(0,b.jsx)(Z,{col:a,current:g,onSet:h}),"boolean"===c&&(0,b.jsx)($,{col:a,current:g,onSet:h})]})]})}function X({col:a,user:c,current:d,onSet:f}){let[g,h]=(0,e.useState)([]),[i,j]=(0,e.useState)(!1);(0,e.useEffect)(()=>{let b=!0;return(0,H.apiFetch)(`/api/observe/data?user=${encodeURIComponent(c)}&facet=values&column=${encodeURIComponent(a.column)}`).then(a=>a.json()).then(a=>b&&h(Array.isArray(a)?a:[])).catch(()=>b&&h([])).finally(()=>b&&j(!0)),()=>{b=!1}},[a.column,c]);let k=new Set(d.find(a=>"any of"===a.operator)?.value??[]);return i?0===g.length?(0,b.jsx)("p",{className:"text-xs text-foreground-muted",children:"无可选值"}):(0,b.jsx)("ul",{className:"max-h-48 overflow-auto",children:g.map(c=>(0,b.jsx)("li",{children:(0,b.jsxs)("button",{type:"button",onClick:()=>{var b;let d,e;return b=c.value,(d=new Set(k)).has(b)?d.delete(b):d.add(b),void f((e=Array.from(d)).length?[{column:a.column,operator:"any of",value:e}]:[])},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,b.jsxs)("span",{className:"flex min-w-0 items-center gap-2",children:[(0,b.jsx)("input",{type:"checkbox",readOnly:!0,checked:k.has(c.value),className:"pointer-events-none"}),(0,b.jsx)("span",{className:"truncate",children:c.value})]}),(0,b.jsx)("span",{className:"shrink-0 text-xs tabular-nums text-foreground-muted",children:c.count})]})},c.value))}):(0,b.jsx)("p",{className:"text-xs text-foreground-muted",children:"加载中…"})}function Y({col:a,current:c,onSet:d}){let f=c.find(a=>"contains"===a.operator)?.value??"",[g,h]=(0,e.useState)(f),[i,j]=(0,e.useState)(f);f!==i&&(j(f),f!==g&&h(f));let k=()=>{let b=g.trim();d(b?[{column:a.column,operator:"contains",value:b}]:[])};return(0,b.jsx)("input",{value:g,onChange:a=>h(a.target.value),onBlur:k,onKeyDown:a=>"Enter"===a.key&&k(),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 Z({col:a,current:c,onSet:d}){let f=c.find(a=>">="===a.operator),g=c.find(a=>"<="===a.operator),[h,i]=(0,e.useState)(f?String(f.value):""),[j,k]=(0,e.useState)(g?String(g.value):""),l=`${f?.value??""}|${g?.value??""}`,[m,n]=(0,e.useState)(l);l!==m&&(n(l),i(f?String(f.value):""),k(g?String(g.value):""));let o=()=>{let b=[];""!==h.trim()&&Number.isFinite(Number(h))&&b.push({column:a.column,operator:">=",value:Number(h)}),""!==j.trim()&&Number.isFinite(Number(j))&&b.push({column:a.column,operator:"<=",value:Number(j)}),d(b)},p="h-7 w-full rounded border border-input bg-transparent px-2 text-sm outline-none focus:ring-1 focus:ring-ring";return(0,b.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,b.jsx)("input",{type:"number",value:h,onChange:a=>i(a.target.value),onBlur:o,onKeyDown:a=>"Enter"===a.key&&o(),placeholder:a.unit?`最小(${a.unit})`:"最小",className:p}),(0,b.jsx)("span",{className:"text-xs text-foreground-muted",children:"–"}),(0,b.jsx)("input",{type:"number",value:j,onChange:a=>k(a.target.value),onBlur:o,onKeyDown:a=>"Enter"===a.key&&o(),placeholder:a.unit?`最大(${a.unit})`:"最大",className:p})]})}function $({col:a,current:c,onSet:d}){let e=c.find(a=>"="===a.operator),f=e?e.value:void 0,g=(c,e)=>(0,b.jsx)("button",{type:"button",onClick:()=>d(void 0===e?[]:[{column:a.column,operator:"=",value:e}]),className:"flex-1 rounded px-2 py-1 text-xs "+(f===e?"bg-primary text-primary-foreground":"hover:bg-background-secondary text-foreground-muted"),children:c});return(0,b.jsxs)("div",{className:"flex gap-1 rounded border border-input p-0.5",children:[g("全部",void 0),g("是",!0),g("否",!1)]})}var _=a.i(943408),aa=a.i(106927),ab=a.i(434465),ac=a.i(30553),ad="horizontal",ae=["horizontal","vertical"],af=e.forwardRef((a,c)=>{var d;let{decorative:e,orientation:f=ad,...g}=a,h=(d=f,ae.includes(d))?f:ad;return(0,b.jsx)(ac.Primitive.div,{"data-orientation":h,...e?{role:"none"}:{"aria-orientation":"vertical"===h?h:void 0,role:"separator"},...g,ref:c})});function ag({className:a,orientation:c="horizontal",decorative:d=!0,...e}){return(0,b.jsx)(af,{"data-slot":"separator-root",decorative:d,orientation:c,className:(0,E.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",a),...e})}function ah({className:a,...c}){return(0,b.jsx)("div",{"data-slot":"skeleton",className:(0,E.cn)("bg-primary/10 animate-pulse rounded-md",a),...c})}af.displayName="Separator";var ai=a.i(785259),aj=a.i(580701),ak=a.i(882524),al=a.i(507554),am=a.i(470121),an=a.i(750104),ao=a.i(596743),ap=a.i(486228),aq=a.i(422297),ar=a.i(392843),as=a.i(704691),at=a.i(692616),au=a.i(777192),av=a.i(811011),aw=a.i(225152),ax=a.i(241852),ay=a.i(152081),az="Popover",[aA,aB]=(0,an.createContextScope)(az,[as.createPopperScope]),aC=(0,as.createPopperScope)(),[aD,aE]=aA(az),aF=a=>{let{__scopePopover:c,children:d,open:f,defaultOpen:g,onOpenChange:h,modal:i=!1}=a,j=aC(c),k=e.useRef(null),[l,m]=e.useState(!1),[n,o]=(0,aw.useControllableState)({prop:f,defaultProp:g??!1,onChange:h,caller:az});return(0,b.jsx)(as.Root,{...j,children:(0,b.jsx)(aD,{scope:c,contentId:(0,ar.useId)(),triggerRef:k,open:n,onOpenChange:o,onOpenToggle:e.useCallback(()=>o(a=>!a),[o]),hasCustomAnchor:l,onCustomAnchorAdd:e.useCallback(()=>m(!0),[]),onCustomAnchorRemove:e.useCallback(()=>m(!1),[]),modal:i,children:d})})};aF.displayName=az;var aG="PopoverAnchor";e.forwardRef((a,c)=>{let{__scopePopover:d,...f}=a,g=aE(aG,d),h=aC(d),{onCustomAnchorAdd:i,onCustomAnchorRemove:j}=g;return e.useEffect(()=>(i(),()=>j()),[i,j]),(0,b.jsx)(as.Anchor,{...h,...f,ref:c})}).displayName=aG;var aH="PopoverTrigger",aI=e.forwardRef((a,c)=>{let{__scopePopover:d,...e}=a,f=aE(aH,d),g=aC(d),h=(0,am.useComposedRefs)(c,f.triggerRef),i=(0,b.jsx)(ac.Primitive.button,{type:"button","aria-haspopup":"dialog","aria-expanded":f.open,"aria-controls":f.open?f.contentId:void 0,"data-state":aU(f.open),...e,ref:h,onClick:(0,al.composeEventHandlers)(a.onClick,f.onOpenToggle)});return f.hasCustomAnchor?i:(0,b.jsx)(as.Anchor,{asChild:!0,...g,children:i})});aI.displayName=aH;var aJ="PopoverPortal",[aK,aL]=aA(aJ,{forceMount:void 0}),aM=a=>{let{__scopePopover:c,forceMount:d,children:e,container:f}=a,g=aE(aJ,c);return(0,b.jsx)(aK,{scope:c,forceMount:d,children:(0,b.jsx)(au.Presence,{present:d||g.open,children:(0,b.jsx)(at.Portal,{asChild:!0,container:f,children:e})})})};aM.displayName=aJ;var aN="PopoverContent",aO=e.forwardRef((a,c)=>{let d=aL(aN,a.__scopePopover),{forceMount:e=d.forceMount,...f}=a,g=aE(aN,a.__scopePopover);return(0,b.jsx)(au.Presence,{present:e||g.open,children:g.modal?(0,b.jsx)(aQ,{...f,ref:c}):(0,b.jsx)(aR,{...f,ref:c})})});aO.displayName=aN;var aP=(0,av.createSlot)("PopoverContent.RemoveScroll"),aQ=e.forwardRef((a,c)=>{let d=aE(aN,a.__scopePopover),f=e.useRef(null),g=(0,am.useComposedRefs)(c,f),h=e.useRef(!1);return e.useEffect(()=>{let a=f.current;if(a)return(0,ax.hideOthers)(a)},[]),(0,b.jsx)(ay.RemoveScroll,{as:aP,allowPinchZoom:!0,children:(0,b.jsx)(aS,{...a,ref:g,trapFocus:d.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:(0,al.composeEventHandlers)(a.onCloseAutoFocus,a=>{a.preventDefault(),h.current||d.triggerRef.current?.focus()}),onPointerDownOutside:(0,al.composeEventHandlers)(a.onPointerDownOutside,a=>{let b=a.detail.originalEvent,c=0===b.button&&!0===b.ctrlKey;h.current=2===b.button||c},{checkForDefaultPrevented:!1}),onFocusOutside:(0,al.composeEventHandlers)(a.onFocusOutside,a=>a.preventDefault(),{checkForDefaultPrevented:!1})})})}),aR=e.forwardRef((a,c)=>{let d=aE(aN,a.__scopePopover),f=e.useRef(!1),g=e.useRef(!1);return(0,b.jsx)(aS,{...a,ref:c,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:b=>{a.onCloseAutoFocus?.(b),b.defaultPrevented||(f.current||d.triggerRef.current?.focus(),b.preventDefault()),f.current=!1,g.current=!1},onInteractOutside:b=>{a.onInteractOutside?.(b),b.defaultPrevented||(f.current=!0,"pointerdown"===b.detail.originalEvent.type&&(g.current=!0));let c=b.target;d.triggerRef.current?.contains(c)&&b.preventDefault(),"focusin"===b.detail.originalEvent.type&&g.current&&b.preventDefault()}})}),aS=e.forwardRef((a,c)=>{let{__scopePopover:d,trapFocus:e,onOpenAutoFocus:f,onCloseAutoFocus:g,disableOutsidePointerEvents:h,onEscapeKeyDown:i,onPointerDownOutside:j,onFocusOutside:k,onInteractOutside:l,...m}=a,n=aE(aN,d),o=aC(d);return(0,ap.useFocusGuards)(),(0,b.jsx)(aq.FocusScope,{asChild:!0,loop:!0,trapped:e,onMountAutoFocus:f,onUnmountAutoFocus:g,children:(0,b.jsx)(ao.DismissableLayer,{asChild:!0,disableOutsidePointerEvents:h,onInteractOutside:l,onEscapeKeyDown:i,onPointerDownOutside:j,onFocusOutside:k,onDismiss:()=>n.onOpenChange(!1),deferPointerDownOutside:!0,children:(0,b.jsx)(as.Content,{"data-state":aU(n.open),role:"dialog",id:n.contentId,...o,...m,ref:c,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)"}})})})}),aT="PopoverClose";function aU(a){return a?"open":"closed"}function aV({...a}){return(0,b.jsx)(aF,{"data-slot":"popover",...a})}function aW({...a}){return(0,b.jsx)(aI,{"data-slot":"popover-trigger",...a})}function aX({className:a,align:c="center",sideOffset:d=6,children:e,...f}){return(0,b.jsx)(aM,{children:(0,b.jsx)(aO,{"data-slot":"popover-content",align:c,sideOffset:d,className:(0,E.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",a),...f,children:e})})}e.forwardRef((a,c)=>{let{__scopePopover:d,...e}=a,f=aE(aT,d);return(0,b.jsx)(ac.Primitive.button,{type:"button",...e,ref:c,onClick:(0,al.composeEventHandlers)(a.onClick,()=>f.onOpenChange(!1))})}).displayName=aT,e.forwardRef((a,c)=>{let{__scopePopover:d,...e}=a,f=aC(d);return(0,b.jsx)(as.Arrow,{...f,...e,ref:c})}).displayName="PopoverArrow";var aY=a.i(335732),aZ=a.i(100842),a$=a.i(115326),a_=a.i(585650);function a0({value:a,head:c=6,tail:d=4,copy:f=!0,className:g,onClick:h}){let[i,j]=e.useState(!1);if(!a)return(0,b.jsx)("span",{className:"text-foreground-muted",children:"—"});let k=a.length>c+d+1?`${a.slice(0,c)}…${a.slice(-d)}`:a,l=async b=>{b.stopPropagation();try{await navigator.clipboard.writeText(a),j(!0),v.toast.success("Copied"),setTimeout(()=>j(!1),1500)}catch{v.toast.error("Copy failed")}};return(0,b.jsx)(ai.TooltipProvider,{delayDuration:150,children:(0,b.jsxs)(ai.Tooltip,{children:[(0,b.jsx)(ai.TooltipTrigger,{asChild:!0,children:(0,b.jsxs)("span",{onClick:h,className:(0,E.cn)("inline-flex items-center gap-1 font-mono text-xs text-foreground tabular-nums",h&&"cursor-pointer hover:text-primary",g),children:[(0,b.jsx)("span",{children:k}),f&&(0,b.jsx)("button",{type:"button",onClick:l,"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:i?(0,b.jsx)(t.Check,{className:"size-3"}):(0,b.jsx)(a_.Copy,{className:"size-3"})})]})}),(0,b.jsx)(ai.TooltipContent,{side:"top",children:(0,b.jsx)("code",{className:"text-xs",children:a})})]})})}function a1({children:a,className:c,tooltipMax:d=200,empty:e=(0,b.jsx)("span",{className:"text-foreground-muted",children:"—"})}){let f=(a??"").toString();return f?(0,b.jsx)(ai.TooltipProvider,{delayDuration:250,children:(0,b.jsxs)(ai.Tooltip,{children:[(0,b.jsx)(ai.TooltipTrigger,{asChild:!0,children:(0,b.jsx)("span",{className:(0,E.cn)("block truncate",c),children:f})}),(0,b.jsx)(ai.TooltipContent,{side:"top",className:"max-w-sm whitespace-pre-wrap text-xs",children:f.length>d?`${f.slice(0,d)}…`:f})]})}):(0,b.jsx)(b.Fragment,{children:e})}let a2=Symbol.for("constructDateFrom");function a3(a,b){return"function"==typeof a?a(b):a&&"object"==typeof a&&a2 in a?a[a2](b):a instanceof Date?new a.constructor(b):new Date(b)}let a4={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 a5(a){return (b={})=>{let c=b.width?String(b.width):a.defaultWidth;return a.formats[c]||a.formats[a.defaultWidth]}}let a6={date:a5({formats:{full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},defaultWidth:"full"}),time:a5({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:a5({formats:{full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},defaultWidth:"full"})},a7={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"};function a8(a){return(b,c)=>{let d;if("formatting"===(c?.context?String(c.context):"standalone")&&a.formattingValues){let b=a.defaultFormattingWidth||a.defaultWidth,e=c?.width?String(c.width):b;d=a.formattingValues[e]||a.formattingValues[b]}else{let b=a.defaultWidth,e=c?.width?String(c.width):a.defaultWidth;d=a.values[e]||a.values[b]}return d[a.argumentCallback?a.argumentCallback(b):b]}}function a9(a){return(b,c={})=>{let d,e=c.width,f=e&&a.matchPatterns[e]||a.matchPatterns[a.defaultMatchWidth],g=b.match(f);if(!g)return null;let h=g[0],i=e&&a.parsePatterns[e]||a.parsePatterns[a.defaultParseWidth],j=Array.isArray(i)?function(a,b){for(let c=0;c<a.length;c++)if(b(a[c]))return c}(i,a=>a.test(h)):function(a,b){for(let c in a)if(Object.prototype.hasOwnProperty.call(a,c)&&b(a[c]))return c}(i,a=>a.test(h));return d=a.valueCallback?a.valueCallback(j):j,{value:d=c.valueCallback?c.valueCallback(d):d,rest:b.slice(h.length)}}}function ba(a){return(b,c={})=>{let d=b.match(a.matchPattern);if(!d)return null;let e=d[0],f=b.match(a.parsePattern);if(!f)return null;let g=a.valueCallback?a.valueCallback(f[0]):f[0];return{value:g=c.valueCallback?c.valueCallback(g):g,rest:b.slice(e.length)}}}let bb={code:"en-US",formatDistance:(a,b,c)=>{let d,e=a4[a];if(d="string"==typeof e?e:1===b?e.one:e.other.replace("{{count}}",b.toString()),c?.addSuffix)if(c.comparison&&c.comparison>0)return"in "+d;else return d+" ago";return d},formatLong:a6,formatRelative:(a,b,c,d)=>a7[a],localize:{ordinalNumber:(a,b)=>{let c=Number(a),d=c%100;if(d>20||d<10)switch(d%10){case 1:return c+"st";case 2:return c+"nd";case 3:return c+"rd"}return c+"th"},era:a8({values:{narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},defaultWidth:"wide"}),quarter:a8({values:{narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},defaultWidth:"wide",argumentCallback:a=>a-1}),month:a8({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:a8({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:a8({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:ba({matchPattern:/^(\d+)(th|st|nd|rd)?/i,parsePattern:/\d+/i,valueCallback:a=>parseInt(a,10)}),era:a9({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:a9({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:a=>a+1}),month:a9({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:a9({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:a9({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}},bc={};function bd(a,b){return a3(b||a,a)}function be(a){let b=bd(a),c=new Date(Date.UTC(b.getFullYear(),b.getMonth(),b.getDate(),b.getHours(),b.getMinutes(),b.getSeconds(),b.getMilliseconds()));return c.setUTCFullYear(b.getFullYear()),a-c}function bf(a,...b){let c=a3.bind(null,a||b.find(a=>"object"==typeof a));return b.map(c)}function bg(a,b){let c=bd(a)-bd(b);return c<0?-1:c>0?1:c}let bh={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}} 年"}},bi={date:a5({formats:{full:"y'年'M'月'd'日' EEEE",long:"y'年'M'月'd'日'",medium:"yyyy-MM-dd",short:"yy-MM-dd"},defaultWidth:"full"}),time:a5({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:a5({formats:{full:"{{date}} {{time}}",long:"{{date}} {{time}}",medium:"{{date}} {{time}}",short:"{{date}} {{time}}"},defaultWidth:"full"})};function bj(a,b){let c=b?.weekStartsOn??b?.locale?.options?.weekStartsOn??bc.weekStartsOn??bc.locale?.options?.weekStartsOn??0,d=bd(a,b?.in),e=d.getDay();return d.setDate(d.getDate()-(7*(e<c)+e-c)),d.setHours(0,0,0,0),d}function bk(a,b,c){let d="eeee p";return!function(a,b,c){let[d,e]=bf(c?.in,a,b);return+bj(d,c)==+bj(e,c)}(a,b,c)?a.getTime()>b.getTime()?"'下个'"+d:"'上个'"+d:d}let bl={lastWeek:bk,yesterday:"'昨天' p",today:"'今天' p",tomorrow:"'明天' p",nextWeek:bk,other:"PP p"},bm={code:"zh-CN",formatDistance:(a,b,c)=>{let d,e=bh[a];if(d="string"==typeof e?e:1===b?e.one:e.other.replace("{{count}}",String(b)),c?.addSuffix)if(c.comparison&&c.comparison>0)return d+"内";else return d+"前";return d},formatLong:bi,formatRelative:(a,b,c,d)=>{let e=bl[a];return"function"==typeof e?e(b,c,d):e},localize:{ordinalNumber:(a,b)=>{let c=Number(a);switch(b?.unit){case"date":return c.toString()+"日";case"hour":return c.toString()+"时";case"minute":return c.toString()+"分";case"second":return c.toString()+"秒";default:return"第 "+c.toString()}},era:a8({values:{narrow:["前","公元"],abbreviated:["前","公元"],wide:["公元前","公元"]},defaultWidth:"wide"}),quarter:a8({values:{narrow:["1","2","3","4"],abbreviated:["第一季","第二季","第三季","第四季"],wide:["第一季度","第二季度","第三季度","第四季度"]},defaultWidth:"wide",argumentCallback:a=>a-1}),month:a8({values:{narrow:["一","二","三","四","五","六","七","八","九","十","十一","十二"],abbreviated:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],wide:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"]},defaultWidth:"wide"}),day:a8({values:{narrow:["日","一","二","三","四","五","六"],short:["日","一","二","三","四","五","六"],abbreviated:["周日","周一","周二","周三","周四","周五","周六"],wide:["星期日","星期一","星期二","星期三","星期四","星期五","星期六"]},defaultWidth:"wide"}),dayPeriod:a8({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:ba({matchPattern:/^(第\s*)?\d+(日|时|分|秒)?/i,parsePattern:/\d+/i,valueCallback:a=>parseInt(a,10)}),era:a9({matchPatterns:{narrow:/^(前)/i,abbreviated:/^(前)/i,wide:/^(公元前|公元)/i},defaultMatchWidth:"wide",parsePatterns:{any:[/^(前)/i,/^(公元)/i]},defaultParseWidth:"any"}),quarter:a9({matchPatterns:{narrow:/^[1234]/i,abbreviated:/^第[一二三四]刻/i,wide:/^第[一二三四]刻钟/i},defaultMatchWidth:"wide",parsePatterns:{any:[/(1|一)/i,/(2|二)/i,/(3|三)/i,/(4|四)/i]},defaultParseWidth:"any",valueCallback:a=>a+1}),month:a9({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:a9({matchPatterns:{narrow:/^[一二三四五六日]/i,short:/^[一二三四五六日]/i,abbreviated:/^周[一二三四五六日]/i,wide:/^星期[一二三四五六日]/i},defaultMatchWidth:"wide",parsePatterns:{any:[/日/i,/一/i,/二/i,/三/i,/四/i,/五/i,/六/i]},defaultParseWidth:"any"}),dayPeriod:a9({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 bn({value:a,className:c}){var d,e;let{locale:f}=(0,aa.useLocale)();if(null==a||""===a)return(0,b.jsx)("span",{className:"text-foreground-muted",children:"—"});let g=a instanceof Date?a:new Date(a);if(Number.isNaN(g.getTime()))return(0,b.jsx)("span",{className:"text-foreground-muted",children:"—"});let h=(d=g,e={addSuffix:!0,locale:"zh"===f?bm:bb},function(a,b,c){var d;let e,f=c?.locale??bc.locale??bb,g=bg(a,b);if(isNaN(g))throw RangeError("Invalid time value");let h=Object.assign({},c,{addSuffix:c?.addSuffix,comparison:g}),[i,j]=bf(c?.in,...g>0?[b,a]:[a,b]),k=(d=void 0,a=>{let b=(d?Math[d]:Math.trunc)(a);return 0===b?0:b})((bd(j)-bd(i))/1e3),l=Math.round((k-(be(j)-be(i))/1e3)/60);if(l<2)if(c?.includeSeconds)if(k<5)return f.formatDistance("lessThanXSeconds",5,h);else if(k<10)return f.formatDistance("lessThanXSeconds",10,h);else if(k<20)return f.formatDistance("lessThanXSeconds",20,h);else if(k<40)return f.formatDistance("halfAMinute",0,h);else if(k<60)return f.formatDistance("lessThanXMinutes",1,h);else return f.formatDistance("xMinutes",1,h);else if(0===l)return f.formatDistance("lessThanXMinutes",1,h);else return f.formatDistance("xMinutes",l,h);if(l<45)return f.formatDistance("xMinutes",l,h);if(l<90)return f.formatDistance("aboutXHours",1,h);if(l<1440){let a=Math.round(l/60);return f.formatDistance("aboutXHours",a,h)}if(l<2520)return f.formatDistance("xDays",1,h);else if(l<43200){let a=Math.round(l/1440);return f.formatDistance("xDays",a,h)}else if(l<86400)return e=Math.round(l/43200),f.formatDistance("aboutXMonths",e,h);if((e=function(a,b,c){var d,e;let f,g,h,i,[j,k,l]=bf(void 0,a,a,b),m=bg(k,l),n=Math.abs(function(a,b,c){let[d,e]=bf(void 0,a,b);return 12*(d.getFullYear()-e.getFullYear())+(d.getMonth()-e.getMonth())}(k,l));if(n<1)return 0;1===k.getMonth()&&k.getDate()>27&&k.setDate(30),k.setMonth(k.getMonth()-m*n);let o=bg(k,l)===-m;+(f=bd(j,void 0),d=void 0,(g=bd(f,d?.in)).setHours(23,59,59,999),g)==+(e=void 0,i=(h=bd(f,e?.in)).getMonth(),h.setFullYear(h.getFullYear(),i+1,0),h.setHours(23,59,59,999),h)&&1===n&&1===bg(j,l)&&(o=!1);let p=m*(n-o);return 0===p?0:p}(j,i))<12){let a=Math.round(l/43200);return f.formatDistance("xMonths",a,h)}{let a=e%12,b=Math.trunc(e/12);return a<3?f.formatDistance("aboutXYears",b,h):a<9?f.formatDistance("overXYears",b,h):f.formatDistance("almostXYears",b+1,h)}}(d,a3(d,Date.now()),e)),i=g.toLocaleString();return(0,b.jsx)(ai.TooltipProvider,{delayDuration:250,children:(0,b.jsxs)(ai.Tooltip,{children:[(0,b.jsx)(ai.TooltipTrigger,{asChild:!0,children:(0,b.jsx)("span",{className:c,children:h})}),(0,b.jsx)(ai.TooltipContent,{side:"top",className:"font-mono text-xs",children:i})]})})}var bo=a.i(960798),bp=a.i(187563);let bq=process.env.NEXT_PUBLIC_URL_PREFIX||"",br={"30m":18e5,"1h":36e5,"3h":108e5,"24h":864e5,"7d":6048e5,"30d":2592e6,all:1/0},bs=[20,50,100],bt=[5,10,30,60],bu=["traceId","agent","status","userTags","systemTags","task","tokens","time","actions"],bv={traceId:130,agent:170,status:110,userTags:220,systemTags:220,tokens:110,time:120,actions:220},bw={traceId:90,agent:100,status:80,userTags:150,systemTags:140,tokens:70,time:80,actions:160},bx={traceId:!0,agent:!0,status:!0,userTags:!0,systemTags:!1,task:!0,tokens:!0,time:!0,actions:!0},by="trace.columnWidths.v1",bz="trace.columnVisibility.v1";function bA(a){return a.agentName?.trim()||(0,ab.getPrimaryExecutionAgentName)(a)}function bB(a){let b=String(a.trace_status??a.traceStatus??"").trim().toLowerCase();return"running"===b||"success"===b||"failed"===b?b:a.trace_completed_at||a.traceCompletedAt?"success":"running"}function bC(a){let b=String(a||"").trim();switch(b.toLowerCase()){case"langfuse-langgraph":return"Langfuse-Langgraph";case"opencode":return"OpenCode";case"claude":case"claudecode":return"Claude Code";case"hermes":return"Hermes";default:return b}}function bD(a){if(!a&&0!==a)return"-";let b=new Date(a);return b.getFullYear()+"/"+String(b.getMonth()+1).padStart(2,"0")+"/"+String(b.getDate()).padStart(2,"0")+" "+String(b.getHours()).padStart(2,"0")+":"+String(b.getMinutes()).padStart(2,"0")+":"+String(b.getSeconds()).padStart(2,"0")+"."+String(b.getMilliseconds()).padStart(3,"0")}function bE(a,b){return Math.min(640,Math.max(bw[a],Math.round(b)))}function bF({colKey:a,currentWidth:c,onResize:d}){return(0,b.jsx)("span",{onMouseDown:b=>{b.preventDefault(),b.stopPropagation();let e=b.clientX,f=b=>{d(a,c+(b.clientX-e))},g=()=>{window.removeEventListener("mousemove",f),window.removeEventListener("mouseup",g),document.body.style.cursor="",document.body.style.userSelect=""};document.body.style.cursor="col-resize",document.body.style.userSelect="none",window.addEventListener("mousemove",f),window.addEventListener("mouseup",g)},onClick:a=>a.stopPropagation(),onKeyDown:a=>a.stopPropagation(),role:"separator","aria-orientation":"vertical","aria-label":`Resize column ${a}`,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,b.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 bG(){return(0,b.jsx)(e.Suspense,{fallback:(0,b.jsxs)("div",{className:"flex flex-col gap-3 px-6 py-6",children:[(0,b.jsx)(ah,{className:"h-9 w-48"}),(0,b.jsx)(ah,{className:"h-24 w-full"}),(0,b.jsx)(ah,{className:"h-96 w-full"})]}),children:(0,b.jsx)(bH,{})})}function bH(){let{user:a}=(0,_.useAuth)(),{t:c,locale:d}=(0,aa.useLocale)(),[f,g]=(0,e.useState)([]),[h,j]=(0,e.useState)(!0),[k,l]=(0,e.useState)(null),[m,n]=(0,e.useState)([]),[o,s]=(0,u.useQueryState)("time",u.parseAsString.withDefault("all")),[t,v]=(0,u.useQueryState)("status",u.parseAsString.withDefault("all")),[y,z]=(0,u.useQueryState)("framework",u.parseAsString.withDefault("all")),[A,B]=(0,u.useQueryState)("agent",u.parseAsString.withDefault("all")),[D,E]=(0,u.useQueryState)("skill",u.parseAsString.withDefault("all")),[F,G]=(0,u.useQueryState)("bizTag",u.parseAsString.withDefault("all")),[I,J]=(0,u.useQueryState)("ownership",u.parseAsString.withDefault("user")),[K,L]=(0,u.useQueryState)("scope",u.parseAsString.withDefault("root")),[M,N]=(0,u.useQueryState)("sort",u.parseAsString.withDefault("timestamp")),[O,Q]=(0,u.useQueryState)("dir",u.parseAsString.withDefault("desc")),[R,S]=(0,u.useQueryState)("page",u.parseAsInteger.withDefault(1)),[T,U]=(0,u.useQueryState)("size",u.parseAsInteger.withDefault(20)),[W,X]=(0,u.useQueryState)("taskId",u.parseAsString),[Y,Z]=(0,u.useQueryState)("q",u.parseAsString.withDefault("")),[$,ab]=(0,e.useState)(!1),[ac,ad]=(0,u.useQueryState)("f",u.parseAsString.withDefault("")),ae=(0,e.useMemo)(()=>{if(!ac)return[];try{let a=JSON.parse(ac);return Array.isArray(a)?a:[]}catch{return[]}},[ac]),af=(0,e.useCallback)(a=>ad(a.length?JSON.stringify(a):null),[ad]),ag=(0,e.useCallback)(a=>Z(a||null),[Z]),ai=(0,e.useCallback)(()=>{a?(0,H.apiFetch)(`/api/tags?user=${encodeURIComponent(a)}`).then(a=>a.ok?a.json():[]).then(a=>n(Array.isArray(a)?a:[])).catch(()=>n([])):n([])},[a]);(0,e.useEffect)(()=>{ai()},[ai]);let al=(0,e.useCallback)((a,b)=>{g(c=>c.map(c=>c.upload_id===a||c.task_id===a?{...c,userTags:b}:c)),l(c=>c&&(c.upload_id===a||c.task_id===a)?{...c,userTags:b}:c)},[]),am=(0,e.useCallback)(a=>{n(b=>(b.some(b=>b.id===a.id)?b.map(b=>b.id===a.id?a:b):[...b,a]).slice().sort((a,b)=>a.kind===b.kind?a.name.localeCompare(b.name):a.kind.localeCompare(b.kind)))},[]),an=(0,e.useMemo)(()=>[{value:"all",label:"zh"===d?"全部业务标签":"All business tags"},...m.filter(a=>"business"===a.kind).map(a=>({value:a.id,label:a.usageCount?`${a.name} (${a.usageCount})`:a.name}))],[m,d]),ao=(0,e.useMemo)(()=>({traceId:c("tracePage.columnTraceId"),agent:c("tracePage.columnAgent"),status:c("tracePage.columnStatus"),userTags:c("tracePage.columnUserTags"),systemTags:c("tracePage.columnSystemTags"),task:c("tracePage.columnTask"),tokens:c("tracePage.columnTokens"),time:c("tracePage.columnTime"),actions:c("tracePage.columnActions")}),[c]),{widths:ap,setColumnWidth:aq,resetColumnWidths:ar,isCustomized:as}=function(){let[a,b]=(0,e.useState)(bv);(0,e.useEffect)(()=>{try{let a=window.localStorage.getItem(by);if(!a)return;let c=JSON.parse(a);b(a=>{let b={...a};return Object.keys(a).forEach(a=>{let d=c[a];"number"==typeof d&&Number.isFinite(d)&&(b[a]=bE(a,d))}),"number"==typeof c.tags&&Number.isFinite(c.tags)&&(b.systemTags=bE("systemTags",c.tags)),b})}catch{}},[]);let c=(0,e.useCallback)((a,c)=>{b(b=>{let d={...b,[a]:bE(a,c)};try{window.localStorage.setItem(by,JSON.stringify(d))}catch{}return d})},[]),d=(0,e.useCallback)(()=>{b(bv);try{window.localStorage.removeItem(by)}catch{}},[]),f=(0,e.useMemo)(()=>Object.keys(bv).some(b=>a[b]!==bv[b]),[a]);return{widths:a,setColumnWidth:c,resetColumnWidths:d,isCustomized:f}}(),{columnVisibility:at,setColumnVisible:au,resetColumnVisibility:av,isVisibilityCustomized:aw}=function(){let[a,b]=(0,e.useState)(bx);(0,e.useEffect)(()=>{try{let a=window.localStorage.getItem(bz);if(!a)return;let c=JSON.parse(a);b(a=>{let b={...a};return bu.forEach(a=>{"boolean"==typeof c[a]&&(b[a]=c[a])}),b})}catch{}},[]);let c=(0,e.useCallback)((a,c)=>{b(b=>{let d={...b,[a]:c};try{window.localStorage.setItem(bz,JSON.stringify(d))}catch{}return d})},[]),d=(0,e.useCallback)(()=>{b(bx);try{window.localStorage.removeItem(bz)}catch{}},[]),f=(0,e.useMemo)(()=>bu.some(b=>a[b]!==bx[b]),[a]);return{columnVisibility:a,setColumnVisible:c,resetColumnVisibility:d,isVisibilityCustomized:f}}(),ax=(0,e.useMemo)(()=>Object.keys(bv).filter(a=>at[a]).reduce((a,b)=>a+ap[b],0)+280*!!at.task,[ap,at]),ay=(0,e.useCallback)(a=>{l(a),X(a&&(a.task_id||a.upload_id)||null)},[X]),az=(0,e.useRef)(null);(0,e.useEffect)(()=>{if(!W){k&&l(null),az.current=null;return}let a=f.find(a=>a.task_id===W||a.upload_id===W);if(a){k!==a&&l(a);return}az.current!==W&&(az.current=W,(0,H.apiFetch)(`/api/observe/data?taskId=${encodeURIComponent(W)}&includeEvaluations=0&skipAutoEvalReady=1`).then(a=>a.json()).then(a=>{Array.isArray(a)&&a.length>0&&l(a[0])}).catch(()=>{az.current===W&&(az.current=null)}))},[W,f]),(0,e.useEffect)(()=>{if(!a)return;j(!0);let b="subagent"===K?"&onlySubagents=1":"all"===K?"&includeSubagents=1":"",c="all"!==D?`&skill=${encodeURIComponent(D)}`:"",d=Y?`&query=${encodeURIComponent(Y)}`:"",e=ae.length?`&filters=${encodeURIComponent(JSON.stringify(ae))}`:"",f="all"!==F?`&bizTag=${encodeURIComponent(F)}`:"";(0,H.apiFetch)(`/api/observe/data?user=${encodeURIComponent(a)}&includeEvaluations=0&fields=light&includeTags=1&skipAutoEvalReady=1${b}${c}${d}${e}${f}`).then(a=>a.json()).then(a=>g(Array.isArray(a)?a:[])).catch(()=>g([])).finally(()=>j(!1))},[a,K,D,F,Y,ac]);let aA=(0,e.useMemo)(()=>{let a=Date.now(),b=br[o]??1/0;return f.filter(c=>!("all"!==A&&""!==A&&bA(c)!==A||b!==1/0&&a-("string"==typeof c.timestamp?Date.parse(c.timestamp):Number(c.timestamp))>b)&&("all"===y||c.framework===y)&&("all"===t||t===bB(c))&&("all"===I||(c.agentOwnership??"user")===I)&&!0).sort((a,b)=>{let c=0;switch(M){case"timestamp":c=("string"==typeof a.timestamp?Date.parse(a.timestamp):Number(a.timestamp))-("string"==typeof b.timestamp?Date.parse(b.timestamp):Number(b.timestamp));break;case"agent":c=(a.agent||"").localeCompare(b.agent||"");break;case"status":{let d={running:0,failed:1,success:2};c=d[bB(a)]-d[bB(b)];break}case"latency":c=((0,bp.latencySecondsToMs)(a.latency)??0)-((0,bp.latencySecondsToMs)(b.latency)??0);break;case"tokens":c=(a.tokens||0)-(b.tokens||0);break;case"cost":c=(a.cost||0)-(b.cost||0)}return"asc"===O?c:-c})},[f,o,y,t,A,I,M,O]);(0,e.useEffect)(()=>{1!==R&&S(1)},[o,y,t,A,D,F,I,Y,ac,M,O,T]);let aB=a=>{a===M?Q("asc"===O?"desc":"asc"):(N(a),Q("timestamp"===a||"tokens"===a?"desc":"asc"))},aC=(0,e.useMemo)(()=>{let a=aA.length,b=aA.filter(a=>"failed"===bB(a)).length,c=a?aA.reduce((a,b)=>a+((0,bp.latencySecondsToMs)(b.latency)??0),0)/a:0,d=aA.reduce((a,b)=>a+(b.tool_call_error_count||0),0),e=aA.reduce((a,b)=>a+(b.tool_call_count||0),0);return{total:a,failedCount:b,avgLatency:c,errRate:e?Math.round(d/e*1e3)/10:0}},[aA]);aA.length;let aD=(0,e.useMemo)(()=>aA.slice((R-1)*T,R*T),[aA,R,T]),aE="all"!==I||"all"!==A||"all"!==D||"all"!==F||"all"!==t||"all"!==o||"all"!==y||"root"!==K||""!==Y||ae.length>0,aF=()=>{J("all"),B("all"),E("all"),G("all"),v("all"),s("all"),z("all"),L("root"),Z(null),af([])},aG=(0,e.useMemo)(()=>{let a=new Set;return f.forEach(b=>b.framework&&a.add(b.framework)),Array.from(a).sort()},[f]),aH=(0,e.useMemo)(()=>{let a=new Set;return f.forEach(b=>{let c=bA(b);c&&a.add(c)}),Array.from(a).sort((a,b)=>a.localeCompare(b))},[f]),aI=[{value:"all",label:c("nav.allOwnership")},{value:"user",label:c("nav.userAgent")},{value:"system",label:c("nav.systemAgent")}],aJ=[{value:"all",label:c("common.all")},{value:"running",label:c("tracePage.statusRunning")},{value:"success",label:c("tracePage.statusSuccess")},{value:"failed",label:c("tracePage.statusFailed")}],aK=[{value:"all",label:c("common.allTime")},{value:"7d",label:c("nav.last7Days")},{value:"24h",label:c("topbar.last24h")},{value:"1h",label:c("nav.last1Hour")},{value:"30m",label:c("nav.last30Min")}],aL=[{value:"all",label:c("common.all")},...aG.map(a=>({value:a,label:a}))],aM=[{value:"all",label:c("tracePage.filterMainAgentAll")},...aH.map(a=>({value:a,label:a}))];return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(w.AppTopBar,{title:(0,b.jsx)(bo.Term,{id:"trace",label:c("nav.trace")}),actions:void 0,showDefaultActions:!1}),(0,b.jsx)(x.PageContainer,{children:k?(0,b.jsx)(bI,{execution:k,onBack:()=>ay(null)}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{className:"grid grid-cols-2 md:grid-cols-4 gap-3 mb-4",children:[(0,b.jsx)(bL,{label:(0,b.jsx)(bo.Term,{id:"trace",label:c("tracePage.statTotal")}),value:aC.total.toLocaleString()}),(0,b.jsx)(bL,{label:(0,b.jsx)(bo.Term,{id:"fault-item",label:c("tracePage.statFailed")}),value:String(aC.failedCount),accent:aC.failedCount>0?"error":void 0}),(0,b.jsx)(bL,{label:c("tracePage.statAvgLatency"),value:(0,bp.formatDurationMs)(aC.avgLatency)}),(0,b.jsx)(bL,{label:(0,b.jsx)(bo.Term,{id:"tool-error-rate",label:c("tracePage.statToolErrorRate"),align:"end"}),value:`${aC.errRate}%`})]}),a&&(0,b.jsx)("div",{className:"mb-3",children:(0,b.jsx)(P,{clauses:ae,onChange:af,search:Y,onSearchChange:ag,user:a})}),(0,b.jsxs)("div",{className:"mb-2 flex flex-wrap items-center gap-2",children:[(0,b.jsxs)(C.Button,{variant:"outline",size:"sm",className:"h-7 gap-1.5 text-xs",onClick:()=>ab(a=>!a),children:[(0,b.jsx)(q.SlidersHorizontal,{className:"size-3.5"}),$?"zh"===d?"隐藏过滤":"Hide filters":"zh"===d?"过滤":"Show filters"]}),(0,b.jsx)("span",{"aria-hidden":!0,className:"h-5 w-px shrink-0 self-center bg-border"}),(0,b.jsx)(aj.Select,{label:c("nav.filterAgentOwnership"),value:I,onChange:J,options:aI,active:"all"!==I}),(0,b.jsx)(aj.Select,{label:c("tracePage.filterStatus"),value:t,onChange:v,options:aJ,active:"all"!==t}),(0,b.jsx)(aj.Select,{label:c("tracePage.filterTime"),value:o,onChange:s,options:aK,active:"all"!==o}),(0,b.jsx)(aj.Select,{label:c("tracePage.filterFramework"),value:y,onChange:z,options:aL,active:"all"!==y}),(0,b.jsx)(aj.Select,{label:c("tracePage.filterBusinessTag"),value:F,onChange:G,options:an,active:"all"!==F}),(0,b.jsx)(aj.Select,{label:c("tracePage.filterMainAgent"),value:A,onChange:B,options:aM,active:"all"!==A}),(0,b.jsx)(aj.Select,{label:"zh"===d?"范围":"Scope",value:K,onChange:L,options:[{value:"root",label:"zh"===d?"仅主 Agent":"Root only"},{value:"subagent",label:"zh"===d?"仅子 Agent":"Sub-agents only"},{value:"all",label:"zh"===d?"主 + 子 Agent":"Root + sub-agents"}],active:"root"!==K}),aE&&(0,b.jsxs)(C.Button,{variant:"ghost",size:"sm",onClick:aF,className:"ml-auto h-7 gap-1 text-xs text-foreground-muted",children:[(0,b.jsx)(i.X,{className:"size-3"}),c("tracePage.resetFilters")]})]}),(0,b.jsxs)("div",{className:"flex-1 min-h-0 flex gap-3",children:[$&&(0,b.jsxs)("aside",{className:"w-60 shrink-0 overflow-auto rounded-md border border-card-border bg-card",children:[(0,b.jsx)("div",{className:"px-3 py-2 border-b border-card-border",children:(0,b.jsx)("span",{className:"text-sm font-semibold",children:"zh"===d?"过滤器":"Filters"})}),a&&(0,b.jsx)("div",{className:"p-3",children:(0,b.jsx)(V,{clauses:ae,onChange:af,user:a})})]}),(0,b.jsxs)("div",{className:"flex-1 min-w-0 flex flex-col",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between mb-2",children:[(0,b.jsxs)("h2",{className:"text-sm font-semibold text-foreground",children:[c("tracePage.listTitle"),(0,b.jsx)("span",{className:"ml-2 text-foreground-muted font-normal tabular-nums",children:aA.length})]}),(0,b.jsxs)("div",{className:"flex items-center gap-3",children:[(as||aw)&&(0,b.jsxs)(C.Button,{variant:"ghost",size:"sm",onClick:()=>{ar(),av()},className:"h-7 px-2 text-xs text-foreground-muted gap-1",children:[(0,b.jsx)(p.RotateCcw,{className:"size-3","aria-hidden":!0}),c("tracePage.resetColumns")]}),(0,b.jsxs)(aY.DropdownMenu,{children:[(0,b.jsx)(aY.DropdownMenuTrigger,{asChild:!0,children:(0,b.jsxs)(C.Button,{variant:"outline",size:"sm",className:"h-7 px-2 text-xs gap-1.5",children:[(0,b.jsx)(r,{className:"size-3.5","aria-hidden":!0}),c("tracePage.columnSettings")]})}),(0,b.jsxs)(aY.DropdownMenuContent,{align:"end",className:"w-44",children:[(0,b.jsx)(aY.DropdownMenuLabel,{children:c("tracePage.columnSettings")}),bu.map(a=>(0,b.jsx)(aY.DropdownMenuCheckboxItem,{checked:at[a],onCheckedChange:b=>au(a,!0===b),onSelect:a=>a.preventDefault(),children:ao[a]},a)),(0,b.jsx)(aY.DropdownMenuSeparator,{}),(0,b.jsxs)(aY.DropdownMenuItem,{onSelect:()=>{ar(),av()},children:[(0,b.jsx)(p.RotateCcw,{className:"size-3.5","aria-hidden":!0}),c("tracePage.resetColumns")]})]})]}),(0,b.jsx)("span",{className:"text-xs text-foreground-muted",children:c("tracePage.listHint")})]})]}),(0,b.jsx)(x.PageContent,{className:"flex flex-col",children:(0,b.jsx)("div",{className:"flex-1 min-h-0 rounded-md border border-card-border bg-card overflow-auto",children:h?(0,b.jsx)("div",{className:"p-4 space-y-2",children:[0,1,2,3,4].map(a=>(0,b.jsx)(ah,{className:"h-8 w-full"},a))}):0===aD.length?(0,b.jsx)(a$.EmptyState,{title:c("tracePage.emptyTitle"),description:aE?c("tracePage.emptyDescription"):void 0,action:aE?(0,b.jsx)(C.Button,{variant:"outline",size:"sm",onClick:aF,children:c("tracePage.resetFilters")}):void 0}):(0,b.jsxs)("table",{className:"w-full table-fixed text-sm",style:{minWidth:ax},children:[(0,b.jsxs)("colgroup",{children:[at.traceId&&(0,b.jsx)("col",{style:{width:ap.traceId}}),at.agent&&(0,b.jsx)("col",{style:{width:ap.agent}}),at.status&&(0,b.jsx)("col",{style:{width:ap.status}}),at.userTags&&(0,b.jsx)("col",{style:{width:ap.userTags}}),at.systemTags&&(0,b.jsx)("col",{style:{width:ap.systemTags}}),at.task&&(0,b.jsx)("col",{}),at.tokens&&(0,b.jsx)("col",{style:{width:ap.tokens}}),at.time&&(0,b.jsx)("col",{style:{width:ap.time}}),at.actions&&(0,b.jsx)("col",{style:{width:ap.actions}})]}),(0,b.jsx)("thead",{className:"sticky top-0 z-10",children:(0,b.jsxs)("tr",{className:"bg-background-secondary text-left",children:[at.traceId&&(0,b.jsx)(bM,{colKey:"traceId",currentWidth:ap.traceId,onResize:aq,children:(0,b.jsx)(bo.Term,{id:"trace",label:c("tracePage.columnTraceId")})}),at.agent&&(0,b.jsx)(bN,{sortKey:"agent",currentKey:M,dir:O,onSort:aB,colKey:"agent",currentWidth:ap.agent,onResize:aq,children:(0,b.jsx)(bo.Term,{id:"agent",label:c("tracePage.columnAgent")})}),at.status&&(0,b.jsx)(bN,{sortKey:"status",currentKey:M,dir:O,onSort:aB,colKey:"status",currentWidth:ap.status,onResize:aq,children:(0,b.jsx)(bo.Term,{id:"chain-status",label:c("tracePage.columnStatus")})}),at.userTags&&(0,b.jsx)(bM,{colKey:"userTags",currentWidth:ap.userTags,onResize:aq,children:c("tracePage.columnUserTags")}),at.systemTags&&(0,b.jsx)(bM,{colKey:"systemTags",currentWidth:ap.systemTags,onResize:aq,children:c("tracePage.columnSystemTags")}),at.task&&(0,b.jsx)(bM,{children:c("tracePage.columnTask")}),at.tokens&&(0,b.jsx)(bN,{sortKey:"tokens",currentKey:M,dir:O,onSort:aB,colKey:"tokens",currentWidth:ap.tokens,onResize:aq,children:(0,b.jsx)(bo.Term,{id:"tokens",label:c("tracePage.columnTokens")})}),at.time&&(0,b.jsx)(bN,{sortKey:"timestamp",currentKey:M,dir:O,onSort:aB,colKey:"time",currentWidth:ap.time,onResize:aq,children:c("tracePage.columnTime")}),at.actions&&(0,b.jsx)(bM,{align:"right",colKey:"actions",currentWidth:ap.actions,onResize:aq,children:c("tracePage.columnActions")})]})}),(0,b.jsx)("tbody",{children:aD.map((a,c)=>(0,b.jsx)(bO,{execution:a,columnVisibility:at,availableTags:m,onTagsChanged:al,onTagCreated:am,onClick:()=>ay(a)},(a.task_id||a.upload_id||c)+""))})]})})}),aA.length>0&&(0,b.jsx)(x.PageFooter,{className:"border-0 mt-3 pt-0 shrink-0",children:(0,b.jsx)(ak.Pagination,{className:"w-full",page:R,pageSize:T,total:aA.length,onPageChange:S,onPageSizeChange:U,pageSizes:bs,pageSizeLabel:a=>c("tracePage.pageSize",{n:String(a)}),summary:(a,b,d)=>c("tracePage.pageSummary",{start:String(a),end:String(b),total:String(d)})})})]})]})]})})]})}function bI({execution:a,onBack:i}){let{t:j,locale:k}=(0,aa.useLocale)(),l=(0,d.useRouter)(),m=(0,d.useSearchParams)(),[n,p]=(0,e.useState)(null),[q,r]=(0,e.useState)(!1),s=a.task_id||a.upload_id||"",t=!!a.is_subagent,u=a.parent_execution_id||null,w=a.subagent_type||null,x=a.subagent_name||null,z=(0,e.useCallback)(a=>{if(!a)return;let b=new URLSearchParams(m?.toString()??"");b.set("taskId",a),l.push(`${window.location.pathname}?${b.toString()}`,{scroll:!1})},[l,m]),A=(0,e.useCallback)(async()=>{if(u)try{let a=await (0,H.apiFetch)(`/api/observe/data?executionId=${encodeURIComponent(u)}&includeEvaluations=0`);if(!a.ok)return;let b=await a.json(),c=Array.isArray(b)?b[0]:b?.data?.[0]||b,d=c?.task_id||c?.upload_id;d&&z(d)}catch{}},[u,z]),B=bB(a),[D,F]=(0,e.useState)("running"===B),[G,I]=(0,e.useState)(5),[J,K]=(0,e.useState)(0),L=(0,e.useRef)(null);(0,e.useEffect)(()=>{L.current=n},[n]);let M=(0,e.useCallback)((a=!1)=>{if(!s)return;let b=!L.current;!a&&b&&r(!0),(0,H.apiFetch)(`/api/observe/session?taskId=${encodeURIComponent(s)}`).then(a=>a.ok?a.json():{error:"Fetch failed"}).then(a=>{p(a),K(0)}).catch(()=>{!a&&b&&p({error:"Network error"})}).finally(()=>{!a&&b&&r(!1)})},[s]);(0,e.useEffect)(()=>{M(!1)},[M]),(0,e.useEffect)(()=>{if(!D||"running"!==B)return;let a=setInterval(()=>M(!0),1e3*G);return()=>clearInterval(a)},[D,G,M,B]),(0,e.useEffect)(()=>{let a=setInterval(()=>K(a=>a+1),1e3);return()=>clearInterval(a)},[]);let{framework:N,latency:O,tokens:P,cost:Q}=a,R="running"===B,S=!q&&!!n&&!n.error;return(0,b.jsxs)("div",{className:"flex flex-col h-full min-h-0",children:[(0,b.jsxs)("div",{className:"rounded-md border border-border bg-card p-3 mb-3 flex flex-wrap items-center gap-2",children:[(0,b.jsxs)(C.Button,{variant:"ghost",size:"sm",onClick:i,className:"text-foreground-muted h-7 px-2",children:[(0,b.jsx)(f.ArrowLeft,{className:"size-3.5","aria-hidden":!0}),j("tracePage.backToList")]}),t&&u&&(0,b.jsxs)(C.Button,{variant:"ghost",size:"sm",onClick:A,className:"text-foreground-muted h-7 px-2",title:"zh"===k?"返回父 Agent 执行":"Back to parent agent execution",children:[(0,b.jsx)(f.ArrowLeft,{className:"size-3.5","aria-hidden":!0}),"zh"===k?"父执行":"Parent"]}),(0,b.jsx)(ag,{orientation:"vertical",className:"h-5"}),t&&(0,b.jsxs)("span",{title:x||"",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",w?` \xb7 ${w}`:""]}),(0,b.jsx)(a0,{value:s,head:8,tail:6}),(0,b.jsx)(aZ.StatusBadge,{status:"running"===B?"running":"failed"===B?"error":"success",label:j("running"===B?"tracePage.statusRunning":"failed"===B?"tracePage.statusFailed":"tracePage.statusNormal")}),N&&(0,b.jsx)(bV,{variant:"framework",icon:o.Terminal,children:bC(N)}),"number"==typeof P&&P>0||"number"==typeof O&&O>0||"number"==typeof Q&&Q>0?(0,b.jsx)(ag,{orientation:"vertical",className:"h-5"}):null,"number"==typeof P&&P>0&&(0,b.jsx)(bK,{label:(0,b.jsx)(bo.Term,{id:"tokens",label:j("tracePage.metricTokens")}),value:P.toLocaleString()}),"number"==typeof O&&O>0&&(0,b.jsx)(bK,{label:j("tracePage.metricDuration"),value:(0,bp.formatLatencySeconds)(O)}),"number"==typeof Q&&Q>0&&(0,b.jsx)(bK,{label:j("tracePage.metricCost"),value:`$${Q.toFixed(4)}`}),(0,b.jsxs)("div",{className:"ml-auto flex flex-wrap items-center gap-2",children:[(0,b.jsx)(ai.TooltipProvider,{delayDuration:250,children:(0,b.jsxs)(ai.Tooltip,{children:[(0,b.jsx)(ai.TooltipTrigger,{asChild:!0,children:(0,b.jsxs)(C.Button,{variant:D&&R?"default":"outline",size:"sm",disabled:!R,onClick:()=>R&&F(a=>!a),"aria-pressed":D&&R,className:"h-7 px-2.5 text-xs",children:[(0,b.jsx)(h.RefreshCw,{className:(0,E.cn)("size-3.5",D&&R&&"animate-spin")}),j(D&&R?"tracePage.autoRefresh":"tracePage.paused")]})}),(0,b.jsx)(ai.TooltipContent,{side:"bottom",className:"text-xs",children:j(R?"tracePage.autoRefresh":"tracePage.autoRefreshUnavailable")})]})}),D&&R&&(0,b.jsx)(aj.Select,{value:String(G),onChange:a=>I(Number(a)),options:bt.map(a=>({value:String(a),label:`${a}s`})),"aria-label":j("tracePage.refreshInterval")}),(0,b.jsx)("span",{className:"text-xs text-foreground-muted whitespace-nowrap tabular-nums min-w-[36px]",children:0===J?j("tracePage.justNow"):j("tracePage.secondsAgo",{s:String(J)})}),(0,b.jsx)(C.Button,{variant:"outline",size:"icon",onClick:()=>M(!0),"aria-label":j("tracePage.refreshNow"),className:"size-7",children:(0,b.jsx)(h.RefreshCw,{className:"size-3.5"})}),(0,b.jsx)(ag,{orientation:"vertical",className:"h-5"}),(0,b.jsx)(C.Button,{variant:"default",size:"sm",asChild:!0,className:"h-7 text-xs",children:(0,b.jsx)(c.default,{href:`${bq}/fault?taskId=${s}`,children:j("tracePage.diagnosis")})}),(0,b.jsxs)(C.Button,{variant:"outline",size:"sm",onClick:()=>{if(n&&!n.error)try{let a=function(a){if(!a)return a;let b=JSON.parse(JSON.stringify(a));return b.startTime&&(b.startTime=bD(b.startTime)),Array.isArray(b.interactions)&&(b.interactions=b.interactions.map(a=>{let b={...a};return b.timestamp&&(b.timestamp=bD(b.timestamp)),b.message?.timestamp&&(b.message.timestamp=bD(b.message.timestamp)),b.timeInfo?.created&&(b.timeInfo.created=bD(b.timeInfo.created)),b})),b}(n),b=new Blob([JSON.stringify(a,null,2)],{type:"application/json;charset=utf-8"}),c=URL.createObjectURL(b),d=document.createElement("a");d.href=c,d.download=`trace-${s.replace(/[\\/:*?"<>|]+/g,"_").replace(/\s+/g,"_").slice(0,120)||"trace"}-session.json`,document.body.appendChild(d),d.click(),d.remove(),URL.revokeObjectURL(c),v.toast.success("zh"===k?"JSON 已开始下载":"JSON download started")}catch(a){console.error("[trace] download session json failed:",a),v.toast.error("zh"===k?"下载 JSON 失败":"Failed to download JSON")}},disabled:!S,title:S?"zh"===k?"下载会话数据(原始 JSON)":"Download session data raw JSON":"zh"===k?"会话数据加载后可下载":"Download available after session data loads",className:"h-7 text-xs",children:[(0,b.jsx)(g.Download,{className:"size-3.5","aria-hidden":!0}),"zh"===k?"保存trace":"Save trace"]})]})]}),"failed"===B&&a.failures&&a.failures.length>0&&(0,b.jsx)(bJ,{failures:a.failures}),(0,b.jsx)("h2",{className:"text-sm font-semibold text-foreground mb-2",children:j("tracePage.executionTrace")}),(0,b.jsx)("div",{className:"min-h-[200px] flex-1 min-h-0",children:q?(0,b.jsxs)("div",{className:"rounded-md border border-card-border bg-card p-4 space-y-2",children:[(0,b.jsx)(ah,{className:"h-6 w-1/2"}),(0,b.jsx)(ah,{className:"h-6 w-3/4"}),(0,b.jsx)(ah,{className:"h-6 w-2/3"}),(0,b.jsx)(ah,{className:"h-6 w-1/2"})]}):n?.error?(0,b.jsx)("div",{className:"rounded-md border border-error-border bg-error-subtle text-error p-4 text-sm",role:"alert",children:n.error}):n?.interactions?.length>0?(0,b.jsx)(y.default,{interactions:n.interactions,onSubagentNavigate:z,rootExecutionId:a.upload_id||a.task_id}):(0,b.jsx)("div",{className:"rounded-md border border-card-border bg-card",children:(0,b.jsx)(a$.EmptyState,{title:j("tracePage.noTrace")})})})]})}function bJ({failures:a}){let{t:c}=(0,aa.useLocale)();return(0,b.jsxs)("div",{className:"mb-3",children:[(0,b.jsx)("h3",{className:"text-sm font-semibold text-foreground mb-2",children:c("tracePage.failureDetails")}),(0,b.jsx)("div",{className:"rounded-md border-l-4 border-l-error border border-card-border bg-error-subtle/30 overflow-hidden",children:a.map((d,e)=>(0,b.jsxs)("div",{className:(0,E.cn)("p-3 grid gap-1.5",e<a.length-1&&"border-b border-card-border"),children:[(0,b.jsxs)("div",{className:"flex items-center gap-2 flex-wrap",children:[(0,b.jsxs)("span",{className:"text-xs font-semibold text-error inline-flex items-center gap-1",children:[(0,b.jsx)(j.XCircle,{className:"size-3.5","aria-hidden":!0}),d.failure_type||c("tracePage.unknownError")]}),d.attribution&&(0,b.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:d.attribution})]}),d.description&&(0,b.jsx)("p",{className:"text-sm text-foreground",children:d.description}),d.context&&(0,b.jsxs)("p",{className:"text-xs text-foreground-muted",children:[(0,b.jsx)("span",{className:"font-medium",children:c("tracePage.contextLabel")}),d.context]}),d.recovery&&(0,b.jsxs)("p",{className:"text-xs text-success",children:[(0,b.jsx)("span",{className:"font-medium",children:c("tracePage.recoveryLabel")}),d.recovery]})]},e))})]})}function bK({label:a,value:c}){return(0,b.jsxs)("span",{className:"inline-flex items-baseline gap-1 text-xs",children:[(0,b.jsx)("span",{className:"text-foreground-muted",children:a}),(0,b.jsx)("span",{className:"font-semibold text-foreground tabular-nums",children:c})]})}function bL({label:a,value:c,accent:d}){return(0,b.jsxs)("div",{className:"rounded-md border border-card-border bg-card p-3",children:[(0,b.jsx)("div",{className:"text-xs text-foreground-muted",children:a}),(0,b.jsx)("div",{className:(0,E.cn)("mt-1 text-xl font-semibold tabular-nums","error"===d?"text-error":"text-foreground"),children:c})]})}function bM({children:a,align:c,className:d,colKey:e,currentWidth:f,onResize:g}){let h=!!(e&&g&&null!=f);return(0,b.jsxs)("th",{className:(0,E.cn)("relative px-3 py-2 text-xs font-medium text-foreground-muted border-b border-border whitespace-nowrap","right"===c&&"text-right","center"===c&&"text-center",d),children:[a,h&&(0,b.jsx)(bF,{colKey:e,currentWidth:f,onResize:g})]})}function bN({children:a,sortKey:c,currentKey:d,dir:e,onSort:f,colKey:g,currentWidth:h,onResize:i}){let j=c===d,k=!!(g&&i&&null!=h);return(0,b.jsxs)("th",{scope:"col",tabIndex:0,role:"columnheader","aria-sort":j?"asc"===e?"ascending":"descending":"none",onClick:()=>f(c),onKeyDown:a=>{("Enter"===a.key||" "===a.key)&&(a.preventDefault(),f(c))},className:(0,E.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",j?"text-primary":"text-foreground-muted"),children:[(0,b.jsxs)("span",{className:"inline-flex items-center gap-1",children:[a,(0,b.jsx)("span",{className:(0,E.cn)("text-[10px]",j?"opacity-100":"opacity-40"),children:j?"asc"===e?"↑":"↓":"↕"})]}),k&&(0,b.jsx)(bF,{colKey:g,currentWidth:h,onResize:i})]})}function bO({execution:a,columnVisibility:d,availableTags:e,onTagsChanged:f,onTagCreated:g,onClick:h}){let i,j,{t:m}=(0,aa.useLocale)(),p=a.task_id||a.upload_id||"",q=bB(a),r=(i=Array.isArray(a.invoked_skills)?a.invoked_skills:Array.isArray(a.invokedSkills)?a.invokedSkills:[],j=new Set,i.forEach(a=>{let b=a?.name?.trim();b&&j.add(b)}),Array.from(j)).length,s=new Set((a.agents??[]).filter(Boolean)).size,t=m("running"===q?"tracePage.statusRunning":"failed"===q?"tracePage.statusFailed":"tracePage.statusSuccess");return(0,b.jsxs)("tr",{onClick:h,onKeyDown:a=>{"Enter"===a.key&&(a.preventDefault(),h())},tabIndex:0,role:"button","aria-label":`${m("tracePage.columnTraceId")} ${p}`,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:[d.traceId&&(0,b.jsx)(bW,{children:(0,b.jsx)(a0,{value:p,head:6,tail:4})}),d.agent&&(0,b.jsx)(bW,{children:(0,b.jsx)(a1,{className:"text-foreground text-sm",children:a.agent||(a.agents&&a.agents.length>0?a.agents[0]:null)||a.framework||"-"})}),d.status&&(0,b.jsx)(bW,{children:(0,b.jsx)(aZ.StatusBadge,{status:"running"===q?"running":"failed"===q?"error":"success",label:t})}),d.userTags&&(0,b.jsx)(bW,{children:(0,b.jsx)(bS,{execution:a,availableTags:e,onTagsChanged:f,onTagCreated:g})}),d.systemTags&&(0,b.jsx)(bW,{children:(0,b.jsxs)("div",{className:"flex gap-1 flex-wrap",children:[a.is_subagent?(0,b.jsx)("span",{title:a.subagent_name||a.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"}):s>1&&(0,b.jsx)(bV,{variant:"agent",icon:l.Users,children:"Multi-Agent"}),r>0&&(0,b.jsx)(bV,{variant:"skill",icon:n,children:"Skills"}),a.framework&&(0,b.jsx)(bV,{variant:"framework",icon:o.Terminal,children:bC(a.framework)})]})}),d.task&&(0,b.jsx)(bW,{children:(0,b.jsx)(a1,{className:"text-foreground text-sm",children:a.query||m("tracePage.noQuery")})}),d.tokens&&(0,b.jsx)(bW,{children:(0,b.jsx)("span",{className:"text-xs text-foreground-secondary font-mono tabular-nums whitespace-nowrap",children:null!=a.tokens?a.tokens.toLocaleString():"-"})}),d.time&&(0,b.jsx)(bW,{children:(0,b.jsx)(bn,{value:a.timestamp,className:"text-xs text-foreground-secondary font-mono whitespace-nowrap"})}),d.actions&&(0,b.jsx)(bW,{align:"right",children:(0,b.jsxs)("div",{className:"inline-flex gap-1 group",onClick:a=>a.stopPropagation(),children:[(0,b.jsx)(C.Button,{variant:"ghost",size:"sm",onClick:h,className:"h-7 px-2 text-xs",children:m("tracePage.rowDetail")}),(0,b.jsx)(C.Button,{variant:"ghost",size:"sm",asChild:!0,className:"h-7 px-2 text-xs",children:(0,b.jsx)(c.default,{href:`${bq}/fault?taskId=${p}`,children:m("tracePage.rowAnalysis")})}),(0,b.jsx)(C.Button,{variant:"ghost",size:"sm",asChild:!0,className:"h-7 px-2 text-xs",children:(0,b.jsxs)(c.default,{href:`${bq}/eval/trajectory/${p}`,children:[(0,b.jsx)(k.Wrench,{className:"size-3"}),m("tracePage.rowEval")]})})]})})]})}async function bP(a){try{let b=await a.json();return String(b?.error||a.statusText||"Request failed")}catch{return a.statusText||"Request failed"}}function bQ(a,b){return"version"===a?"zh"===b?"版本":"Version":"zh"===b?"业务":"Business"}function bR({tag:a,removable:c}){return(0,b.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,b.jsx)("span",{className:"size-2 rounded-full shrink-0",style:{backgroundColor:a.color},"aria-hidden":!0}),(0,b.jsx)("span",{className:"truncate",children:a.name}),c&&(0,b.jsx)(i.X,{className:"size-3 shrink-0 text-foreground-muted","aria-hidden":!0})]})}function bS({execution:a,availableTags:c,onTagsChanged:d,onTagCreated:f,mode:g="cell"}){let{user:h}=(0,_.useAuth)(),{t:j,locale:k}=(0,aa.useLocale)(),l=a.upload_id||a.task_id||"",m=a.userTags??[],n=new Set(m.map(a=>a.id)),[o,p]=(0,e.useState)(!1),[q,r]=(0,e.useState)(null),[t,u]=(0,e.useState)(!1),[w,x]=(0,e.useState)(""),[y,z]=(0,e.useState)("business"),[A,D]=(0,e.useState)("#6366f1"),E=(0,e.useCallback)(async a=>{if(!a.ok)throw Error(await bP(a));let b=await a.json(),c=Array.isArray(b?.tags)?b.tags:[];return d(l,c),c},[l,d]),F=(0,e.useCallback)(async a=>{if(h&&l){r(a.id);try{let b=n.has(a.id)?await (0,H.apiFetch)(`/api/observe/executions/${encodeURIComponent(l)}/tags?user=${encodeURIComponent(h)}&tagId=${encodeURIComponent(a.id)}`,{method:"DELETE"}):await (0,H.apiFetch)(`/api/observe/executions/${encodeURIComponent(l)}/tags`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({user:h,tagIds:[a.id]})});await E(b)}catch(a){v.toast.error(a instanceof Error?a.message:j("tracePage.tagSaveFailed"))}finally{r(null)}}},[E,l,n,j,h]),G=(0,e.useCallback)(async()=>{if(h&&l&&w.trim()){u(!0);try{let a=await (0,H.apiFetch)("/api/tags",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({user:h,name:w.trim(),kind:y,color:A})});if(!a.ok)throw Error(await bP(a));let b=await a.json();f(b);let c=await (0,H.apiFetch)(`/api/observe/executions/${encodeURIComponent(l)}/tags`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({user:h,tagIds:[b.id]})});await E(c),x(""),z("business"),D("#6366f1")}catch(a){v.toast.error(a instanceof Error?a.message:j("tracePage.tagCreateFailed"))}finally{u(!1)}}},[E,l,A,y,w,f,j,h]),I=c.filter(a=>"version"===a.kind),J=c.filter(a=>"business"===a.kind),K="button"===g?(0,b.jsxs)(C.Button,{type:"button",variant:"outline",size:"sm",className:"h-7 gap-1.5 px-2 text-xs",title:j("tracePage.editTags"),onClick:a=>a.stopPropagation(),children:[(0,b.jsx)(s.Plus,{className:"size-3.5","aria-hidden":!0}),j("tracePage.editTags")]}):(0,b.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:j("tracePage.editTags"),onClick:a=>a.stopPropagation(),children:[(0,b.jsx)("span",{className:"flex min-w-0 flex-1 flex-wrap gap-1",children:m.map(a=>(0,b.jsx)(bR,{tag:a},a.id))}),(0,b.jsx)("span",{className:"inline-flex size-6 shrink-0 items-center justify-center rounded-sm text-foreground-muted",children:(0,b.jsx)(s.Plus,{className:"size-3.5","aria-hidden":!0})})]});return(0,b.jsxs)(aV,{open:o,onOpenChange:p,children:[(0,b.jsx)(aW,{asChild:!0,children:K}),(0,b.jsx)(aX,{align:"start",className:"w-80 p-3",onClick:a=>a.stopPropagation(),children:(0,b.jsxs)("div",{className:"space-y-3",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,b.jsx)("span",{className:"text-sm font-semibold text-foreground",children:j("tracePage.editTags")}),(0,b.jsxs)("div",{className:"flex items-center gap-1",children:[(0,b.jsx)("span",{className:"text-xs text-foreground-muted tabular-nums",children:m.length}),(0,b.jsx)(C.Button,{type:"button",variant:"ghost",size:"icon",className:"size-7","aria-label":"zh"===k?"关闭":"Close",onClick:()=>p(!1),children:(0,b.jsx)(i.X,{className:"size-3.5","aria-hidden":!0})})]})]}),(0,b.jsx)(bT,{title:bQ("version",k),tags:I,selectedIds:n,savingId:q,onToggle:F}),(0,b.jsx)(bT,{title:bQ("business",k),tags:J,selectedIds:n,savingId:q,onToggle:F}),(0,b.jsxs)("div",{className:"border-t border-border pt-3 space-y-2",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsxs)("select",{value:y,onChange:a=>z(a.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,b.jsx)("option",{value:"business",children:bQ("business",k)}),(0,b.jsx)("option",{value:"version",children:bQ("version",k)})]}),(0,b.jsx)("input",{type:"color",value:A,onChange:a=>D(a.target.value),className:"size-8 rounded border border-input bg-background p-0.5","aria-label":j("tracePage.tagColor")})]}),(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(B.Input,{value:w,onChange:a=>x(a.target.value),onKeyDown:a=>{"Enter"===a.key&&(a.preventDefault(),G())},placeholder:j("tracePage.newTagPlaceholder"),className:"h-8 text-sm"}),(0,b.jsxs)(C.Button,{type:"button",size:"sm",className:"h-8 px-2",disabled:t||!w.trim(),onClick:()=>void G(),children:[(0,b.jsx)(s.Plus,{className:"size-3.5","aria-hidden":!0}),j("tracePage.createTag")]})]})]})]})})]})}function bT({title:a,tags:c,selectedIds:d,savingId:e,onToggle:f}){let{t:g}=(0,aa.useLocale)();return(0,b.jsxs)("div",{className:"space-y-1.5",children:[(0,b.jsx)("div",{className:"text-xs font-medium text-foreground-muted",children:a}),0===c.length?(0,b.jsx)("p",{className:"text-xs text-foreground-muted",children:g("tracePage.noTagsAvailable")}):(0,b.jsx)("div",{className:"max-h-36 overflow-auto space-y-1 pr-1",children:c.map(a=>{let c=d.has(a.id);return(0,b.jsxs)("button",{type:"button",disabled:e===a.id,onClick:()=>f(a),className:(0,E.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",c&&"bg-primary-subtle text-primary"),children:[(0,b.jsx)("span",{className:"size-2 rounded-full shrink-0",style:{backgroundColor:a.color},"aria-hidden":!0}),(0,b.jsx)("span",{className:"min-w-0 flex-1 truncate",children:a.name}),c&&(0,b.jsx)(t.Check,{className:"size-3.5 shrink-0","aria-hidden":!0})]},a.id)})})]})}let bU={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 bV({children:a,variant:c="framework",icon:d}){return(0,b.jsxs)("span",{className:(0,E.cn)("inline-flex items-center gap-1 rounded-sm border px-1.5 py-0.5 text-xs font-medium whitespace-nowrap leading-none",bU[c]),children:[d&&(0,b.jsx)(d,{className:"size-3 shrink-0","aria-hidden":!0}),a]})}function bW({children:a,align:c,className:d}){return(0,b.jsx)("td",{className:(0,E.cn)("px-3 py-2 text-sm text-foreground","right"===c&&"text-right","center"===c&&"text-center",d),children:a})}a.s(["default",()=>bG],536942)}];
2
2
 
3
3
  //# sourceMappingURL=src_app_%28main%29_trace_page_tsx_41e7865d._.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[208925,a=>{"use strict";var b=a.i(187924),c=a.i(238246),d=a.i(572131),e=a.i(438688);let f=(0,a.i(164831).default)("chart-column",[["path",{d:"M3 3v16a2 2 0 0 0 2 2h16",key:"c24i48"}],["path",{d:"M18 17V9",key:"2bz60n"}],["path",{d:"M13 17V5",key:"1frdt8"}],["path",{d:"M8 17v-3",key:"17ska0"}]]);var g=a.i(536670),h=a.i(875160),i=a.i(31247),j=a.i(54419),k=a.i(677924),l=a.i(457431),m=a.i(48662),n=a.i(659854),o=a.i(758042),p=a.i(994222),q=a.i(823292),r=a.i(729936),s=a.i(232455),t=a.i(699570),u=a.i(580701),v=a.i(115326),w=a.i(943408),x=a.i(575110),y=a.i(106927),z=a.i(368114);let A=process.env.NEXT_PUBLIC_URL_PREFIX||"";function B(a){return[{value:"1h",label:a.last1h},{value:"1d",label:a.last1d},{value:"7d",label:a.last7d},{value:"30d",label:a.last30d},{value:"all",label:a.allTime}]}function C(a){return null!=a&&Number.isFinite(a)?a<=1?100*a:a:null}function D(a){return"accuracy"===a?"var(--success)":"tokens"===a?"var(--warning)":"latency"===a?"#0ea5e9":"#14b8a6"}function E(a){if(!Number.isFinite(a))return"-";let b=Math.abs(a),c=a=>a.endsWith(".0")?a.slice(0,-2):a;return b>=1e6?c((a/1e6).toFixed(b>=1e7?0:1))+"M":b>=1e3?c((a/1e3).toFixed(b>=1e5?0:1))+"k":Math.round(a).toLocaleString()}function F(a){return Number.isFinite(a)?a<1?Math.round(1e3*a).toLocaleString()+"ms":a<60?a.toFixed(+(a<10))+"s":(a/60).toFixed(+(a<600))+"m":"-"}function G(a){return Number.isFinite(a)?"$"+a.toFixed(a<.01?5:4):"-"}function H(a,b){if(!Number.isFinite(a))return"";switch(b){case"accuracy":return Math.round(a).toLocaleString()+"%";case"tokens":return E(a);case"latency":return F(a);case"cost":return G(a)}}function I(a,b,c){if(null==a||!Number.isFinite(a))return"-";switch(b){case"accuracy":return String((C(a)??0).toFixed(1))+"%";case"tokens":return E(a);case"latency":return F(a);case"cost":return G(a)}}function J(a){return null!=a&&Number.isFinite(a)?`${(100*a).toFixed(0)}%`:"-"}function K(a){if(!a)return"-";let b=new Date(a);return Number.isFinite(b.getTime())?`${b.getFullYear()}-${String(b.getMonth()+1).padStart(2,"0")}-${String(b.getDate()).padStart(2,"0")} ${String(b.getHours()).padStart(2,"0")}:${String(b.getMinutes()).padStart(2,"0")}`:"-"}async function L(a,b){try{let c=await a.json();return String(c?.error||b)}catch{return b}}function M(){let{user:a}=(0,w.useAuth)(),{locale:E}=(0,y.useLocale)(),F=E.toLowerCase().startsWith("zh")?{title:"版本分析",subtitle:"按版本标签聚合 root Trace,对比质量、成本和性能指标",manageTags:"版本管理",exportData:"导出数据",exportEmpty:"没有可导出的版本分析数据",agent:"Agent",framework:"框架",window:"时间窗口",question:"问题",metric:"指标",all:"全部",allQuestions:"全部问题(聚合)",allAgents:"全部 Agent",allFrameworks:"全部框架",last1h:"近 1 时",last1d:"近 1 天",last7d:"近 7 天",last30d:"近 30 天",allTime:"全部时间",accuracy:"准确率",tokens:"平均 Token",latency:"p95 时延",cost:"单次成本",overview:"版本总览",versionTagCount:"版本标签",traceTotal:"Trace 总数",availableTags:"可用标签",currentWindow:"当前时间窗口",compareChartAll:"跨版本指标演进 · 全部问题",compareChartQuestion:"跨版本指标演进 · 单问题",compareTableAll:"版本对比明细 · 全部问题",compareTableQuestion:"版本对比明细 · 单问题",compareTableHint:"按版本名排序",detailOverview:"单版本指标概览",detailChartTitle:"版本内 Trace 指标趋势",detailChartHint:"每个点=一条 Trace;点击可进入 Trace 详情;警告色=未完成 Trace。",openTraceHint:"点击节点可在新页面打开 Trace 详情",compare:"版本对比",detail:"版本详情",compareObject:"对比对象",compareHint:"全部聚合 / 下钻单问题",questions:"问题覆盖",traces:"Trace 明细",traceCount:"Trace 数",scoreCoverage:"评分覆盖率",runSuccessRate:"运行成功率",noTagsTitle:"还没有版本标签",noTagsDesc:"先在版本管理中新建版本标签,再从链路追踪给 Trace 打标。",noTraceTitle:"当前筛选下没有已打版本标签的 Trace",noTraceDesc:"调整筛选条件,或先在链路追踪中给 Trace 绑定版本标签。",loadFailed:"加载版本分析失败",detailFailed:"加载版本详情失败",derivedHint:"口径:只统计 root Trace;准确率来自 Execution.answerScore;运行成功率由 Trace 完成状态派生,不是独立存储字段。版本分析暂不支持业务标签二次过滤。",selected:"版本标签",description:"说明",noDesc:"无说明",created:"创建时间",query:"任务",time:"时间",status:"状态",viewTrace:"查看 Trace",running:"运行中",success:"成功",loading:"加载中...",chartHint:"曲线节点可点击;版本对比节点进入版本详情,版本详情节点进入 Trace 详情。"}:{title:"Version Analysis",subtitle:"Compare root traces grouped by version tags across quality and cost metrics",manageTags:"Manage tags",exportData:"Export data",exportEmpty:"No version analysis data to export",agent:"Agent",framework:"Framework",window:"Window",question:"Question",metric:"Metric",all:"All",allQuestions:"All questions",allAgents:"All agents",allFrameworks:"All frameworks",last1h:"Last 1h",last1d:"Last 1d",last7d:"Last 7d",last30d:"Last 30d",allTime:"All time",accuracy:"Accuracy",tokens:"Avg tokens",latency:"P95 latency",cost:"Avg cost",overview:"Version overview",versionTagCount:"Version tags",traceTotal:"Total traces",availableTags:"Available tags",currentWindow:"Current window",compareChartAll:"Cross-version metric trend · All questions",compareChartQuestion:"Cross-version metric trend · Single question",compareTableAll:"Version comparison details · All questions",compareTableQuestion:"Version comparison details · Single question",compareTableHint:"Sorted by version name",detailOverview:"Single-version metric overview",detailChartTitle:"In-version trace metric trend",detailChartHint:"Each point is one Trace; click to open Trace detail; warning color marks unfinished Trace.",openTraceHint:"Click a node to open Trace detail in a new page",compare:"Version comparison",detail:"Version detail",compareObject:"Compare object",compareHint:"Aggregate / drill into one question",questions:"Question coverage",traces:"Trace details",traceCount:"Traces",scoreCoverage:"Score coverage",runSuccessRate:"Run success rate",noTagsTitle:"No version tags yet",noTagsDesc:"Create version tags, then attach them to traces from Trace.",noTraceTitle:"No tagged traces match the current filters",noTraceDesc:"Adjust filters or attach version tags from Trace first.",loadFailed:"Failed to load version analysis",detailFailed:"Failed to load version detail",derivedHint:"Run success rate is derived from trace completion state. Accuracy uses Execution.answerScore with coverage shown.",selected:"Version tag",description:"Description",noDesc:"No description",created:"Created",query:"Task",time:"Time",status:"Status",viewTrace:"View trace",running:"Running",success:"Success",loading:"Loading...",chartHint:"Chart nodes are clickable: comparison nodes open version detail, detail nodes open Trace."},[G,M]=(0,d.useState)("compare"),[R,W]=(0,d.useState)("all"),[X,Y]=(0,d.useState)("all"),[Z,$]=(0,d.useState)("7d"),[_,aa]=(0,d.useState)("all"),[ab,ac]=(0,d.useState)("tokens"),[ad,ae]=(0,d.useState)([]),[af,ag]=(0,d.useState)([]),[ah,ai]=(0,d.useState)(null),[aj,ak]=(0,d.useState)(null),[al,am]=(0,d.useState)(null),[an,ao]=(0,d.useState)(!1),[ap,aq]=(0,d.useState)(!1),ar=(0,d.useCallback)((b=!0)=>{let c=new URLSearchParams;a&&c.set("user",a),"all"!==R&&c.set("agent",R),"all"!==X&&c.set("framework",X);let d=function(a){if("all"===a)return{};let b=new Date;return{from:new Date(b.getTime()-36e5*("1h"===a?1:"1d"===a?24:"7d"===a?168:720)).toISOString(),to:b.toISOString()}}(Z);return d.from&&c.set("from",d.from),d.to&&c.set("to",d.to),b&&"all"!==_&&c.set("questionKey",_),c},[R,X,_,a,Z]);(0,d.useEffect)(()=>{a&&((0,x.apiFetch)(`/api/quality/agents?user=${encodeURIComponent(a)}`).then(a=>a.ok?a.json():Promise.reject(a)).then(a=>ae(Array.isArray(a?.agents)?a.agents:[])).catch(()=>ae([])),(0,x.apiFetch)(`/api/observe/data?user=${encodeURIComponent(a)}&facet=values&column=framework`).then(a=>a.ok?a.json():Promise.reject(a)).then(a=>ag(Array.isArray(a)?a:[])).catch(()=>ag([])))},[a]);let as=(0,d.useCallback)(async()=>{if(a){ao(!0);try{let a=await (0,x.apiFetch)(`/api/observe/version-analysis/compare?${ar().toString()}`);if(!a.ok)throw Error(await L(a,F.loadFailed));let b=await a.json();ai(b)}catch(a){q.toast.error(a?.message||F.loadFailed),ai(null)}finally{ao(!1)}}},[ar,F.loadFailed,a]);(0,d.useEffect)(()=>{as()},[as]),(0,d.useEffect)(()=>{ah?.versions.length?al&&ah.versions.some(a=>a.tag.id===al)||am((ah.versions.find(a=>a.traceCount>0)??ah.versions[0]).tag.id):am(null)},[ah,al]),(0,d.useEffect)(()=>{if(!a||!al)return void ak(null);let b=!0;aq(!0);let c=ar(!1);return c.set("limit","100"),(0,x.apiFetch)(`/api/observe/version-analysis/tags/${encodeURIComponent(al)}/traces?${c.toString()}`).then(async a=>{if(!a.ok)throw Error(await L(a,F.detailFailed));return a.json()}).then(a=>{b&&ak(a)}).catch(a=>{b&&(q.toast.error(a?.message||F.detailFailed),ak(null))}).finally(()=>{b&&aq(!1)}),()=>{b=!1}},[ar,F.detailFailed,al,a]);let at=(0,d.useMemo)(()=>[{value:"all",label:F.allAgents},...ad.map(a=>({value:a.name,label:`${a.name}${a.traceCount?` (${a.traceCount})`:""}`}))],[ad,F.allAgents]),au=(0,d.useMemo)(()=>[{value:"all",label:F.allFrameworks},...af.map(a=>({value:a.value,label:`${a.value} (${a.count})`}))],[F.allFrameworks,af]);(0,d.useMemo)(()=>[{value:"all",label:F.allQuestions},...(ah?.questions??[]).slice(0,80).map(a=>({value:a.key,label:`${a.label} (${a.traceCount})`}))],[F.allQuestions,ah?.questions]);let av=ah?.versions??[],aw=ah?.summary??null,ax=B(F).find(a=>a.value===Z)?.label??F.allTime,ay=aw?[{label:F.versionTagCount,value:aw.versionTagCount.toLocaleString(),detail:F.availableTags,tone:"var(--foreground)"},{label:F.traceTotal,value:aw.traceCount.toLocaleString(),detail:ax,tone:"var(--foreground)"},{label:F.accuracy,value:I(aw.answerScoreAvg,"accuracy",E),detail:F.currentWindow,tone:"var(--success)"},{label:F.tokens,value:I(aw.avgTokens,"tokens",E),detail:F.currentWindow,tone:"var(--warning)"},{label:F.latency,value:I(aw.p95LatencySec,"latency",E),detail:F.currentWindow,tone:"#0ea5e9"},{label:F.cost,value:I(aw.avgCost,"cost",E),detail:F.currentWindow,tone:"#14b8a6"}]:[],az=(0,d.useMemo)(()=>av.map(a=>({value:a.tag.id,label:a.tag.name+(a.traceCount?" ("+a.traceCount.toLocaleString()+")":"")})),[av]),aA=av.length>0,aB=av.some(a=>a.traceCount>0),aC=av.find(a=>a.tag.id===al)??null,aD=av.map(a=>({id:a.tag.id,name:a.tag.name,color:a.tag.color,value:function(a,b){switch(b){case"accuracy":return C(a.answerScoreAvg);case"tokens":return a.avgTokens;case"latency":return a.p95LatencySec;case"cost":return a.avgCost}}(a,ab),traceCount:a.traceCount})),aE=(aj?.traces??[]).slice().reverse().map((a,b)=>({index:b+1,value:function(a,b){switch(b){case"accuracy":return C(a.answerScore);case"tokens":return a.tokens;case"latency":return a.latencySec;case"cost":return a.cost}}(a,ab),status:a.traceStatus,label:K(a.timestamp),query:a.query,answerScore:a.answerScore,tokens:a.tokens,latencySec:a.latencySec,cost:a.cost,traceHref:A+"/trace?taskId="+encodeURIComponent(a.taskId||a.id)})),aF=(0,d.useCallback)(()=>{if(!ah)return void q.toast.error(F.exportEmpty);let a={exportedAt:new Date().toISOString(),filters:{agent:R,framework:X,window:Z,questionKey:_,metric:ab},versions:ah.versions,questions:ah.questions,selectedVersion:aC,selectedVersionDetails:aj},b=new Blob([JSON.stringify(a,null,2)],{type:"application/json;charset=utf-8"}),c=URL.createObjectURL(b),d=document.createElement("a"),e=a.exportedAt.replace(/[:.]/g,"-");d.href=c,d.download="version-analysis-"+e+".json",document.body.appendChild(d),d.click(),d.remove(),URL.revokeObjectURL(c)},[R,F.exportEmpty,ah,aj,X,ab,_,aC,Z]);return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(r.AppTopBar,{title:F.title,showDefaultActions:!1}),(0,b.jsxs)(s.PageContainer,{variant:"wide",className:"bg-background",children:[(0,b.jsx)(s.PageHeader,{title:F.title,description:F.subtitle,actions:(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsxs)(t.Button,{variant:"outline",size:"sm",onClick:aF,disabled:!ah||an,children:[(0,b.jsx)(g.Download,{className:"size-4"}),F.exportData]}),(0,b.jsx)(t.Button,{variant:"outline",size:"sm",asChild:!0,children:(0,b.jsxs)(c.default,{href:A+"/version-management",children:[(0,b.jsx)(i.Tag,{className:"size-4"}),F.manageTags]})})]})}),(0,b.jsxs)(s.PageToolbar,{className:"items-center",children:[(0,b.jsx)(u.Select,{value:R,onChange:W,options:at,label:F.agent,active:"all"!==R}),(0,b.jsx)(u.Select,{value:X,onChange:Y,options:au,label:F.framework,active:"all"!==X}),(0,b.jsx)(u.Select,{value:Z,onChange:$,options:B(F),label:F.window,active:"7d"!==Z})]}),ay.length>0&&(0,b.jsx)("section",{className:"mb-4 grid gap-3 sm:grid-cols-2 xl:grid-cols-6","aria-label":F.overview,children:ay.map(a=>(0,b.jsx)(N,{label:a.label,value:a.value,detail:a.detail,tone:a.tone},a.label))}),an&&!ah?(0,b.jsxs)("div",{className:"flex items-center justify-center gap-2 py-16 text-sm text-foreground-muted",children:[(0,b.jsx)(h.Loader2,{className:"size-4 animate-spin"}),F.loading]}):aA?aB?(0,b.jsxs)("div",{className:"space-y-4",children:[(0,b.jsxs)("div",{className:"inline-flex rounded-md border border-border bg-background p-1 shadow-sm",children:[(0,b.jsxs)("button",{type:"button",onClick:()=>M("compare"),className:(0,z.cn)("inline-flex h-8 items-center gap-2 rounded-sm px-3 text-sm font-medium text-foreground-muted hover:text-foreground","compare"===G&&"bg-primary text-primary-foreground shadow-sm hover:text-primary-foreground"),children:[(0,b.jsx)(f,{className:"size-4"}),F.compare]}),(0,b.jsxs)("button",{type:"button",onClick:()=>M("detail"),className:(0,z.cn)("inline-flex h-8 items-center gap-2 rounded-sm px-3 text-sm font-medium text-foreground-muted hover:text-foreground","detail"===G&&"bg-primary text-primary-foreground shadow-sm hover:text-primary-foreground"),children:[(0,b.jsx)(e.Activity,{className:"size-4"}),F.detail]})]}),(0,b.jsxs)("div",{className:(0,z.cn)("grid gap-4","compare"===G?"xl:grid-cols-[minmax(280px,340px)_minmax(0,1fr)]":"xl:grid-cols-1"),children:[(0,b.jsxs)("section",{className:(0,z.cn)("rounded-md border border-border bg-card overflow-hidden","compare"!==G&&"hidden"),children:[(0,b.jsxs)("div",{className:"border-b border-border px-4 py-3",children:[(0,b.jsx)("h2",{className:"text-sm font-semibold text-foreground",children:F.compareObject}),(0,b.jsx)("p",{className:"mt-1 text-xs text-foreground-muted",children:F.compareHint})]}),(0,b.jsxs)("div",{className:"max-h-[520px] overflow-y-auto p-2",children:[(0,b.jsxs)("button",{type:"button",onClick:()=>aa("all"),className:(0,z.cn)("mb-1 flex w-full items-start justify-between gap-3 rounded-md px-3 py-2 text-left text-sm hover:bg-background-secondary","all"===_&&"bg-primary-subtle text-primary"),children:[(0,b.jsx)("span",{className:"font-medium text-foreground-secondary",children:F.allQuestions}),(0,b.jsx)("span",{className:"text-xs text-foreground-muted",children:ah?.questions.length??0})]}),(0,b.jsx)("div",{className:"my-2 h-px bg-border"}),(ah?.questions??[]).slice(0,80).map(a=>(0,b.jsxs)("button",{type:"button",onClick:()=>aa(a.key),className:(0,z.cn)("mb-1 flex w-full items-start justify-between gap-3 rounded-md px-3 py-2 text-left text-sm hover:bg-background-secondary",_===a.key&&"bg-primary-subtle text-primary"),children:[(0,b.jsx)("span",{className:"line-clamp-2 min-w-0 text-foreground-secondary",children:a.label}),(0,b.jsx)("span",{className:"shrink-0 text-xs tabular-nums text-foreground-muted",children:a.traceCount})]},a.key))]})]}),(0,b.jsxs)("div",{className:(0,z.cn)("space-y-4 min-w-0","compare"!==G&&"hidden"),children:[(0,b.jsxs)("section",{className:"rounded-md border border-border bg-card p-4",children:[(0,b.jsxs)("div",{className:"mb-3 flex flex-wrap items-start justify-between gap-3",children:[(0,b.jsxs)("div",{className:"min-w-0",children:[(0,b.jsx)("h2",{className:"text-sm font-semibold text-foreground",children:"all"===_?F.compareChartAll:F.compareChartQuestion}),(0,b.jsxs)("p",{className:"mt-1 text-xs text-foreground-muted",children:[F.traceCount,": ",av.reduce((a,b)=>a+b.traceCount,0).toLocaleString()]})]}),(0,b.jsx)(O,{value:ab,onChange:ac,copy:F})]}),(0,b.jsx)("div",{className:"h-72 min-w-0",children:(0,b.jsx)(m.ResponsiveContainer,{width:"100%",height:"100%",children:(0,b.jsxs)(l.LineChart,{data:aD,margin:{top:14,right:18,bottom:4,left:-4},onClick:a=>{let b=a?.activePayload?.[0]?.payload?.id;b&&(am(b),M("detail"))},children:[(0,b.jsx)("defs",{children:(0,b.jsxs)("linearGradient",{id:"versionCompareFill",x1:"0",y1:"0",x2:"0",y2:"1",children:[(0,b.jsx)("stop",{offset:"0%",stopColor:D(ab),stopOpacity:"0.18"}),(0,b.jsx)("stop",{offset:"100%",stopColor:D(ab),stopOpacity:"0.02"})]})}),(0,b.jsx)(j.CartesianGrid,{stroke:"var(--border)",strokeDasharray:"3 3",vertical:!1}),(0,b.jsx)(o.XAxis,{dataKey:"name",tick:{fontSize:11,fill:"var(--foreground-muted)"},interval:0,minTickGap:8}),(0,b.jsx)(p.YAxis,{tick:{fontSize:11,fill:"var(--foreground-muted)"},tickFormatter:a=>H(Number(a),ab),width:64}),(0,b.jsx)(n.Tooltip,{cursor:{stroke:"var(--border-dark)",strokeDasharray:"4 4"},formatter:a=>[I(Number(a),ab,E),F[ab]],labelStyle:{color:"var(--foreground)"},contentStyle:{background:"var(--card-bg)",border:"1px solid var(--border)",borderRadius:6,color:"var(--foreground)"}}),(0,b.jsx)(k.Line,{type:"monotone",dataKey:"value",stroke:D(ab),strokeWidth:2.8,dot:{r:4,strokeWidth:2,stroke:"var(--card-bg)",fill:D(ab)},activeDot:{r:6},connectNulls:!0})]})})})]}),(0,b.jsxs)("section",{className:"rounded-md border border-border bg-card overflow-hidden",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between gap-3 border-b border-border px-4 py-3",children:[(0,b.jsx)("h2",{className:"text-sm font-semibold text-foreground",children:"all"===_?F.compareTableAll:F.compareTableQuestion}),(0,b.jsx)("span",{className:"text-xs text-foreground-muted",children:F.compareTableHint})]}),(0,b.jsx)("div",{className:"overflow-x-auto",children:(0,b.jsxs)("table",{className:"w-full min-w-[760px] text-sm",children:[(0,b.jsx)("thead",{className:"bg-background-secondary text-xs text-foreground-muted",children:(0,b.jsxs)("tr",{children:[(0,b.jsx)(U,{children:F.selected}),(0,b.jsx)(U,{children:F.description}),(0,b.jsx)(U,{children:F.traceCount}),(0,b.jsx)(U,{children:F.accuracy}),(0,b.jsx)(U,{children:F.scoreCoverage}),(0,b.jsx)(U,{children:F.runSuccessRate}),(0,b.jsx)(U,{children:F.tokens}),(0,b.jsx)(U,{children:F.latency}),(0,b.jsx)(U,{children:F.cost})]})}),(0,b.jsx)("tbody",{children:av.map(a=>(0,b.jsxs)("tr",{onClick:()=>am(a.tag.id),className:(0,z.cn)("cursor-pointer border-t border-border hover:bg-background-secondary",al===a.tag.id&&"bg-primary-subtle"),children:[(0,b.jsx)(V,{children:(0,b.jsxs)("span",{className:"inline-flex max-w-[240px] items-center gap-2 truncate font-medium text-foreground",children:[(0,b.jsx)("span",{className:"size-2.5 rounded-full",style:{backgroundColor:a.tag.color}}),(0,b.jsx)("span",{className:"truncate",children:a.tag.name})]})}),(0,b.jsx)(V,{children:(0,b.jsx)("span",{className:"line-clamp-2 max-w-[260px]",children:a.tag.description||F.noDesc})}),(0,b.jsx)(V,{children:a.traceCount.toLocaleString()}),(0,b.jsx)(V,{children:I(a.answerScoreAvg,"accuracy",E)}),(0,b.jsx)(V,{children:J(a.answerScoreCoverage)}),(0,b.jsx)(V,{children:J(a.runSuccessRate)}),(0,b.jsx)(V,{children:I(a.avgTokens,"tokens",E)}),(0,b.jsx)(V,{children:I(a.p95LatencySec,"latency",E)}),(0,b.jsx)(V,{children:I(a.avgCost,"cost",E)})]},a.tag.id))})]})})]})]}),(0,b.jsxs)("aside",{className:(0,z.cn)("space-y-4 min-w-0","detail"!==G&&"hidden"),children:[(0,b.jsxs)("section",{className:"rounded-md border border-border bg-card px-4 py-3",children:[(0,b.jsx)("div",{className:"mb-2 flex items-center justify-between gap-3",children:(0,b.jsx)("h2",{className:"text-sm font-semibold text-foreground",children:F.detailOverview})}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-3",children:[(0,b.jsxs)("div",{className:"inline-flex max-w-full items-center gap-1.5 rounded-md border border-border bg-background px-2 py-1",children:[(0,b.jsx)("span",{className:"shrink-0 text-xs font-medium text-foreground-muted",children:F.selected}),(0,b.jsx)(u.Select,{value:al??"",onChange:a=>am(a||null),options:az,"aria-label":F.selected,className:"h-7 max-w-[180px] border-0 bg-background-secondary px-2 text-sm font-medium text-foreground hover:bg-background-secondary"})]}),aC&&(0,b.jsxs)("div",{className:"grid min-w-[520px] flex-1 grid-cols-2 gap-2 sm:grid-cols-3 xl:grid-cols-6",children:[(0,b.jsx)(P,{label:F.traceCount,value:aC.traceCount.toLocaleString()}),(0,b.jsx)(P,{label:F.accuracy,value:I(aC.answerScoreAvg,"accuracy",E)}),(0,b.jsx)(P,{label:F.tokens,value:I(aC.avgTokens,"tokens",E)}),(0,b.jsx)(P,{label:F.latency,value:I(aC.p95LatencySec,"latency",E)}),(0,b.jsx)(P,{label:F.cost,value:I(aC.avgCost,"cost",E)}),(0,b.jsx)(P,{label:F.runSuccessRate,value:J(aC.runSuccessRate)})]})]})]}),(0,b.jsxs)("section",{className:"rounded-md border border-border bg-card p-4",children:[(0,b.jsxs)("div",{className:"mb-3 flex flex-wrap items-start justify-between gap-3",children:[(0,b.jsxs)("div",{className:"min-w-0",children:[(0,b.jsx)("h2",{className:"truncate text-sm font-semibold text-foreground",children:aC?aC.tag.name+" · "+F.detailChartTitle:F.detailChartTitle}),(0,b.jsx)("p",{className:"mt-1 text-xs text-foreground-muted",children:F.detailChartHint})]}),(0,b.jsx)(O,{value:ab,onChange:ac,copy:F})]}),(0,b.jsx)("div",{className:"h-48",children:ap?(0,b.jsxs)("div",{className:"flex h-full items-center justify-center gap-2 text-sm text-foreground-muted",children:[(0,b.jsx)(h.Loader2,{className:"size-4 animate-spin"}),F.loading]}):aE.length?(0,b.jsx)(m.ResponsiveContainer,{width:"100%",height:"100%",children:(0,b.jsxs)(l.LineChart,{data:aE,margin:{top:8,right:12,bottom:2,left:-4},children:[(0,b.jsx)(j.CartesianGrid,{stroke:"var(--border)",strokeDasharray:"3 3",vertical:!1}),(0,b.jsx)(o.XAxis,{dataKey:"index",tick:{fontSize:11,fill:"var(--foreground-muted)"}}),(0,b.jsx)(p.YAxis,{tick:{fontSize:11,fill:"var(--foreground-muted)"},tickFormatter:a=>H(Number(a),ab),width:64}),(0,b.jsx)(n.Tooltip,{content:(0,b.jsx)(Q,{metric:ab,copy:F,locale:E}),cursor:{stroke:"var(--border-dark)",strokeDasharray:"4 4"}}),(0,b.jsx)(k.Line,{type:"monotone",dataKey:"value",stroke:D(ab),strokeWidth:2.8,dot:(0,b.jsx)(S,{metric:ab}),activeDot:(0,b.jsx)(S,{metric:ab,active:!0}),connectNulls:!0})]})}):(0,b.jsx)("div",{className:"flex h-full items-center justify-center text-sm text-foreground-muted",children:"-"})})]}),(0,b.jsxs)("section",{className:"rounded-md border border-border bg-card overflow-hidden",children:[(0,b.jsx)("div",{className:"border-b border-border px-4 py-3",children:(0,b.jsx)("h2",{className:"text-sm font-semibold text-foreground",children:F.questions})}),(0,b.jsx)("div",{className:"max-h-64 overflow-y-auto p-2",children:(ah?.questions??[]).slice(0,20).map(a=>(0,b.jsxs)("div",{className:"flex w-full items-start justify-between gap-3 rounded-md px-2 py-2 text-sm",children:[(0,b.jsx)("span",{className:"line-clamp-2 min-w-0 text-foreground-secondary",children:a.label}),(0,b.jsx)("span",{className:"shrink-0 text-xs tabular-nums text-foreground-muted",children:a.traceCount})]},a.key))})]})]}),(0,b.jsxs)("section",{className:(0,z.cn)("rounded-md border border-border bg-card overflow-hidden","detail"!==G&&"hidden"),children:[(0,b.jsxs)("div",{className:"flex items-center justify-between gap-3 border-b border-border px-4 py-3",children:[(0,b.jsx)("h2",{className:"text-sm font-semibold text-foreground",children:F.traces}),(0,b.jsx)("span",{className:"text-xs text-foreground-muted",children:aj?.total??0})]}),(0,b.jsx)("div",{className:"overflow-x-auto",children:(0,b.jsxs)("table",{className:"w-full min-w-[860px] text-sm",children:[(0,b.jsx)("thead",{className:"bg-background-secondary text-xs text-foreground-muted",children:(0,b.jsxs)("tr",{children:[(0,b.jsx)(U,{children:F.time}),(0,b.jsx)(U,{children:F.status}),(0,b.jsx)(U,{children:F.query}),(0,b.jsx)(U,{children:F.accuracy}),(0,b.jsx)(U,{children:F.tokens}),(0,b.jsx)(U,{children:F.latency}),(0,b.jsx)(U,{children:F.cost}),(0,b.jsx)(U,{children:F.viewTrace})]})}),(0,b.jsxs)("tbody",{children:[(aj?.traces??[]).map(a=>(0,b.jsxs)("tr",{className:"border-t border-border hover:bg-background-secondary",children:[(0,b.jsx)(V,{children:K(a.timestamp)}),(0,b.jsx)(V,{children:(0,b.jsx)(T,{status:a.traceStatus,copy:F})}),(0,b.jsx)(V,{children:(0,b.jsx)("span",{className:"line-clamp-2 max-w-[360px] text-foreground-secondary",children:a.query||"-"})}),(0,b.jsx)(V,{children:I(a.answerScore,"accuracy",E)}),(0,b.jsx)(V,{children:I(a.tokens,"tokens",E)}),(0,b.jsx)(V,{children:I(a.latencySec,"latency",E)}),(0,b.jsx)(V,{children:I(a.cost,"cost",E)}),(0,b.jsx)(V,{children:(0,b.jsx)(t.Button,{variant:"ghost",size:"sm",asChild:!0,className:"h-7 px-2 text-xs",children:(0,b.jsx)(c.default,{href:`${A}/trace?taskId=${encodeURIComponent(a.taskId||a.id)}`,children:F.viewTrace})})})]},a.id)),!ap&&!(aj?.traces??[]).length&&(0,b.jsx)("tr",{children:(0,b.jsx)("td",{colSpan:8,className:"px-4 py-8 text-center text-sm text-foreground-muted",children:F.noTraceTitle})})]})]})})]})]})]}):(0,b.jsx)(v.EmptyState,{icon:e.Activity,title:F.noTraceTitle,description:F.noTraceDesc}):(0,b.jsx)(v.EmptyState,{icon:i.Tag,title:F.noTagsTitle,description:F.noTagsDesc,action:(0,b.jsx)(t.Button,{asChild:!0,children:(0,b.jsx)(c.default,{href:`${A}/version-management`,children:F.manageTags})})})]})]})}function N({label:a,value:c,detail:d,tone:e}){return(0,b.jsxs)("div",{className:"rounded-md border border-border bg-card px-3 py-2.5",children:[(0,b.jsx)("div",{className:"text-[11px] text-foreground-muted",children:a}),(0,b.jsx)("div",{className:"mt-1 truncate text-lg font-semibold tabular-nums",style:{color:e},children:c}),(0,b.jsx)("div",{className:"mt-1 truncate text-[11px] text-foreground-muted",children:d})]})}function O({value:a,onChange:c,copy:d}){return(0,b.jsx)("div",{className:"inline-flex flex-wrap gap-1 rounded-md border border-border bg-background p-1",children:[{value:"accuracy",label:d.accuracy},{value:"tokens",label:d.tokens},{value:"latency",label:d.latency},{value:"cost",label:d.cost}].map(d=>(0,b.jsxs)("button",{type:"button",onClick:()=>c(d.value),className:(0,z.cn)("inline-flex h-7 items-center gap-1.5 rounded-sm px-2 text-xs font-medium text-foreground-muted hover:bg-background-secondary hover:text-foreground",a===d.value&&"bg-primary-subtle text-primary"),children:[(0,b.jsx)("span",{className:"size-2 rounded-full",style:{backgroundColor:D(d.value)}}),d.label]},d.value))})}function P({label:a,value:c}){return(0,b.jsxs)("div",{className:"min-w-0 rounded-sm border border-border bg-background px-2 py-1.5",children:[(0,b.jsx)("div",{className:"truncate text-[10px] leading-none text-foreground-muted",children:a}),(0,b.jsx)("div",{className:"mt-1 truncate text-xs font-semibold tabular-nums text-foreground",children:c})]})}function Q({active:a,payload:c,label:d,metric:e,copy:f,locale:g}){let h=c?.[0]?.payload;if(!a||!h)return null;let i="success"===h.status?f.success:f.running;return(0,b.jsxs)("div",{className:"min-w-60 max-w-80 rounded-md border border-border bg-card p-3 text-xs text-foreground shadow-lg",children:[(0,b.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,b.jsxs)("div",{className:"min-w-0",children:[(0,b.jsxs)("div",{className:"font-semibold text-foreground",children:["Trace #",d]}),(0,b.jsx)("div",{className:"mt-0.5 text-[11px] text-foreground-muted",children:h.label})]}),(0,b.jsx)("span",{className:(0,z.cn)("shrink-0 rounded-sm border px-1.5 py-0.5 text-[11px] font-medium","success"===h.status?"border-success-subtle bg-success-subtle text-success":"border-error-border bg-error-subtle text-error"),children:i})]}),h.query&&(0,b.jsx)("div",{className:"mt-2 line-clamp-2 text-foreground-secondary",children:h.query}),(0,b.jsxs)("div",{className:"mt-3 grid gap-1.5",children:[(0,b.jsx)(R,{color:"var(--success)",label:f.accuracy,value:I(h.answerScore,"accuracy",g)}),(0,b.jsx)(R,{color:"var(--warning)",label:f.tokens,value:I(h.tokens,"tokens",g)}),(0,b.jsx)(R,{color:"#0ea5e9",label:f.latency,value:I(h.latencySec,"latency",g)}),(0,b.jsx)(R,{color:"#14b8a6",label:f.cost,value:I(h.cost,"cost",g)})]}),(0,b.jsx)("div",{className:"mt-2 border-t border-border pt-2 text-[11px] font-medium text-primary",children:f.openTraceHint})]})}function R({color:a,label:c,value:d}){return(0,b.jsxs)("div",{className:"flex items-center justify-between gap-4",children:[(0,b.jsxs)("span",{className:"inline-flex items-center gap-1.5 text-foreground-muted",children:[(0,b.jsx)("span",{className:"size-2 rounded-full",style:{backgroundColor:a}}),c]}),(0,b.jsx)("span",{className:"font-semibold tabular-nums text-foreground",children:d})]})}function S(a){let{cx:c,cy:d,payload:e,metric:f,active:g}=a;if(null==c||null==d)return null;let h=e?.traceHref,i=e?.status==="success"?D(f):"var(--error)",j=(0,b.jsxs)("g",{style:{cursor:h?"pointer":"default"},children:[(0,b.jsx)("circle",{cx:c,cy:d,r:g?13:11,fill:"transparent"}),(0,b.jsx)("circle",{cx:c,cy:d,r:g?10:8,fill:i,opacity:g?.18:.12}),(0,b.jsx)("circle",{cx:c,cy:d,r:g?5.8:4.8,fill:i,stroke:g?i:"var(--card-bg)",strokeWidth:g?1.5:2,children:(0,b.jsx)("title",{children:e?.label??"Trace"})})]});return h?(0,b.jsx)("a",{href:h,target:"_blank",rel:"noreferrer","aria-label":"Open trace",children:j}):j}function T({status:a,copy:c}){let d="success"===a;return(0,b.jsx)("span",{className:(0,z.cn)("inline-flex items-center rounded-sm border px-1.5 py-0.5 text-xs font-medium",d?"border-success-subtle bg-success-subtle text-success":"border-warning-subtle bg-warning-subtle text-warning"),children:d?c.success:c.running})}function U({children:a}){return(0,b.jsx)("th",{className:"px-3 py-2 text-left font-medium whitespace-nowrap",children:a})}function V({children:a}){return(0,b.jsx)("td",{className:"px-3 py-2 align-top text-foreground-secondary",children:a})}a.s(["default",()=>M],208925)}];
2
+
3
+ //# sourceMappingURL=src_app_%28main%29_version-analysis_page_tsx_63ae8791._.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[78937,a=>{"use strict";var b=a.i(187924),c=a.i(572131);let d=(0,a.i(164831).default)("pen",[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}]]);var e=a.i(875160),f=a.i(403512),g=a.i(31247),h=a.i(980180),i=a.i(823292),j=a.i(729936),k=a.i(232455),l=a.i(699570),m=a.i(757430),n=a.i(795225),o=a.i(866718),p=a.i(580701),q=a.i(368114);function r({className:a,...c}){return(0,b.jsx)("textarea",{"data-slot":"textarea",className:(0,q.cn)("border-input placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive flex field-sizing-content min-h-16 w-full rounded-md border bg-transparent px-3 py-2 text-base shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",a),...c})}var s=a.i(115326),t=a.i(943408),u=a.i(575110),v=a.i(106927);let w={name:"",description:"",kind:"version",color:"#6366f1"},x=["#6366f1","#16a34a","#0ea5e9","#f59e0b","#ef4444","#8b5cf6","#64748b"];async function y(a,b){try{let c=await a.json();return String(c?.error||b)}catch{return b}}function z(){let{user:a}=(0,t.useAuth)(),{locale:d}=(0,v.useLocale)(),g=d.toLowerCase().startsWith("zh")?{title:"版本管理",subtitle:"通过标签管理版本分组和业务筛选范围",intro:"通过标签实现版本管理:版本标签用于版本分析的对比与详情;业务标签用于在链路追踪中筛选 Trace。",newTag:"新建标签",newVersion:"新建版本标签",newBusiness:"新建业务标签",version:"版本标签",business:"业务标签",versionHint:"用于版本分析的对比与详情",businessHint:"用于链路追踪中筛选 Trace",traceCount:"Trace 数",totalTags:"标签总数",versionTags:"版本标签",businessTags:"业务标签",bindings:"Trace 绑定",createdAt:"创建时间",descriptionColumn:"说明",noDesc:"无说明",edit:"编辑",delete:"删除",actions:"操作",formTitleNew:"新建标签",formTitleEdit:"编辑标签",formDescNew:"创建后可在链路追踪的用户标签列绑定到 Trace。",formDescEdit:"修改会影响所有已绑定 Trace 上的标签展示。",editImpact:"影响范围:名称、说明、颜色和类型变化会同步影响链路追踪、版本分析和业务筛选中的展示;已绑定的 Trace 不会丢失。",name:"名称",description:"描述",type:"标签类型",color:"颜色",cancel:"取消",save:"保存",create:"创建",saving:"保存中...",namePlaceholder:"如 baseline / v1.4 / 回归测试",descPlaceholder:"简短说明版本、实验或业务范围",emptyVersionTitle:"还没有版本标签",emptyBusinessTitle:"还没有业务标签",emptyDesc:"新建标签后,可从链路追踪给 Trace 打标。",loadFailed:"加载标签失败",saveFailed:"保存标签失败",deleteFailed:"删除标签失败",saved:"标签已保存",deleted:"标签已删除",deleteTitle:"确认删除标签?",deleteDesc:"这是硬删除:会删除标签并移除所有 Trace 绑定,Trace 记录本身会保留。",deleteImpactTitle:"影响范围",deleteImpactBindings:"将从 {count} 条 Trace 上移除此标签绑定。",deleteImpactVersion:"版本标签删除后,对应版本会从版本分析的对比和详情中消失。",deleteImpactBusiness:"业务标签删除后,对应链路追踪筛选条件将失效。",confirmDelete:"删除"}:{title:"Version Management",subtitle:"Manage version cohorts and business filter tags",intro:"Version tags power Version Analysis; business tags are used to filter traces in Trace.",newTag:"New tag",newVersion:"New version tag",newBusiness:"New business tag",version:"Version tags",business:"Business tags",versionHint:"Used by Version Analysis comparison and detail views",businessHint:"Used to filter traces in Trace",traceCount:"Traces",totalTags:"Total tags",versionTags:"Version tags",businessTags:"Business tags",bindings:"Trace bindings",createdAt:"Created",descriptionColumn:"Description",noDesc:"No description",edit:"Edit",delete:"Delete",actions:"Actions",formTitleNew:"Create tag",formTitleEdit:"Edit tag",formDescNew:"After creation, tags can be attached to traces in Trace.",formDescEdit:"Changes affect how the tag appears on every bound trace.",editImpact:"Impact: name, description, color, and type changes are reflected in Trace, Version Analysis, and business filters. Bound traces are kept.",name:"Name",description:"Description",type:"Type",color:"Color",cancel:"Cancel",save:"Save",create:"Create",saving:"Saving...",namePlaceholder:"e.g. baseline / v1.4 / regression",descPlaceholder:"Describe the version, experiment, or business scope",emptyVersionTitle:"No version tags yet",emptyBusinessTitle:"No business tags yet",emptyDesc:"Create tags, then attach them from Trace.",loadFailed:"Failed to load tags",saveFailed:"Failed to save tag",deleteFailed:"Failed to delete tag",saved:"Tag saved",deleted:"Tag deleted",deleteTitle:"Delete tag?",deleteDesc:"This hard-deletes the tag and removes it from every trace. Trace records are kept.",deleteImpactTitle:"Impact scope",deleteImpactBindings:"This tag will be removed from {count} traces.",deleteImpactVersion:"Deleting a version tag removes that version from Version Analysis comparison and detail views.",deleteImpactBusiness:"Deleting a business tag makes the corresponding Trace filter unavailable.",confirmDelete:"Delete"},[h,s]=(0,c.useState)([]),[z,C]=(0,c.useState)(!1),[D,E]=(0,c.useState)(!1),[F,G]=(0,c.useState)(w),[H,I]=(0,c.useState)(!1),[J,K]=(0,c.useState)(null),L=(0,c.useCallback)(async()=>{if(a){C(!0);try{let b=await (0,u.apiFetch)(`/api/tags?user=${encodeURIComponent(a)}`);if(!b.ok)throw Error(await y(b,g.loadFailed));let c=await b.json();s(Array.isArray(c)?c:[])}catch(a){i.toast.error(a?.message||g.loadFailed),s([])}finally{C(!1)}}},[g.loadFailed,a]);(0,c.useEffect)(()=>{L()},[L]);let M=(0,c.useMemo)(()=>{let a=h.filter(a=>"version"===a.kind).length;return{version:a,business:h.filter(a=>"business"===a.kind).length,bindings:h.reduce((a,b)=>a+(b.usageCount||0),0)}},[h]),N=(0,c.useMemo)(()=>h.filter(a=>"version"===a.kind).sort((a,b)=>a.name.localeCompare(b.name)),[h]),O=(0,c.useMemo)(()=>h.filter(a=>"business"===a.kind).sort((a,b)=>a.name.localeCompare(b.name)),[h]),P=(a="version")=>{G({...w,kind:a}),E(!0)},Q=a=>{G({id:a.id,name:a.name,description:a.description||"",kind:a.kind,color:a.color||w.color}),E(!0)},R=async()=>{if(a&&F.name.trim()){I(!0);try{let b={user:a,name:F.name.trim(),description:F.description.trim(),kind:F.kind,color:F.color},c=F.id?await (0,u.apiFetch)(`/api/tags/${encodeURIComponent(F.id)}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(b)}):await (0,u.apiFetch)("/api/tags",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(b)});if(!c.ok)throw Error(await y(c,g.saveFailed));i.toast.success(g.saved),E(!1),await L()}catch(a){i.toast.error(a?.message||g.saveFailed)}finally{I(!1)}}},S=async()=>{if(!a||!J)return;let b=await (0,u.apiFetch)(`/api/tags/${encodeURIComponent(J.id)}?user=${encodeURIComponent(a)}`,{method:"DELETE"});if(!b.ok)throw Error(await y(b,g.deleteFailed));i.toast.success(g.deleted),K(null),await L()};return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(j.AppTopBar,{title:g.title,showDefaultActions:!1}),(0,b.jsxs)(k.PageContainer,{variant:"wide",className:"bg-background",children:[(0,b.jsx)(k.PageHeader,{title:g.title,description:g.subtitle,actions:(0,b.jsxs)(l.Button,{onClick:()=>P("version"),className:"h-8 gap-1.5",children:[(0,b.jsx)(f.Plus,{className:"size-4"}),g.newTag]})}),(0,b.jsxs)("div",{className:"grid gap-3 md:grid-cols-4 mb-4",children:[(0,b.jsx)(B,{label:g.totalTags,value:h.length}),(0,b.jsx)(B,{label:g.versionTags,value:M.version}),(0,b.jsx)(B,{label:g.businessTags,value:M.business}),(0,b.jsx)(B,{label:g.bindings,value:M.bindings})]}),(0,b.jsx)("div",{className:"mb-4 rounded-md border border-border bg-background-secondary px-3 py-2 text-sm text-foreground-secondary",children:g.intro}),z?(0,b.jsxs)("div",{className:"flex items-center justify-center gap-2 py-16 text-sm text-foreground-muted",children:[(0,b.jsx)(e.Loader2,{className:"size-4 animate-spin"}),g.saving.replace("...","")]}):(0,b.jsxs)("div",{className:"space-y-4",children:[(0,b.jsx)(A,{title:g.version,hint:g.versionHint,tone:"version",tags:N,copy:g,locale:d,emptyTitle:g.emptyVersionTitle,onCreate:()=>P("version"),onEdit:Q,onDelete:K}),(0,b.jsx)(A,{title:g.business,hint:g.businessHint,tone:"business",tags:O,copy:g,locale:d,emptyTitle:g.emptyBusinessTitle,onCreate:()=>P("business"),onEdit:Q,onDelete:K})]})]}),(0,b.jsx)(n.Dialog,{open:D,onOpenChange:a=>!H&&E(a),children:(0,b.jsxs)(n.DialogContent,{className:"sm:max-w-lg",children:[(0,b.jsxs)(n.DialogHeader,{children:[(0,b.jsx)(n.DialogTitle,{children:F.id?g.formTitleEdit:g.formTitleNew}),(0,b.jsx)(n.DialogDescription,{children:F.id?g.formDescEdit:g.formDescNew})]}),(0,b.jsxs)("div",{className:"grid gap-4",children:[(0,b.jsxs)("label",{className:"grid gap-1.5 text-sm font-medium text-foreground",children:[g.name,(0,b.jsx)(o.Input,{value:F.name,onChange:a=>G(b=>({...b,name:a.target.value})),placeholder:g.namePlaceholder,maxLength:80})]}),(0,b.jsxs)("label",{className:"grid gap-1.5 text-sm font-medium text-foreground",children:[g.description,(0,b.jsx)(r,{value:F.description,onChange:a=>G(b=>({...b,description:a.target.value})),placeholder:g.descPlaceholder,maxLength:300})]}),(0,b.jsxs)("div",{className:"grid gap-1.5 text-sm font-medium text-foreground",children:[g.type,(0,b.jsx)(p.Select,{value:F.kind,onChange:a=>G(b=>({...b,kind:a})),options:[{value:"version",label:g.version},{value:"business",label:g.business}],size:"md"})]}),(0,b.jsxs)("div",{className:"grid gap-2 text-sm font-medium text-foreground",children:[g.color,(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[x.map(a=>(0,b.jsx)("button",{type:"button","aria-label":a,onClick:()=>G(b=>({...b,color:a})),className:(0,q.cn)("size-7 rounded-md border transition-transform focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",F.color===a?"border-foreground scale-105":"border-border"),style:{backgroundColor:a}},a)),(0,b.jsx)(o.Input,{type:"color",value:F.color,onChange:a=>G(b=>({...b,color:a.target.value})),className:"h-8 w-12 p-1"})]})]}),F.id&&(0,b.jsx)("div",{className:"rounded-md border border-warning-subtle bg-warning-subtle px-3 py-2 text-xs leading-5 text-warning",children:g.editImpact})]}),(0,b.jsxs)(n.DialogFooter,{children:[(0,b.jsx)(l.Button,{variant:"outline",onClick:()=>E(!1),disabled:H,children:g.cancel}),(0,b.jsx)(l.Button,{onClick:R,disabled:H||!F.name.trim(),children:H?g.saving:F.id?g.save:g.create})]})]})}),(0,b.jsx)(m.ConfirmDialog,{open:!!J,onOpenChange:a=>!a&&K(null),title:g.deleteTitle,description:J?(0,b.jsxs)("span",{className:"block space-y-2",children:[(0,b.jsxs)("span",{className:"block",children:[g.deleteDesc," (",J.name,")"]}),(0,b.jsxs)("span",{className:"block rounded-md border border-error-border bg-error-subtle px-3 py-2 text-xs leading-5 text-error",children:[(0,b.jsx)("span",{className:"block font-semibold",children:g.deleteImpactTitle}),(0,b.jsx)("span",{className:"mt-1 block",children:g.deleteImpactBindings.replace("{count}",(J.usageCount||0).toLocaleString())}),(0,b.jsx)("span",{className:"mt-1 block",children:"version"===J.kind?g.deleteImpactVersion:g.deleteImpactBusiness})]})]}):g.deleteDesc,confirmText:g.confirmDelete,cancelText:g.cancel,tone:"danger",onConfirm:S})]})}function A({title:a,hint:c,tone:e,tags:i,copy:j,locale:k,emptyTitle:m,onCreate:n,onEdit:o,onDelete:p}){return(0,b.jsxs)("section",{className:"rounded-md border border-border bg-card overflow-hidden",children:[(0,b.jsxs)("div",{className:"flex items-center gap-3 border-b border-border px-4 py-3",children:[(0,b.jsx)("span",{className:"size-2 rounded-full",style:{backgroundColor:"version"===e?"var(--primary)":"var(--success)"}}),(0,b.jsxs)("div",{className:"min-w-0",children:[(0,b.jsx)("h2",{className:"text-sm font-semibold text-foreground",children:a}),(0,b.jsx)("p",{className:"mt-0.5 text-xs text-foreground-muted",children:c})]}),(0,b.jsx)("div",{className:"flex-1"}),(0,b.jsxs)(l.Button,{variant:"outline",size:"sm",onClick:n,children:[(0,b.jsx)(f.Plus,{className:"size-4"}),"version"===e?j.newVersion:j.newBusiness]})]}),0===i.length?(0,b.jsx)(s.EmptyState,{icon:g.Tag,title:m,description:j.emptyDesc}):(0,b.jsx)("div",{className:"overflow-x-auto",children:(0,b.jsxs)("table",{className:"w-full min-w-[760px] text-sm",children:[(0,b.jsx)("thead",{className:"bg-background-secondary text-xs text-foreground-muted",children:(0,b.jsxs)("tr",{children:[(0,b.jsx)("th",{className:"px-3 py-2 text-left font-medium",children:j.type}),(0,b.jsx)("th",{className:"px-3 py-2 text-left font-medium",children:j.descriptionColumn}),(0,b.jsx)("th",{className:"px-3 py-2 text-left font-medium",children:j.traceCount}),(0,b.jsx)("th",{className:"px-3 py-2 text-left font-medium",children:j.createdAt}),(0,b.jsx)("th",{className:"w-[88px] px-3 py-2 text-center font-medium",children:j.actions})]})}),(0,b.jsx)("tbody",{children:i.map(a=>{var c;let e;return(0,b.jsxs)("tr",{className:"border-t border-border hover:bg-background-secondary",children:[(0,b.jsx)("td",{className:"px-3 py-2 align-top",children:(0,b.jsxs)("div",{className:"flex min-w-0 items-center gap-2",children:[(0,b.jsx)("span",{className:"size-2.5 shrink-0 rounded-full",style:{backgroundColor:a.color}}),(0,b.jsxs)("div",{className:"min-w-0",children:[(0,b.jsx)("div",{className:"truncate font-semibold text-foreground",children:a.name}),(0,b.jsx)("div",{className:"text-[11px] text-foreground-muted",children:(c=a.kind,e=k.toLowerCase().startsWith("zh"),"version"===c?e?"版本":"Version":e?"业务":"Business")})]})]})}),(0,b.jsx)("td",{className:"px-3 py-2 align-top text-foreground-secondary",children:(0,b.jsx)("span",{className:"line-clamp-2 max-w-[420px]",children:a.description||j.noDesc})}),(0,b.jsx)("td",{className:"px-3 py-2 align-top font-semibold tabular-nums text-foreground",children:(a.usageCount||0).toLocaleString()}),(0,b.jsx)("td",{className:"px-3 py-2 align-top text-foreground-secondary",children:function(a){if(!a)return"-";let b=new Date(a);return Number.isFinite(b.getTime())?`${b.getFullYear()}-${String(b.getMonth()+1).padStart(2,"0")}-${String(b.getDate()).padStart(2,"0")}`:"-"}(a.createdAt)}),(0,b.jsx)("td",{className:"w-[88px] px-3 py-2 align-top text-center",children:(0,b.jsxs)("div",{className:"inline-flex justify-center gap-1",children:[(0,b.jsx)(l.Button,{variant:"ghost",size:"icon",className:"size-7",onClick:()=>o(a),"aria-label":j.edit,children:(0,b.jsx)(d,{className:"size-3.5"})}),(0,b.jsx)(l.Button,{variant:"ghost",size:"icon",className:"size-7 text-error hover:text-error",onClick:()=>p(a),"aria-label":j.delete,children:(0,b.jsx)(h.Trash2,{className:"size-3.5"})})]})})]},a.id)})})]})})]})}function B({label:a,value:c}){return(0,b.jsxs)("div",{className:"rounded-md border border-border bg-card px-4 py-3",children:[(0,b.jsx)("div",{className:"text-xs text-foreground-muted",children:a}),(0,b.jsx)("div",{className:"mt-1 text-2xl font-semibold tabular-nums text-foreground",children:c.toLocaleString()})]})}a.s(["default",()=>z],78937)}];
2
+
3
+ //# sourceMappingURL=src_app_%28main%29_version-management_page_tsx_87fe0372._.js.map